From e8deab33d038145777a58c401b12d8467ca12ac2 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Sun, 29 Oct 2023 19:43:18 +0300 Subject: [PATCH 01/71] Bump Lamp (command framework) to version `3.1.7` (#37) --- build.gradle.kts | 3 ++- speedbridge2-spigot-plugin/build.gradle.kts | 8 ++++---- .../command/subcommand/SpeedBridgeCommand.java | 11 ++--------- 3 files changed, 8 insertions(+), 14 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 5124c46a..c829b023 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -29,7 +29,7 @@ allprojects { dependencies { compileOnly("org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT") - implementation("com.github.Revxrsal.Lamp:common:3.0.3") + implementation("com.github.Revxrsal.Lamp:common:3.1.7") implementation("net.kyori:adventure-api:4.10.1") implementation("net.kyori:adventure-text-minimessage:4.10.1") @@ -55,6 +55,7 @@ allprojects { options.encoding = "UTF-8" options.compilerArgs.plusAssign("-parameters") sourceCompatibility = "8" + targetCompatibility = "8" } build { diff --git a/speedbridge2-spigot-plugin/build.gradle.kts b/speedbridge2-spigot-plugin/build.gradle.kts index 7f6bb267..0d2ebbd1 100644 --- a/speedbridge2-spigot-plugin/build.gradle.kts +++ b/speedbridge2-spigot-plugin/build.gradle.kts @@ -8,7 +8,7 @@ dependencies { compileOnly("org.xerial:sqlite-jdbc:3.36.0.3") compileOnly("com.sk89q:worldedit:6.0.0-SNAPSHOT") - implementation("com.github.Revxrsal.Lamp:bukkit:3.0.7") + implementation("com.github.Revxrsal.Lamp:bukkit:3.1.7") implementation("net.kyori:adventure-platform-bukkit:4.0.1") implementation("com.github.tofpu:DynamicClass:1.1") { @@ -58,8 +58,8 @@ tasks { } runServer { - minecraftVersion("1.20") - pluginJars(project.file("libs/worldedit-bukkit-7.2.15.jar")) -// pluginJars(project.file("libs/worldedit-bukkit-6.1.jar"))d + minecraftVersion("1.8.8") +// pluginJars(project.file("libs/worldedit-bukkit-7.2.15.jar")) + pluginJars(project.file("libs/worldedit-bukkit-6.1.jar")) } } \ No newline at end of file diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 65772d70..bf568ed2 100644 --- a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -26,13 +26,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; -import revxrsal.commands.annotation.AutoComplete; -import revxrsal.commands.annotation.Command; -import revxrsal.commands.annotation.Default; -import revxrsal.commands.annotation.Description; -import revxrsal.commands.annotation.Flag; -import revxrsal.commands.annotation.Subcommand; -import revxrsal.commands.annotation.Usage; +import revxrsal.commands.annotation.*; import revxrsal.commands.bukkit.annotation.CommandPermission; import java.util.ArrayList; @@ -65,7 +59,7 @@ public SpeedBridgeCommand(final PlayerService playerService, final IslandService this.islandService = islandService; } - @Default + @DefaultFor("~") @Description("The Main Command") public String defaultCommand() { return INSTANCE.noArgument; @@ -376,7 +370,6 @@ private Optional getRandomIsland() { @RestrictDummyModel @RestrictSetup @RestrictConsole - @Default public String onStartSetup(final BridgePlayer bridgePlayer, final Island island) { if (!isGeneralSetupComplete(bridgePlayer)) { return ""; From 09040e5bc1d28a1e163dd5b23a559075f98aaeaf Mon Sep 17 00:00:00 2001 From: Tofpu Date: Mon, 30 Oct 2023 00:50:16 +0300 Subject: [PATCH 02/71] Allow offline player data to be reset (#40) --- .../speedbridge2/command/NameAndUUID.java | 21 ++++++++ .../command/parser/NameAndUUIDParser.java | 24 +++++++++ .../subcommand/SpeedBridgeCommand.java | 51 +++++++++---------- .../model/player/PlayerHandler.java | 21 ++++---- .../model/player/PlayerService.java | 8 ++- .../speedbridge2/model/player/ResetType.java | 5 ++ .../model/player/object/BridgePlayer.java | 4 +- .../player/object/score/ScoreDatabase.java | 2 +- .../player/object/stat/StatsDatabase.java | 2 +- 9 files changed, 94 insertions(+), 44 deletions(-) create mode 100644 speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/NameAndUUID.java create mode 100644 speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/NameAndUUIDParser.java create mode 100644 speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/ResetType.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/NameAndUUID.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/NameAndUUID.java new file mode 100644 index 00000000..bd366936 --- /dev/null +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/NameAndUUID.java @@ -0,0 +1,21 @@ +package io.tofpu.speedbridge2.command; + +import java.util.UUID; + +public class NameAndUUID { + private final String playerName; + private final UUID playerUUID; + + public NameAndUUID(String playerName, UUID playerUUID) { + this.playerName = playerName; + this.playerUUID = playerUUID; + } + + public String playerName() { + return playerName; + } + + public UUID playerUUID() { + return playerUUID; + } +} diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/NameAndUUIDParser.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/NameAndUUIDParser.java new file mode 100644 index 00000000..dfde874d --- /dev/null +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/NameAndUUIDParser.java @@ -0,0 +1,24 @@ +package io.tofpu.speedbridge2.command.parser; + +import io.tofpu.dynamicclass.meta.AutoRegister; +import io.tofpu.speedbridge2.command.NameAndUUID; +import revxrsal.commands.process.ValueResolver; + +import java.util.UUID; + +@AutoRegister +public class NameAndUUIDParser extends AbstractLampParser { + private final AbstractLampParser uuidParser; + + public NameAndUUIDParser(LampParseRegistry registry, PlayerUUIDParser uuidParser) { + super(NameAndUUID.class, registry); + this.uuidParser = uuidParser; + } + + @Override + NameAndUUID parse(ValueResolver.ValueResolverContext context) { + String name = context.arguments().peekFirst(); + UUID parsedUUID = uuidParser.parse(context); + return new NameAndUUID(name, parsedUUID); + } +} diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index bf568ed2..a5101ab5 100644 --- a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -1,5 +1,6 @@ package io.tofpu.speedbridge2.command.subcommand; +import io.tofpu.speedbridge2.command.NameAndUUID; import io.tofpu.speedbridge2.command.condition.annotation.RestrictConsole; import io.tofpu.speedbridge2.command.condition.annotation.RestrictDummyModel; import io.tofpu.speedbridge2.command.condition.annotation.RestrictSetup; @@ -17,6 +18,7 @@ import io.tofpu.speedbridge2.model.island.object.setup.IslandSetup; import io.tofpu.speedbridge2.model.island.object.setup.IslandSetupHandler; import io.tofpu.speedbridge2.model.player.PlayerService; +import io.tofpu.speedbridge2.model.player.ResetType; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.CommonBridgePlayer; import io.tofpu.speedbridge2.model.player.object.score.Score; @@ -28,6 +30,7 @@ import org.jetbrains.annotations.NotNull; import revxrsal.commands.annotation.*; import revxrsal.commands.bukkit.annotation.CommandPermission; +import revxrsal.commands.bukkit.exception.MalformedEntitySelectorException; import java.util.ArrayList; import java.util.List; @@ -132,31 +135,27 @@ public String onIslandDelete(final Island target) { @Description("Resets player properties") @CommandPermission("speedbridge.player.reset") @AutoComplete("@players *") - public void onPlayerReset(final CommonBridgePlayer sender, final @PlayerUUID UUID target, + public void onPlayerReset(final CommonBridgePlayer sender, final @PlayerUUID NameAndUUID target, final ResetType type) { - final BridgePlayer targetPlayer = playerService.getIfPresent(target); - - if (targetPlayer == null) { - throw new IllegalStateException(BridgeUtil.miniMessageToLegacy(INSTANCE.playerDoesntExist)); - } - - switch (type) { - case ALL: - onCompletion(targetPlayer.reset(), (Void) -> { - BridgeUtil.sendMessage(sender, String.format(INSTANCE.playerWiped, targetPlayer.getName())); - }); - break; - case SCORES: - onCompletion(targetPlayer.resetScores(), (Void) -> { - BridgeUtil.sendMessage(sender, String.format(INSTANCE.playerScoreReset, targetPlayer.getName())); - }); - break; - case STATS: - onCompletion(targetPlayer.resetStats(), (Void) -> { - BridgeUtil.sendMessage(sender, String.format(INSTANCE.playerStatsReset, targetPlayer.getName())); - }); - break; - } + String targetName = target.playerName(); + UUID targetId = target.playerUUID(); + + onCompletion(playerService.reset(targetId, type), unused -> { + String message = null; + switch (type) { + case ALL: + message = String.format(INSTANCE.playerWiped, targetName); + break; + case SCORES: + message = String.format(INSTANCE.playerScoreReset, targetName); + break; + case STATS: + message = String.format(INSTANCE.playerStatsReset, targetName); + break; + } + if (message == null) return; + BridgeUtil.sendMessage(sender, message); + }); } @Subcommand("modify") @@ -449,8 +448,4 @@ private void onCompletion(final CompletableFuture future, final Consumer< consumer.accept(t); }); } - - public enum ResetType { - ALL, SCORES, STATS - } } diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java index 7bcccd96..e623240c 100644 --- a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java @@ -146,17 +146,18 @@ public Collection getBridgePlayers() { .values()); } - /** - * Resets the player's data - * - * @param uuid The UUID of the player to reset. - */ - public void reset(final UUID uuid) { - final BridgePlayer bridgePlayer = getIfPresent(uuid); - if (bridgePlayer == null) { - return; + public @NotNull CompletableFuture reset(final UUID uuid, ResetType resetType) { + BridgePlayer player = getOrDefault(uuid); + switch (resetType) { + case ALL: + return player.reset(); + case STATS: + return player.resetStats(); + case SCORES: + return player.resetScores(); + default: + throw new IllegalStateException("Unsupported reset type: " + resetType); } - bridgePlayer.reset(); } /** diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java index bee9db94..61ac0786 100644 --- a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java @@ -101,12 +101,16 @@ public Collection getBridgePlayers() { } /** - * Resets the player's data + * Resets all the player's data * * @param uuid The UUID of the player to reset. */ public void reset(final UUID uuid) { - playerHandler.reset(uuid); + reset(uuid, ResetType.ALL); + } + + public @NotNull CompletableFuture reset(final UUID uuid, ResetType resetType) { + return playerHandler.reset(uuid, resetType); } public void shutdown() { diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/ResetType.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/ResetType.java new file mode 100644 index 00000000..4481df0a --- /dev/null +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/ResetType.java @@ -0,0 +1,5 @@ +package io.tofpu.speedbridge2.model.player; + +public enum ResetType { + ALL, SCORES, STATS +} \ No newline at end of file diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java index 1bfb5e62..5b3d6d1e 100644 --- a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java @@ -267,13 +267,13 @@ public CompletableFuture resetScores() { leaderboard.reset(getPlayerUid()); IslandBoard.reset(getPlayerUid()); - return (CompletableFuture) Databases.SCORE_DATABASE.delete(getPlayerUid()); + return Databases.SCORE_DATABASE.delete(getPlayerUid()); } public CompletableFuture resetStats() { this.statsMap.clear(); - return (CompletableFuture) Databases.STATS_DATABASE.delete(getPlayerUid()); + return Databases.STATS_DATABASE.delete(getPlayerUid()); } public void setGamePlayer(final GamePlayer gamePlayer) { diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java index f28c3aa6..c41b0374 100644 --- a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java @@ -75,7 +75,7 @@ public ScoreDatabase() { }); } - public CompletableFuture delete(final UUID uuid) { + public CompletableFuture delete(final UUID uuid) { return PluginExecutor.runAsync(() -> { try (final DatabaseQuery query = DatabaseQuery.query("DELETE FROM scores " + "WHERE uid = ?")) { diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java index e47c6c20..d14429a8 100644 --- a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java @@ -75,7 +75,7 @@ public StatsDatabase() { }); } - public CompletableFuture delete(final UUID uuid) { + public CompletableFuture delete(final UUID uuid) { return PluginExecutor.runAsync(() -> { try (final DatabaseQuery query = DatabaseQuery.query( "SELECT * FROM stats WHERE " + "uid = ?")) { From c35d27d92647058c0035cd8883f46aea23b7f125 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Mon, 30 Oct 2023 01:03:30 +0300 Subject: [PATCH 03/71] Add JetBrains to `thank you` section --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 6648ee1e..3b1ea94c 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ __Dependencies__ - PlaceholderAPI (Optional) __Thanks to__ +- [JetBrains](https://www.jetbrains.com/community/opensource/) - [GitBook](https://gitbook.com) - [JProfiler](https://www.ej-technologies.com/products/jprofiler/overview.html) From 0e19bcc216a9b1e043cb29436ef4a35b4023b763 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Fri, 22 Dec 2023 12:32:49 +0200 Subject: [PATCH 04/71] Sort session leaderboard (#42) --- .../model/leaderboard/Leaderboard.java | 99 ++++++++++--------- 1 file changed, 52 insertions(+), 47 deletions(-) diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/Leaderboard.java b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/Leaderboard.java index 1cd3747d..63d9b5d4 100644 --- a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/Leaderboard.java +++ b/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/Leaderboard.java @@ -11,14 +11,15 @@ import io.tofpu.speedbridge2.model.leaderboard.object.BoardPlayer; import io.tofpu.speedbridge2.model.leaderboard.object.IslandBoardPlayer; import io.tofpu.speedbridge2.model.player.PlayerService; -import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; +import io.tofpu.speedbridge2.model.player.object.score.Score; import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ExecutionException; import java.util.concurrent.TimeUnit; +import java.util.stream.Collectors; public final class Leaderboard { private final PlayerService playerService; @@ -58,7 +59,7 @@ public CompletableFuture loadAsync() { // global leaderboard operation try (final DatabaseQuery databaseQuery = DatabaseQuery.query("SELECT DISTINCT *" + - " FROM scores ORDER BY score")) { + " FROM scores ORDER BY score")) { final List uuidList = new ArrayList<>(); final Map globalBoardMap = new HashMap<>(); @@ -84,11 +85,11 @@ public CompletableFuture loadAsync() { final BoardPlayer value = BridgeUtil.toBoardPlayer(true, - resultSet); + resultSet); BridgeUtil.debug("Leaderboard#load(): value == " + value); if (value == null) { BridgeUtil.debug("Leaderboard#load(): value == null; " + - "continuing"); + "continuing"); continue; } @@ -105,53 +106,57 @@ public CompletableFuture loadAsync() { }); BridgeUtil.runBukkitAsync(() -> { - BridgeUtil.debug("Leaderboard#load(): refreshing the leaderboard!"); + BridgeUtil.debug("Leaderboard#load(): refreshing the leaderboard!"); - // per-player based position operation - for (final UUID uuid : positionMap.asMap() - .keySet()) { - this.positionMap.synchronous().refresh(uuid); - } + // per-player based position operation + for (final UUID uuid : positionMap.asMap() + .keySet()) { + this.positionMap.synchronous().refresh(uuid); + } - // update the global leaderboard - globalMap.updateLeaderboard(); - }, 20L * ConfigurationManager.INSTANCE.getLeaderboardCategory() - .getGlobalUpdateInterval(), 20L * ConfigurationManager.INSTANCE.getLeaderboardCategory() - .getGlobalUpdateInterval()); + // update the global leaderboard + globalMap.updateLeaderboard(); + }, 20L * ConfigurationManager.INSTANCE.getLeaderboardCategory() + .getGlobalUpdateInterval(), 20L * ConfigurationManager.INSTANCE.getLeaderboardCategory() + .getGlobalUpdateInterval()); BridgeUtil.runBukkitAsync(() -> { - // sessional leaderboard operation - final Map scoreMap = new HashMap<>(); - for (final BridgePlayer bridgePlayer : playerService.getBridgePlayers()) { - if (scoreMap.size() == 10) { - break; - } + // sessional leaderboard operation + final Map scoreMap = new HashMap<>(); + for (final BridgePlayer bridgePlayer : playerService.getBridgePlayers()) { + if (scoreMap.size() == 10) { + break; + } + + Score bestScore = null; + for (final Score score : bridgePlayer.getSessionScores()) { + // if the best score is not null, and best score is higher + // than or equal to 0 + if (bestScore != null && bestScore.compareTo(score) >= 0) { + continue; + } + bestScore = score; + } - Score bestScore = null; - for (final Score score : bridgePlayer.getSessionScores()) { - // if the best score is not null, and best score is higher - // than or equal to 0 - if (bestScore != null && bestScore.compareTo(score) >= 0) { - continue; - } - bestScore = score; - } + if (bestScore != null) { + final UUID uuid = bridgePlayer.getPlayerUid(); + scoreMap.put(uuid, new BoardPlayer(bridgePlayer.getName(), -1, uuid, bestScore)); + } + } - if (bestScore != null) { - final int position = scoreMap.size() + 1; - final UUID uuid = bridgePlayer.getPlayerUid(); - scoreMap.put(uuid, new BoardPlayer(bridgePlayer.getName(), position, uuid, bestScore)); - } - } + List sortedPlayers = scoreMap.values().stream() + .sorted(Comparator.comparing(BoardPlayer::getScore)) + .collect(Collectors.toList()); - this.sessionMap.clear(); - for (final Map.Entry entry : scoreMap.entrySet()) { - final BoardPlayer value = entry.getValue(); - this.sessionMap.put(value.getPosition(), value); - } - }, ConfigurationManager.INSTANCE.getLeaderboardCategory() - .getSessionUpdateInterval(), 20L * ConfigurationManager.INSTANCE.getLeaderboardCategory() - .getSessionUpdateInterval()); + this.sessionMap.clear(); + int position = 1; + for (BoardPlayer boardPlayer : sortedPlayers) { + this.sessionMap.put(position, new BoardPlayer(boardPlayer.getName(), position, boardPlayer.getOwner(), boardPlayer.getScore())); + position++; + } + }, ConfigurationManager.INSTANCE.getLeaderboardCategory() + .getSessionUpdateInterval(), 20L * ConfigurationManager.INSTANCE.getLeaderboardCategory() + .getSessionUpdateInterval()); return loadFuture; } @@ -179,11 +184,11 @@ public CompletableFuture retrieve(final UUID uniqueId) { * Given a position, retrieve the player at that position from the leaderboard * * @param leaderboardRetrieveType The type of leaderboard to retrieve. - * @param position The position of the player in the leaderboard. + * @param position The position of the player in the leaderboard. * @return A BoardPlayer object. */ public BoardPlayer retrieve(final LeaderboardRetrieveType leaderboardRetrieveType, - final int position) { + final int position) { switch (leaderboardRetrieveType) { case GLOBAL: return globalMap.get(position); @@ -197,7 +202,7 @@ public BoardPlayer retrieve(final LeaderboardRetrieveType leaderboardRetrieveTyp /** * Retrieve the island board for the given player and island slot. * - * @param uniqueId The UUID of the player. + * @param uniqueId The UUID of the player. * @param islandSlot The slot of the island board to retrieve. * @return The IslandBoard object. */ From 1a3ac7733406fcc43bece510d3e7a1e706bd0dea Mon Sep 17 00:00:00 2001 From: Tofpu Date: Fri, 22 Dec 2023 12:34:38 +0200 Subject: [PATCH 05/71] Bump the next release of sb2 to 1.1.3 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index c829b023..c3a2b977 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ allprojects { } group = "io.tofpu.speedbridge2" - version = "1.1.0-" + "git rev-parse --short=8 HEAD".runCommand(rootDir) + version = "1.1.3-" + "git rev-parse --short=8 HEAD".runCommand(rootDir) repositories { mavenLocal() From df8f0c78c6de2ba1b96441279ada3f546eedf71a Mon Sep 17 00:00:00 2001 From: Tofpu Date: Tue, 23 Jan 2024 19:23:10 +0200 Subject: [PATCH 06/71] Remove empty directories, and rename `speedbridge-spigot-plugin` to just `spigot` --- .../build.gradle.kts => gradle-wrapper.properties | 0 settings.gradle.kts | 4 +--- speedbridge2-spigot-api/build.gradle.kts | 0 {speedbridge2-spigot-plugin => spigot}/build.gradle.kts | 2 -- .../src/main/java/io/tofpu/speedbridge2/SpeedBridge.java | 0 .../io/tofpu/speedbridge2/command/AbstractLampRegistry.java | 0 .../java/io/tofpu/speedbridge2/command/CommandManager.java | 0 .../main/java/io/tofpu/speedbridge2/command/NameAndUUID.java | 0 .../command/condition/AbstractCommandConditionWrapper.java | 0 .../speedbridge2/command/condition/LampConditionRegistry.java | 0 .../command/condition/RestrictConsoleCondition.java | 0 .../command/condition/RestrictDummyModelCondition.java | 0 .../command/condition/RestrictSetupCondition.java | 0 .../command/condition/annotation/RestrictConsole.java | 0 .../command/condition/annotation/RestrictDummyModel.java | 0 .../command/condition/annotation/RestrictSetup.java | 0 .../speedbridge2/command/context/AbstractLampContext.java | 0 .../tofpu/speedbridge2/command/context/GameIslandContext.java | 0 .../speedbridge2/command/context/LampContextRegistry.java | 0 .../tofpu/speedbridge2/command/parser/AbstractLampParser.java | 0 .../io/tofpu/speedbridge2/command/parser/IslandParser.java | 0 .../tofpu/speedbridge2/command/parser/LampParseRegistry.java | 0 .../tofpu/speedbridge2/command/parser/NameAndUUIDParser.java | 0 .../tofpu/speedbridge2/command/parser/PlayerUUIDParser.java | 0 .../speedbridge2/command/parser/annotation/PlayerUUID.java | 0 .../speedbridge2/command/subcommand/CommandCompletion.java | 0 .../speedbridge2/command/subcommand/HelpCommandGenerator.java | 0 .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 0 .../command/subcommand/debug/DestroyableLand.java | 0 .../command/subcommand/debug/EmptyBridgePlayer.java | 0 .../speedbridge2/command/subcommand/debug/GameIsland2.java | 0 .../command/subcommand/debug/SpeedBridgeDebugCommand.java | 0 .../java/io/tofpu/speedbridge2/listener/GameListener.java | 0 .../speedbridge2/listener/game/GameInteractionListener.java | 0 .../speedbridge2/listener/game/GameProtectionListener.java | 0 .../speedbridge2/listener/general/GeneralPluginListener.java | 0 .../listener/general/PlayerConnectionListener.java | 0 .../listener/island/IslandProtectionListener.java | 0 .../speedbridge2/listener/island/IslandRegionListener.java | 0 .../io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java | 0 .../speedbridge2/listener/wrapper/SpeedBridgeListener.java | 0 .../listener/wrapper/wrappers/BlockBreakEventWrapper.java | 0 .../listener/wrapper/wrappers/BlockPlaceEventWrapper.java | 0 .../listener/wrapper/wrappers/PlayerInteractEventWrapper.java | 0 .../tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java | 0 .../speedbridge2/model/blockmenu/holder/BlockMenuHolder.java | 0 .../model/blockmenu/listener/BlockMenuListener.java | 0 .../main/java/io/tofpu/speedbridge2/model/common/Message.java | 0 .../io/tofpu/speedbridge2/model/common/PlayerNameCache.java | 0 .../io/tofpu/speedbridge2/model/common/PluginExecutor.java | 0 .../speedbridge2/model/common/config/ItemConfiguration.java | 0 .../speedbridge2/model/common/config/PluginConfiguration.java | 0 .../model/common/config/category/BlockMenuCategory.java | 0 .../model/common/config/category/GameCategory.java | 0 .../model/common/config/category/GeneralCategory.java | 0 .../model/common/config/category/LeaderboardCategory.java | 0 .../model/common/config/category/LobbyCategory.java | 0 .../model/common/config/manager/ConfigurationManager.java | 0 .../config/serializer/AbstractItemActionSerializer.java | 0 .../model/common/config/serializer/ItemMetaSerializer.java | 0 .../model/common/config/serializer/ItemStackSerializer.java | 0 .../model/common/config/serializer/LocationSerializer.java | 0 .../model/common/config/serializer/MaterialSerializer.java | 0 .../common/config/serializer/UmbrellaItemSerializer.java | 0 .../speedbridge2/model/common/database/DatabaseManager.java | 0 .../tofpu/speedbridge2/model/common/database/Databases.java | 0 .../speedbridge2/model/common/database/wrapper/Database.java | 0 .../model/common/database/wrapper/DatabaseQuery.java | 0 .../model/common/database/wrapper/DatabaseSet.java | 0 .../model/common/database/wrapper/DatabaseTable.java | 0 .../model/common/presenter/MessagePresenterBase.java | 0 .../model/common/presenter/MessagePresenterHolder.java | 0 .../model/common/presenter/MessagePresenterHolderImpl.java | 0 .../model/common/presenter/type/MessagePairPresenter.java | 0 .../model/common/presenter/type/MessageTreePresenter.java | 0 .../model/common/umbrella/RunCommandItemAction.java | 0 .../model/common/umbrella/SerializableUmbrellaItem.java | 0 .../io/tofpu/speedbridge2/model/common/util/BridgeUtil.java | 0 .../io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java | 0 .../io/tofpu/speedbridge2/model/common/util/FileUtil.java | 0 .../tofpu/speedbridge2/model/common/util/IgnoreMessage.java | 0 .../io/tofpu/speedbridge2/model/common/util/MessageUtil.java | 0 .../tofpu/speedbridge2/model/common/util/ReflectionUtil.java | 0 .../io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java | 0 .../tofpu/speedbridge2/model/common/util/UpdateChecker.java | 0 .../speedbridge2/model/common/wrapper/ConfigurateFile.java | 0 .../model/common/wrapper/FileConfigurationType.java | 0 .../io/tofpu/speedbridge2/model/island/IslandDatabase.java | 0 .../io/tofpu/speedbridge2/model/island/IslandFactory.java | 0 .../io/tofpu/speedbridge2/model/island/IslandHandler.java | 0 .../io/tofpu/speedbridge2/model/island/IslandRepository.java | 0 .../io/tofpu/speedbridge2/model/island/IslandService.java | 0 .../tofpu/speedbridge2/model/island/arena/ArenaManager.java | 0 .../island/exception/IslandDatabaseExceptionWrapper.java | 0 .../model/island/exception/IslandLoadFailureException.java | 0 .../tofpu/speedbridge2/model/island/object/EmptyIsland.java | 0 .../io/tofpu/speedbridge2/model/island/object/GameIsland.java | 0 .../io/tofpu/speedbridge2/model/island/object/Island.java | 0 .../tofpu/speedbridge2/model/island/object/IslandBuild.java | 0 .../tofpu/speedbridge2/model/island/object/IslandBuilder.java | 0 .../speedbridge2/model/island/object/land/IslandLand.java | 0 .../model/island/object/setup/IslandBuildSetup.java | 0 .../speedbridge2/model/island/object/setup/IslandSetup.java | 0 .../model/island/object/setup/IslandSetupFactory.java | 0 .../model/island/object/setup/IslandSetupHandler.java | 0 .../island/object/setup/umbrella/IslandSetupUmbrella.java | 0 .../model/island/object/umbrella/GameIslandUmbrella.java | 0 .../io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java | 0 .../io/tofpu/speedbridge2/model/leaderboard/Leaderboard.java | 0 .../tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java | 0 .../speedbridge2/model/leaderboard/loader/BoardLoader.java | 0 .../speedbridge2/model/leaderboard/loader/IslandLoader.java | 0 .../model/leaderboard/loader/PlayerPositionLoader.java | 0 .../speedbridge2/model/leaderboard/object/BoardPlayer.java | 0 .../model/leaderboard/object/IslandBoardPlayer.java | 0 .../io/tofpu/speedbridge2/model/player/PlayerDatabase.java | 0 .../io/tofpu/speedbridge2/model/player/PlayerFactory.java | 0 .../io/tofpu/speedbridge2/model/player/PlayerHandler.java | 0 .../io/tofpu/speedbridge2/model/player/PlayerService.java | 0 .../java/io/tofpu/speedbridge2/model/player/ResetType.java | 0 .../player/exception/PlayerDatabaseExceptionWrapper.java | 0 .../player/exception/PlayerDeletionFailureException.java | 0 .../model/player/exception/PlayerLoadFailureException.java | 0 .../model/player/exception/PlayerUpdateFailureException.java | 0 .../player/exception/PlayerUpdateNameFailureException.java | 0 .../tofpu/speedbridge2/model/player/loader/PlayerLoader.java | 0 .../tofpu/speedbridge2/model/player/object/BridgePlayer.java | 0 .../speedbridge2/model/player/object/CommonBridgePlayer.java | 0 .../speedbridge2/model/player/object/DummyBridgePlayer.java | 0 .../io/tofpu/speedbridge2/model/player/object/GamePlayer.java | 0 .../speedbridge2/model/player/object/SenderBridgePlayer.java | 0 .../speedbridge2/model/player/object/block/BlockChoice.java | 0 .../speedbridge2/model/player/object/block/BlockDatabase.java | 0 .../tofpu/speedbridge2/model/player/object/score/Score.java | 0 .../speedbridge2/model/player/object/score/ScoreDatabase.java | 0 .../model/player/object/session/SessionScore.java | 0 .../speedbridge2/model/player/object/setup/SetupMeta.java | 0 .../speedbridge2/model/player/object/stat/PlayerStat.java | 0 .../speedbridge2/model/player/object/stat/PlayerStatType.java | 0 .../speedbridge2/model/player/object/stat/StatsDatabase.java | 0 .../model/player/object/stat/type/SimplePlayerStat.java | 0 .../model/support/placeholderapi/PluginExpansion.java | 0 .../support/placeholderapi/expansion/AbstractExpansion.java | 0 .../support/placeholderapi/expansion/ExpansionHandler.java | 0 .../expansion/expansions/BestScoreExpansion.java | 0 .../placeholderapi/expansion/expansions/BlocksExpansion.java | 0 .../expansion/expansions/IslandSlotExpansion.java | 0 .../expansion/expansions/LeaderboardExpansion.java | 0 .../expansion/expansions/PositionExpansion.java | 0 .../placeholderapi/expansion/expansions/TimerExpansion.java | 0 .../expansion/expansions/TotalStatsExpansion.java | 0 .../speedbridge2/model/support/worldedit/CuboidRegion.java | 0 .../io/tofpu/speedbridge2/model/support/worldedit/Vector.java | 0 .../java/io/tofpu/speedbridge2/plugin/SpeedBridgePlugin.java | 0 .../src/main/resources/plugin.yml | 0 155 files changed, 1 insertion(+), 5 deletions(-) rename speedbridge2-common/build.gradle.kts => gradle-wrapper.properties (100%) delete mode 100644 speedbridge2-spigot-api/build.gradle.kts rename {speedbridge2-spigot-plugin => spigot}/build.gradle.kts (97%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/AbstractLampRegistry.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/NameAndUUID.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictConsoleCondition.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictDummyModelCondition.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictSetupCondition.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictSetup.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/context/AbstractLampContext.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/parser/AbstractLampParser.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/parser/IslandParser.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/parser/NameAndUUIDParser.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/parser/PlayerUUIDParser.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/EmptyBridgePlayer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/GameListener.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/general/GeneralPluginListener.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/Message.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/ItemConfiguration.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GameCategory.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/manager/ConfigurationManager.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/database/DatabaseManager.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/database/Databases.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/Database.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseSet.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessagePairPresenter.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/umbrella/RunCommandItemAction.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/umbrella/SerializableUmbrellaItem.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/util/MessageUtil.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/util/ReflectionUtil.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/FileConfigurationType.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/IslandFactory.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/IslandRepository.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandLoadFailureException.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandBuildSetup.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/umbrella/IslandSetupUmbrella.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/island/object/umbrella/GameIslandUmbrella.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/leaderboard/Leaderboard.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/BoardPlayer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/ResetType.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDeletionFailureException.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerLoadFailureException.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerUpdateFailureException.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerUpdateNameFailureException.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/SenderBridgePlayer.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/type/SimplePlayerStat.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/ExpansionHandler.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BlocksExpansion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/Vector.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/java/io/tofpu/speedbridge2/plugin/SpeedBridgePlugin.java (100%) rename {speedbridge2-spigot-plugin => spigot}/src/main/resources/plugin.yml (100%) diff --git a/speedbridge2-common/build.gradle.kts b/gradle-wrapper.properties similarity index 100% rename from speedbridge2-common/build.gradle.kts rename to gradle-wrapper.properties diff --git a/settings.gradle.kts b/settings.gradle.kts index 66857bba..f3cad431 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,4 +1,2 @@ rootProject.name = "SpeedBridge2" -include("speedbridge2-common") -include("speedbridge2-spigot-api") -include("speedbridge2-spigot-plugin") +include("spigot") diff --git a/speedbridge2-spigot-api/build.gradle.kts b/speedbridge2-spigot-api/build.gradle.kts deleted file mode 100644 index e69de29b..00000000 diff --git a/speedbridge2-spigot-plugin/build.gradle.kts b/spigot/build.gradle.kts similarity index 97% rename from speedbridge2-spigot-plugin/build.gradle.kts rename to spigot/build.gradle.kts index 0d2ebbd1..68a87851 100644 --- a/speedbridge2-spigot-plugin/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -3,8 +3,6 @@ plugins { } dependencies { - implementation(project(":speedbridge2-common")) - compileOnly("org.xerial:sqlite-jdbc:3.36.0.3") compileOnly("com.sk89q:worldedit:6.0.0-SNAPSHOT") diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java b/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java rename to spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/AbstractLampRegistry.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/AbstractLampRegistry.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/AbstractLampRegistry.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/AbstractLampRegistry.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/NameAndUUID.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/NameAndUUID.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/NameAndUUID.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/NameAndUUID.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictConsoleCondition.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictConsoleCondition.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictConsoleCondition.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictConsoleCondition.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictDummyModelCondition.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictDummyModelCondition.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictDummyModelCondition.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictDummyModelCondition.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictSetupCondition.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictSetupCondition.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictSetupCondition.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/condition/RestrictSetupCondition.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictSetup.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictSetup.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictSetup.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictSetup.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/context/AbstractLampContext.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/AbstractLampContext.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/context/AbstractLampContext.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/context/AbstractLampContext.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/AbstractLampParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/AbstractLampParser.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/AbstractLampParser.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/parser/AbstractLampParser.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/IslandParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/IslandParser.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/IslandParser.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/parser/IslandParser.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/NameAndUUIDParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/NameAndUUIDParser.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/NameAndUUIDParser.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/parser/NameAndUUIDParser.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/PlayerUUIDParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/PlayerUUIDParser.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/PlayerUUIDParser.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/parser/PlayerUUIDParser.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/EmptyBridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/EmptyBridgePlayer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/EmptyBridgePlayer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/EmptyBridgePlayer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java rename to spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/GameListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/GameListener.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/GameListener.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/GameListener.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/general/GeneralPluginListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/GeneralPluginListener.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/general/GeneralPluginListener.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/general/GeneralPluginListener.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java rename to spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/Message.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/ItemConfiguration.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/ItemConfiguration.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/ItemConfiguration.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/ItemConfiguration.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GameCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GameCategory.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GameCategory.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GameCategory.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/manager/ConfigurationManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/manager/ConfigurationManager.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/manager/ConfigurationManager.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/manager/ConfigurationManager.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/DatabaseManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/DatabaseManager.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/DatabaseManager.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/DatabaseManager.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/Databases.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/Databases.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/Databases.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/Databases.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/Database.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/Database.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/Database.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/Database.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseSet.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseSet.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseSet.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseSet.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessagePairPresenter.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessagePairPresenter.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessagePairPresenter.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessagePairPresenter.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/umbrella/RunCommandItemAction.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/umbrella/RunCommandItemAction.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/umbrella/RunCommandItemAction.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/umbrella/RunCommandItemAction.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/umbrella/SerializableUmbrellaItem.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/umbrella/SerializableUmbrellaItem.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/umbrella/SerializableUmbrellaItem.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/umbrella/SerializableUmbrellaItem.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/MessageUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/MessageUtil.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/MessageUtil.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/MessageUtil.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/ReflectionUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/ReflectionUtil.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/ReflectionUtil.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/ReflectionUtil.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/FileConfigurationType.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/FileConfigurationType.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/FileConfigurationType.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/FileConfigurationType.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/IslandFactory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandFactory.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/IslandFactory.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandFactory.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/IslandRepository.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandRepository.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/IslandRepository.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandRepository.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandLoadFailureException.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandLoadFailureException.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandLoadFailureException.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandLoadFailureException.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandBuildSetup.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandBuildSetup.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandBuildSetup.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandBuildSetup.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/umbrella/IslandSetupUmbrella.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/umbrella/IslandSetupUmbrella.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/umbrella/IslandSetupUmbrella.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/umbrella/IslandSetupUmbrella.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/umbrella/GameIslandUmbrella.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/umbrella/GameIslandUmbrella.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/island/object/umbrella/GameIslandUmbrella.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/umbrella/GameIslandUmbrella.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/Leaderboard.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/Leaderboard.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/Leaderboard.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/Leaderboard.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/BoardPlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/BoardPlayer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/BoardPlayer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/BoardPlayer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/ResetType.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/ResetType.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/ResetType.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/ResetType.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDeletionFailureException.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDeletionFailureException.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDeletionFailureException.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDeletionFailureException.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerLoadFailureException.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerLoadFailureException.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerLoadFailureException.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerLoadFailureException.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerUpdateFailureException.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerUpdateFailureException.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerUpdateFailureException.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerUpdateFailureException.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerUpdateNameFailureException.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerUpdateNameFailureException.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerUpdateNameFailureException.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerUpdateNameFailureException.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/SenderBridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/SenderBridgePlayer.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/SenderBridgePlayer.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/SenderBridgePlayer.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/type/SimplePlayerStat.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/type/SimplePlayerStat.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/type/SimplePlayerStat.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/type/SimplePlayerStat.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/ExpansionHandler.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/ExpansionHandler.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/ExpansionHandler.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/ExpansionHandler.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BlocksExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BlocksExpansion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BlocksExpansion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BlocksExpansion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/Vector.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/Vector.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/Vector.java rename to spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/Vector.java diff --git a/speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/plugin/SpeedBridgePlugin.java b/spigot/src/main/java/io/tofpu/speedbridge2/plugin/SpeedBridgePlugin.java similarity index 100% rename from speedbridge2-spigot-plugin/src/main/java/io/tofpu/speedbridge2/plugin/SpeedBridgePlugin.java rename to spigot/src/main/java/io/tofpu/speedbridge2/plugin/SpeedBridgePlugin.java diff --git a/speedbridge2-spigot-plugin/src/main/resources/plugin.yml b/spigot/src/main/resources/plugin.yml similarity index 100% rename from speedbridge2-spigot-plugin/src/main/resources/plugin.yml rename to spigot/src/main/resources/plugin.yml From a73af544327ee172263e62cf95d75ec981cd2dff Mon Sep 17 00:00:00 2001 From: Tofpu Date: Fri, 23 Feb 2024 02:01:30 +0200 Subject: [PATCH 07/71] Make sure player is online before teleporting them to the lobby --- .../island/object/setup/IslandSetup.java | 20 +++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java index 1b2ac5eb..7e0d4b23 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java @@ -13,6 +13,7 @@ import org.bukkit.GameMode; import org.bukkit.Location; import org.bukkit.Material; +import org.bukkit.entity.Player; import java.util.UUID; @@ -169,10 +170,11 @@ public void cancel() { resetState(); - // teleporting the player to the lobby location - player.getPlayer() - .teleport(ConfigurationManager.INSTANCE.getLobbyCategory() - .getLobbyLocation()); + Player bukkitPlayer = player.getPlayer(); + if (bukkitPlayer != null && bukkitPlayer.isOnline()) { + // teleporting the player to the lobby location + bukkitPlayer.teleport(ConfigurationManager.INSTANCE.getLobbyCategory().getLobbyLocation()); + } resetPlot(); } @@ -181,10 +183,12 @@ private void resetState() { player.toggleSetup(); // inactivate the setup umbrella - umbrella.inactivate(player.getPlayer()); - - // setting the player's gamemode back to survival - player.getPlayer().setGameMode(GameMode.SURVIVAL); + Player bukkitPlayer = player.getPlayer(); + umbrella.inactivate(bukkitPlayer); + if (bukkitPlayer != null && bukkitPlayer.isOnline()) { + // setting the player's gamemode back to survival + bukkitPlayer.setGameMode(GameMode.SURVIVAL); + } } /** From 3e1225aeb0c8f322971e29cc89e806cdb23865d3 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Fri, 23 Feb 2024 02:03:47 +0200 Subject: [PATCH 08/71] Bump patch version to 1.1.4 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index c3a2b977..b19b2dd7 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ allprojects { } group = "io.tofpu.speedbridge2" - version = "1.1.3-" + "git rev-parse --short=8 HEAD".runCommand(rootDir) + version = "1.1.4-" + "git rev-parse --short=8 HEAD".runCommand(rootDir) repositories { mavenLocal() From f7f1e74b636c362b1521e8b4d2106c25fbef96a7 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Tue, 12 Mar 2024 06:41:50 +0200 Subject: [PATCH 09/71] Allow admins to change a player's selected block type via command --- .../command/parser/BridgePlayerParser.java | 33 +++++++++++++++++++ .../subcommand/SpeedBridgeCommand.java | 14 +++++++- .../speedbridge2/model/common/Message.java | 3 ++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/parser/BridgePlayerParser.java diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/BridgePlayerParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/BridgePlayerParser.java new file mode 100644 index 00000000..c75fdd60 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/BridgePlayerParser.java @@ -0,0 +1,33 @@ +package io.tofpu.speedbridge2.command.parser; + +import io.tofpu.dynamicclass.meta.AutoRegister; +import io.tofpu.speedbridge2.model.common.util.BridgeUtil; +import io.tofpu.speedbridge2.model.player.PlayerService; +import io.tofpu.speedbridge2.model.player.object.BridgePlayer; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import revxrsal.commands.exception.CommandErrorException; +import revxrsal.commands.process.ValueResolver; + +import static io.tofpu.speedbridge2.model.common.Message.INSTANCE; + +@AutoRegister +public class BridgePlayerParser extends AbstractLampParser { + private final PlayerService playerService; + + public BridgePlayerParser(PlayerService playerService, LampParseRegistry registry) { + super(BridgePlayer.class, registry); + this.playerService = playerService; + } + + @Override + BridgePlayer parse(ValueResolver.ValueResolverContext context) { + final String input = context.pop(); + Player player = Bukkit.getPlayer(input); + BridgePlayer bridgePlayer = player == null ? null : playerService.getIfPresent(player.getUniqueId()); + if (bridgePlayer == null) { + throw new CommandErrorException(BridgeUtil.miniMessageToLegacy(String.format(INSTANCE.mustBeOnline, input))); + } + return bridgePlayer; + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index a5101ab5..2b755162 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -25,12 +25,12 @@ import io.tofpu.speedbridge2.plugin.SpeedBridgePlugin; import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import revxrsal.commands.annotation.*; import revxrsal.commands.bukkit.annotation.CommandPermission; -import revxrsal.commands.bukkit.exception.MalformedEntitySelectorException; import java.util.ArrayList; import java.util.List; @@ -435,6 +435,18 @@ public String cancelSetup(final BridgePlayer bridgePlayer) { return INSTANCE.setupCancelled; } + @Subcommand("admin set selectedBlockType") + @Description("Changes the selected block type for a specified player") + @CommandPermission("speedbridge.admin.set.selectedBlockType") + @AutoComplete("* @players") + public String setSelectedBlockType(final Material material, final BridgePlayer target) { + if (!material.isSolid()) { + return String.format(INSTANCE.blockTypeMustBeSolid, material); + } + target.setChosenMaterial(material); + return String.format(INSTANCE.setChosenType, target.getName(), material); + } + private String hover(final String hoverContent, final String content) { return "" + content; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index 1ecc9e09..6f955dbb 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -119,6 +119,9 @@ public final class Message { "for %s seconds."; public final String invalidUuid = error + "%s is not a valid uuid format. Please try again"; + public final String mustBeOnline = error + "%s must be available to modify their data"; + public final String setChosenType = SUCCESS + "Changed %s's selected block type to %s"; + public final String blockTypeMustBeSolid = error + "%s must be a solid block to be selectable!"; private static String runCommand(final String command) { return "Click to run " + From dd2482ac92f009fca3003122f96024058a671e50 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Thu, 21 Dec 2023 23:12:06 +0200 Subject: [PATCH 10/71] Bump toolbar (formally umbrella) version to add support for 1.20.4 --- spigot/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 68a87851..947ef100 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -31,7 +31,7 @@ dependencies { exclude("com.sk89q", "worldedit") } - implementation("com.github.tofpu:umbrella:1.20-support-SNAPSHOT") + implementation("com.github.tofpu:umbrella:legacy-SNAPSHOT") } tasks { From f67c347c60029184ffaa8f71fcaa1e24d8c1e26d Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 03:30:39 +0200 Subject: [PATCH 11/71] Relocate spigot-related dependency to the appropriate module --- build.gradle.kts | 11 ----------- spigot/build.gradle.kts | 18 ++++++++++++++---- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index b19b2dd7..97eab998 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,17 +27,6 @@ allprojects { } dependencies { - compileOnly("org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT") - - implementation("com.github.Revxrsal.Lamp:common:3.1.7") - - implementation("net.kyori:adventure-api:4.10.1") - implementation("net.kyori:adventure-text-minimessage:4.10.1") - - implementation("com.github.tofpu:DynamicClass:1.1") { - exclude("com.google.guava", "guava") - } - testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") } diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 947ef100..0c7b531b 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -3,10 +3,16 @@ plugins { } dependencies { + compileOnly("org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT") + compileOnly("org.xerial:sqlite-jdbc:3.36.0.3") compileOnly("com.sk89q:worldedit:6.0.0-SNAPSHOT") + implementation("com.github.Revxrsal.Lamp:common:3.1.7") implementation("com.github.Revxrsal.Lamp:bukkit:3.1.7") + + implementation("net.kyori:adventure-api:4.10.1") + implementation("net.kyori:adventure-text-minimessage:4.10.1") implementation("net.kyori:adventure-platform-bukkit:4.0.1") implementation("com.github.tofpu:DynamicClass:1.1") { @@ -32,10 +38,13 @@ dependencies { } implementation("com.github.tofpu:umbrella:legacy-SNAPSHOT") + implementation("com.github.Tofpu:dynamicclass:1.3") { + exclude("com.google.guava", "guava") + } } tasks { - named("shadowJar") { + shadowJar { archiveName = "Speedbridge2-${version}-all.jar" dependencies { @@ -56,8 +65,9 @@ tasks { } runServer { - minecraftVersion("1.8.8") -// pluginJars(project.file("libs/worldedit-bukkit-7.2.15.jar")) - pluginJars(project.file("libs/worldedit-bukkit-6.1.jar")) +// minecraftVersion("1.8.8") +// pluginJars(project.file("libs/worldedit-bukkit-6.1.jar")) + minecraftVersion("1.20.4") + pluginJars(project.file("libs/worldedit-bukkit-7.3.0.jar")) } } \ No newline at end of file From 39fee3f36ff00b84f6a8d1a2fabb612c3f703218 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 04:47:52 +0200 Subject: [PATCH 12/71] Add more materials support to `admin set selectedBlockType` subcommand --- .../speedbridge2/command/CommandManager.java | 7 +- .../condition/annotation/MaterialType.java | 14 +++ .../command/parser/MaterialParser.java | 27 +++++ .../command/subcommand/CommandCompletion.java | 26 ++++- .../subcommand/SpeedBridgeCommand.java | 4 +- .../speedbridge2/model/common/Message.java | 1 + .../util/material/MaterialCategory.java | 6 ++ .../util/material/MultiMaterial.java | 102 ++++++++++++++++++ 8 files changed, 182 insertions(+), 5 deletions(-) create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/MaterialType.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/util/material/MaterialCategory.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java index cd4f24a0..77628a62 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java @@ -19,6 +19,7 @@ import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.CommonBridgePlayer; import io.tofpu.speedbridge2.model.player.object.SenderBridgePlayer; +import org.bukkit.Material; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; import revxrsal.commands.bukkit.BukkitCommandActor; @@ -91,9 +92,9 @@ public boolean isCustomType(final Class type) { private static void constructTabCompleter(final @NotNull IslandService islandService) { BridgeUtil.debug("Constructing tab completer..."); - commandHandler.getAutoCompleter() - .registerParameterSuggestions(Island.class, - new CommandCompletion(islandService)::islands); + CommandCompletion commandCompletion = new CommandCompletion(islandService); + commandHandler.getAutoCompleter().registerParameterSuggestions(Island.class, commandCompletion::islands); + commandHandler.getAutoCompleter().registerParameterSuggestions(Material.class, commandCompletion::materials); } private static void constructContext() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/MaterialType.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/MaterialType.java new file mode 100644 index 00000000..99c59e4e --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/MaterialType.java @@ -0,0 +1,14 @@ +package io.tofpu.speedbridge2.command.condition.annotation; + +import io.tofpu.speedbridge2.util.material.MaterialCategory; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.PARAMETER) +@Retention(RetentionPolicy.RUNTIME) +public @interface MaterialType { + MaterialCategory category(); +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java new file mode 100644 index 00000000..f57ccc17 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java @@ -0,0 +1,27 @@ +package io.tofpu.speedbridge2.command.parser; + +import io.tofpu.dynamicclass.meta.AutoRegister; +import io.tofpu.speedbridge2.util.material.MultiMaterial; +import io.tofpu.speedbridge2.model.common.Message; +import io.tofpu.speedbridge2.model.common.util.BridgeUtil; +import org.bukkit.Material; +import revxrsal.commands.exception.CommandErrorException; +import revxrsal.commands.process.ValueResolver; + +@AutoRegister +public class MaterialParser extends AbstractLampParser { + public MaterialParser(LampParseRegistry registry) { + super(Material.class, registry); + } + + @Override + Material parse(ValueResolver.ValueResolverContext context) { + System.out.println("MaterialParser#parse called"); + String materialName = context.pop(); + try { + return MultiMaterial.getOrThrow(materialName); + } catch (Exception e) { + throw new CommandErrorException(String.format(BridgeUtil.miniMessageToLegacy(Message.INSTANCE.invalidMaterial), materialName)); + } + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java index 4fd88f1e..302eb865 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java @@ -1,12 +1,17 @@ package io.tofpu.speedbridge2.command.subcommand; +import io.tofpu.speedbridge2.command.condition.annotation.MaterialType; import io.tofpu.speedbridge2.model.island.IslandService; +import io.tofpu.speedbridge2.util.material.MultiMaterial; import org.jetbrains.annotations.NotNull; import revxrsal.commands.command.CommandActor; import revxrsal.commands.command.ExecutableCommand; +import java.lang.reflect.Parameter; import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import java.util.concurrent.atomic.AtomicReference; public final class CommandCompletion { private final IslandService islandService; @@ -20,10 +25,29 @@ public CommandCompletion(final IslandService islandService) { final List suggestions = new ArrayList<>(); for (final Integer integer : islandService.getIntegerIslands()) { - suggestions.add(integer + ""); + suggestions.add(String.valueOf(integer)); } System.out.println("CommandCompletion#islands: suggestions - " + suggestions); return suggestions; } + + public @NotNull Collection materials(final List args, final CommandActor actor, + final ExecutableCommand command) { + AtomicReference annotationRef = new AtomicReference<>(); + boolean anyMatch = command.getParameters().stream().anyMatch(commandParameter -> { + Parameter javaParameter = commandParameter.getJavaParameter(); + boolean present = javaParameter.isAnnotationPresent(MaterialType.class); + if (present) { + annotationRef.set(javaParameter.getAnnotation(MaterialType.class)); + } + return present; + }); + + MaterialType annotation = annotationRef.get(); + if (!anyMatch) { + return MultiMaterial.materials(); + } + return MultiMaterial.materials(annotation.category()); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 2b755162..4ca3f6c1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -1,6 +1,7 @@ package io.tofpu.speedbridge2.command.subcommand; import io.tofpu.speedbridge2.command.NameAndUUID; +import io.tofpu.speedbridge2.command.condition.annotation.MaterialType; import io.tofpu.speedbridge2.command.condition.annotation.RestrictConsole; import io.tofpu.speedbridge2.command.condition.annotation.RestrictDummyModel; import io.tofpu.speedbridge2.command.condition.annotation.RestrictSetup; @@ -23,6 +24,7 @@ import io.tofpu.speedbridge2.model.player.object.CommonBridgePlayer; import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.plugin.SpeedBridgePlugin; +import io.tofpu.speedbridge2.util.material.MaterialCategory; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -439,7 +441,7 @@ public String cancelSetup(final BridgePlayer bridgePlayer) { @Description("Changes the selected block type for a specified player") @CommandPermission("speedbridge.admin.set.selectedBlockType") @AutoComplete("* @players") - public String setSelectedBlockType(final Material material, final BridgePlayer target) { + public String setSelectedBlockType(final @MaterialType(category = MaterialCategory.BLOCK) Material material, final BridgePlayer target) { if (!material.isSolid()) { return String.format(INSTANCE.blockTypeMustBeSolid, material); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index 6f955dbb..e6f8db5e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -122,6 +122,7 @@ public final class Message { public final String mustBeOnline = error + "%s must be available to modify their data"; public final String setChosenType = SUCCESS + "Changed %s's selected block type to %s"; public final String blockTypeMustBeSolid = error + "%s must be a solid block to be selectable!"; + public final String invalidMaterial = error + "Invalid material: %s"; private static String runCommand(final String command) { return "Click to run " + diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MaterialCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MaterialCategory.java new file mode 100644 index 00000000..68e01317 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MaterialCategory.java @@ -0,0 +1,6 @@ +package io.tofpu.speedbridge2.util.material; + +public enum MaterialCategory { + ANY, + BLOCK +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java new file mode 100644 index 00000000..5e6c69b1 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java @@ -0,0 +1,102 @@ +package io.tofpu.speedbridge2.util.material; + +import com.cryptomorin.xseries.XMaterial; +import io.tofpu.dynamicclass.meta.AutoRegister; +import org.bukkit.Material; + +import java.util.*; + +@AutoRegister +public final class MultiMaterial { + private static final Map GENERAL_MATERIAL_LOOKUP_MAP = new HashMap<>(); + private static final Set BLOCK_MATERIALS = new HashSet<>(); + + static { + for (Material material : Material.values()) { + addToRegistry(material); + } + for (XMaterial material : XMaterial.values()) { + Material parseMaterial = material.parseMaterial(); + if (parseMaterial == null) continue; + addToRegistry(parseMaterial); + } + } + + private static void addToRegistry(Material material) { + String materialName = material.name(); + GENERAL_MATERIAL_LOOKUP_MAP.put(materialName, material); + + if (material.isBlock()) { + BLOCK_MATERIALS.add(materialName); + } + } + + public static Material getOrThrow(String name) { + Material material = GENERAL_MATERIAL_LOOKUP_MAP.get(name); + if (material == null) { + throw new IllegalArgumentException("Unknown material: %s"); + } + return material; + } + + public static Collection materials() { + return materials(MaterialCategory.ANY); + } + + public static Collection materials(MaterialCategory category) { + switch (category) { + case ANY: + return Collections.unmodifiableCollection(GENERAL_MATERIAL_LOOKUP_MAP.keySet()); + case BLOCK: + System.out.println(String.format("#Materials() returning %s", BLOCK_MATERIALS)); + return Collections.unmodifiableCollection(BLOCK_MATERIALS); + default: + throw new RuntimeException(String.format("Unknown material category: %s", category)); + } + } + +// final static class MaterialResolvers { +// static final MaterialResolver BUKKIT_MATERIAL_RESOLVER = new BukkitMaterialResolver(); +// static final MaterialResolver XMATERIAL_MATERIAL_RESOLVER = new XMaterialResolver(); +// static final MaterialResolver EMPTY_RESOLVER = new EmptyResolver(); +// } +// +// static class XMaterialResolver extends MaterialResolver { +// @Override +// Material resolve(String name) { +// return XMaterial.matchXMaterial(name).orElseThrow(() -> new IllegalArgumentException("Unknown material: %s")).parseMaterial(); +// } +// } +// +// static class BukkitMaterialResolver extends MaterialResolver { +// @Override +// Material resolve(String name) { +// Material material = Material.matchMaterial(name); +// if (material == null) { +// throwException(name); +// } +// return material; +// } +// } +// +// static class EmptyResolver extends MaterialResolver { +// +// @Override +// Material resolve(String name) { +// throwException(name); +// return null; +// } +// } +// +// abstract static class MaterialResolver { +// abstract Material resolve(String name); +// +// void throwException(String name) throws RuntimeException { +// throw getException(name); +// } +// +// RuntimeException getException(String name) { +// return new IllegalArgumentException("Unknown material: %s"); +// } +// } +} From 885dc6c648f9c46235ac95e3a40aa8b29190bc4a Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:18:55 +0200 Subject: [PATCH 13/71] Relocate repositories and remove unneeded dependencies --- build.gradle.kts | 17 ----------------- spigot/build.gradle.kts | 12 ++++++++++++ 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 97eab998..1a65c3c9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,23 +14,6 @@ allprojects { group = "io.tofpu.speedbridge2" version = "1.1.4-" + "git rev-parse --short=8 HEAD".runCommand(rootDir) - repositories { - mavenLocal() - mavenCentral() - - maven("https://jitpack.io") - maven("https://repo.extendedclip.com/content/repositories/placeholderapi/") - maven("https://maven.enginehub.org/repo/") - maven("https://oss.sonatype.org/content/groups/public/") - maven("https://repo.codemc.org/repository/maven-public/") - maven("https://libraries.minecraft.net") - } - - dependencies { - testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") - } - publishing { publications { create("maven") { diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 0c7b531b..cc819c3c 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -2,6 +2,18 @@ plugins { id("xyz.jpenilla.run-paper") version "2.0.1" } +repositories { + mavenLocal() + mavenCentral() + + maven("https://jitpack.io") + maven("https://repo.extendedclip.com/content/repositories/placeholderapi/") + maven("https://maven.enginehub.org/repo/") + maven("https://oss.sonatype.org/content/groups/public/") + maven("https://repo.codemc.org/repository/maven-public/") + maven("https://libraries.minecraft.net") +} + dependencies { compileOnly("org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT") From e210c9f142e4d735cc5301670328a831bec6e796 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:19:25 +0200 Subject: [PATCH 14/71] Fix `lobby missing` message sent to non-opped player on join --- .../listener/general/PlayerConnectionListener.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java index e70dbba8..f4f88ce4 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java @@ -51,7 +51,9 @@ private void teleportToLobby(final Player player) { return; } - BridgeUtil.sendMessage(player, Message.INSTANCE.lobbyMissing); + if (player.isOp()) { + BridgeUtil.sendMessage(player, Message.INSTANCE.lobbyMissing); + } } if (location != null && player.getWorld().equals(location.getWorld())) { From 429249a5273fd65e8a445fa6b29a5c5db80c52ce Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:21:52 +0200 Subject: [PATCH 15/71] Send error message if provided block material matches with what the player has already selected --- .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 5 +++++ .../java/io/tofpu/speedbridge2/model/common/Message.java | 1 + 2 files changed, 6 insertions(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 4ca3f6c1..01756828 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -445,6 +445,11 @@ public String setSelectedBlockType(final @MaterialType(category = MaterialCatego if (!material.isSolid()) { return String.format(INSTANCE.blockTypeMustBeSolid, material); } + + if (target.getChoseMaterial() == material) { + return String.format(INSTANCE.blockAlreadySelected, target.getName(), material); + } + target.setChosenMaterial(material); return String.format(INSTANCE.setChosenType, target.getName(), material); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index e6f8db5e..5ee92268 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -123,6 +123,7 @@ public final class Message { public final String setChosenType = SUCCESS + "Changed %s's selected block type to %s"; public final String blockTypeMustBeSolid = error + "%s must be a solid block to be selectable!"; public final String invalidMaterial = error + "Invalid material: %s"; + public final String blockAlreadySelected = error + "Player %s has already selected material %s!"; private static String runCommand(final String command) { return "Click to run " + From ed1956782a951640c4d14c8c62b614e8a7bb405a Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:22:04 +0200 Subject: [PATCH 16/71] Let `randomJoin` subcommand optionally accept a target player --- .../command/subcommand/SpeedBridgeCommand.java | 17 ++++++++++++----- .../speedbridge2/model/common/Message.java | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 01756828..138017ad 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -333,12 +333,15 @@ public void onHelpCommand(final CommonBridgePlayer bridgePlayer) { @RestrictSetup @RestrictDummyModel @RestrictConsole - public String onRandomJoin(final BridgePlayer bridgePlayer) { - if (!isGeneralSetupComplete(bridgePlayer)) { + @AutoComplete("@players") + public String onRandomJoin( + final BridgePlayer sender, + @revxrsal.commands.annotation.Optional final BridgePlayer target) { + if (!isGeneralSetupComplete(sender)) { return ""; } - if (bridgePlayer.isPlaying()) { + if (sender.isPlaying()) { return INSTANCE.alreadyInAIsland; } @@ -349,9 +352,13 @@ public String onRandomJoin(final BridgePlayer bridgePlayer) { } final Island island = optionalIsland.get(); - island.join(bridgePlayer); + if (target == null || target.equals(sender)) { + island.join(sender); + return String.format(INSTANCE.joinedAnIsland, island.getSlot()); + } - return String.format(INSTANCE.joinedAnIsland, island.getSlot() + ""); + island.join(target); + return String.format(INSTANCE.otherJoinedAnIsland, target.getName(), island.getSlot()); } @NotNull diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index 5ee92268..576eb42c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -58,6 +58,7 @@ public final class Message { "> YOUR SCORES" + " " + SCORE_TITLE_BAR; public final String joinedAnIsland = SUCCESS + "You're now on island %s!"; + public final String otherJoinedAnIsland = SUCCESS + "Player %s is now on island %s!"; public final String leftAnIsland = SUCCESS + "You left from island" + " %s!"; public final String notInAIsland = error + "You're not on an island!"; public final String deletedAnIsland = SUCCESS + "Island %s has been deleted!"; From b5a2ac38b7461f42adc74f90c245b1817a06620f Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:32:29 +0200 Subject: [PATCH 17/71] Abort game if player world changes while in a game --- .../listener/island/IslandRegionListener.java | 17 +++++++++++++++++ .../model/island/object/GameIsland.java | 4 ++++ .../model/island/object/Island.java | 12 ++++++++++-- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java index 63dc1df3..a771dc93 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java @@ -9,6 +9,7 @@ import io.tofpu.speedbridge2.model.support.worldedit.Vector; import org.bukkit.Location; import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.jetbrains.annotations.NotNull; @@ -20,6 +21,22 @@ public IslandRegionListener(final PlayerService playerService) { this.playerService = playerService; } + @EventHandler + private void onWorldChange(PlayerChangedWorldEvent event) { + final BridgePlayer bridgePlayer = playerService.getIfPresent(event.getPlayer() + .getUniqueId()); + if (bridgePlayer == null ||!bridgePlayer.isPlaying()) { + return; + } + + final GameIsland currentGame = bridgePlayer.getCurrentGame(); + if (currentGame == null) { + return; + } + + currentGame.abortGame(); + } + @EventHandler(ignoreCancelled = true) // skipcq: JAVA-W0324 private void onPlayerMove(final @NotNull PlayerMoveEvent event) { final BridgePlayer bridgePlayer = playerService.getIfPresent(event.getPlayer() diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java index 0aa88406..7a15c1f6 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java @@ -150,4 +150,8 @@ public IslandLand getIslandPlot() { public void stopGame() { getIsland().leaveGame(getGamePlayer().getBridgePlayer()); } + + public void abortGame() { + getIsland().abortGame(getGamePlayer().getBridgePlayer()); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java index 3f857deb..a7c7a1a8 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java @@ -100,13 +100,17 @@ public Map.Entry join(final BridgePlayer player) { return new AbstractMap.SimpleImmutableEntry<>(gamePlayer, gameIsland); } + public void leaveGame(final BridgePlayer bridgePlayer) { + leaveGame(bridgePlayer, true); + } + /** * When a player leaves the island, the island is removed from the island map and the * game player is removed from the game player map * * @param bridgePlayer The bridge player that is leaving the game island. */ - public void leaveGame(final BridgePlayer bridgePlayer) { + public void leaveGame(final BridgePlayer bridgePlayer, final boolean clearInventory) { final GamePlayer gamePlayer = bridgePlayer.getGamePlayer(); if (gamePlayer == null) { return; @@ -118,7 +122,7 @@ public void leaveGame(final BridgePlayer bridgePlayer) { } final Player player = bridgePlayer.getPlayer(); - if (player != null) { + if (player != null && clearInventory) { player.getInventory() .clear(); } @@ -130,6 +134,10 @@ public void leaveGame(final BridgePlayer bridgePlayer) { gameIsland.remove(); } + public void abortGame(BridgePlayer bridgePlayer) { + leaveGame(bridgePlayer, false); + } + /** * Find the game island that the player is currently in * From 255357c57c378ade13d8122c934a24d766406477 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:33:33 +0200 Subject: [PATCH 18/71] Fix IllegalArgumentException exception when running `randomJoin` subcommand while no islands are found --- .../command/subcommand/SpeedBridgeCommand.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 138017ad..5c5a1616 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -369,7 +369,12 @@ private Optional getRandomIsland() { .filter(Island::isReady) .collect(Collectors.toList()); - return Optional.ofNullable(filteredIslands.get(ThreadLocalRandom.current().nextInt(filteredIslands.size()))); + if (filteredIslands.isEmpty()) { + return Optional.empty(); + } + + int randomIndex = ThreadLocalRandom.current().nextInt(filteredIslands.size()); + return Optional.ofNullable(filteredIslands.get(randomIndex)); } @Subcommand("setup") From 91e03d1882950c5628f5f36b37273aab59e7ceee Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:53:48 +0200 Subject: [PATCH 19/71] Use newer umbrella dependency (`toolbar`) --- spigot/build.gradle.kts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index cc819c3c..3c970dd8 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -49,7 +49,7 @@ dependencies { exclude("com.sk89q", "worldedit") } - implementation("com.github.tofpu:umbrella:legacy-SNAPSHOT") + implementation("com.github.tofpu:toolbar:v1-SNAPSHOT") implementation("com.github.Tofpu:dynamicclass:1.3") { exclude("com.google.guava", "guava") } @@ -79,7 +79,8 @@ tasks { runServer { // minecraftVersion("1.8.8") // pluginJars(project.file("libs/worldedit-bukkit-6.1.jar")) - minecraftVersion("1.20.4") +// minecraftVersion("1.20.4") + minecraftVersion("1.19.4") pluginJars(project.file("libs/worldedit-bukkit-7.3.0.jar")) } } \ No newline at end of file From 90e8adc3c58861e0461e01ef6c2a6e38c2c07e8c Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:59:54 +0200 Subject: [PATCH 20/71] Exclude sender from autocompletion of online players --- .../speedbridge2/command/CommandManager.java | 1 + .../command/subcommand/CommandCompletion.java | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java index 77628a62..df35b993 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java @@ -95,6 +95,7 @@ private static void constructTabCompleter(final @NotNull IslandService islandSer CommandCompletion commandCompletion = new CommandCompletion(islandService); commandHandler.getAutoCompleter().registerParameterSuggestions(Island.class, commandCompletion::islands); commandHandler.getAutoCompleter().registerParameterSuggestions(Material.class, commandCompletion::materials); + commandHandler.getAutoCompleter().registerSuggestion("players", commandCompletion::players); } private static void constructContext() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java index 302eb865..835882e6 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java @@ -3,7 +3,10 @@ import io.tofpu.speedbridge2.command.condition.annotation.MaterialType; import io.tofpu.speedbridge2.model.island.IslandService; import io.tofpu.speedbridge2.util.material.MultiMaterial; +import org.bukkit.Bukkit; +import org.bukkit.entity.HumanEntity; import org.jetbrains.annotations.NotNull; +import revxrsal.commands.bukkit.BukkitCommandActor; import revxrsal.commands.command.CommandActor; import revxrsal.commands.command.ExecutableCommand; @@ -12,6 +15,7 @@ import java.util.Collection; import java.util.List; import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; public final class CommandCompletion { private final IslandService islandService; @@ -21,7 +25,7 @@ public CommandCompletion(final IslandService islandService) { } public @NotNull List islands(final List args, final CommandActor actor, - final ExecutableCommand command) { + final ExecutableCommand command) { final List suggestions = new ArrayList<>(); for (final Integer integer : islandService.getIntegerIslands()) { @@ -50,4 +54,14 @@ public CommandCompletion(final IslandService islandService) { } return MultiMaterial.materials(annotation.category()); } + + public Collection players(@NotNull List args, @NotNull CommandActor sender, @NotNull ExecutableCommand executableCommand) { + return Bukkit.getOnlinePlayers().stream() + .filter(player -> !((BukkitCommandActor) sender).isPlayer() + || ((BukkitCommandActor) sender).requirePlayer().canSee(player) + && !((BukkitCommandActor) sender).getSender().equals(player) + ).map(HumanEntity::getName) + .collect(Collectors.toList()); + + } } From 7a40c6d883d646b6e9ccf11c4e5d917eb26806f7 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 06:00:14 +0200 Subject: [PATCH 21/71] Bump Lamp version to `3.2.1` from `3.1.7` --- spigot/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 3c970dd8..26bd60c4 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -20,8 +20,8 @@ dependencies { compileOnly("org.xerial:sqlite-jdbc:3.36.0.3") compileOnly("com.sk89q:worldedit:6.0.0-SNAPSHOT") - implementation("com.github.Revxrsal.Lamp:common:3.1.7") - implementation("com.github.Revxrsal.Lamp:bukkit:3.1.7") + implementation("com.github.Revxrsal.Lamp:common:3.2.1") + implementation("com.github.Revxrsal.Lamp:bukkit:3.2.1") implementation("net.kyori:adventure-api:4.10.1") implementation("net.kyori:adventure-text-minimessage:4.10.1") From f475e83e5a42a6c95e03c9d46a43a85f4366a01e Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 06:02:31 +0200 Subject: [PATCH 22/71] Reformat code --- .../io/tofpu/speedbridge2/SpeedBridge.java | 16 +- .../AbstractCommandConditionWrapper.java | 6 +- .../condition/LampConditionRegistry.java | 3 +- .../condition/annotation/RestrictConsole.java | 3 +- .../annotation/RestrictDummyModel.java | 3 +- .../command/context/LampContextRegistry.java | 3 +- .../command/parser/LampParseRegistry.java | 3 +- .../command/parser/MaterialParser.java | 2 +- .../command/parser/annotation/PlayerUUID.java | 3 +- .../subcommand/HelpCommandGenerator.java | 8 +- .../subcommand/SpeedBridgeCommand.java | 38 ++-- .../subcommand/debug/DestroyableLand.java | 6 +- .../command/subcommand/debug/GameIsland2.java | 8 +- .../debug/SpeedBridgeDebugCommand.java | 1 - .../game/GameInteractionListener.java | 12 +- .../listener/game/GameProtectionListener.java | 4 +- .../island/IslandProtectionListener.java | 4 +- .../listener/island/IslandRegionListener.java | 6 +- .../listener/wrapper/EventWrapper.java | 10 +- .../listener/wrapper/SpeedBridgeListener.java | 2 +- .../wrappers/BlockBreakEventWrapper.java | 14 +- .../wrappers/BlockPlaceEventWrapper.java | 14 +- .../wrappers/PlayerInteractEventWrapper.java | 14 +- .../model/blockmenu/BlockMenuManager.java | 8 +- .../blockmenu/holder/BlockMenuHolder.java | 3 +- .../blockmenu/listener/BlockMenuListener.java | 2 +- .../speedbridge2/model/common/Message.java | 62 +++--- .../model/common/PlayerNameCache.java | 36 ++-- .../model/common/PluginExecutor.java | 16 +- .../common/config/PluginConfiguration.java | 5 +- .../config/category/BlockMenuCategory.java | 17 +- .../config/category/GeneralCategory.java | 16 +- .../config/category/LeaderboardCategory.java | 2 +- .../common/config/category/LobbyCategory.java | 17 +- .../AbstractItemActionSerializer.java | 3 +- .../config/serializer/ItemMetaSerializer.java | 3 +- .../serializer/ItemStackSerializer.java | 3 +- .../config/serializer/LocationSerializer.java | 5 +- .../config/serializer/MaterialSerializer.java | 3 +- .../serializer/UmbrellaItemSerializer.java | 3 +- .../database/wrapper/DatabaseQuery.java | 8 +- .../database/wrapper/DatabaseTable.java | 10 +- .../presenter/MessagePresenterBase.java | 1 + .../presenter/MessagePresenterHolder.java | 1 + .../presenter/MessagePresenterHolderImpl.java | 2 +- .../presenter/type/MessageTreePresenter.java | 2 +- .../model/common/util/BridgeUtil.java | 33 ++- .../model/common/util/DatabaseUtil.java | 6 +- .../model/common/util/FileUtil.java | 6 +- .../model/common/util/IgnoreMessage.java | 3 +- .../model/common/util/UmbrellaUtil.java | 2 +- .../model/common/util/UpdateChecker.java | 193 +++++++++--------- .../model/common/wrapper/ConfigurateFile.java | 10 +- .../model/island/IslandDatabase.java | 9 +- .../model/island/IslandHandler.java | 11 +- .../model/island/IslandService.java | 10 +- .../model/island/arena/ArenaManager.java | 25 ++- .../IslandDatabaseExceptionWrapper.java | 2 +- .../model/island/object/GameIsland.java | 8 +- .../model/island/object/Island.java | 59 +++--- .../model/island/object/IslandBuild.java | 6 +- .../model/island/object/IslandBuilder.java | 8 +- .../model/island/object/land/IslandLand.java | 10 +- .../island/object/setup/IslandSetup.java | 4 +- .../object/setup/IslandSetupFactory.java | 4 +- .../object/setup/IslandSetupHandler.java | 15 +- .../model/leaderboard/IslandBoard.java | 17 +- .../model/leaderboard/LeaderboardMap.java | 4 +- .../model/leaderboard/loader/BoardLoader.java | 3 +- .../leaderboard/loader/IslandLoader.java | 2 +- .../loader/PlayerPositionLoader.java | 6 +- .../leaderboard/object/IslandBoardPlayer.java | 10 +- .../model/player/PlayerDatabase.java | 4 +- .../model/player/PlayerFactory.java | 4 +- .../model/player/PlayerHandler.java | 8 +- .../model/player/PlayerService.java | 6 +- .../PlayerDatabaseExceptionWrapper.java | 2 +- .../model/player/loader/PlayerLoader.java | 13 +- .../model/player/object/BridgePlayer.java | 95 ++++----- .../player/object/CommonBridgePlayer.java | 2 +- .../player/object/DummyBridgePlayer.java | 12 +- .../model/player/object/GamePlayer.java | 33 +-- .../player/object/block/BlockChoice.java | 1 + .../player/object/block/BlockDatabase.java | 2 +- .../model/player/object/score/Score.java | 12 +- .../player/object/score/ScoreDatabase.java | 10 +- .../player/object/session/SessionScore.java | 1 + .../model/player/object/setup/SetupMeta.java | 2 + .../model/player/object/stat/PlayerStat.java | 1 + .../player/object/stat/PlayerStatType.java | 2 +- .../player/object/stat/StatsDatabase.java | 28 +-- .../placeholderapi/PluginExpansion.java | 2 +- .../expansion/AbstractExpansion.java | 5 +- .../expansions/BestScoreExpansion.java | 2 +- .../expansions/IslandSlotExpansion.java | 2 +- .../expansions/LeaderboardExpansion.java | 10 +- .../expansions/PositionExpansion.java | 2 +- .../expansion/expansions/TimerExpansion.java | 2 +- .../expansions/TotalStatsExpansion.java | 2 +- .../model/support/worldedit/CuboidRegion.java | 2 +- 100 files changed, 561 insertions(+), 583 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java b/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java index 8c2a6f0f..4b6ff30c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java @@ -50,6 +50,13 @@ public SpeedBridge(final JavaPlugin javaPlugin) { this.leaderboard = new Leaderboard(playerService); } + public static BukkitAudiences getAdventure() { + if (adventure == null) { + throw new IllegalStateException("Tried to access Adventure when the plugin was disabled!"); + } + return adventure; + } + public void load() { // reset the world, in-case it does exist arenaManager.resetWorld(); @@ -84,7 +91,7 @@ public void enable() { if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { ExpansionHandler.INSTANCE.load(); - + log("Hooking into PlaceholderAPI..."); new PluginExpansion(javaPlugin, playerService); } @@ -177,11 +184,4 @@ public void shutdown() { private void log(final String content) { javaPlugin.getLogger().info(content); } - - public static BukkitAudiences getAdventure() { - if(adventure == null) { - throw new IllegalStateException("Tried to access Adventure when the plugin was disabled!"); - } - return adventure; - } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java index 7e1401d6..8b872039 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java @@ -14,7 +14,7 @@ public abstract class AbstractCommandConditionWrapper implements CommandConditio private final Class type; public AbstractCommandConditionWrapper(final Class type, - final LampConditionRegistry registry) { + final LampConditionRegistry registry) { this.type = type; registry.register(type, this); } @@ -35,8 +35,8 @@ public final void test( } abstract void execute(@NotNull CommandActor actor, - @NotNull ExecutableCommand command, - @NotNull @Unmodifiable List arguments); + @NotNull ExecutableCommand command, + @NotNull @Unmodifiable List arguments); public Class getType() { return type; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java index ffd31bf1..fdceba3e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java @@ -7,4 +7,5 @@ @AutoRegister public final class LampConditionRegistry extends AbstractLampRegistry, AbstractCommandConditionWrapper> {} + extends Annotation>, AbstractCommandConditionWrapper> { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java index d897cd47..f1c1a12a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java @@ -7,4 +7,5 @@ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) -public @interface RestrictConsole {} +public @interface RestrictConsole { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java index 6dbe5cdd..4c27974e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java @@ -7,4 +7,5 @@ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) -public @interface RestrictDummyModel {} +public @interface RestrictDummyModel { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java index 24e7a403..5e4c3b34 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java @@ -5,4 +5,5 @@ @AutoRegister public final class LampContextRegistry extends AbstractLampRegistry, - AbstractLampContext> {} + AbstractLampContext> { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java index 326bc9ea..e281c571 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java @@ -5,4 +5,5 @@ @AutoRegister public final class LampParseRegistry extends AbstractLampRegistry, - AbstractLampParser> {} + AbstractLampParser> { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java index f57ccc17..ab45d13f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java @@ -1,9 +1,9 @@ package io.tofpu.speedbridge2.command.parser; import io.tofpu.dynamicclass.meta.AutoRegister; -import io.tofpu.speedbridge2.util.material.MultiMaterial; import io.tofpu.speedbridge2.model.common.Message; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; +import io.tofpu.speedbridge2.util.material.MultiMaterial; import org.bukkit.Material; import revxrsal.commands.exception.CommandErrorException; import revxrsal.commands.process.ValueResolver; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java index c7f708d1..ff22cc6c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java @@ -7,4 +7,5 @@ @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) -public @interface PlayerUUID {} +public @interface PlayerUUID { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java index c55fbb5e..ced165de 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java @@ -10,11 +10,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; -import revxrsal.commands.annotation.Description; -import revxrsal.commands.annotation.Flag; -import revxrsal.commands.annotation.Optional; -import revxrsal.commands.annotation.Subcommand; -import revxrsal.commands.annotation.Usage; +import revxrsal.commands.annotation.*; import java.lang.reflect.Method; import java.lang.reflect.Parameter; @@ -75,7 +71,7 @@ public static void generateHelpCommand(final @NotNull Plugin plugin) { } public static String generateUsageOfMethod(final Subcommand subcommand, - final Method method) { + final Method method) { final StringBuilder builder = new StringBuilder(); if (method.isAnnotationPresent(Usage.class)) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 5c5a1616..1c20768d 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -44,17 +44,15 @@ import java.util.stream.Collectors; import static io.tofpu.speedbridge2.model.common.Message.INSTANCE; -import static io.tofpu.speedbridge2.model.common.util.MessageUtil.Symbols.ARROW_RIGHT; -import static io.tofpu.speedbridge2.model.common.util.MessageUtil.Symbols.CHECK_MARK; -import static io.tofpu.speedbridge2.model.common.util.MessageUtil.Symbols.CROSS; +import static io.tofpu.speedbridge2.model.common.util.MessageUtil.Symbols.*; @Command({"sb", "speedbridge"}) public final class SpeedBridgeCommand { private static final String EMPTY_SCORE = "You haven't scored anything yet"; private static final String FORMATTED_SCORE = " " + CROSS.getSymbol() + " " + "Island " + - "%s" + " " + ARROW_RIGHT.getSymbol() + - " %s seconds"; + "%s" + " " + ARROW_RIGHT.getSymbol() + + " %s seconds"; private final PlayerService playerService; private final IslandService islandService; @@ -90,7 +88,7 @@ public void onLobbySet(final BridgePlayer bridgePlayer) { @RestrictDummyModel @RestrictConsole public String onIslandCreate(final BridgePlayer player, final int slot, final String schematic, - @revxrsal.commands.annotation.Optional @Flag("c") String category) { + @revxrsal.commands.annotation.Optional @Flag("c") String category) { if (!isGeneralSetupComplete(player)) { return ""; } @@ -138,7 +136,7 @@ public String onIslandDelete(final Island target) { @CommandPermission("speedbridge.player.reset") @AutoComplete("@players *") public void onPlayerReset(final CommonBridgePlayer sender, final @PlayerUUID NameAndUUID target, - final ResetType type) { + final ResetType type) { String targetName = target.playerName(); UUID targetId = target.playerUUID(); @@ -166,8 +164,8 @@ public void onPlayerReset(final CommonBridgePlayer sender, final @PlayerUUID @CommandPermission("speedbridge.island.modify") public String onIslandSelect(final Island island, final @revxrsal.commands.annotation.Optional @Flag(value = "c") @Default("") - String category, final @revxrsal.commands.annotation.Optional - @Flag(value = "s") @Default("") String schematic) { + String category, final @revxrsal.commands.annotation.Optional + @Flag(value = "s") @Default("") String schematic) { final int slot = island.getSlot(); if (!category.isEmpty()) { @@ -211,7 +209,7 @@ private boolean isGeneralSetupComplete(final BridgePlayer bridgePlayer) { return false; } - @Command({"sb join", "speedbridge join" ,"join"}) + @Command({"sb join", "speedbridge join", "join"}) @Usage("join ") @Description("Join an island") @RestrictDummyModel @@ -233,13 +231,13 @@ public String onIslandJoin(final BridgePlayer bridgePlayer, final Island island) return String.format(INSTANCE.joinedAnIsland, island.getSlot() + ""); } - @Command({"sb leave", "speedbridge leave" ,"leave"}) + @Command({"sb leave", "speedbridge leave", "leave"}) @Description("Leave an island") public void onIslandLeave(final GameIsland gameIsland) { gameIsland.stopGame(); } - @Command({"sb score", "speedbridge score" ,"score"}) + @Command({"sb score", "speedbridge score", "score"}) @Description("Shows a list of your scores") @RestrictConsole public String onScore(final BridgePlayer bridgePlayer) { @@ -281,15 +279,15 @@ public String showIslands() { final String title = "Island Analysis\n"; final String schematicHover = title + "Schematic: " + - (island.getSchematicClipboard() == null ? - "" + CROSS.getSymbol() : - "" + CHECK_MARK.getSymbol()); + (island.getSchematicClipboard() == null ? + "" + CROSS.getSymbol() : + "" + CHECK_MARK.getSymbol()); final String spawnPointHover = "Spawnpoint: " + - (island.getAbsoluteLocation() == null ? - "" + CROSS.getSymbol() : - "" + - CHECK_MARK.getSymbol()); + (island.getAbsoluteLocation() == null ? + "" + CROSS.getSymbol() : + "" + + CHECK_MARK.getSymbol()); builder.pair("Island-" + island.getSlot(), hover( schematicHover + "\n" + spawnPointHover, island.isReady() ? @@ -328,7 +326,7 @@ public void onHelpCommand(final CommonBridgePlayer bridgePlayer) { HelpCommandGenerator.showHelpMessage(player); } - @Command({"sb randomjoin", "speedbridge randomjoin" ,"randomjoin"}) + @Command({"sb randomjoin", "speedbridge randomjoin", "randomjoin"}) @Description("Chooses a random island for you") @RestrictSetup @RestrictDummyModel diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java index 79437af0..650290a6 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java @@ -1,11 +1,9 @@ package io.tofpu.speedbridge2.command.subcommand.debug; import com.sk89q.worldedit.EditSession; -import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.extent.clipboard.Clipboard; -import com.sk89q.worldedit.function.operation.ForwardExtentCopy; import com.sk89q.worldedit.function.operation.Operation; import com.sk89q.worldedit.function.operation.Operations; import io.tofpu.multiworldedit.EditSessionWrapper; @@ -26,7 +24,7 @@ public DestroyableLand(IslandLand islandLand) { public void generatePlot() throws WorldEditException { // TODO: Make this generation operation async BridgeUtil.debug("Generating plot at " + getPlotLocation().toString() + " for " + - "island " + getIsland().getSlot()); + "island " + getIsland().getSlot()); final BukkitWorld bukkitWorld = new BukkitWorld(getWorld()); @@ -50,7 +48,7 @@ public void generatePlot() throws WorldEditException { public void destroy() { // TODO: Make this generation operation async BridgeUtil.debug("Generating plot at " + getPlotLocation().toString() + " for " + - "island " + getIsland().getSlot()); + "island " + getIsland().getSlot()); final BukkitWorld bukkitWorld = new BukkitWorld(getWorld()); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java index 9c88ca4f..76b821b7 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java @@ -11,12 +11,12 @@ public GameIsland2(final ArenaManager arenaManager, GameIsland gameIsland) { super(arenaManager, gameIsland.getIsland(), gameIsland.getGamePlayer()); } - public void setIslandPlot(final IslandLand islandLand) { - this.islandLand = islandLand; - } - @Override public IslandLand getIslandPlot() { return this.islandLand; } + + public void setIslandPlot(final IslandLand islandLand) { + this.islandLand = islandLand; + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java index 3c0e128e..9b2c96e6 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java @@ -5,7 +5,6 @@ import io.tofpu.speedbridge2.model.island.arena.ArenaManager; import io.tofpu.speedbridge2.model.island.object.GameIsland; import io.tofpu.speedbridge2.model.island.object.Island; -import io.tofpu.speedbridge2.model.island.object.land.IslandLand; import io.tofpu.speedbridge2.model.player.object.GamePlayer; import org.bukkit.Location; import org.bukkit.entity.Player; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java index 18de023c..a98dbde3 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java @@ -1,17 +1,17 @@ package io.tofpu.speedbridge2.listener.game; import io.tofpu.dynamicclass.meta.AutoRegister; +import io.tofpu.speedbridge2.listener.GameListener; +import io.tofpu.speedbridge2.listener.wrapper.wrappers.BlockPlaceEventWrapper; +import io.tofpu.speedbridge2.listener.wrapper.wrappers.PlayerInteractEventWrapper; import io.tofpu.speedbridge2.model.common.Message; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.island.object.GameIsland; -import io.tofpu.speedbridge2.model.player.object.score.Score; -import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; +import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.GamePlayer; -import io.tofpu.speedbridge2.listener.GameListener; -import io.tofpu.speedbridge2.listener.wrapper.wrappers.BlockPlaceEventWrapper; -import io.tofpu.speedbridge2.listener.wrapper.wrappers.PlayerInteractEventWrapper; +import io.tofpu.speedbridge2.model.player.object.score.Score; +import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; import org.bukkit.event.EventHandler; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java index c68138a2..0a70b067 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java @@ -1,9 +1,9 @@ package io.tofpu.speedbridge2.listener.game; import io.tofpu.dynamicclass.meta.AutoRegister; -import io.tofpu.speedbridge2.model.player.object.BridgePlayer; -import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.listener.GameListener; +import io.tofpu.speedbridge2.model.player.PlayerService; +import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.EntityDamageEvent; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java index 2eea23d3..6ff94672 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java @@ -1,11 +1,11 @@ package io.tofpu.speedbridge2.listener.island; import io.tofpu.dynamicclass.meta.AutoRegister; -import io.tofpu.speedbridge2.model.island.object.GameIsland; -import io.tofpu.speedbridge2.model.player.object.GamePlayer; import io.tofpu.speedbridge2.listener.GameListener; import io.tofpu.speedbridge2.listener.wrapper.wrappers.BlockBreakEventWrapper; import io.tofpu.speedbridge2.listener.wrapper.wrappers.BlockPlaceEventWrapper; +import io.tofpu.speedbridge2.model.island.object.GameIsland; +import io.tofpu.speedbridge2.model.player.object.GamePlayer; import io.tofpu.speedbridge2.model.support.worldedit.CuboidRegion; import io.tofpu.speedbridge2.model.support.worldedit.Vector; import org.bukkit.Location; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java index a771dc93..be4d54cb 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java @@ -1,10 +1,10 @@ package io.tofpu.speedbridge2.listener.island; import io.tofpu.dynamicclass.meta.AutoRegister; +import io.tofpu.speedbridge2.listener.GameListener; import io.tofpu.speedbridge2.model.island.object.GameIsland; import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; -import io.tofpu.speedbridge2.listener.GameListener; import io.tofpu.speedbridge2.model.support.worldedit.CuboidRegion; import io.tofpu.speedbridge2.model.support.worldedit.Vector; import org.bukkit.Location; @@ -25,7 +25,7 @@ public IslandRegionListener(final PlayerService playerService) { private void onWorldChange(PlayerChangedWorldEvent event) { final BridgePlayer bridgePlayer = playerService.getIfPresent(event.getPlayer() .getUniqueId()); - if (bridgePlayer == null ||!bridgePlayer.isPlaying()) { + if (bridgePlayer == null || !bridgePlayer.isPlaying()) { return; } @@ -41,7 +41,7 @@ private void onWorldChange(PlayerChangedWorldEvent event) { private void onPlayerMove(final @NotNull PlayerMoveEvent event) { final BridgePlayer bridgePlayer = playerService.getIfPresent(event.getPlayer() .getUniqueId()); - if (bridgePlayer == null ||!bridgePlayer.isPlaying()) { + if (bridgePlayer == null || !bridgePlayer.isPlaying()) { return; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java index 66b7bf11..0edaac16 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java @@ -13,16 +13,16 @@ public class EventWrapper extends Event { private final @NotNull BridgePlayer bridgePlayer; private final @NotNull E event; - public static HandlerList getHandlerList() { - return handlers; - } - public EventWrapper(final @NotNull BridgePlayer bridgePlayer, - final @NotNull E event) { + final @NotNull E event) { this.bridgePlayer = bridgePlayer; this.event = event; } + public static HandlerList getHandlerList() { + return handlers; + } + public @NotNull E getEvent() { return event; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java index 2ee940f5..9ba2f2fb 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java @@ -55,7 +55,7 @@ private void onPlayerInteract(final @NotNull PlayerInteractEvent event) { final EventWrapper eventWrapper = PlayerInteractEventWrapper.wrap(playerService, event); if (event.getAction() != Action.PHYSICAL || !eventWrapper.isPlaying() || - !eventWrapper.hasTimerStarted()) { + !eventWrapper.hasTimerStarted()) { return; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java index 7a3dd9c0..4ed1ae24 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java @@ -1,19 +1,19 @@ package io.tofpu.speedbridge2.listener.wrapper.wrappers; -import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.listener.wrapper.EventWrapper; +import io.tofpu.speedbridge2.model.player.PlayerService; import org.bukkit.event.block.BlockBreakEvent; import org.jetbrains.annotations.NotNull; public final class BlockBreakEventWrapper extends EventWrapper { - public static BlockBreakEventWrapper wrap(final PlayerService playerService, - final @NotNull BlockBreakEvent event) { - return new BlockBreakEventWrapper(playerService, event); - } - private BlockBreakEventWrapper(final PlayerService playerService, - final @NotNull BlockBreakEvent event) { + final @NotNull BlockBreakEvent event) { super(playerService.getOrDefault(event.getPlayer() .getUniqueId()), event); } + + public static BlockBreakEventWrapper wrap(final PlayerService playerService, + final @NotNull BlockBreakEvent event) { + return new BlockBreakEventWrapper(playerService, event); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java index 4c894643..1625a152 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java @@ -1,19 +1,19 @@ package io.tofpu.speedbridge2.listener.wrapper.wrappers; -import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.listener.wrapper.EventWrapper; +import io.tofpu.speedbridge2.model.player.PlayerService; import org.bukkit.event.block.BlockPlaceEvent; import org.jetbrains.annotations.NotNull; public final class BlockPlaceEventWrapper extends EventWrapper { - public static BlockPlaceEventWrapper wrap(final PlayerService playerService, - final @NotNull BlockPlaceEvent event) { - return new BlockPlaceEventWrapper(playerService, event); - } - private BlockPlaceEventWrapper(final PlayerService playerService, - final @NotNull BlockPlaceEvent event) { + final @NotNull BlockPlaceEvent event) { super(playerService.getOrDefault(event.getPlayer() .getUniqueId()), event); } + + public static BlockPlaceEventWrapper wrap(final PlayerService playerService, + final @NotNull BlockPlaceEvent event) { + return new BlockPlaceEventWrapper(playerService, event); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java index 7207d264..612b3b70 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java @@ -1,19 +1,19 @@ package io.tofpu.speedbridge2.listener.wrapper.wrappers; -import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.listener.wrapper.EventWrapper; +import io.tofpu.speedbridge2.model.player.PlayerService; import org.bukkit.event.player.PlayerInteractEvent; import org.jetbrains.annotations.NotNull; public class PlayerInteractEventWrapper extends EventWrapper { - public static PlayerInteractEventWrapper wrap(final PlayerService playerService, - final @NotNull PlayerInteractEvent event) { - return new PlayerInteractEventWrapper(playerService, event); - } - private PlayerInteractEventWrapper(final PlayerService playerService, - final @NotNull PlayerInteractEvent event) { + final @NotNull PlayerInteractEvent event) { super(playerService.getOrDefault(event.getPlayer() .getUniqueId()), event); } + + public static PlayerInteractEventWrapper wrap(final PlayerService playerService, + final @NotNull PlayerInteractEvent event) { + return new PlayerInteractEventWrapper(playerService, event); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java index f7afa701..fa542f81 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java @@ -26,10 +26,8 @@ import java.util.function.Consumer; public final class BlockMenuManager { - private static final int BLOCK_CHANGE_COOLDOWN = 30; - public static final BlockMenuManager INSTANCE = new BlockMenuManager(); - + private static final int BLOCK_CHANGE_COOLDOWN = 30; private final Set materialSet = new HashSet<>(); private final Cache cooldownMap; @@ -104,8 +102,8 @@ public boolean canSelectItem(final BridgePlayer bridgePlayer, final ItemStack it return false; } return ConfigurationManager.INSTANCE.getBlockMenuCategory() - .getDefaultBlock() == type || bridgePlayer.getPlayer() - .hasPermission("speedbridge.block." + type.name()); + .getDefaultBlock() == type || bridgePlayer.getPlayer() + .hasPermission("speedbridge.block." + type.name()); } private void modifyItem(final ModifyItemType modifyItemType, final ItemStack itemStack) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java index 53f532e1..067c152e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java @@ -12,7 +12,8 @@ public final class BlockMenuHolder implements InventoryHolder { private final Inventory inventory = Bukkit.createInventory(this, InventoryType.CHEST, INVENTORY_TITLE); - private BlockMenuHolder() {} + private BlockMenuHolder() { + } @Override public Inventory getInventory() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java index 4be134c8..d7f7dc98 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java @@ -29,7 +29,7 @@ public BlockMenuListener(final PlayerService playerService) { public void onInventoryClick(final InventoryClickEvent event) { final Inventory clickedInventory = event.getClickedInventory(); if (clickedInventory == null || - (!(clickedInventory.getHolder() instanceof BlockMenuHolder))) { + (!(clickedInventory.getHolder() instanceof BlockMenuHolder))) { return; } event.setCancelled(true); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index 576eb42c..2bcb949f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -14,31 +14,32 @@ import java.util.concurrent.ConcurrentHashMap; public final class Message { + public static final @NotNull Message INSTANCE; private static final @NotNull Map FIELD_MAP = new ConcurrentHashMap<>(); - private static final String SCORE_TITLE_BAR = MessageUtil.CHAT_BAR.substring(0, MessageUtil.CHAT_BAR.length() / 6); private static final String STYLE = "" + MessageUtil.Symbols.CLOCK.getSymbol() + " "; private static final String SECOND_STYLE = "" + MessageUtil.Symbols.STAR.getSymbol() + " "; - private static final String error = "" + MessageUtil.Symbols.WARNING.getSymbol() + - " "; + " "; private static final String SUCCESS = "" + MessageUtil.Symbols.ARROW_RIGHT.getSymbol() + - " "; + " "; - public static final @NotNull Message INSTANCE = new Message(); + static { + INSTANCE = new Message(); + } public final String noArgument = SUCCESS + "Type " + runCommand("/speedbridge help") + " for further " + - "information."; + "information."; public final String islandAlreadyExists = error + "Island %s already exists!"; public final String islandHasBeenCreatedSchematic = SUCCESS + "Island %s has been created with '%s' chosen as the " + - "schematic!"; + "schematic!"; public final String islandSetupNotification = SUCCESS + "You can complete your %slot% island setup by setting up the spawn point."; public final String validSelect = @@ -46,17 +47,17 @@ public final class Message { public final String unknownSchematic = error + "Schematic \"%s\" cannot be found"; public final String invalidIslandArgument = error + "Invalid argument. Please choose a slot, or an island category" + - ".\n" + error + "Alternatively, you could run the '" + - runCommand("/randomjoin") + "' command."; + ".\n" + error + "Alternatively, you could run the '" + + runCommand("/randomjoin") + "' command."; public final String invalidIsland = error + "Island %s cannot be found!"; public final String noAvailableIsland = error + "There is no island available " + - "at the moment... please try again " + - "later!"; + "at the moment... please try again " + + "later!"; public final String alreadyInAIsland = error + "You're already on an island!"; public final String inAGame = error + "You cannot execute this command while playing"; public final String scoreTitle = "" + SCORE_TITLE_BAR + " YOUR SCORES" + " " + - SCORE_TITLE_BAR; + "> YOUR SCORES" + " " + + SCORE_TITLE_BAR; public final String joinedAnIsland = SUCCESS + "You're now on island %s!"; public final String otherJoinedAnIsland = SUCCESS + "Player %s is now on island %s!"; public final String leftAnIsland = SUCCESS + "You left from island" + " %s!"; @@ -69,56 +70,41 @@ public final class Message { public final String timeStarted = STYLE + "The timer is now ticking!"; public final String scored = SECOND_STYLE + "You scored %s " + "seconds!"; - public final String lobbyMissing = error + "Incomplete setup. Please ensure to set up SpeedBridge's lobby to " + - "complete the " + "process." + "\nType " + - runCommand("/speedbridge setlobby") + " to set the " + "lobby."; - + "complete the " + "process." + "\nType " + + runCommand("/speedbridge setlobby") + " to set the " + "lobby."; public final String generalSetupIncomplete = error + "Incomplete setup. Please try again " + "later."; - public final String startingSetupProcess = SUCCESS + "You're now setting up %s " + "island."; - public final String notInASetup = error + "You're not setting up anything."; public final String setSpawnPoint = SUCCESS + "You have set the island's " + "spawnpoint."; - public final String completeNotification = SUCCESS + "You can complete the setup " + "by typing " + - runCommand("/sb setup finish"); - + runCommand("/sb setup finish"); public final String setupIncomplete = error + "The setup is incomplete. Please " + - "ensure that the spawn point is set."; + "ensure that the spawn point is set."; public final String setupComplete = SUCCESS + "The setup is now complete."; - public final String emptyScoreFormat = ""; - public final String invalidSpawnPoint = error + "The spawn point has to be set inside the regions."; - public final String setupCancelled = SUCCESS + "The setup has been cancelled."; - public final String playerDoesntExist = error + "%s does not exist."; - public final String playerWiped = SUCCESS + "%s's data has been reset."; public final String playerScoreReset = SUCCESS + "%s's scores has been reset."; public final String playerStatsReset = SUCCESS + "%s's stats has been reset."; - public final String somethingWentWrong = error + "Something went wrong... check " + "your console"; public final String inASetup = error + "You're already in a setup."; public final String notLoaded = error + "Your data has not been loaded yet. Please " + "try again later!"; - public final String islandReset = error.replace("red", "yellow") + "The island has " + "been " + "reset!"; - public final String blockChangeCooldown = error + "You can't do that yet! Please wait " + - "for %s seconds."; - + "for %s seconds."; public final String invalidUuid = error + "%s is not a valid uuid format. Please try again"; public final String mustBeOnline = error + "%s must be available to modify their data"; public final String setChosenType = SUCCESS + "Changed %s's selected block type to %s"; @@ -128,8 +114,8 @@ public final class Message { private static String runCommand(final String command) { return "Click to run " + - "%command%'>%command%".replace( - "%command" + "%", command); + "%command%'>%command%".replace( + "%command" + "%", command); } public static @NotNull CompletableFuture load(final File directory) { @@ -137,7 +123,7 @@ private static String runCommand(final String command) { if (FIELD_MAP.isEmpty()) { for (final Field field : Message.class.getDeclaredFields()) { if (Modifier.isStatic(field.getModifiers()) || - field.isAnnotationPresent(IgnoreMessage.class)) { + field.isAnnotationPresent(IgnoreMessage.class)) { continue; } @@ -147,13 +133,13 @@ private static String runCommand(final String command) { FIELD_MAP.put(field.getName(), field); } - BridgeUtil.debug(String.valueOf(FIELD_MAP)); + BridgeUtil.debug("messages_field_map=" + FIELD_MAP); } final File messageFile = new File(directory, "messages.yml"); final boolean messageFileExists = messageFile.exists(); - BridgeUtil.debug(String.valueOf(FIELD_MAP)); + BridgeUtil.debug("messages_field_map=" + FIELD_MAP); if (!messageFileExists) { FileUtil.write(messageFile, false, ReflectionUtil.toString(FIELD_MAP)); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java index 0ce2c209..5fe72184 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java @@ -13,6 +13,23 @@ public final class PlayerNameCache { private final Map nameMap = new HashMap<>(); + private static String getPlayerName(final UUID uuid) { + final AtomicReference result = new AtomicReference<>(""); + try (final DatabaseQuery databaseQuery = DatabaseQuery.query("SELECT * FROM " + + "players " + "where uid = ?")) { + databaseQuery.setString(uuid.toString()); + + databaseQuery.executeQuery(databaseSet -> { + if (databaseSet.next()) { + result.set(databaseSet.getString("name")); + } + }); + } catch (Exception e) { + throw new IllegalStateException(e); + } + return result.get(); + } + /** * This method caches the player's name * @@ -27,7 +44,6 @@ public void insert(final UUID uuid, final String name) { * Retrieves the player's name synchronously * * @param uid player unique identification - * * @return the player name immediately if cached, otherwise it'll retrieve the name * from the "players" table database in sync */ @@ -39,7 +55,6 @@ public String getOrDefault(final UUID uid) { * Retrieves the player's name asynchronously * * @param uid player unique identification - * * @return the player name immediately if cached, otherwise it'll retrieve the name * from the "players" table database in async */ @@ -58,21 +73,4 @@ public CompletableFuture getOrDefaultAsync(final UUID uid) { return future; } - - private static String getPlayerName(final UUID uuid) { - final AtomicReference result = new AtomicReference<>(""); - try (final DatabaseQuery databaseQuery = DatabaseQuery.query("SELECT * FROM " + - "players " + "where uid = ?")) { - databaseQuery.setString(uuid.toString()); - - databaseQuery.executeQuery(databaseSet -> { - if (databaseSet.next()) { - result.set(databaseSet.getString("name")); - } - }); - } catch (Exception e) { - throw new IllegalStateException(e); - } - return result.get(); - } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java index e4697c27..416e4276 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java @@ -2,11 +2,19 @@ import org.jetbrains.annotations.NotNull; -import java.util.concurrent.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.function.Supplier; public final class PluginExecutor implements Executor { public static final @NotNull PluginExecutor INSTANCE = new PluginExecutor(); + private final @NotNull ExecutorService executor; + + public PluginExecutor() { + this.executor = Executors.newFixedThreadPool(4); + } public static @NotNull CompletableFuture runAsync(final Runnable runnable) { return (CompletableFuture) INSTANCE.submit(runnable); @@ -16,12 +24,6 @@ public final class PluginExecutor implements Executor { return (CompletableFuture) INSTANCE.supplyAsync(supplier); } - private final @NotNull ExecutorService executor; - - public PluginExecutor() { - this.executor = Executors.newFixedThreadPool(4); - } - @Override public void execute(final @NotNull Runnable command) { executor.execute(command); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java index 4d63d5e7..ad417522 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java @@ -1,6 +1,9 @@ package io.tofpu.speedbridge2.model.common.config; -import io.tofpu.speedbridge2.model.common.config.category.*; +import io.tofpu.speedbridge2.model.common.config.category.BlockMenuCategory; +import io.tofpu.speedbridge2.model.common.config.category.GeneralCategory; +import io.tofpu.speedbridge2.model.common.config.category.LeaderboardCategory; +import io.tofpu.speedbridge2.model.common.config.category.LobbyCategory; import org.spongepowered.configurate.objectmapping.ConfigSerializable; import org.spongepowered.configurate.objectmapping.meta.Setting; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java index ac6d04d7..ba9cb586 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java @@ -5,7 +5,10 @@ import org.spongepowered.configurate.objectmapping.ConfigSerializable; import org.spongepowered.configurate.objectmapping.meta.Setting; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; @ConfigSerializable public final class BlockMenuCategory { @@ -13,12 +16,16 @@ public final class BlockMenuCategory { @Setting("blocks") private List materials = new ArrayList<>(Arrays.asList(toMaterial(XMaterial.WHITE_WOOL), - Material.DIAMOND_BLOCK, Material.GOLD_BLOCK, Material.IRON_BLOCK, - Material.REDSTONE_BLOCK, Material.LAPIS_BLOCK, Material.QUARTZ_BLOCK)); + Material.DIAMOND_BLOCK, Material.GOLD_BLOCK, Material.IRON_BLOCK, + Material.REDSTONE_BLOCK, Material.LAPIS_BLOCK, Material.QUARTZ_BLOCK)); @Setting("default_block") private Material defaultBlock = materials.isEmpty() ? Material.AIR : materials.get(0); + public static Material toMaterial(final XMaterial xMaterial) { + return xMaterial.parseMaterial(); + } + public Collection getMaterialBlocks() { return materials.subList(0, Math.min(7, materials.size())); } @@ -26,8 +33,4 @@ public Collection getMaterialBlocks() { public Material getDefaultBlock() { return defaultBlock; } - - public static Material toMaterial(final XMaterial xMaterial) { - return xMaterial.parseMaterial(); - } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java index 929f1b64..b67966f5 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java @@ -9,24 +9,22 @@ public final class GeneralCategory { @Setting("show-debug-message") @Comment("Useful when debugging") private boolean showDebugMessage = false; + @Setting("default-island-category") + @Comment("This will set the default island category when they're not provided upon " + + "creation") + private String defaultIslandCategory = "standard"; + @Setting("island-space-gap") + @Comment("The space gap between islands") + private int islandSpaceGap = 10; public boolean isDebugEnabled() { return showDebugMessage; } - @Setting("default-island-category") - @Comment("This will set the default island category when they're not provided upon " + - "creation") - private String defaultIslandCategory = "standard"; - public String getDefaultIslandCategory() { return defaultIslandCategory; } - @Setting("island-space-gap") - @Comment("The space gap between islands") - private int islandSpaceGap = 10; - public int getIslandSpaceGap() { return islandSpaceGap; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java index b3f599ff..ce8b3c90 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java @@ -13,7 +13,7 @@ public final class LeaderboardCategory { @Setting("session-update-interval") @Comment("A session leaderboard will update on every x interval. It's defined in " + - "seconds.") + "seconds.") private int sessionUpdateInterval = 10; @Setting("leaderboard-format") diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java index 77520d99..67ff66f6 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java @@ -12,27 +12,26 @@ public final class LobbyCategory { @Setting("teleport-on-join") @Comment("If this is set to true, the players will teleport to the lobby upon them " + - "joining") + "joining") private boolean teleportOnJoin = true; + @Setting("lobby-location") + @Comment("This is where the players will teleport when they join, or leave an " + + "island") + private Location lobbyLocation = null; public boolean isTeleportOnJoin() { return teleportOnJoin; } - @Setting("lobby-location") - @Comment("This is where the players will teleport when they join, or leave an " + - "island") - private Location lobbyLocation = null; + public void setTeleportOnJoin(final boolean teleportOnJoin) { + this.teleportOnJoin = teleportOnJoin; + } public CompletableFuture setLobbyLocation(final Location lobbyLocation) { this.lobbyLocation = lobbyLocation; return ConfigurationManager.INSTANCE.update(); } - public void setTeleportOnJoin(final boolean teleportOnJoin) { - this.teleportOnJoin = teleportOnJoin; - } - public Location getLobbyLocation() { return lobbyLocation; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java index de61a0cd..95034f27 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java @@ -20,8 +20,7 @@ public AbstractItemAction deserialize(final Type type, final ConfigurationNode n } @Override - public void serialize(final Type type, @Nullable - final AbstractItemAction obj, final ConfigurationNode node) throws SerializationException { + public void serialize(final Type type, @Nullable final AbstractItemAction obj, final ConfigurationNode node) throws SerializationException { if (!(obj instanceof RunCommandItemAction)) { return; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java index 9ae026a7..36c61187 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java @@ -39,8 +39,7 @@ public ItemMeta deserialize(final Type type, final ConfigurationNode node) throw } @Override - public void serialize(final Type type, @Nullable - final ItemMeta obj, final ConfigurationNode node) throws SerializationException { + public void serialize(final Type type, @Nullable final ItemMeta obj, final ConfigurationNode node) throws SerializationException { if (obj == null) { node.raw(); return; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java index 9fabf706..3b80ad76 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java @@ -26,8 +26,7 @@ public ItemStack deserialize(final Type type, final ConfigurationNode node) thro } @Override - public void serialize(final Type type, @Nullable - final ItemStack obj, final ConfigurationNode node) throws SerializationException { + public void serialize(final Type type, @Nullable final ItemStack obj, final ConfigurationNode node) throws SerializationException { node.node("material").set(obj.getType()); node.node("durability").set(obj.getDurability()); node.node("meta").set(obj.getItemMeta()); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java index 85e00985..38e68ba5 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java @@ -16,7 +16,8 @@ public final class LocationSerializer implements TypeSerializer { public static final LocationSerializer INSTANCE = new LocationSerializer(); - private LocationSerializer() {} + private LocationSerializer() { + } @Override public Location deserialize(final Type type, final ConfigurationNode node) throws SerializationException { @@ -62,7 +63,7 @@ private World getWorld(final String worldName) { private ConfigurationNode nonVirtualNode(final ConfigurationNode source, final Object... path) throws SerializationException { if (!source.hasChild(path)) { throw new SerializationException("Required field " + Arrays.toString(path) + - " was not present in node"); + " was not present in node"); } return source.node(path); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java index 3125ad1f..f07b4acf 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java @@ -22,8 +22,7 @@ public Material deserialize(final Type type, final ConfigurationNode node) throw } @Override - public void serialize(final Type type, @Nullable - final Material obj, final ConfigurationNode node) throws SerializationException { + public void serialize(final Type type, @Nullable final Material obj, final ConfigurationNode node) throws SerializationException { if (obj == null) { node.set(Material.AIR.name()); return; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java index 52da5912..c379eac4 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java @@ -31,8 +31,7 @@ public SerializableUmbrellaItem deserialize(final Type type, final Configuration } @Override - public void serialize(final Type type, @Nullable - final SerializableUmbrellaItem obj, final ConfigurationNode node) throws SerializationException { + public void serialize(final Type type, @Nullable final SerializableUmbrellaItem obj, final ConfigurationNode node) throws SerializationException { final ItemStack itemStack = obj.getItemStack(); node.node("index").set(obj.getIndex()); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java index 4428952c..d1ead1f5 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java @@ -14,10 +14,6 @@ public class DatabaseQuery implements AutoCloseable { private final @Nullable PreparedStatement preparedStatement; private final @NotNull AtomicInteger setterCounter; - public static DatabaseQuery query(final @NotNull String query) { - return new DatabaseQuery(query); - } - private DatabaseQuery(final @NotNull String query) { try { this.preparedStatement = @@ -28,6 +24,10 @@ private DatabaseQuery(final @NotNull String query) { this.setterCounter = new AtomicInteger(0); } + public static DatabaseQuery query(final @NotNull String query) { + return new DatabaseQuery(query); + } + public @NotNull DatabaseQuery setInt(final Integer integer) { try { this.preparedStatement.setInt(setterCounter.incrementAndGet(), integer); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java index f21a6c84..cab1bd96 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java @@ -9,11 +9,6 @@ public class DatabaseTable { private final String[] columns; private final String sql; - public static DatabaseTable of(final @NotNull String table, - final @NotNull String... columns) { - return new DatabaseTable(table, columns); - } - private DatabaseTable(final @NotNull String table, final @NotNull String... columns) { this.table = table; this.columns = columns; @@ -22,6 +17,11 @@ private DatabaseTable(final @NotNull String table, final @NotNull String... colu BridgeUtil.debug(sql); } + public static DatabaseTable of(final @NotNull String table, + final @NotNull String... columns) { + return new DatabaseTable(table, columns); + } + public @NotNull String formatColumns(final String[] columns) { final StringBuilder formattedColumn = new StringBuilder(); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java index 4c9d7834..9b0928c7 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java @@ -7,6 +7,7 @@ public abstract class MessagePresenterBase { public abstract static class Builder { public abstract Builder append(final String message); + public abstract MessagePresenterBase build(); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java index 6ad02618..db188a2a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java @@ -4,5 +4,6 @@ public interface MessagePresenterHolder { MessagePresenterHolderImpl append(final Supplier presenter); + String getResult(); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java index 666dda94..8d2fd47c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java @@ -4,7 +4,7 @@ public final class MessagePresenterHolderImpl implements MessagePresenterHolder { private static final String HEADER_FORMAT = "| <-> " + - "%s "; + "%s "; private final StringBuilder builder; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java index e00982f8..796a228c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java @@ -52,8 +52,8 @@ public String getResult() { } public static class Builder { - private String title; private final List messages = new ArrayList<>(); + private String title; public Builder title(final String title) { this.title = title; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java index 02dc9787..91e3035e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java @@ -82,12 +82,12 @@ public static Component translateMiniMessage(final String content) { * Send a message to a * command sender * - * @param sender The CommandSender who is sending the message. + * @param sender The CommandSender who is sending the message. * @param component The component to send. * @return The component that was sent. */ public static Component sendMessage(final CommandSender sender, - final Component component) { + final Component component) { final Audience audience = SpeedBridge.getAdventure() .sender(sender); audience.sendMessage(component); @@ -97,12 +97,12 @@ public static Component sendMessage(final CommandSender sender, /** * This function sends a message to a player * - * @param sender The player who sent the message. + * @param sender The player who sent the message. * @param content The message to send. * @return Nothing. */ public static Component sendMessage(final CommonBridgePlayer sender, - final String content) { + final String content) { if (content.isEmpty()) { return null; } @@ -115,12 +115,12 @@ public static Component sendMessage(final CommonBridgePlayer sender, * Send a message to a * command sender * - * @param sender The CommandSender who will receive the message. + * @param sender The CommandSender who will receive the message. * @param content The content of the message. * @return Nothing. */ public static Component sendMessage(final CommandSender sender, - final String content) { + final String content) { if (content.isEmpty()) { return null; } @@ -157,9 +157,8 @@ public static String translate(final String replace) { /** * Given a row or column, and a database set, return a BoardPlayer * - * @param row boolean + * @param row boolean * @param databaseSet The database set that is being converted to a BoardPlayer. - * * @return A BoardPlayer object. */ public static BoardPlayer toBoardPlayer(final boolean row, final DatabaseSet databaseSet) { @@ -192,8 +191,8 @@ public static BoardPlayer toBoardPlayer(final boolean row, final DatabaseSet dat public static UUID findUUIDBy(final String playerName) { final AtomicReference uuid = new AtomicReference<>(); try (final DatabaseQuery databaseQuery = DatabaseQuery.query("SELECT uid FROM " + - "players WHERE name " + - "= ?")) { + "players WHERE name " + + "= ?")) { databaseQuery.setString(playerName); databaseQuery.executeQuery(databaseSet -> { @@ -224,22 +223,22 @@ public static void runBukkitAsync(final Runnable runnable) { * This function will run a task asynchronously * * @param runnable The Runnable to run. - * @param delay The delay is the amount of time to wait before the first execution. + * @param delay The delay is the amount of time to wait before the first execution. * @param interval How often the task should run. */ public static void runBukkitAsync(final Runnable runnable, final long delay, - final long interval) { + final long interval) { Bukkit.getScheduler().runTaskTimerAsynchronously(JavaPlugin.getPlugin(SpeedBridgePlugin.class), runnable, delay, interval); } /** * It runs the given Runnable when the CompletableFuture is completed. * - * @param completableFuture The completable future to be completed. + * @param completableFuture The completable future to be completed. * @param whenCompleteConsumer The consumer to be run when the completable future is completed. */ public static CompletableFuture whenComplete(final CompletableFuture completableFuture, - final Consumer whenCompleteConsumer) { + final Consumer whenCompleteConsumer) { return completableFuture.whenComplete((o, throwable) -> { if (throwable != null) { throw new IllegalStateException(throwable); @@ -252,11 +251,11 @@ public static CompletableFuture whenComplete(final CompletableFuture c * It runs the given Runnable when the CompletableFuture is completed. * * @param completableFuture The completable future to be completed. - * @param whenComplete The runnable to be run when the completable future is - * completed. + * @param whenComplete The runnable to be run when the completable future is + * completed. */ public static void whenComplete(final CompletableFuture completableFuture, - final Runnable whenComplete) { + final Runnable whenComplete) { completableFuture.whenComplete((o, throwable) -> { if (throwable != null) { throw new IllegalStateException(throwable); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java index 482f0fe1..79155005 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java @@ -14,7 +14,7 @@ public class DatabaseUtil { * executes the query and returns a CompletableFuture that will be completed when the * query is done * - * @param sql The SQL statement to execute. + * @param sql The SQL statement to execute. * @param databaseQueryConsumer A Consumer that takes a DatabaseQuery. * @return Nothing. */ @@ -42,12 +42,12 @@ public static CompletableFuture runAsync(final Runnable runnable) { /** * It takes a SQL query and a consumer that will be called for each row of the query * - * @param sql The SQL statement to execute. + * @param sql The SQL statement to execute. * @param databaseQueryConsumer A consumer that will be called for each row of the query. * @return Nothing. */ public static CompletableFuture databaseQueryExecute(final String sql, - final Consumer databaseQueryConsumer) { + final Consumer databaseQueryConsumer) { return runAsync(() -> { try (final DatabaseQuery query = DatabaseQuery.query(sql)) { query.executeQuery(databaseQueryConsumer); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java index 69203f2b..65ff194b 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java @@ -10,9 +10,9 @@ public final class FileUtil { /** * Write a collection of strings to a file * - * @param file The file to write to. - * @param append If true, the file will be appended to if it already exists. If false, - * the file will be overwritten if it already exists. + * @param file The file to write to. + * @param append If true, the file will be appended to if it already exists. If false, + * the file will be overwritten if it already exists. * @param stringCollection The collection of strings to write to the file. */ public static void write(final File file, final boolean append, final Collection stringCollection) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java index c915d5f1..fcbf6e17 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java @@ -7,4 +7,5 @@ @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) -public @interface IgnoreMessage {} +public @interface IgnoreMessage { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java index 9e7c4eb1..c63a3291 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java @@ -15,7 +15,7 @@ public class UmbrellaUtil { public static ItemStack create(final XMaterial material, final String displayName, - final String lore) { + final String lore) { final ItemStack itemStack = material.parseItem(); final ItemMeta meta = itemStack.getItemMeta(); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java index 1b877c94..5c01a4b8 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java @@ -33,7 +33,12 @@ */ public final class UpdateChecker { - /** The default version scheme for this update checker */ + private static final String USER_AGENT = "CHOCO-update-checker"; + private static final String UPDATE_URL = "https://api.spigotmc.org/simple/0.1/index.php?action=getResource&id=%d"; + private static final Pattern DECIMAL_SCHEME_PATTERN = Pattern.compile("\\d+(?:\\.\\d+)*"); + /** + * The default version scheme for this update checker + */ public static final VersionScheme VERSION_SCHEME_DECIMAL = (first, second) -> { String[] firstSplit = splitVersionInfo(first), secondSplit = splitVersionInfo(second); if (firstSplit == null || secondSplit == null) { @@ -52,23 +57,16 @@ public final class UpdateChecker { return (secondSplit.length > firstSplit.length) ? second : first; }; - - private static final String USER_AGENT = "CHOCO-update-checker"; - private static final String UPDATE_URL = "https://api.spigotmc.org/simple/0.1/index.php?action=getResource&id=%d"; - private static final Pattern DECIMAL_SCHEME_PATTERN = Pattern.compile("\\d+(?:\\.\\d+)*"); - private static final String[] UPDATE_MESSAGE = { "You're using an outdated version of SpeedBridge!", "You can download the latest version at https://www.spigotmc.org/resources/.100619/" }; private static UpdateChecker instance; - - private UpdateResult lastResult = null; - private final JavaPlugin plugin; private final int pluginID; private final VersionScheme versionScheme; + private UpdateResult lastResult = null; private UpdateChecker(@NotNull JavaPlugin plugin, int pluginID, @NotNull VersionScheme versionScheme) { this.plugin = plugin; @@ -76,6 +74,70 @@ private UpdateChecker(@NotNull JavaPlugin plugin, int pluginID, @NotNull Version this.versionScheme = versionScheme; } + private static String[] splitVersionInfo(String version) { + Matcher matcher = DECIMAL_SCHEME_PATTERN.matcher(version); + return matcher.find() ? matcher.group().split("\\.") : null; + } + + /** + * Initialize this update checker with the specified values and return its instance. + * If an instance of UpdateChecker has already been initialized, this method will act + * similarly to {@link #get()} (which is recommended after initialization). + * + * @param plugin the plugin for which to check updates. Cannot be null + * @param pluginID the ID of the plugin as identified in the SpigotMC resource link. + * For example, "https://www.spigotmc.org/resources/veinminer.12038/" would + * expect "12038" as a value. The value must be greater than 0 + * @param versionScheme a custom version scheme parser. Cannot be null + * @return the UpdateChecker instance + */ + @NotNull + public static UpdateChecker init(@NotNull JavaPlugin plugin, int pluginID, @NotNull VersionScheme versionScheme) { + Preconditions.checkArgument(plugin != null, "Plugin cannot be null"); + Preconditions.checkArgument(pluginID > 0, "Plugin ID must be greater than 0"); + Preconditions.checkArgument(versionScheme != null, "null version schemes are unsupported"); + + return (instance == null) ? instance = new UpdateChecker(plugin, pluginID, versionScheme) : instance; + } + + /** + * Initialize this update checker with the specified values and return its instance. + * If an instance of UpdateChecker has already been initialized, this method will act + * similarly to {@link #get()} (which is recommended after initialization). + * + * @param plugin the plugin for which to check updates. Cannot be null + * @param pluginID the ID of the plugin as identified in the SpigotMC resource link. + * For example, "https://www.spigotmc.org/resources/veinminer.12038/" would + * expect "12038" as a value. The value must be greater than 0 + * @return the UpdateChecker instance + */ + @NotNull + public static UpdateChecker init(@NotNull JavaPlugin plugin, int pluginID) { + return init(plugin, pluginID, VERSION_SCHEME_DECIMAL); + } + + /** + * Get the initialized instance of UpdateChecker. If {@link #init(JavaPlugin, int)} + * has not yet been invoked, this method will throw an exception. + * + * @return the UpdateChecker instance + */ + @NotNull + public static UpdateChecker get() { + Preconditions.checkState(instance != null, "Instance has not yet been initialized. Be sure #init() has been invoked"); + return instance; + } + + /** + * Check whether the UpdateChecker has been initialized or not (if + * {@link #init(JavaPlugin, int)} has been invoked) and {@link #get()} is safe to use. + * + * @return true if initialized, false otherwise + */ + public static boolean isInitialized() { + return instance != null; + } + public void updateNotification(final Player player) { final UpdateResult lastResult = getLastResult(); if (lastResult == null) { @@ -124,11 +186,9 @@ public void updateNotification(final Player player) { if (latest == null) { return new UpdateResult(UpdateReason.UNSUPPORTED_VERSION_SCHEME); - } - else if (latest.equals(pluginVersion)) { + } else if (latest.equals(pluginVersion)) { return new UpdateResult(pluginVersion.equals(currentVersion) ? UpdateReason.UP_TO_DATE : UpdateReason.UNRELEASED_VERSION); - } - else if (latest.equals(currentVersion)) { + } else if (latest.equals(currentVersion)) { return new UpdateResult(UpdateReason.NEW_UPDATE, latest); } } catch (IOException e) { @@ -151,93 +211,6 @@ public UpdateResult getLastResult() { return lastResult; } - private static String[] splitVersionInfo(String version) { - Matcher matcher = DECIMAL_SCHEME_PATTERN.matcher(version); - return matcher.find() ? matcher.group().split("\\.") : null; - } - - /** - * Initialize this update checker with the specified values and return its instance. - * If an instance of UpdateChecker has already been initialized, this method will act - * similarly to {@link #get()} (which is recommended after initialization). - * - * @param plugin the plugin for which to check updates. Cannot be null - * @param pluginID the ID of the plugin as identified in the SpigotMC resource link. - * For example, "https://www.spigotmc.org/resources/veinminer.12038/" would - * expect "12038" as a value. The value must be greater than 0 - * @param versionScheme a custom version scheme parser. Cannot be null - * - * @return the UpdateChecker instance - */ - @NotNull - public static UpdateChecker init(@NotNull JavaPlugin plugin, int pluginID, @NotNull VersionScheme versionScheme) { - Preconditions.checkArgument(plugin != null, "Plugin cannot be null"); - Preconditions.checkArgument(pluginID > 0, "Plugin ID must be greater than 0"); - Preconditions.checkArgument(versionScheme != null, "null version schemes are unsupported"); - - return (instance == null) ? instance = new UpdateChecker(plugin, pluginID, versionScheme) : instance; - } - - /** - * Initialize this update checker with the specified values and return its instance. - * If an instance of UpdateChecker has already been initialized, this method will act - * similarly to {@link #get()} (which is recommended after initialization). - * - * @param plugin the plugin for which to check updates. Cannot be null - * @param pluginID the ID of the plugin as identified in the SpigotMC resource link. - * For example, "https://www.spigotmc.org/resources/veinminer.12038/" would - * expect "12038" as a value. The value must be greater than 0 - * - * @return the UpdateChecker instance - */ - @NotNull - public static UpdateChecker init(@NotNull JavaPlugin plugin, int pluginID) { - return init(plugin, pluginID, VERSION_SCHEME_DECIMAL); - } - - /** - * Get the initialized instance of UpdateChecker. If {@link #init(JavaPlugin, int)} - * has not yet been invoked, this method will throw an exception. - * - * @return the UpdateChecker instance - */ - @NotNull - public static UpdateChecker get() { - Preconditions.checkState(instance != null, "Instance has not yet been initialized. Be sure #init() has been invoked"); - return instance; - } - - /** - * Check whether the UpdateChecker has been initialized or not (if - * {@link #init(JavaPlugin, int)} has been invoked) and {@link #get()} is safe to use. - * - * @return true if initialized, false otherwise - */ - public static boolean isInitialized() { - return instance != null; - } - - - /** - * A functional interface to compare two version Strings with similar version schemes. - */ - @FunctionalInterface - public static interface VersionScheme { - - /** - * Compare two versions and return the higher of the two. If null is returned, it - * is assumed that at least one of the two versions are unsupported by this - * version scheme parser. - * - * @param first the first version to check - * @param second the second version to check - * - * @return the greater of the two versions. null if unsupported version schemes - */ - @Nullable - public String compareVersions(@NotNull String first, @NotNull String second); - - } /** * A constant reason for the result of {@link UpdateResult}. @@ -289,6 +262,26 @@ public static enum UpdateReason { } + /** + * A functional interface to compare two version Strings with similar version schemes. + */ + @FunctionalInterface + public static interface VersionScheme { + + /** + * Compare two versions and return the higher of the two. If null is returned, it + * is assumed that at least one of the two versions are unsupported by this + * version scheme parser. + * + * @param first the first version to check + * @param second the second version to check + * @return the greater of the two versions. null if unsupported version schemes + */ + @Nullable + public String compareVersions(@NotNull String first, @NotNull String second); + + } + /** * Represents a result for an update query performed by * {@link UpdateChecker#requestUpdateCheck()}. diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java index 61bf887a..f4d1b482 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java @@ -73,7 +73,7 @@ public void load(final Class bindTo, final FileConfigurationType type) { } catch (ConfigurateException e) { plugin.getLogger() .warning("An error occurred while loading this configuration:" + " " + - e.getMessage()); + e.getMessage()); if (e.getCause() != null) { e.printStackTrace(); } @@ -85,7 +85,7 @@ public void load(final Class bindTo, final FileConfigurationType type) { } catch (SerializationException e) { plugin.getLogger() .warning("An error occurred while converting MyConfiguration: " + - e.getMessage()); + e.getMessage()); if (e.getCause() != null) { e.printStackTrace(); } @@ -103,7 +103,7 @@ public CompletableFuture reload() { } catch (ConfigurateException e) { plugin.getLogger() .warning("An error occurred while converting MyConfiguration: " + - e.getMessage()); + e.getMessage()); if (e.getCause() != null) { e.printStackTrace(); } @@ -115,7 +115,7 @@ public void save() { if (this.node == null) { plugin.getLogger() .warning("Configuration cannot be saved due to the node " + - "being null"); + "being null"); return; } try { @@ -123,7 +123,7 @@ public void save() { } catch (ConfigurateException e) { plugin.getLogger() .warning("An error occurred while saving this configuration: " + - e.getMessage()); + e.getMessage()); if (e.getCause() != null) { e.printStackTrace(); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java index 856f4c4f..19d9ffc9 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java @@ -25,7 +25,7 @@ public IslandDatabase() { public @NotNull CompletableFuture insert(final Island island) { return DatabaseUtil.databaseExecute("INSERT OR IGNORE INTO islands VALUES " + - "(?, ?, ?, ?)", databaseQuery -> { + "(?, ?, ?, ?)", databaseQuery -> { databaseQuery.setInt(island.getSlot()); databaseQuery.setString(island.getCategory()); databaseQuery.setString(island.getSchematicName()); @@ -36,7 +36,7 @@ public IslandDatabase() { public @NotNull CompletableFuture update(final Island island) { return DatabaseUtil.databaseExecute( "UPDATE islands SET category = ?, schematic_name = " + - "?, spawn_point = ? WHERE slot = ?", databaseQuery -> { + "?, spawn_point = ? WHERE slot = ?", databaseQuery -> { BridgeUtil.debug("island category: " + island.getCategory()); databaseQuery.setString(island.getCategory()); @@ -78,7 +78,8 @@ public IslandDatabase() { } islands.add(builder.build()); - }}).get(); + } + }).get(); } catch (InterruptedException | ExecutionException e) { throw new IslandLoadFailureException(e); } @@ -93,7 +94,7 @@ private String serialize(final Location location) { } return location.getX() + ":" + location.getY() + ":" + - location.getZ() + ":" + location.getYaw() + ":" + location.getPitch(); + location.getZ() + ":" + location.getYaw() + ":" + location.getPitch(); } private Location deserialize(final String input) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java index e04023c8..3d73eedc 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java @@ -4,8 +4,8 @@ import io.tofpu.speedbridge2.model.common.util.BridgeUtil; import io.tofpu.speedbridge2.model.island.arena.ArenaManager; import io.tofpu.speedbridge2.model.island.object.Island; -import io.tofpu.speedbridge2.model.leaderboard.IslandBoard; import io.tofpu.speedbridge2.model.island.object.IslandBuild; +import io.tofpu.speedbridge2.model.leaderboard.IslandBoard; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -37,13 +37,13 @@ public void load(final @NotNull Map loadedIslands) { /** * Creates an island * - * @param slot The island's slot. - * @param category The category of the island. + * @param slot The island's slot. + * @param category The category of the island. * @param schematic The name of the schematic to load. It cannot be null nor empty. * @return The {@link IslandHandler.IslandCreationResult} enum. */ public @NotNull IslandHandler.IslandCreationResult createIsland(final int slot, - final @NotNull String category, final @NotNull String schematic) { + final @NotNull String category, final @NotNull String schematic) { // if the island does exist, return ALREADY_EXISTS! if (islandMap.containsKey(slot)) { return IslandCreationResultType.ISLAND_ALREADY_EXISTS.empty(); @@ -133,7 +133,6 @@ public void load(final @NotNull Map loadedIslands) { /** * @param island The island to register. - * * @return The registration result. */ public IslandRegistrationResultType registerIsland(Island island) { @@ -179,7 +178,7 @@ public IslandCreationResult empty() { } public IslandCreationResult create(final Island - island) { + island) { return new IslandCreationResult(this, island); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java index a04bb954..ebf6299f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java @@ -11,7 +11,7 @@ import java.util.concurrent.CompletableFuture; public final class IslandService { -// public static final @NotNull IslandService INSTANCE = new IslandService(); + // public static final @NotNull IslandService INSTANCE = new IslandService(); private final @NotNull IslandHandler islandHandler; private final @NotNull IslandRepository islandRepository; @@ -34,14 +34,14 @@ public CompletableFuture> loadAsync() { /** * Creates an island * - * @param slot The island's slot. - * @param category The category of the island. + * @param slot The island's slot. + * @param category The category of the island. * @param schematic The name of the schematic to load. It cannot be null nor empty. * @return The {@link IslandHandler.IslandCreationResult} enum. */ public @NotNull IslandHandler.IslandCreationResult createIsland(final int slot, - final @NotNull String category, - final @NotNull String schematic) { + final @NotNull String category, + final @NotNull String schematic) { return this.islandHandler.createIsland(slot, category, schematic); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java index 7013355f..bc7abbba 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java @@ -3,8 +3,8 @@ import com.sk89q.worldedit.WorldEditException; import io.tofpu.speedbridge2.model.common.config.manager.ConfigurationManager; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.island.object.GameIsland; +import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.island.object.land.IslandLand; import io.tofpu.speedbridge2.model.support.worldedit.Vector; import org.apache.commons.io.FileUtils; @@ -30,10 +30,15 @@ public final class ArenaManager { private File worldDirectory; private World world; + @NotNull + private static String serializeVector(Vector vector) { + return String.format("%s, %s, %s", vector.getX(), vector.getY(), vector.getZ()); + } + public void load() { this.world = Bukkit.createWorld(WorldCreator.name("speedbridge2") .generator(new EmptyChunkGenerator())); - this.worldDirectory = new File( "speedbridge2"); + this.worldDirectory = new File("speedbridge2"); protectWorld(world); } @@ -105,8 +110,12 @@ private IslandLand getPlot(final Island island, final GameIsland gameIsland) { return islandLand; } +// private IslandLand getNewPlot(final Island target) { +// return getNewPlot(target, getPositions()); +// } + private IslandLand getAvailablePlot(final Collection islandLands, - final int slot) { + final int slot) { for (final IslandLand islandLand : islandLands) { // if it's not the same island plot, or the plot is not free; continue if (islandLand.getIsland().getSlot() != slot || !islandLand.isFree()) { @@ -119,10 +128,6 @@ private IslandLand getAvailablePlot(final Collection islandLands, return null; } -// private IslandLand getNewPlot(final Island target) { -// return getNewPlot(target, getPositions()); -// } - private IslandLand getNewPlot(final Island target, double[] positions) { return new IslandLand(target, world, positions); } @@ -199,11 +204,6 @@ public double[] getPositions() { return new double[]{COUNTER.get(), 100, 100}; } - @NotNull - private static String serializeVector(Vector vector) { - return String.format("%s, %s, %s", vector.getX(), vector.getY(), vector.getZ()); - } - public void resetWorld() { final File worldFile = getWorldDirectory(); if (worldFile != null && worldFile.exists()) { @@ -261,7 +261,6 @@ public World getWorld() { } - private static final class EmptyChunkGenerator extends ChunkGenerator { @Override public @NotNull ChunkData generateChunkData(final World world, final Random random, final int x, final int z, final BiomeGrid biome) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java index 10469263..66babf8f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java @@ -2,7 +2,7 @@ public class IslandDatabaseExceptionWrapper extends RuntimeException { public IslandDatabaseExceptionWrapper(final String message, final int slot, - final Throwable e) { + final Throwable e) { super(message + (slot == -1 ? "" : ": " + slot), e); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java index 7a15c1f6..114c6096 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java @@ -4,11 +4,11 @@ import io.tofpu.speedbridge2.model.common.config.category.LobbyCategory; import io.tofpu.speedbridge2.model.common.config.manager.ConfigurationManager; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.island.object.umbrella.GameIslandUmbrella; -import io.tofpu.speedbridge2.model.island.object.land.IslandLand; import io.tofpu.speedbridge2.model.island.arena.ArenaManager; -import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; +import io.tofpu.speedbridge2.model.island.object.land.IslandLand; +import io.tofpu.speedbridge2.model.island.object.umbrella.GameIslandUmbrella; import io.tofpu.speedbridge2.model.player.object.GamePlayer; +import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; import io.tofpu.speedbridge2.model.support.worldedit.CuboidRegion; import io.tofpu.umbrella.domain.Umbrella; import org.bukkit.GameMode; @@ -25,7 +25,7 @@ public class GameIsland { private IslandLand islandLand; public GameIsland(final ArenaManager arenaManager, final Island island, - final GamePlayer gamePlayer) { + final GamePlayer gamePlayer) { this.arenaManager = arenaManager; // todo: memory leak, as this does not get invalidated once done this.umbrella = new GameIslandUmbrella(this).getUmbrella(); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java index a7c7a1a8..95d032ba 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java @@ -35,14 +35,13 @@ public class Island { private final int slot; private final Map islandMap; - private String category; - private final LeaderboardMap leaderboardMap; private final IslandSchematic islandSchematic; + private String category; private Location absoluteLocation; public Island(final IslandService islandService, final ArenaManager arenaManager, - final int slot, final String category) { + final int slot, final String category) { this.islandService = islandService; this.arenaManager = arenaManager; this.slot = slot; @@ -55,8 +54,8 @@ public Island(final IslandService islandService, final ArenaManager arenaManager } public Island(final IslandService islandService, final ArenaManager arenaManager, - final int slot, final String category, final String schematic, - final Location absoluteLocation) { + final int slot, final String category, final String schematic, + final Location absoluteLocation) { this.islandService = islandService; this.arenaManager = arenaManager; this.slot = slot; @@ -148,16 +147,6 @@ public GameIsland findGameByPlayer(final GamePlayer gamePlayer) { return this.islandMap.get(gamePlayer); } - /** - * It sets the category of the question. - * - * @param anotherCategory The new category to set. - */ - public void setCategory(final String anotherCategory) { - this.category = anotherCategory; - update(); - } - /** * Selects a schematic from the list of available schematics * @@ -174,22 +163,22 @@ public boolean selectSchematic(final @NotNull String schematicName) { } /** - * This function sets the absolute location of the object + * Returns the absolute location of the object * - * @param newAbsoluteLocation The new location to set the object to. + * @return The absolute location of the object. */ - public void setAbsoluteLocation(final Location newAbsoluteLocation) { - this.absoluteLocation = newAbsoluteLocation; - update(); + public Location getAbsoluteLocation() { + return this.absoluteLocation; } /** - * Returns the absolute location of the object + * This function sets the absolute location of the object * - * @return The absolute location of the object. + * @param newAbsoluteLocation The new location to set the object to. */ - public Location getAbsoluteLocation() { - return this.absoluteLocation; + public void setAbsoluteLocation(final Location newAbsoluteLocation) { + this.absoluteLocation = newAbsoluteLocation; + update(); } /** @@ -199,7 +188,7 @@ public Location getAbsoluteLocation() { */ public boolean isReady() { return islandSchematic.getSchematicClipboard() != null && - absoluteLocation != null; + absoluteLocation != null; } /** @@ -223,6 +212,16 @@ public String getCategory() { return category; } + /** + * It sets the category of the question. + * + * @param anotherCategory The new category to set. + */ + public void setCategory(final String anotherCategory) { + this.category = anotherCategory; + update(); + } + /** * Load the leaderboard map with the given map * @@ -236,7 +235,7 @@ public void loadBoard(final Map boardMap) { * Add a score to the leaderboard for the given player * * @param bridgePlayer The bridge player to add the score to. - * @param score The score to add. + * @param score The score to add. */ public void addLeaderboardScore(final BridgePlayer bridgePlayer, final Score score) { leaderboardMap.append(bridgePlayer, score); @@ -368,9 +367,9 @@ public IslandSchematic(final Island island, final String schematic) { public boolean selectSchematic(final @NotNull String schematicName) { BridgeUtil.debug( "Loading schematic '" + schematicName + "' for " + island.getSlot() + - "..."); + "..."); BridgeUtil.debug("IslandSchematic#selectSchematic(): WorldEdit Directory: " + - schematicDirectory); + schematicDirectory); final File file = findSchematicFile(schematicDirectory, schematicName); if (file != null && file.exists()) { @@ -379,7 +378,7 @@ public boolean selectSchematic(final @NotNull String schematicName) { BridgeUtil.debug( "IslandSchematic#selectSchematic(): Successfully loaded schematic: " + - schematicName); + schematicName); this.schematicName = schematicName; return true; @@ -387,7 +386,7 @@ public boolean selectSchematic(final @NotNull String schematicName) { BridgeUtil.debug( "IslandSchematic#selectSchematic(): Failed to load schematic: " + - schematicName); + schematicName); return false; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java index c698999a..764ef168 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java @@ -5,8 +5,8 @@ public class IslandBuild extends Island { public IslandBuild(final IslandService islandService, - final ArenaManager arenaManager, final int slot, - final String category) { + final ArenaManager arenaManager, final int slot, + final String category) { super(islandService, arenaManager, slot, category); } @@ -33,7 +33,7 @@ protected void update() { public Island toRegularIsland() { final Island island = new Island(islandService, super.arenaManager, this.getSlot(), - this.getCategory()); + this.getCategory()); island.selectSchematic(getSchematicName()); island.setAbsoluteLocation(getAbsoluteLocation()); return island; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java index 2dace5fb..c5fc7506 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java @@ -10,14 +10,14 @@ public class IslandBuilder { private String schematic; private Location absoluteLocation; - public static IslandBuilder of() { - return new IslandBuilder(); - } - private IslandBuilder() { // prevent instantiation } + public static IslandBuilder of() { + return new IslandBuilder(); + } + public IslandBuilder setSlot(final int slot) { this.slot = slot; return this; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java index 221de308..c62677ad 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java @@ -6,14 +6,10 @@ import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.function.operation.Operation; import com.sk89q.worldedit.function.operation.Operations; -import io.tofpu.multiworldedit.ClipboardWrapper; -import io.tofpu.multiworldedit.EditSessionWrapper; -import io.tofpu.multiworldedit.MultiWorldEditAPI; -import io.tofpu.multiworldedit.RegionWrapper; -import io.tofpu.multiworldedit.VectorWrapper; +import io.tofpu.multiworldedit.*; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.island.object.GameIsland; +import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.support.worldedit.CuboidRegion; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; @@ -70,7 +66,7 @@ public IslandLand(final Island island, final World world, double[] positions) { public void generatePlot() throws WorldEditException { // TODO: Make this generation operation async BridgeUtil.debug("Generating plot at " + this.location.toString() + " for " + - "island " + this.island.getSlot()); + "island " + this.island.getSlot()); final BukkitWorld bukkitWorld = new BukkitWorld(world); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java index 7e0d4b23..dac5910a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java @@ -152,7 +152,7 @@ private void resetPlot() { * Returns true if the player is not removed and has a player spawn point * * @return A boolean value. - */ + */ public boolean isReady() { return !isRemoved() && playerSpawnPoint != null; } @@ -195,7 +195,7 @@ private void resetState() { * Returns the UUID of the player that is currently editing the island * * @return The UUID of the player that is currently editing the island. - */ + */ public UUID getPlayerUid() { return player.getPlayerUid(); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java index c47b6add..ce42ad14 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java @@ -15,8 +15,8 @@ public static void init(final IslandService islandService) { } public static IslandSetup create(final IslandSetupFactoryType type, - final Umbrella umbrella, - final BridgePlayer player + final Umbrella umbrella, + final BridgePlayer player , final Island island, final IslandLand islandLand) { Preconditions.checkNotNull(islandService, "IslandService is not initialized"); Preconditions.checkNotNull(umbrella, "Umbrella cannot be null"); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java index fff2c732..66b69dff 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java @@ -18,13 +18,12 @@ public final class IslandSetupHandler { private final Umbrella umbrella; private final Map islandSetupMap = new HashMap<>(); + private World world; private IslandSetupHandler() { this.umbrella = new IslandSetupUmbrella().getUmbrella(); } - private World world; - /** * This function is called when the plugin is loaded */ @@ -73,12 +72,12 @@ public IslandSetup findSetupBy(final UUID uuid) { return islandSetupMap.get(uuid); } - /** - * Remove the given island setup from the island setup map - * - * @param islandSetup The island setup that is being invalidated. - */ - public void invalidate(final IslandSetup islandSetup) { + /** + * Remove the given island setup from the island setup map + * + * @param islandSetup The island setup that is being invalidated. + */ + public void invalidate(final IslandSetup islandSetup) { islandSetupMap.remove(islandSetup.getPlayerUid()); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java index 173eb01e..d7fe8481 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java @@ -8,7 +8,10 @@ import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; -import java.util.*; +import java.util.HashMap; +import java.util.Map; +import java.util.Queue; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentLinkedQueue; @@ -32,17 +35,17 @@ public static CompletableFuture loadAsync(final JavaPlugin javaPlugin) { Bukkit.getScheduler() .runTaskAsynchronously(javaPlugin, () -> { BridgeUtil.debug("IslandBoard#load(): loading the island's " + - "leaderboard"); + "leaderboard"); for (final Island island : ISLAND_QUEUE) { BridgeUtil.debug("IslandBoard#load(): Loading " + island.getSlot() + " leaderboard " + - "now!"); + "now!"); final Map boardMap = new HashMap<>(); try (final DatabaseQuery databaseQuery = DatabaseQuery.query( "SELECT * FROM scores WHERE island_slot = ? ORDER BY" + - " " + - "score " + "LIMIT 10 OFFSET 0")) { + " " + + "score " + "LIMIT 10 OFFSET 0")) { databaseQuery.setInt(island.getSlot()); final Map boardPlayerMap = @@ -66,7 +69,7 @@ public static CompletableFuture loadAsync(final JavaPlugin javaPlugin) { }); BridgeUtil.debug("IslandBoard#load(): Successfully loaded " + island.getSlot() + - " island leaderboard!"); + " island leaderboard!"); BridgeUtil.debug(String.valueOf(boardMap)); island.loadBoard(boardMap); } catch (Exception e) { @@ -79,7 +82,7 @@ public static CompletableFuture loadAsync(final JavaPlugin javaPlugin) { Bukkit.getScheduler() .runTaskTimerAsynchronously(javaPlugin, () -> { BridgeUtil.debug("IslandBoard#load(): Starting the leaderboard " + - "update process!"); + "update process!"); for (final Island island : ISLAND_QUEUE) { BridgeUtil.debug("IslandBoard#load(): Updating " + island.getSlot() + " now!"); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java index 0f97a969..28a5e4e9 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java @@ -2,8 +2,8 @@ import io.tofpu.speedbridge2.model.common.PlayerNameCache; import io.tofpu.speedbridge2.model.leaderboard.object.BoardPlayer; -import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; +import io.tofpu.speedbridge2.model.player.object.score.Score; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -85,7 +85,7 @@ public void updateLeaderboard() { * Otherwise, insert the player's best score to the temp board * * @param bridgePlayer The player who's score is being appended to the board. - * @param score the score that the player has achieved. + * @param score the score that the player has achieved. */ public void append(final BridgePlayer bridgePlayer, final Score score) { final Score previousScore = globalReference.get(bridgePlayer.getPlayerUid()); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java index a498660a..7b5041fd 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java @@ -8,6 +8,7 @@ public interface BoardLoader { T retrieve(final @NotNull UUID uniqueId); + CompletableFuture retrieveAsync(final @NotNull UUID uniqueId, - final @NotNull Executor executor); + final @NotNull Executor executor); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java index 55799def..661d5eb0 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java @@ -36,7 +36,7 @@ public IslandBoardPlayer retrieve(final @NotNull UUID uniqueId) { @Override public @NotNull CompletableFuture retrieveAsync(final @NotNull UUID key, - final @NotNull Executor executor) { + final @NotNull Executor executor) { BridgeUtil.debug("IslandLoader#retrieveAsync: retrieving " + key); return CompletableFuture.supplyAsync(() -> retrieve(key), executor); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java index bcee23fd..a66abe04 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java @@ -8,8 +8,8 @@ import io.tofpu.speedbridge2.model.common.util.BridgeUtil; import io.tofpu.speedbridge2.model.leaderboard.object.BoardPlayer; import io.tofpu.speedbridge2.model.player.PlayerService; -import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; +import io.tofpu.speedbridge2.model.player.object.score.Score; import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -22,7 +22,7 @@ public final class PlayerPositionLoader implements CacheLoader, BoardLoader { private static final String GLOBAL_POSITION = "SELECT DISTINCT 1 + COUNT(*) AS " + - "position FROM scores WHERE score < (SELECT score FROM scores WHERE uid = ?)"; + "position FROM scores WHERE score < (SELECT score FROM scores WHERE uid = ?)"; private final PlayerService playerService; @@ -61,7 +61,7 @@ public BoardPlayer retrieve(final @NotNull UUID uniqueId) { @Override public @NotNull CompletableFuture retrieveAsync(final @NotNull UUID key, - final @NotNull Executor executor) { + final @NotNull Executor executor) { return CompletableFuture.supplyAsync(() -> { BridgeUtil.debug("PersonalBoardLoader#retrieve(): key: " + key); try (final DatabaseQuery databaseQuery = DatabaseQuery.query(GLOBAL_POSITION)) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java index 7253f628..31349e78 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java @@ -16,8 +16,8 @@ public final class IslandBoardPlayer { private static final String ISLAND_POSITION = "SELECT 1 + COUNT(*) AS position FROM scores WHERE island_slot = ? AND " + - "score" + - " < " + "(SELECT score " + "FROM scores WHERE uid = ?)"; + "score" + + " < " + "(SELECT score " + "FROM scores WHERE uid = ?)"; private final PlayerService playerService; @@ -36,7 +36,7 @@ public IslandBoardPlayer(final PlayerService playerService, final UUID owner) { public @NotNull CompletableFuture retrieve(final int islandSlot) { BridgeUtil.debug("IslandBoardPlayer#retrieve(): Attempting to retrieve board " + - "for " + owner + ", " + islandSlot); + "for " + owner + ", " + islandSlot); final IslandBoard cachedValue = boardMap.get(islandSlot); // if the cached value is not null @@ -47,8 +47,8 @@ public IslandBoardPlayer(final PlayerService playerService, final UUID owner) { } BridgeUtil.debug("IslandBoardPlayer#retrieve(): Attempting to query to database" + - " for position for " + owner + - ", " + islandSlot); + " for position for " + owner + + ", " + islandSlot); try (final DatabaseQuery databaseQuery = DatabaseQuery.query(ISLAND_POSITION)) { databaseQuery.setInt(islandSlot); databaseQuery.setString(owner.toString()); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java index e35fadd5..80a51bfe 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java @@ -11,9 +11,9 @@ import io.tofpu.speedbridge2.model.player.exception.PlayerDeletionFailureException; import io.tofpu.speedbridge2.model.player.exception.PlayerLoadFailureException; import io.tofpu.speedbridge2.model.player.exception.PlayerUpdateNameFailureException; +import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.player.object.stat.PlayerStat; -import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import org.bukkit.Material; import org.jetbrains.annotations.NotNull; @@ -37,7 +37,7 @@ public PlayerDatabase() { completableFutures[0] = DatabaseUtil.databaseExecute( "INSERT OR IGNORE " + "INTO players VALUES (?, " + - "?)", databaseQuery -> { + "?)", databaseQuery -> { databaseQuery.setString(player.getPlayerUid() .toString()); databaseQuery.setString(player.getPlayer() diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java index 430f5ba9..a4ceea80 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java @@ -35,7 +35,7 @@ public static BridgePlayer createDummy(final UUID uuid) { } public static BridgePlayer create(final PlayerFactoryType type, final String name, - final UUID uuid) { + final UUID uuid) { Preconditions.checkNotNull(name, "name cannot be null"); Preconditions.checkNotNull(uuid, "uuid cannot be null"); @@ -50,7 +50,7 @@ public static BridgePlayer create(final PlayerFactoryType type, final String nam } public static BridgePlayer create(final PlayerFactoryType type, - final UUID uuid) { + final UUID uuid) { Preconditions.checkNotNull(uuid, "uuid cannot be null"); switch (type) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java index e623240c..59e05bc1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java @@ -77,11 +77,11 @@ public void remove(final UUID uniqueId) { * If the player is in the * database, update the name and refresh the player instance * - * @param name The name of the player. + * @param name The name of the player. * @param uniqueId The unique ID of the player. */ public void internalRefresh(final String name, - final UUID uniqueId) { + final UUID uniqueId) { final BridgePlayer bridgePlayer = getIfPresent(uniqueId); if (bridgePlayer == null) { loadAsync(uniqueId); @@ -99,11 +99,11 @@ public void internalRefresh(final String name, * If the player is online, update the name if it has changed and refresh the * player instance * - * @param player The live instance of the player. + * @param player The live instance of the player. * @param bridgePlayer The bridge player instance that is being refreshed. */ public void internalRefresh(final @NotNull Player player, - final @NotNull BridgePlayer bridgePlayer) { + final @NotNull BridgePlayer bridgePlayer) { final String name = player.getName(); if (!bridgePlayer.getName() .equals(name)) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java index 61ac0786..41f013be 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java @@ -71,11 +71,11 @@ public void internalRefresh(final @NotNull Player player) { * If the player is online, update the name if it has changed and refresh the * player instance * - * @param player The live instance of the player. + * @param player The live instance of the player. * @param bridgePlayer The bridge player instance that is being refreshed. */ public void internalRefresh(final @NotNull Player player, - final @NotNull BridgePlayer bridgePlayer) { + final @NotNull BridgePlayer bridgePlayer) { playerHandler.internalRefresh(player, bridgePlayer); } @@ -118,7 +118,7 @@ public void shutdown() { } public void loadIfAbsent(final Player player, - final Consumer notAbsentConsumer) { + final Consumer notAbsentConsumer) { playerHandler.loadIfAbsent(player.getUniqueId(), notAbsentConsumer); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java index 9d03f692..62611007 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java @@ -4,7 +4,7 @@ public class PlayerDatabaseExceptionWrapper extends RuntimeException { public PlayerDatabaseExceptionWrapper(final String message, final UUID uniqueId, - final Throwable e) { + final Throwable e) { super(message + ": " + uniqueId.toString(), e); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java index 395c4ec4..a012811d 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java @@ -42,7 +42,7 @@ public BridgePlayer retrieve(final @NotNull UUID uniqueId) { try { BridgeUtil.debug("PlayerLoader#retrieve: Attempting to load " + uniqueId + - " player data!"); + " player data!"); bridgePlayer = retrieveAsync(uniqueId, PluginExecutor.INSTANCE).get(); } catch (InterruptedException | ExecutionException e) { @@ -56,17 +56,16 @@ public BridgePlayer retrieve(final @NotNull UUID uniqueId) { @Override public CompletableFuture retrieveAsync(final @NotNull UUID uniqueId, - final @NotNull Executor executor) { + final @NotNull Executor executor) { BridgeUtil.debug("attempting to load " + uniqueId + " player's data!"); return Databases.PLAYER_DATABASE.getStoredPlayer(uniqueId); } public static final class PlayerRemovalListener implements Expiry { + public static final PlayerRemovalListener INSTANCE = new PlayerRemovalListener(); private static final long EXPIRY_DURATION = TimeUnit.MINUTES.toNanos(5); private static final long INFINITE_DURATION = Long.MAX_VALUE; - public static final PlayerRemovalListener INSTANCE = new PlayerRemovalListener(); - private PlayerRemovalListener() { // prevent instantiation } @@ -78,11 +77,11 @@ public long expireAfterCreate(final UUID key, final BridgePlayer value, final lo @Override public long expireAfterUpdate(final UUID key, final BridgePlayer value, final long currentTime, - @NonNegative final long currentDuration) { + @NonNegative final long currentDuration) { final long elapse = Duration.ofNanos(currentDuration) .getSeconds(); BridgeUtil.debug("PlayerRemovalListener#expireAfterUpdate: Start: current " + - "duration is " + elapse + " seconds!"); + "duration is " + elapse + " seconds!"); if (value.getPlayer() == null) { BridgeUtil.debug("PlayerRemovalListener#expireAfterUpdate: Expiring " + key + " player data after " + elapse + " seconds!"); @@ -95,7 +94,7 @@ public long expireAfterUpdate(final UUID key, final BridgePlayer value, final lo @Override public long expireAfterRead(final UUID key, final BridgePlayer value, final long currentTime, - @NonNegative final long currentDuration) { + @NonNegative final long currentDuration) { final long elapse = Duration.ofNanos(currentDuration) .getSeconds(); BridgeUtil.debug("PlayerRemovalListener#expireAfterRead: Expiring " + key + " player data after " + elapse + " seconds!"); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java index 5b3d6d1e..916cac10 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java @@ -19,12 +19,7 @@ import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.concurrent.CompletableFuture; public class BridgePlayer extends CommonBridgePlayer implements SessionScore, BlockChoice, SetupMeta { @@ -44,39 +39,6 @@ public class BridgePlayer extends CommonBridgePlayer implements SessionS private Material chosenBlock; private boolean inSetup; - /** - * Create a new BridgePlayer object that is a copy of the given BridgePlayer - * - * @param copy The BridgePlayer to copy. - * @return A new BridgePlayer object. - */ - public static BridgePlayer of(final BridgePlayer copy) { - return new BridgePlayer(copy); - } - - /** - * Create a new BridgePlayer object with the given UUID - * - * @param playerUid The UUID of the player. - * @return A new BridgePlayer object. - */ - public static BridgePlayer of(final IslandService islandService, - final Leaderboard leaderboard, final UUID playerUid) { - return new BridgePlayer(islandService, leaderboard, playerUid); - } - - /** - * Create a new BridgePlayer object with the given name and playerUid - * - * @param name The name of the player. - * @param playerUid The UUID of the player. - * @return A new BridgePlayer object. - */ - public static BridgePlayer of(final IslandService islandService, - final Leaderboard leaderboard, final String name, final UUID playerUid) { - return new BridgePlayer(islandService, leaderboard, name, playerUid); - } - protected BridgePlayer(final BridgePlayer copy) { this(copy.islandService, copy.leaderboard, copy.getName(), copy.playerUid); this.scoreMap.putAll(copy.scoreMap); @@ -87,7 +49,7 @@ protected BridgePlayer(final BridgePlayer copy) { } protected BridgePlayer(final IslandService islandService, - final Leaderboard leaderboard, final UUID playerUid) { + final Leaderboard leaderboard, final UUID playerUid) { this(islandService, leaderboard, "null", playerUid); if (player != null) { @@ -115,17 +77,54 @@ protected BridgePlayer(final IslandService islandService, final Leaderboard lead this.inSetup = false; } + /** + * Create a new BridgePlayer object that is a copy of the given BridgePlayer + * + * @param copy The BridgePlayer to copy. + * @return A new BridgePlayer object. + */ + public static BridgePlayer of(final BridgePlayer copy) { + return new BridgePlayer(copy); + } + + /** + * Create a new BridgePlayer object with the given UUID + * + * @param playerUid The UUID of the player. + * @return A new BridgePlayer object. + */ + public static BridgePlayer of(final IslandService islandService, + final Leaderboard leaderboard, final UUID playerUid) { + return new BridgePlayer(islandService, leaderboard, playerUid); + } + + /** + * Create a new BridgePlayer object with the given name and playerUid + * + * @param name The name of the player. + * @param playerUid The UUID of the player. + * @return A new BridgePlayer object. + */ + public static BridgePlayer of(final IslandService islandService, + final Leaderboard leaderboard, final String name, final UUID playerUid) { + return new BridgePlayer(islandService, leaderboard, name, playerUid); + } + @Override public String getName() { return this.name; } + public void setName(final String name) { + this.name = name; + } + /** * If the score is lower than the current score, * then update the scoreMap and sessionMap * * @param islandSlot The slot of the island that the player is currently on. - * @param score the score to be set + * @param score the score to be set * @return The new score. */ public Score setScoreIfLower(final int islandSlot, final double score) { @@ -191,7 +190,7 @@ public Score setNewScore(final Score score) { * It sets the score of the given island slot to the given new score. * * @param islandSlot The island slot that the score is being set for. - * @param newScore The new score to set. + * @param newScore The new score to set. * @return the score */ public Score setNewScore(final int islandSlot, final double newScore) { @@ -276,10 +275,6 @@ public CompletableFuture resetStats() { return Databases.STATS_DATABASE.delete(getPlayerUid()); } - public void setGamePlayer(final GamePlayer gamePlayer) { - this.gamePlayer = gamePlayer; - } - public boolean isPlaying() { return gamePlayer != null; } @@ -318,6 +313,10 @@ public GamePlayer getGamePlayer() { return gamePlayer; } + public void setGamePlayer(final GamePlayer gamePlayer) { + this.gamePlayer = gamePlayer; + } + public void invalidatePlayer() { this.player = null; @@ -332,10 +331,6 @@ public void invalidatePlayer() { resetSessionScores(); } - public void setName(final String name) { - this.name = name; - } - public void internalRefresh(final UUID uniqueId) { this.player = Bukkit.getPlayer(uniqueId); this.name = player.getName(); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java index 1689829e..3cd848be 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java @@ -5,7 +5,7 @@ public class CommonBridgePlayer { public String getName() { throw new UnsupportedOperationException("getName have not been " + - "implemented."); + "implemented."); } public T getPlayer() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java index c6cf2618..4da11db5 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java @@ -6,13 +6,13 @@ import java.util.UUID; public class DummyBridgePlayer extends BridgePlayer { - public static DummyBridgePlayer of(final IslandService islandService, - final Leaderboard leaderboard, final UUID uniqueId) { - return new DummyBridgePlayer(islandService, leaderboard, uniqueId); - } - private DummyBridgePlayer(final IslandService islandService, - final Leaderboard leaderboard, final UUID uniqueId) { + final Leaderboard leaderboard, final UUID uniqueId) { super(islandService, leaderboard, uniqueId); } + + public static DummyBridgePlayer of(final IslandService islandService, + final Leaderboard leaderboard, final UUID uniqueId) { + return new DummyBridgePlayer(islandService, leaderboard, uniqueId); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java index f4aedf5e..f90e256d 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java @@ -7,7 +7,10 @@ import org.bukkit.Material; import org.bukkit.block.Block; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; public final class GamePlayer { private final BridgePlayer player; @@ -17,6 +20,11 @@ public final class GamePlayer { private GameIsland currentGame = null; private long timer = -1; + private GamePlayer(final BridgePlayer player) { + this.player = player; + this.blockLocations = new ArrayList<>(); + } + /** * It creates a new GamePlayer object for the given player. * @@ -27,15 +35,6 @@ public static GamePlayer of(final BridgePlayer player) { return new GamePlayer(player); } - private GamePlayer(final BridgePlayer player) { - this.player = player; - this.blockLocations = new ArrayList<>(); - } - - public void setCurrentGame(final GameIsland gameIsland) { - this.currentGame = gameIsland; - } - /** * Add a block to the list of blocks * @@ -62,12 +61,12 @@ public void resetBlocks() { for (final Location blockLocation : this.blockLocations) { final Block block = blockLocation.getBlock(); BridgeUtil.debug("GamePlayer(): Resetting " + block.getType() + " at " + block.getX() + - ", " + block.getY() + ", " + block.getZ() + " location!"); + ", " + block.getY() + ", " + block.getZ() + " location!"); block.setType(Material.AIR); } BridgeUtil.debug("GamePlayer(): Finished resetting the blocks! clearing the " + - "block locations " + - "immediately!"); + "block locations " + + "immediately!"); this.blockLocations.clear(); } @@ -98,12 +97,16 @@ public boolean isInQueue() { * Returns the current game * * @return The current game that is being played. - */ + */ public GameIsland getCurrentGame() { return currentGame; } - /** + public void setCurrentGame(final GameIsland gameIsland) { + this.currentGame = gameIsland; + } + + /** * Returns the player object associated with this bridge player * * @return The player object. diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java index 93bdb84a..030f7492 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java @@ -10,6 +10,7 @@ public interface BlockChoice { * @return The material that was chosen by the user. */ Material getChoseMaterial(); + /** * Set the material of the object to the given material * diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java index c44c2c19..b6b3ebbe 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java @@ -28,7 +28,7 @@ public CompletableFuture insert(final @NotNull BridgePlayer player) { public CompletableFuture update(final @NotNull BridgePlayer player) { return DatabaseUtil.databaseExecute("UPDATE blocks SET chosen_block = ? " + - "WHERE uid = ?", databaseQuery -> { + "WHERE uid = ?", databaseQuery -> { databaseQuery.setString(player.getChoseMaterial() .name()); databaseQuery.setString(player.getPlayerUid() diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java index 186935b7..17a80153 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java @@ -6,22 +6,22 @@ public final class Score implements Comparable { private final int scoredOn; private final double score; + private Score(final int scoredOn, final double score) { + this.scoredOn = scoredOn; + this.score = score; + } + /** * Create a new Score object with the given island slot and score * * @param islandSlot The island slot that the score is for. - * @param score The score of the island. + * @param score The score of the island. * @return A new instance of Score. */ public static Score of(final int islandSlot, final double score) { return new Score(islandSlot, score); } - private Score(final int scoredOn, final double score) { - this.scoredOn = scoredOn; - this.score = score; - } - /** * Returns the score of the game * diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java index c41b0374..125fac91 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java @@ -21,10 +21,10 @@ public ScoreDatabase() { } public @NotNull CompletableFuture insert(final @NotNull UUID uuid, - final @NotNull Score score) { + final @NotNull Score score) { return DatabaseUtil.databaseExecute( "INSERT OR IGNORE INTO scores (uid, island_slot, score) VALUES " + - "(?, ?, ?)", databaseQuery -> { + "(?, ?, ?)", databaseQuery -> { BridgeUtil.debug("player uid: " + uuid); databaseQuery.setString(uuid.toString()); @@ -38,9 +38,9 @@ public ScoreDatabase() { } public @NotNull CompletableFuture update(final @NotNull UUID uuid, - final @NotNull Score score) { + final @NotNull Score score) { return DatabaseUtil.databaseExecute("UPDATE scores SET island_slot = ?, " + - "score = ? WHERE uid = ?", databaseQuery -> { + "score = ? WHERE uid = ?", databaseQuery -> { BridgeUtil.debug("player uid: " + uuid); BridgeUtil.debug("player score island: " + score.getScoredOn()); @@ -78,7 +78,7 @@ public ScoreDatabase() { public CompletableFuture delete(final UUID uuid) { return PluginExecutor.runAsync(() -> { try (final DatabaseQuery query = DatabaseQuery.query("DELETE FROM scores " + - "WHERE uid = ?")) { + "WHERE uid = ?")) { query.setString(uuid.toString()); query.execute(); } catch (Exception e) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java index 78ca77d0..858220e5 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java @@ -11,6 +11,7 @@ public interface SessionScore { * @return A collection of Score objects. */ Collection getSessionScores(); + /** * Reset the session scores for all users */ diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java index 193136a9..9e760eb0 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java @@ -7,10 +7,12 @@ public interface SetupMeta { * @return A boolean value. */ boolean isInSetup(); + /** * Toggle the setup mode of the program */ void toggleSetup(); + /** * Reset the setup to the default values */ diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java index fa8ebfff..dfdebab0 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java @@ -16,6 +16,7 @@ public interface PlayerStat { * @return The key of the current node. */ String getKey(); + /** * The function returns a string * diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java index edcc8c51..0875c7f8 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java @@ -23,7 +23,7 @@ public static PlayerStat create(final UUID owner, final PlayerStatType playerSta } public static PlayerStatType match(final String statType) { - switch (statType.toUpperCase(Locale.ENGLISH)){ + switch (statType.toUpperCase(Locale.ENGLISH)) { case "TOTAL_WINS": return PlayerStatType.TOTAL_WINS; case "TOTAL_TRIES": diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java index d14429a8..e1e3227f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java @@ -25,7 +25,7 @@ public StatsDatabase() { public @NotNull CompletableFuture insert(final @NotNull PlayerStat playerStat) { return DatabaseUtil.databaseExecute( "INSERT OR IGNORE INTO stats (uid, key, value) VALUES " + - "(?, ?, ?)", databaseQuery -> { + "(?, ?, ?)", databaseQuery -> { databaseQuery.setString(playerStat.getOwner() .toString()); databaseQuery.setString(playerStat.getKey()); @@ -35,7 +35,7 @@ public StatsDatabase() { public @NotNull CompletableFuture update(final @NotNull PlayerStat playerStat) { return DatabaseUtil.databaseExecute("UPDATE stats SET value = ? WHERE " + - "uid = ? AND key = ?", databaseQuery -> { + "uid = ? AND key = ?", databaseQuery -> { databaseQuery.setString(playerStat.getValue()); databaseQuery.setString(playerStat.getOwner() @@ -50,21 +50,21 @@ public StatsDatabase() { try { DatabaseUtil.databaseExecute("SELECT * FROM stats WHERE uid = ?", databaseQuery -> { - databaseQuery.setString(owner.toString()); + databaseQuery.setString(owner.toString()); - databaseQuery.executeQuery(resultSet -> { - while (resultSet.next()) { - final PlayerStatType playerStatType = PlayerStatType.match(resultSet.getString("key")); + databaseQuery.executeQuery(resultSet -> { + while (resultSet.next()) { + final PlayerStatType playerStatType = PlayerStatType.match(resultSet.getString("key")); - if (playerStatType == null) { - continue; - } - final PlayerStat playerStat = PlayerStatType.create(owner, playerStatType, resultSet.getString("value")); - BridgeUtil.debug("found stat: " + playerStat); + if (playerStatType == null) { + continue; + } + final PlayerStat playerStat = PlayerStatType.create(owner, playerStatType, resultSet.getString("value")); + BridgeUtil.debug("found stat: " + playerStat); - playerStats.add(playerStat); - } - }); + playerStats.add(playerStat); + } + }); }) .get(); } catch (InterruptedException | ExecutionException e) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java index 32593d6c..1378b25d 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java @@ -50,7 +50,7 @@ public boolean canRegister() { @Override public String onPlaceholderRequest(final Player player, - @NotNull final String params) { + @NotNull final String params) { if (player == null) { return ""; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java index d0e68c08..f06b0b68 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java @@ -9,8 +9,11 @@ public AbstractExpansion() { } public abstract String getIdentifier(); + public abstract String getDefaultAction(final BridgePlayer bridgePlayer); + public abstract boolean passedRequirement(final BridgePlayer bridgePlayer, final String[] args); + public abstract String runAction(final BridgePlayer bridgePlayer, - final GamePlayer gamePlayer, final String[] args); + final GamePlayer gamePlayer, final String[] args); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java index 97090e85..7e90c102 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java @@ -3,9 +3,9 @@ import io.tofpu.dynamicclass.meta.AutoRegister; import io.tofpu.speedbridge2.model.common.Message; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.GamePlayer; +import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.support.placeholderapi.expansion.AbstractExpansion; @AutoRegister diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java index 5da75bab..e4059e88 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java @@ -25,7 +25,7 @@ public boolean passedRequirement(final BridgePlayer bridgePlayer, final String[] @Override public String runAction(final BridgePlayer bridgePlayer, - final GamePlayer gamePlayer, final String[] args) { + final GamePlayer gamePlayer, final String[] args) { final GameIsland currentGame = bridgePlayer.getCurrentGame(); if (currentGame == null) { return ""; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java index 16962adf..d89afbc1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java @@ -4,13 +4,13 @@ import io.tofpu.speedbridge2.model.common.Message; import io.tofpu.speedbridge2.model.common.config.manager.ConfigurationManager; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.leaderboard.Leaderboard; -import io.tofpu.speedbridge2.model.leaderboard.object.BoardPlayer; import io.tofpu.speedbridge2.model.island.IslandService; import io.tofpu.speedbridge2.model.island.object.Island; -import io.tofpu.speedbridge2.model.player.object.score.Score; +import io.tofpu.speedbridge2.model.leaderboard.Leaderboard; +import io.tofpu.speedbridge2.model.leaderboard.object.BoardPlayer; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.GamePlayer; +import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.support.placeholderapi.expansion.AbstractExpansion; @AutoRegister @@ -35,14 +35,14 @@ public String getDefaultAction(final BridgePlayer bridgePlayer) { @Override public boolean passedRequirement(final BridgePlayer bridgePlayer, - final String[] args) { + final String[] args) { // this placeholder requires four arguments return args.length == 3; } @Override public String runAction(final BridgePlayer bridgePlayer, - final GamePlayer gamePlayer, final String[] args) { + final GamePlayer gamePlayer, final String[] args) { final int position = parse(args, 2); if (position == -1) { return "Invalid Placeholder"; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java index 4a0677ee..aa2d6f3a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java @@ -38,7 +38,7 @@ public boolean passedRequirement(final BridgePlayer bridgePlayer, final String[] @Override public String runAction(final BridgePlayer bridgePlayer, - final GamePlayer gamePlayer, final String[] args) { + final GamePlayer gamePlayer, final String[] args) { if (args.length == 2) { // returns island-based position return getIslandPosition(bridgePlayer, args); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java index be018025..7ddf9f8a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java @@ -27,7 +27,7 @@ public boolean passedRequirement(final BridgePlayer bridgePlayer, final String[] @Override public String runAction(final BridgePlayer bridgePlayer, - final GamePlayer gamePlayer, final String[] args) { + final GamePlayer gamePlayer, final String[] args) { return BridgeUtil.formatNumber(BridgeUtil.nanoToSeconds(gamePlayer.getTimer())); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java index 2b2b8f7a..a0320fd0 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java @@ -1,8 +1,8 @@ package io.tofpu.speedbridge2.model.support.placeholderapi.expansion.expansions; -import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.GamePlayer; +import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; import io.tofpu.speedbridge2.model.support.placeholderapi.expansion.AbstractExpansion; public final class TotalStatsExpansion extends AbstractExpansion { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java index 0fee5742..3a469e25 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java @@ -40,6 +40,6 @@ public boolean contains(final Vector vector) { final double z = vector.getZ(); return x >= minVector.getX() && x <= maxVector.getX() && y >= minVector.getY() && - y <= maxVector.getY() && z >= minVector.getZ() && z <= maxVector.getZ(); + y <= maxVector.getY() && z >= minVector.getZ() && z <= maxVector.getZ(); } } From 395d627792ab0a29aabc74d2b2298f88dda42a74 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 07:27:07 +0200 Subject: [PATCH 23/71] Prevent player from crafting while in a game --- .../listener/island/IslandRegionListener.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java index be4d54cb..4a0ea73a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java @@ -9,6 +9,8 @@ import io.tofpu.speedbridge2.model.support.worldedit.Vector; import org.bukkit.Location; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.inventory.CraftItemEvent; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.jetbrains.annotations.NotNull; @@ -64,4 +66,15 @@ private void onPlayerMove(final @NotNull PlayerMoveEvent event) { currentGame.resetGame(); } } + + @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) + private void onCraft(CraftItemEvent event) { + final BridgePlayer bridgePlayer = playerService.getIfPresent(event.getWhoClicked() + .getUniqueId()); + if (bridgePlayer == null || !bridgePlayer.isPlaying()) { + return; + } + + event.setCancelled(true); + } } From c4716600d19ab4bf888e7864f9118a3ba26d70c8 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 10:46:53 +0200 Subject: [PATCH 24/71] Add optional target argument to a couple of commands Introduces optional target argument to the following commands (addresses #39): - `sb join [target]` - `sb leave [target]` - `sb score [target]` - `sb randomjoin [target]` --- .gitignore | 1 + .../speedbridge2/command/CommandManager.java | 6 +- .../annotation/OptionalPermission.java | 47 +++++++++++ .../command/context/GameIslandContext.java | 32 +++++++- .../subcommand/SpeedBridgeCommand.java | 78 +++++++++++++------ .../speedbridge2/model/common/Message.java | 11 ++- .../model/island/object/EmptyIsland.java | 47 ----------- .../model/island/object/GameIsland.java | 4 +- .../model/island/object/Island.java | 11 +-- 9 files changed, 150 insertions(+), 87 deletions(-) create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/OptionalPermission.java delete mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java diff --git a/.gitignore b/.gitignore index 2c995164..f1858821 100644 --- a/.gitignore +++ b/.gitignore @@ -111,6 +111,7 @@ buildNumber.properties # Common working directory run/ +run-*/ demo dep.txt memory diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java index df35b993..d1a79b75 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java @@ -3,6 +3,7 @@ import io.tofpu.dynamicclass.DynamicClass; import io.tofpu.speedbridge2.command.condition.AbstractCommandConditionWrapper; import io.tofpu.speedbridge2.command.condition.LampConditionRegistry; +import io.tofpu.speedbridge2.command.condition.annotation.OptionalPermission; import io.tofpu.speedbridge2.command.context.AbstractLampContext; import io.tofpu.speedbridge2.command.context.LampContextRegistry; import io.tofpu.speedbridge2.command.parser.AbstractLampParser; @@ -85,6 +86,9 @@ public boolean isCustomType(final Class type) { constructTabCompleter(islandService); constructCommandConditions(); + commandHandler.registerAnnotationReplacer(OptionalPermission.class, OptionalPermission.AnnotationReplacerImpl.INSTANCE); + commandHandler.registerPermissionReader(OptionalPermission.PermissionReaderImpl.INSTANCE); + commandHandler.register(new SpeedBridgeCommand(playerService, islandService)); commandHandler.register(new SpeedBridgeDebugCommand(arenaManager)); } @@ -95,7 +99,7 @@ private static void constructTabCompleter(final @NotNull IslandService islandSer CommandCompletion commandCompletion = new CommandCompletion(islandService); commandHandler.getAutoCompleter().registerParameterSuggestions(Island.class, commandCompletion::islands); commandHandler.getAutoCompleter().registerParameterSuggestions(Material.class, commandCompletion::materials); - commandHandler.getAutoCompleter().registerSuggestion("players", commandCompletion::players); + commandHandler.getAutoCompleter().registerParameterSuggestions(BridgePlayer.class, commandCompletion::players); } private static void constructContext() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/OptionalPermission.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/OptionalPermission.java new file mode 100644 index 00000000..71204b05 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/OptionalPermission.java @@ -0,0 +1,47 @@ +package io.tofpu.speedbridge2.command.condition.annotation; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import revxrsal.commands.annotation.Optional; +import revxrsal.commands.annotation.dynamic.AnnotationReplacer; +import revxrsal.commands.annotation.dynamic.Annotations; +import revxrsal.commands.bukkit.BukkitCommandActor; +import revxrsal.commands.command.CommandPermission; +import revxrsal.commands.command.trait.CommandAnnotationHolder; +import revxrsal.commands.process.PermissionReader; + +import java.lang.annotation.*; +import java.lang.reflect.AnnotatedElement; +import java.util.Collection; + +import static revxrsal.commands.util.Collections.linkedListOf; + +@Target(ElementType.PARAMETER) +@Retention(RetentionPolicy.RUNTIME) +public @interface OptionalPermission { + String value(); + + enum AnnotationReplacerImpl implements AnnotationReplacer { + INSTANCE; + + @Override + public Collection replaceAnnotations(@NotNull AnnotatedElement element, @NotNull OptionalPermission annotation) { + Optional optional = Annotations.create(Optional.class); + return linkedListOf(optional, annotation); + } + } + + enum PermissionReaderImpl implements PermissionReader { + INSTANCE { + @Override + public @Nullable CommandPermission getPermission(@NotNull CommandAnnotationHolder command) { + OptionalPermission annotation = command.getAnnotation(OptionalPermission.class); + if (annotation == null) return null; + return actor -> { + BukkitCommandActor playerActor = (BukkitCommandActor) actor; + return playerActor.requirePlayer().hasPermission(annotation.value()); + }; + } + } + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java index 86c9f56a..d19f073c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java @@ -5,9 +5,13 @@ import io.tofpu.speedbridge2.model.island.object.GameIsland; import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; +import org.jetbrains.annotations.Nullable; import revxrsal.commands.exception.CommandErrorException; import revxrsal.commands.process.ContextResolver; +import java.lang.reflect.Parameter; +import java.util.Arrays; + import static io.tofpu.speedbridge2.model.common.Message.INSTANCE; @AutoRegister @@ -22,14 +26,36 @@ public GameIslandContext(final LampContextRegistry registry, final PlayerService @Override public GameIsland resolve(final ContextResolver.ContextResolverContext context) { final BridgePlayer player = playerService.getIfPresent(context.actor().getUniqueId()); - if (player == null) { + Parameter javaParameter = context.parameter().getJavaParameter(); + boolean canBeNull = javaParameter.isAnnotationPresent(Nullable.class) || context.parameter().isOptional(); + if (!canBeNull) { + System.out.println("list of annotations: " + Arrays.toString(javaParameter.getAnnotations())); + System.out.println("list of annotations types: " + javaParameter.getAnnotatedType()); + System.out.println("list of declared annotations: " + Arrays.toString(javaParameter.getDeclaredAnnotations())); + System.out.println("alternative: " + context.command().hasAnnotation(Nullable.class)); + System.out.println("alternative: " + context.command().getParameters().stream().anyMatch(commandParameter -> { + boolean result = commandParameter.hasAnnotation(Nullable.class); + if (result) { + System.out.println(commandParameter + " has nullable annotation"); + } + return result; + })); + } +// context.parameter().getJavaParameter(). + System.out.println(String.format("GameIslandContext: %s can be null? %s", context.actor().getName(), canBeNull)); + + if (player == null && canBeNull) { + return null; + } else if (player == null) { throw new CommandErrorException(BridgeUtil.miniMessageToLegacy(INSTANCE.notLoaded)); } + final GameIsland currentGame = player.getCurrentGame(); - if (currentGame == null) { + if (currentGame == null && canBeNull) { + return null; + } else if (currentGame == null) { throw new CommandErrorException(BridgeUtil.miniMessageToLegacy(INSTANCE.notInAIsland)); } - return currentGame; } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 1c20768d..18f1fe5e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -1,10 +1,7 @@ package io.tofpu.speedbridge2.command.subcommand; import io.tofpu.speedbridge2.command.NameAndUUID; -import io.tofpu.speedbridge2.command.condition.annotation.MaterialType; -import io.tofpu.speedbridge2.command.condition.annotation.RestrictConsole; -import io.tofpu.speedbridge2.command.condition.annotation.RestrictDummyModel; -import io.tofpu.speedbridge2.command.condition.annotation.RestrictSetup; +import io.tofpu.speedbridge2.command.condition.annotation.*; import io.tofpu.speedbridge2.command.parser.annotation.PlayerUUID; import io.tofpu.speedbridge2.model.blockmenu.BlockMenuManager; import io.tofpu.speedbridge2.model.common.Message; @@ -36,7 +33,7 @@ import java.util.ArrayList; import java.util.List; -import java.util.Optional; +import java.util.Objects; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ThreadLocalRandom; @@ -88,7 +85,7 @@ public void onLobbySet(final BridgePlayer bridgePlayer) { @RestrictDummyModel @RestrictConsole public String onIslandCreate(final BridgePlayer player, final int slot, final String schematic, - @revxrsal.commands.annotation.Optional @Flag("c") String category) { + @Optional @Flag("c") String category) { if (!isGeneralSetupComplete(player)) { return ""; } @@ -162,10 +159,9 @@ public void onPlayerReset(final CommonBridgePlayer sender, final @PlayerUUID @Usage("modify [-c category|-s schematic]") @Description("Modify an island properties") @CommandPermission("speedbridge.island.modify") - public String onIslandSelect(final Island island, final @revxrsal.commands.annotation.Optional - @Flag(value = "c") @Default("") - String category, final @revxrsal.commands.annotation.Optional - @Flag(value = "s") @Default("") String schematic) { + public String onIslandSelect(final Island island, + final @Optional @Flag(value = "c") @Default("") String category, + final @Optional @Flag(value = "s") @Default("") String schematic) { final int slot = island.getSlot(); if (!category.isEmpty()) { @@ -214,38 +210,70 @@ private boolean isGeneralSetupComplete(final BridgePlayer bridgePlayer) { @Description("Join an island") @RestrictDummyModel @RestrictConsole - public String onIslandJoin(final BridgePlayer bridgePlayer, final Island island) { - if (!isGeneralSetupComplete(bridgePlayer)) { + public String onIslandJoin(final BridgePlayer sender, final Island island, @OptionalPermission("sb.join.other") BridgePlayer target) { + if (!isGeneralSetupComplete(sender)) { return ""; } - if (bridgePlayer.isPlaying()) { + if (target == null && sender.isPlaying()) { return INSTANCE.alreadyInAIsland; + } else if (target != null && target.isPlaying()) { + return String.format(INSTANCE.otherIsAlreadyInAIsland, target.getName()); } if (!island.isReady()) { return String.format(INSTANCE.invalidIsland, island.getSlot()); } - island.join(bridgePlayer); - return String.format(INSTANCE.joinedAnIsland, island.getSlot() + ""); + if (target == null) { + island.join(sender); + return String.format(INSTANCE.joinedAnIsland, island.getSlot()); + } + + island.join(target); + return String.format(INSTANCE.otherJoinedAnIsland, target.getName(), island.getSlot()); } @Command({"sb leave", "speedbridge leave", "leave"}) @Description("Leave an island") - public void onIslandLeave(final GameIsland gameIsland) { - gameIsland.stopGame(); + public String onIslandLeave(final BridgePlayer sender, + final @Optional GameIsland senderGame, + @OptionalPermission("sb.leave.other") BridgePlayer target) { + if (Objects.equals(sender, target)) { + target = null; + } + + System.out.println("onIslandLeave command called"); + if (senderGame == null && target == null) { + return String.format(INSTANCE.notInAIsland); + } else if (target == null) { + senderGame.stopGame(); + return ""; // handled by method + } + + GameIsland targetGame = target.getCurrentGame(); + int slot = targetGame == null ? -1 : targetGame.getIsland().getSlot(); + if (targetGame == null || !targetGame.stopGame()) { + return String.format(INSTANCE.otherNotInAIsland, target.getName(), slot); + } + return String.format(INSTANCE.otherLeftTheIsland, target.getName(), slot); } @Command({"sb score", "speedbridge score", "score"}) @Description("Shows a list of your scores") @RestrictConsole - public String onScore(final BridgePlayer bridgePlayer) { + public String onScore(final BridgePlayer sender, + @OptionalPermission("sb.score.other") BridgePlayer target) { + boolean isSender = target == null; + if (isSender) { + target = sender; + } + final List scoreList = new ArrayList<>(); - for (final Score score : bridgePlayer.getScores()) { + for (final Score score : target.getScores()) { if (scoreList.isEmpty()) { - scoreList.add(INSTANCE.scoreTitle); + scoreList.add(isSender ? INSTANCE.scoreTitle : String.format(INSTANCE.otherScoreTitle, target.getName())); } scoreList.add(String.format(FORMATTED_SCORE, score.getScoredOn(), BridgeUtil.formatNumber(score.getScore()))); @@ -334,7 +362,7 @@ public void onHelpCommand(final CommonBridgePlayer bridgePlayer) { @AutoComplete("@players") public String onRandomJoin( final BridgePlayer sender, - @revxrsal.commands.annotation.Optional final BridgePlayer target) { + @OptionalPermission("sb.randomjoin.other") final BridgePlayer target) { if (!isGeneralSetupComplete(sender)) { return ""; } @@ -343,7 +371,7 @@ public String onRandomJoin( return INSTANCE.alreadyInAIsland; } - final Optional optionalIsland = getRandomIsland(); + final java.util.Optional optionalIsland = getRandomIsland(); if (!optionalIsland.isPresent()) { return INSTANCE.noAvailableIsland; @@ -360,7 +388,7 @@ public String onRandomJoin( } @NotNull - private Optional getRandomIsland() { + private java.util.Optional getRandomIsland() { final List filteredIslands = islandService.getAllIslands() .stream() .parallel() @@ -368,11 +396,11 @@ private Optional getRandomIsland() { .collect(Collectors.toList()); if (filteredIslands.isEmpty()) { - return Optional.empty(); + return java.util.Optional.empty(); } int randomIndex = ThreadLocalRandom.current().nextInt(filteredIslands.size()); - return Optional.ofNullable(filteredIslands.get(randomIndex)); + return java.util.Optional.ofNullable(filteredIslands.get(randomIndex)); } @Subcommand("setup") diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index 2bcb949f..b6a15427 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -6,10 +6,7 @@ import java.io.File; import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; @@ -58,10 +55,14 @@ public final class Message { public final String scoreTitle = "" + SCORE_TITLE_BAR + " YOUR SCORES" + " " + SCORE_TITLE_BAR; + public final String otherScoreTitle = "" + SCORE_TITLE_BAR + " %s SCORES" + " " + + SCORE_TITLE_BAR; public final String joinedAnIsland = SUCCESS + "You're now on island %s!"; public final String otherJoinedAnIsland = SUCCESS + "Player %s is now on island %s!"; public final String leftAnIsland = SUCCESS + "You left from island" + " %s!"; public final String notInAIsland = error + "You're not on an island!"; + public final String otherNotInAIsland = error + "Player % is not on an island!"; public final String deletedAnIsland = SUCCESS + "Island %s has been deleted!"; public final String emptySelect = error + "You haven't modified anything..."; public final String reloaded = SUCCESS + "The config has been reloaded!"; @@ -111,6 +112,8 @@ public final class Message { public final String blockTypeMustBeSolid = error + "%s must be a solid block to be selectable!"; public final String invalidMaterial = error + "Invalid material: %s"; public final String blockAlreadySelected = error + "Player %s has already selected material %s!"; + public final String otherIsAlreadyInAIsland = error + "Player % is already in an island"; + public final String otherLeftTheIsland = error + "Player % left from island %s!"; private static String runCommand(final String command) { return "Click to run " + diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java deleted file mode 100644 index 9c10c750..00000000 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java +++ /dev/null @@ -1,47 +0,0 @@ -package io.tofpu.speedbridge2.model.island.object; - -import io.tofpu.speedbridge2.model.common.Message; -import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.player.object.BridgePlayer; -import io.tofpu.speedbridge2.model.player.object.GamePlayer; -import org.jetbrains.annotations.NotNull; - -import java.util.AbstractMap; -import java.util.Map; - -public class EmptyIsland extends Island { - public EmptyIsland() { - super(null, null, -1, "null"); - } - - @Override - public Map.Entry join(final BridgePlayer player) { - return new AbstractMap.SimpleImmutableEntry<>(null, null); - } - - @Override - public void leaveGame(final BridgePlayer bridgePlayer) { - BridgeUtil.sendMessage(bridgePlayer.getPlayer(), - Message.INSTANCE.notInAIsland); - } - - @Override - public GameIsland findGameByPlayer(final GamePlayer gamePlayer) { - return null; - } - - @Override - public void delete() { - // does nothing - } - - @Override - public void setCategory(final String anotherCategory) { - // does nothing - } - - @Override - public boolean selectSchematic(final @NotNull String schematicName) { - return false; - } -} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java index 114c6096..7bda235f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java @@ -147,8 +147,8 @@ public IslandLand getIslandPlot() { return islandLand; } - public void stopGame() { - getIsland().leaveGame(getGamePlayer().getBridgePlayer()); + public boolean stopGame() { + return getIsland().leaveGame(getGamePlayer().getBridgePlayer()); } public void abortGame() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java index 95d032ba..1c9ede46 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java @@ -99,8 +99,8 @@ public Map.Entry join(final BridgePlayer player) { return new AbstractMap.SimpleImmutableEntry<>(gamePlayer, gameIsland); } - public void leaveGame(final BridgePlayer bridgePlayer) { - leaveGame(bridgePlayer, true); + public boolean leaveGame(final BridgePlayer bridgePlayer) { + return leaveGame(bridgePlayer, true); } /** @@ -109,15 +109,15 @@ public void leaveGame(final BridgePlayer bridgePlayer) { * * @param bridgePlayer The bridge player that is leaving the game island. */ - public void leaveGame(final BridgePlayer bridgePlayer, final boolean clearInventory) { + public boolean leaveGame(final BridgePlayer bridgePlayer, final boolean clearInventory) { final GamePlayer gamePlayer = bridgePlayer.getGamePlayer(); if (gamePlayer == null) { - return; + return false; } final GameIsland gameIsland = this.islandMap.remove(gamePlayer); if (gameIsland == null) { - return; + return false; } final Player player = bridgePlayer.getPlayer(); @@ -131,6 +131,7 @@ public void leaveGame(final BridgePlayer bridgePlayer, final boolean clearInvent // reset the game island gameIsland.remove(); + return true; } public void abortGame(BridgePlayer bridgePlayer) { From 1e562fd6f99f83d69f54ff5d06cf70355e6d131d Mon Sep 17 00:00:00 2001 From: Tofpu Date: Thu, 18 Apr 2024 01:00:33 +0200 Subject: [PATCH 25/71] Remove debug console logs --- .../command/context/GameIslandContext.java | 15 ------- .../command/parser/MaterialParser.java | 1 - .../util/material/MultiMaterial.java | 45 ------------------- 3 files changed, 61 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java index d19f073c..5c6c1bc9 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java @@ -28,21 +28,6 @@ public GameIsland resolve(final ContextResolver.ContextResolverContext context) final BridgePlayer player = playerService.getIfPresent(context.actor().getUniqueId()); Parameter javaParameter = context.parameter().getJavaParameter(); boolean canBeNull = javaParameter.isAnnotationPresent(Nullable.class) || context.parameter().isOptional(); - if (!canBeNull) { - System.out.println("list of annotations: " + Arrays.toString(javaParameter.getAnnotations())); - System.out.println("list of annotations types: " + javaParameter.getAnnotatedType()); - System.out.println("list of declared annotations: " + Arrays.toString(javaParameter.getDeclaredAnnotations())); - System.out.println("alternative: " + context.command().hasAnnotation(Nullable.class)); - System.out.println("alternative: " + context.command().getParameters().stream().anyMatch(commandParameter -> { - boolean result = commandParameter.hasAnnotation(Nullable.class); - if (result) { - System.out.println(commandParameter + " has nullable annotation"); - } - return result; - })); - } -// context.parameter().getJavaParameter(). - System.out.println(String.format("GameIslandContext: %s can be null? %s", context.actor().getName(), canBeNull)); if (player == null && canBeNull) { return null; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java index ab45d13f..9a96eca9 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java @@ -16,7 +16,6 @@ public MaterialParser(LampParseRegistry registry) { @Override Material parse(ValueResolver.ValueResolverContext context) { - System.out.println("MaterialParser#parse called"); String materialName = context.pop(); try { return MultiMaterial.getOrThrow(materialName); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java index 5e6c69b1..806328e1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java @@ -54,49 +54,4 @@ public static Collection materials(MaterialCategory category) { throw new RuntimeException(String.format("Unknown material category: %s", category)); } } - -// final static class MaterialResolvers { -// static final MaterialResolver BUKKIT_MATERIAL_RESOLVER = new BukkitMaterialResolver(); -// static final MaterialResolver XMATERIAL_MATERIAL_RESOLVER = new XMaterialResolver(); -// static final MaterialResolver EMPTY_RESOLVER = new EmptyResolver(); -// } -// -// static class XMaterialResolver extends MaterialResolver { -// @Override -// Material resolve(String name) { -// return XMaterial.matchXMaterial(name).orElseThrow(() -> new IllegalArgumentException("Unknown material: %s")).parseMaterial(); -// } -// } -// -// static class BukkitMaterialResolver extends MaterialResolver { -// @Override -// Material resolve(String name) { -// Material material = Material.matchMaterial(name); -// if (material == null) { -// throwException(name); -// } -// return material; -// } -// } -// -// static class EmptyResolver extends MaterialResolver { -// -// @Override -// Material resolve(String name) { -// throwException(name); -// return null; -// } -// } -// -// abstract static class MaterialResolver { -// abstract Material resolve(String name); -// -// void throwException(String name) throws RuntimeException { -// throw getException(name); -// } -// -// RuntimeException getException(String name) { -// return new IllegalArgumentException("Unknown material: %s"); -// } -// } } From 8b98655fb92902a06e61a523347e7e6e3726f161 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Sun, 21 Apr 2024 08:13:28 +0200 Subject: [PATCH 26/71] Change `setup` to `setup create` for creating setups to make other setup-related commands usable --- .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 18f1fe5e..ca115ffa 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -403,7 +403,7 @@ private java.util.Optional getRandomIsland() { return java.util.Optional.ofNullable(filteredIslands.get(randomIndex)); } - @Subcommand("setup") + @Subcommand("setup create") @Description("Create an island setup") @CommandPermission("speedbridge.setup.admin") @RestrictDummyModel From 7152689744e6d94047047c123618425e8e610628 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Mon, 6 May 2024 23:40:21 +0300 Subject: [PATCH 27/71] Lock `sb randomjoin` behind a permission node Solves the #46 issue --- .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index ca115ffa..3a4fa0a2 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -360,6 +360,7 @@ public void onHelpCommand(final CommonBridgePlayer bridgePlayer) { @RestrictDummyModel @RestrictConsole @AutoComplete("@players") + @CommandPermission("sb.randomjoin") public String onRandomJoin( final BridgePlayer sender, @OptionalPermission("sb.randomjoin.other") final BridgePlayer target) { From 9a637b54bbb6d4092e1276a0e786a49459147b4a Mon Sep 17 00:00:00 2001 From: Tofpu Date: Mon, 6 May 2024 23:41:02 +0300 Subject: [PATCH 28/71] Lock `sb islands` behind a permission node Solves the #45 issue --- .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 3a4fa0a2..1245247e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -296,6 +296,7 @@ public void chooseBlock(final BridgePlayer bridgePlayer) { } @Command({"sb islands", "speedbridge islands", "islands"}) + @CommandPermission("sb.islands") public String showIslands() { final MessagePresenterHolderImpl holder = new MessagePresenterHolderImpl( "List of Islands"); From e2b45bb9bd2183c47acd5fb6475c32dacf866aca Mon Sep 17 00:00:00 2001 From: Tofpu Date: Tue, 12 Mar 2024 06:41:50 +0200 Subject: [PATCH 29/71] Allow admins to change a player's selected block type via command --- .../command/parser/BridgePlayerParser.java | 33 +++++++++++++++++++ .../subcommand/SpeedBridgeCommand.java | 14 +++++++- .../speedbridge2/model/common/Message.java | 3 ++ 3 files changed, 49 insertions(+), 1 deletion(-) create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/parser/BridgePlayerParser.java diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/BridgePlayerParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/BridgePlayerParser.java new file mode 100644 index 00000000..c75fdd60 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/BridgePlayerParser.java @@ -0,0 +1,33 @@ +package io.tofpu.speedbridge2.command.parser; + +import io.tofpu.dynamicclass.meta.AutoRegister; +import io.tofpu.speedbridge2.model.common.util.BridgeUtil; +import io.tofpu.speedbridge2.model.player.PlayerService; +import io.tofpu.speedbridge2.model.player.object.BridgePlayer; +import org.bukkit.Bukkit; +import org.bukkit.entity.Player; +import revxrsal.commands.exception.CommandErrorException; +import revxrsal.commands.process.ValueResolver; + +import static io.tofpu.speedbridge2.model.common.Message.INSTANCE; + +@AutoRegister +public class BridgePlayerParser extends AbstractLampParser { + private final PlayerService playerService; + + public BridgePlayerParser(PlayerService playerService, LampParseRegistry registry) { + super(BridgePlayer.class, registry); + this.playerService = playerService; + } + + @Override + BridgePlayer parse(ValueResolver.ValueResolverContext context) { + final String input = context.pop(); + Player player = Bukkit.getPlayer(input); + BridgePlayer bridgePlayer = player == null ? null : playerService.getIfPresent(player.getUniqueId()); + if (bridgePlayer == null) { + throw new CommandErrorException(BridgeUtil.miniMessageToLegacy(String.format(INSTANCE.mustBeOnline, input))); + } + return bridgePlayer; + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index a5101ab5..2b755162 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -25,12 +25,12 @@ import io.tofpu.speedbridge2.plugin.SpeedBridgePlugin; import org.bukkit.Bukkit; import org.bukkit.Location; +import org.bukkit.Material; import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; import revxrsal.commands.annotation.*; import revxrsal.commands.bukkit.annotation.CommandPermission; -import revxrsal.commands.bukkit.exception.MalformedEntitySelectorException; import java.util.ArrayList; import java.util.List; @@ -435,6 +435,18 @@ public String cancelSetup(final BridgePlayer bridgePlayer) { return INSTANCE.setupCancelled; } + @Subcommand("admin set selectedBlockType") + @Description("Changes the selected block type for a specified player") + @CommandPermission("speedbridge.admin.set.selectedBlockType") + @AutoComplete("* @players") + public String setSelectedBlockType(final Material material, final BridgePlayer target) { + if (!material.isSolid()) { + return String.format(INSTANCE.blockTypeMustBeSolid, material); + } + target.setChosenMaterial(material); + return String.format(INSTANCE.setChosenType, target.getName(), material); + } + private String hover(final String hoverContent, final String content) { return "" + content; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index 1ecc9e09..6f955dbb 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -119,6 +119,9 @@ public final class Message { "for %s seconds."; public final String invalidUuid = error + "%s is not a valid uuid format. Please try again"; + public final String mustBeOnline = error + "%s must be available to modify their data"; + public final String setChosenType = SUCCESS + "Changed %s's selected block type to %s"; + public final String blockTypeMustBeSolid = error + "%s must be a solid block to be selectable!"; private static String runCommand(final String command) { return "Click to run " + From b35c0efd4c0576c27bd603a58f147a371c2c6452 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Thu, 21 Dec 2023 23:12:06 +0200 Subject: [PATCH 30/71] Bump toolbar (formally umbrella) version to add support for 1.20.4 --- spigot/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 68a87851..947ef100 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -31,7 +31,7 @@ dependencies { exclude("com.sk89q", "worldedit") } - implementation("com.github.tofpu:umbrella:1.20-support-SNAPSHOT") + implementation("com.github.tofpu:umbrella:legacy-SNAPSHOT") } tasks { From b0ad08495826ef480d9dedda21c042b087147e43 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 03:30:39 +0200 Subject: [PATCH 31/71] Relocate spigot-related dependency to the appropriate module --- build.gradle.kts | 11 ----------- spigot/build.gradle.kts | 18 ++++++++++++++---- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index b19b2dd7..97eab998 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -27,17 +27,6 @@ allprojects { } dependencies { - compileOnly("org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT") - - implementation("com.github.Revxrsal.Lamp:common:3.1.7") - - implementation("net.kyori:adventure-api:4.10.1") - implementation("net.kyori:adventure-text-minimessage:4.10.1") - - implementation("com.github.tofpu:DynamicClass:1.1") { - exclude("com.google.guava", "guava") - } - testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0") testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") } diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 947ef100..0c7b531b 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -3,10 +3,16 @@ plugins { } dependencies { + compileOnly("org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT") + compileOnly("org.xerial:sqlite-jdbc:3.36.0.3") compileOnly("com.sk89q:worldedit:6.0.0-SNAPSHOT") + implementation("com.github.Revxrsal.Lamp:common:3.1.7") implementation("com.github.Revxrsal.Lamp:bukkit:3.1.7") + + implementation("net.kyori:adventure-api:4.10.1") + implementation("net.kyori:adventure-text-minimessage:4.10.1") implementation("net.kyori:adventure-platform-bukkit:4.0.1") implementation("com.github.tofpu:DynamicClass:1.1") { @@ -32,10 +38,13 @@ dependencies { } implementation("com.github.tofpu:umbrella:legacy-SNAPSHOT") + implementation("com.github.Tofpu:dynamicclass:1.3") { + exclude("com.google.guava", "guava") + } } tasks { - named("shadowJar") { + shadowJar { archiveName = "Speedbridge2-${version}-all.jar" dependencies { @@ -56,8 +65,9 @@ tasks { } runServer { - minecraftVersion("1.8.8") -// pluginJars(project.file("libs/worldedit-bukkit-7.2.15.jar")) - pluginJars(project.file("libs/worldedit-bukkit-6.1.jar")) +// minecraftVersion("1.8.8") +// pluginJars(project.file("libs/worldedit-bukkit-6.1.jar")) + minecraftVersion("1.20.4") + pluginJars(project.file("libs/worldedit-bukkit-7.3.0.jar")) } } \ No newline at end of file From f40aedfa971acab092db1d5f45b6110f6e6569af Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 04:47:52 +0200 Subject: [PATCH 32/71] Add more materials support to `admin set selectedBlockType` subcommand --- .../speedbridge2/command/CommandManager.java | 7 +- .../condition/annotation/MaterialType.java | 14 +++ .../command/parser/MaterialParser.java | 27 +++++ .../command/subcommand/CommandCompletion.java | 26 ++++- .../subcommand/SpeedBridgeCommand.java | 4 +- .../speedbridge2/model/common/Message.java | 1 + .../util/material/MaterialCategory.java | 6 ++ .../util/material/MultiMaterial.java | 102 ++++++++++++++++++ 8 files changed, 182 insertions(+), 5 deletions(-) create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/MaterialType.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/util/material/MaterialCategory.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java index cd4f24a0..77628a62 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java @@ -19,6 +19,7 @@ import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.CommonBridgePlayer; import io.tofpu.speedbridge2.model.player.object.SenderBridgePlayer; +import org.bukkit.Material; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; import revxrsal.commands.bukkit.BukkitCommandActor; @@ -91,9 +92,9 @@ public boolean isCustomType(final Class type) { private static void constructTabCompleter(final @NotNull IslandService islandService) { BridgeUtil.debug("Constructing tab completer..."); - commandHandler.getAutoCompleter() - .registerParameterSuggestions(Island.class, - new CommandCompletion(islandService)::islands); + CommandCompletion commandCompletion = new CommandCompletion(islandService); + commandHandler.getAutoCompleter().registerParameterSuggestions(Island.class, commandCompletion::islands); + commandHandler.getAutoCompleter().registerParameterSuggestions(Material.class, commandCompletion::materials); } private static void constructContext() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/MaterialType.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/MaterialType.java new file mode 100644 index 00000000..99c59e4e --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/MaterialType.java @@ -0,0 +1,14 @@ +package io.tofpu.speedbridge2.command.condition.annotation; + +import io.tofpu.speedbridge2.util.material.MaterialCategory; + +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; + +@Target(ElementType.PARAMETER) +@Retention(RetentionPolicy.RUNTIME) +public @interface MaterialType { + MaterialCategory category(); +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java new file mode 100644 index 00000000..f57ccc17 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java @@ -0,0 +1,27 @@ +package io.tofpu.speedbridge2.command.parser; + +import io.tofpu.dynamicclass.meta.AutoRegister; +import io.tofpu.speedbridge2.util.material.MultiMaterial; +import io.tofpu.speedbridge2.model.common.Message; +import io.tofpu.speedbridge2.model.common.util.BridgeUtil; +import org.bukkit.Material; +import revxrsal.commands.exception.CommandErrorException; +import revxrsal.commands.process.ValueResolver; + +@AutoRegister +public class MaterialParser extends AbstractLampParser { + public MaterialParser(LampParseRegistry registry) { + super(Material.class, registry); + } + + @Override + Material parse(ValueResolver.ValueResolverContext context) { + System.out.println("MaterialParser#parse called"); + String materialName = context.pop(); + try { + return MultiMaterial.getOrThrow(materialName); + } catch (Exception e) { + throw new CommandErrorException(String.format(BridgeUtil.miniMessageToLegacy(Message.INSTANCE.invalidMaterial), materialName)); + } + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java index 4fd88f1e..302eb865 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java @@ -1,12 +1,17 @@ package io.tofpu.speedbridge2.command.subcommand; +import io.tofpu.speedbridge2.command.condition.annotation.MaterialType; import io.tofpu.speedbridge2.model.island.IslandService; +import io.tofpu.speedbridge2.util.material.MultiMaterial; import org.jetbrains.annotations.NotNull; import revxrsal.commands.command.CommandActor; import revxrsal.commands.command.ExecutableCommand; +import java.lang.reflect.Parameter; import java.util.ArrayList; +import java.util.Collection; import java.util.List; +import java.util.concurrent.atomic.AtomicReference; public final class CommandCompletion { private final IslandService islandService; @@ -20,10 +25,29 @@ public CommandCompletion(final IslandService islandService) { final List suggestions = new ArrayList<>(); for (final Integer integer : islandService.getIntegerIslands()) { - suggestions.add(integer + ""); + suggestions.add(String.valueOf(integer)); } System.out.println("CommandCompletion#islands: suggestions - " + suggestions); return suggestions; } + + public @NotNull Collection materials(final List args, final CommandActor actor, + final ExecutableCommand command) { + AtomicReference annotationRef = new AtomicReference<>(); + boolean anyMatch = command.getParameters().stream().anyMatch(commandParameter -> { + Parameter javaParameter = commandParameter.getJavaParameter(); + boolean present = javaParameter.isAnnotationPresent(MaterialType.class); + if (present) { + annotationRef.set(javaParameter.getAnnotation(MaterialType.class)); + } + return present; + }); + + MaterialType annotation = annotationRef.get(); + if (!anyMatch) { + return MultiMaterial.materials(); + } + return MultiMaterial.materials(annotation.category()); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 2b755162..4ca3f6c1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -1,6 +1,7 @@ package io.tofpu.speedbridge2.command.subcommand; import io.tofpu.speedbridge2.command.NameAndUUID; +import io.tofpu.speedbridge2.command.condition.annotation.MaterialType; import io.tofpu.speedbridge2.command.condition.annotation.RestrictConsole; import io.tofpu.speedbridge2.command.condition.annotation.RestrictDummyModel; import io.tofpu.speedbridge2.command.condition.annotation.RestrictSetup; @@ -23,6 +24,7 @@ import io.tofpu.speedbridge2.model.player.object.CommonBridgePlayer; import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.plugin.SpeedBridgePlugin; +import io.tofpu.speedbridge2.util.material.MaterialCategory; import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; @@ -439,7 +441,7 @@ public String cancelSetup(final BridgePlayer bridgePlayer) { @Description("Changes the selected block type for a specified player") @CommandPermission("speedbridge.admin.set.selectedBlockType") @AutoComplete("* @players") - public String setSelectedBlockType(final Material material, final BridgePlayer target) { + public String setSelectedBlockType(final @MaterialType(category = MaterialCategory.BLOCK) Material material, final BridgePlayer target) { if (!material.isSolid()) { return String.format(INSTANCE.blockTypeMustBeSolid, material); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index 6f955dbb..e6f8db5e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -122,6 +122,7 @@ public final class Message { public final String mustBeOnline = error + "%s must be available to modify their data"; public final String setChosenType = SUCCESS + "Changed %s's selected block type to %s"; public final String blockTypeMustBeSolid = error + "%s must be a solid block to be selectable!"; + public final String invalidMaterial = error + "Invalid material: %s"; private static String runCommand(final String command) { return "Click to run " + diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MaterialCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MaterialCategory.java new file mode 100644 index 00000000..68e01317 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MaterialCategory.java @@ -0,0 +1,6 @@ +package io.tofpu.speedbridge2.util.material; + +public enum MaterialCategory { + ANY, + BLOCK +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java new file mode 100644 index 00000000..5e6c69b1 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java @@ -0,0 +1,102 @@ +package io.tofpu.speedbridge2.util.material; + +import com.cryptomorin.xseries.XMaterial; +import io.tofpu.dynamicclass.meta.AutoRegister; +import org.bukkit.Material; + +import java.util.*; + +@AutoRegister +public final class MultiMaterial { + private static final Map GENERAL_MATERIAL_LOOKUP_MAP = new HashMap<>(); + private static final Set BLOCK_MATERIALS = new HashSet<>(); + + static { + for (Material material : Material.values()) { + addToRegistry(material); + } + for (XMaterial material : XMaterial.values()) { + Material parseMaterial = material.parseMaterial(); + if (parseMaterial == null) continue; + addToRegistry(parseMaterial); + } + } + + private static void addToRegistry(Material material) { + String materialName = material.name(); + GENERAL_MATERIAL_LOOKUP_MAP.put(materialName, material); + + if (material.isBlock()) { + BLOCK_MATERIALS.add(materialName); + } + } + + public static Material getOrThrow(String name) { + Material material = GENERAL_MATERIAL_LOOKUP_MAP.get(name); + if (material == null) { + throw new IllegalArgumentException("Unknown material: %s"); + } + return material; + } + + public static Collection materials() { + return materials(MaterialCategory.ANY); + } + + public static Collection materials(MaterialCategory category) { + switch (category) { + case ANY: + return Collections.unmodifiableCollection(GENERAL_MATERIAL_LOOKUP_MAP.keySet()); + case BLOCK: + System.out.println(String.format("#Materials() returning %s", BLOCK_MATERIALS)); + return Collections.unmodifiableCollection(BLOCK_MATERIALS); + default: + throw new RuntimeException(String.format("Unknown material category: %s", category)); + } + } + +// final static class MaterialResolvers { +// static final MaterialResolver BUKKIT_MATERIAL_RESOLVER = new BukkitMaterialResolver(); +// static final MaterialResolver XMATERIAL_MATERIAL_RESOLVER = new XMaterialResolver(); +// static final MaterialResolver EMPTY_RESOLVER = new EmptyResolver(); +// } +// +// static class XMaterialResolver extends MaterialResolver { +// @Override +// Material resolve(String name) { +// return XMaterial.matchXMaterial(name).orElseThrow(() -> new IllegalArgumentException("Unknown material: %s")).parseMaterial(); +// } +// } +// +// static class BukkitMaterialResolver extends MaterialResolver { +// @Override +// Material resolve(String name) { +// Material material = Material.matchMaterial(name); +// if (material == null) { +// throwException(name); +// } +// return material; +// } +// } +// +// static class EmptyResolver extends MaterialResolver { +// +// @Override +// Material resolve(String name) { +// throwException(name); +// return null; +// } +// } +// +// abstract static class MaterialResolver { +// abstract Material resolve(String name); +// +// void throwException(String name) throws RuntimeException { +// throw getException(name); +// } +// +// RuntimeException getException(String name) { +// return new IllegalArgumentException("Unknown material: %s"); +// } +// } +} From b75d3988b4a958805189855a1b2e54f1f4531a0c Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:18:55 +0200 Subject: [PATCH 33/71] Relocate repositories and remove unneeded dependencies --- build.gradle.kts | 17 ----------------- spigot/build.gradle.kts | 12 ++++++++++++ 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 97eab998..1a65c3c9 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -14,23 +14,6 @@ allprojects { group = "io.tofpu.speedbridge2" version = "1.1.4-" + "git rev-parse --short=8 HEAD".runCommand(rootDir) - repositories { - mavenLocal() - mavenCentral() - - maven("https://jitpack.io") - maven("https://repo.extendedclip.com/content/repositories/placeholderapi/") - maven("https://maven.enginehub.org/repo/") - maven("https://oss.sonatype.org/content/groups/public/") - maven("https://repo.codemc.org/repository/maven-public/") - maven("https://libraries.minecraft.net") - } - - dependencies { - testImplementation("org.junit.jupiter:junit-jupiter-api:5.6.0") - testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine") - } - publishing { publications { create("maven") { diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 0c7b531b..cc819c3c 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -2,6 +2,18 @@ plugins { id("xyz.jpenilla.run-paper") version "2.0.1" } +repositories { + mavenLocal() + mavenCentral() + + maven("https://jitpack.io") + maven("https://repo.extendedclip.com/content/repositories/placeholderapi/") + maven("https://maven.enginehub.org/repo/") + maven("https://oss.sonatype.org/content/groups/public/") + maven("https://repo.codemc.org/repository/maven-public/") + maven("https://libraries.minecraft.net") +} + dependencies { compileOnly("org.spigotmc:spigot-api:1.8.8-R0.1-SNAPSHOT") From b90edd5a12a61379eed4c147c811a04fdd031723 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:19:25 +0200 Subject: [PATCH 34/71] Fix `lobby missing` message sent to non-opped player on join --- .../listener/general/PlayerConnectionListener.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java index e70dbba8..f4f88ce4 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java @@ -51,7 +51,9 @@ private void teleportToLobby(final Player player) { return; } - BridgeUtil.sendMessage(player, Message.INSTANCE.lobbyMissing); + if (player.isOp()) { + BridgeUtil.sendMessage(player, Message.INSTANCE.lobbyMissing); + } } if (location != null && player.getWorld().equals(location.getWorld())) { From d106b9b0f83bf2fe075f2ec453cde48c3f5dc878 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:21:52 +0200 Subject: [PATCH 35/71] Send error message if provided block material matches with what the player has already selected --- .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 5 +++++ .../java/io/tofpu/speedbridge2/model/common/Message.java | 1 + 2 files changed, 6 insertions(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 4ca3f6c1..01756828 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -445,6 +445,11 @@ public String setSelectedBlockType(final @MaterialType(category = MaterialCatego if (!material.isSolid()) { return String.format(INSTANCE.blockTypeMustBeSolid, material); } + + if (target.getChoseMaterial() == material) { + return String.format(INSTANCE.blockAlreadySelected, target.getName(), material); + } + target.setChosenMaterial(material); return String.format(INSTANCE.setChosenType, target.getName(), material); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index e6f8db5e..5ee92268 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -123,6 +123,7 @@ public final class Message { public final String setChosenType = SUCCESS + "Changed %s's selected block type to %s"; public final String blockTypeMustBeSolid = error + "%s must be a solid block to be selectable!"; public final String invalidMaterial = error + "Invalid material: %s"; + public final String blockAlreadySelected = error + "Player %s has already selected material %s!"; private static String runCommand(final String command) { return "Click to run " + From 7c661d398488026d0197c223d3235f155533b37e Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:22:04 +0200 Subject: [PATCH 36/71] Let `randomJoin` subcommand optionally accept a target player --- .../command/subcommand/SpeedBridgeCommand.java | 17 ++++++++++++----- .../speedbridge2/model/common/Message.java | 1 + 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 01756828..138017ad 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -333,12 +333,15 @@ public void onHelpCommand(final CommonBridgePlayer bridgePlayer) { @RestrictSetup @RestrictDummyModel @RestrictConsole - public String onRandomJoin(final BridgePlayer bridgePlayer) { - if (!isGeneralSetupComplete(bridgePlayer)) { + @AutoComplete("@players") + public String onRandomJoin( + final BridgePlayer sender, + @revxrsal.commands.annotation.Optional final BridgePlayer target) { + if (!isGeneralSetupComplete(sender)) { return ""; } - if (bridgePlayer.isPlaying()) { + if (sender.isPlaying()) { return INSTANCE.alreadyInAIsland; } @@ -349,9 +352,13 @@ public String onRandomJoin(final BridgePlayer bridgePlayer) { } final Island island = optionalIsland.get(); - island.join(bridgePlayer); + if (target == null || target.equals(sender)) { + island.join(sender); + return String.format(INSTANCE.joinedAnIsland, island.getSlot()); + } - return String.format(INSTANCE.joinedAnIsland, island.getSlot() + ""); + island.join(target); + return String.format(INSTANCE.otherJoinedAnIsland, target.getName(), island.getSlot()); } @NotNull diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index 5ee92268..576eb42c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -58,6 +58,7 @@ public final class Message { "> YOUR SCORES" + " " + SCORE_TITLE_BAR; public final String joinedAnIsland = SUCCESS + "You're now on island %s!"; + public final String otherJoinedAnIsland = SUCCESS + "Player %s is now on island %s!"; public final String leftAnIsland = SUCCESS + "You left from island" + " %s!"; public final String notInAIsland = error + "You're not on an island!"; public final String deletedAnIsland = SUCCESS + "Island %s has been deleted!"; From 1afc30372e97b7bbce33881c75b5bfdc60cb2813 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:32:29 +0200 Subject: [PATCH 37/71] Abort game if player world changes while in a game --- .../listener/island/IslandRegionListener.java | 17 +++++++++++++++++ .../model/island/object/GameIsland.java | 4 ++++ .../model/island/object/Island.java | 12 ++++++++++-- 3 files changed, 31 insertions(+), 2 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java index 63dc1df3..a771dc93 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java @@ -9,6 +9,7 @@ import io.tofpu.speedbridge2.model.support.worldedit.Vector; import org.bukkit.Location; import org.bukkit.event.EventHandler; +import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.jetbrains.annotations.NotNull; @@ -20,6 +21,22 @@ public IslandRegionListener(final PlayerService playerService) { this.playerService = playerService; } + @EventHandler + private void onWorldChange(PlayerChangedWorldEvent event) { + final BridgePlayer bridgePlayer = playerService.getIfPresent(event.getPlayer() + .getUniqueId()); + if (bridgePlayer == null ||!bridgePlayer.isPlaying()) { + return; + } + + final GameIsland currentGame = bridgePlayer.getCurrentGame(); + if (currentGame == null) { + return; + } + + currentGame.abortGame(); + } + @EventHandler(ignoreCancelled = true) // skipcq: JAVA-W0324 private void onPlayerMove(final @NotNull PlayerMoveEvent event) { final BridgePlayer bridgePlayer = playerService.getIfPresent(event.getPlayer() diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java index 0aa88406..7a15c1f6 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java @@ -150,4 +150,8 @@ public IslandLand getIslandPlot() { public void stopGame() { getIsland().leaveGame(getGamePlayer().getBridgePlayer()); } + + public void abortGame() { + getIsland().abortGame(getGamePlayer().getBridgePlayer()); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java index 3f857deb..a7c7a1a8 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java @@ -100,13 +100,17 @@ public Map.Entry join(final BridgePlayer player) { return new AbstractMap.SimpleImmutableEntry<>(gamePlayer, gameIsland); } + public void leaveGame(final BridgePlayer bridgePlayer) { + leaveGame(bridgePlayer, true); + } + /** * When a player leaves the island, the island is removed from the island map and the * game player is removed from the game player map * * @param bridgePlayer The bridge player that is leaving the game island. */ - public void leaveGame(final BridgePlayer bridgePlayer) { + public void leaveGame(final BridgePlayer bridgePlayer, final boolean clearInventory) { final GamePlayer gamePlayer = bridgePlayer.getGamePlayer(); if (gamePlayer == null) { return; @@ -118,7 +122,7 @@ public void leaveGame(final BridgePlayer bridgePlayer) { } final Player player = bridgePlayer.getPlayer(); - if (player != null) { + if (player != null && clearInventory) { player.getInventory() .clear(); } @@ -130,6 +134,10 @@ public void leaveGame(final BridgePlayer bridgePlayer) { gameIsland.remove(); } + public void abortGame(BridgePlayer bridgePlayer) { + leaveGame(bridgePlayer, false); + } + /** * Find the game island that the player is currently in * From e52c7563c6056e65b2e9e5c203a036de8afb4d2c Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:33:33 +0200 Subject: [PATCH 38/71] Fix IllegalArgumentException exception when running `randomJoin` subcommand while no islands are found --- .../command/subcommand/SpeedBridgeCommand.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 138017ad..5c5a1616 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -369,7 +369,12 @@ private Optional getRandomIsland() { .filter(Island::isReady) .collect(Collectors.toList()); - return Optional.ofNullable(filteredIslands.get(ThreadLocalRandom.current().nextInt(filteredIslands.size()))); + if (filteredIslands.isEmpty()) { + return Optional.empty(); + } + + int randomIndex = ThreadLocalRandom.current().nextInt(filteredIslands.size()); + return Optional.ofNullable(filteredIslands.get(randomIndex)); } @Subcommand("setup") From b826eed019933b3c116bebeac4655656c38130db Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:53:48 +0200 Subject: [PATCH 39/71] Use newer umbrella dependency (`toolbar`) --- spigot/build.gradle.kts | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index cc819c3c..3c970dd8 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -49,7 +49,7 @@ dependencies { exclude("com.sk89q", "worldedit") } - implementation("com.github.tofpu:umbrella:legacy-SNAPSHOT") + implementation("com.github.tofpu:toolbar:v1-SNAPSHOT") implementation("com.github.Tofpu:dynamicclass:1.3") { exclude("com.google.guava", "guava") } @@ -79,7 +79,8 @@ tasks { runServer { // minecraftVersion("1.8.8") // pluginJars(project.file("libs/worldedit-bukkit-6.1.jar")) - minecraftVersion("1.20.4") +// minecraftVersion("1.20.4") + minecraftVersion("1.19.4") pluginJars(project.file("libs/worldedit-bukkit-7.3.0.jar")) } } \ No newline at end of file From bb3af366267542decb98fe62d796b7126494e746 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:59:54 +0200 Subject: [PATCH 40/71] Exclude sender from autocompletion of online players --- .../speedbridge2/command/CommandManager.java | 1 + .../command/subcommand/CommandCompletion.java | 16 +++++++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java index 77628a62..df35b993 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java @@ -95,6 +95,7 @@ private static void constructTabCompleter(final @NotNull IslandService islandSer CommandCompletion commandCompletion = new CommandCompletion(islandService); commandHandler.getAutoCompleter().registerParameterSuggestions(Island.class, commandCompletion::islands); commandHandler.getAutoCompleter().registerParameterSuggestions(Material.class, commandCompletion::materials); + commandHandler.getAutoCompleter().registerSuggestion("players", commandCompletion::players); } private static void constructContext() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java index 302eb865..835882e6 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/CommandCompletion.java @@ -3,7 +3,10 @@ import io.tofpu.speedbridge2.command.condition.annotation.MaterialType; import io.tofpu.speedbridge2.model.island.IslandService; import io.tofpu.speedbridge2.util.material.MultiMaterial; +import org.bukkit.Bukkit; +import org.bukkit.entity.HumanEntity; import org.jetbrains.annotations.NotNull; +import revxrsal.commands.bukkit.BukkitCommandActor; import revxrsal.commands.command.CommandActor; import revxrsal.commands.command.ExecutableCommand; @@ -12,6 +15,7 @@ import java.util.Collection; import java.util.List; import java.util.concurrent.atomic.AtomicReference; +import java.util.stream.Collectors; public final class CommandCompletion { private final IslandService islandService; @@ -21,7 +25,7 @@ public CommandCompletion(final IslandService islandService) { } public @NotNull List islands(final List args, final CommandActor actor, - final ExecutableCommand command) { + final ExecutableCommand command) { final List suggestions = new ArrayList<>(); for (final Integer integer : islandService.getIntegerIslands()) { @@ -50,4 +54,14 @@ public CommandCompletion(final IslandService islandService) { } return MultiMaterial.materials(annotation.category()); } + + public Collection players(@NotNull List args, @NotNull CommandActor sender, @NotNull ExecutableCommand executableCommand) { + return Bukkit.getOnlinePlayers().stream() + .filter(player -> !((BukkitCommandActor) sender).isPlayer() + || ((BukkitCommandActor) sender).requirePlayer().canSee(player) + && !((BukkitCommandActor) sender).getSender().equals(player) + ).map(HumanEntity::getName) + .collect(Collectors.toList()); + + } } From 6aacaa3f8ad2a3d95a030f0606b514026e38ca68 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 06:00:14 +0200 Subject: [PATCH 41/71] Bump Lamp version to `3.2.1` from `3.1.7` --- spigot/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 3c970dd8..26bd60c4 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -20,8 +20,8 @@ dependencies { compileOnly("org.xerial:sqlite-jdbc:3.36.0.3") compileOnly("com.sk89q:worldedit:6.0.0-SNAPSHOT") - implementation("com.github.Revxrsal.Lamp:common:3.1.7") - implementation("com.github.Revxrsal.Lamp:bukkit:3.1.7") + implementation("com.github.Revxrsal.Lamp:common:3.2.1") + implementation("com.github.Revxrsal.Lamp:bukkit:3.2.1") implementation("net.kyori:adventure-api:4.10.1") implementation("net.kyori:adventure-text-minimessage:4.10.1") From d94d1a7ecc3bb8a81321567a915b815a5400e71a Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 06:02:31 +0200 Subject: [PATCH 42/71] Reformat code --- .../io/tofpu/speedbridge2/SpeedBridge.java | 16 +- .../AbstractCommandConditionWrapper.java | 6 +- .../condition/LampConditionRegistry.java | 3 +- .../condition/annotation/RestrictConsole.java | 3 +- .../annotation/RestrictDummyModel.java | 3 +- .../command/context/LampContextRegistry.java | 3 +- .../command/parser/LampParseRegistry.java | 3 +- .../command/parser/MaterialParser.java | 2 +- .../command/parser/annotation/PlayerUUID.java | 3 +- .../subcommand/HelpCommandGenerator.java | 8 +- .../subcommand/SpeedBridgeCommand.java | 38 ++-- .../subcommand/debug/DestroyableLand.java | 6 +- .../command/subcommand/debug/GameIsland2.java | 8 +- .../debug/SpeedBridgeDebugCommand.java | 1 - .../game/GameInteractionListener.java | 12 +- .../listener/game/GameProtectionListener.java | 4 +- .../island/IslandProtectionListener.java | 4 +- .../listener/island/IslandRegionListener.java | 6 +- .../listener/wrapper/EventWrapper.java | 10 +- .../listener/wrapper/SpeedBridgeListener.java | 2 +- .../wrappers/BlockBreakEventWrapper.java | 14 +- .../wrappers/BlockPlaceEventWrapper.java | 14 +- .../wrappers/PlayerInteractEventWrapper.java | 14 +- .../model/blockmenu/BlockMenuManager.java | 8 +- .../blockmenu/holder/BlockMenuHolder.java | 3 +- .../blockmenu/listener/BlockMenuListener.java | 2 +- .../speedbridge2/model/common/Message.java | 62 +++--- .../model/common/PlayerNameCache.java | 36 ++-- .../model/common/PluginExecutor.java | 16 +- .../common/config/PluginConfiguration.java | 5 +- .../config/category/BlockMenuCategory.java | 17 +- .../config/category/GeneralCategory.java | 16 +- .../config/category/LeaderboardCategory.java | 2 +- .../common/config/category/LobbyCategory.java | 17 +- .../AbstractItemActionSerializer.java | 3 +- .../config/serializer/ItemMetaSerializer.java | 3 +- .../serializer/ItemStackSerializer.java | 3 +- .../config/serializer/LocationSerializer.java | 5 +- .../config/serializer/MaterialSerializer.java | 3 +- .../serializer/UmbrellaItemSerializer.java | 3 +- .../database/wrapper/DatabaseQuery.java | 8 +- .../database/wrapper/DatabaseTable.java | 10 +- .../presenter/MessagePresenterBase.java | 1 + .../presenter/MessagePresenterHolder.java | 1 + .../presenter/MessagePresenterHolderImpl.java | 2 +- .../presenter/type/MessageTreePresenter.java | 2 +- .../model/common/util/BridgeUtil.java | 33 ++- .../model/common/util/DatabaseUtil.java | 6 +- .../model/common/util/FileUtil.java | 6 +- .../model/common/util/IgnoreMessage.java | 3 +- .../model/common/util/UmbrellaUtil.java | 2 +- .../model/common/util/UpdateChecker.java | 193 +++++++++--------- .../model/common/wrapper/ConfigurateFile.java | 10 +- .../model/island/IslandDatabase.java | 9 +- .../model/island/IslandHandler.java | 11 +- .../model/island/IslandService.java | 10 +- .../model/island/arena/ArenaManager.java | 25 ++- .../IslandDatabaseExceptionWrapper.java | 2 +- .../model/island/object/GameIsland.java | 8 +- .../model/island/object/Island.java | 59 +++--- .../model/island/object/IslandBuild.java | 6 +- .../model/island/object/IslandBuilder.java | 8 +- .../model/island/object/land/IslandLand.java | 10 +- .../island/object/setup/IslandSetup.java | 4 +- .../object/setup/IslandSetupFactory.java | 4 +- .../object/setup/IslandSetupHandler.java | 15 +- .../model/leaderboard/IslandBoard.java | 17 +- .../model/leaderboard/LeaderboardMap.java | 4 +- .../model/leaderboard/loader/BoardLoader.java | 3 +- .../leaderboard/loader/IslandLoader.java | 2 +- .../loader/PlayerPositionLoader.java | 6 +- .../leaderboard/object/IslandBoardPlayer.java | 10 +- .../model/player/PlayerDatabase.java | 4 +- .../model/player/PlayerFactory.java | 4 +- .../model/player/PlayerHandler.java | 8 +- .../model/player/PlayerService.java | 6 +- .../PlayerDatabaseExceptionWrapper.java | 2 +- .../model/player/loader/PlayerLoader.java | 13 +- .../model/player/object/BridgePlayer.java | 95 ++++----- .../player/object/CommonBridgePlayer.java | 2 +- .../player/object/DummyBridgePlayer.java | 12 +- .../model/player/object/GamePlayer.java | 33 +-- .../player/object/block/BlockChoice.java | 1 + .../player/object/block/BlockDatabase.java | 2 +- .../model/player/object/score/Score.java | 12 +- .../player/object/score/ScoreDatabase.java | 10 +- .../player/object/session/SessionScore.java | 1 + .../model/player/object/setup/SetupMeta.java | 2 + .../model/player/object/stat/PlayerStat.java | 1 + .../player/object/stat/PlayerStatType.java | 2 +- .../player/object/stat/StatsDatabase.java | 28 +-- .../placeholderapi/PluginExpansion.java | 2 +- .../expansion/AbstractExpansion.java | 5 +- .../expansions/BestScoreExpansion.java | 2 +- .../expansions/IslandSlotExpansion.java | 2 +- .../expansions/LeaderboardExpansion.java | 10 +- .../expansions/PositionExpansion.java | 2 +- .../expansion/expansions/TimerExpansion.java | 2 +- .../expansions/TotalStatsExpansion.java | 2 +- .../model/support/worldedit/CuboidRegion.java | 2 +- 100 files changed, 561 insertions(+), 583 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java b/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java index 8c2a6f0f..4b6ff30c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java @@ -50,6 +50,13 @@ public SpeedBridge(final JavaPlugin javaPlugin) { this.leaderboard = new Leaderboard(playerService); } + public static BukkitAudiences getAdventure() { + if (adventure == null) { + throw new IllegalStateException("Tried to access Adventure when the plugin was disabled!"); + } + return adventure; + } + public void load() { // reset the world, in-case it does exist arenaManager.resetWorld(); @@ -84,7 +91,7 @@ public void enable() { if (Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { ExpansionHandler.INSTANCE.load(); - + log("Hooking into PlaceholderAPI..."); new PluginExpansion(javaPlugin, playerService); } @@ -177,11 +184,4 @@ public void shutdown() { private void log(final String content) { javaPlugin.getLogger().info(content); } - - public static BukkitAudiences getAdventure() { - if(adventure == null) { - throw new IllegalStateException("Tried to access Adventure when the plugin was disabled!"); - } - return adventure; - } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java index 7e1401d6..8b872039 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/AbstractCommandConditionWrapper.java @@ -14,7 +14,7 @@ public abstract class AbstractCommandConditionWrapper implements CommandConditio private final Class type; public AbstractCommandConditionWrapper(final Class type, - final LampConditionRegistry registry) { + final LampConditionRegistry registry) { this.type = type; registry.register(type, this); } @@ -35,8 +35,8 @@ public final void test( } abstract void execute(@NotNull CommandActor actor, - @NotNull ExecutableCommand command, - @NotNull @Unmodifiable List arguments); + @NotNull ExecutableCommand command, + @NotNull @Unmodifiable List arguments); public Class getType() { return type; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java index ffd31bf1..fdceba3e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/LampConditionRegistry.java @@ -7,4 +7,5 @@ @AutoRegister public final class LampConditionRegistry extends AbstractLampRegistry, AbstractCommandConditionWrapper> {} + extends Annotation>, AbstractCommandConditionWrapper> { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java index d897cd47..f1c1a12a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictConsole.java @@ -7,4 +7,5 @@ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) -public @interface RestrictConsole {} +public @interface RestrictConsole { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java index 6dbe5cdd..4c27974e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/RestrictDummyModel.java @@ -7,4 +7,5 @@ @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) -public @interface RestrictDummyModel {} +public @interface RestrictDummyModel { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java index 24e7a403..5e4c3b34 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/LampContextRegistry.java @@ -5,4 +5,5 @@ @AutoRegister public final class LampContextRegistry extends AbstractLampRegistry, - AbstractLampContext> {} + AbstractLampContext> { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java index 326bc9ea..e281c571 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/LampParseRegistry.java @@ -5,4 +5,5 @@ @AutoRegister public final class LampParseRegistry extends AbstractLampRegistry, - AbstractLampParser> {} + AbstractLampParser> { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java index f57ccc17..ab45d13f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java @@ -1,9 +1,9 @@ package io.tofpu.speedbridge2.command.parser; import io.tofpu.dynamicclass.meta.AutoRegister; -import io.tofpu.speedbridge2.util.material.MultiMaterial; import io.tofpu.speedbridge2.model.common.Message; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; +import io.tofpu.speedbridge2.util.material.MultiMaterial; import org.bukkit.Material; import revxrsal.commands.exception.CommandErrorException; import revxrsal.commands.process.ValueResolver; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java index c7f708d1..ff22cc6c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/annotation/PlayerUUID.java @@ -7,4 +7,5 @@ @Target(ElementType.PARAMETER) @Retention(RetentionPolicy.RUNTIME) -public @interface PlayerUUID {} +public @interface PlayerUUID { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java index c55fbb5e..ced165de 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java @@ -10,11 +10,7 @@ import org.bukkit.command.CommandSender; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; -import revxrsal.commands.annotation.Description; -import revxrsal.commands.annotation.Flag; -import revxrsal.commands.annotation.Optional; -import revxrsal.commands.annotation.Subcommand; -import revxrsal.commands.annotation.Usage; +import revxrsal.commands.annotation.*; import java.lang.reflect.Method; import java.lang.reflect.Parameter; @@ -75,7 +71,7 @@ public static void generateHelpCommand(final @NotNull Plugin plugin) { } public static String generateUsageOfMethod(final Subcommand subcommand, - final Method method) { + final Method method) { final StringBuilder builder = new StringBuilder(); if (method.isAnnotationPresent(Usage.class)) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 5c5a1616..1c20768d 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -44,17 +44,15 @@ import java.util.stream.Collectors; import static io.tofpu.speedbridge2.model.common.Message.INSTANCE; -import static io.tofpu.speedbridge2.model.common.util.MessageUtil.Symbols.ARROW_RIGHT; -import static io.tofpu.speedbridge2.model.common.util.MessageUtil.Symbols.CHECK_MARK; -import static io.tofpu.speedbridge2.model.common.util.MessageUtil.Symbols.CROSS; +import static io.tofpu.speedbridge2.model.common.util.MessageUtil.Symbols.*; @Command({"sb", "speedbridge"}) public final class SpeedBridgeCommand { private static final String EMPTY_SCORE = "You haven't scored anything yet"; private static final String FORMATTED_SCORE = " " + CROSS.getSymbol() + " " + "Island " + - "%s" + " " + ARROW_RIGHT.getSymbol() + - " %s seconds"; + "%s" + " " + ARROW_RIGHT.getSymbol() + + " %s seconds"; private final PlayerService playerService; private final IslandService islandService; @@ -90,7 +88,7 @@ public void onLobbySet(final BridgePlayer bridgePlayer) { @RestrictDummyModel @RestrictConsole public String onIslandCreate(final BridgePlayer player, final int slot, final String schematic, - @revxrsal.commands.annotation.Optional @Flag("c") String category) { + @revxrsal.commands.annotation.Optional @Flag("c") String category) { if (!isGeneralSetupComplete(player)) { return ""; } @@ -138,7 +136,7 @@ public String onIslandDelete(final Island target) { @CommandPermission("speedbridge.player.reset") @AutoComplete("@players *") public void onPlayerReset(final CommonBridgePlayer sender, final @PlayerUUID NameAndUUID target, - final ResetType type) { + final ResetType type) { String targetName = target.playerName(); UUID targetId = target.playerUUID(); @@ -166,8 +164,8 @@ public void onPlayerReset(final CommonBridgePlayer sender, final @PlayerUUID @CommandPermission("speedbridge.island.modify") public String onIslandSelect(final Island island, final @revxrsal.commands.annotation.Optional @Flag(value = "c") @Default("") - String category, final @revxrsal.commands.annotation.Optional - @Flag(value = "s") @Default("") String schematic) { + String category, final @revxrsal.commands.annotation.Optional + @Flag(value = "s") @Default("") String schematic) { final int slot = island.getSlot(); if (!category.isEmpty()) { @@ -211,7 +209,7 @@ private boolean isGeneralSetupComplete(final BridgePlayer bridgePlayer) { return false; } - @Command({"sb join", "speedbridge join" ,"join"}) + @Command({"sb join", "speedbridge join", "join"}) @Usage("join ") @Description("Join an island") @RestrictDummyModel @@ -233,13 +231,13 @@ public String onIslandJoin(final BridgePlayer bridgePlayer, final Island island) return String.format(INSTANCE.joinedAnIsland, island.getSlot() + ""); } - @Command({"sb leave", "speedbridge leave" ,"leave"}) + @Command({"sb leave", "speedbridge leave", "leave"}) @Description("Leave an island") public void onIslandLeave(final GameIsland gameIsland) { gameIsland.stopGame(); } - @Command({"sb score", "speedbridge score" ,"score"}) + @Command({"sb score", "speedbridge score", "score"}) @Description("Shows a list of your scores") @RestrictConsole public String onScore(final BridgePlayer bridgePlayer) { @@ -281,15 +279,15 @@ public String showIslands() { final String title = "Island Analysis\n"; final String schematicHover = title + "Schematic: " + - (island.getSchematicClipboard() == null ? - "" + CROSS.getSymbol() : - "" + CHECK_MARK.getSymbol()); + (island.getSchematicClipboard() == null ? + "" + CROSS.getSymbol() : + "" + CHECK_MARK.getSymbol()); final String spawnPointHover = "Spawnpoint: " + - (island.getAbsoluteLocation() == null ? - "" + CROSS.getSymbol() : - "" + - CHECK_MARK.getSymbol()); + (island.getAbsoluteLocation() == null ? + "" + CROSS.getSymbol() : + "" + + CHECK_MARK.getSymbol()); builder.pair("Island-" + island.getSlot(), hover( schematicHover + "\n" + spawnPointHover, island.isReady() ? @@ -328,7 +326,7 @@ public void onHelpCommand(final CommonBridgePlayer bridgePlayer) { HelpCommandGenerator.showHelpMessage(player); } - @Command({"sb randomjoin", "speedbridge randomjoin" ,"randomjoin"}) + @Command({"sb randomjoin", "speedbridge randomjoin", "randomjoin"}) @Description("Chooses a random island for you") @RestrictSetup @RestrictDummyModel diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java index 79437af0..650290a6 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/DestroyableLand.java @@ -1,11 +1,9 @@ package io.tofpu.speedbridge2.command.subcommand.debug; import com.sk89q.worldedit.EditSession; -import com.sk89q.worldedit.MaxChangedBlocksException; import com.sk89q.worldedit.WorldEditException; import com.sk89q.worldedit.bukkit.BukkitWorld; import com.sk89q.worldedit.extent.clipboard.Clipboard; -import com.sk89q.worldedit.function.operation.ForwardExtentCopy; import com.sk89q.worldedit.function.operation.Operation; import com.sk89q.worldedit.function.operation.Operations; import io.tofpu.multiworldedit.EditSessionWrapper; @@ -26,7 +24,7 @@ public DestroyableLand(IslandLand islandLand) { public void generatePlot() throws WorldEditException { // TODO: Make this generation operation async BridgeUtil.debug("Generating plot at " + getPlotLocation().toString() + " for " + - "island " + getIsland().getSlot()); + "island " + getIsland().getSlot()); final BukkitWorld bukkitWorld = new BukkitWorld(getWorld()); @@ -50,7 +48,7 @@ public void generatePlot() throws WorldEditException { public void destroy() { // TODO: Make this generation operation async BridgeUtil.debug("Generating plot at " + getPlotLocation().toString() + " for " + - "island " + getIsland().getSlot()); + "island " + getIsland().getSlot()); final BukkitWorld bukkitWorld = new BukkitWorld(getWorld()); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java index 9c88ca4f..76b821b7 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/GameIsland2.java @@ -11,12 +11,12 @@ public GameIsland2(final ArenaManager arenaManager, GameIsland gameIsland) { super(arenaManager, gameIsland.getIsland(), gameIsland.getGamePlayer()); } - public void setIslandPlot(final IslandLand islandLand) { - this.islandLand = islandLand; - } - @Override public IslandLand getIslandPlot() { return this.islandLand; } + + public void setIslandPlot(final IslandLand islandLand) { + this.islandLand = islandLand; + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java index 3c0e128e..9b2c96e6 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/debug/SpeedBridgeDebugCommand.java @@ -5,7 +5,6 @@ import io.tofpu.speedbridge2.model.island.arena.ArenaManager; import io.tofpu.speedbridge2.model.island.object.GameIsland; import io.tofpu.speedbridge2.model.island.object.Island; -import io.tofpu.speedbridge2.model.island.object.land.IslandLand; import io.tofpu.speedbridge2.model.player.object.GamePlayer; import org.bukkit.Location; import org.bukkit.entity.Player; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java index 18de023c..a98dbde3 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameInteractionListener.java @@ -1,17 +1,17 @@ package io.tofpu.speedbridge2.listener.game; import io.tofpu.dynamicclass.meta.AutoRegister; +import io.tofpu.speedbridge2.listener.GameListener; +import io.tofpu.speedbridge2.listener.wrapper.wrappers.BlockPlaceEventWrapper; +import io.tofpu.speedbridge2.listener.wrapper.wrappers.PlayerInteractEventWrapper; import io.tofpu.speedbridge2.model.common.Message; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.island.object.GameIsland; -import io.tofpu.speedbridge2.model.player.object.score.Score; -import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; +import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.GamePlayer; -import io.tofpu.speedbridge2.listener.GameListener; -import io.tofpu.speedbridge2.listener.wrapper.wrappers.BlockPlaceEventWrapper; -import io.tofpu.speedbridge2.listener.wrapper.wrappers.PlayerInteractEventWrapper; +import io.tofpu.speedbridge2.model.player.object.score.Score; +import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; import org.bukkit.event.EventHandler; import org.bukkit.event.block.BlockPlaceEvent; import org.bukkit.inventory.ItemStack; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java index c68138a2..0a70b067 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/game/GameProtectionListener.java @@ -1,9 +1,9 @@ package io.tofpu.speedbridge2.listener.game; import io.tofpu.dynamicclass.meta.AutoRegister; -import io.tofpu.speedbridge2.model.player.object.BridgePlayer; -import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.listener.GameListener; +import io.tofpu.speedbridge2.model.player.PlayerService; +import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.entity.EntityDamageEvent; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java index 2eea23d3..6ff94672 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandProtectionListener.java @@ -1,11 +1,11 @@ package io.tofpu.speedbridge2.listener.island; import io.tofpu.dynamicclass.meta.AutoRegister; -import io.tofpu.speedbridge2.model.island.object.GameIsland; -import io.tofpu.speedbridge2.model.player.object.GamePlayer; import io.tofpu.speedbridge2.listener.GameListener; import io.tofpu.speedbridge2.listener.wrapper.wrappers.BlockBreakEventWrapper; import io.tofpu.speedbridge2.listener.wrapper.wrappers.BlockPlaceEventWrapper; +import io.tofpu.speedbridge2.model.island.object.GameIsland; +import io.tofpu.speedbridge2.model.player.object.GamePlayer; import io.tofpu.speedbridge2.model.support.worldedit.CuboidRegion; import io.tofpu.speedbridge2.model.support.worldedit.Vector; import org.bukkit.Location; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java index a771dc93..be4d54cb 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java @@ -1,10 +1,10 @@ package io.tofpu.speedbridge2.listener.island; import io.tofpu.dynamicclass.meta.AutoRegister; +import io.tofpu.speedbridge2.listener.GameListener; import io.tofpu.speedbridge2.model.island.object.GameIsland; import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; -import io.tofpu.speedbridge2.listener.GameListener; import io.tofpu.speedbridge2.model.support.worldedit.CuboidRegion; import io.tofpu.speedbridge2.model.support.worldedit.Vector; import org.bukkit.Location; @@ -25,7 +25,7 @@ public IslandRegionListener(final PlayerService playerService) { private void onWorldChange(PlayerChangedWorldEvent event) { final BridgePlayer bridgePlayer = playerService.getIfPresent(event.getPlayer() .getUniqueId()); - if (bridgePlayer == null ||!bridgePlayer.isPlaying()) { + if (bridgePlayer == null || !bridgePlayer.isPlaying()) { return; } @@ -41,7 +41,7 @@ private void onWorldChange(PlayerChangedWorldEvent event) { private void onPlayerMove(final @NotNull PlayerMoveEvent event) { final BridgePlayer bridgePlayer = playerService.getIfPresent(event.getPlayer() .getUniqueId()); - if (bridgePlayer == null ||!bridgePlayer.isPlaying()) { + if (bridgePlayer == null || !bridgePlayer.isPlaying()) { return; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java index 66b7bf11..0edaac16 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/EventWrapper.java @@ -13,16 +13,16 @@ public class EventWrapper extends Event { private final @NotNull BridgePlayer bridgePlayer; private final @NotNull E event; - public static HandlerList getHandlerList() { - return handlers; - } - public EventWrapper(final @NotNull BridgePlayer bridgePlayer, - final @NotNull E event) { + final @NotNull E event) { this.bridgePlayer = bridgePlayer; this.event = event; } + public static HandlerList getHandlerList() { + return handlers; + } + public @NotNull E getEvent() { return event; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java index 2ee940f5..9ba2f2fb 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/SpeedBridgeListener.java @@ -55,7 +55,7 @@ private void onPlayerInteract(final @NotNull PlayerInteractEvent event) { final EventWrapper eventWrapper = PlayerInteractEventWrapper.wrap(playerService, event); if (event.getAction() != Action.PHYSICAL || !eventWrapper.isPlaying() || - !eventWrapper.hasTimerStarted()) { + !eventWrapper.hasTimerStarted()) { return; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java index 7a3dd9c0..4ed1ae24 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockBreakEventWrapper.java @@ -1,19 +1,19 @@ package io.tofpu.speedbridge2.listener.wrapper.wrappers; -import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.listener.wrapper.EventWrapper; +import io.tofpu.speedbridge2.model.player.PlayerService; import org.bukkit.event.block.BlockBreakEvent; import org.jetbrains.annotations.NotNull; public final class BlockBreakEventWrapper extends EventWrapper { - public static BlockBreakEventWrapper wrap(final PlayerService playerService, - final @NotNull BlockBreakEvent event) { - return new BlockBreakEventWrapper(playerService, event); - } - private BlockBreakEventWrapper(final PlayerService playerService, - final @NotNull BlockBreakEvent event) { + final @NotNull BlockBreakEvent event) { super(playerService.getOrDefault(event.getPlayer() .getUniqueId()), event); } + + public static BlockBreakEventWrapper wrap(final PlayerService playerService, + final @NotNull BlockBreakEvent event) { + return new BlockBreakEventWrapper(playerService, event); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java index 4c894643..1625a152 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/BlockPlaceEventWrapper.java @@ -1,19 +1,19 @@ package io.tofpu.speedbridge2.listener.wrapper.wrappers; -import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.listener.wrapper.EventWrapper; +import io.tofpu.speedbridge2.model.player.PlayerService; import org.bukkit.event.block.BlockPlaceEvent; import org.jetbrains.annotations.NotNull; public final class BlockPlaceEventWrapper extends EventWrapper { - public static BlockPlaceEventWrapper wrap(final PlayerService playerService, - final @NotNull BlockPlaceEvent event) { - return new BlockPlaceEventWrapper(playerService, event); - } - private BlockPlaceEventWrapper(final PlayerService playerService, - final @NotNull BlockPlaceEvent event) { + final @NotNull BlockPlaceEvent event) { super(playerService.getOrDefault(event.getPlayer() .getUniqueId()), event); } + + public static BlockPlaceEventWrapper wrap(final PlayerService playerService, + final @NotNull BlockPlaceEvent event) { + return new BlockPlaceEventWrapper(playerService, event); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java index 7207d264..612b3b70 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/wrapper/wrappers/PlayerInteractEventWrapper.java @@ -1,19 +1,19 @@ package io.tofpu.speedbridge2.listener.wrapper.wrappers; -import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.listener.wrapper.EventWrapper; +import io.tofpu.speedbridge2.model.player.PlayerService; import org.bukkit.event.player.PlayerInteractEvent; import org.jetbrains.annotations.NotNull; public class PlayerInteractEventWrapper extends EventWrapper { - public static PlayerInteractEventWrapper wrap(final PlayerService playerService, - final @NotNull PlayerInteractEvent event) { - return new PlayerInteractEventWrapper(playerService, event); - } - private PlayerInteractEventWrapper(final PlayerService playerService, - final @NotNull PlayerInteractEvent event) { + final @NotNull PlayerInteractEvent event) { super(playerService.getOrDefault(event.getPlayer() .getUniqueId()), event); } + + public static PlayerInteractEventWrapper wrap(final PlayerService playerService, + final @NotNull PlayerInteractEvent event) { + return new PlayerInteractEventWrapper(playerService, event); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java index f7afa701..fa542f81 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/BlockMenuManager.java @@ -26,10 +26,8 @@ import java.util.function.Consumer; public final class BlockMenuManager { - private static final int BLOCK_CHANGE_COOLDOWN = 30; - public static final BlockMenuManager INSTANCE = new BlockMenuManager(); - + private static final int BLOCK_CHANGE_COOLDOWN = 30; private final Set materialSet = new HashSet<>(); private final Cache cooldownMap; @@ -104,8 +102,8 @@ public boolean canSelectItem(final BridgePlayer bridgePlayer, final ItemStack it return false; } return ConfigurationManager.INSTANCE.getBlockMenuCategory() - .getDefaultBlock() == type || bridgePlayer.getPlayer() - .hasPermission("speedbridge.block." + type.name()); + .getDefaultBlock() == type || bridgePlayer.getPlayer() + .hasPermission("speedbridge.block." + type.name()); } private void modifyItem(final ModifyItemType modifyItemType, final ItemStack itemStack) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java index 53f532e1..067c152e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/holder/BlockMenuHolder.java @@ -12,7 +12,8 @@ public final class BlockMenuHolder implements InventoryHolder { private final Inventory inventory = Bukkit.createInventory(this, InventoryType.CHEST, INVENTORY_TITLE); - private BlockMenuHolder() {} + private BlockMenuHolder() { + } @Override public Inventory getInventory() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java index 4be134c8..d7f7dc98 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/blockmenu/listener/BlockMenuListener.java @@ -29,7 +29,7 @@ public BlockMenuListener(final PlayerService playerService) { public void onInventoryClick(final InventoryClickEvent event) { final Inventory clickedInventory = event.getClickedInventory(); if (clickedInventory == null || - (!(clickedInventory.getHolder() instanceof BlockMenuHolder))) { + (!(clickedInventory.getHolder() instanceof BlockMenuHolder))) { return; } event.setCancelled(true); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index 576eb42c..2bcb949f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -14,31 +14,32 @@ import java.util.concurrent.ConcurrentHashMap; public final class Message { + public static final @NotNull Message INSTANCE; private static final @NotNull Map FIELD_MAP = new ConcurrentHashMap<>(); - private static final String SCORE_TITLE_BAR = MessageUtil.CHAT_BAR.substring(0, MessageUtil.CHAT_BAR.length() / 6); private static final String STYLE = "" + MessageUtil.Symbols.CLOCK.getSymbol() + " "; private static final String SECOND_STYLE = "" + MessageUtil.Symbols.STAR.getSymbol() + " "; - private static final String error = "" + MessageUtil.Symbols.WARNING.getSymbol() + - " "; + " "; private static final String SUCCESS = "" + MessageUtil.Symbols.ARROW_RIGHT.getSymbol() + - " "; + " "; - public static final @NotNull Message INSTANCE = new Message(); + static { + INSTANCE = new Message(); + } public final String noArgument = SUCCESS + "Type " + runCommand("/speedbridge help") + " for further " + - "information."; + "information."; public final String islandAlreadyExists = error + "Island %s already exists!"; public final String islandHasBeenCreatedSchematic = SUCCESS + "Island %s has been created with '%s' chosen as the " + - "schematic!"; + "schematic!"; public final String islandSetupNotification = SUCCESS + "You can complete your %slot% island setup by setting up the spawn point."; public final String validSelect = @@ -46,17 +47,17 @@ public final class Message { public final String unknownSchematic = error + "Schematic \"%s\" cannot be found"; public final String invalidIslandArgument = error + "Invalid argument. Please choose a slot, or an island category" + - ".\n" + error + "Alternatively, you could run the '" + - runCommand("/randomjoin") + "' command."; + ".\n" + error + "Alternatively, you could run the '" + + runCommand("/randomjoin") + "' command."; public final String invalidIsland = error + "Island %s cannot be found!"; public final String noAvailableIsland = error + "There is no island available " + - "at the moment... please try again " + - "later!"; + "at the moment... please try again " + + "later!"; public final String alreadyInAIsland = error + "You're already on an island!"; public final String inAGame = error + "You cannot execute this command while playing"; public final String scoreTitle = "" + SCORE_TITLE_BAR + " YOUR SCORES" + " " + - SCORE_TITLE_BAR; + "> YOUR SCORES" + " " + + SCORE_TITLE_BAR; public final String joinedAnIsland = SUCCESS + "You're now on island %s!"; public final String otherJoinedAnIsland = SUCCESS + "Player %s is now on island %s!"; public final String leftAnIsland = SUCCESS + "You left from island" + " %s!"; @@ -69,56 +70,41 @@ public final class Message { public final String timeStarted = STYLE + "The timer is now ticking!"; public final String scored = SECOND_STYLE + "You scored %s " + "seconds!"; - public final String lobbyMissing = error + "Incomplete setup. Please ensure to set up SpeedBridge's lobby to " + - "complete the " + "process." + "\nType " + - runCommand("/speedbridge setlobby") + " to set the " + "lobby."; - + "complete the " + "process." + "\nType " + + runCommand("/speedbridge setlobby") + " to set the " + "lobby."; public final String generalSetupIncomplete = error + "Incomplete setup. Please try again " + "later."; - public final String startingSetupProcess = SUCCESS + "You're now setting up %s " + "island."; - public final String notInASetup = error + "You're not setting up anything."; public final String setSpawnPoint = SUCCESS + "You have set the island's " + "spawnpoint."; - public final String completeNotification = SUCCESS + "You can complete the setup " + "by typing " + - runCommand("/sb setup finish"); - + runCommand("/sb setup finish"); public final String setupIncomplete = error + "The setup is incomplete. Please " + - "ensure that the spawn point is set."; + "ensure that the spawn point is set."; public final String setupComplete = SUCCESS + "The setup is now complete."; - public final String emptyScoreFormat = ""; - public final String invalidSpawnPoint = error + "The spawn point has to be set inside the regions."; - public final String setupCancelled = SUCCESS + "The setup has been cancelled."; - public final String playerDoesntExist = error + "%s does not exist."; - public final String playerWiped = SUCCESS + "%s's data has been reset."; public final String playerScoreReset = SUCCESS + "%s's scores has been reset."; public final String playerStatsReset = SUCCESS + "%s's stats has been reset."; - public final String somethingWentWrong = error + "Something went wrong... check " + "your console"; public final String inASetup = error + "You're already in a setup."; public final String notLoaded = error + "Your data has not been loaded yet. Please " + "try again later!"; - public final String islandReset = error.replace("red", "yellow") + "The island has " + "been " + "reset!"; - public final String blockChangeCooldown = error + "You can't do that yet! Please wait " + - "for %s seconds."; - + "for %s seconds."; public final String invalidUuid = error + "%s is not a valid uuid format. Please try again"; public final String mustBeOnline = error + "%s must be available to modify their data"; public final String setChosenType = SUCCESS + "Changed %s's selected block type to %s"; @@ -128,8 +114,8 @@ public final class Message { private static String runCommand(final String command) { return "Click to run " + - "%command%'>%command%".replace( - "%command" + "%", command); + "%command%'>%command%".replace( + "%command" + "%", command); } public static @NotNull CompletableFuture load(final File directory) { @@ -137,7 +123,7 @@ private static String runCommand(final String command) { if (FIELD_MAP.isEmpty()) { for (final Field field : Message.class.getDeclaredFields()) { if (Modifier.isStatic(field.getModifiers()) || - field.isAnnotationPresent(IgnoreMessage.class)) { + field.isAnnotationPresent(IgnoreMessage.class)) { continue; } @@ -147,13 +133,13 @@ private static String runCommand(final String command) { FIELD_MAP.put(field.getName(), field); } - BridgeUtil.debug(String.valueOf(FIELD_MAP)); + BridgeUtil.debug("messages_field_map=" + FIELD_MAP); } final File messageFile = new File(directory, "messages.yml"); final boolean messageFileExists = messageFile.exists(); - BridgeUtil.debug(String.valueOf(FIELD_MAP)); + BridgeUtil.debug("messages_field_map=" + FIELD_MAP); if (!messageFileExists) { FileUtil.write(messageFile, false, ReflectionUtil.toString(FIELD_MAP)); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java index 0ce2c209..5fe72184 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PlayerNameCache.java @@ -13,6 +13,23 @@ public final class PlayerNameCache { private final Map nameMap = new HashMap<>(); + private static String getPlayerName(final UUID uuid) { + final AtomicReference result = new AtomicReference<>(""); + try (final DatabaseQuery databaseQuery = DatabaseQuery.query("SELECT * FROM " + + "players " + "where uid = ?")) { + databaseQuery.setString(uuid.toString()); + + databaseQuery.executeQuery(databaseSet -> { + if (databaseSet.next()) { + result.set(databaseSet.getString("name")); + } + }); + } catch (Exception e) { + throw new IllegalStateException(e); + } + return result.get(); + } + /** * This method caches the player's name * @@ -27,7 +44,6 @@ public void insert(final UUID uuid, final String name) { * Retrieves the player's name synchronously * * @param uid player unique identification - * * @return the player name immediately if cached, otherwise it'll retrieve the name * from the "players" table database in sync */ @@ -39,7 +55,6 @@ public String getOrDefault(final UUID uid) { * Retrieves the player's name asynchronously * * @param uid player unique identification - * * @return the player name immediately if cached, otherwise it'll retrieve the name * from the "players" table database in async */ @@ -58,21 +73,4 @@ public CompletableFuture getOrDefaultAsync(final UUID uid) { return future; } - - private static String getPlayerName(final UUID uuid) { - final AtomicReference result = new AtomicReference<>(""); - try (final DatabaseQuery databaseQuery = DatabaseQuery.query("SELECT * FROM " + - "players " + "where uid = ?")) { - databaseQuery.setString(uuid.toString()); - - databaseQuery.executeQuery(databaseSet -> { - if (databaseSet.next()) { - result.set(databaseSet.getString("name")); - } - }); - } catch (Exception e) { - throw new IllegalStateException(e); - } - return result.get(); - } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java index e4697c27..416e4276 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/PluginExecutor.java @@ -2,11 +2,19 @@ import org.jetbrains.annotations.NotNull; -import java.util.concurrent.*; +import java.util.concurrent.CompletableFuture; +import java.util.concurrent.Executor; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; import java.util.function.Supplier; public final class PluginExecutor implements Executor { public static final @NotNull PluginExecutor INSTANCE = new PluginExecutor(); + private final @NotNull ExecutorService executor; + + public PluginExecutor() { + this.executor = Executors.newFixedThreadPool(4); + } public static @NotNull CompletableFuture runAsync(final Runnable runnable) { return (CompletableFuture) INSTANCE.submit(runnable); @@ -16,12 +24,6 @@ public final class PluginExecutor implements Executor { return (CompletableFuture) INSTANCE.supplyAsync(supplier); } - private final @NotNull ExecutorService executor; - - public PluginExecutor() { - this.executor = Executors.newFixedThreadPool(4); - } - @Override public void execute(final @NotNull Runnable command) { executor.execute(command); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java index 4d63d5e7..ad417522 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/PluginConfiguration.java @@ -1,6 +1,9 @@ package io.tofpu.speedbridge2.model.common.config; -import io.tofpu.speedbridge2.model.common.config.category.*; +import io.tofpu.speedbridge2.model.common.config.category.BlockMenuCategory; +import io.tofpu.speedbridge2.model.common.config.category.GeneralCategory; +import io.tofpu.speedbridge2.model.common.config.category.LeaderboardCategory; +import io.tofpu.speedbridge2.model.common.config.category.LobbyCategory; import org.spongepowered.configurate.objectmapping.ConfigSerializable; import org.spongepowered.configurate.objectmapping.meta.Setting; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java index ac6d04d7..ba9cb586 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/BlockMenuCategory.java @@ -5,7 +5,10 @@ import org.spongepowered.configurate.objectmapping.ConfigSerializable; import org.spongepowered.configurate.objectmapping.meta.Setting; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; +import java.util.List; @ConfigSerializable public final class BlockMenuCategory { @@ -13,12 +16,16 @@ public final class BlockMenuCategory { @Setting("blocks") private List materials = new ArrayList<>(Arrays.asList(toMaterial(XMaterial.WHITE_WOOL), - Material.DIAMOND_BLOCK, Material.GOLD_BLOCK, Material.IRON_BLOCK, - Material.REDSTONE_BLOCK, Material.LAPIS_BLOCK, Material.QUARTZ_BLOCK)); + Material.DIAMOND_BLOCK, Material.GOLD_BLOCK, Material.IRON_BLOCK, + Material.REDSTONE_BLOCK, Material.LAPIS_BLOCK, Material.QUARTZ_BLOCK)); @Setting("default_block") private Material defaultBlock = materials.isEmpty() ? Material.AIR : materials.get(0); + public static Material toMaterial(final XMaterial xMaterial) { + return xMaterial.parseMaterial(); + } + public Collection getMaterialBlocks() { return materials.subList(0, Math.min(7, materials.size())); } @@ -26,8 +33,4 @@ public Collection getMaterialBlocks() { public Material getDefaultBlock() { return defaultBlock; } - - public static Material toMaterial(final XMaterial xMaterial) { - return xMaterial.parseMaterial(); - } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java index 929f1b64..b67966f5 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java @@ -9,24 +9,22 @@ public final class GeneralCategory { @Setting("show-debug-message") @Comment("Useful when debugging") private boolean showDebugMessage = false; + @Setting("default-island-category") + @Comment("This will set the default island category when they're not provided upon " + + "creation") + private String defaultIslandCategory = "standard"; + @Setting("island-space-gap") + @Comment("The space gap between islands") + private int islandSpaceGap = 10; public boolean isDebugEnabled() { return showDebugMessage; } - @Setting("default-island-category") - @Comment("This will set the default island category when they're not provided upon " + - "creation") - private String defaultIslandCategory = "standard"; - public String getDefaultIslandCategory() { return defaultIslandCategory; } - @Setting("island-space-gap") - @Comment("The space gap between islands") - private int islandSpaceGap = 10; - public int getIslandSpaceGap() { return islandSpaceGap; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java index b3f599ff..ce8b3c90 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LeaderboardCategory.java @@ -13,7 +13,7 @@ public final class LeaderboardCategory { @Setting("session-update-interval") @Comment("A session leaderboard will update on every x interval. It's defined in " + - "seconds.") + "seconds.") private int sessionUpdateInterval = 10; @Setting("leaderboard-format") diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java index 77520d99..67ff66f6 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java @@ -12,27 +12,26 @@ public final class LobbyCategory { @Setting("teleport-on-join") @Comment("If this is set to true, the players will teleport to the lobby upon them " + - "joining") + "joining") private boolean teleportOnJoin = true; + @Setting("lobby-location") + @Comment("This is where the players will teleport when they join, or leave an " + + "island") + private Location lobbyLocation = null; public boolean isTeleportOnJoin() { return teleportOnJoin; } - @Setting("lobby-location") - @Comment("This is where the players will teleport when they join, or leave an " + - "island") - private Location lobbyLocation = null; + public void setTeleportOnJoin(final boolean teleportOnJoin) { + this.teleportOnJoin = teleportOnJoin; + } public CompletableFuture setLobbyLocation(final Location lobbyLocation) { this.lobbyLocation = lobbyLocation; return ConfigurationManager.INSTANCE.update(); } - public void setTeleportOnJoin(final boolean teleportOnJoin) { - this.teleportOnJoin = teleportOnJoin; - } - public Location getLobbyLocation() { return lobbyLocation; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java index de61a0cd..95034f27 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/AbstractItemActionSerializer.java @@ -20,8 +20,7 @@ public AbstractItemAction deserialize(final Type type, final ConfigurationNode n } @Override - public void serialize(final Type type, @Nullable - final AbstractItemAction obj, final ConfigurationNode node) throws SerializationException { + public void serialize(final Type type, @Nullable final AbstractItemAction obj, final ConfigurationNode node) throws SerializationException { if (!(obj instanceof RunCommandItemAction)) { return; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java index 9ae026a7..36c61187 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemMetaSerializer.java @@ -39,8 +39,7 @@ public ItemMeta deserialize(final Type type, final ConfigurationNode node) throw } @Override - public void serialize(final Type type, @Nullable - final ItemMeta obj, final ConfigurationNode node) throws SerializationException { + public void serialize(final Type type, @Nullable final ItemMeta obj, final ConfigurationNode node) throws SerializationException { if (obj == null) { node.raw(); return; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java index 9fabf706..3b80ad76 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/ItemStackSerializer.java @@ -26,8 +26,7 @@ public ItemStack deserialize(final Type type, final ConfigurationNode node) thro } @Override - public void serialize(final Type type, @Nullable - final ItemStack obj, final ConfigurationNode node) throws SerializationException { + public void serialize(final Type type, @Nullable final ItemStack obj, final ConfigurationNode node) throws SerializationException { node.node("material").set(obj.getType()); node.node("durability").set(obj.getDurability()); node.node("meta").set(obj.getItemMeta()); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java index 85e00985..38e68ba5 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/LocationSerializer.java @@ -16,7 +16,8 @@ public final class LocationSerializer implements TypeSerializer { public static final LocationSerializer INSTANCE = new LocationSerializer(); - private LocationSerializer() {} + private LocationSerializer() { + } @Override public Location deserialize(final Type type, final ConfigurationNode node) throws SerializationException { @@ -62,7 +63,7 @@ private World getWorld(final String worldName) { private ConfigurationNode nonVirtualNode(final ConfigurationNode source, final Object... path) throws SerializationException { if (!source.hasChild(path)) { throw new SerializationException("Required field " + Arrays.toString(path) + - " was not present in node"); + " was not present in node"); } return source.node(path); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java index 3125ad1f..f07b4acf 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/MaterialSerializer.java @@ -22,8 +22,7 @@ public Material deserialize(final Type type, final ConfigurationNode node) throw } @Override - public void serialize(final Type type, @Nullable - final Material obj, final ConfigurationNode node) throws SerializationException { + public void serialize(final Type type, @Nullable final Material obj, final ConfigurationNode node) throws SerializationException { if (obj == null) { node.set(Material.AIR.name()); return; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java index 52da5912..c379eac4 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/serializer/UmbrellaItemSerializer.java @@ -31,8 +31,7 @@ public SerializableUmbrellaItem deserialize(final Type type, final Configuration } @Override - public void serialize(final Type type, @Nullable - final SerializableUmbrellaItem obj, final ConfigurationNode node) throws SerializationException { + public void serialize(final Type type, @Nullable final SerializableUmbrellaItem obj, final ConfigurationNode node) throws SerializationException { final ItemStack itemStack = obj.getItemStack(); node.node("index").set(obj.getIndex()); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java index 4428952c..d1ead1f5 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseQuery.java @@ -14,10 +14,6 @@ public class DatabaseQuery implements AutoCloseable { private final @Nullable PreparedStatement preparedStatement; private final @NotNull AtomicInteger setterCounter; - public static DatabaseQuery query(final @NotNull String query) { - return new DatabaseQuery(query); - } - private DatabaseQuery(final @NotNull String query) { try { this.preparedStatement = @@ -28,6 +24,10 @@ private DatabaseQuery(final @NotNull String query) { this.setterCounter = new AtomicInteger(0); } + public static DatabaseQuery query(final @NotNull String query) { + return new DatabaseQuery(query); + } + public @NotNull DatabaseQuery setInt(final Integer integer) { try { this.preparedStatement.setInt(setterCounter.incrementAndGet(), integer); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java index f21a6c84..cab1bd96 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/database/wrapper/DatabaseTable.java @@ -9,11 +9,6 @@ public class DatabaseTable { private final String[] columns; private final String sql; - public static DatabaseTable of(final @NotNull String table, - final @NotNull String... columns) { - return new DatabaseTable(table, columns); - } - private DatabaseTable(final @NotNull String table, final @NotNull String... columns) { this.table = table; this.columns = columns; @@ -22,6 +17,11 @@ private DatabaseTable(final @NotNull String table, final @NotNull String... colu BridgeUtil.debug(sql); } + public static DatabaseTable of(final @NotNull String table, + final @NotNull String... columns) { + return new DatabaseTable(table, columns); + } + public @NotNull String formatColumns(final String[] columns) { final StringBuilder formattedColumn = new StringBuilder(); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java index 4c9d7834..9b0928c7 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterBase.java @@ -7,6 +7,7 @@ public abstract class MessagePresenterBase { public abstract static class Builder { public abstract Builder append(final String message); + public abstract MessagePresenterBase build(); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java index 6ad02618..db188a2a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolder.java @@ -4,5 +4,6 @@ public interface MessagePresenterHolder { MessagePresenterHolderImpl append(final Supplier presenter); + String getResult(); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java index 666dda94..8d2fd47c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/MessagePresenterHolderImpl.java @@ -4,7 +4,7 @@ public final class MessagePresenterHolderImpl implements MessagePresenterHolder { private static final String HEADER_FORMAT = "| <-> " + - "%s "; + "%s "; private final StringBuilder builder; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java index e00982f8..796a228c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/presenter/type/MessageTreePresenter.java @@ -52,8 +52,8 @@ public String getResult() { } public static class Builder { - private String title; private final List messages = new ArrayList<>(); + private String title; public Builder title(final String title) { this.title = title; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java index 02dc9787..91e3035e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java @@ -82,12 +82,12 @@ public static Component translateMiniMessage(final String content) { * Send a message to a * command sender * - * @param sender The CommandSender who is sending the message. + * @param sender The CommandSender who is sending the message. * @param component The component to send. * @return The component that was sent. */ public static Component sendMessage(final CommandSender sender, - final Component component) { + final Component component) { final Audience audience = SpeedBridge.getAdventure() .sender(sender); audience.sendMessage(component); @@ -97,12 +97,12 @@ public static Component sendMessage(final CommandSender sender, /** * This function sends a message to a player * - * @param sender The player who sent the message. + * @param sender The player who sent the message. * @param content The message to send. * @return Nothing. */ public static Component sendMessage(final CommonBridgePlayer sender, - final String content) { + final String content) { if (content.isEmpty()) { return null; } @@ -115,12 +115,12 @@ public static Component sendMessage(final CommonBridgePlayer sender, * Send a message to a * command sender * - * @param sender The CommandSender who will receive the message. + * @param sender The CommandSender who will receive the message. * @param content The content of the message. * @return Nothing. */ public static Component sendMessage(final CommandSender sender, - final String content) { + final String content) { if (content.isEmpty()) { return null; } @@ -157,9 +157,8 @@ public static String translate(final String replace) { /** * Given a row or column, and a database set, return a BoardPlayer * - * @param row boolean + * @param row boolean * @param databaseSet The database set that is being converted to a BoardPlayer. - * * @return A BoardPlayer object. */ public static BoardPlayer toBoardPlayer(final boolean row, final DatabaseSet databaseSet) { @@ -192,8 +191,8 @@ public static BoardPlayer toBoardPlayer(final boolean row, final DatabaseSet dat public static UUID findUUIDBy(final String playerName) { final AtomicReference uuid = new AtomicReference<>(); try (final DatabaseQuery databaseQuery = DatabaseQuery.query("SELECT uid FROM " + - "players WHERE name " + - "= ?")) { + "players WHERE name " + + "= ?")) { databaseQuery.setString(playerName); databaseQuery.executeQuery(databaseSet -> { @@ -224,22 +223,22 @@ public static void runBukkitAsync(final Runnable runnable) { * This function will run a task asynchronously * * @param runnable The Runnable to run. - * @param delay The delay is the amount of time to wait before the first execution. + * @param delay The delay is the amount of time to wait before the first execution. * @param interval How often the task should run. */ public static void runBukkitAsync(final Runnable runnable, final long delay, - final long interval) { + final long interval) { Bukkit.getScheduler().runTaskTimerAsynchronously(JavaPlugin.getPlugin(SpeedBridgePlugin.class), runnable, delay, interval); } /** * It runs the given Runnable when the CompletableFuture is completed. * - * @param completableFuture The completable future to be completed. + * @param completableFuture The completable future to be completed. * @param whenCompleteConsumer The consumer to be run when the completable future is completed. */ public static CompletableFuture whenComplete(final CompletableFuture completableFuture, - final Consumer whenCompleteConsumer) { + final Consumer whenCompleteConsumer) { return completableFuture.whenComplete((o, throwable) -> { if (throwable != null) { throw new IllegalStateException(throwable); @@ -252,11 +251,11 @@ public static CompletableFuture whenComplete(final CompletableFuture c * It runs the given Runnable when the CompletableFuture is completed. * * @param completableFuture The completable future to be completed. - * @param whenComplete The runnable to be run when the completable future is - * completed. + * @param whenComplete The runnable to be run when the completable future is + * completed. */ public static void whenComplete(final CompletableFuture completableFuture, - final Runnable whenComplete) { + final Runnable whenComplete) { completableFuture.whenComplete((o, throwable) -> { if (throwable != null) { throw new IllegalStateException(throwable); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java index 482f0fe1..79155005 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/DatabaseUtil.java @@ -14,7 +14,7 @@ public class DatabaseUtil { * executes the query and returns a CompletableFuture that will be completed when the * query is done * - * @param sql The SQL statement to execute. + * @param sql The SQL statement to execute. * @param databaseQueryConsumer A Consumer that takes a DatabaseQuery. * @return Nothing. */ @@ -42,12 +42,12 @@ public static CompletableFuture runAsync(final Runnable runnable) { /** * It takes a SQL query and a consumer that will be called for each row of the query * - * @param sql The SQL statement to execute. + * @param sql The SQL statement to execute. * @param databaseQueryConsumer A consumer that will be called for each row of the query. * @return Nothing. */ public static CompletableFuture databaseQueryExecute(final String sql, - final Consumer databaseQueryConsumer) { + final Consumer databaseQueryConsumer) { return runAsync(() -> { try (final DatabaseQuery query = DatabaseQuery.query(sql)) { query.executeQuery(databaseQueryConsumer); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java index 69203f2b..65ff194b 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/FileUtil.java @@ -10,9 +10,9 @@ public final class FileUtil { /** * Write a collection of strings to a file * - * @param file The file to write to. - * @param append If true, the file will be appended to if it already exists. If false, - * the file will be overwritten if it already exists. + * @param file The file to write to. + * @param append If true, the file will be appended to if it already exists. If false, + * the file will be overwritten if it already exists. * @param stringCollection The collection of strings to write to the file. */ public static void write(final File file, final boolean append, final Collection stringCollection) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java index c915d5f1..fcbf6e17 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/IgnoreMessage.java @@ -7,4 +7,5 @@ @Target({ElementType.FIELD}) @Retention(RetentionPolicy.RUNTIME) -public @interface IgnoreMessage {} +public @interface IgnoreMessage { +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java index 9e7c4eb1..c63a3291 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UmbrellaUtil.java @@ -15,7 +15,7 @@ public class UmbrellaUtil { public static ItemStack create(final XMaterial material, final String displayName, - final String lore) { + final String lore) { final ItemStack itemStack = material.parseItem(); final ItemMeta meta = itemStack.getItemMeta(); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java index 1b877c94..5c01a4b8 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/UpdateChecker.java @@ -33,7 +33,12 @@ */ public final class UpdateChecker { - /** The default version scheme for this update checker */ + private static final String USER_AGENT = "CHOCO-update-checker"; + private static final String UPDATE_URL = "https://api.spigotmc.org/simple/0.1/index.php?action=getResource&id=%d"; + private static final Pattern DECIMAL_SCHEME_PATTERN = Pattern.compile("\\d+(?:\\.\\d+)*"); + /** + * The default version scheme for this update checker + */ public static final VersionScheme VERSION_SCHEME_DECIMAL = (first, second) -> { String[] firstSplit = splitVersionInfo(first), secondSplit = splitVersionInfo(second); if (firstSplit == null || secondSplit == null) { @@ -52,23 +57,16 @@ public final class UpdateChecker { return (secondSplit.length > firstSplit.length) ? second : first; }; - - private static final String USER_AGENT = "CHOCO-update-checker"; - private static final String UPDATE_URL = "https://api.spigotmc.org/simple/0.1/index.php?action=getResource&id=%d"; - private static final Pattern DECIMAL_SCHEME_PATTERN = Pattern.compile("\\d+(?:\\.\\d+)*"); - private static final String[] UPDATE_MESSAGE = { "You're using an outdated version of SpeedBridge!", "You can download the latest version at https://www.spigotmc.org/resources/.100619/" }; private static UpdateChecker instance; - - private UpdateResult lastResult = null; - private final JavaPlugin plugin; private final int pluginID; private final VersionScheme versionScheme; + private UpdateResult lastResult = null; private UpdateChecker(@NotNull JavaPlugin plugin, int pluginID, @NotNull VersionScheme versionScheme) { this.plugin = plugin; @@ -76,6 +74,70 @@ private UpdateChecker(@NotNull JavaPlugin plugin, int pluginID, @NotNull Version this.versionScheme = versionScheme; } + private static String[] splitVersionInfo(String version) { + Matcher matcher = DECIMAL_SCHEME_PATTERN.matcher(version); + return matcher.find() ? matcher.group().split("\\.") : null; + } + + /** + * Initialize this update checker with the specified values and return its instance. + * If an instance of UpdateChecker has already been initialized, this method will act + * similarly to {@link #get()} (which is recommended after initialization). + * + * @param plugin the plugin for which to check updates. Cannot be null + * @param pluginID the ID of the plugin as identified in the SpigotMC resource link. + * For example, "https://www.spigotmc.org/resources/veinminer.12038/" would + * expect "12038" as a value. The value must be greater than 0 + * @param versionScheme a custom version scheme parser. Cannot be null + * @return the UpdateChecker instance + */ + @NotNull + public static UpdateChecker init(@NotNull JavaPlugin plugin, int pluginID, @NotNull VersionScheme versionScheme) { + Preconditions.checkArgument(plugin != null, "Plugin cannot be null"); + Preconditions.checkArgument(pluginID > 0, "Plugin ID must be greater than 0"); + Preconditions.checkArgument(versionScheme != null, "null version schemes are unsupported"); + + return (instance == null) ? instance = new UpdateChecker(plugin, pluginID, versionScheme) : instance; + } + + /** + * Initialize this update checker with the specified values and return its instance. + * If an instance of UpdateChecker has already been initialized, this method will act + * similarly to {@link #get()} (which is recommended after initialization). + * + * @param plugin the plugin for which to check updates. Cannot be null + * @param pluginID the ID of the plugin as identified in the SpigotMC resource link. + * For example, "https://www.spigotmc.org/resources/veinminer.12038/" would + * expect "12038" as a value. The value must be greater than 0 + * @return the UpdateChecker instance + */ + @NotNull + public static UpdateChecker init(@NotNull JavaPlugin plugin, int pluginID) { + return init(plugin, pluginID, VERSION_SCHEME_DECIMAL); + } + + /** + * Get the initialized instance of UpdateChecker. If {@link #init(JavaPlugin, int)} + * has not yet been invoked, this method will throw an exception. + * + * @return the UpdateChecker instance + */ + @NotNull + public static UpdateChecker get() { + Preconditions.checkState(instance != null, "Instance has not yet been initialized. Be sure #init() has been invoked"); + return instance; + } + + /** + * Check whether the UpdateChecker has been initialized or not (if + * {@link #init(JavaPlugin, int)} has been invoked) and {@link #get()} is safe to use. + * + * @return true if initialized, false otherwise + */ + public static boolean isInitialized() { + return instance != null; + } + public void updateNotification(final Player player) { final UpdateResult lastResult = getLastResult(); if (lastResult == null) { @@ -124,11 +186,9 @@ public void updateNotification(final Player player) { if (latest == null) { return new UpdateResult(UpdateReason.UNSUPPORTED_VERSION_SCHEME); - } - else if (latest.equals(pluginVersion)) { + } else if (latest.equals(pluginVersion)) { return new UpdateResult(pluginVersion.equals(currentVersion) ? UpdateReason.UP_TO_DATE : UpdateReason.UNRELEASED_VERSION); - } - else if (latest.equals(currentVersion)) { + } else if (latest.equals(currentVersion)) { return new UpdateResult(UpdateReason.NEW_UPDATE, latest); } } catch (IOException e) { @@ -151,93 +211,6 @@ public UpdateResult getLastResult() { return lastResult; } - private static String[] splitVersionInfo(String version) { - Matcher matcher = DECIMAL_SCHEME_PATTERN.matcher(version); - return matcher.find() ? matcher.group().split("\\.") : null; - } - - /** - * Initialize this update checker with the specified values and return its instance. - * If an instance of UpdateChecker has already been initialized, this method will act - * similarly to {@link #get()} (which is recommended after initialization). - * - * @param plugin the plugin for which to check updates. Cannot be null - * @param pluginID the ID of the plugin as identified in the SpigotMC resource link. - * For example, "https://www.spigotmc.org/resources/veinminer.12038/" would - * expect "12038" as a value. The value must be greater than 0 - * @param versionScheme a custom version scheme parser. Cannot be null - * - * @return the UpdateChecker instance - */ - @NotNull - public static UpdateChecker init(@NotNull JavaPlugin plugin, int pluginID, @NotNull VersionScheme versionScheme) { - Preconditions.checkArgument(plugin != null, "Plugin cannot be null"); - Preconditions.checkArgument(pluginID > 0, "Plugin ID must be greater than 0"); - Preconditions.checkArgument(versionScheme != null, "null version schemes are unsupported"); - - return (instance == null) ? instance = new UpdateChecker(plugin, pluginID, versionScheme) : instance; - } - - /** - * Initialize this update checker with the specified values and return its instance. - * If an instance of UpdateChecker has already been initialized, this method will act - * similarly to {@link #get()} (which is recommended after initialization). - * - * @param plugin the plugin for which to check updates. Cannot be null - * @param pluginID the ID of the plugin as identified in the SpigotMC resource link. - * For example, "https://www.spigotmc.org/resources/veinminer.12038/" would - * expect "12038" as a value. The value must be greater than 0 - * - * @return the UpdateChecker instance - */ - @NotNull - public static UpdateChecker init(@NotNull JavaPlugin plugin, int pluginID) { - return init(plugin, pluginID, VERSION_SCHEME_DECIMAL); - } - - /** - * Get the initialized instance of UpdateChecker. If {@link #init(JavaPlugin, int)} - * has not yet been invoked, this method will throw an exception. - * - * @return the UpdateChecker instance - */ - @NotNull - public static UpdateChecker get() { - Preconditions.checkState(instance != null, "Instance has not yet been initialized. Be sure #init() has been invoked"); - return instance; - } - - /** - * Check whether the UpdateChecker has been initialized or not (if - * {@link #init(JavaPlugin, int)} has been invoked) and {@link #get()} is safe to use. - * - * @return true if initialized, false otherwise - */ - public static boolean isInitialized() { - return instance != null; - } - - - /** - * A functional interface to compare two version Strings with similar version schemes. - */ - @FunctionalInterface - public static interface VersionScheme { - - /** - * Compare two versions and return the higher of the two. If null is returned, it - * is assumed that at least one of the two versions are unsupported by this - * version scheme parser. - * - * @param first the first version to check - * @param second the second version to check - * - * @return the greater of the two versions. null if unsupported version schemes - */ - @Nullable - public String compareVersions(@NotNull String first, @NotNull String second); - - } /** * A constant reason for the result of {@link UpdateResult}. @@ -289,6 +262,26 @@ public static enum UpdateReason { } + /** + * A functional interface to compare two version Strings with similar version schemes. + */ + @FunctionalInterface + public static interface VersionScheme { + + /** + * Compare two versions and return the higher of the two. If null is returned, it + * is assumed that at least one of the two versions are unsupported by this + * version scheme parser. + * + * @param first the first version to check + * @param second the second version to check + * @return the greater of the two versions. null if unsupported version schemes + */ + @Nullable + public String compareVersions(@NotNull String first, @NotNull String second); + + } + /** * Represents a result for an update query performed by * {@link UpdateChecker#requestUpdateCheck()}. diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java index 61bf887a..f4d1b482 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/wrapper/ConfigurateFile.java @@ -73,7 +73,7 @@ public void load(final Class bindTo, final FileConfigurationType type) { } catch (ConfigurateException e) { plugin.getLogger() .warning("An error occurred while loading this configuration:" + " " + - e.getMessage()); + e.getMessage()); if (e.getCause() != null) { e.printStackTrace(); } @@ -85,7 +85,7 @@ public void load(final Class bindTo, final FileConfigurationType type) { } catch (SerializationException e) { plugin.getLogger() .warning("An error occurred while converting MyConfiguration: " + - e.getMessage()); + e.getMessage()); if (e.getCause() != null) { e.printStackTrace(); } @@ -103,7 +103,7 @@ public CompletableFuture reload() { } catch (ConfigurateException e) { plugin.getLogger() .warning("An error occurred while converting MyConfiguration: " + - e.getMessage()); + e.getMessage()); if (e.getCause() != null) { e.printStackTrace(); } @@ -115,7 +115,7 @@ public void save() { if (this.node == null) { plugin.getLogger() .warning("Configuration cannot be saved due to the node " + - "being null"); + "being null"); return; } try { @@ -123,7 +123,7 @@ public void save() { } catch (ConfigurateException e) { plugin.getLogger() .warning("An error occurred while saving this configuration: " + - e.getMessage()); + e.getMessage()); if (e.getCause() != null) { e.printStackTrace(); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java index 856f4c4f..19d9ffc9 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandDatabase.java @@ -25,7 +25,7 @@ public IslandDatabase() { public @NotNull CompletableFuture insert(final Island island) { return DatabaseUtil.databaseExecute("INSERT OR IGNORE INTO islands VALUES " + - "(?, ?, ?, ?)", databaseQuery -> { + "(?, ?, ?, ?)", databaseQuery -> { databaseQuery.setInt(island.getSlot()); databaseQuery.setString(island.getCategory()); databaseQuery.setString(island.getSchematicName()); @@ -36,7 +36,7 @@ public IslandDatabase() { public @NotNull CompletableFuture update(final Island island) { return DatabaseUtil.databaseExecute( "UPDATE islands SET category = ?, schematic_name = " + - "?, spawn_point = ? WHERE slot = ?", databaseQuery -> { + "?, spawn_point = ? WHERE slot = ?", databaseQuery -> { BridgeUtil.debug("island category: " + island.getCategory()); databaseQuery.setString(island.getCategory()); @@ -78,7 +78,8 @@ public IslandDatabase() { } islands.add(builder.build()); - }}).get(); + } + }).get(); } catch (InterruptedException | ExecutionException e) { throw new IslandLoadFailureException(e); } @@ -93,7 +94,7 @@ private String serialize(final Location location) { } return location.getX() + ":" + location.getY() + ":" + - location.getZ() + ":" + location.getYaw() + ":" + location.getPitch(); + location.getZ() + ":" + location.getYaw() + ":" + location.getPitch(); } private Location deserialize(final String input) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java index e04023c8..3d73eedc 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandHandler.java @@ -4,8 +4,8 @@ import io.tofpu.speedbridge2.model.common.util.BridgeUtil; import io.tofpu.speedbridge2.model.island.arena.ArenaManager; import io.tofpu.speedbridge2.model.island.object.Island; -import io.tofpu.speedbridge2.model.leaderboard.IslandBoard; import io.tofpu.speedbridge2.model.island.object.IslandBuild; +import io.tofpu.speedbridge2.model.leaderboard.IslandBoard; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -37,13 +37,13 @@ public void load(final @NotNull Map loadedIslands) { /** * Creates an island * - * @param slot The island's slot. - * @param category The category of the island. + * @param slot The island's slot. + * @param category The category of the island. * @param schematic The name of the schematic to load. It cannot be null nor empty. * @return The {@link IslandHandler.IslandCreationResult} enum. */ public @NotNull IslandHandler.IslandCreationResult createIsland(final int slot, - final @NotNull String category, final @NotNull String schematic) { + final @NotNull String category, final @NotNull String schematic) { // if the island does exist, return ALREADY_EXISTS! if (islandMap.containsKey(slot)) { return IslandCreationResultType.ISLAND_ALREADY_EXISTS.empty(); @@ -133,7 +133,6 @@ public void load(final @NotNull Map loadedIslands) { /** * @param island The island to register. - * * @return The registration result. */ public IslandRegistrationResultType registerIsland(Island island) { @@ -179,7 +178,7 @@ public IslandCreationResult empty() { } public IslandCreationResult create(final Island - island) { + island) { return new IslandCreationResult(this, island); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java index a04bb954..ebf6299f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/IslandService.java @@ -11,7 +11,7 @@ import java.util.concurrent.CompletableFuture; public final class IslandService { -// public static final @NotNull IslandService INSTANCE = new IslandService(); + // public static final @NotNull IslandService INSTANCE = new IslandService(); private final @NotNull IslandHandler islandHandler; private final @NotNull IslandRepository islandRepository; @@ -34,14 +34,14 @@ public CompletableFuture> loadAsync() { /** * Creates an island * - * @param slot The island's slot. - * @param category The category of the island. + * @param slot The island's slot. + * @param category The category of the island. * @param schematic The name of the schematic to load. It cannot be null nor empty. * @return The {@link IslandHandler.IslandCreationResult} enum. */ public @NotNull IslandHandler.IslandCreationResult createIsland(final int slot, - final @NotNull String category, - final @NotNull String schematic) { + final @NotNull String category, + final @NotNull String schematic) { return this.islandHandler.createIsland(slot, category, schematic); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java index 7013355f..bc7abbba 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/arena/ArenaManager.java @@ -3,8 +3,8 @@ import com.sk89q.worldedit.WorldEditException; import io.tofpu.speedbridge2.model.common.config.manager.ConfigurationManager; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.island.object.GameIsland; +import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.island.object.land.IslandLand; import io.tofpu.speedbridge2.model.support.worldedit.Vector; import org.apache.commons.io.FileUtils; @@ -30,10 +30,15 @@ public final class ArenaManager { private File worldDirectory; private World world; + @NotNull + private static String serializeVector(Vector vector) { + return String.format("%s, %s, %s", vector.getX(), vector.getY(), vector.getZ()); + } + public void load() { this.world = Bukkit.createWorld(WorldCreator.name("speedbridge2") .generator(new EmptyChunkGenerator())); - this.worldDirectory = new File( "speedbridge2"); + this.worldDirectory = new File("speedbridge2"); protectWorld(world); } @@ -105,8 +110,12 @@ private IslandLand getPlot(final Island island, final GameIsland gameIsland) { return islandLand; } +// private IslandLand getNewPlot(final Island target) { +// return getNewPlot(target, getPositions()); +// } + private IslandLand getAvailablePlot(final Collection islandLands, - final int slot) { + final int slot) { for (final IslandLand islandLand : islandLands) { // if it's not the same island plot, or the plot is not free; continue if (islandLand.getIsland().getSlot() != slot || !islandLand.isFree()) { @@ -119,10 +128,6 @@ private IslandLand getAvailablePlot(final Collection islandLands, return null; } -// private IslandLand getNewPlot(final Island target) { -// return getNewPlot(target, getPositions()); -// } - private IslandLand getNewPlot(final Island target, double[] positions) { return new IslandLand(target, world, positions); } @@ -199,11 +204,6 @@ public double[] getPositions() { return new double[]{COUNTER.get(), 100, 100}; } - @NotNull - private static String serializeVector(Vector vector) { - return String.format("%s, %s, %s", vector.getX(), vector.getY(), vector.getZ()); - } - public void resetWorld() { final File worldFile = getWorldDirectory(); if (worldFile != null && worldFile.exists()) { @@ -261,7 +261,6 @@ public World getWorld() { } - private static final class EmptyChunkGenerator extends ChunkGenerator { @Override public @NotNull ChunkData generateChunkData(final World world, final Random random, final int x, final int z, final BiomeGrid biome) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java index 10469263..66babf8f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/exception/IslandDatabaseExceptionWrapper.java @@ -2,7 +2,7 @@ public class IslandDatabaseExceptionWrapper extends RuntimeException { public IslandDatabaseExceptionWrapper(final String message, final int slot, - final Throwable e) { + final Throwable e) { super(message + (slot == -1 ? "" : ": " + slot), e); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java index 7a15c1f6..114c6096 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java @@ -4,11 +4,11 @@ import io.tofpu.speedbridge2.model.common.config.category.LobbyCategory; import io.tofpu.speedbridge2.model.common.config.manager.ConfigurationManager; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.island.object.umbrella.GameIslandUmbrella; -import io.tofpu.speedbridge2.model.island.object.land.IslandLand; import io.tofpu.speedbridge2.model.island.arena.ArenaManager; -import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; +import io.tofpu.speedbridge2.model.island.object.land.IslandLand; +import io.tofpu.speedbridge2.model.island.object.umbrella.GameIslandUmbrella; import io.tofpu.speedbridge2.model.player.object.GamePlayer; +import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; import io.tofpu.speedbridge2.model.support.worldedit.CuboidRegion; import io.tofpu.umbrella.domain.Umbrella; import org.bukkit.GameMode; @@ -25,7 +25,7 @@ public class GameIsland { private IslandLand islandLand; public GameIsland(final ArenaManager arenaManager, final Island island, - final GamePlayer gamePlayer) { + final GamePlayer gamePlayer) { this.arenaManager = arenaManager; // todo: memory leak, as this does not get invalidated once done this.umbrella = new GameIslandUmbrella(this).getUmbrella(); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java index a7c7a1a8..95d032ba 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java @@ -35,14 +35,13 @@ public class Island { private final int slot; private final Map islandMap; - private String category; - private final LeaderboardMap leaderboardMap; private final IslandSchematic islandSchematic; + private String category; private Location absoluteLocation; public Island(final IslandService islandService, final ArenaManager arenaManager, - final int slot, final String category) { + final int slot, final String category) { this.islandService = islandService; this.arenaManager = arenaManager; this.slot = slot; @@ -55,8 +54,8 @@ public Island(final IslandService islandService, final ArenaManager arenaManager } public Island(final IslandService islandService, final ArenaManager arenaManager, - final int slot, final String category, final String schematic, - final Location absoluteLocation) { + final int slot, final String category, final String schematic, + final Location absoluteLocation) { this.islandService = islandService; this.arenaManager = arenaManager; this.slot = slot; @@ -148,16 +147,6 @@ public GameIsland findGameByPlayer(final GamePlayer gamePlayer) { return this.islandMap.get(gamePlayer); } - /** - * It sets the category of the question. - * - * @param anotherCategory The new category to set. - */ - public void setCategory(final String anotherCategory) { - this.category = anotherCategory; - update(); - } - /** * Selects a schematic from the list of available schematics * @@ -174,22 +163,22 @@ public boolean selectSchematic(final @NotNull String schematicName) { } /** - * This function sets the absolute location of the object + * Returns the absolute location of the object * - * @param newAbsoluteLocation The new location to set the object to. + * @return The absolute location of the object. */ - public void setAbsoluteLocation(final Location newAbsoluteLocation) { - this.absoluteLocation = newAbsoluteLocation; - update(); + public Location getAbsoluteLocation() { + return this.absoluteLocation; } /** - * Returns the absolute location of the object + * This function sets the absolute location of the object * - * @return The absolute location of the object. + * @param newAbsoluteLocation The new location to set the object to. */ - public Location getAbsoluteLocation() { - return this.absoluteLocation; + public void setAbsoluteLocation(final Location newAbsoluteLocation) { + this.absoluteLocation = newAbsoluteLocation; + update(); } /** @@ -199,7 +188,7 @@ public Location getAbsoluteLocation() { */ public boolean isReady() { return islandSchematic.getSchematicClipboard() != null && - absoluteLocation != null; + absoluteLocation != null; } /** @@ -223,6 +212,16 @@ public String getCategory() { return category; } + /** + * It sets the category of the question. + * + * @param anotherCategory The new category to set. + */ + public void setCategory(final String anotherCategory) { + this.category = anotherCategory; + update(); + } + /** * Load the leaderboard map with the given map * @@ -236,7 +235,7 @@ public void loadBoard(final Map boardMap) { * Add a score to the leaderboard for the given player * * @param bridgePlayer The bridge player to add the score to. - * @param score The score to add. + * @param score The score to add. */ public void addLeaderboardScore(final BridgePlayer bridgePlayer, final Score score) { leaderboardMap.append(bridgePlayer, score); @@ -368,9 +367,9 @@ public IslandSchematic(final Island island, final String schematic) { public boolean selectSchematic(final @NotNull String schematicName) { BridgeUtil.debug( "Loading schematic '" + schematicName + "' for " + island.getSlot() + - "..."); + "..."); BridgeUtil.debug("IslandSchematic#selectSchematic(): WorldEdit Directory: " + - schematicDirectory); + schematicDirectory); final File file = findSchematicFile(schematicDirectory, schematicName); if (file != null && file.exists()) { @@ -379,7 +378,7 @@ public boolean selectSchematic(final @NotNull String schematicName) { BridgeUtil.debug( "IslandSchematic#selectSchematic(): Successfully loaded schematic: " + - schematicName); + schematicName); this.schematicName = schematicName; return true; @@ -387,7 +386,7 @@ public boolean selectSchematic(final @NotNull String schematicName) { BridgeUtil.debug( "IslandSchematic#selectSchematic(): Failed to load schematic: " + - schematicName); + schematicName); return false; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java index c698999a..764ef168 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuild.java @@ -5,8 +5,8 @@ public class IslandBuild extends Island { public IslandBuild(final IslandService islandService, - final ArenaManager arenaManager, final int slot, - final String category) { + final ArenaManager arenaManager, final int slot, + final String category) { super(islandService, arenaManager, slot, category); } @@ -33,7 +33,7 @@ protected void update() { public Island toRegularIsland() { final Island island = new Island(islandService, super.arenaManager, this.getSlot(), - this.getCategory()); + this.getCategory()); island.selectSchematic(getSchematicName()); island.setAbsoluteLocation(getAbsoluteLocation()); return island; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java index 2dace5fb..c5fc7506 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/IslandBuilder.java @@ -10,14 +10,14 @@ public class IslandBuilder { private String schematic; private Location absoluteLocation; - public static IslandBuilder of() { - return new IslandBuilder(); - } - private IslandBuilder() { // prevent instantiation } + public static IslandBuilder of() { + return new IslandBuilder(); + } + public IslandBuilder setSlot(final int slot) { this.slot = slot; return this; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java index 221de308..c62677ad 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/land/IslandLand.java @@ -6,14 +6,10 @@ import com.sk89q.worldedit.extent.clipboard.Clipboard; import com.sk89q.worldedit.function.operation.Operation; import com.sk89q.worldedit.function.operation.Operations; -import io.tofpu.multiworldedit.ClipboardWrapper; -import io.tofpu.multiworldedit.EditSessionWrapper; -import io.tofpu.multiworldedit.MultiWorldEditAPI; -import io.tofpu.multiworldedit.RegionWrapper; -import io.tofpu.multiworldedit.VectorWrapper; +import io.tofpu.multiworldedit.*; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.island.object.GameIsland; +import io.tofpu.speedbridge2.model.island.object.Island; import io.tofpu.speedbridge2.model.support.worldedit.CuboidRegion; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; @@ -70,7 +66,7 @@ public IslandLand(final Island island, final World world, double[] positions) { public void generatePlot() throws WorldEditException { // TODO: Make this generation operation async BridgeUtil.debug("Generating plot at " + this.location.toString() + " for " + - "island " + this.island.getSlot()); + "island " + this.island.getSlot()); final BukkitWorld bukkitWorld = new BukkitWorld(world); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java index 7e0d4b23..dac5910a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetup.java @@ -152,7 +152,7 @@ private void resetPlot() { * Returns true if the player is not removed and has a player spawn point * * @return A boolean value. - */ + */ public boolean isReady() { return !isRemoved() && playerSpawnPoint != null; } @@ -195,7 +195,7 @@ private void resetState() { * Returns the UUID of the player that is currently editing the island * * @return The UUID of the player that is currently editing the island. - */ + */ public UUID getPlayerUid() { return player.getPlayerUid(); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java index c47b6add..ce42ad14 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupFactory.java @@ -15,8 +15,8 @@ public static void init(final IslandService islandService) { } public static IslandSetup create(final IslandSetupFactoryType type, - final Umbrella umbrella, - final BridgePlayer player + final Umbrella umbrella, + final BridgePlayer player , final Island island, final IslandLand islandLand) { Preconditions.checkNotNull(islandService, "IslandService is not initialized"); Preconditions.checkNotNull(umbrella, "Umbrella cannot be null"); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java index fff2c732..66b69dff 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/setup/IslandSetupHandler.java @@ -18,13 +18,12 @@ public final class IslandSetupHandler { private final Umbrella umbrella; private final Map islandSetupMap = new HashMap<>(); + private World world; private IslandSetupHandler() { this.umbrella = new IslandSetupUmbrella().getUmbrella(); } - private World world; - /** * This function is called when the plugin is loaded */ @@ -73,12 +72,12 @@ public IslandSetup findSetupBy(final UUID uuid) { return islandSetupMap.get(uuid); } - /** - * Remove the given island setup from the island setup map - * - * @param islandSetup The island setup that is being invalidated. - */ - public void invalidate(final IslandSetup islandSetup) { + /** + * Remove the given island setup from the island setup map + * + * @param islandSetup The island setup that is being invalidated. + */ + public void invalidate(final IslandSetup islandSetup) { islandSetupMap.remove(islandSetup.getPlayerUid()); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java index 173eb01e..d7fe8481 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/IslandBoard.java @@ -8,7 +8,10 @@ import org.bukkit.Bukkit; import org.bukkit.plugin.java.JavaPlugin; -import java.util.*; +import java.util.HashMap; +import java.util.Map; +import java.util.Queue; +import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentLinkedQueue; @@ -32,17 +35,17 @@ public static CompletableFuture loadAsync(final JavaPlugin javaPlugin) { Bukkit.getScheduler() .runTaskAsynchronously(javaPlugin, () -> { BridgeUtil.debug("IslandBoard#load(): loading the island's " + - "leaderboard"); + "leaderboard"); for (final Island island : ISLAND_QUEUE) { BridgeUtil.debug("IslandBoard#load(): Loading " + island.getSlot() + " leaderboard " + - "now!"); + "now!"); final Map boardMap = new HashMap<>(); try (final DatabaseQuery databaseQuery = DatabaseQuery.query( "SELECT * FROM scores WHERE island_slot = ? ORDER BY" + - " " + - "score " + "LIMIT 10 OFFSET 0")) { + " " + + "score " + "LIMIT 10 OFFSET 0")) { databaseQuery.setInt(island.getSlot()); final Map boardPlayerMap = @@ -66,7 +69,7 @@ public static CompletableFuture loadAsync(final JavaPlugin javaPlugin) { }); BridgeUtil.debug("IslandBoard#load(): Successfully loaded " + island.getSlot() + - " island leaderboard!"); + " island leaderboard!"); BridgeUtil.debug(String.valueOf(boardMap)); island.loadBoard(boardMap); } catch (Exception e) { @@ -79,7 +82,7 @@ public static CompletableFuture loadAsync(final JavaPlugin javaPlugin) { Bukkit.getScheduler() .runTaskTimerAsynchronously(javaPlugin, () -> { BridgeUtil.debug("IslandBoard#load(): Starting the leaderboard " + - "update process!"); + "update process!"); for (final Island island : ISLAND_QUEUE) { BridgeUtil.debug("IslandBoard#load(): Updating " + island.getSlot() + " now!"); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java index 0f97a969..28a5e4e9 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/LeaderboardMap.java @@ -2,8 +2,8 @@ import io.tofpu.speedbridge2.model.common.PlayerNameCache; import io.tofpu.speedbridge2.model.leaderboard.object.BoardPlayer; -import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; +import io.tofpu.speedbridge2.model.player.object.score.Score; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; @@ -85,7 +85,7 @@ public void updateLeaderboard() { * Otherwise, insert the player's best score to the temp board * * @param bridgePlayer The player who's score is being appended to the board. - * @param score the score that the player has achieved. + * @param score the score that the player has achieved. */ public void append(final BridgePlayer bridgePlayer, final Score score) { final Score previousScore = globalReference.get(bridgePlayer.getPlayerUid()); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java index a498660a..7b5041fd 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/BoardLoader.java @@ -8,6 +8,7 @@ public interface BoardLoader { T retrieve(final @NotNull UUID uniqueId); + CompletableFuture retrieveAsync(final @NotNull UUID uniqueId, - final @NotNull Executor executor); + final @NotNull Executor executor); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java index 55799def..661d5eb0 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/IslandLoader.java @@ -36,7 +36,7 @@ public IslandBoardPlayer retrieve(final @NotNull UUID uniqueId) { @Override public @NotNull CompletableFuture retrieveAsync(final @NotNull UUID key, - final @NotNull Executor executor) { + final @NotNull Executor executor) { BridgeUtil.debug("IslandLoader#retrieveAsync: retrieving " + key); return CompletableFuture.supplyAsync(() -> retrieve(key), executor); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java index bcee23fd..a66abe04 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/loader/PlayerPositionLoader.java @@ -8,8 +8,8 @@ import io.tofpu.speedbridge2.model.common.util.BridgeUtil; import io.tofpu.speedbridge2.model.leaderboard.object.BoardPlayer; import io.tofpu.speedbridge2.model.player.PlayerService; -import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; +import io.tofpu.speedbridge2.model.player.object.score.Score; import org.checkerframework.checker.nullness.qual.NonNull; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -22,7 +22,7 @@ public final class PlayerPositionLoader implements CacheLoader, BoardLoader { private static final String GLOBAL_POSITION = "SELECT DISTINCT 1 + COUNT(*) AS " + - "position FROM scores WHERE score < (SELECT score FROM scores WHERE uid = ?)"; + "position FROM scores WHERE score < (SELECT score FROM scores WHERE uid = ?)"; private final PlayerService playerService; @@ -61,7 +61,7 @@ public BoardPlayer retrieve(final @NotNull UUID uniqueId) { @Override public @NotNull CompletableFuture retrieveAsync(final @NotNull UUID key, - final @NotNull Executor executor) { + final @NotNull Executor executor) { return CompletableFuture.supplyAsync(() -> { BridgeUtil.debug("PersonalBoardLoader#retrieve(): key: " + key); try (final DatabaseQuery databaseQuery = DatabaseQuery.query(GLOBAL_POSITION)) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java index 7253f628..31349e78 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/leaderboard/object/IslandBoardPlayer.java @@ -16,8 +16,8 @@ public final class IslandBoardPlayer { private static final String ISLAND_POSITION = "SELECT 1 + COUNT(*) AS position FROM scores WHERE island_slot = ? AND " + - "score" + - " < " + "(SELECT score " + "FROM scores WHERE uid = ?)"; + "score" + + " < " + "(SELECT score " + "FROM scores WHERE uid = ?)"; private final PlayerService playerService; @@ -36,7 +36,7 @@ public IslandBoardPlayer(final PlayerService playerService, final UUID owner) { public @NotNull CompletableFuture retrieve(final int islandSlot) { BridgeUtil.debug("IslandBoardPlayer#retrieve(): Attempting to retrieve board " + - "for " + owner + ", " + islandSlot); + "for " + owner + ", " + islandSlot); final IslandBoard cachedValue = boardMap.get(islandSlot); // if the cached value is not null @@ -47,8 +47,8 @@ public IslandBoardPlayer(final PlayerService playerService, final UUID owner) { } BridgeUtil.debug("IslandBoardPlayer#retrieve(): Attempting to query to database" + - " for position for " + owner + - ", " + islandSlot); + " for position for " + owner + + ", " + islandSlot); try (final DatabaseQuery databaseQuery = DatabaseQuery.query(ISLAND_POSITION)) { databaseQuery.setInt(islandSlot); databaseQuery.setString(owner.toString()); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java index e35fadd5..80a51bfe 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerDatabase.java @@ -11,9 +11,9 @@ import io.tofpu.speedbridge2.model.player.exception.PlayerDeletionFailureException; import io.tofpu.speedbridge2.model.player.exception.PlayerLoadFailureException; import io.tofpu.speedbridge2.model.player.exception.PlayerUpdateNameFailureException; +import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.player.object.stat.PlayerStat; -import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import org.bukkit.Material; import org.jetbrains.annotations.NotNull; @@ -37,7 +37,7 @@ public PlayerDatabase() { completableFutures[0] = DatabaseUtil.databaseExecute( "INSERT OR IGNORE " + "INTO players VALUES (?, " + - "?)", databaseQuery -> { + "?)", databaseQuery -> { databaseQuery.setString(player.getPlayerUid() .toString()); databaseQuery.setString(player.getPlayer() diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java index 430f5ba9..a4ceea80 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerFactory.java @@ -35,7 +35,7 @@ public static BridgePlayer createDummy(final UUID uuid) { } public static BridgePlayer create(final PlayerFactoryType type, final String name, - final UUID uuid) { + final UUID uuid) { Preconditions.checkNotNull(name, "name cannot be null"); Preconditions.checkNotNull(uuid, "uuid cannot be null"); @@ -50,7 +50,7 @@ public static BridgePlayer create(final PlayerFactoryType type, final String nam } public static BridgePlayer create(final PlayerFactoryType type, - final UUID uuid) { + final UUID uuid) { Preconditions.checkNotNull(uuid, "uuid cannot be null"); switch (type) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java index e623240c..59e05bc1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerHandler.java @@ -77,11 +77,11 @@ public void remove(final UUID uniqueId) { * If the player is in the * database, update the name and refresh the player instance * - * @param name The name of the player. + * @param name The name of the player. * @param uniqueId The unique ID of the player. */ public void internalRefresh(final String name, - final UUID uniqueId) { + final UUID uniqueId) { final BridgePlayer bridgePlayer = getIfPresent(uniqueId); if (bridgePlayer == null) { loadAsync(uniqueId); @@ -99,11 +99,11 @@ public void internalRefresh(final String name, * If the player is online, update the name if it has changed and refresh the * player instance * - * @param player The live instance of the player. + * @param player The live instance of the player. * @param bridgePlayer The bridge player instance that is being refreshed. */ public void internalRefresh(final @NotNull Player player, - final @NotNull BridgePlayer bridgePlayer) { + final @NotNull BridgePlayer bridgePlayer) { final String name = player.getName(); if (!bridgePlayer.getName() .equals(name)) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java index 61ac0786..41f013be 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/PlayerService.java @@ -71,11 +71,11 @@ public void internalRefresh(final @NotNull Player player) { * If the player is online, update the name if it has changed and refresh the * player instance * - * @param player The live instance of the player. + * @param player The live instance of the player. * @param bridgePlayer The bridge player instance that is being refreshed. */ public void internalRefresh(final @NotNull Player player, - final @NotNull BridgePlayer bridgePlayer) { + final @NotNull BridgePlayer bridgePlayer) { playerHandler.internalRefresh(player, bridgePlayer); } @@ -118,7 +118,7 @@ public void shutdown() { } public void loadIfAbsent(final Player player, - final Consumer notAbsentConsumer) { + final Consumer notAbsentConsumer) { playerHandler.loadIfAbsent(player.getUniqueId(), notAbsentConsumer); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java index 9d03f692..62611007 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/exception/PlayerDatabaseExceptionWrapper.java @@ -4,7 +4,7 @@ public class PlayerDatabaseExceptionWrapper extends RuntimeException { public PlayerDatabaseExceptionWrapper(final String message, final UUID uniqueId, - final Throwable e) { + final Throwable e) { super(message + ": " + uniqueId.toString(), e); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java index 395c4ec4..a012811d 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/loader/PlayerLoader.java @@ -42,7 +42,7 @@ public BridgePlayer retrieve(final @NotNull UUID uniqueId) { try { BridgeUtil.debug("PlayerLoader#retrieve: Attempting to load " + uniqueId + - " player data!"); + " player data!"); bridgePlayer = retrieveAsync(uniqueId, PluginExecutor.INSTANCE).get(); } catch (InterruptedException | ExecutionException e) { @@ -56,17 +56,16 @@ public BridgePlayer retrieve(final @NotNull UUID uniqueId) { @Override public CompletableFuture retrieveAsync(final @NotNull UUID uniqueId, - final @NotNull Executor executor) { + final @NotNull Executor executor) { BridgeUtil.debug("attempting to load " + uniqueId + " player's data!"); return Databases.PLAYER_DATABASE.getStoredPlayer(uniqueId); } public static final class PlayerRemovalListener implements Expiry { + public static final PlayerRemovalListener INSTANCE = new PlayerRemovalListener(); private static final long EXPIRY_DURATION = TimeUnit.MINUTES.toNanos(5); private static final long INFINITE_DURATION = Long.MAX_VALUE; - public static final PlayerRemovalListener INSTANCE = new PlayerRemovalListener(); - private PlayerRemovalListener() { // prevent instantiation } @@ -78,11 +77,11 @@ public long expireAfterCreate(final UUID key, final BridgePlayer value, final lo @Override public long expireAfterUpdate(final UUID key, final BridgePlayer value, final long currentTime, - @NonNegative final long currentDuration) { + @NonNegative final long currentDuration) { final long elapse = Duration.ofNanos(currentDuration) .getSeconds(); BridgeUtil.debug("PlayerRemovalListener#expireAfterUpdate: Start: current " + - "duration is " + elapse + " seconds!"); + "duration is " + elapse + " seconds!"); if (value.getPlayer() == null) { BridgeUtil.debug("PlayerRemovalListener#expireAfterUpdate: Expiring " + key + " player data after " + elapse + " seconds!"); @@ -95,7 +94,7 @@ public long expireAfterUpdate(final UUID key, final BridgePlayer value, final lo @Override public long expireAfterRead(final UUID key, final BridgePlayer value, final long currentTime, - @NonNegative final long currentDuration) { + @NonNegative final long currentDuration) { final long elapse = Duration.ofNanos(currentDuration) .getSeconds(); BridgeUtil.debug("PlayerRemovalListener#expireAfterRead: Expiring " + key + " player data after " + elapse + " seconds!"); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java index 5b3d6d1e..916cac10 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/BridgePlayer.java @@ -19,12 +19,7 @@ import org.bukkit.inventory.ItemStack; import org.jetbrains.annotations.NotNull; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.Locale; -import java.util.Map; -import java.util.UUID; +import java.util.*; import java.util.concurrent.CompletableFuture; public class BridgePlayer extends CommonBridgePlayer implements SessionScore, BlockChoice, SetupMeta { @@ -44,39 +39,6 @@ public class BridgePlayer extends CommonBridgePlayer implements SessionS private Material chosenBlock; private boolean inSetup; - /** - * Create a new BridgePlayer object that is a copy of the given BridgePlayer - * - * @param copy The BridgePlayer to copy. - * @return A new BridgePlayer object. - */ - public static BridgePlayer of(final BridgePlayer copy) { - return new BridgePlayer(copy); - } - - /** - * Create a new BridgePlayer object with the given UUID - * - * @param playerUid The UUID of the player. - * @return A new BridgePlayer object. - */ - public static BridgePlayer of(final IslandService islandService, - final Leaderboard leaderboard, final UUID playerUid) { - return new BridgePlayer(islandService, leaderboard, playerUid); - } - - /** - * Create a new BridgePlayer object with the given name and playerUid - * - * @param name The name of the player. - * @param playerUid The UUID of the player. - * @return A new BridgePlayer object. - */ - public static BridgePlayer of(final IslandService islandService, - final Leaderboard leaderboard, final String name, final UUID playerUid) { - return new BridgePlayer(islandService, leaderboard, name, playerUid); - } - protected BridgePlayer(final BridgePlayer copy) { this(copy.islandService, copy.leaderboard, copy.getName(), copy.playerUid); this.scoreMap.putAll(copy.scoreMap); @@ -87,7 +49,7 @@ protected BridgePlayer(final BridgePlayer copy) { } protected BridgePlayer(final IslandService islandService, - final Leaderboard leaderboard, final UUID playerUid) { + final Leaderboard leaderboard, final UUID playerUid) { this(islandService, leaderboard, "null", playerUid); if (player != null) { @@ -115,17 +77,54 @@ protected BridgePlayer(final IslandService islandService, final Leaderboard lead this.inSetup = false; } + /** + * Create a new BridgePlayer object that is a copy of the given BridgePlayer + * + * @param copy The BridgePlayer to copy. + * @return A new BridgePlayer object. + */ + public static BridgePlayer of(final BridgePlayer copy) { + return new BridgePlayer(copy); + } + + /** + * Create a new BridgePlayer object with the given UUID + * + * @param playerUid The UUID of the player. + * @return A new BridgePlayer object. + */ + public static BridgePlayer of(final IslandService islandService, + final Leaderboard leaderboard, final UUID playerUid) { + return new BridgePlayer(islandService, leaderboard, playerUid); + } + + /** + * Create a new BridgePlayer object with the given name and playerUid + * + * @param name The name of the player. + * @param playerUid The UUID of the player. + * @return A new BridgePlayer object. + */ + public static BridgePlayer of(final IslandService islandService, + final Leaderboard leaderboard, final String name, final UUID playerUid) { + return new BridgePlayer(islandService, leaderboard, name, playerUid); + } + @Override public String getName() { return this.name; } + public void setName(final String name) { + this.name = name; + } + /** * If the score is lower than the current score, * then update the scoreMap and sessionMap * * @param islandSlot The slot of the island that the player is currently on. - * @param score the score to be set + * @param score the score to be set * @return The new score. */ public Score setScoreIfLower(final int islandSlot, final double score) { @@ -191,7 +190,7 @@ public Score setNewScore(final Score score) { * It sets the score of the given island slot to the given new score. * * @param islandSlot The island slot that the score is being set for. - * @param newScore The new score to set. + * @param newScore The new score to set. * @return the score */ public Score setNewScore(final int islandSlot, final double newScore) { @@ -276,10 +275,6 @@ public CompletableFuture resetStats() { return Databases.STATS_DATABASE.delete(getPlayerUid()); } - public void setGamePlayer(final GamePlayer gamePlayer) { - this.gamePlayer = gamePlayer; - } - public boolean isPlaying() { return gamePlayer != null; } @@ -318,6 +313,10 @@ public GamePlayer getGamePlayer() { return gamePlayer; } + public void setGamePlayer(final GamePlayer gamePlayer) { + this.gamePlayer = gamePlayer; + } + public void invalidatePlayer() { this.player = null; @@ -332,10 +331,6 @@ public void invalidatePlayer() { resetSessionScores(); } - public void setName(final String name) { - this.name = name; - } - public void internalRefresh(final UUID uniqueId) { this.player = Bukkit.getPlayer(uniqueId); this.name = player.getName(); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java index 1689829e..3cd848be 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/CommonBridgePlayer.java @@ -5,7 +5,7 @@ public class CommonBridgePlayer { public String getName() { throw new UnsupportedOperationException("getName have not been " + - "implemented."); + "implemented."); } public T getPlayer() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java index c6cf2618..4da11db5 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/DummyBridgePlayer.java @@ -6,13 +6,13 @@ import java.util.UUID; public class DummyBridgePlayer extends BridgePlayer { - public static DummyBridgePlayer of(final IslandService islandService, - final Leaderboard leaderboard, final UUID uniqueId) { - return new DummyBridgePlayer(islandService, leaderboard, uniqueId); - } - private DummyBridgePlayer(final IslandService islandService, - final Leaderboard leaderboard, final UUID uniqueId) { + final Leaderboard leaderboard, final UUID uniqueId) { super(islandService, leaderboard, uniqueId); } + + public static DummyBridgePlayer of(final IslandService islandService, + final Leaderboard leaderboard, final UUID uniqueId) { + return new DummyBridgePlayer(islandService, leaderboard, uniqueId); + } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java index f4aedf5e..f90e256d 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/GamePlayer.java @@ -7,7 +7,10 @@ import org.bukkit.Material; import org.bukkit.block.Block; -import java.util.*; +import java.util.ArrayList; +import java.util.Collection; +import java.util.Collections; +import java.util.List; public final class GamePlayer { private final BridgePlayer player; @@ -17,6 +20,11 @@ public final class GamePlayer { private GameIsland currentGame = null; private long timer = -1; + private GamePlayer(final BridgePlayer player) { + this.player = player; + this.blockLocations = new ArrayList<>(); + } + /** * It creates a new GamePlayer object for the given player. * @@ -27,15 +35,6 @@ public static GamePlayer of(final BridgePlayer player) { return new GamePlayer(player); } - private GamePlayer(final BridgePlayer player) { - this.player = player; - this.blockLocations = new ArrayList<>(); - } - - public void setCurrentGame(final GameIsland gameIsland) { - this.currentGame = gameIsland; - } - /** * Add a block to the list of blocks * @@ -62,12 +61,12 @@ public void resetBlocks() { for (final Location blockLocation : this.blockLocations) { final Block block = blockLocation.getBlock(); BridgeUtil.debug("GamePlayer(): Resetting " + block.getType() + " at " + block.getX() + - ", " + block.getY() + ", " + block.getZ() + " location!"); + ", " + block.getY() + ", " + block.getZ() + " location!"); block.setType(Material.AIR); } BridgeUtil.debug("GamePlayer(): Finished resetting the blocks! clearing the " + - "block locations " + - "immediately!"); + "block locations " + + "immediately!"); this.blockLocations.clear(); } @@ -98,12 +97,16 @@ public boolean isInQueue() { * Returns the current game * * @return The current game that is being played. - */ + */ public GameIsland getCurrentGame() { return currentGame; } - /** + public void setCurrentGame(final GameIsland gameIsland) { + this.currentGame = gameIsland; + } + + /** * Returns the player object associated with this bridge player * * @return The player object. diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java index 93bdb84a..030f7492 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockChoice.java @@ -10,6 +10,7 @@ public interface BlockChoice { * @return The material that was chosen by the user. */ Material getChoseMaterial(); + /** * Set the material of the object to the given material * diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java index c44c2c19..b6b3ebbe 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/block/BlockDatabase.java @@ -28,7 +28,7 @@ public CompletableFuture insert(final @NotNull BridgePlayer player) { public CompletableFuture update(final @NotNull BridgePlayer player) { return DatabaseUtil.databaseExecute("UPDATE blocks SET chosen_block = ? " + - "WHERE uid = ?", databaseQuery -> { + "WHERE uid = ?", databaseQuery -> { databaseQuery.setString(player.getChoseMaterial() .name()); databaseQuery.setString(player.getPlayerUid() diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java index 186935b7..17a80153 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/Score.java @@ -6,22 +6,22 @@ public final class Score implements Comparable { private final int scoredOn; private final double score; + private Score(final int scoredOn, final double score) { + this.scoredOn = scoredOn; + this.score = score; + } + /** * Create a new Score object with the given island slot and score * * @param islandSlot The island slot that the score is for. - * @param score The score of the island. + * @param score The score of the island. * @return A new instance of Score. */ public static Score of(final int islandSlot, final double score) { return new Score(islandSlot, score); } - private Score(final int scoredOn, final double score) { - this.scoredOn = scoredOn; - this.score = score; - } - /** * Returns the score of the game * diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java index c41b0374..125fac91 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/score/ScoreDatabase.java @@ -21,10 +21,10 @@ public ScoreDatabase() { } public @NotNull CompletableFuture insert(final @NotNull UUID uuid, - final @NotNull Score score) { + final @NotNull Score score) { return DatabaseUtil.databaseExecute( "INSERT OR IGNORE INTO scores (uid, island_slot, score) VALUES " + - "(?, ?, ?)", databaseQuery -> { + "(?, ?, ?)", databaseQuery -> { BridgeUtil.debug("player uid: " + uuid); databaseQuery.setString(uuid.toString()); @@ -38,9 +38,9 @@ public ScoreDatabase() { } public @NotNull CompletableFuture update(final @NotNull UUID uuid, - final @NotNull Score score) { + final @NotNull Score score) { return DatabaseUtil.databaseExecute("UPDATE scores SET island_slot = ?, " + - "score = ? WHERE uid = ?", databaseQuery -> { + "score = ? WHERE uid = ?", databaseQuery -> { BridgeUtil.debug("player uid: " + uuid); BridgeUtil.debug("player score island: " + score.getScoredOn()); @@ -78,7 +78,7 @@ public ScoreDatabase() { public CompletableFuture delete(final UUID uuid) { return PluginExecutor.runAsync(() -> { try (final DatabaseQuery query = DatabaseQuery.query("DELETE FROM scores " + - "WHERE uid = ?")) { + "WHERE uid = ?")) { query.setString(uuid.toString()); query.execute(); } catch (Exception e) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java index 78ca77d0..858220e5 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/session/SessionScore.java @@ -11,6 +11,7 @@ public interface SessionScore { * @return A collection of Score objects. */ Collection getSessionScores(); + /** * Reset the session scores for all users */ diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java index 193136a9..9e760eb0 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/setup/SetupMeta.java @@ -7,10 +7,12 @@ public interface SetupMeta { * @return A boolean value. */ boolean isInSetup(); + /** * Toggle the setup mode of the program */ void toggleSetup(); + /** * Reset the setup to the default values */ diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java index fa8ebfff..dfdebab0 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStat.java @@ -16,6 +16,7 @@ public interface PlayerStat { * @return The key of the current node. */ String getKey(); + /** * The function returns a string * diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java index edcc8c51..0875c7f8 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/PlayerStatType.java @@ -23,7 +23,7 @@ public static PlayerStat create(final UUID owner, final PlayerStatType playerSta } public static PlayerStatType match(final String statType) { - switch (statType.toUpperCase(Locale.ENGLISH)){ + switch (statType.toUpperCase(Locale.ENGLISH)) { case "TOTAL_WINS": return PlayerStatType.TOTAL_WINS; case "TOTAL_TRIES": diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java index d14429a8..e1e3227f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/player/object/stat/StatsDatabase.java @@ -25,7 +25,7 @@ public StatsDatabase() { public @NotNull CompletableFuture insert(final @NotNull PlayerStat playerStat) { return DatabaseUtil.databaseExecute( "INSERT OR IGNORE INTO stats (uid, key, value) VALUES " + - "(?, ?, ?)", databaseQuery -> { + "(?, ?, ?)", databaseQuery -> { databaseQuery.setString(playerStat.getOwner() .toString()); databaseQuery.setString(playerStat.getKey()); @@ -35,7 +35,7 @@ public StatsDatabase() { public @NotNull CompletableFuture update(final @NotNull PlayerStat playerStat) { return DatabaseUtil.databaseExecute("UPDATE stats SET value = ? WHERE " + - "uid = ? AND key = ?", databaseQuery -> { + "uid = ? AND key = ?", databaseQuery -> { databaseQuery.setString(playerStat.getValue()); databaseQuery.setString(playerStat.getOwner() @@ -50,21 +50,21 @@ public StatsDatabase() { try { DatabaseUtil.databaseExecute("SELECT * FROM stats WHERE uid = ?", databaseQuery -> { - databaseQuery.setString(owner.toString()); + databaseQuery.setString(owner.toString()); - databaseQuery.executeQuery(resultSet -> { - while (resultSet.next()) { - final PlayerStatType playerStatType = PlayerStatType.match(resultSet.getString("key")); + databaseQuery.executeQuery(resultSet -> { + while (resultSet.next()) { + final PlayerStatType playerStatType = PlayerStatType.match(resultSet.getString("key")); - if (playerStatType == null) { - continue; - } - final PlayerStat playerStat = PlayerStatType.create(owner, playerStatType, resultSet.getString("value")); - BridgeUtil.debug("found stat: " + playerStat); + if (playerStatType == null) { + continue; + } + final PlayerStat playerStat = PlayerStatType.create(owner, playerStatType, resultSet.getString("value")); + BridgeUtil.debug("found stat: " + playerStat); - playerStats.add(playerStat); - } - }); + playerStats.add(playerStat); + } + }); }) .get(); } catch (InterruptedException | ExecutionException e) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java index 32593d6c..1378b25d 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/PluginExpansion.java @@ -50,7 +50,7 @@ public boolean canRegister() { @Override public String onPlaceholderRequest(final Player player, - @NotNull final String params) { + @NotNull final String params) { if (player == null) { return ""; } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java index d0e68c08..f06b0b68 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/AbstractExpansion.java @@ -9,8 +9,11 @@ public AbstractExpansion() { } public abstract String getIdentifier(); + public abstract String getDefaultAction(final BridgePlayer bridgePlayer); + public abstract boolean passedRequirement(final BridgePlayer bridgePlayer, final String[] args); + public abstract String runAction(final BridgePlayer bridgePlayer, - final GamePlayer gamePlayer, final String[] args); + final GamePlayer gamePlayer, final String[] args); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java index 97090e85..7e90c102 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/BestScoreExpansion.java @@ -3,9 +3,9 @@ import io.tofpu.dynamicclass.meta.AutoRegister; import io.tofpu.speedbridge2.model.common.Message; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.GamePlayer; +import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.support.placeholderapi.expansion.AbstractExpansion; @AutoRegister diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java index 5da75bab..e4059e88 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/IslandSlotExpansion.java @@ -25,7 +25,7 @@ public boolean passedRequirement(final BridgePlayer bridgePlayer, final String[] @Override public String runAction(final BridgePlayer bridgePlayer, - final GamePlayer gamePlayer, final String[] args) { + final GamePlayer gamePlayer, final String[] args) { final GameIsland currentGame = bridgePlayer.getCurrentGame(); if (currentGame == null) { return ""; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java index 16962adf..d89afbc1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java @@ -4,13 +4,13 @@ import io.tofpu.speedbridge2.model.common.Message; import io.tofpu.speedbridge2.model.common.config.manager.ConfigurationManager; import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.leaderboard.Leaderboard; -import io.tofpu.speedbridge2.model.leaderboard.object.BoardPlayer; import io.tofpu.speedbridge2.model.island.IslandService; import io.tofpu.speedbridge2.model.island.object.Island; -import io.tofpu.speedbridge2.model.player.object.score.Score; +import io.tofpu.speedbridge2.model.leaderboard.Leaderboard; +import io.tofpu.speedbridge2.model.leaderboard.object.BoardPlayer; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.GamePlayer; +import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.model.support.placeholderapi.expansion.AbstractExpansion; @AutoRegister @@ -35,14 +35,14 @@ public String getDefaultAction(final BridgePlayer bridgePlayer) { @Override public boolean passedRequirement(final BridgePlayer bridgePlayer, - final String[] args) { + final String[] args) { // this placeholder requires four arguments return args.length == 3; } @Override public String runAction(final BridgePlayer bridgePlayer, - final GamePlayer gamePlayer, final String[] args) { + final GamePlayer gamePlayer, final String[] args) { final int position = parse(args, 2); if (position == -1) { return "Invalid Placeholder"; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java index 4a0677ee..aa2d6f3a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/PositionExpansion.java @@ -38,7 +38,7 @@ public boolean passedRequirement(final BridgePlayer bridgePlayer, final String[] @Override public String runAction(final BridgePlayer bridgePlayer, - final GamePlayer gamePlayer, final String[] args) { + final GamePlayer gamePlayer, final String[] args) { if (args.length == 2) { // returns island-based position return getIslandPosition(bridgePlayer, args); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java index be018025..7ddf9f8a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TimerExpansion.java @@ -27,7 +27,7 @@ public boolean passedRequirement(final BridgePlayer bridgePlayer, final String[] @Override public String runAction(final BridgePlayer bridgePlayer, - final GamePlayer gamePlayer, final String[] args) { + final GamePlayer gamePlayer, final String[] args) { return BridgeUtil.formatNumber(BridgeUtil.nanoToSeconds(gamePlayer.getTimer())); } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java index 2b2b8f7a..a0320fd0 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/TotalStatsExpansion.java @@ -1,8 +1,8 @@ package io.tofpu.speedbridge2.model.support.placeholderapi.expansion.expansions; -import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.GamePlayer; +import io.tofpu.speedbridge2.model.player.object.stat.PlayerStatType; import io.tofpu.speedbridge2.model.support.placeholderapi.expansion.AbstractExpansion; public final class TotalStatsExpansion extends AbstractExpansion { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java index 0fee5742..3a469e25 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/worldedit/CuboidRegion.java @@ -40,6 +40,6 @@ public boolean contains(final Vector vector) { final double z = vector.getZ(); return x >= minVector.getX() && x <= maxVector.getX() && y >= minVector.getY() && - y <= maxVector.getY() && z >= minVector.getZ() && z <= maxVector.getZ(); + y <= maxVector.getY() && z >= minVector.getZ() && z <= maxVector.getZ(); } } From 0dca31eeac2267ba0e7ab51be8dc95cdb2a5dcec Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 07:27:07 +0200 Subject: [PATCH 43/71] Prevent player from crafting while in a game --- .../listener/island/IslandRegionListener.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java index be4d54cb..4a0ea73a 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/island/IslandRegionListener.java @@ -9,6 +9,8 @@ import io.tofpu.speedbridge2.model.support.worldedit.Vector; import org.bukkit.Location; import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.inventory.CraftItemEvent; import org.bukkit.event.player.PlayerChangedWorldEvent; import org.bukkit.event.player.PlayerMoveEvent; import org.jetbrains.annotations.NotNull; @@ -64,4 +66,15 @@ private void onPlayerMove(final @NotNull PlayerMoveEvent event) { currentGame.resetGame(); } } + + @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true) + private void onCraft(CraftItemEvent event) { + final BridgePlayer bridgePlayer = playerService.getIfPresent(event.getWhoClicked() + .getUniqueId()); + if (bridgePlayer == null || !bridgePlayer.isPlaying()) { + return; + } + + event.setCancelled(true); + } } From 25807b1c46b8ca04cbf0f51305d07f0092edf021 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 10:46:53 +0200 Subject: [PATCH 44/71] Add optional target argument to a couple of commands Introduces optional target argument to the following commands (addresses #39): - `sb join [target]` - `sb leave [target]` - `sb score [target]` - `sb randomjoin [target]` --- .gitignore | 1 + .../speedbridge2/command/CommandManager.java | 6 +- .../annotation/OptionalPermission.java | 47 +++++++++++ .../command/context/GameIslandContext.java | 32 +++++++- .../subcommand/SpeedBridgeCommand.java | 78 +++++++++++++------ .../speedbridge2/model/common/Message.java | 11 ++- .../model/island/object/EmptyIsland.java | 47 ----------- .../model/island/object/GameIsland.java | 4 +- .../model/island/object/Island.java | 11 +-- 9 files changed, 150 insertions(+), 87 deletions(-) create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/OptionalPermission.java delete mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java diff --git a/.gitignore b/.gitignore index 2c995164..f1858821 100644 --- a/.gitignore +++ b/.gitignore @@ -111,6 +111,7 @@ buildNumber.properties # Common working directory run/ +run-*/ demo dep.txt memory diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java index df35b993..d1a79b75 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java @@ -3,6 +3,7 @@ import io.tofpu.dynamicclass.DynamicClass; import io.tofpu.speedbridge2.command.condition.AbstractCommandConditionWrapper; import io.tofpu.speedbridge2.command.condition.LampConditionRegistry; +import io.tofpu.speedbridge2.command.condition.annotation.OptionalPermission; import io.tofpu.speedbridge2.command.context.AbstractLampContext; import io.tofpu.speedbridge2.command.context.LampContextRegistry; import io.tofpu.speedbridge2.command.parser.AbstractLampParser; @@ -85,6 +86,9 @@ public boolean isCustomType(final Class type) { constructTabCompleter(islandService); constructCommandConditions(); + commandHandler.registerAnnotationReplacer(OptionalPermission.class, OptionalPermission.AnnotationReplacerImpl.INSTANCE); + commandHandler.registerPermissionReader(OptionalPermission.PermissionReaderImpl.INSTANCE); + commandHandler.register(new SpeedBridgeCommand(playerService, islandService)); commandHandler.register(new SpeedBridgeDebugCommand(arenaManager)); } @@ -95,7 +99,7 @@ private static void constructTabCompleter(final @NotNull IslandService islandSer CommandCompletion commandCompletion = new CommandCompletion(islandService); commandHandler.getAutoCompleter().registerParameterSuggestions(Island.class, commandCompletion::islands); commandHandler.getAutoCompleter().registerParameterSuggestions(Material.class, commandCompletion::materials); - commandHandler.getAutoCompleter().registerSuggestion("players", commandCompletion::players); + commandHandler.getAutoCompleter().registerParameterSuggestions(BridgePlayer.class, commandCompletion::players); } private static void constructContext() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/OptionalPermission.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/OptionalPermission.java new file mode 100644 index 00000000..71204b05 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/condition/annotation/OptionalPermission.java @@ -0,0 +1,47 @@ +package io.tofpu.speedbridge2.command.condition.annotation; + +import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; +import revxrsal.commands.annotation.Optional; +import revxrsal.commands.annotation.dynamic.AnnotationReplacer; +import revxrsal.commands.annotation.dynamic.Annotations; +import revxrsal.commands.bukkit.BukkitCommandActor; +import revxrsal.commands.command.CommandPermission; +import revxrsal.commands.command.trait.CommandAnnotationHolder; +import revxrsal.commands.process.PermissionReader; + +import java.lang.annotation.*; +import java.lang.reflect.AnnotatedElement; +import java.util.Collection; + +import static revxrsal.commands.util.Collections.linkedListOf; + +@Target(ElementType.PARAMETER) +@Retention(RetentionPolicy.RUNTIME) +public @interface OptionalPermission { + String value(); + + enum AnnotationReplacerImpl implements AnnotationReplacer { + INSTANCE; + + @Override + public Collection replaceAnnotations(@NotNull AnnotatedElement element, @NotNull OptionalPermission annotation) { + Optional optional = Annotations.create(Optional.class); + return linkedListOf(optional, annotation); + } + } + + enum PermissionReaderImpl implements PermissionReader { + INSTANCE { + @Override + public @Nullable CommandPermission getPermission(@NotNull CommandAnnotationHolder command) { + OptionalPermission annotation = command.getAnnotation(OptionalPermission.class); + if (annotation == null) return null; + return actor -> { + BukkitCommandActor playerActor = (BukkitCommandActor) actor; + return playerActor.requirePlayer().hasPermission(annotation.value()); + }; + } + } + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java index 86c9f56a..d19f073c 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java @@ -5,9 +5,13 @@ import io.tofpu.speedbridge2.model.island.object.GameIsland; import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; +import org.jetbrains.annotations.Nullable; import revxrsal.commands.exception.CommandErrorException; import revxrsal.commands.process.ContextResolver; +import java.lang.reflect.Parameter; +import java.util.Arrays; + import static io.tofpu.speedbridge2.model.common.Message.INSTANCE; @AutoRegister @@ -22,14 +26,36 @@ public GameIslandContext(final LampContextRegistry registry, final PlayerService @Override public GameIsland resolve(final ContextResolver.ContextResolverContext context) { final BridgePlayer player = playerService.getIfPresent(context.actor().getUniqueId()); - if (player == null) { + Parameter javaParameter = context.parameter().getJavaParameter(); + boolean canBeNull = javaParameter.isAnnotationPresent(Nullable.class) || context.parameter().isOptional(); + if (!canBeNull) { + System.out.println("list of annotations: " + Arrays.toString(javaParameter.getAnnotations())); + System.out.println("list of annotations types: " + javaParameter.getAnnotatedType()); + System.out.println("list of declared annotations: " + Arrays.toString(javaParameter.getDeclaredAnnotations())); + System.out.println("alternative: " + context.command().hasAnnotation(Nullable.class)); + System.out.println("alternative: " + context.command().getParameters().stream().anyMatch(commandParameter -> { + boolean result = commandParameter.hasAnnotation(Nullable.class); + if (result) { + System.out.println(commandParameter + " has nullable annotation"); + } + return result; + })); + } +// context.parameter().getJavaParameter(). + System.out.println(String.format("GameIslandContext: %s can be null? %s", context.actor().getName(), canBeNull)); + + if (player == null && canBeNull) { + return null; + } else if (player == null) { throw new CommandErrorException(BridgeUtil.miniMessageToLegacy(INSTANCE.notLoaded)); } + final GameIsland currentGame = player.getCurrentGame(); - if (currentGame == null) { + if (currentGame == null && canBeNull) { + return null; + } else if (currentGame == null) { throw new CommandErrorException(BridgeUtil.miniMessageToLegacy(INSTANCE.notInAIsland)); } - return currentGame; } } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 1c20768d..18f1fe5e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -1,10 +1,7 @@ package io.tofpu.speedbridge2.command.subcommand; import io.tofpu.speedbridge2.command.NameAndUUID; -import io.tofpu.speedbridge2.command.condition.annotation.MaterialType; -import io.tofpu.speedbridge2.command.condition.annotation.RestrictConsole; -import io.tofpu.speedbridge2.command.condition.annotation.RestrictDummyModel; -import io.tofpu.speedbridge2.command.condition.annotation.RestrictSetup; +import io.tofpu.speedbridge2.command.condition.annotation.*; import io.tofpu.speedbridge2.command.parser.annotation.PlayerUUID; import io.tofpu.speedbridge2.model.blockmenu.BlockMenuManager; import io.tofpu.speedbridge2.model.common.Message; @@ -36,7 +33,7 @@ import java.util.ArrayList; import java.util.List; -import java.util.Optional; +import java.util.Objects; import java.util.UUID; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ThreadLocalRandom; @@ -88,7 +85,7 @@ public void onLobbySet(final BridgePlayer bridgePlayer) { @RestrictDummyModel @RestrictConsole public String onIslandCreate(final BridgePlayer player, final int slot, final String schematic, - @revxrsal.commands.annotation.Optional @Flag("c") String category) { + @Optional @Flag("c") String category) { if (!isGeneralSetupComplete(player)) { return ""; } @@ -162,10 +159,9 @@ public void onPlayerReset(final CommonBridgePlayer sender, final @PlayerUUID @Usage("modify [-c category|-s schematic]") @Description("Modify an island properties") @CommandPermission("speedbridge.island.modify") - public String onIslandSelect(final Island island, final @revxrsal.commands.annotation.Optional - @Flag(value = "c") @Default("") - String category, final @revxrsal.commands.annotation.Optional - @Flag(value = "s") @Default("") String schematic) { + public String onIslandSelect(final Island island, + final @Optional @Flag(value = "c") @Default("") String category, + final @Optional @Flag(value = "s") @Default("") String schematic) { final int slot = island.getSlot(); if (!category.isEmpty()) { @@ -214,38 +210,70 @@ private boolean isGeneralSetupComplete(final BridgePlayer bridgePlayer) { @Description("Join an island") @RestrictDummyModel @RestrictConsole - public String onIslandJoin(final BridgePlayer bridgePlayer, final Island island) { - if (!isGeneralSetupComplete(bridgePlayer)) { + public String onIslandJoin(final BridgePlayer sender, final Island island, @OptionalPermission("sb.join.other") BridgePlayer target) { + if (!isGeneralSetupComplete(sender)) { return ""; } - if (bridgePlayer.isPlaying()) { + if (target == null && sender.isPlaying()) { return INSTANCE.alreadyInAIsland; + } else if (target != null && target.isPlaying()) { + return String.format(INSTANCE.otherIsAlreadyInAIsland, target.getName()); } if (!island.isReady()) { return String.format(INSTANCE.invalidIsland, island.getSlot()); } - island.join(bridgePlayer); - return String.format(INSTANCE.joinedAnIsland, island.getSlot() + ""); + if (target == null) { + island.join(sender); + return String.format(INSTANCE.joinedAnIsland, island.getSlot()); + } + + island.join(target); + return String.format(INSTANCE.otherJoinedAnIsland, target.getName(), island.getSlot()); } @Command({"sb leave", "speedbridge leave", "leave"}) @Description("Leave an island") - public void onIslandLeave(final GameIsland gameIsland) { - gameIsland.stopGame(); + public String onIslandLeave(final BridgePlayer sender, + final @Optional GameIsland senderGame, + @OptionalPermission("sb.leave.other") BridgePlayer target) { + if (Objects.equals(sender, target)) { + target = null; + } + + System.out.println("onIslandLeave command called"); + if (senderGame == null && target == null) { + return String.format(INSTANCE.notInAIsland); + } else if (target == null) { + senderGame.stopGame(); + return ""; // handled by method + } + + GameIsland targetGame = target.getCurrentGame(); + int slot = targetGame == null ? -1 : targetGame.getIsland().getSlot(); + if (targetGame == null || !targetGame.stopGame()) { + return String.format(INSTANCE.otherNotInAIsland, target.getName(), slot); + } + return String.format(INSTANCE.otherLeftTheIsland, target.getName(), slot); } @Command({"sb score", "speedbridge score", "score"}) @Description("Shows a list of your scores") @RestrictConsole - public String onScore(final BridgePlayer bridgePlayer) { + public String onScore(final BridgePlayer sender, + @OptionalPermission("sb.score.other") BridgePlayer target) { + boolean isSender = target == null; + if (isSender) { + target = sender; + } + final List scoreList = new ArrayList<>(); - for (final Score score : bridgePlayer.getScores()) { + for (final Score score : target.getScores()) { if (scoreList.isEmpty()) { - scoreList.add(INSTANCE.scoreTitle); + scoreList.add(isSender ? INSTANCE.scoreTitle : String.format(INSTANCE.otherScoreTitle, target.getName())); } scoreList.add(String.format(FORMATTED_SCORE, score.getScoredOn(), BridgeUtil.formatNumber(score.getScore()))); @@ -334,7 +362,7 @@ public void onHelpCommand(final CommonBridgePlayer bridgePlayer) { @AutoComplete("@players") public String onRandomJoin( final BridgePlayer sender, - @revxrsal.commands.annotation.Optional final BridgePlayer target) { + @OptionalPermission("sb.randomjoin.other") final BridgePlayer target) { if (!isGeneralSetupComplete(sender)) { return ""; } @@ -343,7 +371,7 @@ public String onRandomJoin( return INSTANCE.alreadyInAIsland; } - final Optional optionalIsland = getRandomIsland(); + final java.util.Optional optionalIsland = getRandomIsland(); if (!optionalIsland.isPresent()) { return INSTANCE.noAvailableIsland; @@ -360,7 +388,7 @@ public String onRandomJoin( } @NotNull - private Optional getRandomIsland() { + private java.util.Optional getRandomIsland() { final List filteredIslands = islandService.getAllIslands() .stream() .parallel() @@ -368,11 +396,11 @@ private Optional getRandomIsland() { .collect(Collectors.toList()); if (filteredIslands.isEmpty()) { - return Optional.empty(); + return java.util.Optional.empty(); } int randomIndex = ThreadLocalRandom.current().nextInt(filteredIslands.size()); - return Optional.ofNullable(filteredIslands.get(randomIndex)); + return java.util.Optional.ofNullable(filteredIslands.get(randomIndex)); } @Subcommand("setup") diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java index 2bcb949f..b6a15427 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/Message.java @@ -6,10 +6,7 @@ import java.io.File; import java.lang.reflect.Field; import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.concurrent.CompletableFuture; import java.util.concurrent.ConcurrentHashMap; @@ -58,10 +55,14 @@ public final class Message { public final String scoreTitle = "" + SCORE_TITLE_BAR + " YOUR SCORES" + " " + SCORE_TITLE_BAR; + public final String otherScoreTitle = "" + SCORE_TITLE_BAR + " %s SCORES" + " " + + SCORE_TITLE_BAR; public final String joinedAnIsland = SUCCESS + "You're now on island %s!"; public final String otherJoinedAnIsland = SUCCESS + "Player %s is now on island %s!"; public final String leftAnIsland = SUCCESS + "You left from island" + " %s!"; public final String notInAIsland = error + "You're not on an island!"; + public final String otherNotInAIsland = error + "Player % is not on an island!"; public final String deletedAnIsland = SUCCESS + "Island %s has been deleted!"; public final String emptySelect = error + "You haven't modified anything..."; public final String reloaded = SUCCESS + "The config has been reloaded!"; @@ -111,6 +112,8 @@ public final class Message { public final String blockTypeMustBeSolid = error + "%s must be a solid block to be selectable!"; public final String invalidMaterial = error + "Invalid material: %s"; public final String blockAlreadySelected = error + "Player %s has already selected material %s!"; + public final String otherIsAlreadyInAIsland = error + "Player % is already in an island"; + public final String otherLeftTheIsland = error + "Player % left from island %s!"; private static String runCommand(final String command) { return "Click to run " + diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java deleted file mode 100644 index 9c10c750..00000000 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/EmptyIsland.java +++ /dev/null @@ -1,47 +0,0 @@ -package io.tofpu.speedbridge2.model.island.object; - -import io.tofpu.speedbridge2.model.common.Message; -import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.player.object.BridgePlayer; -import io.tofpu.speedbridge2.model.player.object.GamePlayer; -import org.jetbrains.annotations.NotNull; - -import java.util.AbstractMap; -import java.util.Map; - -public class EmptyIsland extends Island { - public EmptyIsland() { - super(null, null, -1, "null"); - } - - @Override - public Map.Entry join(final BridgePlayer player) { - return new AbstractMap.SimpleImmutableEntry<>(null, null); - } - - @Override - public void leaveGame(final BridgePlayer bridgePlayer) { - BridgeUtil.sendMessage(bridgePlayer.getPlayer(), - Message.INSTANCE.notInAIsland); - } - - @Override - public GameIsland findGameByPlayer(final GamePlayer gamePlayer) { - return null; - } - - @Override - public void delete() { - // does nothing - } - - @Override - public void setCategory(final String anotherCategory) { - // does nothing - } - - @Override - public boolean selectSchematic(final @NotNull String schematicName) { - return false; - } -} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java index 114c6096..7bda235f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java @@ -147,8 +147,8 @@ public IslandLand getIslandPlot() { return islandLand; } - public void stopGame() { - getIsland().leaveGame(getGamePlayer().getBridgePlayer()); + public boolean stopGame() { + return getIsland().leaveGame(getGamePlayer().getBridgePlayer()); } public void abortGame() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java index 95d032ba..1c9ede46 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/Island.java @@ -99,8 +99,8 @@ public Map.Entry join(final BridgePlayer player) { return new AbstractMap.SimpleImmutableEntry<>(gamePlayer, gameIsland); } - public void leaveGame(final BridgePlayer bridgePlayer) { - leaveGame(bridgePlayer, true); + public boolean leaveGame(final BridgePlayer bridgePlayer) { + return leaveGame(bridgePlayer, true); } /** @@ -109,15 +109,15 @@ public void leaveGame(final BridgePlayer bridgePlayer) { * * @param bridgePlayer The bridge player that is leaving the game island. */ - public void leaveGame(final BridgePlayer bridgePlayer, final boolean clearInventory) { + public boolean leaveGame(final BridgePlayer bridgePlayer, final boolean clearInventory) { final GamePlayer gamePlayer = bridgePlayer.getGamePlayer(); if (gamePlayer == null) { - return; + return false; } final GameIsland gameIsland = this.islandMap.remove(gamePlayer); if (gameIsland == null) { - return; + return false; } final Player player = bridgePlayer.getPlayer(); @@ -131,6 +131,7 @@ public void leaveGame(final BridgePlayer bridgePlayer, final boolean clearInvent // reset the game island gameIsland.remove(); + return true; } public void abortGame(BridgePlayer bridgePlayer) { From 156ddba214a9097089727b7154df4a8e71b03d7a Mon Sep 17 00:00:00 2001 From: Tofpu Date: Thu, 18 Apr 2024 01:00:33 +0200 Subject: [PATCH 45/71] Remove debug console logs --- .../command/context/GameIslandContext.java | 15 ------- .../command/parser/MaterialParser.java | 1 - .../util/material/MultiMaterial.java | 45 ------------------- 3 files changed, 61 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java index d19f073c..5c6c1bc9 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java @@ -28,21 +28,6 @@ public GameIsland resolve(final ContextResolver.ContextResolverContext context) final BridgePlayer player = playerService.getIfPresent(context.actor().getUniqueId()); Parameter javaParameter = context.parameter().getJavaParameter(); boolean canBeNull = javaParameter.isAnnotationPresent(Nullable.class) || context.parameter().isOptional(); - if (!canBeNull) { - System.out.println("list of annotations: " + Arrays.toString(javaParameter.getAnnotations())); - System.out.println("list of annotations types: " + javaParameter.getAnnotatedType()); - System.out.println("list of declared annotations: " + Arrays.toString(javaParameter.getDeclaredAnnotations())); - System.out.println("alternative: " + context.command().hasAnnotation(Nullable.class)); - System.out.println("alternative: " + context.command().getParameters().stream().anyMatch(commandParameter -> { - boolean result = commandParameter.hasAnnotation(Nullable.class); - if (result) { - System.out.println(commandParameter + " has nullable annotation"); - } - return result; - })); - } -// context.parameter().getJavaParameter(). - System.out.println(String.format("GameIslandContext: %s can be null? %s", context.actor().getName(), canBeNull)); if (player == null && canBeNull) { return null; diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java index ab45d13f..9a96eca9 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/parser/MaterialParser.java @@ -16,7 +16,6 @@ public MaterialParser(LampParseRegistry registry) { @Override Material parse(ValueResolver.ValueResolverContext context) { - System.out.println("MaterialParser#parse called"); String materialName = context.pop(); try { return MultiMaterial.getOrThrow(materialName); diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java index 5e6c69b1..806328e1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java @@ -54,49 +54,4 @@ public static Collection materials(MaterialCategory category) { throw new RuntimeException(String.format("Unknown material category: %s", category)); } } - -// final static class MaterialResolvers { -// static final MaterialResolver BUKKIT_MATERIAL_RESOLVER = new BukkitMaterialResolver(); -// static final MaterialResolver XMATERIAL_MATERIAL_RESOLVER = new XMaterialResolver(); -// static final MaterialResolver EMPTY_RESOLVER = new EmptyResolver(); -// } -// -// static class XMaterialResolver extends MaterialResolver { -// @Override -// Material resolve(String name) { -// return XMaterial.matchXMaterial(name).orElseThrow(() -> new IllegalArgumentException("Unknown material: %s")).parseMaterial(); -// } -// } -// -// static class BukkitMaterialResolver extends MaterialResolver { -// @Override -// Material resolve(String name) { -// Material material = Material.matchMaterial(name); -// if (material == null) { -// throwException(name); -// } -// return material; -// } -// } -// -// static class EmptyResolver extends MaterialResolver { -// -// @Override -// Material resolve(String name) { -// throwException(name); -// return null; -// } -// } -// -// abstract static class MaterialResolver { -// abstract Material resolve(String name); -// -// void throwException(String name) throws RuntimeException { -// throw getException(name); -// } -// -// RuntimeException getException(String name) { -// return new IllegalArgumentException("Unknown material: %s"); -// } -// } } From d9f64d7ed4c2b86cd8486fab6142050d9da7aed1 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Sun, 21 Apr 2024 08:13:28 +0200 Subject: [PATCH 46/71] Change `setup` to `setup create` for creating setups to make other setup-related commands usable --- .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 18f1fe5e..ca115ffa 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -403,7 +403,7 @@ private java.util.Optional getRandomIsland() { return java.util.Optional.ofNullable(filteredIslands.get(randomIndex)); } - @Subcommand("setup") + @Subcommand("setup create") @Description("Create an island setup") @CommandPermission("speedbridge.setup.admin") @RestrictDummyModel From 7d3474a4a11b7630881cc91aa4e6778358659092 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Mon, 6 May 2024 23:40:21 +0300 Subject: [PATCH 47/71] Lock `sb randomjoin` behind a permission node Solves the #46 issue --- .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index ca115ffa..3a4fa0a2 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -360,6 +360,7 @@ public void onHelpCommand(final CommonBridgePlayer bridgePlayer) { @RestrictDummyModel @RestrictConsole @AutoComplete("@players") + @CommandPermission("sb.randomjoin") public String onRandomJoin( final BridgePlayer sender, @OptionalPermission("sb.randomjoin.other") final BridgePlayer target) { From 3da99ee583adcb60f100b080876a222d137a6bf3 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Mon, 6 May 2024 23:41:02 +0300 Subject: [PATCH 48/71] Lock `sb islands` behind a permission node Solves the #45 issue --- .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 1 + 1 file changed, 1 insertion(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 3a4fa0a2..1245247e 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -296,6 +296,7 @@ public void chooseBlock(final BridgePlayer bridgePlayer) { } @Command({"sb islands", "speedbridge islands", "islands"}) + @CommandPermission("sb.islands") public String showIslands() { final MessagePresenterHolderImpl holder = new MessagePresenterHolderImpl( "List of Islands"); From 0be3ece8181896ac3394f16723b01761181b20d4 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Tue, 7 May 2024 00:03:03 +0300 Subject: [PATCH 49/71] Change `sb admin set selectedBlockType` to `sb player set block` --- .../subcommand/SpeedBridgeCommand.java | 35 ++++++++++--------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 1245247e..e6cb51e1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -127,6 +127,24 @@ public String onIslandDelete(final Island target) { return String.format(INSTANCE.deletedAnIsland, target.getSlot()); } + @Subcommand("player set block") + @Description("Changes the selected block type for a specified player") + @CommandPermission("speedbridge.player.set.block") + @AutoComplete("* @players") + @Usage(" ") + public String setSelectedBlockType(final @MaterialType(category = MaterialCategory.BLOCK) Material material, final BridgePlayer target) { + if (!material.isSolid()) { + return String.format(INSTANCE.blockTypeMustBeSolid, material); + } + + if (target.getChoseMaterial() == material) { + return String.format(INSTANCE.blockAlreadySelected, target.getName(), material); + } + + target.setChosenMaterial(material); + return String.format(INSTANCE.setChosenType, target.getName(), material); + } + @Subcommand("reset") @Usage("reset ") @Description("Resets player properties") @@ -477,23 +495,6 @@ public String cancelSetup(final BridgePlayer bridgePlayer) { return INSTANCE.setupCancelled; } - @Subcommand("admin set selectedBlockType") - @Description("Changes the selected block type for a specified player") - @CommandPermission("speedbridge.admin.set.selectedBlockType") - @AutoComplete("* @players") - public String setSelectedBlockType(final @MaterialType(category = MaterialCategory.BLOCK) Material material, final BridgePlayer target) { - if (!material.isSolid()) { - return String.format(INSTANCE.blockTypeMustBeSolid, material); - } - - if (target.getChoseMaterial() == material) { - return String.format(INSTANCE.blockAlreadySelected, target.getName(), material); - } - - target.setChosenMaterial(material); - return String.format(INSTANCE.setChosenType, target.getName(), material); - } - private String hover(final String hoverContent, final String content) { return "" + content; } From ac05aa7d3d29094f4ba4942889bcfa563509eac2 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Tue, 7 May 2024 00:03:24 +0300 Subject: [PATCH 50/71] Change `sb reset ` to `sb player reset ` --- .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index e6cb51e1..93c953c0 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -145,8 +145,8 @@ public String setSelectedBlockType(final @MaterialType(category = MaterialCatego return String.format(INSTANCE.setChosenType, target.getName(), material); } - @Subcommand("reset") - @Usage("reset ") + @Subcommand("player reset") + @Usage(" ") @Description("Resets player properties") @CommandPermission("speedbridge.player.reset") @AutoComplete("@players *") From df0665b462087ea6af84a46cfb89c709464e4e31 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Fri, 24 May 2024 23:46:21 +0300 Subject: [PATCH 51/71] Overhaul the help system to be more descriptive --- .../io/tofpu/speedbridge2/SpeedBridge.java | 4 - .../speedbridge2/command/CommandManager.java | 9 +- .../command/help/HelpGenerator.java | 43 ++++++ .../command/help/HelpMessageProvider.java | 7 + .../command/help/ParentCommand.java | 29 ++++ .../help/collector/CommandCollector.java | 99 ++++++++++++ .../command/help/collector/CommandInfo.java | 41 +++++ .../help/collector/TreeCommandNode.java | 30 ++++ .../command/help/collector/TreeNode.java | 49 ++++++ .../help/styler/HelpMessageStyler.java | 64 ++++++++ .../subcommand/HelpCommandGenerator.java | 121 --------------- .../subcommand/SpeedBridgeCommand.java | 141 ++++++++++-------- 12 files changed, 450 insertions(+), 187 deletions(-) create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/help/HelpGenerator.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/help/HelpMessageProvider.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/help/ParentCommand.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/CommandCollector.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/CommandInfo.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/TreeCommandNode.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/TreeNode.java create mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/help/styler/HelpMessageStyler.java delete mode 100644 spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java b/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java index 4b6ff30c..b09e7a2f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java @@ -3,7 +3,6 @@ import io.tofpu.dynamicclass.DynamicClass; import io.tofpu.multiworldedit.MultiWorldEditAPI; import io.tofpu.speedbridge2.command.CommandManager; -import io.tofpu.speedbridge2.command.subcommand.HelpCommandGenerator; import io.tofpu.speedbridge2.model.blockmenu.BlockMenuManager; import io.tofpu.speedbridge2.model.common.Message; import io.tofpu.speedbridge2.model.common.PluginExecutor; @@ -140,9 +139,6 @@ public void enable() { log("Loading the messages..."); Message.load(javaPlugin.getDataFolder()); - log("Generating `/sb help` message..."); - HelpCommandGenerator.generateHelpCommand(javaPlugin); - log("Checking for an update..."); UpdateChecker.init(javaPlugin, 100619) .requestUpdateCheck() diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java index d1a79b75..d0b5eb8f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java @@ -6,6 +6,7 @@ import io.tofpu.speedbridge2.command.condition.annotation.OptionalPermission; import io.tofpu.speedbridge2.command.context.AbstractLampContext; import io.tofpu.speedbridge2.command.context.LampContextRegistry; +import io.tofpu.speedbridge2.command.help.HelpGenerator; import io.tofpu.speedbridge2.command.parser.AbstractLampParser; import io.tofpu.speedbridge2.command.parser.LampParseRegistry; import io.tofpu.speedbridge2.command.subcommand.CommandCompletion; @@ -31,7 +32,10 @@ import java.util.UUID; +import static io.tofpu.speedbridge2.model.common.util.BridgeUtil.log; + public final class CommandManager { + private static final HelpGenerator helpGenerator = new HelpGenerator(); private static BukkitCommandHandler commandHandler; public static void load(final @NotNull Plugin plugin, @@ -89,8 +93,11 @@ public boolean isCustomType(final Class type) { commandHandler.registerAnnotationReplacer(OptionalPermission.class, OptionalPermission.AnnotationReplacerImpl.INSTANCE); commandHandler.registerPermissionReader(OptionalPermission.PermissionReaderImpl.INSTANCE); - commandHandler.register(new SpeedBridgeCommand(playerService, islandService)); + commandHandler.accept(new SpeedBridgeCommand(helpGenerator, playerService, islandService)); commandHandler.register(new SpeedBridgeDebugCommand(arenaManager)); + + log("Generating `/sb help` message..."); + helpGenerator.generate(plugin, commandHandler); } private static void constructTabCompleter(final @NotNull IslandService islandService) { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/help/HelpGenerator.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/HelpGenerator.java new file mode 100644 index 00000000..cd917017 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/HelpGenerator.java @@ -0,0 +1,43 @@ +package io.tofpu.speedbridge2.command.help; + +import io.tofpu.speedbridge2.command.help.collector.CommandCollector; +import io.tofpu.speedbridge2.command.help.styler.HelpMessageStyler; +import io.tofpu.speedbridge2.model.common.presenter.MessagePresenterHolder; +import io.tofpu.speedbridge2.model.common.util.BridgeUtil; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.bukkit.command.CommandSender; +import org.bukkit.plugin.Plugin; +import revxrsal.commands.CommandHandler; + +import java.util.HashMap; +import java.util.Map; + +public class HelpGenerator implements HelpMessageProvider { + private final Map helpMessageMap = new HashMap<>(); + + private final CommandCollector commandCollector = new CommandCollector(); + private final HelpMessageStyler messageStyler = new HelpMessageStyler(); + + public void generate(Plugin plugin, CommandHandler handler) { + Map parentCommands = commandCollector.collectCommands(handler); + + for (Map.Entry entry : parentCommands.entrySet()) { + ParentCommand parentCommand = entry.getValue(); + + final MessagePresenterHolder holder = messageStyler.create(plugin, parentCommand); + Component helpMessageComponent = BridgeUtil.translateMiniMessage(holder.getResult()); + + helpMessageMap.put(parentCommand.name(), helpMessageComponent); + parentCommand.aliases().forEach(alias -> helpMessageMap.put(alias, helpMessageComponent)); + } + } + + public void showHelpMessage(String parent, final CommandSender sender) { + Component helpMessageComponent = helpMessageMap.get(parent); + if (helpMessageComponent == null) { + helpMessageComponent = Component.text(String.format("Help message unavailable for command %s", parent), NamedTextColor.RED); + } + BridgeUtil.sendMessage(sender, helpMessageComponent); + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/help/HelpMessageProvider.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/HelpMessageProvider.java new file mode 100644 index 00000000..52b3d708 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/HelpMessageProvider.java @@ -0,0 +1,7 @@ +package io.tofpu.speedbridge2.command.help; + +import org.bukkit.command.CommandSender; + +public interface HelpMessageProvider { + void showHelpMessage(String parent, final CommandSender sender); +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/help/ParentCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/ParentCommand.java new file mode 100644 index 00000000..5e50277c --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/ParentCommand.java @@ -0,0 +1,29 @@ +package io.tofpu.speedbridge2.command.help; + +import revxrsal.commands.command.ExecutableCommand; + +import java.util.*; + +public class ParentCommand { + private final String name; + private final Set aliases; + private final List commands; + + public ParentCommand(String name, Collection aliases, Collection commands) { + this.name = name; + this.aliases = new LinkedHashSet<>(aliases); + this.commands = new LinkedList<>(commands); + } + + public String name() { + return name; + } + + public Collection aliases() { + return Collections.unmodifiableSet(aliases); + } + + public Collection commands() { + return Collections.unmodifiableList(commands); + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/CommandCollector.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/CommandCollector.java new file mode 100644 index 00000000..3398ec89 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/CommandCollector.java @@ -0,0 +1,99 @@ +package io.tofpu.speedbridge2.command.help.collector; + +import io.tofpu.speedbridge2.command.help.ParentCommand; +import org.jetbrains.annotations.NotNull; +import revxrsal.commands.CommandHandler; +import revxrsal.commands.command.ExecutableCommand; +import revxrsal.commands.core.CommandPath; + +import java.util.*; +import java.util.function.Consumer; + +public class CommandCollector { + + public Map collectCommands(CommandHandler handler) { + Map commandNodeMap = collectAsNode(handler); + Map parentCommandMap = new HashMap<>(); + + commandNodeMap.forEach((parent, treeCommandNode) -> { + Iterator iterator = treeCommandNode.childrenIterator(); + List subCommands = new LinkedList<>(); + iterate(parent, commandInfo -> subCommands.add(commandInfo.executableCommand()), iterator); + + parentCommandMap.put(parent, new ParentCommand(parent, treeCommandNode.data().aliases(), subCommands)); + }); + + return parentCommandMap; + } + + static void iterate(String rootPath, Consumer pathConsumer, Iterator iterator) { + while (iterator.hasNext()) { + TreeCommandNode next = iterator.next(); + CommandInfo commandEntry = next.data(); + + String subcommandName = commandEntry.name(); + String path = rootPath + " " + subcommandName; + + if (next.children().isEmpty()) { + pathConsumer.accept(commandEntry); + continue; + } + + // traverse to children's commands + Iterator childrenIterator = next.childrenIterator(); + iterate(path, pathConsumer, childrenIterator); + } + } + + @NotNull Map collectAsNode(CommandHandler handler) { + Set duplicateId = new TreeSet<>(); + + // sub command to parent mapping + Map subCommandToParentMapping = new HashMap<>(); + // this is where the parent commands are stored + Map parentCommands = new LinkedHashMap<>(); + + // this is where the commands are sorted based on size; low to high + Map sortedCommandsMap = getAndSortCommands(handler); + + for (Map.Entry entry : sortedCommandsMap.entrySet()) { + CommandPath commandPath = entry.getKey(); + ExecutableCommand executableCommand = entry.getValue(); + + int commandId = executableCommand.getId(); + duplicateId.add(commandId); + + String parent = commandPath.getParent(); + TreeCommandNode parentTreeNode = parentCommands.get(parent); + + // lets us find the 'original' command name if the subcommands were previously processed + if (parentTreeNode == null) { + parentTreeNode = subCommandToParentMapping.get(commandId); + } + + if (parentTreeNode == null) { + parentTreeNode = new TreeCommandNode(new CommandInfo(parent)); + parentCommands.put(parent, parentTreeNode); + subCommandToParentMapping.put(commandId, parentTreeNode); + } else if (duplicateId.contains(commandId)) { + parentTreeNode.data().addAlias(parent); + } + + TreeCommandNode subcommandNode = parentTreeNode; + for (String subPath : commandPath.getSubcommandPath()) { + subcommandNode = subcommandNode.path(subPath, new CommandInfo(parent)); + } + subcommandNode.data(new CommandInfo(commandPath.getName(), executableCommand)); + } + return parentCommands; + } + + static @NotNull Map getAndSortCommands(CommandHandler handler) { + Map sortedCommandsMap = new LinkedHashMap<>(); + + handler.getCommands().keySet(). + stream().sorted(Comparator.comparingInt(CommandPath::size)) + .forEachOrdered(path -> sortedCommandsMap.put(path, handler.getCommand(path))); + return sortedCommandsMap; + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/CommandInfo.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/CommandInfo.java new file mode 100644 index 00000000..f20c3511 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/CommandInfo.java @@ -0,0 +1,41 @@ +package io.tofpu.speedbridge2.command.help.collector; + +import revxrsal.commands.command.ExecutableCommand; + +import java.util.Set; +import java.util.TreeSet; + +public class CommandInfo { + private final String name; + private final Set aliases = new TreeSet<>(); + private ExecutableCommand executableCommand = null; + + public CommandInfo(String name) { + this.name = name; + } + + public CommandInfo(String name, ExecutableCommand executableCommand) { + this.name = name; + this.executableCommand = executableCommand; + } + + public void addAlias(String name) { + aliases.add(name); + } + + public void executableCommand(ExecutableCommand executableCommand) { + this.executableCommand = executableCommand; + } + + public String name() { + return name; + } + + public ExecutableCommand executableCommand() { + return executableCommand; + } + + public Set aliases() { + return aliases; + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/TreeCommandNode.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/TreeCommandNode.java new file mode 100644 index 00000000..9ab1b415 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/TreeCommandNode.java @@ -0,0 +1,30 @@ +package io.tofpu.speedbridge2.command.help.collector; + +import java.util.Iterator; + +public class TreeCommandNode extends TreeNode { + public TreeCommandNode(CommandInfo data) { + super(data); + } + + @Override + public TreeCommandNode path(String name, CommandInfo data) { + return (TreeCommandNode) path(name, new TreeCommandNode(data)); + } + + public Iterator childrenIterator() { + return new Iterator() { + final Iterator> iterator = TreeCommandNode.super.children().iterator(); + + @Override + public boolean hasNext() { + return iterator.hasNext(); + } + + @Override + public TreeCommandNode next() { + return (TreeCommandNode) iterator.next(); + } + }; + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/TreeNode.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/TreeNode.java new file mode 100644 index 00000000..e41e5e02 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/collector/TreeNode.java @@ -0,0 +1,49 @@ +package io.tofpu.speedbridge2.command.help.collector; + +import java.util.*; + +public class TreeNode { + protected final Map> children; + protected T data; + protected TreeNode parent; + + public TreeNode(T data) { + this.data = data; + this.children = new LinkedHashMap<>(); + } + + public void data(T data) { + this.data = data; + } + + public TreeNode path(String name, T data) { + return path(name, new TreeNode<>(data)); + } + + TreeNode path(String name, TreeNode childNode) { + return children.computeIfAbsent(name, t -> { + childNode.parent = TreeNode.this; + return childNode; + }); + } + + public TreeNode parent() { + return parent; + } + + public T data() { + return data; + } + + public Collection> children() { + return children.values(); + } + + @Override + public String toString() { + return new StringJoiner(", ", TreeNode.class.getSimpleName() + "[", "]") + .add("data=" + data) + .add("children=" + children) + .toString(); + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/help/styler/HelpMessageStyler.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/styler/HelpMessageStyler.java new file mode 100644 index 00000000..7734bb64 --- /dev/null +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/help/styler/HelpMessageStyler.java @@ -0,0 +1,64 @@ +package io.tofpu.speedbridge2.command.help.styler; + +import io.tofpu.speedbridge2.command.help.ParentCommand; +import io.tofpu.speedbridge2.model.common.presenter.MessagePresenterHolder; +import io.tofpu.speedbridge2.model.common.presenter.MessagePresenterHolderImpl; +import io.tofpu.speedbridge2.model.common.presenter.type.MessagePairPresenter; +import io.tofpu.speedbridge2.model.common.presenter.type.MessageTreePresenter; +import org.apache.commons.lang.StringUtils; +import org.bukkit.plugin.Plugin; +import org.jetbrains.annotations.NotNull; + +public class HelpMessageStyler { + + private static final String TITLE = "%s"; + private static final String KEY_STYLE = "%s"; + private static final String VALUE_STYLE = "%s"; + private static final String COMMAND_STYLE = "/%s %s - %s"; + private static final String DISCORD_LINK = "https://discord.gg/cDQjsHugPw"; + + public @NotNull MessagePresenterHolder create(Plugin plugin, ParentCommand parentCommand) { + final MessagePresenterHolder holder = new MessagePresenterHolderImpl("SpeedBridge v2"); + holder.append(() -> { + final MessagePairPresenter.Builder builder = new MessagePairPresenter.Builder(); + + builder.title(String.format(TITLE, "Information")); + builder.pair(String.format(KEY_STYLE, "Author"), String.format(VALUE_STYLE, "Tofpu")) + .pair(String.format(KEY_STYLE, "Version"), String.format(VALUE_STYLE, plugin.getDescription() + .getVersion())); + + return builder.build(); + }); + + holder.append(() -> { + final MessageTreePresenter.Builder builder = new MessageTreePresenter.Builder(); + builder.title(String.format(TITLE, "Commands")); + + parentCommand.commands().forEach(command -> { + String path = command.getPath().toRealString(); + String usage = command.getUsage(); + String description = command.getDescription(); + if (description == null) { + description = "No description provided"; + } + + String message = String.format(COMMAND_STYLE, path, usage, description); + message = StringUtils.normalizeSpace(message); + builder.message(message); + }); + + return builder.build(); + }); + + holder.append(() -> { + final MessagePairPresenter.Builder builder = new MessagePairPresenter.Builder(); + + builder.title(String.format(TITLE, "Support")) + .pair(String.format(KEY_STYLE, "Discord"), String.format(VALUE_STYLE, + "" + DISCORD_LINK)); + + return builder.build(); + }); + return holder; + } +} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java deleted file mode 100644 index ced165de..00000000 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/HelpCommandGenerator.java +++ /dev/null @@ -1,121 +0,0 @@ -package io.tofpu.speedbridge2.command.subcommand; - -import io.tofpu.speedbridge2.model.common.presenter.MessagePresenterHolder; -import io.tofpu.speedbridge2.model.common.presenter.MessagePresenterHolderImpl; -import io.tofpu.speedbridge2.model.common.presenter.type.MessagePairPresenter; -import io.tofpu.speedbridge2.model.common.presenter.type.MessageTreePresenter; -import io.tofpu.speedbridge2.model.common.util.BridgeUtil; -import io.tofpu.speedbridge2.model.player.object.CommonBridgePlayer; -import net.kyori.adventure.text.Component; -import org.bukkit.command.CommandSender; -import org.bukkit.plugin.Plugin; -import org.jetbrains.annotations.NotNull; -import revxrsal.commands.annotation.*; - -import java.lang.reflect.Method; -import java.lang.reflect.Parameter; - -public final class HelpCommandGenerator { - private static final String TITLE = "%s"; - private static final String KEY_STYLE = "%s"; - private static final String VALUE_STYLE = "%s"; - private static final String COMMAND_STYLE = "/sb %s %s- %s"; - private static final String DISCORD_LINK = "https://discord.gg/cDQjsHugPw"; - - private static Component helpMessageComponent = null; - - public static void generateHelpCommand(final @NotNull Plugin plugin) { - final Method[] declaredMethods = SpeedBridgeCommand.class.getDeclaredMethods(); - - final MessagePresenterHolder holder = new MessagePresenterHolderImpl("SpeedBridge v2"); - - holder.append(() -> { - final MessagePairPresenter.Builder builder = new MessagePairPresenter.Builder(); - - builder.title(String.format(TITLE, "Information")); - builder.pair(String.format(KEY_STYLE, "Author"), String.format(VALUE_STYLE, "Tofpu")) - .pair(String.format(KEY_STYLE, "Version"), String.format(VALUE_STYLE, plugin.getDescription() - .getVersion())); - - return builder.build(); - }); - - holder.append(() -> { - final MessageTreePresenter.Builder builder = new MessageTreePresenter.Builder(); - - builder.title(String.format(TITLE, "Commands")); - for (final Method method : declaredMethods) { - final Subcommand commandMethod = method.getAnnotation(Subcommand.class); - final Description commandDescription = method.getAnnotation(Description.class); - if (commandMethod == null) { - continue; - } - final String usage = generateUsageOfMethod(commandMethod, method); - - builder.message(String.format(COMMAND_STYLE, commandMethod.value()[0], usage, commandDescription.value())); - } - return builder.build(); - }); - - holder.append(() -> { - final MessagePairPresenter.Builder builder = new MessagePairPresenter.Builder(); - - builder.title(String.format(TITLE, "Support")) - .pair(String.format(KEY_STYLE, "Discord"), String.format(VALUE_STYLE, - "" + DISCORD_LINK)); - - return builder.build(); - }); - - helpMessageComponent = BridgeUtil.translateMiniMessage(holder.getResult()); - } - - public static String generateUsageOfMethod(final Subcommand subcommand, - final Method method) { - final StringBuilder builder = new StringBuilder(); - - if (method.isAnnotationPresent(Usage.class)) { - return method.getAnnotation(Usage.class).value().replace(subcommand.value()[0] + " ", "") + " "; - } - - for (final Parameter parameter : method.getParameters()) { - if (CommonBridgePlayer.class.isAssignableFrom(parameter.getType())) { - continue; - } - - if (builder.length() != 0) { - builder.append(" "); - } - - final String name; - switch (parameter.getType().getSimpleName()) { - case "Island": - name = "slot"; - break; - default: - name = parameter.getName(); - } - - String startingTag = "<"; - String closingTag = ">"; - if (parameter.isAnnotationPresent(Optional.class)) { - startingTag = "["; - closingTag = "]"; - } - - String flag = ""; - if (parameter.isAnnotationPresent(Flag.class)) { - final Flag flagAnnotation = parameter.getAnnotation(Flag.class); - flag = "-" + flagAnnotation.value() + " "; - } - - builder.append(startingTag).append(flag).append(name).append(closingTag).append(" "); - } - - return builder.toString(); - } - - public static void showHelpMessage(final CommandSender sender) { - BridgeUtil.sendMessage(sender, helpMessageComponent); - } -} diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 93c953c0..1ff2192f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -2,6 +2,7 @@ import io.tofpu.speedbridge2.command.NameAndUUID; import io.tofpu.speedbridge2.command.condition.annotation.*; +import io.tofpu.speedbridge2.command.help.HelpMessageProvider; import io.tofpu.speedbridge2.command.parser.annotation.PlayerUUID; import io.tofpu.speedbridge2.model.blockmenu.BlockMenuManager; import io.tofpu.speedbridge2.model.common.Message; @@ -25,11 +26,14 @@ import org.bukkit.Bukkit; import org.bukkit.Location; import org.bukkit.Material; -import org.bukkit.command.CommandSender; import org.bukkit.entity.Player; import org.jetbrains.annotations.NotNull; +import revxrsal.commands.CommandHandler; +import revxrsal.commands.CommandHandlerVisitor; import revxrsal.commands.annotation.*; import revxrsal.commands.bukkit.annotation.CommandPermission; +import revxrsal.commands.command.CommandCategory; +import revxrsal.commands.command.ExecutableCommand; import java.util.ArrayList; import java.util.List; @@ -44,21 +48,29 @@ import static io.tofpu.speedbridge2.model.common.util.MessageUtil.Symbols.*; @Command({"sb", "speedbridge"}) -public final class SpeedBridgeCommand { +public final class SpeedBridgeCommand implements CommandHandlerVisitor { private static final String EMPTY_SCORE = "You haven't scored anything yet"; private static final String FORMATTED_SCORE = " " + CROSS.getSymbol() + " " + "Island " + "%s" + " " + ARROW_RIGHT.getSymbol() + " %s seconds"; + private final HelpMessageProvider helpMessageProvider; private final PlayerService playerService; private final IslandService islandService; - public SpeedBridgeCommand(final PlayerService playerService, final IslandService islandService) { + public SpeedBridgeCommand(final HelpMessageProvider helpMessageProvider, final PlayerService playerService, final IslandService islandService) { + this.helpMessageProvider = helpMessageProvider; this.playerService = playerService; this.islandService = islandService; } + @Override + public void visit(@NotNull CommandHandler handler) { + handler.register(this); + handler.register(new PlayerSubCommand()); + } + @DefaultFor("~") @Description("The Main Command") public String defaultCommand() { @@ -78,7 +90,7 @@ public void onLobbySet(final BridgePlayer bridgePlayer) { } @Subcommand("create") - @Usage("create [-c category]") + @Usage(" [-c category]") @Description("Create an island") @CommandPermission("speedbridge.island.create") @RestrictSetup @@ -127,54 +139,8 @@ public String onIslandDelete(final Island target) { return String.format(INSTANCE.deletedAnIsland, target.getSlot()); } - @Subcommand("player set block") - @Description("Changes the selected block type for a specified player") - @CommandPermission("speedbridge.player.set.block") - @AutoComplete("* @players") - @Usage(" ") - public String setSelectedBlockType(final @MaterialType(category = MaterialCategory.BLOCK) Material material, final BridgePlayer target) { - if (!material.isSolid()) { - return String.format(INSTANCE.blockTypeMustBeSolid, material); - } - - if (target.getChoseMaterial() == material) { - return String.format(INSTANCE.blockAlreadySelected, target.getName(), material); - } - - target.setChosenMaterial(material); - return String.format(INSTANCE.setChosenType, target.getName(), material); - } - - @Subcommand("player reset") - @Usage(" ") - @Description("Resets player properties") - @CommandPermission("speedbridge.player.reset") - @AutoComplete("@players *") - public void onPlayerReset(final CommonBridgePlayer sender, final @PlayerUUID NameAndUUID target, - final ResetType type) { - String targetName = target.playerName(); - UUID targetId = target.playerUUID(); - - onCompletion(playerService.reset(targetId, type), unused -> { - String message = null; - switch (type) { - case ALL: - message = String.format(INSTANCE.playerWiped, targetName); - break; - case SCORES: - message = String.format(INSTANCE.playerScoreReset, targetName); - break; - case STATS: - message = String.format(INSTANCE.playerStatsReset, targetName); - break; - } - if (message == null) return; - BridgeUtil.sendMessage(sender, message); - }); - } - @Subcommand("modify") - @Usage("modify [-c category|-s schematic]") + @Usage(" [-c category|-s schematic]") @Description("Modify an island properties") @CommandPermission("speedbridge.island.modify") public String onIslandSelect(final Island island, @@ -223,8 +189,8 @@ private boolean isGeneralSetupComplete(final BridgePlayer bridgePlayer) { return false; } - @Command({"sb join", "speedbridge join", "join"}) - @Usage("join ") + @Subcommand("join") + @Usage("") @Description("Join an island") @RestrictDummyModel @RestrictConsole @@ -252,7 +218,7 @@ public String onIslandJoin(final BridgePlayer sender, final Island island, @Opti return String.format(INSTANCE.otherJoinedAnIsland, target.getName(), island.getSlot()); } - @Command({"sb leave", "speedbridge leave", "leave"}) + @Subcommand("leave") @Description("Leave an island") public String onIslandLeave(final BridgePlayer sender, final @Optional GameIsland senderGame, @@ -277,7 +243,7 @@ public String onIslandLeave(final BridgePlayer sender, return String.format(INSTANCE.otherLeftTheIsland, target.getName(), slot); } - @Command({"sb score", "speedbridge score", "score"}) + @Subcommand("score") @Description("Shows a list of your scores") @RestrictConsole public String onScore(final BridgePlayer sender, @@ -305,7 +271,8 @@ public String onScore(final BridgePlayer sender, return String.join("\n", scoreList); } - @Command({"sb choose", "speedbridge choose", "choose"}) + @Subcommand("choose") + @Command("choose") @Description("Lets you choose a block") @RestrictDummyModel @RestrictConsole @@ -313,7 +280,7 @@ public void chooseBlock(final BridgePlayer bridgePlayer) { BlockMenuManager.INSTANCE.showInventory(bridgePlayer); } - @Command({"sb islands", "speedbridge islands", "islands"}) + @Subcommand("islands") @CommandPermission("sb.islands") public String showIslands() { final MessagePresenterHolderImpl holder = new MessagePresenterHolderImpl( @@ -368,12 +335,15 @@ public void pluginReload(final CommonBridgePlayer player) { @Subcommand("help") @CommandPermission("speedbridge.help") @Description("Shows a list of commands") - public void onHelpCommand(final CommonBridgePlayer bridgePlayer) { - final CommandSender player = bridgePlayer.getPlayer(); - HelpCommandGenerator.showHelpMessage(player); + public void onHelp(final CommonBridgePlayer bridgePlayer, final ExecutableCommand command) { + CommandCategory parent = command.getParent(); + if (parent == null) { + return; + } + helpMessageProvider.showHelpMessage(parent.getName(), bridgePlayer.getPlayer()); } - @Command({"sb randomjoin", "speedbridge randomjoin", "randomjoin"}) + @Subcommand("randomjoin") @Description("Chooses a random island for you") @RestrictSetup @RestrictDummyModel @@ -508,4 +478,53 @@ private void onCompletion(final CompletableFuture future, final Consumer< consumer.accept(t); }); } + + @Subcommand("player") + class PlayerSubCommand { + @Subcommand("set block") + @Description("Changes the selected block type for a specified player") + @CommandPermission("speedbridge.player.set.block") + @AutoComplete("* @players") + @Usage(" ") + public String setSelectedBlockType(final @MaterialType(category = MaterialCategory.BLOCK) Material material, final BridgePlayer target) { + if (!material.isSolid()) { + return String.format(INSTANCE.blockTypeMustBeSolid, material); + } + + if (target.getChoseMaterial() == material) { + return String.format(INSTANCE.blockAlreadySelected, target.getName(), material); + } + + target.setChosenMaterial(material); + return String.format(INSTANCE.setChosenType, target.getName(), material); + } + + @Subcommand("reset") + @Usage(" ") + @Description("Resets player properties") + @CommandPermission("speedbridge.player.reset") + @AutoComplete("@players *") + public void onPlayerReset(final CommonBridgePlayer sender, final @PlayerUUID NameAndUUID target, + final ResetType type) { + String targetName = target.playerName(); + UUID targetId = target.playerUUID(); + + onCompletion(playerService.reset(targetId, type), unused -> { + String message = null; + switch (type) { + case ALL: + message = String.format(INSTANCE.playerWiped, targetName); + break; + case SCORES: + message = String.format(INSTANCE.playerScoreReset, targetName); + break; + case STATS: + message = String.format(INSTANCE.playerStatsReset, targetName); + break; + } + if (message == null) return; + BridgeUtil.sendMessage(sender, message); + }); + } + } } From 05e4423b2974c0deffeb924b2a0051509543a68f Mon Sep 17 00:00:00 2001 From: Tofpu Date: Sat, 1 Jun 2024 14:47:52 +0300 Subject: [PATCH 52/71] Add a config option for not clearing player's inventory on join --- .../general/PlayerConnectionListener.java | 18 ++++++++++-------- .../common/config/category/LobbyCategory.java | 9 +++++++++ 2 files changed, 19 insertions(+), 8 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java index f4f88ce4..251a566d 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java @@ -44,19 +44,21 @@ private void teleportToLobby(final Player player) { ConfigurationManager.INSTANCE.getLobbyCategory(); final Location location = lobbyCategory.getLobbyLocation(); - // if teleport_on_join is set to true, teleport the player to the lobby location - if (lobbyCategory.isTeleportOnJoin()) { - if (location != null) { - player.teleport(location); - return; - } - + // a lobby is required to utilize speedbridge2 features + if (location == null) { if (player.isOp()) { BridgeUtil.sendMessage(player, Message.INSTANCE.lobbyMissing); } + return; } - if (location != null && player.getWorld().equals(location.getWorld())) { + if (!lobbyCategory.isTeleportOnJoin()) { + return; + } + + player.teleport(location); + + if (lobbyCategory.clearInventoryAfterTeleport() && player.getWorld().equals(location.getWorld())) { // clears the player's inventory. in-case the PlayerQuitEvent missed it. player.getInventory().clear(); } diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java index 67ff66f6..ee740c78 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/LobbyCategory.java @@ -8,17 +8,22 @@ import java.util.concurrent.CompletableFuture; +@SuppressWarnings("FieldCanBeLocal") @ConfigSerializable public final class LobbyCategory { @Setting("teleport-on-join") @Comment("If this is set to true, the players will teleport to the lobby upon them " + "joining") private boolean teleportOnJoin = true; + @Setting("lobby-location") @Comment("This is where the players will teleport when they join, or leave an " + "island") private Location lobbyLocation = null; + @Comment("If this is set to true, the player's inventory will be cleared after teleporting to the lobby upon joining") + private boolean clearInventoryAfterTeleport = true; + public boolean isTeleportOnJoin() { return teleportOnJoin; } @@ -27,6 +32,10 @@ public void setTeleportOnJoin(final boolean teleportOnJoin) { this.teleportOnJoin = teleportOnJoin; } + public boolean clearInventoryAfterTeleport() { + return clearInventoryAfterTeleport; + } + public CompletableFuture setLobbyLocation(final Location lobbyLocation) { this.lobbyLocation = lobbyLocation; return ConfigurationManager.INSTANCE.update(); From 5a08c3dd04730eee10391f9b985c7bd1bff179f7 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 17 Apr 2024 05:32:29 +0200 Subject: [PATCH 53/71] Abort game if player world changes while in a game --- .../io/tofpu/speedbridge2/model/island/object/GameIsland.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java index 7bda235f..168048df 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java @@ -154,4 +154,8 @@ public boolean stopGame() { public void abortGame() { getIsland().abortGame(getGamePlayer().getBridgePlayer()); } + + public void abortGame() { + getIsland().abortGame(getGamePlayer().getBridgePlayer()); + } } From 7f7516a4a6b0904277789878cd990aa275dae629 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Thu, 27 Jun 2024 03:35:27 +0300 Subject: [PATCH 54/71] Add preview images --- image/screenshots/bridging.png | Bin 0 -> 536781 bytes image/screenshots/scored.png | Bin 0 -> 581818 bytes 2 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 image/screenshots/bridging.png create mode 100644 image/screenshots/scored.png diff --git a/image/screenshots/bridging.png b/image/screenshots/bridging.png new file mode 100644 index 0000000000000000000000000000000000000000..26bdf3386ece7b1523585d68f54f4cad2e196598 GIT binary patch literal 536781 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�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
}0X2Yoe)dy0#rg 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�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

@&uBhHiD4f16_#f5Qft7w#7Wq|rvEg8C zKd$!ie2D*0{%ZR(^#aC?gP9ty7fyk;><_Pvy|9aDh+egT8n}z5dYkx4mK{HRgbmKjD#o$W9I#7 zBG$uF8fH}pdA4Pk^-^ajF?;z~&kMA-A4*fp_4}TYZ7R zs3z1Ikg1jMj=M>=QY|pS#F(cL6ebrWbjZS7>`8|b0{`EX8Ml?(mAN>v8&e(jn;s&q zxyIX+jPLEn4|gMb&wi1Qe=E)2m1l-`O#7|Pw(4ksJB>LiVAHs8{)u@Zv-j2c+dWLd zukEe9G<#hz{+s?*h}o2;zm=lj^StGM*kfdHrb)|JkvQT-tv~1Q5vCC1Kl@`euk@zI ze}yLGmuba2^?0WiZP#L36fr3x^H;2=xR8>_u5LUcot5SB0Tl~Tp++7DS+ZXB7!w&?&=$fFjqGk^6}N)w0OKbe!7Em{6#i+o(-R8 zCiXbbvy-R0!RtI3L!S!v25B#JWN$nN;}tpKQxvkrq4HA>SM~!;`v0W=3FA=y5|54; z?uKG49|q6}RU#*0Edls`pG+ckcM#Tgp@HWL4bJR%kOKkVrFFDV7?0DmL31}6Lm z-Usa-vw7(^L^ms=({LM7tzb@Oce)3lr*`0%;9Qs>6zvUU5NEfKH3WvJyYV zK63P2a-d6t>)t{3ZY5C+;S+TS{?z|u8IgxqM5qxaPY8=4O?(&F1E*6ssD}REZ zq&^;&#zEVtH0-t#R{{Mp&Zu!v1!5}8l#COLu{R6S$e4(N>jJSGO2mc!>}wW$T%;yT zjTiuB-BpyJaUs>)9NykXY9+kQg1%f7d|2?Q!9P7B4uXj^h`(gYBPWGpM?gF!j(`B7 z%*8Afi$#Gv`(2f8{RrTyUc7D@yq9r9aUw2~`~nnm?}Jo3gc?;xh62~!fr7ug85|Y# z2r`e@pD0$iAX=cFB3hS*?UB{PM``#MbV0BWN)rP9yCFJH{XEYqzy4L3VfQMz0AjN_Ga(* zsPld-$D6hJc0$lYcS<>`S8m z-Cz+w0lJ|JP<9YZrWgpMFkLDXP!WJa5cQmqGje@-BYT1KpG?GXiB!WR8U|CaysPqp ztWHmG2OJ(9k`B07*?)_r(EtNN3<1ZJ`6!GJMicbEVc6LZI)kX$3)=fpqcb)TR03R3 z>4YUR!;lSfjer(FFgn_)PIeo{e-ku3961z)bM>fz9Rv_0mW2Vqp}k2M|CPH_JI^fO z*3{m3GR;Y@Io+*J2$U{Q-tUF)ij&{-;cq!&ARlcT*o~?G!hf#+1$VZ_Sk86xt_M%5 zOiZyD-8y`<8$H~K6e4K*P{tA2hja0pe7I4Lv#n{PKRXDP2f=(og>-pzc#3rb^DjR) zFbl9Vk_Myk=%k{oQ=r5@93g0dmrCZNNAOG~c%w(Y>P)jkE_qF<8oOR-tp7z$VOMSc z{Ca(TNztEmbET%wi>vF4D^-5&p)meZ-@jlU2?&V5s}XPnz??7#T7ydt?c3*NHvT(2 zIbAaUm-_E)ab$EG&6hDA@Kq4S<7gI8`j0r$0ysS|;2V?w4E)jj7qt%z`zFo)$Wy`V zd>$B=+rvsXF#aodhI?&>Lui1+ex|xFF9>#E+Z*0V1!TDjNIJ9|b!Fgi1e8~o+ADx1 zwxb0w!$dgQeo_A3r3#-N4FMG;okRnEOy&i1q~lP7KmnxEky;erCbBr;l@=aWLJqsdCH(BN;A-o9X68utD_S^xpQP?JB#+g0E%i?HV`NGM=NL?{XH?=9C&(_r7uiT~Js}=KU zjZ*Kl(x38)?qJTD9$nNmTL<&%fgvEN3pHN{i^gD~itwT}q7>5{*=AWkhz$n?f~0h{ zgO&55uZAmvhJde)^PoUfI)p&vzzcLi>2`AdIt$_&F;D~YT+9Ov1&*!`sz&@=HDXnD zlX`JdEM7MYf`FKaDK}#rK6>V&VC7g(M|JoG>LB+@9Xz&2lV1dCRHvY=LqM>8V(9sj zG#UEsZVQ3pLh8i?zSzyin*WZUi$tF&4)B?{Fewl_=dCxlm%!_}=nz1xp$NiZ93emB zEp)+@1)oS4Om({zH&qvYj8pi;MLTXH-7S)$aKWq32?(x_3F-+7#gWN1dKQ>f=MSai zt?eUniX@(5j3a9t1fl+(EMsT9UYxWH@^nW=X8M-w2(&?>McgWAb>csPrmQ5epy3?> z)M^K$Zfj2j5sLhjM-80mvc%!x%;&lwCE&jmjsEw&&;*Z*SP!}Xukh)I)X8raR{cf|!84NwrI=6eR% zi385T4l-!2+!W$Mpa{=90>6GSSUkNxKO-0L=2Gd<6oQ3-rx%yTB1f7O0{;mCnGJFb z0Um-1hldLzgC)~~<9HE(fYHzhAka{_gU|?|)el$}d`1?aYk`Qp$ERl}C-5Il3LxN->>&2PX07HpLP6%Go$ORfhw~~+XMT$?{dv|nWnb@ zq5=v5KV;j6eV@R%gaSY3+ujS93V|Kfh}GC9r2DAEL4&sUxwa2^`=EOh@?%1=UDmf{ ze@&!s_ITQ!}L z{bwJIuAlyOfE?dD=N9_LtCBsXH|gEcxon?c1O2^=#SSO!%+V<%4vk zKZEw{>1MTeuY@7!rjG9EV*QWW_~!1Ff23&Eex)X!c+gfN+Saosp*k3iz! zx>)?IdP>)za8N90&wH7AilqYTc|k+!!d{=HhD)WGK0g-)0YNtrdySYfarwygNL7=) zNS)vyL|79DmXDwLM*QcvW)JRNeNU8e_>|ef2zXCY2g&olSBkZc$P_HOGDqeMW#Y1` z!`=cYk4W+qLcm8w-CHC_+T}p$g5p9cf*i{jhZD}zavzC9p$mb=YLC`M;aiLEA&~|J zf{7xiSV6ye8~$+hE<}NeA_yju1r5L<4VGX*HfcTD1wtu;1lBx&{Adb%qyZ%MI248R zSVSOsDz(QS`LjB#XPQ+bMeb zZZehbXXcB`cxx^2P6~o|JX1O&n+VdNPe7JoS>l;{houN6*q0C?#bTz92mz;32g!xL zN3wL3b|U_Cjr_8m6ouFPw-yLpL1d#OYTb0mOEg81BII{3Wx+cV3zNn{R|l14<3WHf z__-*klM0)ShP>alQ?g z7@bh|1v{dTWxEpj@a-NO6vR6Dg2mRX*qYj(t@dEi4;O=g__W!A7JEaf6ZtJJc}K_K zd2>xhAThr;mp{HT;Onn%7(^udo&WWn@Mj~!?|&lxef1<4gh0lDNKaz#NgtQw{MlPQ zM~|1g@uon{0=E5yCJ6z$bj)^obpDn6H-8 z`NCEZ$K!AsMDfTtU=;R}IKZ&kX9AcZV6$)VM=xL*`6qA$%qRR8WEzpZZ*5hL;lj_A zV51yvR3@J*b__Qw!DiXsvEm$}Ai*)Ymcm&W-!j{+O^g(`>(i~ORM@@nQ!Rc|2!GE9 zzvshO`S5urFvK^|e<*!`#VtJy>0v= z#)6M`>{liDP&7Q9<=fa(hQTtLo!D!-#3yrTsH_G`WHsRL0t9p%cMI@^j`)GD&UF`! zfQ*RKFT;g_H??E0AloqkLAQe-?vmrj1UU~Bl%OaUyu7ei_4*4HWiXK!G%5aGV)|z4 z+x68YDKK1edbxH1D+R{*j}kDG-_ZY-N5}Ie1!4QdGFvhKceXs7Oy?o~kJWfGn@ndu z1$Z3JhQV}y6dnYG|B?K15O#-CegOs(%s?suqyP1TYKOUSl}?}_KuW;HR*{$RGc*oKAh4v&%zu=_M3XKa9 z3p-KK_>U$2vzwjBfUne@?e%A+{>=EV*qa*vl{h~wVf&cw_2bIH%sxd|4E}oa>VPUR zAPDv?MTg7AfuSMr2l)*-BL8bOM}oi65(*rk4%*`8klJxe(jYCu2ebBg`H$aPmxRAG zu>IQRb?d^JPZTKlbIb6W2*rQYi;)bmdf0m1yrg6-H4zF_jrb=8Hf0l$Mwk?c)2_i6 zGLZmksfmQ=h1*V_Riz68m#0aCU?LDo8cdYPq@L@IgZM~bHS8l$S{0d4HDZG^L7|Kz z+!Px6y+Xi*2qCueiPXmv`V?yl4oue?0bx*`d2E=N-s?p8RQjTv#nJ+cGJh2RRx*A9 zq8&XYs3keWL+!0A#r{nu-GPv(ZPF?*_L1V61uML79k^K206= zjt~?6b0hGr`tKdde)q(DzbcO~1;ojk0@EQS5!T~G0t5u%zmy1*NA_jk()N^#;lI!m z5S;`^LAuC6%Ib535?*tw?&Z7KyafHF?ysi%hu`qGhW%QN1w{!d&Iw~=8Lf2 zRiaOoc(WR7(A=!hvA=_}dUx6xDl}wz7|)FYS0^XOr}WtQ`!|K!H3cf+MYJagP?5jJ zg`E6>{&%k0F&BURa`g?f=Na&qq&;6~)EkL_4u6;4bV$!1A|EYfNiUi^MPLz@5`&Ee zk)3b}03W9(r>BzrP8ke=L%@x|_8(({=ZiVbVY4ub$3Zk0Pxi<0{vhlfOnORyYvBM0 zZ~%0JdS^loFdbmT!Dx_ZkjKerZ&%S)b-Y!JK9|D}rSRk4_;ba6=C+AG7}Y_9!B%Cm zTbbCEyYOMQ{{CF%V!QHvVe&^l_^mMcEkAjc8yn3#|2^6X?r&4r#rc6I zJpuL5|HkObU>{XrkF>m}&lPvK14F?3_5owlD9~_ld~Yjwyd6Hv27lzDkCllrsJ&Np zhnOK|iz8-1A03~hGhogr-IA@S{Ab0%XyFLa>mtK14VUMhyd%%Gf9;7J#J)}rSH_6v z>Lx@8w68q#Vbd(9K!v*`X*{^ic|Hu3{WWPyoppnqG_^;L(HTJ`5 zH>h;Tf7xq}3XM^r4gzLt2d@9^R(hlsSN9G3cB_Le9|~OF-@*>E@09j)p|nxGO^d=w zKnyK_9uVjV2lof z12jM8srCYVx$fI+2eHuTQ2d7+NG-Va&Z!aF!w8K2CuxvxTePPxzyn*TfJl9IWcbHs zb@QilsgzY6xczH z)QDR^VU{G9P!z~2w5Peo1kDfZi|h#YwI;TT9R$KmD|GlP3jXr6#6*HW>c7QKyw{uW zfq;g6hJ!KdU{UUore5hy4FM};!AwPg^V(opJutjmRA>ZT*3kLjzsg`?Tv$cwGdkqU z8$!cm8S{;nUMXhNw@uO=Xe{^-qbQ?5Co@C9SIx^;hJexql>(g{T@HK+5egI28u9C< zaTN%tu8iaal6tNumy_SulCtT0(?A!Z?9KmkBE; ziPuPS78y(+?Jgx)wPu@G2H1`|_3e$07d z{~i^VkJ4lr6`+repVr-h4>g!LsVO56(jX`;ko^OY@#vwPB2Q!-VUuOROg?{h=1=&;aehRroZJwyX=qB0Ve=>$aLTt-EY$%o{hqI6k-QH7)R;?Gy)(Bq}h`Lv>#O3 z<4R{zZBL5L!5&c&fp-*9erim%tKnv4{Aq6tPwzp2Zwuph#psT^`8z`|v>&quF&pqPiFaq-Y$CySP~!;HJIUs;HO+bWItaxf|U!XI6yDv zI^-!VMxA_0es&7{B&m;B7HCf#DdPxVRTK`ou{X8%CdLj16VuWs5R}gYZI8_7clqu+ zp&rZNFRLnWvF{R~(;@AEx!&6xwD%t4$o>b?WcEMp9o*u-{g1_i%{>D?PEz(Q541+c zd89*^DGGaEpk20I9dFm{L(zyCAqath;HD_h_|GYDw-zcRCV&NH1j$GU+-(M!dC~tS z83H&%BRuJX_Ngq&GNA`L%&Ob3(2nggR%Zeu;`ue&Q~FhJT4K%U$LPk!d4-N4;Jna@ z4b;lUe_dKNN>qLqrT)C!pBvk(qNUm=;!Jne5RXERUMY(cEtBkJ#$`6B*}^&-Ppk- zx~E)IkGHtRy^?FmW4w4$u_;;bn0y+!gt) zE64yJ7dZJPAh;v=OBdLujcmUO`~ir!(g*z-`%VBvuPh^QM)$YT_MYZvMuB)cXbqhI zQJlXnPG9807rFR(e)hzE^7eLa|3g$kz9XgQQ6_$vu_M^`U?+UAYm0aNhr7|E9b}|u zSVqF%fs*Nm^6dQ{(%_qX=*@q><&FHN#+{&N$)J$Ju~fiWt~D<)No-!}%o+!a-iR5p z1jHwOEx0BB>Tg)Snu~s7ne#C>PRL21(%juy2ETAp`}}{CB2lwkM}(Qb#Kd zHaWEK*63u31%#A1rUSqL_|EhJfq;7DuSN* z2k?2@pYQoKxWL+dA%XCmf-)HB|9StPG5sNv-!T6!783ssnfx2g7PI+bJUa|0p8v9d z|6=i9G@lRzGqac5j)QQ4=zB2f4vqi9?jSbuYY$@Tzx|NG(2R!;%ea6Ch1RHurC?Yf zRhT&F-O9mEnHE4JKSRLnYJaC%2)* zpi6*xq&{fRFfOBez5maPzsP$eMLYaC`7z|f5fB~GK(J4*A!pDRCGU0LrLrH)XXKaf zzs+^tCw+l52!1FS_Sq2=F$kzuLIn!S`2pm45X`|x&Kwxwxg5x%J8*xa0tgxfN)hC^ z$x%coQP4ThKoAz(JAef%2fNi!6XdvSn1pCzgejl8|UGK>jHoFwZ-n-?lS({>&-yGeY+W#dh=3$R_xF0 zeC1$S>DymIt||N4H*Q-=3pBP{l)Ds;%Z_^cEJQ)$LanMW(a!iX&a2tI`!fT<+CD^x ziR55b*`L)26r9%xlwmr^>C2|UoS3hDVa$gv*uJ(iI(gwN2#qBL;?q|G#DoG{st%`x z;}?Rz7pQ~hzE5k%XRnjonV;&Qs>V>@x@7ECV@lHXGfKBYF^5Y(Is&q2s4POYtfI{^PN*X*{Q=l;J_$3{Lhum~V6eg}MEOw1VK|??<76XFzn6&x{ zF)0&Qz`bQ)rf4m(UyMlQJR`f!LPPdq zLG=QXEMq{nCc>wZAq8hYOU6{9e>z2ymDoh|u*PTX#huz{l~!&d(Pm|Q_LzrF`Uq7W z_N17VQy?pim63@U8S;K+rZV(W72CNxNNn@6d<=bNF(69<)UadKZId%f8FUJKkXD4# zI6!xb%b4^23L+=v9Z}XaEcpMi^(Jg>WXZO6{iEAmWsK(uo52ib&@3T@2870x zGBq+|yQMy;mTq%lW*6{$E&6A7fxz9 zvxO(UtDSrX%LI$<-pN|P9vt}Ij(k$0bCjUB&xQ`4XZ*$Z4IW)gd#o0z_ z`lU4eTm%Z=2?1YW3*a+e$Rt zU?z+FTY#X;Lgex*6e+h;$G3Z{oT@V zuM!#LZ5aiY$6G}M!O=#J^{v3#(5T-{o#$aL+Q{3_eEdP=_aPfmzR$#OGPrjQ{>XL_ z%>5hwBLeVGm~XUpl>BSI|8LJN|Dnhsbl+lEWu!e{LcG!wVeh-oZsrf!WQ2rJCDFHe} zKtDV%|JVJ$@E`B*^$dsi&1|vI*pDl>{f?M)g6Cs6rrsUJ@L!ZHH2-am1!Nd&{+oNi z$F1H(N#NspXAJ*!#%JyE8TH>G^3z%#1_2Aw^IX*v{CTMt!t>BRe=2BxVQuG# zckv`=VIRzgddFU_-Xf}=+dj6_GVV4}&npQqZTpi!aZ>QeW`~QC|Eo??H@=BJfKq$El^=GqocFo$@%Dn zDsW_*W9%T&QEg;AXX{wvpL`)al=5d3m}DDqhMKPyUN`#ua)^ABd?Pt&#QD}V-)u#f2fIKR_F8F<4E16!5LeYosK&lD!iK7`=0(;ZUs zyMCnJ=SG}{Q0RZz+3R2^31NXQ4U*^QAea*iKHCSCF8D|^3a=DM5s^}N z!$(q}WW0`K_*5hIX2F*fYVH2`R2&C=t>vb#$P`qW7*?AoD-jl4Q|`1Ry@j2BDMiq+ zZ?zBwbCM*(oZ{z$i4(iCQ6T5t1uPSZbJ!X{hS=%&1qg=0bPk0oOsh-`VrrjigzC(L z*kXsm6d7ld4^xd$Ea;Wuv`qZ}iho*C{+>U3%vhB4GO32tg_#{}4{d{!nv_JNy6O6H z{5m^+lS|$!GWuOMu@CPLh3Pw$ci&`_H@WFcZZ&>!G&Bl)={QI!nQka9fN@Qyc5;h)PJk3NKIhl5}kkc z@!!vpH!;lCB8{sW9aW=4qd;b_MSG{?-Ey>@kG4yrZ^hwONvSS*dix}@j=toOV?Sl1 zkD2IGfo9Ej$I&}s-&>kHjo2VRj&OXez`v2vyuFpYn{F^qr_20#L|vGt2%8+PVK$-! z3LAI_Gynp5 zB+F2MmdoV9m;D)gBnTSrgE4POF7&a#NPxliG0`8(csd&s`!XZ^C1In=@6_Ng8ZYea zCiyv0oX4$hShddX!OK?PyK(kIX>;;0%2X^ zZzcTY;;_QhU54sPfc zSh}G2FLVT|^DoqV**gV-gN}6Ra_6u3uSpA_>wn;#U)Iq=FXV0zo}(U+2i^((oc#7H zeZxdUx4lxAr4~RxvtKr_>+d2HJ`)ASjz7*KVgiMOcG8uZLN_)0(pYK6`dzJXfH6JU{J*3k(@c3VyQX z(qP5#(eBx$#jx5nMg$G*sd9>ar1o0dz1B1PjuTS7MERQ@)e;iXPNU+z8#I_POk*y`x(=!@3Rw=#(bIL;47>M1dfhn2)`rLBzZd zDJD7ya-?=_`zr+;(okqOd0*yRh1lRf3cf=jh%~2^{#}_OROs9_s*FwtROMJwny@X0`mQKg8w+l{G zhgFRjKwK$;H2isj%nZJS0wo-(daLvB;;T@1UV1H>NONwJ!r35H^c zf>H$K9l=c!x(2o3o?3~Qk|8+|^Qm6^LM3Uv^wZ6K;}?K{j6xA6QYOY?vQi4u`%`ZI zxBMlJgHCuV96x74-B9YFj3)m@jcK#s6DGbeQal>3Q`IFhn!>IS(6H}aei{~gq`vhN zs>Uyl#xJD>{>7lM_$7IY1cLnQfZS>9#>bq0Ato@CeB)Z6!C#RO83#ezc$5sJQW$TQ zlHE#jcs4mYOY-$uwxM3Y_N>~THaqj~XxWWsL&nH1W{Wuj&^29OwCl;YOQHwufRF#H zc@NZunf<^#-~aqgBcQ?GKmRbipc~f1;!vCzF-_&e12i@ z7oS~F{;Sw$|HZh{92Na-O_O1Q~gTA zui5BxCKCURKV(K9GQ*Dsf7$56N%TH5dUG^*bAsT9tb442em3TP$$-I#vaiVR|LhF{0*VpkIsy}UyCKC$)abb|L`ZJraflyQ zg4b7?%xBl21?sm26g}=hIr!)OEoXkJzUy3gFSoDA53GkBrTp1@ii(K&m*H>MOnK%{ z-^|EvyPk$TwVFFCG9`6h&yYr=&Nc{#*FBRoHHr4wOUM^^;x z*~;aT>Trwm#)4SlI&(_HS`})8GTl45!X*hVX-y-!@vs)H1cbR{OIs|a0&zmIsf?e;VFO-kzAQVkfHNK}_EJ=@}SBjnIYzZ{IOzb8S-^)7! z1-_?7j0-rhAUJqs$M+(r6@cG)m6nlaOuN((`*_}hlI1AXJ%%KjV0=|}&B(x0r z3_2pLnO2;#Ae%H$W(F(<@ecq^p^&=p^W4ETY$Y>n9Fhi|0ztG?DO?ZHGvc!x>Y%vL zaSdV<4nn9Y2vQ(^ffFU*p!44|I%K1l0PLur2K_I7kzL7wGg*&gPn=P8c%o}Om@r6# zf9Vc<7_S7vv=XfqHp&`&28i+?1AoV{{Lb9=jr}WRbUcaHPR0ltjtLOqQnIfVS&XrekbCtunRM?GOOh@k%&@O{qV5pfFKKnNU@FI|W?OH3Botxoq( z2`kApW;v$J+3&KmdUsLp%-e%`hZx~2Od$(|KdP_E9#Km0C;s{RI-oj`(i5uIR#|@yN*n$41A8x?kKp_m`TO`nE?_th+8cs; z2YQJ3mu@H%Md_tCMVFQtK_+L*t}nGP$13 zukP+3>_^R8`$a6v13z%u@U96a0bmG#%VA;pOT|$uHMTdrM~ah6?*8 z3%dQ3_8cXP;b`K@-(Wm51ne658TO55UCsZv>?!}HKX(2L_1{jY|DLy_(+h?{mm9;= z%c$7sms=c-|5X3&WvZRbSub1bX3u&@r|rYj_EDvCR3ZQQP~>+|^ulg4r2Q$YkKVr2 z@DcWQUiekMMuA7Qkv+7fa&UBXZu_ATor;6}r4Fy&oA+{3n;!mKEg+};ax}aiTK30`JjX)Tn&}+D#VZm!K&Wpupflpn7 z&yV4$(6AV|@FVv}2!s@+3%)(Qrh^b?@hx>~&=3UVs3t=14)nZhmjjIm-&C&k5?&+r zX2F})=7VHN*8&BCH!Bbn@TCv+?1$=&ydyV~9=YIyYQbVe+{eCw!$3E04NS)n3(hDL zpR&PmQbiYh>y=`Gpwz+ZG|OxIC0@i*;c$vyrwomV>O*j{uB#}{Ko$} z8Uuns7fi7)H6X9t#J>F5pde}?D@wgH1YFOI*X(umDlefuTho_3g;Kb##=*aiB1As1 z0xF}_Ai4m7SDhp`kySJzAi zn=O{p#bSc_cNtHJfQ}3l;(31*ca8u0J_jPP5B_?G{=X_Az+;JjgufKdhb4@_k&$2i ze3(5O2mzy$nw_B_m1QD`ePWG|s?kXmQSd;DAim(@@JlYTAFT1;yNqI)vj*;J^)m$I zeHqcsd1QE(VxP$G1%c%32@-+=Lm}8WkNU4p{##s#BB)#;yXN2f(c1BtqA;z2)PE%b z@~3E>a`Wh0A=x{{=xv`*br5hdz}a(cC@(gJpS_#$6qAQq{Sf?yu>zk*vtBgqMpL8w-cU8);l$o< ziGS1ffY=wM048Vl?srH00SL0+$bJVXHwX4-pxo%^>-`e^*T?_C>SfOG|Kk5B69MD= zcSJ3?^P|-M5$5n-ko@O(C&JrP$(0%|UJZhpL&9I4%MOa|G?P!ME-bNKfw63ibYng* z*yjSFtAK1Yt_>Bi00Qn6+pEg&cCL|j0Rnt5U%rjK!$1%OWUm|k&PIP6Q zIX5mG6N4(qGh~GGn#5rm?d1*ZpuMU6{g!Pd1xPLsVY&>_7R5F!Xvd;K;l->V)GIV; zA}qA0g$wl&+8Nul>^PC{gj#cflXd}LV*6rilIPXqe1pW9LPL9B_6^uyCI+u0R}XU} zP2y<&!}xE*IIs2dE9F|4?{mYT@HZzfe)I60XFtP*k4}nq1`2Hc`r7mj3ms7o62n9W z$|+f9B@-IwrA>Y!zW{&on$(1ek`Gw{-R|Wk3DseHmCwybXTj$!gPtt&p=y{&0he|_ zm22%g)O~JspJzDe5rf_@=t(!HcOQ+_Tp*-OoFb!}i_btnRf;JVOA)+RnOKS-cnS#W zA?QZeplZZ#!}Jj^6W`kX-)ir;1{%6|#K_OSYE?c?{l#y}i+3eru4x}M%n}8@E-jo0 zT_Aj~xNKJqS#lXm8f3i@5jw7^YD}}B%EY!uv~&2g*D~(mrRfpW+&QYozEc1T!18cFbk#mnUx%v!YG{Q#*r899m%69 z1|g7gZOVcQ9rQCI)Me@{_5~424itEu$Tgz&K7dbjD98(Kg)gZu2TFUA3DYF%HL;+U zY`mgC$G#Vsm)Za8Xe3uMXc%ZuK9W_&O?oo438q>gGl=o|8t@tRWjInSMt6+YPwWh6 z_zKO{Fm$|52cf8ukt$wX#$_Tc5CmKU0mTQ}ztXs{Hz%?2-v?3ylTTEB<1eN7bAG&` z^g(9ODH?kJYKzD*a zP57YPD{YDXFkuG&@IP`1EJ%i%Pv*nyX{ULHm3GHbs)iT;As81lO&{g1J4S}y2%ZC6#`zAwm5 zi4i!V8I*wNgqb2oW8==ZSwqsvLDk++QmN1Ti_5`$G`*S3cn^)S46GHk$RH3BdG2mP zMvu4Rp~3=%53~TH%Mt%_y}Y?zlEMN7&grz|7Xu8}uD{y*GF!~l!Dp|syp=WN0j#{o zGIATbHoB zLVlNh1iy|^{vcu6Z_nUwu1(TX-M`T@`X8NL4C@>tW5Eji*Y|hd#lP%%KdF_ z(?vx%Jwu?3_>A7Zf*Ueq*CknS)zXLB=bE4Ee8j%wz0~WMQ5sgM_wsv54T9Pu;FUWp z!JH7#JN)23`}M|f%`k4S+%s6D^2_S%OaF5U)V{Y52vYM^prGz!i!bb`D9lr;2oDZO z1jPUQ<8)}uXA2P2uT?+J*oTMbV?R0t8s23Z_7_x4#Aah+M0nDOk80yo9b{#jhJy@1 zx4*$oAVQZ0Ct9;?GtPj6vy5@!#Z;GZv8|K{*+7u3sR5q=QAOldg4Wmw*rx(C?Ss-F z!zNGGpjZ>~v*VlIpBd~kb za343c!I^u0x6u%*X=)sjVH3LY%WNNF|IVq^vU#c$3k?-F{ptMHKoE7%OTCVU4t%iS zQw9wyWkJ0tbzuRSQ5wbKl+RWyn2Lg$T<1{eoCoUFLgU~Eyucu!=unWSp>yy3VNeR) z(d;*;NX?XFWI`E7#Dcm{=pFQWw3DCgBe+KF;YV%4NV>FH@FO6ISomJW;*VlM*9hNL zuBhP(1m9QHI2Zy5uVq!fGhzcVRS143QH|=bqNkDcr2M_{3bJT#1%+>l-d1=k2MP8O z#*_Helal5ayBw%`^hyx~Km~KE4kHKpTJfJGKpBd?Qmki@>(VAd$WQq)V4_UK4uWhH zJuT5uT!>5e;KepqKOuN}WC%vSYcY$aLgf&#%88Iom$eIWwS^*m=m;aV6{x0X%N0v!i^ zV|4Y@P#ETUtn<1Y*E6$qz|qUce)Gx8d?3OV3nJHPDv3S(_aP<{5h1VZMd3en^R?h0 z;Z@c&t$2-R$6O$VGr%z_jDNdh$T zJA?m@s|1pfNp?QYGU341_z(mfeJ{lu1imog?aguj)$#BRwR>;-3llpK|Bfi#O2I|{ z^UVqb*+}ic{f@{lZAKG*-!Bo{O6h5GV1=sw}BSuq0pj0AGmjWv!uLB7$4M48=wIo ze;$ki0l~@C{&z7o^cEXJa{T|&Dey)v@;jqHd*@(4VIS}0o%%RwFtqo4>0hI2zWO-n z`7@>;W96QYCiC%R(I3TBd!y+9hX+O8?qG5`j4!eJ#z=r7zgCyf@5}z=VgUIu{G&f< zAp24G7x|6I{caA*jbXXjC;6orm6~4s1^yWRQElgHA^*>q4+}`Sb5!m6Adti2oDx*6raQ29DNtKtQ`DL;$*^7go>$fxj^GBRpl-w81`A zdnw(@rC~=Wxm4SO4p-G);-GbAkB5Fe^-dpp1%>Yzx`UIP9zh~#St5$x}u+7}M?u#fn0xKE(;NFX@2 zhsS5^sRGx=zE0}nBe5XW;Rf(`cpe{vcZP%G!`dh#9JDh>_4tIP5^%W27O1E5hF?mJ zF_>df&ovzM1t8WZLdGeK$OdqhQb&T7Tq>tR7#Qzn+(jwIM;~OH=)So;bslVNqZWBK!gu+IK?l z;0gyny1!V3X=!`+Uzt{N??k9#vFgPs2(Hw@kTs)k08&&98l~_o7)JoLR1tJ8M8NZ6 zvBu>Ebkljt(4ISecKe<|!?!@88;4aO7Ny;+j#?UpQdQA8l!;fm;PYZJboibQLMTx3 zVVX5q<)uY|MrK#r&uC(2)J|U75@p{30waaPNp~gieGGg?h*< zf`E`5^6#O9v5*g^C zV1`PrO2Z2!QA>=>gM%+qbqhgzXd2H@0heU1UX| zE<1ihUZXKO+0O8v(K+*c)yx-G*xP#q1*$H*@`C)O6zCU3kw?hA&!j=mhSVEPShU^Y z#mV?(CV6=@dJP4}ud~TI*^tTSY_d~M4$dao^Xb{e>|(HplI1vF&KFnU*X_-3nlBB( zDaZRDmVeZmiF-roFh3uWV2%IoZe<|`{^pChk68ixptPACX9j@w|4xC%;>e6#Zalca z7;-}rHF_@P=Q}FIAU#hQ@Yy>FQ5wxJoaPzzVT*T@@ow{Yy1?X{$k;KOA?QY4AEUF@$OizD{MQ^*+H`;BY8^bk=L~<#Nb}2_ zb~Cm9Q3?1vk_32C?HyMyeGrI&AZdTZptM0iAPn+D3)F;<-BNq|~Jg5oy&*rD;NzISSL*Q*!mhP>-I)2DNE24v{wPZ;YX4=rJXkh(t`& z?IZR*evv4(4FL`89)cD~N%#KSg;#j*Hz?yiJ+&c>vkm=!EvbMMa4F^*1^O~p`|6sa zdy4D#28AD`6smCi%R3IeYK+}PsApUV%smCrz=HO0gR1e<$&~?FIG6?vYT5lirui}f z1bsrC6iNox$!Pph>40c~qy{<;a{T1ofnF@OXDJ86g+Sq1m{vlABeEh;=+$8jsZ(88 z0^z$9`y35dbQlW9(A)C8pC|qrzI>~qu+Z?@1wuRXK^sxpH5r723xb1?T<9shdQS`B zl|az%eEYUSvdn5ZRK2G!5VMGXtuh7KzfrfJgP@&!Z6_;$8f9Wy1_P75ac8kxn1hk| zMk#|Rg?1lT2PN78g+`e!*XbqF^J#bBdVcy^`d`?m6zC^aJEr+B1Pw|Q^e7oez$XyQ zOQfAJH@1pJ5^1JLqT# z`FV$*_YMm6UNR7w3iS&CB4@;8VIvlFZu9fxMZmSqq6nhfrBz)mSkTr>j($cB zd>JCCd7)zpuez-aCE3}ZhmfCe5FyY=j#o+J23K8%_Canx6P|_kMv@-EJNWO2_C)*O z=a>fEX!adT*N@d1MwcP7qT7?H4~8${d(d)H{Oc(4M#ERx>Dw&hhCdaipEP>zOEK|A zz|G2Zw>sTpp#mP(>@Pn1g?O58FeRzho;JIa-e@+8(O~8?G$eg`Q`Eb|5pwf*cP%sN z4HOuJKn%jHzaRgx_0O;WaRj7Zj3eYXHDV%Q9%()caUtXhKNwZsKnPTS`3K+=_T6aQ z?^2y%%PZSo!K2qV(>b#)lIfi0zX_SZ(FlvcNdD07An6TfC_~c!&M(KcR&>^miyHZA z@Tb7PsKoGiO@U+n2mEIgn3euV6op(M3aU`wI^F9-`j#q@eTMCqquomUEkF2L9DOas z?=mU@pD?2Ll@c6DY*C~OavhUALXykBKt0Z^27L&bll0Bc4+6*o23}&P0wZa|mZ{!80{?1$W z0F--!=5KogFao;^1TVHh+btzv_guqtYsbf61iruFJd7k9%Mh>;^~}jLZSQ|2X``y6yg|Zu&-fXZxnY&(@q~Z_vIjI z8|U@Mm$dpN26^uAX!9-`-i=!JY&U82l4dWiwShlEzYYFSe_j0Rms+0u7nMkUrsj+E zTkB<&0wdrf|Jhci+B>Px_Gjy$WFOnzA4M#{E&-DEN1^s|H{Udv+Y;^V7El3=7-tW=xHrmuLq^9qJIVDG@t;v3ZH1io zlYn4pprUXP|F|1D|r?jK` z2LS9bu1$6pj-b3T@v=xKAU=v=ICxF4|Lwc?O*)(gKkW z>r;x(&4ge=6`BJY+TRSi-dNDsPDJQOdv;_iQ=>)Xu-YTBErw!5^%Q>Od{83O zZa;MmKKV%Wib6n$&=tY65NG48>6=e!dQ>Z+ot%ZCBgl2~5qpi;t;A`AAZJ3> zv~eMwd_1M)U4ssz0>LzEP@*6#s8J%U6bjc?U4z~uC?3~Ud?3HnL885S7739y9`z#?Ti6Sg4$kv%8TAoDhpHF5G{|`tPpxoM zwqnZ1dblbpixj=8E0-~%VA^5`EFKy40)mnNg?cCC2=bI%EdHXpk0;Bx?8gN(1$t>% z7r&$*(Yp-k3;d9ue$2+7m_(9%DI^=kc>Mi~d3`<+PBZt&g1Mn! zD+zEZ=Lem6Q~pmdI3<>OVh`X!2C>*bGm5#|+n*OYH5UsVmkWDGS@dq&|8g1cF@hJCi`%=sYSvECUsI-%#U-Wk<3@V9!= zugUs-+8Ug-iG9ZNVXGAt&U^NoKt3ct_i|OtADPq3%vtB8)<3EMg2$EKkFpN}>Cyiu z`1AZfJAY`LWS`$s=5}%yMuhbIq2#6cFDdqk{5-%f)Pj-vR5GS_P*z{=5P&a*KQ-{N zr1k~WV`^Ml{FQqb$U_vo1n+>nKENmJbMm7Qj6XNP-*%zR6cA1-0uYIAfD7bw;0S1c z+GYEI|GtwE*jE<1(O!3_1n_N3Qw$WSwm&=1u|P-QZjtMEipGw^{nP$;yYpFu&F@{9Fry>bE;*=d2*I|va7 z{mi|vk{3d~J4YR~FBH0Ih=>E9xN!B*b-|4m$uhxW{9GEO3>_K=-LL{mDvufpR7ux? z&t<}}R3mnE(8WbjV2Cyhy@RI;nxQ~!C?-lvLGZm&rg4*;L6bbRe}yU__zCYwPzoW! zK!Gkm-lY!}E~7~#?4PEOP%M7`tY0v!&@6bfk^`0ba!qd^U4u6tFp-2Y!Kx9bGF}-d zRPP{A2pTGVhDveqD%eNh!YhH`QVWgHk6s-X8tQK83_ADr+O1%<(#J2z( zw|yQ!{nRW7>b+K=%!>ciIJoi-FA0T_B8W2qgsiLv5hd)k*Q6ZhJC$ot?hR zPCpd1ve8FetA>D6qrfeBK@Q{vIjAN`fQ{KvEy>rD%Eh#HnKZi7-e?8_+GlfOAL7?n zwp5(GxnADiUO&KacMonRAp7n1ZzBi-w`B~1g_^-bO0LpO=oofEl>on7gtIKUR+I#7-m=F>CEtSG%*BR3?RRWCcjNC zdzb(&`Y~gF+v93;RB8=Nw0w;U^qegyN%`MHy?Qv2cA5`dw zCkVPC>?@CVD`PwE6vtn3z~4q;{65ovpT&V;5QhIl=3iTM{@EV@Nq}g3QvTc&?AeXr zou2(mBA*05f}q3x2Px&C;c=qra7up!4dZptfAs1kj0${*<7e_AJGOUr>(sD*a#WpV zYD`LK_U4zvSvD&bNLF2bn zbQjA1TiAO(qXlpgPw4&|$J02*cEj+!*)&c#&Z!eGeJI}oMz{Z^j&J{n2<<$E5^Be@ z`DDJp#50?_j+-VpPKLz0OnOmrNs>#_>W-S7sChYRbVjXC?DbrSJm`O0S>t$-4OqJw6Tj+mu`*luEFOO9GJ*3uKI>Zd4a!C#))aeJk~ck04i_FeuD z_Vyo6H3IeMmmTo%bYw4Nn?1Wf2x!1G;;7C)A>i2lL$jkJpds3U;LnZ+REN3vxHdUF ziv@y?gJZXbP{e3}eMXSJ$4Vmj^E(`$Po?usRar(m^mTY{ghx%;&Igr|=0a7U>&AHz z5J^tWh~D3`;bC=%gjr?tqcUUy9z*bg)A^t}BoHx#AIBEVC)Bftzhn@;-&9=~9K29KOp1n^k^_B#eL6Zs8nk_LX;A7Q z;l;)c+v=2%eWKTk&(9qS#P$PCI{3L4NjV>H544*cYP;Zy}o&xaAopP7TAFC_RnbP9ru>E?rRA!TBS4Zp}4 z^N|5TyOkS?CE(c|-pb*j*Sd$^w10n!zr=9xeJT*9G9jCfX$K*>gMkYX1-(T3UX6o( zANbEFg;Z>5PF-nX8w1(UGAKX{6j;)1x(bHkcV&)mHImMF_q~^i4FnAeOYGC}#Mihw zFp=D>7iIx8-BXgb460tdz|t!&ME}$ARbFCYQAXoJz(jB3!=VzSL1erX1VeRr1%fb~ z+eZL3Sj}JMsZ1>RdqtmL7#1vNv4I+__S$_R&k=AHD5Hp(@QOqX0)N3Ztgb<6c+*z} zAy;q~qYGl5@IvrP4s5^0 zWa~I!o;n46u}>+`aggr>B79z+#+c#{krG3@A+{Capmz}Z3K=wzA7$cD4t6d~YsaA? z3?qgO>Yy42X(&XSw2P0KGV(STe=1Ht=ck_w(=XJ5<8P(uR(ZO6N*CbKIplZTm}ToT z?*%M1r{|sIVlZzH8Lkj!uui6Yj4uqvm=$Jt@St%W40EHlc=!7!4%6RW3s&+UBS7T# z5bxbF6N0H=D1Zhe4-|iuIE?cH+VhR-h}W~l^^7^NlnobGx6}%+DE=nXMY5ptFOlpQ zCG%0dh)4jQcB2^~a6R(>#01gVMU4D&F)lWO)R$x0hyD7_k;xwnry8D|_K)qidHda6 znSb_cJ)cA6=m(!+(M~biEk!$(@m4X~%tc=dOncj4vh(C?bCbpSOM+SV;c{Co6lZmZSJheX>_hF_WsJHD7A7sRgRQx5Z z>IV#GSH^%~9a9L48nHHfm0dPHZm_5k*Ww?p4yt!BP@U??sy@d*kOtvMuB5votvgp? zzJoLSOJGQ0`gG{VltU?$-o<#p5Ip-?4Gn_#)!=A9XQWewAmXhlbN)%h1D)!|Seh6PpC)jg33{e@I1Mh<*m zeQF%!KEX8-h)`CNTPMO`C8kV#6Li6{5h2mjPK4-)#jE#WF!9Qy0tQ_NWCYmbPfhh;_{RgJ zaS!}y{3||Sv?f`N(fO`#(2cII4HPI58uQK2{3!d*uO?I5lleE9FUFI_FrJPuicb2B z{g@0!v&%tpIZRrYapQ7aZ5bJiDky)$T;1SrNR!|B$T%-ki;kT6s>2ieZN6f^*7x;E zFx)Qv%Tyd42^jiC~}4eWZhQJ$Y4!MkdERMzH{ zo>34a>tQAjD! zJs-aOp>q3n@|RS5jrInzkbgbn{p=*SzltGHTj4gI8FbISMzThBnL$O04rCS+F z0K_l>?}IU)=K_k=Bm_DXLTox2w6~AxK;+fNi^$G=Am9@bqUUikjh^N{+zogN+@^*? z=RzzdPJyQ(zfk+9lJRP}oA{}BuyWiE2@AC^SON_(4IO4!+923ps}3_)1tsvXoOzKb{quSo;_6II7~wh zYgHXaCe$@=5DN|3WajYkB;Gz~8}!0JgaQ75!uhMB&m-aZIvXcFh9pi z@~lm8MTcyjv_ORdadDC|VI?zLknb748*Jsa7vECMF=&SfcutBh*vBt22?b?9 zP%$?F^8Wu9!lC5AXD9i7UW!UzooK#DHh!OHs0(M7?WJso0@x(sP7lv!|#RBUFTHq~nJ8rKT{QC2b zksh7WRHh<&CMNweRLlOGYnclUN=-MGouTm5b)3-rHazL+ovc0OG& z-*z-v##3s(qv^lXi%DNa1wQ9#@*8H=olW89 zj4(f#&pw%`Veyekwo7TaQ?Spop)ue0(s;W(-YSl_i_y12M9sGteaS{&3gb_?=xt{7 zAs@fZ*hX{Sj-r>DF@h`auX^|t)VH2Z{v^8*@oxolFSuaLvajL-8U$7RjsJb%AjnAv zM|%DY9J5k_kLf8~bBhU8;L+PG!=OLplP`Ir`N?i&vQHNDG|!-_#p%V|-obusKdvi` zAUC%j(dSt(|KQR2`CAV$<@|h5DC51Ru$XaGo+67s!OOg#9Jd&fn4cD>Je8|Ke@1>mnQ z;JZZaJG=C;zZshU2!A=MApRZG+sEX$LpC7bk7w}5U|+<)o-2H51hgZd26dD#_sHRE z?x{em%QUgg^}l?bXy|L z(bYaO`9ywBdmh&!+NWg-z-Z}sI`Y!(4)iN-mnXf$Hg@k%;@3o_S zp;4fNpfUmlf(2^6JN~t0rsf#leXk7nU^^cAJ&o{o1%F=WwPh^0XXjD)QUugx`)5)F z*&yceCFpR;p|hYgJSV~vJ41t@Un4p^7dzUS^Vsi+h^WnB`YL->z76{w&xJ{v6zz3S z$7=Z)(y&;?x#HZs#{^_Ak>iiqRh@l{dM>?~y!-b4W-fLxabMuG&U1mWpu!qMMz_JA z_>Z0exj-)Va!rN`7MjPWmnY@RKfW~|5CZFWUmN#Zss%d;`XVEy^ysO(e>Zmirh$q)e==nGGl~G!Cxn#ZGU4VB=Q`f5?i89;9t? zr3)e%)@3DOcpb(O003evjKDD0X0qb&voJi0e$n1 zn==GuWfO4<WlE$B+Wp}|6hS=2>hm+~Tc#yrl3dt( z3?YGq*Qj^Ka7BjEy;)77lP_dtB9=55(9k!!n@fX%4&gJ2d}2XB@QrZLdk4dwQ0Sl+ zis9%Ne5>BUw+ycfEa=jp(qw2B3<9BTO00Fxuw1d@C>-=+G4*1wY$`X2eLqWMtXB?y zx#{a72nZ263+6Z<=+G(9=aD!aY6JO6CUm`!rRKs{g)1#pgaI;Ga4pP^6XE62`RujO z1y}8Z9z(;cI|v$_AsK4Vx8$TnPhrNs8LuEC6H5F`QY{b&bH|2Qa3v5<)-#}?pR_$o z-=0{IZ_K{X7|{*LFC`q3WeqE<#SlgeCX&_hFZvD@B8bF@L*-RAd7GcU%}tFJJ{PB- z3dzSp^0}CNG72a7KhJgF0{8nxJmv2t9brKLN7qi;stkGq#Y;Szk8`-D6@z#v` z-E?jccy(n9V<+{+>nn*y*GzBosUb}DKuMxa@czM|?~c?z$l~rE=ZAf{k>Abj-PQFC zvftH>!ynaN_z%PHWWF@)n=Wp~VBZ26ax#Pbh(pjpjdlJ4j}R{G9Wkx3R}GdSf3;somrO zo#;=6CW2@mu+Qb;mwIzGS}+7XA}Ai)5rJ^s{!kr`>}@p!e3zenC`>;x3oh9zP4^V; zoo&prjp=D;Uh6I{2Ummfbv!q!CY!|&{P(ZNzZuQUT;_)dG97l6(Qz1y#PX)AlyG2qLbwi)9RQWZCltolZ64!+0zo#Ya0P=i=$YtuelKq01xC~dbK*?$heU#Y*RGOlZWU>|`pLH2tt1gZ;A>{uEcoJE}EDf;~O zPwo6jNH^Lo51s#DtW$da3={V$^(OFNl@>rd+QWT4Jgg;qXPj|pGfV^)9pKoEv|>AN zcQ)WNK;(Q?5Lxq^4;?N=c}jxzb$(-!juRR8cCelkcs#!R0kJouCeQU zG!CYspe;2NJ{5LD@1W+$`6LoFKf|U~%OD8o0-^G2!clqG)P(^x@t;8OOUisJIndK; zK0Nc0z<&)VLLkpU&?!yCh649N{ere2Q4ygRi@lo=QZz0Mb>Vw2?2t!7AmO;wL zN(7WBs7Z91K>`;R!x$2POr>F$0N=@~f-)Bh$A)VZXW>q@KN@A)<`wheR4kTc=(?b@ zpr3zJAZ73k-Vx?=;68SBkXO7?x1U&$7DHu9t7|YEg@DjlIIoRvE{Se|SXhu)NbU>@ zoZao^O8?6$Tu>nBVj*;>IVF^dxp=7z8n_c@Mh?Bup-|)Lpg@)y7R6h^)xq~5Oauy3 z7Ic4!V`8ci3JqoTh0LT5zEstCEzltp7>px1p`qYxJ;lBi|GjXpiOR|bf)Wv9U4SJy zMMf_fE4lD^@)u%Z;6m9=xHIZemeIp5BfVt4oX;1YywAoTiW7&wjnb4&!6-1fwR|(i3Sr!hPQ0&x;yXovpX>R>*{Vn!yoWB!{>WrYcjuyr}Jcn+BY0e z$CE`gS&Wj!V9cC1!#>;eM>9cL8P2BStSf(#_X5~a@LjQ;ZzKVxTHv9=Tr&DXbU~l| zhJ5&fhECA%1>~pmT2cY=k-WB7&rRNBlXn@ZfQ95+F+Mn*9M|XB=1dacqSjfo2lLU4 zi69DdM6yMfRS+Zf-(M^KyTA81?we~+o%9wb{42~G3#4Dfy%`;Qu-$mlAC7y&u>qXS zH{%jI!d)V18paLEgFZTp?dwI|e>n?lO_UQlH1q2PnLOa)X zwxNeYLv+CwNr7pqi$41q+D5TBXAB|oJE^Nm*f8ur0~D)4>j7;z)Sm4E~RyQ5rHEAUFa9PX}mk zr_dXX7J%CLzm}mM-FV1;d#B;#k6OICz!(us6cO%MMtfBQz8JRCo*J(Ba##AIbEld* z#s|{;s7F`uqdcvkV$!Ynz1;iG50f7b(TRqA#qL%fc~69Q`7P75&DWFWRvzXv;IlJE zes;mPOk*o^A-8phwoalP?HY-HVnK``G>_r}*)KE?OYOsQ`{cBpJ-xKwVgC49zqMu9 z_Z1-!Ezl`&tNmzDxY7K%)q2=!|1^3N1^x~!n6AzCFUf?|jvX8~g_1!C46sNGU}ztN z;X>8ejU!SApDkhE7YTvEQ{st(j)^jSxDbeZNIW%r4;lmqYubAgq3tCNhJnRiDJFXQ zj(NnQH}4npJ0lIIZWWgaKjQQ7PQlwxiXLT4v&l}>(se~xws z+6uW?m0}b@@gFkb+sf64P&ig`nWn=uWyUMTZX(f{H(uveP5G@dWdK3f1!en%|H{kP zp;8(_2n1K1g1&g@K{EnDMxKC!A$?G` zlACpM2ZI)9%ZS#i#z7G*;TpzYQskwb*a(z?3s?RRd)+G}I%#h&RWIh4WmpI-==`V9 zLHS5R0HG71JxlH&c4K>p(#Dw}6Y|iZbB(US5Ha&IoTqLJ`K|UV;SkmEzbeIkWRp!^ z=K;ZW0%#I@X-R|bIGNf0&)_D85j}B64`D=sW1QlkpLAH9p)g4-{EH!Se0vm>c~PK{ zhjbZIFGf2QZM?w0Jb9B#-qQj&`COp+?{hx>T%529(=Yk>TY0)!^fO|ooL=4F&!k*j5u1mCbQWbzvuE=mJKoj>EpXcK=RV?jR6G&aV2N( z^_^X#5Re=3-|cL9t)9PI)IQ@s#rw?`Mk)))Z?+s8{Kd1;bP*+3eGLSWA>)O8C%ut< zOU4{@D7O1adoUpfgv`IF+G5~uwG|cW{X%_Mp!08dTnzzE&I?l;5#hY zY9E!_`^DA~_iP{78DqgR1Apx#i>y8*K;TctUN&m=lN{LDFQL_m{5p1WUk!qxdaH)N zT{8cmKyU1W@Tm6ka2pEb;SR;Y3s(V+{B{5cV@l;Y%Oj#PG1XpL{p9Uc!U%QV(CP=r z1jthY3p67)?lbrc&klE-Z#WL!v1?SfRqXB*2SATeT@jw!Rx_Wioli7%+zjMR>4z*@uEPH6r4h`l2J{`Y1`S}@o4WYxmsy#~|o=6dHv)k@-%@|~?8r#{) z2p5R`S6qwtDx62RgCJv6{8Nx_@6=xl6%gf;`_R#Ai@rv{ci@<7|03J?S_a>XJ&Y{H z!7l&q{jH*LTNfvFp|fSnXwL{Q*Z!Jm8Ss6}w!is4)7m(0e6!4&S-nM6r1;1t3 z@9?m(nQcfTY;K+af4fwNoAyTAuM_*F3lhbPZT?8}r?j0t>)J0l#ai!=O(Q&GI72rI z!H=8Ghd_Y{eh*t0zrPy%$q^!-2TbN5xYhpU*Vsz)rSHE<8Wal(5L3y}<-O-t5|;+Q z)bBT&zrK1Hb(%E;7pk|9Cc=jL3xilFX9@LU3c)E6!fFnJEEfXPlcwd$Qp!_0Z}GoRf`jMsz}SWva&FL;52BB*B{R4f)0DvVmvVDNl+ z@1Prsy-d8KKuW#hKM^4e=M)(F2+x>P7w!|HWT-WJ&>#;_r7Q{uxj^+|2r`t6InM^v z)5}#?wPR5DEnuf2GWBAfuNvJ4TaZgC4~Q87c~T>K>673?{c6>(M!W>B{bkWaS>5% zi|It;RUO%$1rSAq@K)A~u((MygG2>lf#5SboD09GQ|q!hpWJFLd=+fPGayxZq(E@S zHv_PSUcEJUlVqtB|LOW4N@2i0Btz}Jj=V+(A-dqp@N8-#7ACIw_3S5%ngBW_8B)=n zyv@ztXD1&EhJCXykl*A>*;v7#&{#13QkZNr7i4M(n5#1xz1W&n+OxCEdA&Pt^`;k) z*0eW9gd-QwK#fLz<$BDPiz~T87RwuATsY!5puKOoAkA4Jz<4|6?(>+F03wG6O@23% z`68ZQO=ef>@LL%6Mah!!uQB8|92@Q7@aVId^hdMH;ROC89B$HP6hxw_5Ak_-eBO<# z?a^sN13#KWiof+i=8O@XM{e&x?Hg{DN1M4Jz?U6-$qzTczQKFLz8veFkza27CO3MQ ziC-N@>&KDN)!U4niC-Tx=grQ%$;Pj;@f#2@T4!oA{tp^D5pFf3S*-Sw2=Nun0et-a zAf)^Aa7;XqozKV=@`Qbg4N7G{aiOb#eu1mhY}g;!ODBv2$$)@V`E$v)(&T#?6|m4= zoVJ(e{Y87Y989i~`R!!EjNga5yGQ#6&F}iRqPg!?`K6oF81Ra+uSWgS`DX|?oz3ih zOs2DV)z3#(3k6)tzL5dkxZ59rbXwg()a{RZ(a4_d4oAbW0UyCGL;DhxKZC-!Yos`c zyZyM+8@Ib-dk34BhJev&vtMaN)%LJd$C+C=A7rW3_FS$zEO!rz?H{G?4=S@P@6}^& zTLobcColbcmzgsLxEUH|YLfbVuy3h_=mPvTjrR76&HWN{dk>KP2>H`8&TCTh^?+sd z@G!Z3szr`_w(t!J8nBDP>z(_Lv3m@UhJw;8PZ$i?G1~1ZqNJk9DQVLN8S?;X{D%V zPi-3vRr=dO>Kkmsf2>_QmiwEzF4{Q-U;7P8;m0y22q`7f&@eLwueLZd%3vL`Wx1v!d45C|pL5hy5FRI(t_ zpt=UHxOp+SN#2%`)}#(Hr#Q%j4u8mgNP{q9*%(oZqqM+RM9-uW;IlSCP)zEhLm}UT z6hRCh+*vd0o(9vYI=rGlUPvscn)P~q`pQ`_Z5#x-JdE14LyxBpp)*nhK{V9C*K!u8 zGNJg)4JB!@cpd2ueU5||9LKzhM8w&8I;76!Lnkd~zO@`g=&$}nhXp&Yx^Q|K3Su5L z?xjak^Ad9psaEa`>43btM&wcclfOh%$3)AyIQeAEXNXXqDHJ;XR$L^#Ew6N3E}8c=oh=qu*OS?D zzO>`jY~>wy%<#*jC#wR4+>2@ABuXx_Hl?HF|?1m?ecK5G~6tXzKH**?dHbsb4GZ> zHz&i_ndnVs^g1&#p0oAJ+3qM>&!F?Y&cb=Gvkd&zv-mK$(w-ugnfYulPDbnY7GT`Q z$%|t{2`~1LY(J@eF9>d&3I0-r&)H7Au4kue{!>Lb14^b8=;=RWl;d!7{UJFXubqtF z<){mww~v-2MPWW8=BWAOh@q!=yV%+PzW7c&;B4;MW)43H7uP1qTxU zoD}V1yR6-h8_n83c0Kd z?LLlrMoR#n9}7JqpzWz54qun|wg`ppZ?Qq)3v{UKx9oa7{7wTRmFVr_P{bB4`%d=- zml@vqS3z%;v8`Q^ALUwl^+r2o7wy0}_Ejzr)gX@!Mg1F9Qs670UjVT{ zPQMyxZWns~4eucAb&UD8NkFuJsoqwu^G(cW+-&@Z;Fr5F)RX3SxpC6^a?<>oX?!uf zJ81xX*^AFdjg8EO0pDj^M>VcFYS?8Upxq(craCNYq%{!oWAd^V^00mrz&~Waejxsp z+qu)rTouK-c;2lx2bIR)>|*%GX5(&C6bJ}5@3t@0)d&CGZC*U=T>i7EF(JZ1$j?sN z!*u`49&Waf>%2g0pcZPxP3p*7fZ(rh+*6feq(LM`H;y<9N+5jLaA`2S^#8MHH+=pu zY+NZ+DshjwM0zXL_L=iM1#Jb^HAYxv6E2KWbtHNdE9sc0bV9@X=4Zlqz z453DGq4<&;zIA7@n$h>mjeHBEH029Nus`D5C6^I z6s~XgK6y&iqUVcmBjrC|Zwfvck8Vf_gcB8u1%JkQ*~x1f86_E}He@tH zKn>J`^AtcRmx&6#E(C^FLVp#|(4TshpYgda^5bp_ps~#hp`ox3flxBXqj7&6|`+HGV>)^)wotnQXX4>|xeG9=*v!h7!l zlJZs6^F8(-`@~Ij}IB0JQe@R)oWCjo>7bEr#&%D zS9A*)_YTdE*q49bA^xESKFs&ivk%xos0e>>N$+lI--z>HM1fPuf$RVItR6ubgIKfx zk{9z%6I>kc-Z42)8^t=(X_{L8OJ^h*`m0p#C-EBz@B?0N<-*t(on2lP*Pp7(bbVFo ztQ&((f4W(0zOS}lH&5Tc6U4*+`$QJ|e|fZ#Zha1mCpIsbu)Nlk4(z=PTgx@p-Q|WR zKk$xDz7e(fxgnjXZqepAXLQ?8L^zsKARaFUBTBuU{qFZfJh~-_d@MWvk31LP?*@YGq5?vV#-l{Q7;b(- zx8rCF^7F+*1j3!Acjx4=&yV3(n%@;#5mKLe1U2N1=@E8W2mTW^O8IjShtm7x_WekW zRo-4T`MGuXMrIDTaoprl{;nAHL5H78w8lmQRc7%z(D4SSq1(ZKIguP-2j@9d+4*>u zJrr1&B(lS}J;jVT&iK;x15OGMuZ5m(79c3$(74cLIa+VELE+;wl%}_yxKx;cdgYlh z=q*R;#n%XmMy05dm{bhxkT8Xef;{hB)O(Gu?SJOsO>K<=@a6D$aWdOKPq*TjIeNx< z^zCKZ3456B8p(f&Bpc-ORNFCW?$X^O(UFmwdA z62TE7+XoG!?gHt_OVqh5^o;-R@=YVZbhVeS_6yB^q1Lzm6_nedwA}i56=84F4U$?|DQn681d&tqzlHIe_o0C4F1lL21CDK z;KEQNe(fei2#km@XoMuxP%j4KQ1Tq(q!j8heT-l?HVSkE^oPnd4Cayu1hFt*uy^=AZ>im7*=B5D2Rem0l_aUAdyUn z?>NFluL$qz#egGN7M%}96M07@3Tltq$2HG72?e6S*@_;ziNx*?oVhgU;FK7fdYa4JiX&hX#w7M#SJ|vU*DwaI6?~D^<#Te?QPma7{U;6 zG~145o4L|hl=l4_wZlP0^fV3ScPErAR}>oeiOl;2e?EGr|;A;&d-SUrb0cB3?x&=@$Nsg zcuxO?$QPZ_9XvCf^Jx(9KZby*h1xxh0vBi5WwN;VQdwu)+v;%Jo4$+|FSGU6mv29w zU%ngrk-h^3GJ#nfD1XjZDY(xXxVKu{SE-sWxh)ubXG^2`*?cn=|Ba?guL4ugoiMJ= zsIEJhwR+QbFC@8iC<-s^WOp#>ArsEpy-9mGZw=-RCV5P%opF&_ZQ~N24`%XaYsB)U zs)PH=zzF_xf$6kNP%U&n76**Dh$xC)`z+~q63KARN>0N(EB}P?lZ>=>Ce6{#=&5!* zWxuxTiF7@lVkI-pM9QF$Whbv34bvn%CqmRSJ`d$QW9+^0aUHY(2H8&~<31x_ag#u$ zpHK}oIJltbzNjzIoB7ZJ3w^TU`0yh`=!R{vDq)ThL!fP-m`y7%?$y6L4Nh`@upGW zPZ@h9;Nj{phWqQ%iO^T;&v^IGBr8aONr9kP@HZ4lx1TfOpO?%X38<%1G9Y*^nJ}^& z;~-`eE>j*M`+$r)I^-zAlZF>eB(EzJa}fyjTCWSMA5qon^G0~+wOwCi&Dg`H#?5IS ziKIbIkc&cRAUSyPJ8ue~h3YV@rklw581j88guUv;zB%@}BdCVo zjO2JN8PseJy^pXMs=BHpd&&&O;sbd{eC@q94l4gyI-gKaf?s$TdIa|!4Wq6>)rHrp z9b*$dkf#K5vGbp=w>9E?M1kmqp+@{Z8Wysz*~AbbCSvxmAe#*)61jO@>R0&3q04nu_$ZRqxHE_RZ`4MU^pM^GbVO?afQAS*bnEQu&=_>a(oDUwM3A8GkMi@<*(L z{c5q_OtSi3$Vo{$7i)cq74|h%-Rm zJ$;1#zE^Qs*@38i;HfIV{7o=Aoc&7|d>{yO@!@`YkXsu9p5~Xy^5(w2&NNrm!E<-| zJXwBSZ?Rny$@9ZSK(xSba{lsv&(GVBb7%zI` z*LB zyF7R(4<8;!pNgGNC7i9Fh&3798cC2#H@GsY04xUajFI2q(ts&%zj}=b`86X?1|;GqcG84i#gYBn{D1I(uEqdn?ls{C!MdQ zVlfqJ*8)Ek`;LHMBBO-g2!WZdL_X=43W`e#{sP@%C4v96fIqw%#QqI#l;ncLHv}&a zZy(1us`K6m_*@LTedEj!?IDJ-4=r(!pCr9eG6yxP<~vCW1b4!okZzpF4~>ly)KUi| zB>{7+OG>E5Rc!niUBhLU#)Wx~S9vLjQU~pBXmVOkZ;%}PI=xbO}3A+t1}^Bk$Kdzoq*t{KN)>C82>fSjP_FP7@MXfKsz>1zaRm+3TTXImtD#c>{Z~%CQK-d}V9WOC_{DcbwApWI?2#Ojj%(@Il6MH-Ec}^IO zBtWTvo=VMLHQXH+Qr;B~UN%WClo0refd3>y4~s^JLlMO4@goqS;-(b}gER>6@h*sk zr(_xaKIQzc(<*w~h33>rFN8bAUO=JolWvYdgnKH~8dwwsLWh;FGORck{){2x(KyIa zRpXNg2T8Z~I2${P|9pwkLSy3YB#AcBEMw0&WR;!Oz8>#-2g~BZI(1}-P{$KZrPFQc zO_a}<_!add3JP^RCPWZQ1Mi~18i8gc3aW4{T+^P^z`%t-UfC_fFNf;wlYl1xmA^!r z;2=3HA`Lp~L3>`#E|Mv&di1l7U>w*do}*aoDTW>~6OKTn;RsHVLTE{J7Ti^V_0ZPJ z&->lHSZtu?uo%k3`4@~MJNt+uphlJK0Fg6lg<5nVlA>D_`>nm;N!dTja zux#{K4T`*r#&BJ3&mP+pdCT3!V{-!Yb*7K)8HK{yIMbL=^R13kmGRx zK9;6n!{fF=$-@aQ<pjlgLAU_G{kGB(i-Joow$iJFs8y7n$A}N7eFDtP2z!TTQj_cP}8n zRvdNB(6D`eUpE%Cb@5O)E_5O!nI$?V(#V0yOvA`8Vb`P~!bGNilTn$N2td5Op(!xi z`b6Cs=JO^+^uJ=59l|w5kN4ZDfUhGx{G=nGqblJeS%$n3x#!c{r~)&1_Xc$P$1(yA zeSYrhkk#XsIw>)JJLS*eFJbpl{S>WEETyvS#QXWwtLNkwYQAdqL&Fo~4dPPK;<+B0 z8HsoQT=}7W3-R1Au9tAs;tQhpZj|t}#|6F9FD;6>@EqNK zFrOXo8ZqQR@J0k{rnC`h&@#2AMJzu10&UpW`VRA1gGLJtq7Vc`0&`dFSb*q zPO97~BL4NO?NPluZucjx!K^*BepJG9Z!b!d4 zLO3WW^pde=*#%vYsA`8om5e0^y2V(Xf{upgnmFPtXdnBsVYh_^eFG*cM4CEpjix}C z3_X32G-;Vj6c)G>2zQHTK||?t@Ei)Cx(RD)B1F9d7EhwhsX&m6J#Nr-M**T9Is(f4 z>v`0X#l$s28BGY0*-={5IH(E5k_IC*L_|bu^a{1th@(3@1-dSHtR_EaK^OlV2X`A# zQhKE8g@9TafAO&*2K6eY%xS{_l4C)kt9MR>K^+X{;;+X(kFEf28bR7Uz0M0zMil6b z7|_t6)6Nu>K@%p_ISZ0#t=h3DP~Kr@zR0TbvP*mMhx87<_6vsg!C)m(&>%6?D)Kt^ z?fE7jZ3KcY2fokZ>QKEH-!a(d-Vqql`OnWloPqiBPljbmpMG;P#|E|&|M9FWBc#1J z5wZ-z&;{*0u&Dk*@@NEtAJ7ZcN|<7DF>>RM3$s*;RV@Ce_1G!UH(9hpuleeeFhp*r zBkDW^iC&lqBS7r4?Ppf|ne}0Ay`QEL@I!iWnBAP@)~ET^WzkS?ef_xpSX~gKMx%(T}fr@($6|G@Rfo36~f&Hhqm-etqcue+%Bw7QE53g1-l zH-GHRO6_^RIVantG0oIR**de`^3AEpZ+x$Azb}u|&;0(Qo!oQ&F0!L|VS1h&pJvC$ z*#X&p>FN82@t*hX(U!+D{(GNZ8%yD>7L8G0r4+mTA6030aHcf_0rB@NKBOr79;D_6 z694w#zX`Hp+AYALQSUu3-*IHvIIK&d6HcuE1Ub;Cev7#yPNLxWwQFV+*E6%jm>rO0nZu*)p)Usuu1xO2wKR(~q-&%U@(vp=hKna^9p zqcf?rN6hopRJVF>R_)H1($-R9b7Nd+PIC28o}nEhn7%r^uMEFD_V3CQrtTI83X_u~ z!KfvJ!emros9|6chckw!soq((e`?HU-!DbIevHCgC-z_z*gsEqFVdZJ{F@}V+3)Ey zew{bZQ*~*9LPN12ICx)=>!D$vev#Xe4QJ8~Tk({EW0f#JwFZ79F9vsrngTnRh^6^` z$p;YpRHSY3nkZoOJP(UeP;;<`kPkkN(1&eYHD+gezFy+(XN|6kkqkH27cd{F9RRqw#Vx~ocVU?&|!7{ zy6WNoO>`*WiUt2P+Pk!iqgKDbh0(ec|0R1sp+8JS{emtHM*DC*ilC~)hEPyuK)Rm} zf)}m=c2MS!K`*>I9fqDl`8kv+<3y-3u||n_jo4t$!?95Tb&~6)BQl{_0fZ;?3o@H7D(oT+ z>iF}d`VD!n{8fWVzMm3ms0k$j0l#umNz})oKn$EY5uR2s4mTp_hz(LP?D2 zBj3E+Pc4bxWFq-ay_l?-mt%#?c+iaB3iuNO>bB|{jO-oYrpzLTD1t#9Gzvt$<5@WJ z!1?cuK!_g6831k{_p$22pkb&KyEM43Sm`5_!k4{bc*@>LLLFUw27)+IV7RTl7BUk} z8j$(R!xHfQpKihk6E#OpI0&&hK?)Z4RArX61tN4U(6Da@f&xT(3YkhG)sT%^3>i!p z@tkOK%Z%@e=qfJj}&W)!mpwr zqmZ?ts_}>1lVRcx3SB0A?~2@Obe{E%75*Rnh?%+0P2 za*M+Zi7;pRWxTXZJ{sYzZ)=;I$~y75yn0+;7T4#6Rjjl+E3U~FF0QT&4aLF6uKKrxI&?KE zs*Ke8C+#__Vd;3=il=(<;y?HF1sd~_!;&#jo4voA*!`K+#sIge{WWm6hqKzhbq8V^ zH93ZLPoLj=jN4ph-`BtIcrDb<9B1@A`^pZ}TG^!m{a$7XeG2%zKDKzO^VFF<_oh#?_1Ee8>-y>IX8V2f{M|Ml!M$8RuQt!~#d^9RcF|DY zP;bP{6$3uL%`WjSn1Ag{?+@*F)uK0?_b02~*uFtpml}OUzFK!&SCRLzHLkWNk8P^G zhJBB%QMo-SwQ*`cw#UYN`Nkw&8Dy%1baj%gkJ6PcvuQP9D1Fnf@t6s6KsK`wi?m_N)4W zx}N=BZ(Rb2O-gkrMpUzny=tf1d7+lZKBF#GnZY<6?OOnz46U?I z!6WoDNGl^<5CR*VLwmwR)LCS?ge1U(U_CCe)-F~nA?h8PZqD$r=O0Gep@AdUTyhkf zqVrK`4nS$tj?|~OknU?A%vj$AJUeriHnxM?A_x=%sFUWzHguhV#^%5|HLvZ;pGX@PfM`Nh?uX9IY zWj9ssz<*W5zglP5?$5g8d3!kRju-vux;A_s@ha8vb4>a7To1&=5rs$qgJtfwO&l=Od|FRtnf|7{m-|r& zpo#7lH3;f0z(jwqbDYTBnPRajxk5?03>^W_L#&LN2<0q^SdbN9QQd^T?4D<;6su1W z=DSqwSY_f6ALuLyEQT?}UM6;d(7;Z`VpVLtUhMBB91Nrgv8i{^xy^}?TM;hfpF}1S z;imhDWiC+#`3(^U9IPVXMKt+cQ26y!Q8Lj(SkTX(NEbW`IEahcNb5v%N4PDyGn9;7 z$PDq=YHfbK9OZa1!A8&0$IAC=&$mJF{DQ}dn68`1-d#IbV1J@ zR6C%b+%H9?VaLAWi>rfn#5D{fqRbr>R4Fd-zN$Efu0bC?B8~7xhLsnUjNv&wyX9dt zs_uh`ki9QqUj&QWgFLz*mk~OM5GXNEsE2SExk9E4LS%)7vy|q^T80%hZl)=9#MZ<-BDj#;da%%J!f{&6FwSjcsNo%w-6tXGDBTpI#?q}CWndND56Duq)3hQKP zeO*~!RSoj6249xe=SF_{HIXs-^$B?~tN7zOQCi)U)Ns^R?&I z?y}IF7230WYo2c}^6h!fu&*&o!+g^ez&A-(XQ|5gOKF6?x2VBxBtD?_-4v%xaw{m_ z*|0A|&R>kEzv-b8{`RQ+jz8einCxYYy{6P^MN!J!`3K>-!Gh{)nphU%8|_RgprK1{ zMtC3S^_(NQN&MT-$WW3(T>KES{XjI@2StIT`EaW_6@2z9-aVo>Mk4}nOM|@Q+)A$A zWh}Qm&a+PJ8_BQtRpk8ulG^pM7P0IObL>YHsi{`eT&wg)gZPh?Ri?2i^|tlVOMCJ% zUVNP_UJT7=>z5_9`^{qgvf93A+MW`55N?;l@oJz9a05P)7l-o!U*)ntS$76#x832Q zV_#^0W)ErH#Fwo>e4R3Ji(9h(Ig_yxDJhju-m%Z~S+DSBvX6y}L#(QjK`3mUw6| z;49O-QWe-60iE_jaNuhwU;sfQ!fR4vkO1M@5C_wx)i3Jy^LjVr2M!K=-4=)Z1j5u^ zBtR@34B-I&Y@f{cyjn_(Ur_>Hfd%|&lSF32IT7JqK)@v3fq)|(4tpWTG0qPmAf;9H z`5Ds1CAcE~0pi2+O#33;HTX+_;D*jE$!vC}d9L#+zDIN@fl%L_aFE8h-bK295qNHJ zk?sXF6i3?03nbgFkTjH`y}oQOJQLojpU*xR6ezi|>%b?GuWer?pFy;TVn@TD0e$-{ z-HqMVea}<+CqYyKM*P!j>)PAhx}w0)4tSvkL63uxMhH8i`K4OeN>ZNr+?M#)jFSk{ zmcN_K=bLQnGx}fqOR;@lXdC~f%k=*h>ix(1pxzxddXw&GX8$Da&(^(({TFrF8g1&s zr}AK18h-r){-X;J1ib3}j<*rb0E1Ox=xL{;NI(FLU%Uetg1T;phL2^M1!A!45D z#cBa;5IXoN5&Dq~Ow|IZR8s+$m%@fUr5l`xV7nN90hy@N+gB_UZF1dOr< zeS>A`A)nUXr9#XFLOldaWnCR8#eHZ)+RCssqVjDel)B`I)!yp!VDj}W{$$>Nu ziUPM@GPXM?+eLFn9MKA)YtWB7MNn>HipBOxc45@KorukIXY9`JJ$FVWV`b1pL>L`i zsPpw+hT;!0njjD=P-aj567>rr3TmzYZOCZv>s^NG0>onSsuV6+68RkI9Q&O7d=rsh zKtMmEgl*2)Tev$%J&THl&KcWnV#W1EadTc++e(%<7saLV-&s+S(S_AXes!2x9Oo9s zf~Wb_MR9di+I*~TK9!db4U%H;2zNHs{>DJCHCpv&Pi^CX(aKQI;IBi4muhc&xa^G9 z?a{h5G}! zWfk%Q{29X;y3K{rD`&4AqG{?zXsu(Btr(SVCF2D#4|)TOBzTz;vnvYn^L{Bkmu>@8=~Oy zX|jA8&Ndpm;`REi^C~rPKQ56 zI~c(T1w;l-Dt-K#2M5pYYUlSHchaEY;Q2!>9)!R~B1K-{ji$iiK~B{p;KTMy#u26|qOCC~fZ&4Rc+Yh`=eKuu0X9$k?=OF0ITL}&B&$Y32E;PK%^)Bhy z>+vyi1F%n_E#BgZ;FmS-)XOuyQ(>IF#apVoNb5V*k$t+Qu7I#;{!6O`P!~rsVc1;K zIV$;(u0CdgC<~B>{8iCD{QXHacJPM;sOG;!iZmaF#8C9_lKg`H$8^E_QvadE#G3SD zCs!LP_Rsil+8WMX{OeAZ&C#kp+Ej-If6w{eQ@Z_(3Ycttzlf^9AYkt=g~I$P{$qiF zI6oxOi3n}uQ0Nz+;c@(JC-o5ivxhPfOVU%bU{qWN&gdFcy%-ksB69b?@vh9jtzStI z;f07Wq0%rnX@|5LyR#Evg4uB{2mVg5{`9dW0Sbdg29!N9Zsr8Hd3n zt`q``fe59{MIZ!e{|-J`nl1is9oV+>OYX9SAz}F#$yyO zW?%8@u=gOU+*~H7#^H~pKEfk}!0#YnR4f*my&PzKobDN1z*^sr-+&-=sQy3S$U7Wt zzaeg#ltDO5T=;Zc`R=vdK!gZ;ilIRlM5~i77@8EF)ednGZx56*LqB4U*(3r)_)mk3 zr2@K4C=iS^zt>{1hqaC}2q96&!4EVGF7(jZF=&LUT(7Ah zM{MV!p!X5JmWru$j6W`l>v(Z~Q(k|mtsiR3TyvdoZ_2$*t^ZW- zZfXOtugUC?O?$KzC@@X9(KiHqY7f`d{-V-bmb<>z`R1a~T4W9Q>ho-CnKi7mO>>^E z&F(9c2gAPV?7lqvT$$Wg=by`ykHv{*x=*iz!-L;y$?Pbe8J*`wXPNOCCg1T%ZhR!{ zJITzBDf>P}bL6o)c;y7<#BIX`@twA2_2-K>xjJ+^lu{EQ&ugP5ItnnX3{9&dxw!Oh$x;nZmJjE^*qPT=6KPTmJXp#6?-(&?{tc2~W)t6w4$)-UdBwzD0GI%li_E_Ye39%&qM?ev6nSrQ45GL;>?;`v5(lGDn*jqn zXmslt{K?4_3cg8Ielf{LF)kblK!N`}+eNK)EWN_M6hfT?pR*Tza)1$fTkO6O^R_v;aJV2X*g~RH-iomA zLKvs+K!DHDkbX_chuVje-aaVulk{ltmk!M5ik*nS9?3g?rIKvr}XFfnTF$_ zPDN{{~F0TN?uYj{&m3zVdK7xb9tt6pL3>We)ocS$h z36oAv!{j3YHR>J>)GNF$UwJ!(lNkQ~8ZW9R-5#)yo z7$|TbS2g`)`+shZkdoty5sKxV|+CtgavG>vUt2 zuCJ=Sr&4E0is^gY1vJKIk&%mX}<`NR3lE2r?80Q!~BB)DR=7F+v+ZdVY{!9_7*eV)^w^ z2J(|AxQgZ0hJZ(E2Yg37(DH*`%ew~)xt#<7l|eH*$gWOu>xfL-WzAsJCvJC&9l4O#RC+0d0%sP2r+>S z_N`xMCI!|T6Z^TqSwb`W>tvfw{D_6j2> zKkp8_#BeR=FHLw|m3;w0P)`-uvrsU#A7dw=n4MQOHs&?ihzLP6NqXlfdG?Kn>hNw; zH5MSU5qmi%>ZwdyqNCanMQQdm#U7fmyY~4*ha$f0y7s;&VH4!QQ~7p5!29;aL-ch= z7GO*vg1-v{MI^ugf9c-Y17Xhk0Nm=_1x|b(ga{J;l4=t5$KDd@&D_F#=dRR$DE98l%>PK2ySZww*yxvAqgr>?8epI5PS(BIrZahJjklHIQ=zxX zcAhi6=ljOf$L5O{f`7yt-wXk-yT6l|aQ{MYGq4lkCECAiL)lmBx(~Wti|Vfbe_Z%~ zmV;nagk^}_mDh+P_ygT~e>10ehi?9?D#!_}DhPYFj5ye zZu>LQ`t7!2?8a_Jp?A;?B@~Nyr05FbxfhG2IO@ay_G0m=yd$rwo{yMofMPD@?e@C4 zOd;w@q+VSAeIBGidJt7L{>k)_`gdo|b7fG6vTt;xA`A|Gv->EIT2u2UKyMyBquF$xK?uF! zDS-teArLH+Y6xyR3%bA9AS}CerBHVRE)TqM&{@#EDU34?m10-dcKqiL9sY=w@%bhH zbeSO60e??)6RJD#gWE?W3Ibl9I8z{@(B6^6!7RoR#5tD<^%jx|=^8}3b1AWaI{2Q( zJBqL$gbpekNA+TRYla;Mm$5#cWI`uD%^_Rw6$E`-<~;es%%;jW05j(=2^{ z-s*Rnn;xbohZzGtg}gv}wqJZ8zb8snyFtW)5WOg@Q!NQMuz>%BKFbe%7f`Vb%^@$Uo2T@N1*Q2}$o z#C@1v92GVvh0RfJd6-#X?R?w)i)L!=F1sGj0FN`{qZHPVqf}Rg;MU1~>w;hTs96$q2zV0{G%jiULbAF@BLTV=cz$0yRV|qI zf7OEHfMDhPp>g@p2u|ULMsSB1=L!B28TJNzi8TCYN9Df|Koi2Nl?9E%!*dPOcBaSR zHCcTV*`# z#=Hsd9;7>y#%AZ8>WmaGsQFUum3u?#pl%+OnA!X094N=10nfpdb#?xAV|UHt&-L(j zYUMn|-oeMvYM#*x*f>jfc9}0ukWPm}J$xRvmuuKQMkm^^;=FZB1?Zltz@)ug$VZaQ zGDn2(S~XwWf6`={PsQFXmZ0{hZ2L8vhyp^1p%*m>h|jy zko~^W@tWhG;n>F)auosDD-n z`-L#VxF(=D4%%m?M(ovI?;Q*d5?C-=PK1&PJvds$Vi6%$6~-c~!%slD^OSfiAvx9D zp$;#GN-@j_!?9gq2wP6XR$;<+6q?yD;LwgAz*o(w&Ld+EhNeq(EoQF4x_ zTm}W^S0}m6adv&4Una_%>&NAn+WNk>EOs~9<}%+}mAdO+5V|m8vdM_0?T%@wu}6QdxX_oPMsXK0eNF9~W25cQW9c+>{n1(?WYwW4??0^fJG= z%+JrWlgq;FGCw=b&CW7lA5DJg2|7@E?5%!=um{=MUX~;jshtC}HA_0$L@k0PX_|HAULPL%ZfvrR1W>nI3;G;gP;w&!- zz!xqM_VKD{ZxLhlZMdx%1r8Yo-5h!e zn2g3of6*SS8~r)T9}*zUSL?5<-6fGdoq4G}E4HV(#w6F8XB*R8bEcupGb6ureeUG< zu{i!zW|YN86)qD6T-!!|7kLS~l=A8DI~UoXrpITwNzC9c%lH<Qj zWjJ^&G(4jJ&r86A!~5l<-4HDQ5WNour01Y0bhBa-VfaYSQ3ltI|J&QtA`^Or0@C7VzV zPQZnTf3QXH&$6x)J+5}ic?2E>_`4}l0ycC@66~iMF$Lc~j*t=+VIJbE5cYYf zUV#uknLjiOt~ilnSNsP8da7UV0*7z+lA>_$JZ0S0Ij27lCUgFSu_(*7PVNlFnkRR4 zZKMc#D_*)4yKkO>;8cfIc7KLyQ>?V z8RXfsWc5j}J+aL_JjWTyjZS`oeu~j<6PD4$-lc=xBnmS0JuVad-H7vtb>;(MFVjq# zxnRymFP`eC=Z|NV?4vn^iUczF`&{UK&UGG2eeCU(UPdFWQWjExvD?^an<;qXuKq9Utz)4 zk84t3eqDEeIsa*aZrc1e+5{-vEg3<6vhV!9G5(WHBnjk+=K=`+jk83}f;_c5cHlo% zpa1g4LCVnKO$i+g)F@KCR5mrY1O?DkuYm5F|COV`gnbxFd?SmoTTFH?V=oPJPxp=- z%1YwPCoJ!~I#`meL`{T7U`M5Ar2`_=1zhtD#bWfuJ;{V%B1Pnl@g;OvU{)UPW9@;$ zJmq7#Ng_1NZufQPci9zsq?d-@bPcLFi!7(75cBM}?+3|&0HVu>`L(-`y`YQ?sRB3s zd9sqoR-zY@{6dm*;6kAxWnyfhD-yH4zi=lRM!__o;hT0t->YQI-E>CSmtOCYgQG%l zqz>|wtsGpkj~W{20V&izo5Z9KDi%90IsyjBkU$m7Z_WzKtIFoKviVe5rW)&q*0RuE z8}=1C()rp;J7$`;-#paU54Fwb+QP29DK9@&*H`6*;p0ttWsrCExQZ7R7x_i!VF$NLy!fux#PxSvGqHg3HEWQ9xQ zeyEHeYP0+5IJZH2fW>M~6m!fdU7|so`PDI|6%$ceq1h>A}I5mK#CNsV9p66diIV zPpGXpgwcv;)Y>1FhUxcLQP>#e+$)J_OPo2;G3pm=$TCvDcxZ&|7?uahG%v)63ZP~T zok1QGN?0u)L7QZ#T`x)6%Ru`+59RhHNSP@Y#O6f^r~)n%dk31{p-8{T+shAA3C~x# ze}pOv?--IR+XroeD)riVvbCxF8uJwyuyK(=2-HbL$0&OxK%u7qs-D|9RUwr)6(L>h zO;ex-<~D;M7a1>N=y2F>=)!cfFsdGMAn_}}-y8A^nxFJM-b8th9AdYAUxQoM`nyNG-wT4%|!vEvT-#DBZFaBVCgYD2uRzaAMTyzzG< zWhmdFUlZ>(#r^AS`%`iFxzzVjZ+Faj>pfI@50Bk+1q#g7dd1qXP#>0>!$*`qnLoPY z)`$?z){t)6?rhT-tsCQQefaV?*cSRmP~w^JR6LsDDe; zp0A_@QW5U`y6XNVy!(AK_3>&ruXN~;BP+yZK233)eto? zP@n@{xCi_wBYWe1)qr{+`{F_DHRMNr-mM?ml{ zB+CS8kbULHY5i9$@L!la7n4$WB3&@NP(g+P0cj%iuEfwO=%ItI2-mk^8q+xU?no5U6=UIcHv5$trNG5z`K~J#}1G?nv*WmqhT)EA{v^K33;&4>&czb2k->xJ`a5-WXMT|P97AvURo zk>5JsF%Vp5+naP_m1=ChRE+tS8alEt)JqoEhH82lB0zgT{GoTZ3qw08{r%}#VYq|`e-%*~E6jQ3!?ZXf&_4=37aK!_8bP%=V5CNF>RQmjZ0O)kCsmk$vM zmDzxIEN#NWEH0DxZZU>jIfJ~HQ8_qk$JIXn3_#4=2LyFP5YWC~34U4;@HzjfK&+#B z3RmwQW`=;g${>=z82Ecm4B~UEi-LVMn=f^2BF5`<2e#Lx&a&EFHpiQKf7PZIym1h0 z^cPh_!@;W3T@>51QfE*D2sryJ`1|}gA-+!V zC)&W?dzqgY^PLxFr@09fXv~)e0Z;Q2;E!UiQU2VH^mnGGIJ?0?s=Y_4Q7k*A&il~S zpuf>^Y7omzjHl=Q#;QYO34@0K&cL2*bOyn#F&y085BWcsL$@}$!te&L^09cE{Wrn zDZmIz8f_=f2i{vMzvR65@@yAc{k$Bk06%+3o}XssPN@He#y&ZM9RYE8i2Stiu0H+P zsS78H27eYt1@B#`&I`IRR0Bzmf~@^O?i7-T&qmog z#4gGy5arJtU_mcKISv35qoz>%BNiOhT*F7JIi=dvW%>P{W6;nsn zO)fPB?(D(-4yd`16hQ8uAj`UkuBmtNVZO}s)zK-?z8z0JOfqPsn@G2>?TkDhx0rm} zSDDUd;>vr9dg%{Yxc*T0n-r)f06mO zH`#Qi+v@PCHhd}$o{RnGT<>eT`<(85GX(qu0)D-!zx)xeZsV0rvhj3TT_+pT0^2{Y zjNaPcZw&kTuwBx)s`K-z|Mztt?7KED42t0225Q&6|0cV?rSL(1*8vA%K`#x5x-d{E zk4U5ux^5TtVX1deE2-MCu7UI7a*+7im5&pVtweO_ILN!u{MY^qBBVO}8yJ;$gib+q z4F)=-n*7@yN)9yI(=`lAhWz55zW{%XNua*B6k7dI^stba!xRO8_3ZU%`msKs+|n~Q=}X=VPkwaXfW zGQB{odht#jJdFm^*%@y}JgI)eP*PLe47b8r;?-flrwqj)AUK7On47;T6Thgj?rm9<}gD|il_KxS{%2!)QVo>032ZACwM?>+Yn)%T1 zo)8PwQ|KpS7&3FQP}w&;WhWg##ey&78lpI&BT|Gd(t}7FqF8fZL(6B6=ZkCN6{+qAtUT1!*Pp zm!y_{k^#ZFC&d#=Ae6END2PtfPZn@+w_wLyxYGB2eh)fapA%{!(8W|6SW+3^D05XNA>K#*mJ<8O#lyZ<1M@7?BiK_UuV+agtfY zjQ?_T13SCsFf+F!-q_q~FYP{$IhPsv$?bcPv7^xs2q;^wtvTIwqA0I~1`ZQx`5*cH z8x}+$w4Z-;h6{F=iPdDSV85fr_r!4v79)c63!L^GDD4`jJwLCfH0>iJ@^c)_pyxTm zA?C5ycwavA!v5ZRJEr$#?xFv!4wUSuUPf*!*^f2=Nwyo2pItx&-;QLG>-*IQpt5fW zXi&Jveej5!7MKuoTiJYRZ13u;90rkfxkq`ouIxr?!F}5-o5OXzPl$J=J1gVqndV#b zVtbKq8U@ZW^=Y=T$kb*yKWbCLx+{|}mGQ^YbJ*?aW!pl+-RyjBrK@0(n|4x(zc#`VdiqS#XKfdoAerXyv zoTkunR08e@{@R8kt_B(E#jzSNGDPFfXaaN7fL-a;VPlcgFEF3@1}^c3Y&h9GQ@*r! z5E=-c$w6{S3An3N5of^;mob}|nZ)vF+e*WAXZ|jqn+W4v1+h%*u>CRK8`<&{$Jak?@ zH@6>KU$2{AZ(HC0NYEhPbwf#_-C8~@!wZL7Ys*Vy5_Z;5IK-mLaf1FHBNT_lKTWh2GHhd zg{Xr+5%a`?U}$76VTE=>NKWq(93pQ)(c( zBN8LN4WC3JXR#zhZDPA(af8KxyT+ezUIkCaxw->gbW{el`!K?p6M2?7Bd3TPN_-#n z4pJI+bWvK7nzqGO~H0yKu9I|Whb<0|0mdLt7`{R$7M zE#e?y`0ROsX(G4P&0S;j(0sbDZ|<806Px=wTzFd{bo#QmJ}Ycuh4o<`i^EZ2ZTvyg zAu8SS5X6D=4yp4lVue*qd4vbq#jymi4-Zq@)1jE2V_3<~_r-!nlLm+f^vtn{dVz<6 zx(4*PdnQ1eklHyfvvEFiA_UhmLOoaG=)U1#P)7ae$NnRCpmRt!hiM?*q~_A(g(w-wCxB;QzPGt z)4BhHL9L=Y=-iW`+g^A;lfaT6kzQ^$Ii$5^DkvXz{$tQ$*1!4 zwlu!-QL{PcKPCL7M`u}A0Vgpbpz)uf-f4b*Os3=17cy`z693YZ6T32)LTCp(O&bN0 z2z~s}JM+;>h=?U+sk2CJQ`t4xs5 zJaORDCU)18QDxQxVvO6q;H~!Rt*dwTtaBR+ z?XVtfztRrXqKC=DUJ~OP`1`HG=O!L*LfJR06Ea_TxlgFGGv4jzI_@h+nRDd?ke zXKdtG?M|v4!@hZIFl+WFo#EW}{pqSVnH&7|3;}2B_GHr-ZyO^dz+7jY?QFB%=ZE%F zs`u@#^YW$p^>g#t5bzcg$hSY@<>f_nWeAw4Z4>qFRqOk8=f_q1#}%d9U)KgnC#LW=%OG}q7mUh(jf5XGGS;a1kpO&>dK(A z`xmlbJKTAPhT1C&rpt2j+bM#MgU*8PATbPmQ$-Vr3}pTu|ub=YEtx zfl&vcJBwjQ#R{rM{5pxmqpkn3B7rcf6bCf)yXlNS+`*!1&34k@k9R@*JJM7-XF*Zs zKU)b)+{bb4Fc?0b?dAqg&X*oZ2=j3()rf6R3!sCbUlUc3T_!AjJwkWX1U&T%9tSA& zTo{DFBUOqIi?E<44jvY_THZ$peZoMxct2E@)mDf;_jCYnp$Ia+PDE(Pbp!<}fY8gt z0ztoCph*FD-^Y{WHOo##WVaiurx2gA%DCJ25E#(;Mj&*_(1k$U$DpJak>ALN0R(9@ z1XZOYM!|%_J_o@a6sjO7C=5p~*gdp$5Rsx|qTRt^C={3RL?a>wO|kgOhJZH=k<;6N@kP?M-=kQ&}e;88mWH+MeW9l+>tVAkt+j z7=?1JfsTQo!Q4@9VMjE=9M;!;>>a*=2(?fFodN;JoUJ8kf56iMEzms>Ad%wwL}nmw zW~B{DF8mBtNwdiwAb$I?y1K8ea-B`7x2g1&_5P;Lu;x`mQQnQgrpoM= zS*5o&{wubo`SwByj+0z-k*?2;{O&8%fA6dFFO~79((qR1581lMwl{*geVoNJ1{o?o z7Eu9{%QS(uN}HGvrKa);knTJROo%ockauB`*Pn_x;D(z2AOIC*UbINNl_%g$ue9sz&t$#ZqME%Y||{!?M_ zHQo7|GV*J^Q2%W{e`v(eM?lo#_QkyNL1Hx5OCuNn5?}d>Mx1rj~hG|zYODy z;cgAxkO2R_8UB4c{5xT1hX1wA743jw-S+?2KX)WN^JaO`)x#0VlB^q#`Dgh|0)IKJKNd?dZl_6IDAK2aru3<>HfN*drx zbblo5<0OBD33K}11^Lcyix z6f+G^f!Kiv{}c=UFnYs8;*EohEk^&dbuKSR=s}F6!LXW9@1P3DE)d45Dj6FoV&Gtf z#A$C#RDsx?#V3`QSBr5?X@##z)b1n3O6;KN4`I8ioW=AAIu{0|FycZ7O=s30NP0or z3%a9Mjos~WBL4I6LRajNA>~uCy@>OxEGArVh|KK&_}w4jpt=V6kfHAoaZ4}3Tw;HAbR870&3m9~`9?bo6zIGnYz^#aU}qoIp9(Ue zZ{93kf>`L1VcgNe;eWpi6zUzNhFxmb1?E37?P z(0;Sh&E}T#Jv#^;T~giryyX)KyY%9 zTS^5q1jJ^mJFfsKkHr?cMR>;&?Gc*2=hIWN0GyseS5ph795Z4;kA2z8al<{0*9(1< zasi9L*z+*7;yL-D@KM_(;s-v%hAhY{^3Aei>r~nOuN7*g?)hBj8LfkSSVVdVHFj9j8af0H14qlbsR7 z5b!Wmdx?FHA@%i6GmHafK%7dzF^G^(HIalHQL%K;XGWJ^C(dLGbS!GY_!6W7${nI? z5!HENn&zoQK1qqR-9_G$BRggQu16v{1nR2nNBiG z!557xkY5+(6aQU06f)}2`7cnQcj*CtnLvad0jL!vyu3lc$Q`2Az;K?UO2D8Y6ev3M zm9#HKi7;LW#z^aV&guwsS|uTm&kRYQ!?-?qkEk6bEGk>a&BEfp6aBbOzPNk0b(ZR! z-tl8R742PO>~&I%+$73&@wUJ7R2Kwv^3xaUFLc2#_*68Wjs^J%SQS7`v71C2fGrH&+{ZlV7nHE!k%X@-h&l)hGH68aD6tTvYY;l)>L8IcZG{oyCZTsw z8X==iJaL8zC1lO8E|oh-Z(x`zCP!|P?>JZ92!v+>$H0Od zzr`3jx5GitwQ;c!;zSy(sCQ7H$$9C5C(0cZU&>8fqDCAwds$SzLMrtRu=@{FG+b;8=oX+&2nFrYlPALmXe(k9{6UIA zX_GCQR}uUC7W>G8k+E6}Knz852e=&hG9N3PgARG^LG;s(?uICcH6*vj6p~*iN~@36^<8b5ZY&G!Rgp}e z70!?0+Q_fcUzB^xO4krjJh`vUKbNN;AIG=F=}mcZ{Wzft zSs;|oS%jt7XRkcQ5vwMbpvL$jKZ#|Ar+ISz&T{1ZX$@lnL^~S%o#q((c1jZXAZFy3 z9h?#nP5n2_2*yL&XAoSvAET0JAlUJVAnL=D3aEBKTE27?q5*#tf~7eDF`*H#b#kW? zaJu8<7vRq&zz7Oy0Ys^4c$N7T0W%U5z4T0P8D(EYK?lKHUlce11T{R(aLU=v3Fb{X zShQyZ<0>G-f)W2P^MY|<89{pecV`E-buDf0x-?A|aeH_o%o}ykEg+g2r|EFI#)#A3 z1>3|$h7abVT7-Z`gtAI7>eqZ1BnjIObjJM{J+HRea?ww)+?|{M+jMdbF^>rxE zIe14pF+;=q#xX(MZ7@;rcdDR4WeuYIf%0njQ*9UV(wXn|4C#HH%TVoQ&@dt^`P(~h z&48K6{1|%-St%01crAtXD&J@R3K`wqTfyJQVpl$oex^LkR0rAGpxCrED%LReHhPn0 ze^&2Kv3HE7-3dA$g5Si}d@x-}_G7+If41#Rn3>d`Y?`B|%5eMGUq22Q{*mcyQ{64| zKj{2>Hvaq6`F`E}hQQbOMgkxR@$Ity?T@R*^QHYKwYpB!pRVjVyQul~#^5g$f`8%m z6#`xl{{A$Q<~KC*V_kRu{5bskw*S{hKRJXBuSIpx;qb2;;h;-{hK9z1H@1u#MT8E5 zSJ;Y;%wRHf!5&P;yLA6@nv^<7SE8K^Q8GSpM8#rnC6tVZOh^MFrDXaPB|X~GLq|Yg zYGG8VT1UNUyak5F@f3$v#iSnc$LSijGCk$G_xrlT0$96>o>sjW+;mA#svb*FctN6d zV8Mh^sY9_?L>QdKQTf;v#}GH;8PqtAqr@2vCQ;8H^yVW;E=i&$zfg{lZ!Qh8!n9)f zNTd|H*ZA!+l#J0e=uEjYmnc?{HbieFg!BAXj)1<-goe&)q56!cB)kRFhXWS|q3*c) z74%dpO;8GD1o29-AMLW!>Nhf|Lla>@KwA2g3lmj`l>(!B@rkl#kOLJr<6L;8da>Q` zNCM%>s|xs97lt+8WCXIxgb_Lp9uzSV+wnl^<8fpk0S!Iiuo%uC>$N)^d|iPE83Ali zcp?$;F#r5&I*teoq?14x+$3){YA93@S$1GAI;){j;7Fx7(4hn3oAo5RG8S~DP{LvH zS+0(?1{}kMJ34%o4D(2j`=PA7#I_u)Cv5gzCX|%u7G@9!YNX^Uy--Y3Q27{9@D=_* z9O;M-f(N1EOqFv_)nu-uopIwGY=%43D6_U!27+g$r?cYL;P0YjEXc&+)57v3zdXuO zF9!a^JwO#c2>|7TTGrU8UMXM8{4g&AthWGWG`vE z`H-aq4EYfOxUoO1$GZsKkleK2vD#VScci~ zlT?V~2ej4bh(4-7nJjmn=6fWu6!R5%^Na>YJ)g)AhxDZE>f;&Ho==@4?qNmaTjDr+KHla-c{CoCBCtWNdPF z4&aQlY+1H3P*ADU%$#%Y=REIv*4i@Fr{~VuKi%zZS(Zd!)!)yv!s2dXaVNRBpPt`E zS#K7ixb4^$BGQn)fa1e(_9DYDf?4Y#;6MpzWS&NxDDfS$ugC4^0um$sV-`g7H``VW zWna)2B<|RZNx>J?3nbKA4}ol$X7M}-xVyfB87plKLQ$Lvm)#dc@N7+yvR23+6g|w#bTW6Ck`YLV@@RG**u5D z$bugcp?3@MYV^Hcf~s}oy)ps%1imnHl^aRQC|D!$bH1&}{7wXA zu8I6M&niO9&Ytq=>I(O*jJ zV2L1P{sZT6rZDVasEi0nJd?y;I>TX{A4f4>;QpYmG2LD+uM_ktiI+iU;BBP9z@;(e`>PR9Hjv zxBTj9apkPEd{$gKFV6$*VDQeKS6#;yH_^iJwdb_zf)RXN^c)twheharC)ac5<=L|e z@_)~&^I?FXpE!@`Ez+0|H3 zP-F3;vA}OZN<_OkI)SSDjJ;jf4$ahKB$PlP1Wh8WP~qS?ip!X7@l;V8#za-2nm?|j zLE%5aK`w2BM3bRRh-g9uf@bL%ykr(+bx;ICrzsPfXsAFCJ&}*iI70Zv5DPhiPz4S; zP3#+n5(4`a2=ZGTI4HTvb~R}X<-j2e+K_8yKs#i;a59iXJ(_?bPT<{EMpBR2pB3%Ud{;vB zcn%gM0#g<<_Lr4$Rtimmgk>zis+2;eOa+3RaiX|z3)sZiC(0l6Fb3JbNQS%vxDXiz zbp9-B5dzN8b}MHOWSzS?2gm=}cCxl$p7?J%z^TV3R`U7doI#}$VkqjA7~GIib0~?& zfXE3D3Xf1Bc^lm_Q00!Ga1(t#EXo>ATd+TS#HOeQ>VhE3GMmYo-;{-#*GK zDisEcOjDfi)r1OGM)uTyY2lV3Xzm=y&Cm#<+8?S$)1d$M0?6>d7B>(TWG1&z#1Svy`O+Q6 zIk2-#Jbi`s(1ENccr`}|xSv@&&JY4_o@Rn)xxnew9{qE5p2j%444kG>?FBg>=;^YC z_RR!;mn-|1OM8i>gY?2qVu8qyz+yM;+f5?i4+>w5YmPu?Lhhz_p%X1GRH=QhI1<>6UP=p0PTcggnfX&3&&=}sU*O#bp;e?TO# z74`?v*JOdlPGoNDY#|sydE{+cyqMj*@NJ;YiFXt1i@ULgy2?`L&&tZ5qCnNX1Mnwd ze<&!uc)%$;h!h-#1EPtDsq^t4Mah0hXF;|#Cva?oS(*GoLd;l{Vv0~g4*Y`u42hr`LXz(zKsxIg811Nv-GiZJ= zc|-AZlu$2u6;CnqrLu{1Hj=!IrgPzBCY;KF{}Ndw{Kkt1(c)e#Py83S$Zv%5s~5S= zP>JAg`4q+fSo|x`9hdxPgn+~+*B;_OjH>If>^Z4A_KQCe_8|+H;P0&BJ-+sz)#gLh zxwG0rs7|=E9BnO!n=8@gYOJ*$*EUkE;HAEu?rf!Wn(SQayP0+{-P%sJwp03gLR*bC z))TFbII&<8Xo!hEFY2HPf(uc7_8g$*2U$X*6M8d6yBd6FF2JKYyLL$&7{&@c0`=GStkng&Mf<9N8g$`o@bULG5A) zm%kcqu1A_1G-4W!^=Rv3sJTp+5Na%hh|HiDDs~j7m}^#>^#~RJaSJ;Id@dvuqmCe= z6-_x%h!65(|X6T}yqXsEalIH-aMAr^A!8O&`+Hx{K(4US42wk?L+ zYd$c_Wmxfr?~XNRz4Xi9)47YYjk1P@FWL;*sieK-!J9|>ocK;Clw09*Fa^N%a}vn%KlVSMkr4`<-~!i^K`gRUEc;|d7i65Gj~A!$QlvqI?un<&$ihk??};3d%_};G zu?=EG#KSS$T|p5Hz#Dxsi-`ia6)ZxO;zdY$+~%0L1dU#REChlXfFNx*FRcOaAL`H1 zEn+=v5=p5D0fZ{K!3W$zbrQKi;Xmk$!*mnm3!B;)7r+xFLaDzk#12kvqKnC-_{FH7 z0!G9Q6ciIgQ!h=$Zn!wy{;>Ghi4MRzr0-_AIKIomdJrD@{a$vL;LT-#T^ot%3o zZ zV0QH+w|1P{ILU3DLJJI>T@m)}hG?GNI!bOGU9KJ^*N(W<-(F&IKec?2ng{t^qPa^j z;onWWw-Vl9(zBiP?W8@Z|AL-x2v9@c3xr!Czg3Jm)I*lAHf%w1>)1NiBLsGi4I;dd z19%s zk^B#l139_Dy@9HMNbf*uDzHzaKE^&K!jDIGt}laN!H)znN1PXog3=Ba|2WnVilZCK zUj&}-#)W5{i$8<^Bnt2X#iDT&P=`e-yb!V=^A~hT$bw+CIb`)BjRV{aoi9EN>4VS9 zOk}e0bT)aFO=6pe1b9`5T^6EOg>W)=5zigRa=W4IK0M$2c8K7wuoW(?qwI5@ z;jgfGR`#D>`%f#g$ECUR%IsOyeZ(PvjDVg~`bYfQgF+?cpJq`4rs6v(V?We|uFRj; z7sB!(@$=*rm7 z7{Qdjna~IsH&Z&{AT+{AYcblGkLVBxW7rZ10?P;oLr4k{v)CVoOFIWHBvxxeCd33U z{U|-70S$p}kOl?0SR>>N5_1d5kfG4esv$^`1O8;pf%EFL=n+O_T;mW!+P35+bj0(< zd`MfuXsi?S#pyn1yJ>ANsqLlogOs*=sqH4Ut%OEUxE!j@6S<;#Vnb>uidpPELrod_ z7UZ3jN#;(L>%JmCdI?1kEck<1$TsnhS;olB*h8^EP~dJ!02J8ADxH|r zGn_l}0}--t$hpQgFy&Ab1Y(Lz$Ycg-kXBR@i4?DqY+_WaQ8-BJh%BTDVeAwrOa9BWS8e}R&m=Ug7#4HxokW(D^On{iI^R5C8X&Yh-hiB}Q(42b-9`5&9)ffPg5TH^Ipk3~-rA zG8?q6HvnID1nIld(#BI|jk z;3u*rhEguYfrYpzL6G9ZLf(T`hpVvB?;MoqBfQJmH&GlB7)N6}GrN~tILt5X7Z&z& z%Ln=8qx`~NcJUy;a+u#ZDQujTHqQ&&XV)9&`OWk4)>&zV>+(QgI4XQR$}b(}7mo@H z2YDjAxt+XgH}Bpn%rL2oeQ)2%($~%I=Vo`WmX5N^hndx*%*yfQ>M=UIY@^ik<(8Pg zhsloziM6Bj#{-zZ3%dz|zxlnCe=oJLm!8{6d3T6BQbc}k8iAx2TS@rfNHta5Br>-X zgA&7vmy|p9F$Hp=V1&fEw&04Q<{Y+RC(C|zlpP5Z4q}4RAt5JNFv5|4@Pch?s0heK zVZv6-kqZJL5Yd4cNGTxrKtv#Y{M?D6Fi@w^^?~d2p&L<>Yl2y#A9 z1(3;){ofVI0!Drb7lnb(D|sGV{Dlh+BkT`3s+^I4=rkV6^YsjqFt(ZPIQUOR`zftX zK#;3LqpCJXQf|k@*k!{vf&0(OA69}`k>W2Hs1zL)?Bh(47{?uk!GEj*(wG&&57-C6 zjJCu~3qc~h7(w0>6$#Zg~ALvATk!%*xZp1z2t!trzz>AmS_DwDX(G4^F+sjK8=K6#morE?L^`HiLv=ke@CGItcs z9mR9|(c<<+e&alch9C6*G0%%Dq3e~4>!mXqmBsVQ{AqdiwCp*)_MKMToc}>v7j4n2 zw(J535(ZR$nh%3rApTv{{1=twaC0?W+lXu1$<}VVb&zhH=Ud@ID_+o2Wj#~x=4yJb ztXJwrxq(q_7?ox>U)M7={jy>tuG`UK`#je^$>}G#&VE`8raNm%Z8fSbM_S9wf(RLm zw&pGnLAVfu__q+#=ginabI@Fyk0NStKB5sj&avT(LBVMav0(Qoxnw7Dco9#XlpS-K;pmF!IgfJ z(T^^*i+uY$+d9u_r&k)S>|bh|vBqY!^^ra(u5qL>e_mS%5kxlpOr_ka6DJ2ILL)q?J(V6bxlmL?sCS|c z9@N+%u8IT*3fw0Ota2bARuJRJezeuBacv%uixjFXV`P>{a`6oGLVOnrQ!}ms2YJi5 zDfTX0V{qGEiHH!feJl+!6pH#NPzW*u*zGG=l(Z7@k&$I0+g;$`j4BFfCY|g_wQ5c= z-Yu|#NZ)uZxMmJ0c@j;i>|@aar8fx(Plg##2r#V-=PVY|99u#S@uM03SnXpWkf9SG z$m`Nf8DA|1F?K^*Nr_<#7BiDy2`g;ln&gM`1kPfT7d!$Q5>*fgN|uRf9E)X)FgxWM z=O>kGECmZ;H(S_lws0IF%Y-zCH!X|cHrB&L2!xWyJS52_;{uDO$Ok!)vpuAg9oUfz z)`$xXp!_=mver0>3>CEl)IRiOfi!4=AFYBBCqyiSS_$f6J(A-KB?Ux!X|QmJ)_hPC z)wK`5Xp)a96YR$8xPb_2G_7z>;>M*3m~J8?MDk#ObT|U*cI%ue0@UNLz?Wiz%M{Xm zIzCH)(D`tBZ06$T%+OzC1I&kZy?dytGq+nLP$S@*-_H{8Egb^pHqT0Hr};prxEm?% zMUg)k3>EhxrGrG}Bw0R7mO_`6@KyEvvK&g4PZFhrSm`)X-VM{v#bBsJlg+bS;G(#G zcD;UD_;^^D-^qFR^7dekK``SaF5Jlx0?r-gmkzQEhs1xmk4IO;d8p`5^Iq`=ib)qc?@;Z@=inI(OfDLX+wt*&ZuFWtb;DvoX zWM79?pM`A@V!>l&&V+h8W5@}Gbjw}n8hX4e{u1r9?4 zAvAA%76Z;XDkKT#=fB-25ZNt@+MDfhZhvfjn!GW6jK8+ww7r z4l40a(r8c!P`%{HLJwDXhM$hcDy#@1HZekX7-gK%c^UaD(sPg7>(NDF5dRVR5z)>; z)C?_bbDr-`WOWbNx3(8v-wmzrg}31OMuSIa=5chMJP9YyA}Jc@(R4U<6;516lUK21 zCYFZmmq-);W#TCg{!3#J|Amt|;=fQ5nI8wy+-^9(9nNisi|e7%YN+_}ytH&)T)HUF z9~T$S(DQ@fZw}(owfCgrJF9vK{!UQu8T`lahsj}?cKGRIxV{{!u0-nV@zz?jwwY{h zrJDQc##y!g`UwZdBVw zzHVge-OF+}T4-Ms+NXJg;AtxjU2rqm+K9E*60P-wzM9Y%BHB`1Cn8*o>V6_ryNSF2 z0Du5VL_t)-7_DF~Pzb9xg7guD0K)SHz|ojR9AOh}ONh6Sr$Q@|vC%-Cns9?&BGClh ziZxWR32V#I)>62!8iP;0MkB7RM;j}##!6IM3=Ni< z*vmlnJIU(j87)%OBLzKH)YDZXUZROXAb6P8b`lL-V2m#?0^yME=f`k!`J%B9ZY-QP z2tDTzI4HHI83doQNhIu#MZv$KAzQ}HVLuX92gT~e3YVK<_+u{goPYv{!^54CxiB@c zAQ+1+V-5AC*)pc1$$&`tgDxluC4z=@K2~(A1EEU0;lB)Sg)D)CQf1~Zi6hD>HnWU5 zSP(df3A&PSDv1gfWV3i!aRwmh;GjULciaR|f#4qM%gk_CA)*QQN;BM>#0Glft|ai0 zSt&G~V#YG)c9LH_4MbCBu^BZe6=ztVQd&Fi=iS?k$ ziNGq9kXTTqo`^;WCs#%Ifez7VgnNOQVkD?e8rcE+1lN#R%%Y%#5*9fnndLf`2ASJb zV4{V6VHtQS8essL#gpJaEJFVapj8PvrU?8&8qA46NHEHz$U%e*i+IU-C)h`b2ddr` zbU`3po~18V0Ry1JsbRrtGpEFiBLo_9LWcR4X&I06RY2?FYhewHFG{3A##TUH0F?zN zIQ4jDr@$wZn_?#vX$Jwo=o9ww7?Xq&$c;>XYZ+w?Z?Q-zuqf~+Tlq#LJt*R2tmJ?{ zMnHrKvLN@DFB%>b$GPHLWPXKt8klS<(1hpy!^h=a-ii{*dZE_m-UM#D``^(9Q) z2wPXrX_&bn7uNMK4f}c&IJk~7f%Xkv$Nunz9sCjgEGv%OrFRy23}=|2Rv-5WX6BHH zKpFNGB&a&2iLj6&r>P9 z4)liBdBNx`f%R_6znh?;jNM&j@6xTt-QI>Z%mdZ?klVqIuqS}Hy}3Z#6JWI!Ko(`f zgX1iIDA6aoqR`1u{RB~QahjlTH@l_t!N`0d@^LS+b`V+F4Q(FAw+<8A$H~A+DsYnA zJc@6hrZ z0z~E3d^FpBsQNol1W}6-#k!#gGV`5E{GVX7d1E8!w3eC(_|qDilx0#s9s`C9m={Pr>}n6AMOZJ(US3a-n4A9BIF~!)W0!mfJ?P=lte* zY4tP@Sz=#{3fb$YE%-{=|r0sXJvzqxt1zxj0A zySwY%-uCbBXo(hkonF7)?bnL1Ai|urItE>nujJ*<`iP-2$cQ4ywSg%GJAEQtQ0ibk*h(_?Y z8f$FCiCMMXw7z$#A6!B63+44_UMKQPSB%Swo~`Jas*xNHuJ_4Ue14!7t_@LZUG{2M%)Q;vaHH z_7On{_#-Y@Bm1fk3UClvCZIqXLWE)vs}^~jQ({%UPehCa7fP)@ zCPmoCM46^~$9x88D-s~`whSUf(lIK|Ko{JDE=XskbVpT~u!Iz2m4+;p4ms%<;Hb=E zULi15)-bd;PA-uw78(FMPAi!SN`8p|qDuGx9hychcOouWpG;xZ#aO;bSWp(tb?9@V z5lW^A(@Y+bd64}CEBQDQN61Dki-H-3QCP-P{3#|vkQ`*Ht&C701j1l`3>gCoOl1g4 zifuZDrY5;zXJi>FNrj1!S6DfteON7HVGKmY>)f^uRc2sbgM?T+G*gVTmM#9c$y=u3 zD+#=KsX$8dPPPk7S6E>ckkOMdOK^~mW?@j1b?}+0&&P)fLzlk|t=EZeA5@>3lVEMId;+9V#v#7rend zorz;7=h~%_p;MaOy_!3u6U)u-XBPG^m-o}lhnIwaD+h`7qtwPRO_D1IakPEgODycg z7YS2>asN&V)+CY)lCD6~wS8&dMxPINAmu^};Ft#;EQB_~#9Ob%94|-hug9G~tEh#_Vs$oo^;25LQME#!eMaXzYR8_VbOaiY>5AxbM)~C!#;Y;+%W>DsardhU_lq&wdR~mVX!~jsD>7bB;w7!q(a@?issh%I>z>Ju?oE%}K*&cX{njpTjfj^2|9svrbHAT|UgQ z;-$%))8}`%=Nz6no12Dz#x*zP^iMeaqqey*yMM&K@W$$YYg>FhGym4M^lE0|m2K&@ zb?K#b>BY>_vzdh#Gt19smT0`dSbjFM$S)UUkr>f=bp6x8Rr4_0-c2>nbFE0JlOXb| z>*YqbrWy5?u6GO~zuTMs-QCUo-R=E-|I5SR%Oj1uZ(r^|f9iexjF*p}21JB|o8J9x zuS+c0>DRSxQ}0yjda-I`%I#EHj~Dc4$%q#8P_c8C)ekQ9U{c>sYeZUGiS}l^y-GM3 z*H`0h+O8yZLb2tj{xQ^PGNo)uz)3raEHy5)sn*&yzPwh0@ zKFjFgq7g3W;X*q}TzlQl)q8}1rCK{*Yv-!%Y}L5B)}uu&l5bt`{->8MqQ;|adoM*S zsBJ-dY%QNxVHSrPb7wU_`_!J(3a5`qB|@$( zRx+VkdIs|YWDpa&af4&PA1j3jA4Ji?y%JrKprL|743$|7ZetKsTi!v@;T{}hQ4qyG zR@ujlGA=je;tFds1 z<|TC4AUFf8$rMOiblBsJV~|s@FhyKwg48ry!{fj#Fr~^h<^*Ky05+0VbyB48NlKIt z%2tNO3`P``gzCv=uF?xx2D7kPJYxnFG9W_PqH_jfs$7$-1uw-`&Lhi&ITCNF$U><~ z!;0fyxlj$>S@bZ(#_|5li-1CzsCY!qCSg{?MX9=a__$iP@SNlAGE=ymf@GhV`|xhO z!=yAv;ddDsMHB?>F&Bc~ikZoPKqQAJG9WT~GJx_5 z_Ayy=_;P&X5(hEgQl+!Oh!|6x!0Xt~&LX6*5C~uIL`oNzwOFPM)GJhSW1Fxb=$pe zize-MtKDi58R~7lR&O+#ty;ZVtkl!F>RG(B6)G(pWM}vCuAK}Ja3|y4%X#*)v%8n` zhnd9#8du9)?Pc{ay>^sXBMM{?Ts8!;dFZ)giFMviINmY_y&AK<_+WhrD4_}Q zhXOvKz-OR65aBb-6$pa%MrOdQz(i2abFhn?KY^^1UJgNx$5awFeJD74FTmCXzwkL_dG_X zaQU=-H|eDDb`q#WcVmRd=#(I!XTs{S*nN|BFU^VnMyGv*fNw3H*A|@EYYUMdpCoZA zUCy}Y8Q2u3M_WEUfZ%idIe>$|fJbG{6v$kNJI4Hn@xdm*_l%jF-@=xzh;BPGpN&9} z{v2|LpO0ASGM_VrCkuZSGluKk%Q+Ph-M4KWbkX zvH9Oy=igfWZ)^+1f3IzeFBt(}5cye&@D^X%mS5O_de0aEiT`N4uq{8EUif8t@!9mE zms?}}be8X&6*}knR`j};sdn@APDRrjM!(bV-wuFupB@Ge4+8?eZ(nYI`}XPAub+PV za`)T!hkt&5`0eZcZ(j$$f4l$sIQRw@?0fKDWlP>E7VUd!4k%csPnCWh(^*~AwrrW`^ww-QmCAFPY8zNi^-tju|Q%u`RwKfy2 zO>DL8OMNq@(aY_GhQ#C)?XT_fHkj15k}WzKF&yo@mu?Y+g>rhLY+MnH*7Z`Od)??2 zYX(7E>ROAJ^^08VB&!`=YKNEY!%G;xCpiTCMRHoSsK-hMeKwkJr>=>QJE>ATUFqa% zMzL;OH;n7L(a?I;x>0R)%k>T|=E{2VT2Bn_9{lDjbx-v4g-k&>nEmeXNu`qCixihCwWuB2sZs z`jj*Pf2d_GeTR`;%q!BKgfWrxKR6>8i6fjlQn4SJVS}TaitI*g^QkbQ(hkS#&{+ zDmtM2kX#}`gjSfj;urIrl|sBUV+V!&rglqQ?B)kdJOJAbl|rkS#qe;6!?^g%F6uus z7b<~}(T(1cNI^g+&-pFH0@6zk92AWZTcr*%5u%Q?SjJqo8kVs@p;*Qel87xtL4rBp zmkKe2^e9$!f$d|7G6ammafWFNI%JfD76`ObvR~dRFWKXMB0`BKMEb3=vk7;m6$tWM zQicZmF#2$~p@?%hH%M+gByB~!X*2r-SSfNQws|zKL!myEn1b|V&h}sh5n3R2hStb} zBG#cDGXAO+90#zQ1MCusGNLhM0+p~18Ipkyu*li9=1?E}>ySmcI`mmVeLluAkQpdUVI3EXODk}oWCqcP42$?`!9kpcTq6@F zH({IN_HGdW0{Pipz~A~wVJA{NPgP@?YC2ynR_oW*X1(65*8qFKKCRVk5%LkoX}x~; zrrW-~(FZs5Bj0$u>)j8GPq)N;?Z?~xC#)Pes*!*jmC9BfA~pUWJJSYei8k#EAq3ZjdFPYuROI=%p( zf=fA{R}=Jg_P?K}jFBnl$b@4A0OT5-b`uPJu(%0^2E^}COonaO`eZ|1)mZ2jng?3{JBN{;}dp2qni(DkOyO*3Hmm^ zMKXc<%hH|t0q_$4c_<-M{uaCp zbxlmWXiEq({$KzTf}(>-|4} z{qzTIe}DYvulN7@?cvYw_kVmF&|ANLx&M_w@S*p3e|vM=zrF4C>4&7zYZ*qpZPYa6 zjt~x(YI>ojUsXDUO7UwWl-Ex(oIa8_ka1ivPP45udYQ%ijB}7L^2SLB)?1p`sqjwZjEHR=`T)T2GhT*=oDg>{VJutzpz!okpwQ(7O$- zUu_!2noc}-RqI?;jAWVcu6|pzxF7S%@Qr{Cujki`qjpa~to=b3ZJ7%Om zLl->b?3|0nJlffzU^OB)fpM(-otaIFAqpbGPfE-P7fM2jWEQiTD_qEVB%C|K$-<^h zEC)mx>V{Jy5mnS+m2*?LMhpT3>1y zyhtmqL*Bt`OdER*U1m8)VS zU#?Z_t$L%OX{~Oz+am0Pk_TKPZUemyI!t>+ex1kr{+Ca^Zx6k%5B=|-2j3t2-@o*~ zKK8yp-r(hDe)qBWp%mj5|8Qpncod2?RU3)@Zhb0xvGFj}xW!)8g_; zVeYW#+s^?34-gbMf0$W1xLVpzuO6k>k5CQ}835=4oDda|z2M~XetbR{oeuy3{RsGr zBO_!hVc(2-0x9QalwDv>M-9Y$h{{Je;4A)z{09&eQ4st$Bq#Aqp{0QsApbx>g854b z=wug|onMysei?NO@QDk|zA&vo3;Y>4h{b24?q}l!A|4{GHxur+lkWFZ?hjMIpb@6P zw-fevlW?VBOq*=VYyoTX?>Hrc4Pq-y$uU0L5B8UEuE8k8vPzJffCKw#-1SQE4qyi{ zPx$Y-VBa`16W)bDh@+Wo2Sp7xK|!S46Ab94peRO6g@A9yU9Zjg-v=|06UOe0o1kaH z=AE#5#%Da^R__NWeBKXJqVu`OY2BvqZqn|Vu=&PqM1j5!Grsqb0DWxxdS00bNZ9vc zk|@x{;ZeCpT*9+a*NX`kt{tfAd_4~L`8DJ^o{!mHL$IW`fP>89L#a5orC_z!|I-!VhPaVnj5#n0v>fNytmE2w-fv=yqH;dZC!e0W%y(9 zkH&K=YkpSN0!;+O#70By;5n^$&Z|Ei1EIR1LMK^6wr@@AYDTYrOF#Q=A0KYNe!l(o z`IfNnkM9ozdH??H@xOk5__vHdAO8E#$AA5H_fO#9{h!|kzkL~qF8K8mQDFaeKnLmf z`@LST-_-R^&uHp|O-8**90m!kP&cyGexlq?ln`Kt?27AlveZt&SM6U_JD0>{RWRID z-N@BCL}sZ2wEd!`WyH&L|a$;Hl zS%co~bXvNu8%DQl=v{1afkcN*`u29QPAA++U+W3j-^O{i8Omscvqzccexf0H#H$e+ z?FFtWvq(_LE;bE%NsE4NriWg3$|+XuPgJC!3~o=S(nqAlFoU3j!}#2sLE?fg$h}Db zg`7t$1Ck-Xl+rU?cZMmD5m0Pg76?738WAB^nW-S)??61_r&@z>oDU^%5P%3SG=m78 zC?CV#F;@Ykli^~1kPMNk4Al@g$V#3vh;4hR301qYQhh;hv+%-zj>7 znWf{x`gvg|Qi`T4>0B*$T`yOfjh5DKw%WSh?HPl9=cd=b8|c{H7&ra)BQVaO?bpZt zS3uqX!1uXFKj44=diU$s!MDf$uU`iA^4lXl(r@V{J=lN!a`W|pSP(?`{h=pZ`1!t1 zEO}MAavP%cK<-@DxgUj`kDXJpz#xHCprGwmLoa*wba_#Td-gT|{db{jv;3>7u@ zC~c4=$Lz3uO&9VRR49<&vk%ti&<+{?6yrJploK@EuQ|ex4PTT07@?Tt1pZ_YHo4>i zUqG{j{>O7f*KvRyOk~XQ77!2ze$=XR*<{zA48n!Q!~xH){2b%y`~Sd6f&y5sGrm zSCe!_gm-*hB5*Ru3cTWq2nrP-x?WGX-h#rN@93W64CVgAeSR}W_uu}8K#-2Wk(w`9 z*n4T-SO|fv`N8eQOCmq(>rrM$prlQJk67?6jd9!i3Ht|pg;UnYr{VujOgk-B;y<@# z2C^T`S^T5hLh$FEv4j7V1nBaz^9%7$%wOR@NPsHxZ;r@sM&QpmH|_RYoc;;>+_=L( z3IqiIy=DFHC9sd9{n-C~&cG*-_fi~TQwUTBF@gobg`U%@@4Wug5#r%GXW34y)X7wh zYRhOE{lVSf{{H3*JsrN@{`&d;_wV=r^*hnt{l9*{|Mwq{|MkZsvEcvt=fi*f@$i5D z{POSL@BaDimfrp2+x;KE-Vp-wGo}A{Z#;hL-QD)+7v~KKGp;IHzG}dz1wvs|>fN$NTm2fx7q}G zI(ha_b}&R(zGF*^O8L6k-)+V9@p4th6qb->g9&4A9VOQ+PMefo%nq0br}z1Qz_ zdh}_)YoB)S5!=zBjGob=qjh^UTHRjTpl>k-H=UasTv@k^r>)+hqY*)N=p^ZEubaJm z1>SMCYFt(fqT2+GVjJ;-x%SCbYagMIjm>EDW2CVbYpq0DAH&s;(IzI5#v+Fd&WD)- zQFNL+*Kykt#zCP#R_2gRqJ%weM$$ycp!x_@Lu^rlkS3}(u>wKvXe_aV9weI7Jr_+E zmzd!`bA@1Z3#6?h5uv)FAXf77JBZk|+6an5v?1kVeTi zOjtpAY6K2SuJKSf#C%s}A4_t{lXuK1CMuM0PwL%>f~Z(fpwJwQhWr-O7)x{kShw=> z2@N4tsyQ(qTw^GOg=qjHC{U?`Sb^uuxW*JHp@eD&#z(18xC<*890n-7WsQh*-mUB9awy1*;8T@IZYdL6DS#>hQgr`rvRmpB@a;z zc>+BWa~2DS6G(C9&gvx)P{d1NM~H~PM-~)WWrPz=CkA{34uY+Rh&cuRLp^6$>gY{^ zO9lcm3-U`O9V5w?zrq$M*merG0Fhtbv72}8S1z?GeSUqM1hQe%LlYYb!c=1=87bO*C5-@~-oTeIk#Srj{DM#`@Fb4>N1=;w+5Xv!yKn6kfe1Ar~9p*e({2O8M zkAQE?L$vp7!izx&I1VB3*|_Hyld)b-c-|2IO(B|%5OCb)9h-saDU>k6!Eh2lCR*SS z0fD4Skpj8Gl>A_Sj(|S`5eKVQ$g}|YA?3pUcGCUEBH?!~%qQJ%IdbmJr1!O%?ZFi2 zehzKY^$aIZ!0Hq&@E1^^L(cgZ04|JgXlZ~yc9!LKv2TtDKNI^t0Q(e{DY*-RpARaR zP3?myH#hMgN3e1D8X%9QzDYYx2>5&!r;mWf9JGQ##5@WW(D!!A$N3)!0URPAM<@bG z1p!5;6yuwt9+j_++cM#NKjnF6K^Wr5l#9lDi$eksN2Ubx{7CG@s`i<)3oRPdNSK4kZDO*caX@{#yXy*_K`* z?C;6;RkX+9fSet&$oe19@DEZRV!5LrOVwi3cGZ>Hv@vU zPoD;#A8&vAcK`dg`#*mr?0bL&$O!n~e?0!*e}DP!KOg`7`zHdyfB#7<_cZ_K_q*S} z4t{;4ABY2bE_}J~J$~xn-_p-S`Z22CFe>$X2sduyX`xpeZKAsCs>YnBU)Pa?+|Z1w zrq|kft))YpYa=m*bvvW3_ceOFbqxfx5V3WM%^1`O><0bYZtwP{cR#ox?!3G0-`({; z-4E{XdUtm>pY8^Pe{@AOxgYc~?t1j@?Ja$HDercCw-JQR1!5D7ueqBwDM{*76043wqCLv!FWep^Qo~%z|gY zK~$E3G>C?HL$g@1pjm*La1h=x6QKvjvDA?vq!Z7#$`Oa)KgEK>Dl-=Ho6%5)gISQv5Yk)dj4Wt~07Q`nO%ajyL{H=+)Rz{&SY$%r z7wE8tROQ1O!x@7bOM?P!0)nCra=@QSdjz8#J}AwL#l2M%vq-f_hG4@E&!L6k35D?A}0%yS8Ans8Vl zH$ld!@?2Po&1j-7#!wLjpU|+x->72mSn(2_541PMy@@TRKq%{=8Md3DDemNv-7IAh ziBN?C5jn?IvJr!b2s|7gdjjJ`Dx;TzgTOBl3%7+4IrI=>C%x`2C$g`LRqew+|+aW6T)6Q5@-kh@JJ2?3EEvWYsz zo^1$$UMUT;jlw93{6r@s7F1TL3j&XL!93K2VF=j+oW{#4pu>#+1Nm{bFXI0Y=Qrwk zhI9na^9j$3aj$|u_J3*qa>Dm&()Zfpd56$9NPy#3$YWzOP9Z0R1}X|fg79m6J4;ai zDZ1{JBwMgpB`cg``xg`TEx`>~$NhHF^L7eQ`1j-B%*Q>%ug@lMwm<(T8<(>v;1RzV zMW7^o(U0$rScsz3%GflKjl#0O54+3fgskOtx@Tp@>GeB3{vY?5K|-s4+C6Xc%*zVF z4WS|N&Df0Z$35RzJg-dz1lO_-A6$2->lkpD4h#~*iyfRg-cbxqDVr>uzio3go( z1#EL$9UcNfJMpm-{HMe}x6keMJ3PQ;ra&;Cc)oO_rUm|>{LNXMev4y{5D+1NPJ+Mr z5xBqz0em&H@Y)XZ_l3B?&;k_&GXEhL1Og%6GRcpF1$pO1A_4DN<)`&zYa`j(PPYy+ zt@DDGsdvi_z18jZZ~FJ2ZXX}$*WT@SJRlJ8_pjf-{Q28Gf#5%Xd;IS|AN~tC2vhi9 zzkmAkJCWi5mN7jk$>pP%l!#De`BV=#bsN)$+_)M^0)8-#jVyV_{g zwXW9bY6kSSwqbN2yy-d=wl2LidL5(3f*kSKjluM0+}#c6Bp*KwzC7N3M%oGu`oW4V z{ivlU-LGHnXa~+#8GQb9Lr99B!k_vNG~i;~;6Zs$oZ5f5?I614w*LvkK=|`50$+&j z20c1s9c6KP?M~O|ba3)?E`5lIh^M~kcL;ND2OZ)?quXI?xL4CUm1e8d(5p?j(kQ0g zG|KgMwMBr~D{Dr+s%I)jB#-FEgG()#(00B4-vW3gnK% zYH&_5a!Sl{gH7jCK^ZhGHX9kU4SfcA&x=q(IJ^)D;We{I%wi$>7auB(kigC@#__RA zH{q~CDM<}Q5FmIU^{5#Hr4qH2q-GEtvYP0El5uR?m&n43>WpkAlt`f&D1`@VMFy*e zW*p&u#j&rTkiVkr;5=dgAEy-$=frLNUG(kOq7hnA8s-{^sj3pf}QvEblP z8l2uMqFxM)T^<6UoNFR9CRB>`y^;+txk#Y^D7X-=F-IAy`4k(+LXFnFAM`?kKemqr z=B$bok$OVAStK`k=b9J`JQ^sV8w!Y!KMUay${7oUphIYitQ3l5$U6XEU?uOOD>2*6 zri08NI1NJ?jxZ+XBEsOzMaxiM1n2QSd_ZPLz@l)Z>;n~(JyVO2oNQSvoaUD-ys-!; zc_%!OAo9bOWkp3`kRFw$n8gv83jw>bCkOxGTf~4yiIyzyk3!8jIC_>S9ONMe?*GO< zVm^F|(_ALd0Z&d<%D!ANv*wXr%>`d(w)6I2-nmzV=C@y*+ebH!)#K9Iabf+euoEgB zCQ6ZX`La-})(E`vzA^t1!@!+z^&TPe{r>g#*Do|~egzH=U=!2)@#ZW0zjU1MNd5!-eS0uI-y09N`s01~ zw%;D~^nO>@nvJH`q|+iUEtIQQg?c1iI!hGy!^Pl5e(fl=etfxpa=CJtS=vv1JWMYi zK>u6bPqY4)m=7W<|Lx$^`UF;04SQXZ)Y9gMrU`7c`Bg8yRNtW45DK!M=Dao5wF zxeyeHC^{rk42|ID?1w%Zb0H8Az=t`<{Mm;JAJP%Pd64>0KZVAm4@5WyBIK=?*56Ee zK1}&O!1VNROqfuhdyEl~Sc(%!onQ-ixU_ZsM+785e8WC3?I|noIL-FQeLhUNN2h%6 zr#&MxzV{a2`3M~sQ<$J$C1Tn~TH#Ts|P6%j@(Y_|Fah*XQ>6kqGSZ zbIvb~dE|V!{jhyG^B4Lbfgn(<6hn{HyWqn*U8tgjP7>3XZxZV=~bZM~)IT8D_R4fnQZ^!i}KWv|C!~ zDfqk53F+=2UbY5(Lc?C49<PDeaqHuWPiR8uksC$=JU~97&(Lz3JTFb?7ZfhJ8cR zJFO0KM6^z)-s;qvow`nQgbdQQ-ZE&VSl2UUEs<}XXIf_&?Kq9xe#L4hM*ds;+A-)1QXs**7 zU5rnVbOK`Im_j}dVh0fsXcnvy7L*7@epz;)455%25{C(iev}49FJytRMu;Y$`J@pJ zhw4qjjfSNvjbxJ$DRPZKuosRGD1ED5k4{^1sMeKmYo9!iOhI^nll}; zN6eYOMQDV~d5nWatH^}dDnPVJ#)-TOOf1^=SfSj7WGFj>AVo5i+JwY~U_tn{axzST z3I~M+)w_FKfY78vY|-yTS;m+QtJO%jVL_E7Lp7c2621kdZ;KG%0Y#?}7;Vx?~;5DB#GhG_V!KrU;T@ zk)e}S#$nboRu~WwR)}ywI!+GvO1?daZ$U20R(1wG1GCocyp6lA`SuI`gTm5r;p0(u z{iL{lUfen_?u5$+@ybcEbdjngvz1b%QL8tb%?3SC>8Zu8OBW8zU560xE3B9<3v~uP zlWBYd#v!op`)4LUg1iS1A=4gyy(69**&*P(FNpu^vT8W^j3Yow{6asT@9DAGA^7`z zuYbCw@71v7C+DC~6xgDNU%S=P+O2x6R;||Z#aiO397+`rqq*(VtIgA^wd2c=hnMra zsgFnLrGv|*gY?oq{NH7ihE6W-rsj8~>|eqgOw8`4yaA*Jd$tnpt%QdiVP7!i#tt#m zB@RSkl>+`G9fVC`-YN>@5J1id0R?hZ5v1{QoSdYFh))U}e9q#Zgwws81mV55Kp;Oj{*@!xy!A2J&ztVo8i*u4`h1def@#ORdcgT=wVq~rZ0;UGc- z-$9zQV_b8lznURq{f zTGaZpiP>Mq6}mwSApS;nSGJ^eICZnDKO3JVy@-+RRHVg22t^9^G7z;JKj1*^exg>i3L9psQf zn=qfOzhlq$-MDoG{x2Q#FG(SjHut1e6@MYxL-9Y9{qwNw=dn6Ke$0H5`9b6d1VsHm z;y=Xyf&U92(fbXLA)5nCqoNTYBJFCgoZbm=Kc8CHqHNDhm69~2q zqdVx|4Ep!?gU^qHFAsNLKi~iM{q7HUDcv z?0k2S`%>Hu&?myWhXw zaa;=?d7qK^)|L2`&xl{4hZj!o?#8(7w+Q$?F#@s{Xwc4gc%Js?iFSKq3~r$X4sJNS zn*Cn_zS|pmw{tsy1jwfZh`b$Ow?182m#(DU(z}{YP}^%6J({%OXzO4}y3S6ot{Ihv zp08?`*IGQ+juiE9P7h_ZiwufUA75!(iNuHImK9xfb3uth?W#!X?7<= z%wn)6SEUB|aY-6NB_#(QC>#{sk%vfw_^x5Onc>8)C=E)U-7G-EUnFH{#4N6$+zjeV zga53e1)?(w`Y$Vwc)v8m9`R75oI$!Vpb&zkqEBArEMuz*B}CzCoB)fIl5T9}h(?+G zeF!5W4SBaf@W)0o3yLBZg7$_cGK+u1`8MXzF9j31ISNF?pn^g>4$G+_L~Niy0FZSD zU&?f-iUm%?FXqz_v5;j&%mG+zw(^%k1`FhEEE&o-S~#+BM!KPFBMDc64rk1Lunlri zYnC3>ISUcO9X1t5Q!Er5q7av?c8y$2|Y{iY2Y~z5Bd(zOxn_eTr)bFhEmh@QmJ~CuY?n& zqiAmP>}umQw|ICpzjwKOm|mo@pI$^RaB6Wsv9On(-;EDD1<&m&{f}7ChnB%SxI3J5 zKbzf&%?4sp*_g#Y&cKC$NYH-;~ogW%F2U-YGk6SrMFZp%NYvM5J__dlXPe zTMySyq2VBoLBW*iVZ0qG=luvn(@r0v#GI%MA}gF6s*vl0ZSDgK#rfaO%)g$Rdo`u@ z`FUdYA43G3@cqo1CFhH{Url&r{r!|@80RO+95&aS-2^@v#C$#z*Zls4xj8>={qqa> ze-_mG;^M;MqQW~FOZ30xu+FZ^Ga#qS{d zVaPh>=3z%LlsYK?o8Yp4GbZ`jknQ1hx;-u*1D_Y@>|}tZtMmAf{NeWb!G9jV-3wbB z)c)n5vMne5Sfjoa{ zhXsuM582`)_|$V=@t#(^r`4a96RnTQ&T_J~n(VD5wBS|eyx2{Yx|ym`XrPiyUGFxH zE=okh8ov2-599UA<2_QzzTSWPeDnDM^`gHb_>bWa{x6<5pYOUf9`5j@U>wvR?u|RZ zpMKMAaY3nOzoSFu>!PNB(Irr7@xV(WB}CtGT=Pw@O&m5DbO3_^dZaM^xHz=vv#zn!-?r3^j zGvFn+4Oq$DE|ktTf*RYcwo$2R#agRa*DtTz>4KIhwi5Y9Jg^1AC7C8L=Ixf0=V9eN>CCMTM3 zDhcP545dL@5iT@!K|w$?L=iqS>9EcOS+OCQk5~{~$TluJ#UcR`>T!f35{*HDAU|=F zMK9zaLU_$K7{@p`0FGb|?=p|d*e&AR&_f05L%oodNPY>FgkOwB=1VAoSZC(jDF}(m z`VbARCIza&*~+5Z;Uy!W;wR=L*3zH?3WM?-J~ErLT!|Vb46$P61}6YPrXNt9#3OQa z9TT2PJpog)kBrP{6xl`@MYOYnz@~7}!iFgXNIoA{8QEnv!I2&39Cl!f*;Ej@yiQQ6 z2?`yuJ1jXaLsgO|cAjGJ;Yc&SuIIKNX{Ir~n*cTk!?$gi9fH^Zg9Na;Av{oK;ki&U9L?6MlqlrMAj zY_V1>*DAG|gaP75bzd9wh{NbP*+Gg1J;eHL8tiG%whd6jPhT4J3$}%ao4EPb+W9Ni+>uYd(ZghIa(xYrdc^;z0^ zeu2Kx@8R|sHuKuYXFP1S@_8~tqt*-p@4(jPI&@Z<|G&mtmDtO6uu9FbiRU{sf?@bV zP25%o!JikJpBrkQ3qgKp??J#P%tsU`6ORv9 zM_ZR~&f&$Ml54)qBlwRfkl+uMUpV;By+C8qH4pL64*ru8FmDO|tjPc1;(w_50uU6! zvoAvhv~y8FrajRGUs?tGcwjF1!WgsX)!Fm%Pb;bJ$D|G~IIXXz^o>+^Cu1CCwTnV0 zQP$H{y@1SIz1}jKoldKVQh#^%H}`i0e1lK-cc>kR!l8Y!W$$kIr{@i1KYm!WKiz_{ z5GjlbQZ0T!=!334xIxS^TLxOUqY)<2^Q+g#yu%>a?a)e_enj3FklYa9JYc642khXN zE>jmMkRD#Q#+UmJ{c=?l_?h^x_s4g@-=ALx|NM6U+an5JeSzPBAG?o)stIA7sm$4sjvC?gmfBPko*Dc_LBhhyy}i5F{_^aFC%{wjuWE zgn@>JsK>U}#ulk8hHmI>fS^uqwd>7xrPeA{TE&`{xo%|2TJ~DIENiiRZ>d4H8YJOCcY5329i9(8VQh-`gN!Tn#4eHYd zVh5T3P-sR9Q2!teLI_m(#gG+|Uwp;_;i=@KAjHtc@aI7)F(UuiO|E*l?%N z8Z;stsxmZO2Sx|;FspE<>P7W5dGye%466O5=guMrY+h&rr z>mPLY8;@2#@_hitqREN&1GpE(t@ zq(BK|{I?fAPgZsoeHBv}iI1xk#&xU73J;;6NpMt%)KKzDakNy!H&7z+2@v&6;$QUrPDAGdeT zJIB|(qwD_ZP3N*TIIs6E>iwH`zhMsB-GSLf)3)hUgRXGO-7_2S9t9Z22)W$hk_#-m zL-^(4c5=TQKg!kk0XO8lAPW~R^+NrAbsvjhi0~qL4yij!K{|OkcKCqh>_M*H*#8*! z=Qzrglkt1SOsx(NqM#PZneoGp*|E{AJDka^3sOy8D+k&&v%2Sbtjc3h@27 zW|7~IZ@j;3_+D)IU((I`dJEZXLTOtVzAdL$J3VOmUz-yEd_aT0K(oGu<`A0>_ohS8 zP={9_Z*7YfTD673C~Ad49WJkP6<~FFgD#(pu*)B|dx8$Hg-z=M3Jwbg|I_$?)&l>v z{{OShIug;WZ9sm3a4-}JMk4;8(4B>JQK7XJ-o;|!SVZtHA|s9wwbn<%iTDcd60vw9 zmP*ECl1(Mk$#^OiOQ+)5bV7!1lg6{wYokEMkl*j~_&`f`xAorNYziVa1!Vr8T1Lo! zvVnWA=RX|$Ap94*nupKkv5RHwa+bK7XK$8;t68}*-EZH$tIy86%Tse!?=OteqCZ{^ z=kwdUyW2-thM#2lxO|fTJlsCqFXc+{WVt996}?}4c%u0CgharPPj|Qy-Sd+4AQUKf zibx84xLXSL-NPLsH;a?Ig$jYgB`8oh2?jTYjAyjD$xD#$e80qQKe0$DiXA*HG`#y2 z`703o{`_)BE%5%o|9HYfYJ~qn!5XGB!>v4*?d3+<;<<-3ee`5B>t=^>7oiw_$D|2#GAHHjhcdm!I^Kt5YkUSm7 zPAAdharAf+Jsc*EMzSV#I!+$<5=WE7@g#O4&kp1%bR|9+hL4BAqp{}z%%{;|1c*t5 zma~{KU+)2}AtXZ0Ak^X9m#4|G98q6LvDKj?g`V6n~W zcidDQw4l%;FybZ$G(6@AavM5VfMUeK0!Z;KSkMX+Z$fcYiejXgb`#DiC}JB6Og90w z*hcoOfGBSt0LoDH8cZh^8e)TQv135thU$Mv6MPPvg5jPCk88AY4M@aB{I`8(yu0q5+;q-s z-K*B%vN^nJ59`LT-X1i}LAx{P^ag|B2vwj*!})ZK{OajwHXYx}H4~lRCd=9QZh zi^E)Q;N@B^&?!e;$a;Cn7^yY4R%##uCZxvsY&;kYnnvfUX>OmkGY8E;x#2F{c+1zm z@{O-_jiB&OJ+@toRfi&d_orSn+%JX}1F z6i*|C<3#EFmp5olq5UUbzIDB%731X^SrFO%f`g79f7?Q771%NyfBS9gC;Zq06B(8j z;6v@Y-!{F!f$h96Ha!A)FW3D)uls*`>;L;(-;Zk`!k^c?FVxdB~ZW*9mwr>xBzwz*8XKiomKly(Zt~i;Dv62f;ZsyS*o6Jn2di%8S7Qv z(55T6?h381&`ntIl|A@!EBMkD{AoS#(?;P#1B))JY7JXLi;t=q@%?0mdq=exjiI|0kGEc3xNhO8$;<mI;ZQ&Z5YX!tigGwtHWXCXV}sol@csLExwiGJ6e3Uy z4R3=kV1DUV85hgdYpH-7%mq}N4iYgH@4nanUa;mfrANmK{t)whyXja*%opOHu9tHb z?DHW&j)X{6Gy}n~U%p3w*o!c?@L$mB3km|-+2_-`0Y_+w!|_4exEdX|78>ix|Y)iuh0I#CzM|Je-TDO=cg(DT0Q z{t&sC3k4z;d_IX^PLfyiDe!p)*^J*zgBdrh>*z3$FHfs?y2oUwQFyTwu{ z=Mi2AzB!qpW47Z=<|-Y!NDcXElD+;ZH@Rc0}f z3)u|3B(y2lFJ5kh0_OsPbKc-iWLL5Wxyon;p3objx_~g4)KIekYTq4%z~51%=ATFn zd=v`&C+eNv|M6-0m3e`nIwZ9y1!mE2NwfS4tb}SPpTIpXuk-nAI$bQ04l|h!N8`zCHku6OetkNh(G7z~Lcjk9NLns+)*pN=zE)650J#Ko&g z{$h;Qd6(1l**Gg3oQ)I5Lo}m18ifxBp<`h_x`yc^(Ud_BM2B_m+Uuc1F`y9Hekv29 z2H}CWo+BNy;tZOUtda;>dWKy_R67Lf_1L+j2X$~4EU3ERa{)qi76bm6>gNJbqWTQb za2sJ_-4(_*nUA8N4j012NGJp^R<$Z2p$*n!LZJ=2 zLN`3^M+eghWJ1eROacQ4YO0^2p=yM9xQ*mOg~ewsgkD&J+hb!@s+wHbvwg>Zsu9Y7 zzl3Rp`qT!u*`f{kEuMmar_WL{v_NpB)u|9j5G=wJVj~4AV{KTOf_V701St-}p`{l- zZ(~K1Z5loi#zSHfFka(nR|1KIK_Cm zlnbnkiCmB$An74=Avff=OSys}jRg|p91Viy;yjPfqDQr|vpRF7+gLzIU({DFH-1y?o}Mn;|l-^5hAou z&*PUZ!`?v1AB-@+&O)(pI1&o|NA=F>3psreyC=Nqwt};7T_Hh-Uu`njJ$9W*fr72; z{$Dn&{k(RBUpYb`KWA8$o9?g;@E7*@!~W0;#lm55pGI#JiR81YmyBgo7P_gDCnKGV zQOUDjEByD2fZ0@Bo)QYoEB|q1)6r~NUSe&Zh)3e99KoRApWo;6%4g+vB6-e2K;+nM zxz;y9UApGq$8YQQmv60{Kh~^HQ(Lfmg2}NQ)e82dX z1-0$2fXx+@Pk!AMSaSv}1cdX06zB{H%FBQRNT&bA9{&4g@b9)D`7cZ%5b<0~+uK-y z9XU_fPPUQxkIWP#>P7y`7XB};{M(ilEEfKgxgcQhXz)YqauzwC$1dm5^GQt5;cA(_ zUgqkv?De=%TNG|)<>su?ob5H|7oBCjH|q>hig~uUTcDisbcvGBcXyAA+k1E*7^@W~ zL)3tg1$3Mw0#3D5f!r5rk$U03M}a>fNy4ATf^m78;r>+y!ohN(p&Tf8u8aszAC@Q- zBUhGt*&zcQ?;lY9K-f!#x=&9mdHMm}jlO=m{nuB-g8%jP>CewgINiQ5FYxojA75_& zL}>#}dA|KD*!N*BNcZ`}992)rd72;n<^4j~5kce+%Rj%|GS&?1+@GrrurV#hUq9W` zWdivSIW+HuiRX9nImtcpM9>f7pA5NUA5CVE0moxOzyYc!pqQ%M$IJCmF6Z4oDA4Hj z+udQKGprfI^VZ;~K02xmcW;I}a0*Y*5cwQwg4Ih{M)qXX(T2EqJuF@hDmPR1O&;bi zCqjX7YJmazNYp+e2x!?#j>i-Q2bQ^*GNGjoqUg*wqp^D*<)A4IS{a0l9n(;(abyOI zQ5q1H2q#Wf9E42x41#ouC=Oa6D8$B)F`62yu!k5iqP-9op$@8#1W>5CfT|0UHHTW5 z8j)fEndLinT99W&mIbGPo(TAw`V^01g{Ki#riP~jG9impg9}&f>>MD=A!S0amlCHw z)ZsuQ6RYBk@EJb~NY;hGHB2CEw;8usm0L8w5lP z4Y3~LB@PEV1QBY+AqBb4s(%TNyN=vJD}1aIEU6l=`N{5@MCPR%7L1$*&F|4dfdnzR=Bg&ys9FbfIABm!2 z0U9A4C*)C{54WV6n1h-K5fLBbivMt)q(eGafQEXKlohdoV&zIfRGwSsv$D-wRKUSX z`EYCktVB1J=%7<_vvuMf$+EElC|rTy_kd{i^s_jUJLJF#v}_2Px3(%I`+_jBv5^-9 zY`7}TK-G-wnbAE1rT+Gf{877nYV2L~b}!7+n($vo_^;j`B1NRtYnXCn7&Hw*z@FLd z3IcZfz5ZZ;drVT`c-WWA%w#lz2V*3N)}P9)=6EPenak5N1dWF?f}LD=h2dm^>RSuu zWY5M^x$sWqiiMWKva2z7I~>ZjYA_lN1oh<6bS#&w{$wmeu3$LabTX2;aN&G5oKM+S ziPvf?)kl6VW^&O30yd1n@l`i}+=}hBe8PX_W}woDRqNSz?fhY_de(f$3NlAm#%Zl{ zdSjkko0pCLMa?*`ndjHW$z|)^Np0u2Rz0{bA6{3Ft}2HY<#!ivHeKsmNWbGi?DaKl z8OXZ(^{stn$Z%j#FH}rKOxEGqaQHSM&IN4lfX(UObOqm1Bzxlwf&vlq^}pEk|7Jsx zj&+b9!g)@_XNCMi9)HN|5BdD^OCRzDKyq+N1cQNKNXS6wz#j?&4KZXhz@je@_WJ)9 zoiD<_FygMO96OpSg5gLo5))SQ1tS7&f^JS<*ya`r3~##rV#4@-ytF~{6Qp?K{9lfx zBN&py#pHOgmFD;FL(oka?%&s2&l31jiAZ`C*ah z_Ih5Z&5HF!sWz`RXZy{`X=i@ZowfV3{)9e;Im+M300Q32e`gO!A3;7G@&XYLoqb}= zlr{_Gnjpkrl?=dLCQZQz0V5EM+_<4Ul*`0o!n8wzpbU9-IR_CgdH=ek90(AkC*uK; z<@tw)DILBjf}n~W3LF5`gxKzo8u<0`UtizD6!PVcap8LwKG6CIBs^h3ls`Z!;h(6L zfPx5retP)&K{kG5DVaO&5ETfo2B+s}`9*Pq|RKJxT1Uotyq ziLkG{5g9N+qY{o>eTQ=SMjWTt>-PqOZhs&TJLvD;Gkb$(cUU)Z>Az_7PaFM%`f&fI zzkf3n<~yuU4jSWw`uMmxKCDd+8!~45wb|bF1PzyO#@n@V`DU8C7^cp~vEy;*XyQMF zcf@}%hKX21!yJ$XIdRG4kRZ7KEne&;9a>3*@37v*dW0Z9Duv7@96YBLI`_IxD~XWJ zi+54B#)b4jfFM!{31^5Avmc2edI zHUHg+lC~78V6T zRpu~Rq2bo5FrodM(ZsTnkhc^Ksrju4j1Xqnl>hXgBtL!XIiV06kPbCujBUzY8-mEF zk4Pv)8Jg!MMM?y_L4lTWHgYv&O8|7i_4eXeotd z2#r`0ymSIU6a)nJX|ADiA%#NmaFCi~t$V;f75-~=dhJfn=ybciUZ*P;5L8_e+8YU=^@aaN zg8`N!@SiODyvOXze2gV@J3%^tp!`iC?8!ZK zQxzxxuY>?jC;%FST~>xLBI1L5VPKVM_x;cWJK?0~yt;_s8QB697?L3%7*z_CGqHI> zHqU>=yVnjF3pQNgE${zwENlM}&|iXo|Ng9wJT$!jh=6HmdorS#l(kKs2$;_%3)w_2 z9m6ssm?(^hx2D@f!@)>62=UMNmqIY#j}4oBbIY~qaBYGDT{gRO%jw2LI|8!0jke-_ z&Em}ez6Tuu#5HF4(JB1%D+feDREkEWMpWlvLuWdp@%IL9ZdCPypVzHZZ|H zTt3QhJgyol)*)XKAc*fy{;jIE)YT$=z04vIJS)_frTVg1n^x+xz2^9$yQ~l9t-)+C zUJhn6E!`{-cXuxgxMU@i*?VNmAwTauQvhK!dw_Z31B15e1z`o2=^gS>fPHeaNc|6~ zeoQwR-Y$_223~t(kbGZ+0jZT`QlScofH9Tnyj~j!t=J>QVJZ+6n zTBEb}?5H_8Y0VC5f`*g5#;kHRs??^*bGV5^$75JS4hJsO7X<(LkFW-!;ED*{EHuM@ z#Du~_)*ys5*mcoXY$=8BEII@lvf>N_#}E{`ANorU&<=!UXplPyG=!LE#f4=8Ktw7b zhiZX9Mk||8=}YMlLPsSJ77%$BG?W@xFSDgL28gI7UZ)GA|v5X zH9|Yf8CrD6!Z(y8`^YauAwwYP3Jp!nx4)4hvJVm7B^pBi12_^51yo68_SZsN-kuEpHQ7@auyLn z1|w*0R=|R9;X%P{$MgnT1pqF+u-gv}RVNjT0JHSh;%j z)M|}BM0rKL5bp?yhIF@}nQ{}hZm=EE?YrfgE{So^4=vPNtx<^7Jt#ivu*AQ7b4$L^ zqOnzIZk1XN8D+y>GMy#US8Yf4jnq3cdn8C?Y@c=ZE_?4T&4bI%MMFSmP-D(tt21aA z5d2zlK`=Tk!K1d>HigW(ZL=dFCXh6e3y92w%LcuX^`HkCP%bNdfjPOnjO1Cl)ZmIE z+=i$FCI~+;n{dGEkA@=zD}}p+E^#gDbX#Ue4%afeCb+Y2%7Ht;!9H$T@z+OhI@xm{ z_$cfstT(b)5S8?yDdMUwtK~%vqj%NnA6#?`r`^;p-hS$^T|O}mE;`rke!bl{@SX;c z9Y=_rjL>#&0=%3~n>+0A$i@tw zS|lgG?ok;s;V-?aK9GM%fON*v>=49btPBVVhAjjXGKf-viwHj?v0mz3wyj+eO z!xC)Cz;7a+N+!~&I2{{tB=9|tj4We$klZSyn~7zT(Of2xNm;RAXnToBHWg!l_&M?` zufno`C5#}58VlOS@Oi}K6GHUY=k@wL9xv?_o-L=-?sRWCfO;4XxA31#{vGLb2p4YJ z(2Z?<3$a>ZLA2;tx1(e4TidI3wU1yWgT<)G0}w4zIfcZ{1OuQ5L6PWwS#)m?9Tj5_E(D{C` zgdW5H_~a{UUo-go9_C_*h~UVF-%%EOiS{I)mcM^SgQm|PQM~Xy zI?kaE%>8o8H#M2g$J6Ny5nveQkj(@BlhKtMZn?&JnNHMwXng5Ve$n?SQQVBJJOsu5WnCXMyIVD0nEW;WyhH7Zv?dlr)Gb1u^ zY^jFCL2?_42xhB}4Rol1V~YqGFRrYfQX;g9-5`|^`&4NVb1)xB@vl&*OWEh9 z&{!2QWsslZAi9`PGGtg;%inCVa|vlo%_u9SPym7tH&*1QvK%KGCMG6Uk$||thQ(Y7 zDQ*koM?gdcY|4RL>gg#3DjHgui&n&08PPJGkZ(v)h}bF-swk+K*oLDS8(8KKeO6z> zVJU5!lm@W}E};uDSWLYT!D6nIlR@ohMZ>oYG;50CN=MX(nt;dvGHS%y8t(LQTn{9%OODwWoP~S8LICzD0%6V(xMT;Gu$Zrk-9QMhf79+AUz@w<-Qr0*d(q{hV(j+Tde zT=N&mpqa=?%b9{o+wFSGs5RR4X1msC`jLaL$@l@L;rr#sn+5IQ$-vLK%PP_)P^igy zZs8A~Y#$1O=P-Q1Ff#4@5%pW3Jp+xmZ=Ikk8*mDYNc|5eCO{Ti$vlCOMRh`c0T5wS zi4c+2Fw7M~Tvnkx3`|)^g=iNMhKPe601(1|(ew%dp(lY3iGZkXW?1Me60<-?PAMiwjHeO`e~B!>E+*KQAq##R zz`IyBiOqD&bRsI)CmYKUw#y`AIf2DgG@Fjn{1GSl#qt?U*` zL$3q@U13=&&k^h(>Wsd$hhNH5_VBN+=&$6wmrhw9`OOh|<%-A)-?*Z0u!qPS zw`?F=k_DYYf#IL*0)kP3AcR0f1qA^Cd~gBJ(>IfBeV(h$GS`!0eO7GD%Junnb5?E6 zcH4`?*5b&RUH2CC{;V@t45kRmE)WAo6!`H;E2=CJ`9;T$1s3x=OQ?iG$ ze+(J39<^1Q8Z}~|3law{b&z!gS43z@gDe>X`R%z9A;m(4LJVS@#*3}VvtFnc6TvCE zUIs`ggx3VAeh%d}S&tIaT0YQJyT&sD0;iZ(Xsuk4qD6$2E(AhV>8#8@Kq1@QS=@=G z<_=OF6x8@$CR8RPAfkk|FdxC0P}Z!T zQZowk3*kiB(#c9Sls8Tyghkf^pcN55Po589qZmmFMEKPP#St5%0Ym z#5RCe3TDsS8?>#E4vUy$0HF|vmG}59xQskJP@~S-G!LgoO|i+7H<+tug_~hFeikFG z9xB+_k|E1&!D4V5fD*c(ZiB))s6K-|v-1kyAU_k}9lPi8pxA~l!5TU4Ix{H+5H|sT z=6bGfuOj)+Q8D59t(dN=iRHHGsT!fZPU>AJd)UpNn&o42=c2cBZtPulPHH{*pZRsO zTQ_@cAmE_c?z9jFmC}z+sh(C0C(EK_*Ij9_~*6h?8klb#XM!hK@*lo5AT%8O^gGA0D zE?@ng+|H^fC`arw7>(p-xynKQqv$w>#MteRn&wdG_V~s;zV2?HnR{2={Y&$r(Wx8V zcBc>5++;MLPVVj|@E6~r7Q`)oDW(FIV>xedt-MQlyKpuv5Y^O3F2WUlE}p5eDHb5zVkUAgd;0^mPrwR`EoH|Dd%@8`R#Ik zyOOV#b28VlTa}gauuv&y<=JX6S1o5NIJXRko@B0E$YCe)Y^hK!%d2FW+vUr5%Q@LY z70c{ywJ6UP^VwWBm6eYw1+)cDAsH}&97=y!aNHLN$q;Jy`U75OSb7ERfxIBFKqwRl zA+|0ws}KDlFgLdkxxGOQU(n(9qx_0D=mg~lUEZL>6LNS%D8=li3Bw(J;|wuM9$s@t z1e?~qaeE-)4JEvhL@1VuB>45oGM&oi-f(j7fohE@k}tD@yD{hSjHDidt(`w{4XJ zxr%=yWGK&vb6gij@^D6{n^i}8!U_niO7MstbStwki%5e+QLY7k;m3(|n0tIm{AjnQ9+70QBRZ>v}M)vRlO-km%h}v!G^M^Uy$6xOM z_4P^HtN-H*TB?I4Nr5OmgIZiD(6C&Nr&>238P-E93fx6v4=&BPy7f$4f(^Oo-!#pu z28LWB&+DCwX79Y&J!5v@iNIg2chndi+zhvC{cS8~<*Q!xYE-@+<}ZfXi*f3F96y_e zfPfP}wLk=a567N^p6_@Tgk_@eu#KMBdW6wTz<=*Rm z=Q1W!3dwzo7o$K7Ub3eHILJL%*@Uo|Kq(x#L78JZPRN2*1wphS7H;#PNHvVcDib27 zkn43=359!B+Y%+e??F)YLVLA~rLJc|oM+Rq9bOaAA#t<61r4&tdW6`sz@IYc7CPGL z8c2FdLWDvU|M(CCv0a@rc8q5+K!H}KpgN0@Aov{%f*q@-9*7x!illsYRVi>K6I!W( zJSdL)%z472cDRx)nNaam0Sga7gs4QQyQQrdO5Vz?++8V!78(k`eUE_pta9O2m8x3_ zI-DNsJ9Y$IuGRqlHc|T!`%xpa%>qHpg_*FWr75;_0}kZyfyurxBA^pWVZKG~R3(xO zmxu6%3fsUnRVQ*fkU*69$B+<(=dhqt{Ost=4HKoS!-R@ zjO%*4-s<9fxUtb02ndoX2WA%~YM9Ur1=30t)Zj9r(nQhGP)@|?_L`l+bseO8aAhL6 zQR`nd1wDbP{r+e+o1;twN)OK7Bkg)yncKkW*oy^*vxoCGMuQ?X<^mXHBr0RQPorj`Hr^Pf(pK!<4y{NyYF5<+x9 zGeN*yI$y}iITs5;RM|2pFefZnoSIo;Y zTP$S3e+7A%Diwr>Qk7C37*rA3D{NPVhXjTSN|rn2f;Kj1k+1}5}4Tf7`H2hT_7MZT0YNewJ4u(7GIovQ~6jb7m8;?iGn|#^F-2~ zXx1Ic3a)vgIYGCrV0JT zDSY?>7ceXx7BarS{Xj7fRRiD8KRzrzf0Q+te?rh%GY;>yF$wfPp+H@uebzrcd}K!^ zs|NM$bU8;tK-~2(y?3?2_SK+rIV@fFWfU(*#miy&1`=TAVjMpiMo-2l7A7U@_{*5DLM6M;7@#2aBIU5YIA$P>sgAb2v*tfhrRY)nx*K z(DE1e-3Mc@cCmXm@E)j51T09sP}WRz;@s<@mEpUQ45kCJ=nN+uG##r(xZROGJjaV& za0+V~8ahJAd_cn;F6k`6%54xKA2MpJA>G}+ZQHZ}k@c&snuXdNnIMQ(c)J6bOSmiT zO(*kB^_S3h>;$NNa~xYZXwjiXgc>yln64t!U@~&j_jG8jr&7oP&jg0aFo7CIZA|Et5ibFXys-8F2j>+rrP{ZIXLrxFih+IPrv%;IgOvIMjfkBWKO&TCS!Xl{) z5D9E$VI9=UAxgr8OVk6vRZV=zc(!e4Z571sXzu znS*xm*eISD2bZ0bo8D!kQv+=Eh53w52eRBs0wnf9^lO<$$LzH`9mIt@7_y#{UI*c0 zvuolRP2|h?8y~oC=+-}Ou;zhoR~eN8#cj@{ifNIYfil-M;8n=uN%UDP4M4M zoBY?gZpgAthe}^5u+tfsaBM(Olw%>S5CAwrta*e#&>;OPjn-j7d=$B84qz|e>-_xY8|op<1L8r9`yx>u$v&VJQ9wTeU7ml6$PGvOnAg5ha_=EmO{J=Cza-^DwxvU1GkPcI-Q^}ePh*q8}76tf(|G+3a3M1eo%OWmvX}2?g4H5xYOO<;Af1qjq1+8Hjm; zN%=M@{$=7R=)v+0%D)WN{0j093;%>&1<~FJqRBrwfA&ov`^GPm^kyix0YFTv z)F&@=MFjQo{#Z7M9p?YvWKu>bnGYs#h)^OIPGY?fp*xzxfg%Xtfw@uYrsr$Ru$ z!4Id#{Ir8{-dSGsmRH@`Wp8oQoz?n_dUsau&076gd${OKmd0S#8_c?+*AE7<+=9x9-| z@E@OU|M?kR>HeD(_>bS8{`dqaMC_Q!kyeW2BR~*#W_Uzq@aWBuk_{~oc|6GE5e}5w zcU;g-xiXqfb5NISv5Zzv?v>AO%;Q?;P!O=z-@WP{*2X*6gX+zwc+rS7Xx9b_0fnFXQnVFO0rRh{Q>prWDO3RPQyV|_{s6RM6#C$c3II(LUyLlE3TwHF~d1vPS^Rh61zVTBI?f)Es+ zi4c=&Z=(#F*%BhuK{{0Tt`3NWoB#(`6CCSVL9`GMmRrCODe&9SAaa#yh2O=R6&W|m zP`{{Cc0guj4xr(4SXl$L-}n#yl`^Z_SP!ki^CVmf7gk^sSplV`CW1|^3OKNjfKU|> zOIp8>@*(s{=I3z`^?h_wEzGW9KteP_ zhP%@8Y#W|Z%Pkw1TCPgVCF>d0bprl6f$er=$B4f(!@FicZb+(zt0Hd!@Fz>zn_b>x zNw`qfv^`bRx7+bl+o4?}vTsCpTk(CNKqG(Dsh)TCF1p9p=4I2UHG4Ir-+})O2z~;8 zM%y&oovr~>2H_7Z*dY-D3JsyC4tyK!wt-=Gg!2Uc+QN!m=zLwUU>~V|9g2m$K}-13 zfY(^~j|qR>TC*dl*JxvTQENd3thFw$n}UE>HA7b3G|WcZkS$wnlZ1*;vfyAxKv4LS zDkJV?hsfJwY*?4_ALJu;`^b2189f2qrrECCJXk8crANgFVpt>5kP$f4iI?%}&1PAoUEJGI!4IO{P9-mE zcDD=4e}u&>^(`Uktngo{kOfAQ_6oU75x^=BQ^j1SAPAZfs!Pi!%+PSQQo?I7A#@59 z$|x6d@^zGi6iIEbG>XvyJ!%z5&CbIEVHVNqu zB5RKSJPKs=B6+SCQMfu`2|u#{3{A-3mVEBFUcF0&x?9(ER~I=a{gGx zAE)>i$vQ$g#C!t~`Q8Q*>V54M1kC>COTY4EU;A^fyb$e#1qA_Z;oMdz4gF8}FPinm zvw?UnK-3E*EU*j9A<~F7$I>$LkrXJ<8_PQ*nJub-ul;{Pz!#qM3t!fM(DNPkeyI0R z>g9%w;AFIWv)*{w8P0mc`Ea%zj2GkOax_~^7PkYW{#gike>(#Fu{+590xf{=Z)JaDprJMqW-WWv zlwxY&Vm1T?vYeHS`E0@(SEys411qP)`C^9X@N6=hj~8>uY;wwXvU3=hnPRw_Kpop=1p9Yl4J1n+|7VEKwwSj63GO-m=5{ z)@ip*-k^8oro7fhg^0^W@4Pt@1U#w@4(k1#tKRm_pnN4`DEwEza!|UNWG|osCQgTu z({b=<7-Tx2AleE92Uwl}1pUN8ihL9Q0a*}Gh$Y4`)Ip*lxX@3M8b0=a z=PYrvaG>T6`VJAC^&OAlEMaIE8l=U4)C;j5ilCgp_h<;C3Gxv~j3zT)3_2XS-(gM` zgb)asa1}mQz0iq{BdB-Cs4nvV)Mbo^926tLqe613|7~q|l>)!Tk@vr6#2%_oE3s{( z93W7S(jbL%LhGwjmsD31Q$6u$$Lv z1~9JM67&L zp=E*s0dPn@=BwIBIz;kcqg@jWZ5Y>$){R_zTJ6i5MhzK(om!(UfQX$VgOD@{rtGvK z`S{kwd zv*CEwA5A+0DVtAFFR|v4ALi6=f`IPiug=6PH|DS0NrA$3Z*s$%bOw{|P*MOwC@>gF zKnrC4UkYJgphSxCXZb%IAPZV52uYAWxy;DHF(>~i0)hg$RO~1gAnFN+Fr1 z4j*WvNNtbuUWM!9%r>}LJ}7=fa=2^? zhGgU!wA-^KR#0WhXGxBzXiwaO=Q$XWXGMR`Y zRWqKTv=<}keXFeposTPEy^ufI4u6>8CGiBJ!dMF7!QB!OB3#*VWFC&j!l=}zsh{zn zz+xl;5R4?e!I(c155|&_LP`h1$_y-Mj z8~g_xL<*pM1;XDsd`bM)66tI-nF}IHoA*W${AG$B;BU>Je&f%)MwVXgH(&N867{fr z=}x_3>fRea=xrmAmX|mpX?F|+=}#1d|3Zn}_ehsW=i=!c5&*LKct)Tz9|8hq91$E# zw?Qu83IydSK)}OZ_+x)qJ*CEapqC|GZq@EtYq) zxgg6eP)nHa;bD4zzq~_5=;_1VSk}A;|BVp^rtJ3tHW8GDW+LDS6=9$SQkJ{N|DGT3 z>HoN$pd}IbZ}NDHmFQn|J3+4@)C(MI{+}$TQ{4H@#$dkbY%CzCPt{YlY2D;!KYZ*SWgblL;6$;UJ4wDuCQ44&35BYEv zO-3B~_fJ$1;UIwoh_1wFNq76NKdg*E7?8<->@qSJzGSV$`R9+fPxlj+Hbi|ysF+iE z3nL*w)Kfq&B@LP|xPw5?kR>5{*UjElyLZ;?9p3a0YyG|J?)EhT!NPxqi+=ffR00A{ z@|V5B)gX5{Or8!Cr{n0^K*&!RPCyXa-tpLv$vAj|p+pF2@OYvChj9S=h@zqIaKi1; zo>+J;z;+`Z#*0^IXvK)B8h)2Ss8*7FOC9{nN(DqZQGARJBRq`;B#1;q8bp1;zlep{ zGkwQiWCRKn_K^8^0E$3$zaVFh&LyBUjDdSsr9=x2ErIa4=*)K+gp>?rz2I8Mh3r6U z2umplYM_?8r5MQxzo*Odrw3ba3fQam%YQQ z?qPj+TpJ!-_xCS)yI1|ai{AESf9IkLG5%_Bc-cF;>A$<^ZeR9t1i^4sAQI8uz@9K= zC%9{RwgvuxhCVzrg4JexzZ2hUrG+vNjnc7EJ!$Ws8>cs@gj{c%wPv#kfa@5m;4k#N zjsPL}3gCw{ziy}3g{#AqEg2vN0=DIaLV*BU1S@xtn@$t5)^33ctV_T z{?-A4of@3B@Y^E$uwk@XLVhiIC<8#rSG5^RHaq=R2U;Mg4upzeGZUKSRJ*Vt_qzio zyL4$-=^)Ah7YAy~Abqe8YD9Y^I7vn$751jMT;B=jjpWDT_Et@SC@?rhIYYVBv)TGo zHW)tMjx{z{CHdhexhepJA7&_mq@uF^gab!lxhTQSkWa&_fke7c94UZye{$0gsqeKr z0rAhB5dQm(e#pavhL@rAm@iT% z(>y;U{3#Uyv#b!XMu9oWFwKra6vM>U1pCPf&XTCCL^LagtEgw?-dP{QU%edyf?3)! z3Np5t^Y;y3s(1;wnVEk$L|NDrY9&Qegnje!Muhfc(9Zz`%%*c0&U2tc85$Ip?TL>W zupolS@{XV*%EMeXmBR}&ihz&-!GKT#wUQoCE{+^QtVja)WWxN-gaCF1!D9j-|KEBE zw*~NVCi7@K4mykpCMMz9O<2oFJQ<3~NJQeu`HM1xGpP}JA$O!sS|V{t^<$(H`l-DbgLQNguj-WSUVz1f0*xs70YJ(Lr?TMNLSq40;{ zNx$&O5-SA?iH5Qz7|sR+LEc^~EdLehit7ud@7!AgGe>=)u7mrwx_0)Dd61Zg*h z`1gi~}kdH~4nGV;LkSke$hOcD}8n3E`koPdr2r|nM zGH}cW#~?yXkXEPy;WGjXv?0;(Th!R9M<`I}T*Z!|7b+kkBs~HSvP%jzLQtU4p@xrT zu1Xt-a2LJu6bhZ&ta`X_1$Nb00yIS3Y1ojTmvlP!G{g*1(8?@Cg5wGhfo|5=rH%-Z zl0b>@G2Fp=6vmEMP`Ha0dDxN~p~j9GQ>JoB4pRe)av>P&JFyUN3SN^oO4}$MT7XEs zkVFWvP=m;P)@~__us;*#0Dl^>wHVQ=jH8Yj0Xyu6p>RuRw4}r;oD;H7crtW7Sr9~M zZ3b$zlkgCa#R#Bq4b6gvo)VepVLERX(`@?3ZZ}e~{*6I%HMqk!nHhPz>!BuO3?rr9< z-tN_m{#C1gbluyRd$1EDbKFV3GXZ(~hAhK7?XY0qt`XR72e*yro;=%0?YD&&3&)+} zQM-E7-n%dkFWaZr#x;~S74rnS80s}N{)-e5D0+QVg26*5fL%I5j5fE2lMLk7ZnQd@ zbV~7O85$X|YctB35AjF*Br^d{Muk7*^5b18Q3x!-l*$k)d=fBw zX0piEN@V;INPt_x^o9>GTW#K?U^FLu#pj$rJ*> z*)(Im8FCwBJOR5h)IM5hnWU%~M^gpQijrHADR&42udqqO#IT7FaFJ#wv{A~bwzpHs zD*RPx+O@!!ELbh+8cP;cfe=dsY7wi|L_l?fScptn5vQlgh)Qw=;i9y9I6!Y1aGvG1 z5f)6RVQ8@wLBJpMudJ$@aDEU9vn8wqDatmwaf8tN34qDrKHC+jwG*&%Z}2p@8H-(|19z+kw7Wm zSD7~nC2$@-69QiWhL{R$zsR0c)T

Apw&7um+#M{xd6<5rt1>q5P(@OaV+}ys@k+ zj7&aTD6{5EuLr?@ue_;OKKOHg_2;0;xzkvBu>6gppitnNA31z)18E9@;5kn;?@#0d z@mw&TjieCpRiulha*2#kU?H5yh6spW+ClW$H$i~rZ@%<10{#MDa8~#)EC>iU?;UIu zGi3GM-J`w7-TS9|WUUFNpf)lb5}!X{{yQ8MD3Zc%Y%qUl9lno`Q`UlBGD14D#?#_q zITjpzyqm~o4~l@mL3D>h2pGPNCAxhqz=$hH$b^1jlnF%V$^}|jB2GFR&e)7{J{`^G z0)Au0e=$a*pT7czHH z{l(8?1%+Tf8c-~k$#;4o3?<(*LM=UmvNCEq0cFaPVj)r$357ag4Vq^hWFVMIp6(M# zgjRkbDjiyA_-!zWQ0LDR4|G9UGR5$lF4%Ld<^V)CP=Rnre~AMgUUDG?LY&O1RH2-e zN``>N?XDYW*l}(nC~RMKw4;}qevvA(4+(_`9IrglKrXc;Z&N$8g3;E{xuT(y`xG!z zHdQ)A1bGL7+%tY@K$#_G;2pL!MZAkXr8tC%F(?hn5~^WYp%BqkL{TXjT2Wd$ML>#H zpjl(tU7sP>HP?2>zbhza3if4>&GKny@4Rz(-9Nn?Jb_e{|GU_s#?OMxd$Y4St+D<~TgFc75N{E0k3j@?p2oPy|Ebr29f#Hx`*agyI zb2$!qlS`&6bAl;S5xWTcV$ZOfpsXpqDP2T|g-m-WcPiI0lr4np2Nopy>4en^S<6sv z>RC5muJ-6bJfA}vSgH{iJx=7Zj_NWfXGpP7F6l@LoD7%qDG5dpFk8V-I0L>V1|==h zV(uMHxJa$D^7C>+1Ccn2s(3>wdoW2CNMg;KTq6a_a$N@Pz&3vp!WMY|@)#?G!%F;yP_9d-Cv&1BiawsXF zGSLm`ZAyL^X@VeQ!5C1|I05J7ktPTg36+Tekd8hTTabGVb}x+$ks+$17AHQ%qf}6A%^HRf_BE5vq)xrn0|OdpEqrM zhpxvf@cr~4F!z91FoL}Jlu%jb)9pY1crU;wlRwFSI^^LWUvB^Lgdm4T2}L;0d^pY)8HDNF&IsJ9D6pV+eBJQ=m1T!^aF9%ieqfi;xNF z3trVDwB$yse$B|sA~ImXm1M}BJa;Qu1&E(zLKZA!!D?V1iEY4&fISbR#_j{I)M)Zw zq0osQ$0MMdB|WaRL+*#z2XXG11+AfHfkR9qNQSzgk1PUTOC6;iw-{Y2uEW@gT zX2(E4gtpnRP6a~HVYRCr?VuE5bf5J?Kp{Gy^tLJn_MqlvvX>x^lTheTy^v_QwGGqB z_nSF)yX=oA_|;b7kh`^(dUOX%Slcb(5W@kQ#PXRAZI<-}z~^8bS&`I67Ti>VtZLF> zTTTPXg*X9(r%aSTWGIv+|Hkxg<~^+(#fM9a;I`? z?3^3>7wzLq5>+5V^0jOwLL?Msq?)LetDyq6;70-a5hZ1t0nV2kiKIamjzRdBt%t{G zBQjzOrICEvcW5nwJACBF4CFdEVG9!soFA|Ah#Ip~0Q56DSS$Ed2LDwMn9JsitcS;% zF$h7TP6rb85?aqCnGMG>?oi4ZOgckpn?JpYLV&QlyAMMwd8V6_Uc6%<$khh>CcDGkz2 zL4H+OL}@+6jxzMWUB+#-fD0VBEV)vKwpXN#N5Z2UM%5`IAcRJOrgbLJ9d$7D4C#*P zZUvMfRKo|@32qdWq{*@zp&}q*E(2q)U>|W1`HtyyQmG4csM4T7A(AbbKKO0mwfdKU zikCtU4cI$`|2U$FFj}jjMm8$*F$N6i1O1`oBVi6~Cos1vwMapaMsN62QmC_|oF{AK zJzCHQwXYygBjQU;=O=(qMn5Hl&XM5<_yb;B`IIR2x6PyiU0DSVLLHQkwF8vEz#IE?Gu`9kX@{3=BFq4YEc64 zX^Cnn7^nisa?r^612fSA{5&2s=Z}S8ZkJ;%{sIdyPz-o?%l;pz`DgijC$M@k6p$|-`Nu)yLIdz0LL`6#=Z!zO}ShV#eU(f#cdp9!5Jx6nS3<~T)y;}{?~ z#hdLR$O2KYX%4TA@mXWIf8F1`83F;X2GyJKPHntbAMH11JN0q3HZ5F25!7PQ$+J=7 zVk{IGJS7DR3!VzzAyW`6cw*^-A&%!@F_l6992LZA0I7u2Agm-H!k`+B88}7_YAAx- z_;~0!0Jr_GL(q){Yrt~~lv<1i%Y#)(8j>Gaa|MDv4IFblyvAxkru!H&AtgfvL=WoV zj6AG9Ly|+485jMxlp*=@5}+hr(Zly-ZX)RBMZ>hC4_N)IG~m=9J>F z2JlzqQ)o}Z$qv&8876kXG6L<8aa#tOD;?){AA+J4WhQYxYll2B%8ek`)f`U&1aZ#T z28;_^4AHOx&O`hf0cgWoQ#JAVAfnxJ?wC#{Yjw`9y9ZaD>S?EZ zVwBkbw{m9gU6}h9o!yJ}K0F_t(`)nmrh8HEUfh`1_3m}UyrJK=*){=wCZ#)`|(by8#Pmo*>JO>~}d>O?E zX;s1Xm#yqrnNTCYpv#_|0B}-{g3GVm-}aHvO`k6>`@_Xlo5P{s9FG90wPgf{IwNxr9{-LM}irQEbATSQ%B`dQ4O`tq6w#$*#lFO*KQUcYLsT2|% ziIs4@++XHBVOmTvlbfLglE(J&sHVZ4tCocp{y47S#3wd*_v{OXJUba+()uRm26vhtd ztk3?KRh1l_fCU)>u9ORvDuTtx6hx)NJaRnc1BJsySQz<#;A94i9moRN&|%@fP|;st*q z=Zit`Q>62w79h~j6NL*{h||*l{AuC8U;Sw+j)k)U-2Ll|%y0koyU+}R!ooCPKd>?G2XtWj{p0^f*n6(xS#Ye7sF9S-bU z0zC+XvZ_+dAuH@c9pTCLqu1n9QSglRk+hD~<%$&x!vR(+_L^kMP(UY3kjZY*v}LkY zbgrKJYNHh{i14Ba_4#zMn4ThvfOiJ|{`u46ub&@uXujZ2kH4sJsP!WBp!@J<^}*E8m`*Bd z|LztYR0YvsE%P8iidf>3PtAzqk8N-4c%8A=7){H4_q^l1ZhOZFf!osD*AI+yHhtf~$FZE3eU1;H>e(Tt}g z!sq9ZE3bfW2l{~{S0Uc`^^HO-d|6ml8RsRH3E7%oIWef6*AYIdlAXyVAv zwcm+i8F6G-P{)s8qVt4_+=LXNKwb;dB6zKHRS=Ix9JR#6D2OT?!hfNZcsxdrH1eUT zMA5D!#E~`K(B%1{8X6X)w3&ivbMreYMZ!?*56X*%9iIWLs%0wtnGmy9v>G$#X)YWFgZly#Q9}Ryq*a7=*98m(+SWy5eAbw}u8po5lgs+(s%>4hMwOOz)1=^|(H*yhpufw`v%e3W1G3H}Z= z{yWejUk&m?aE1aWRCQ>uRyYt*a6ClkvpU^=yE|xg2hHA~*%>sMLxfrvqMhXMZK2Xk zw#xJd)^$&|l)`gCFeOO_r&5@21`#^&+0+pxn-ey1v@%aN+m4LD=i)hD&9(;=%99BQ zlDMp`j$F!A_)ivCl`O4^%7_4qA zpQ?c1!1Bf#d>1C2>b|(BwVW8OVD*B=Q-X0o808nzvr=mOkw`&oQCy&f|FSPt0)+f_ zv)>y8q}oF@KdeJC0ADOElkHe)M~?Bdj2#&iHygz&H$Ry0wWiVNgk?bQJ$3W4a;8nO(* zSEJrW-lMpckAjgaDlLWOsw(EGTnDPEUPj#srpQWJ%2_6QYv4~fFP&B3%g{9=^~7@O z?UI55$?P+!dnU?@h6f(%b$SMqMERWL{~38Nv7bs%rICv5W3m`Yq#|*OHe!sFhSzhr z?Wo%#56&U|8PU(YG4shQrnD3*kwkAOD$ob|T?<}*h%&C%RP8RmmM%!T@2 zXrNPirEY&X>5yBA1ZXgkPa8>9o}cXnGHJ%?6K*AoFE?u63;be= zG_z4J=>ObQ0sl_}%G}At%kqtHf1~}}bO^`L829$qpYDJ8{P6Rq`~Uj#=C_~Zc>gQS zGuFR+Rypv)QULL@Hru6z+S|oPDjSyXRrWI>)VB|-H>{6g@}F7&Vg#+Jesc`pWlMca zkq3(=ZGZ86UXbcHTTrEetIHhakD&$u)48ekAnvOfax@Uv9_NniM5ns*WKXHepF{R> zSQf{cDBEbZ)M}~U(G;1^0J8(*fN$>7)yif!tc4@8k}rip1I%S^g#t-N5fEJ7t|{Gs zVkv44v@T?!oskvbNb$x%@wYFJ@~L7RsNlL!B8fwC?g8(UCNm`m(}o3AkK8(AV3cjHH1o56Q4o!YsL6#O zpr!yS3w}M+wi*QyJ~K&&Dj%Yvp|^3yNN!JpB2ibtLC*Zho8hGDi@Y&CBQL$7z+-Uj z2^N`{yS_d$MnL2VNq&qYa}p5|c2v1B#6&bjBSVrD_>5FP&3)85746Q)V_&=y_?v9M zn(Up9VrQe&#kg3tuG>z3?D?~qY_a5T{1I1qRxoP+NdmzifNT)s38kI@Z%A&T-4P{j zOQIRefOrLK6OA$O*c*)PMt4&0+O@7NEO^tNlv|@(Ya}Ndy$NbxchtdzdED)fw1$_6 zt!c|P7;9CBhJfYR>kkYCjz{DGj<9{98wf(7+5wtty8V8qH)wPQ^;WOm?bq9bT5Hf~ z_q#nP5T|I;`fzK}Y-zAhR!!7CToeem2FiBYfytQ%&O*KS)@->w8aQbir^Uj%!xolB zn}i%+)@N@>e>+Gj8`GyN1kmyU9D$S z{Njy83%iNs_Q!UsH)(Vx)wcXgO{!hH*>h_>Y^4VicR0c0(DOa~kkyPAz{%51Esseu z=6snPIe+Oa2xyvlB+>$c`Dij5N#wTUnHQ0az~6Vfsb|W6AYdf(oZv6~w-Xoa%Lpv) zCFGdiRsM@6(sGkdaoQ$CI7Y!IN6H%R(DR z%()pVg(r|=sQ*z8LTO9xP4BbXk#B6 zZMyPN--{ND{udY8OF)59_-|i8kh_f4cqU!z}^LkGG%RE>#Fz zeNqIZ3rOgDyfSVn`2XFns32B$0bjI%uPmuTFv5Stc>|6Ano=(f0b}5z3(Z_bLG3Iq z3zH`N$p}dLP&XLIfFLWaZeBGF#i1c4#cOzI$?|Aw==wwU)7{>n(5ZD5UaK=~ zbVhAif-%15e4hZy#1J5%VQtz*d;+@}-@F-lhf5_wLe+Gu6d?2ORz$kr+zSf^M1&vL z?}!W2AI}&~8(% z<)MEK4hE-PztqGvI#ZkPR|WO_L@kI{fxjr^$3*zg2!WAnI4`6_4fsZs3uPXwa1D1| zyBviAuQ_TbIyiE#ENrJBc;iQ^8Y2z|)_|eP$UxOI>fkQwAPn~ef*}+Nq5*B2Y(gCx zIM&Br=>xAcAWLYNXP~B7j|McA1tB?ehRPMf$LbKpsR$r1<%%wRPb@Z(16%r5dE+LSRmnLb=9-lAq3mQDYSg z!&eV2W~?nuC^RCaG8Q-}L*B5NC>{er?_Jst~kS!M`n z$)mJe9d3WT*0~0nfj^@TnpYuSY%r9!`pP!Bh5}x^=&6t&iX(N$q%HC&A;{;dVty|# zr+IrEO|5ZQILt7BsPEalpO6Co<)#jyXTyJ+>#g7q6|;+N3$~#B#rD!F${f(EQ$D|Gprt*)X5!SF1z29I>X!R*-NoZHibc zShd)r%Dxmj>5tvcaMJ4A?Sa*3PkOlh*`5A)Fr*LfkT3-*U5^3|w7_<^j~ffE zIONQr*N5R`9otyLOorJ1Y4Dfj4hv|xElXY(3LG_C0)PEVt6ypM>g^t`&O(7httnPd zK@gC98OPHoDys<1d=ccxuJK)BG6J;=1i$stTP?l26?J>2R&TYK$_4jJ!W42ZP#Ac! zq%X*MpLb=k6R=qyJ=x!%|l3bfp*Fs3o}B{Uc+SH|<1hH2WjEt^bd z(@azaOwkI0*18G7yPR;|^9T~4CIVvnVnFc6Ncv?o^AhaK$d#o15vi0(CKA_p<$fCe zOQwY^1#YzZfRcrL0dm4Br5KjM%E0-VSny_)vPY%t@qsqa2(d2@0)mF>VyFWORKbt1 zZ)j?Wl&BJ*k{@NwSycO2Fe&mL^cPBI_|z!$ZEl7WFi)j5=G5HM&6p|-74KAY zGbI+~4TF^@^F8+MNaCBZaj(u_yHx|8VJXw_gi0x`WJ^HYP@!upGY9tN< z#*%5F!1zA!7ng?%BPLU(c-W)^J{5EDNh`=2f%5>!L;s_OSHbQ?p_zn8joX?=DT;BB z+!3DD;blhuGYDv$6kl%)pHGg%%HN}7>aq`1|0@!EmJb`;&S?KP75^B9{37&%qZVW< zK|eR_pf|nR{<@pdbU-1z0xY=Ag!+%YuxP{B!2omG)#KY};hBnvKXA-GGbo9(43`v?{7c9y_F?WwJWyBk09Xc@!qIb z(|b5cOMU75LGw3Fogsk+{ST9Og1-T1B`m10r6qT>nY&obiT^@-wyvurh0Ju*8k&si zc2brUl8Y@zRyP(ww$7v8aL^y>dO8@jyMvB)G@{dP*L1oZ);hy#yVvZKcHJahhFt04 zn2t%NKQHM#1R`*p!Gu8mo5}xVfg=)4N+M=d^Se6)PDDW_#D(AJH^;jNI?jFMBU%dr zhCHqMpOD{gUmpMapYQ+q)0_YLC6ohy{Y*qy=um5JOp}sZLF)I^pe*0rQF`+BA$Uh7 zBG4%mxL(Z{vVzhrb2f6^f$g`)vufYF>rHR^{&mkQ59dwGZ;t1+aZnuu zH-q467+myc$L)E(9^@K9x)CI+!g*e-LN1_50gP^l&?F1SWZZayiBEc=oQ&)B@v@(+ z%#sy3GLLbA;@!q{W*ZNhU`KC8m>7rZS)>g7MauJys%IPR5GYin``Wf<_lX5H8PTYN zgq}kXbaqK7E;I1iDFU8yp$l$qh)^fK5hGum+uNitD(9WTNl+jKD2|XQC(q=}h8i`p zjNyw8y=iZSk!2+?Av5B<6N*L7wd6&J@U^9H#(n{%fr;V#Dcuk_)3CBCh3Io(>Y-Mv zm_$P@Od(orY;hC{&Dh9?dejRzLyT3e2Tk_j=7>OeG!}e>Be}^ndZm#MHFNQlaPV_I z{-_uSy_v}Gs}Tw!wl(mg$?XI3UZEqJSThj0fkL@y_)m^6wB$t|we@+m-+3PIFq`tW0z8hc(WoZ>VPTA8vh>1|h$PyQ!Rc zBv%*{E1FmaIF+J*d9pH1ZAungdSHwl!IZvs!k`(($R4UW-(WAmT*(D6~s*xs|l zpWUrw%x?t*>E|R2M?5z`*wZl1Ogp?2FP@?oPBo!$=Hh-jbC!X#rW9|wo_kD|`2Wjy zfh_gpQ`+9h^4bHp*0F^APU_Z4%{r=%kL%WD+qrD29N2fdBX?*|W#g`O9tA>`>i3b( z=JzwXw90<_8G1h?Gda@%B56QSebl0f>|T;wz!$O157F#*JE?DX(tqFL_}y;i*D>^P z0+tXK^|xRBmqLakh70eZ?P>LH616X$z_vMtbjQG)83*PhH#sH~`)Rdk-cJC6f_kY0 zWxp~qvCy9{7gMjkXegrce|s|7FYIU!Ul1^vH`3j=ds(5tzwgS({U?x@r4d{N7eIq?{~0aN z8aSF4?88JF*)RWHBtwKZPF=`9lmh=#a|E9d&=BN*?BxIVcE-Tpe{8T%Cmg}P?eKb| zHO6l2c*XtZ&ExHdcMtF1-hckU`10}L7nDDNzc;@@fkG|Bf`9pZFB5@3N`v1me|o?E z@F|#>j6E8t?q#vccAFU+T zRB`q2BLFn_w8sge;5}{Vf)8)x^I22s`vK*TSn$U?`2hd<1r`+e6YLWZ{O4ymzWMEE zR6zN_^~$iPh~@>Z<+J@jsWrxg9}Hwa$S1tGTTO)mv67z42HV%3>t17EmwWb2Zz>3Q z-t$gnmF&4!J-j8mL1P>=ta*LBtPF$#gVSzs)C%&oAYJ!U)p@);1@$%w zf-+%#<0YyBc3z?e^O+F?`}|bR&(!>E9pAxJ6&vdP8t0=J4Tjl-RGd@-%@q8d=U~BV zuydi+$2VjUDytDG79xBZwjLpgP@iOKLdL(dprYY6Ce<7_qM)<$l|X1n(NLhl#GUIW zC=9hjxKIPiyVM@P=!(eyFf<|i$(;r`G4j;%EhMqP0O#a_k-oy7NBZ`O>3bhD2 zRQObAv>-)uQovEMk5B1jLe1}~9XYp>msaN5%3e>375kuSAJpuVntj@Eui933EX;xJ zu%`Xt355ix+d1`z!usB1x!lvrNQj3e4$C?W4TuQ@bgJ~#ql!JM`j!w5p4hJGeley4 zhda;)9mY`^|2*MBB)v(e*VjHAV-on$z@qC5SWW5v(bHmyf5R~ z=TQ;?zuiuKyPN(`Iqsx>h-9~-sYpDu5tf%QHL9qIn_^W{ubN7yH5o3YrpG2)iuW89 ztJ-xI7R+V~IV}^$BqfU}w2XWPVGlWwrW%JzhX*C@J=EF}Bm1HJ$<45)gs?LCd^zMs zrA$;hQ+Q!Qvqrc}X|R?$7=2TiAZoUvP#-aC4FPLM6Z0cvv}{A)efXpCa1HdP=+L3U zUmQ2)gdAh>WGo5r#TD9U!WKi?+u=2Q8~$6gaWB$QCDi@Jx~vO$k!)_Pm-Py{}5Bd3B@9c zfCq5l3EClA;8QGEBfku_78eRE;m#ba1Apcw`F|T^l!=_=d%Ws?Lraf0w~xjP@a^pv>Q&ze zj!>`g)5AX*sDQtHp{(_nk4S*Od|XrL`r%gi<`a2uv;h9_W+ezHyW}@$RH4t`YQ=F4 z^Qi>5#-v#xZ>sPoi>9moe0Y8a0g2ecec_yI)pr3U(0Kc4=tBGF8vm*ZIe)mD$|5+x zrxg3sZoiKkmK+DN8ulCQeycZ<6|mAAR9k~`V^C=iZt9&%vwzdzOszerH3w~67%a8a zLJqWTk4-!X=;8Z7S(?0uK=#fim&Me|QN`vvTAs|7ceQYd)zW${_(*u@QzP$bQ^W)Fdi`@PE`4KA_YD(^YdWYlm=l8eo zA1N7r_W%nb1U{}+dswcP0fBRYRCm_5?CxY%8+hfx^t|m|_WiTYv^<=Z2Yzkn*N0wb zBK+rf=>9x!P5jm*5Hzfh2nt_rK(N@HXKPAz)p@qzC#zF*#Uv4iM~(mfuI*{|A+Cf# z+ol+qyR`0DTbLND!i_*^DoZY@EO`G|iV?9FbqTTrP?H-ugm0CNWpB z#uLy{<0|sua4luSiZzw&8a-+$Sg9z2aOsvif&VNDc-4qct&*`~76jCWzxXQmhZwjR z@*`iR-DwH=akG!GhqgE98hbx-{)Rp3g=ynK5P2}^^#;AcsND;TKWc=488>=t$VRs_ zpy7wS-k6t^wQZtJI$WwLv^toK!09rex(*d^K~0{fZhNYX68L_kK4w9B_j-nvDT$J+ z$6KIKKv4J(QP6lkz<(qT-rXu9FXXeD!hFbq&H@`hWWQUrgFyUS$SY1)a}s^#8U?l- zXEhgIvaIytCKPMgkob8_8w>X`U=gNZk=rkd)9$#XJ|)k`u{ zNTv$W{cJRqi|^+WDOfO`&Kf#|0tpT0hzKY1+p)~9d|}6O-|wXb`@Y-Fe5(?mK;ce2 z6Hn(&^Ix?f*@Q(EMX;d*O%zMgR7m8qsW5Xc3l1U*sxHXTt{6rdJkWGK(?a7&!m=Py|h!7YUH!k7Oo_r8Xz`4ED(da^&H9vG#M*WWiK|h_JrBY%ZmVh*T-# z4ujOG{D&5(efDt12_-^I0`B28VdkF^|LFN< z;7>ao<2@t)gr@jc8}cIf(ZEf9k@gGQ%743b^2p0%D^Yl!$p07@5G?!%4&vLaml=&v z?k#*DD|{a>{t%f}BrgE(Nry%N?7`}vao zJHudWiYb5wgK=ODXqTq00BC-O|I|U0(hXU_hWJmhjE+WD9}`q|x}^Pe1}!$tgJx$W z2w0WT8r(Doj_o4qFSmyztDNv^gg&J+YRF9?aM6Rg@j zAPur>CK_%0vA9;=;u2>;;ac~OUL(u5j|h05C<d zo{WpGbJKT){~9A1UdNjCY;S1$17|*Vf{_>Wy?JlqcP$w~Z5Ukj{HxylRo6f1&5zna zt}!b#=fZjE8Y9yP^39;oT4rU^2n7BPnlk~%>*4%HD037vMuFhw)i8L~4i4IL6$LS! ziPZwF7YPH(#E7q_0)>VP1^E82a^u~rsqrSngE|Zx8>2y)%vIQ zf|riLN-SwKK~MoMOcR9vz(EHank#Y{2`K+=aA+dS=GjOSq)!PYCLYixcYUQA8e}xg zr#MJN*c6UnVNFvLcN-BA^5ZTt4sGpX!qE(28gu1K=I)L`L&d(Qq48oZbH=kqB}1K{ zN^ZuM0mln2)`=FH5dY<*OyrEx)!2xLN{xtuMk(CV1VKnnZ@y3{guTu*vP>!QCd=?t zu@%RhFwOBtl?LUR6->3>MPG>5f>X_LvN=Ok+K}Au0}TEBrjZh#uK5}w|J~5|uL9z8 z!<44EpZo}~t=OfVy0Ws@<0Eb3c2=Lpw%HAkU+Pr^d0#u6v>FqRgWWALgwmtPG_Ov(h1OYEw6Zz*mtWAn#p}F`HJ$Vgl3! zPJw`wYpAJmsgMEtj3P*94koZ*F;}93BzKU{9%&Kr5l!0&92;Xl)I>F%0ZQ{4{l+0V zl}wMQe4lJ6Z*@ha$+m5n(va6n5ablKes@ zGQ~u;xSu;n<_}^JWN|kQHOiHdR9?>PXNx4T%E*=Eg<@&)3k4P_`;F(mix?KRR#Qy-J<3N78Miov9g=2`QJFf+?_9+ zx%?q6SL@|l^@aZUcKwASR)Ui1V|S|q74TQWl(@$H{OLg`@F#kQ+`%%M`8Y3WO z`2JQva3LUQT$f4vTg}zm+4#AzVJ7)cD?b)${%ndoe4##*cn1{DG^%2}L)lfse*{*@ z)+3$(bU=&0La)rQ;I~T%nD{UIU=nE1|LWlmcvxxnuImDS{mWYCqT0KxbfM`qPZ+V$Ar?H;XIHmW+0f7Mh1KjtUEtZ}3zULg8lPqlP1+CD$-z`xn-dzI-{~qz zIO%~z$gy4`obmdR}GVRfn_s$Zw8)fxm&}4V>A?^{wfA;s&-q zx7@kwFKvH0cIP8!IdoR7Nzfbzm40wNpkCypdbJJNB|N49>d2VJpZsrs=AetoVuAjIv^l9mlJIDL08#gILuC z1UEJ`As60IdSZq`q5EV^7%5K$1VJ|#(T$X8cDMHx0{$)#YPs?DHDO{cF7cjxs%64c z-AvIA$v6ZVzXHclJKPK1r$fqw#*`EdlMyVYQJ#5btvgX(G|;wtIVG#_QW5a!sN>~1 zthOu2Xc!SR)X7E2g#v;A+=ab!p=c;LD3eQjPoDO|ja)jB>*>y!y(ctzHW3cqF-?}w z5Dw*S2nG@4)%-&9W|)ViBt}OJq0qb&r9-Gx;mkySe;VDKHvyP3RsBme{Xh@pSwz(34 z@D(Q5Tq8e}9O1w5?zxq?6!;_Hds=s{I&QV^wufGC;&nz2?cK&+d*sQP?r_=~Vzh3% z)P9lXyY%kYLNIgHv8JXTUxS;nkHxZ1O{wTV?oVZZNKKmV1Mxahn*t58s`oPPRN5yO z`x9;R=;%785}-94YYj&jyBO%&)d%}@$T}u#T1ybHH|Wxtcc9(ghW$Qyfm%Dlyn~4# zHEry5n_Ufe^vW$+?z*ga#5%gNxCsgS%)hYCxzo&_H4T5KXnwNh&ulF> z(a!IXG^>B0y*>FniEL2bF}9uF*lqNkn~r^6pB$11XdQE$oYW^5E$ganSG#VdXVv>o zW8m#2Y4R3H=6B-RU706xoJnNmW^^AG6f_jni)(6NlB7T_6VV32xVmV8h%%yy9h+z} z`7{KaMv_z7lam5}CN`VR5f|qA3~2b&W5e{!Ezw0o zSTI}CVqWdW3mqO5GwLR7d}IU)5dsgig4kf#u>`|B(1?7IXksUl*p0>&@8rpq{9>HcfUhcl(IodO z0`4ltsTOEL!>E09(vxFMFfk>M+9T|n(u+B>3sWjJD*qWRFs_M%3C$o(YBX8H@%kUE z4Fs0d@I|}ug+ACiuy-*XKEfUgu4_6i+|oLCTec1Y=1MFuE*2W*qPhGe7d@w zua@@@x9{HGzs2*9xbRQZ2;Y9e9Z+qejSxuU;O$TE!}5iXZ`TmE zS#6)OOVDyTy!`+^@}{-dH$fLkt^XkY;b-AI_u7e{?m1|8RckV~|f) zHGAU0xXGs3h=2W>?1meiYO^Qfrrs6!yKeNZ8-w#&`?A_UEqBi<9T}I^-bJN*QSVin zU4cbS2gGk*!@gKj!K0omi~PT-YJt9%q?q?0%P%y1+y|?EvKIVaYqDWMQ&SQS>Wj5NSotryQ3|#72x)vq=i}j(>62;* z6sk9&)*aLDE@G|>-3_^^3>=6-5fWwI)6x(_gnBfw<1nC1 zC|N~8q(mh`qZ)EFL(Q%g#awyC?Q@rm!%Nh@UB$s|V$C}Au9xQ%fK>y;AnZ9;Mz5yv zOE+=t?w8$cWtu5Fxr&>*aWWNm|JvD?pZd~{UN{l;TzrWR2mBc=&=i+IhrBC?qLxj% z;mb3dH@wjiceD(7dlM{vj$UYoH}&}P!i56ALc=YsL7}eMu%pr;Lf~t`Q?-E6K=bw! zL2`{nrXwV$0wi>(VkAiFs3#7j_)>*Kqb731I@^ev%%9G0nep1%mLK`d+LPn!QS`!! zpIhl`J6Cp3>ds{w*{?t5Ps1j!cjk~d;al!(Fk(|Qu)U$>O`MtSm_>>HLvxB4{AFOg z=sB}quxn)z@MuBAzLYS4I^mI>i~|ZT^XfS-E0!7*p!m_pZ471^k9xB3v@6EMwzQJN z^z#^WI^DJj<_ZP2dqRGKYt44IOJqY3u&*^A1Nd)9m0NExA>z>+%39a#$o5qhI@#iO zWH(!G^llo1t6IO(8eG@d-^!V0mtr`>i#?jo2?%0_HNsXHK5_1uUUZTsqC?5f#XakL@lPR0d1NuTk@|tInfaCX~RBi+UHF)-J7;m?b)!eW3LgD*oa8qRDAw$uTlSRSEK{!l%~=5z5ocF_lj5XVPKBRf%ywuNPn^ zoXZq)nPL(6(~=Rmut-lfk_FXuPUcyS|K^S~I*eb*0WnI&6g*{kIG!)^+@>0r6gpw7 zoe0FHBQCfW0lX5*SV@zI2W&xasn|XsNK95mJHbb}QXo$*kSE!e=ZWzoyG%maZ%6Ol zizW>AL3NvK)vURr4{nv5jUa#J3zPnFyW-yu(8h|nM)pvn7GY}I}tgtk-Z zWLgFvC1G__`CX)+3Kbg%`C~PCHYtD`6)@yKPHsG3ULEJP)WdZ6ATF%M!g(UU2ei(^ zyIYM0jsLS+08#}~IH0IUqrifI;9WFLsP{$OWbc)T0`C{%nPMU%z;}=>90=7>7G4la z)jlM~x=@ekmZgKdUSrBkvPE+*uXsT2A&f7-objw6VE#oShq+9w@GM@^l9A$fv4Twg z5fc{FqTop3uTdGof(12~Dg2qbW6n@_tYyeDH>Jn>RWDWbzNt>;RcFz5R~>6^1xt6n zn%}Nhw@dt@AD18B-+y?wMC~IwdHacGakr{n5eWW5QXpqOya55<-Y?!iuwQ(*m)-OH z{&um_o^P^&)>04c_90_ApVR$}9GUiQ{l%vU>X|&0Pku^~kL^j0DUPa)q*_S=>WutdqRrsrQPAjcf<@RZ% zeNpRPH)OBet2g_tKJE&#R1@e`a|iAJB%4!D-xc|P!lqbiO+8W+Ju2x;^WIPh)Q)p& zI^B^0Bg^GG3}PrP{PZTwp;Q*U|M?RXNaXh;*!Ph(A&);P@X7U`-reIbBk=cT`SBgD zjqmOkACv-3dpgpUu#cu`!7`w4I&Z?IIId$&+v90{=vD@9W9T)<)7HpqkDR_mAlM>V zDX?6&+tYwtOOSlN^cM0X3DPZWFR;DE#9Q>;Mb}w2t!2xG2pi*NVF8*a8vjYxuOVv3FEV?4AWboA(H zn3$uPga$Omq*{$>3@j2pM!@4tT+IlT-VClG@)75~3CGTbZP3sRMK_4hJk`#X9mO^SIVy?hvpel?qUsBIYk&4j>^~}ySY=_+p zYM;SDCp;r8csb>DWn8)OOGh{_U-bm0Y5LrD&s*ME$7QtraK`4^O-ObHfaOo&VE`STkM4lE=9u8 zY{~q^nf2VLeTs>Y-?_!}Us!vmmSA7<%GtlNGuL*$OwQk7)jIDu<(}IbIAcftN@tEE zzxJ9~63o5XT>iWr&lmU`tGT)w%fTOtAe08rv?N0Qy4B@`WsO_Do{L?m0J_{*k28x^N0)Y5 z*~H#-tn-$A-Uj~Qzt-fcV+-G3bsd>pwCvM{^*ow=9?Qw`he+m!NcMR&_aiu%{~;vW}q=|4zGYhe!Nv5dMjcAlsaO&l5e0xs@bET^kA=+qiTjv5{5onB? z2L84q2?4%s9xL;>Jp5%OAs1}PWH+(RmGK?!0uY7jH1cbhFSSQW2fgxeOjN@Q*{^3D-na2oy%-%@Bh|kJNCsiEAgwO3aWKs4m>X+}h5>bOFiZn@ydsrur%B z8U63%DEA}*p3q@Wa8T|N{(GwV2xGw~$5>1&{0S764iB}bh(?4B2$qz|gx@I1E*ww} zk}X6tgn9+hcGCiXa5@TJ#(>S(D2~s z;7I;EKHzna_~jFVOlIi_x05O%1SX2lqWSORGAJ&27B2`0LV+3`roK2*_#5>l#f|$6 za~%cRjYKIx{%a(ku6wDP`_0*SaW)RFMvJPms@wCvJD&&$E^htRYIQ3xhif$0@woi( zcKP`Oy>8#jS66KpfQx#><1j=XgI>)-+mIH{YN&pVkKE0CY8y|Soz7gs6ZdcPgHIIGw5PW!C zzJI&;3IAWO2r$KSN0|}i?e$ue@>-qmwWOpC=+sJnj^P8_PP^q=*)x#Ctfg;FGbmH`*UaN zyTN=)-(~1^D*ryqg&b{vVNd0_9D2*qbTRUlU3=cL=3P6Ocx%V!gIM1#w2j{K{%)~c zEf%YV>n}!5FtFx*Cumzic@Ug+=7*hmrs1b5{(cqL7y-ek)*2gKP)mlxLDr!9&irwN zVqqo3!QE>&TA7-YLTM^12F9Km?`Uw%jY5I5XnDFz)v*0L7YZp}Yw3y63&{xNjM5=F zf1#9kg9CPmgD|2ipvmOI+P=chdiO?K*lDc^EXeDI5od#jdt9smXr(~CQiH|3fvF6F z!pL<(X0Gy?6}y>6RMktD{Y=d}XnL<(Zbd7*JGS3*=3Oi3$v?zoDx7`Y_0QUFsYWe! z`r1ugxrys({Mt=kPm^UgU3N3&Y3kbDm%AYx zsM&;DT9~4Pn6H^D3wke4!?^SAmA=VyCw}Ebg(ihK1!v(rJ91%1uiV%UfK~EdgY$bDlf-T2$K1w8N+5r}bB#O-1kN3gq_c_bS?)}0B0O8e zxbkO9k4csJ`IFKl6q}SjBs_z6@_(j38#a5UIq!HB&XxGaMgi2$Lle}$i75q91(41~ zWRQ@HXVLo&gFmD=p*$Hvd!+XX2&&IZe?X*os8S+@z?uTs?GH5d1%LZiXIO9dYmJ@| z-gUi$1X%A~v*?+fZNJ=91ndr*y>YWUYV~BpY?1fe9d!p*kD8JZ*@60V;e|y)p6Sm! zTeFPg2t$e_CjY_hZLnrp&kFnvt8U?USRB(k0$f-ZK~>A;s5-f^uHbY zMGOQW#o?4p0f1_NR9u)CWXN>ppj9Bkc^lhgm=D2E6+iw%z%p0vt7NEw<2*59Q_QO- zG8qssuc9E0+B8#;aBv3OXAK7*VIQ+GF@{v=BaA>;f>TLP%%l^^L_CiEx3wD+dIQ}e z0GvP-AQ;=u6XN3RM(^b77R*^?bc19eBN5ES9wQCB(1@7ODk4 zRe^-A1fbj|Ufs_UdL3W2j3zKNg{Ui44 zQME$+I#?_<zaeLXwo8CLidhTwWCZ&}qrcDIzaVRNvWQ%?AJM*`pb2UI=z&_2G! zQW4a9yZ(szi)lBE`HM_A|G0klFn^Q}^B$|62hwh6seB~Yp*mEXrY3&$MxLBtaTLkWhrncRh*Jef)$nwXWr(k#VB(GnX_|MaN}&NOUo|}$#hO#73M>+Cj;K-yl?sh%uAxCd6Hrz~ z(-A(7olW+yCi$|LtvI==ov-RlldSwjpf~}4D=N|!nwNs%lveK|G_lAa0aAZJnHTk6@~2M`hpXE=ZFDO~ z({0F@j}FFyeONm8knV^-2)fanjl@1WaE!)7V^u|8Ttz^ey5Ok0ZQe}34?wbq!?W-nWglJYe}|z2IKTzE&%PJ?Xo4P{ezi%)OO1?|j@j{+W!~tc z0yc*-skDaG_DJ}z-Wj&2dxHfH0z!d(;=-C2$ht?C3!jgtCV#|p?$#8(tmh21clD{~ zU7ObJTGg>y;QyfZE+m5EjYStIsz8>guI!d|h3AKtPr<{+4>47{k`Dba0YE_0( ziO&duCdj)9^`Zw30ztdyC`|d7drr)VK~MfLuoK$-fs8=>hJECoo^(P^nmyU#!&0wLDWT3O6QDf5W_a!P5YFeeN7(I!Ngoz8SZ zfbg8ga#8#8hk8AwDkleYE76Zz#`zXAQ5;DQK_glHD>zSRY~hESejip3O2+blq4HZ*3q#g z*yoIx;NH?1j&&6t_ebM4F3_^HkwaZ?llx2vxFHnSyCDSJJ2etut#?}OoL0KWSIwiV zrXZkFVC%HpzN~i2^>(e*?h;&{Xnqe-33+>zw9u-U_pcU)v}IH0=ouM6RD;lJlZNTc zH6NV*OX}J@b(V8q{jvRrTasxY>4)GWxE#E>oslp2uz34OJ2+^Mc5@`(JZLK_`3&#y zp@&+x4Dx-5OtZ?6anI+O*DF)@e(&%c_p_ zyzBn7F`74qetSZtNY{eW2Gj^I9r-zfrF>OtpY{duu;psHSUJ;R;w=RhM^mos+WurJ zOEt8&rkOHgr10o!MfVhP6E)4p4FcB-2q=5=`pCcR2B)3is6Ed&{dCRSullKa5G&JD zBvDfetWn{i6Izu}GP1EJl$*aRg{DtQbr!whv3nXde$oP&XzbXWj8)L~Hkjx}DwxZl zBSM6NjNa~zyGy5I^t@;}4E34;AS(YU7kW?CCuoNNqQ_Aa4bAx-jUz|Y+L%Z03G6r=f5a!zoWhefnSxSGMkef%+-rs1wL)&TEtGM0^@=_jc> zPoXhOGwOuZCPW?-1UnkT9irzAj3_w5U_b~@=E8qtlQgW(rnKc?LN&%%RvUXVatIb{ zRCqWXqxm8J0e@ttOf(CSesKtd#uoPMVKmU@iWrC zc4KM5zDP3cq_+zWa`A@w(mTGXjkq zo2N88Cm$3D2v-RxD;yg??L%--xb2v@IShS*j91V;%Yb0$3vH|ckNIqg6vKS^*Bf1s z9&xXalqL^OUmcyk5|ji1rY-^Kzrh5yJz&6i5@Ymv%_4M=uU`ADX?xBoBJFtLpGrb`#1*-|`Pie|#z z!Fv=MGXxy>(xphM6rN8NqM1@{>^Dc#Zw>~lLVsQwtq#YlgW>XMv^*L5=i}v-wJh7q znoZWfd=E`L3b*8|{+9N>t9wML`G+@mLNo6lmLK2AKp=eocKQBI@aAFlcrO&VQiCXv zWxWbk^fZHD1T73v$y&@GI)DEZTTuVY9@JxXcKQ3K?8ErKOdPBWY>ZV&{*zs^EX1P; z-G2M5U$O)@ad;lrv=x%3#b{WhIlQR0FYCRldY>%7GAV#3H|=BiuVWDK)l$5`a9w{mNvB{T0#8^-x`3Ru8L;4!ZikeeOjK|E>eN!_o!F(gmqqHNG7y|1L}(X zw6V*%{XV=0s@cvOb!2DH=%8B4jO0Q6+&|8JC)v zk=^K7)z0LiZJjo(lg8wjO1klJ!+F(`Z%X^DJw5BV7d`)i#&LcHKbLuJ=(i?QA;N(- zx4gjhm)>mQE^dVg?deSR0Am*u8G%1F6vR_-VEdrSj5j5}7mFqNgz{Y*Xo%lHGjgCG zI9@Pzg26awQ)?{5Fh6ZmWt^?MnYy297zaU`j+nk9+NzGZ47qDxN32ZNpelkP2om-+ zLF5~Uz_D^6DS*a$rutRCW6jCa2`s4jh029Dpvt4tIKup|doHt%vNAlXs*4%@p zTOA6k`2&lO*PY6z3Fpb);PK7+-JAP&Z|`Khf4hGF_VMlG-8}{2{C3)IF!mNbd)jrT zLpQMWf!-`2j2H^xPI1sJ@KO#A^COd64Bg!$}`_8a28DjXVtNtv;P6+iEX57<9UW zeh&lZjT|^8lnhK-Qy=*A*fiQx>TroO%L}USfho`>Y&@X<2YXS*hX3$(1`)@okC@0% zKHTEfdv(fzp};Ep-fpEKt6vvWnD(fmvEW)q5Kyqss>`G+>*QD_t-cT;-IAK!v2J}a zi$Sy0iWXNBoi#a3A6ig8#R9luUPEH9g^Ei59i=ol|!j-ih#MJVA=y4v}9I!;QUANl%#X z`A+=#cI^3XQkYLB=4TYpAb-mKptyGguwJ(%v1*_!niPUAQdghftuPF=QD()HTtfBV7lG8qDRGSGkmAK@IPQz2l5Qbm$a_YFK=&v}a6Yp2msV3eqXgh=rS$aauu) z94OC#n0E*ZqVoZHaxc+d@(4{cVgx_EOs@n7je=OBK19nt3I#(P| z1KXW_Q|SA}!J;%+6#H{Qz(eA~GGM`@;r!KbemNEpT(+HH;xDb)+*>Sz<^1k`d3Qgj zfhKJ*h+t|5i~0Kp8pP2y7vqxE-CZD;-O@IL(vYZL2Cq*fud}V`DO2#aRMpM+*c=}zXaVo-0vaxn8`IhPl3J>k(U|epGFPhe?#_*^* z6!7FG<7rv88J(ci3JT46ra4bkW?*04kDH<7Cltt$I%1;6DVfv*N=eFoyyi#B zQyC^kOzgN8sL}aXGGPTAjFt)eK9wFDZBN6;^9>z_1t`C3hn2aCg+grDP@CsBLvb?% zK{FBNW3C8jp3uCCK}ICTD>njbdNC?py#2ELAa1tmP4E&xI zIIiGYu)bTbZ&z>M+`WHy|KZ*J=Z}w{DIUN3>Epwf4-fQp#3%Ch;eLHfLC`|}9o*T{ zQ^{~Pm%qE!+xzv~H|q!4jNQxM=KA4oAsY;#$-CRdBRc&`Mg8^N{W@SbhV$^4bg8Qlv>7>G*HQ=aiQkp&gcA&H zU+x{di=pj}>=}i(a-}o1e1GD|_4D=^)5@!kd)e{MPzs%!ws+HY>O-&A6GrrEeeb$! zpSJ|^giWnd-IGr*TR|^OR~&hhxw3UwcV9Q{>R{R$+CytLc04LO6ex77ImOR!1@6+6 za!!_;5VGs}1cJ5hU`!o^=AEdYpJ^1XxqPUA^0%ylpVb>qI(@dCbd_umn!QP*JF2&a zwKjeNH3G6-fx>o2fUMi@s=vSpArN_uY{IeHjE<+opC?myB7eaGNwm;aR3dg@^Iqh7 z;W6z6hf}@4WOpF{;Rr+OUT-M#J`F_%&2~q<0DH1`En|1z(*^L!6mVE+4XSOTz}3#E z+Uz%Ff7l+?JL9TplGzd#oUrKi<=G}3bqzFS!s@%=&`1Otb`a#q6|@wQ`2h&iI(%%T z?Xhjg5(_UJ`v1CNi5%;p+ZzflPuc^g)puJ1tEugh<(FY-k?I#Vs$+$nkv~G74f|VJ zdFAxPp<1Fp_Mf-2!hHXGEBn8;LInJO zx3V(+w4M9gZtmM?{`*joPnD^4y~<){|NgM`~5dpnv_8LaHPXC+C}YO zu8GDI@kBBfPsErY2LADR%rFLlg+iuO$o}!(1Bwd3!Qw`t{NqT{u><{YH>z2H|1Nv) zM^*TQ|9;p>m^0tMjQ;R4{_JJ+*;b4Z5~19T2q`|>5(JFP1wZ_|K=8IkbqVh()osW2 z|J^nFJ8>{^2We3FFZ0K1$p71<2AVV6+|11|CWROTLV(Dfe|(;UgTmpV`X;JMighAc zk{DWpjMo4mtsE0QU(evW{SoA zY;GU3z_8pz&KsnoQB28f4i4mcnadBEFNVd)GUVauTtPksb3MOFrJ^n0)APkQhohCi zUuifK@+%JKW(W(GbR5dJ^=NrET2=@RuZAA>Z{89?Pbl#IcBwgP6uk=k849GmCX?kO z8G#fl+))%lEr`Z~HGU;LD0rhSK<3!msUJM+vMeHWR&v;yI}=$%h!@CS+{I7db;lD2 zAy7AwgNdz~(c?}J{=*2SMV}8@(aLqAA=lKz^)7W>)EH;g?(1^v)m7_tx%29}^;+e? z(;Jz$<*v(Wx7w1?Z}$YKgf{gnK{En1DouErK1$xy+BAKlD;<$&YcSTt>LDd5@?fmI z26(-y11oVKHvJ^M%)(a4v`e0^wC-XVOo>$~AJ1?}z!RHR#6ErV)DVX(a*dC>D5HX# zG(_T~7!0k>fZp@l>5`G{`7U*KkUr2&1tGOO*ZCn>;pAH zuxbLq{(c?)OH{o~0}9k&F#;Qms9|CgKE{1|lQI})6RP`+CKnR(H8(@~P|3_7TD&?n zH#g`u-79lOxp1aj2ncF0n%6Z$PVQXVvC1@Z~(cZ_0_1lNLkMHk3e|Y#s{lkC$^ya_5 zy#M*r!>^wnfBF3Gr}uXs-rj$FclYMuPC$@st=q-wesRBE+~3I_Z1Ii+Q_@U7f4q~e z8pTGmnYn*2So!Au&ExXJoBOwqypTX4Nmza`vfZvVuk^jMwtd|2a)PHfZv2vLJjz@y z_*t?w_o(JvG;KjW`2}!29w@&AWDB^nfjt{}N`9Vi`xKr}+^IbcEOtV&p;@|9y?!y5 zzx0WVQD1xHw?}Sw;&retlHU^^EI$iveD7i70)x=BU}TqnOX## z2lxZmD%wdK_jpVG+=Q9xT{=t(VBx(|mknp9(&#~ft!};5>GXOymG<$iA8U|TsM0~> z6A-k3zYqk`0;eV}OhLb<2C@YumaLY6me(xEb_z2v^R2V^3MC-Wt&dH0{z+YBwM!9H}-zniC<5I z|6*6xpI!?8<^I=J<_Q7+pBLeoKfTEOeJB6zE?u^;?M>!{0{@5+X5_NkZ7sw+iaY*z z4Q)3J0&ea#65!X@DEScxR+pBfFyJ4b#|*6n$sTIi#~<${V~k#Cv_t#jy=KJlXNm7d z6Dq37F@(IYN2vL|jQ_Yn!0)!A-wWz($Nupm`rTIKAI~HIcoC74-@b@^zZH4*GV;Tg zih?hre|)xWBDrSlo5>%q(X>AyMWjJ4i~XBx_P9&yLgL}Qrk45ZYiJOn5}*-Zv)O+G z%4*|RP-@Bv?Hy9hZ9G*7?rTSnyt?gC#({=fEFj1oXcyqaya@*j&uLO18GD*CNFL!) z*mt}set8m@Pp>DMtb!j$75p?8P;CV_f}e(fQTsGgFkj$2{(ppnb&g_L zQol!j05zkg6&`Y6UV9Vg@~DHHFNWdZqVi?YJUQ=>C^NM!IN21`FOk>IKV2{PA02qI zZClO1QO;ZC`@!KD{qKOWWDMp<Tkfa>5C@)BCBCbhnYK~8|uL*W05fJOGDbX2=FpXA$ z*zS-`xjPzLLlRbO?Tk6WAAbx3VF%sUhQHbwsoWI)>k9u}R68O6aqOO=0z!MQWm4%0 z2vQDQ?Y_EcomDz=*-fL{=nS=A@QD2{@m$^z`&4FA!a4HgG;v|R{-`Nm3G&_0x3FgI z464mRt2Yu7ZFV^}C@vYXK16+ z!LUc4AV_F0dC0HQ>X%!?>*nyHF?v<)pVWq>+Mrk-7KHgK<9ubDt&FmjNk;a~RXgAC zvUPIKat*K4o*lJZp}<#dM=0=S=+%bowmTDV=+5OUeBv#K-hAK^n(X|4guMrQ<5se@ z>)&+0Ig>oep`#>>QLXbcjdoK}bhCrMGsM06N~N%4PFlh9n6 zplI_GFfBN$9)0g{y{`l_4PrHA9zK4bQr~6Oux1Zkc9??Q(x4T_F z+%DfeASIX3@FTj*ps9>775{)#UD!!Nr@vo5-mQrXxqfSdYVH-05i$$I7~o}ki;SI71FA{noD#kxgaLZ#0?Sy7QxBTnq4ZGFa^7nnj%Mg6aCIxvWyqJ|gy z*+-g}zI4?>4|KZv$p-uoB*W!qm=+Np4Wt9AgniDCwuV2#9%rbbXXcQGX7}YOUr7)z zrk%2G(`8ULY+19=v(BPRBHXG?%QnoZ<xj zk?!}AloGa;=thmYS}-u8kr}EsU20IcX1b9B+{c0+#;OT@1*9Pa+8JGD9Up50x+sm! zkX9xgk>8@mjY(7;d4;}r0tql8{>%5H|9V~d4NHK}2q^yj_Dzk(?_O2Dep~x42iKT4 zC$(H@4_hU)?-l9%=r@bNDm%ZR)kbBHTnGVkFSR0ehGgU@ccUk$FLt^v%Y@~95UWNi>Na$lz^4F{7LS3uhIbl z5Av_s!-Z=*j$fdp1GOE`*hkFw?USlUwD--cSA5C!#rtExh?4U+AM}r=o=in6Js@+#;GU zwxYg=dkQz%o0-MJ(>mi_{qpiubc8z>f+7YW?~JjJM;(|2dIM;p90zlRaEY=|HO!32 z>L7CdM70Mxi<~tY?EL~oki|cgumAzUYWOiT^9fvK_-pKWmLI|(*nl@RBE_Nr1r9QF zW`T5cDpnt%HA0o-vSq%Bmnx3gABo>C6sgebyxna!+tpWR-n!+joA%-q%(rei8TgO$ z0udK>FDywxSuNKquCCzxx(wEI?7@IQr?3FTLNG$I2(cK^g9phigehQv zJ+yWt5+b|;1-gOh_=@Eakij2Swfb;@h8JL8nX>q2z!6aTd35FJ4GaR!4sqd_hK^$h z6FGqf{WSUdJM}!rLslRb?^p-Zg&ghPEjKVsk1o4N1EOoCg{?vhYxr_u^ktoJkS@x! zIya^;ukpD(6mo!gr90yaxRkALkPV4I^9J=kRs^Y zh?eXV-A1rmnRaCBYGSn}*7%%@>OU*UeT@Mjqi(4Q+oDtU{En~v;+wls_Y9Y^Tv zHb!l9iZ~G74m&EQDYw@{UMDd-5h zC-b7R;@-rIf}E8w7DaiMXBDs@GrH|rF#Z__nFukSF%jv2vDkyKvIK$z#u1r~=O<%A zOoWo32Ayhu6Llx74iXWvo`+(Qr)V+?P{agh8^l5y#B=eSx5!+iM-@kLWgOR~^jxF2 zIYToQXJ+`B8D=)BWL7qP&T*#ub1TfeIE$f*&$nCt3wnS1>ErE}5BLB0{7BBm}&L>BVeC8HWkIL2jUy68v#4#AdNvAt!jbzCkArzR8uu91K|WNCPq<+OB9HbV%Op9 zK$u)1s1Onn@*0u*hH&)=plWI()Jx1qhn4HMQ^v{Ro#sKdHfH)YM_L_l+l3zsv| zkOoZyu2?Mc4bdQkOG5|;ReH^KUv+6`N1|)vv@>S6)G@A#y)lPPCdNS4M>3tz97!U? ztSh>yXqKWIl4>ewUN=PyTBD)ss4|`!7DP&Vc^V4x=(^{QbhoE^S0ndq3rmJv4|?hT5&_vP zror~numIe51VNIYI0pQ&5BpY$|7x}UYd|{U)9XQL1b6H`=B{f;$4?c$2l=<~c{zD~ zSa`ww_hKL0J^t?P&-s7fzS_^fd3{W@_t%%XzaS8t`zsGfgRhUjB?^3<`}Wn*x1vns zE%F6lzNOO^81?p_0IEX{_RkLNL$L@QK!=^Yd_uri^m?9ZkU1R?vfo>d{Qj)`ArbJ` z2zY`lz>{YLgfJ`S_z8(_y|8KqM2Y?Md4l_3-Hm&>rweyY;r4k5@e>F(1q6Z-IsJ~Y zkD2d`<-O+5{>_|~$GmukGGEk*HxaP~hM{pV-QOJJ)Q3QPF z{{sP0i6Tl;PPdzExtf2~a+d^u7e2~C2mw!-1qJ!-2kj>WbXV8zss{wzddVtYtyf#( zzs}{+Yt!vP}2%65V?Ren602&h=>~^7bKad z(A$s&46_DeARp)uA_Xu+zaV&Sp+FBV0GL2$zgxgTHfXRM*Rnl*>M16gBaJn>kQsg1 z>`Wm35!BF;!d zK9DC{-q>(B?FLUe)^K5^D=aOn2dWJLQliVKMayeisZZJ5i!Ss0^@QASp)n@N3l{~6 zxFg{7N6wO_186(*qS*E$+l!cV1Ji}#NZ0zIJRPc5Pd2Y7`sL7|(de6vkzE^3>tnYz z^mw>6L`*yyH3)%WRf@_JfM8vnSCzOfCueGWZOqzQICPSc6~QkifOz9X^B~QFnXvbp zO`Q4AU5wn>$W6x(0_O^xW$0%F+C#Kgq|!&|t<1t7ySpM2JoEy*Bl;oIT7T+e(QgJZ zq0iV!dloV1tcDulv?wo5CUb(kf;=Pm6QisO5L^%u=Ew1goH5TKcaZiY$L^_=~AunJ&)r_jD~ewWek~c#5aE-4T{L}vsg$-%HdruF~$}Ui37lev)p8lfJe-N z$8>X?oQ#vwWLA}uGcCO~XZ>lacnj3f5K<>ul)~O6UM%DJa+a-T=`unZAIj!$w`)Xi zA2x{get!JvhX>mJ{fGOX&`$aR?W8#({N>{X9XGj$QP1#xD1scgrzHn`T4 zmX9W8q5owo6ozLD!pB9N692_kkXWJ#n;oGEwHKpGH$rXzqaIh0 zFViJmNMID7-fmX39z_UyyF}U|vFZJGN7tAYa!fPuTINS7{bs^-+)jp^y3mq?Yn=!+ zy3tUBqPsvqKZe|h5HEb@(iQrW!<`-j(F;^9EauS)^;P>q2dq#cWTe5L5B!HJ5aK^S z2si~fgbX%ykkB^u09Xcm=0}>_m&~qY-i)-)*tj04ouPI;(r?&aU@RMo0SZJ?AYA+$ zHhl5ua>5-synRqO^yA3Kr4GG?;eGFO$kleZDV*u(CJNM^hlxhO*rS=2VoY_ILZdJ6 z1o|Jh2G-E)5-BkT>;Pd0qd6nR>C1Fonsz5$BH?Wb-H&rG3n}utZT`>nFOt| z+n_7YD5wto^3ZRfbT?{@{qu=`t@=Yf9vYE6jn!$SyRl}6nj2gGjDE_78|zM_+H`L; znMTC-ZJqEjXvtx79MtIwHtAJl zzk5~r+fn_+vG9m~Lcm(1LZjNKf)~&Tj@UuOfS*;s|1<~(Pl|hpIT7Ab*Y5!3B_w0Dt{lVtmWkC+6P(_>cwox0lC%q4`S=1hWbV3VeP1-K*p8-vR+?yaZN) z?OwCUC(b~Vmrsfyp`LJ)VJAX5tnl&>9yF*Reo_j#RHg8SD?-?kdVd}?3wa79iyC2J z4Rd&m&y6Th#Dbqy!2dKFT*oa+xvOZ{#|@inbvQ{^Yod=b+x&>&D%00fr3f=0m)e{{ z@Ox7J5VR!_WUyljWVH_7jkFj4VBu3oWeNso+%X6u3lNWD{;MMzi^1VwP8<|zf~P16 z0sS>jpDl=l{3`~Y3JA!$9iJ8wqNpRL*RcmXlrlkOJU{0G<#W`Uh!!LeEE!S}vu^EG zL*hcZ3FnXX;;RdHN#op}6AQL5UlaEIFABs?RsqM+#)>!LYBRsxY-D6M7T0*F8`n!@!IyG?{g zI0#diX;*Qu{FUu1x^Pdd%aL(8(yk}C8g}I=T_0)1JU~EaDqFO`bwOQIq#N2^IQ8j? z0#@K?&?1|b*SNM0G>2Wd@LU}NN?cM+zTncTn%2-*8SAD!^#a>Lnjsv+@Ydjf?{S|_ zWDF4``7z2$7&m=18%V&8K{R!I(+gC~RV}1%3lW0&uRXS|$L3jIKOGp=j$Z2M)xKFB zOlt$X)SuQzE^TXLr#5lxW3NIiD1{X{A_S}u1!~EuHakoj_DR3=u zWBMXbr_n+W7ZZCnaI@YtCJ^jSAp|1jpJTxs;#&yi5_roFIevh&MGtO{c#njz^mhCx z@*-O9LmVPR(7j|ZP1|PL)YGb(7RTsXT~=2`H7m-f6fS}Sc{>5j6(JMSo*8Xv6s5(n zG$R%iHO0@=D4>uZp618sP4`O#dR8{Y2Xz@1NoCr!RMZ|KW~k??<%ozWwq6 z*vIX8)*tVeA0IYs)daNaXYB5liV}6MJx8-?r0OCy zcYy#tw7}F2Gx~ZS8(|l=FUf^U?1e%Q(@ld}79n31l(xMkoTb0wEWkrTwBq&Y=NlPb zqB+EZ1cHf26o@Q6l+~kSES7>PfglWrH%J=3-)4^wXn{?ypB9bxTcnY!nF8TKH(U6e z9cTd&l8Ft+nYNyEjASxRsJfi_!=eH0XbHMY z?YyhfxEQDxeT?(2+~P@#c6QaPflP1hdLUg7)XSdKnW*i7LgSj=>|k=)S7_jkk8sY5 zfkBs}CM`t!cBSu>x^A)Wp7gzwzF+8jrGZx&N6isjUD|5c*TXS>og&FWA0v4hNOpw! zaW7V#NScNNGwKrjDbbk}v;AaT9)_i%U!iNoIL;5kqpp9{^K*lM5b(FJtN-=7`kU8P zV!kK+uliqa>LN7!+t>Bqzp4K5ZRPtM(gBZ(PeEQ`%2xw$iMF$%^BX#J{Qn`KXl466 zKStAA@ZVwXgnO)^MTfAsJNShb_{)KBd2S)`OEa1#dY-`=kpJzEM2YbeZst#j{PF z&BG_PkIC-^0?-&Z_)Q*Mc#wblqyma+;@8j)Pq?gjkHrVM;?J1KUE>bvlRPfuz|&|G zf*!$a$Mehg^6OFIM$EABsn(FEiAX(1@G-BJ82}L*2Dvp^b=z~E5d6;0Pob#6_W4=! zL(mnf99u=w!|*uhh%+|2+kT>yZCI zkX4))FRKQc6mujm3LSB;8nR@_aJUch?v+XG!n4ya6I?At9GPaPI3LHO_sH0Umv|Ei zIT@^>7Z=|0!dad>3#P!;8SQbmv=#h!<}6#@>M~fhy{(jN>~xzfx3kTLukzM4*BK7i>-e1mrDe0Y>2r zmaRdQ5DbO08IUN%9OhaG5YOPV3K=ay_6*FT(e+411spAfr+v-pNJf{|yKD#3k*0t@ z*&*_4PwcKj{AXQHrZflv+mef$677K~*ptypctF>B&6X{f*3;TF*o%V51b4NmKQTO7 zaQ8V4s0YQ-?2gfW_(n33TnM4jyc%LocM*~fWpm6cb$#kt4ysrzgs?rwM+GtOVc&ln zx#t9(!r@QYq8juKwP)4( z7ENjcOd2D%Nh|V+U!MduC8{fNL!C8g$l)b@uPc6A^+#4XnFjQIZ+Vd&&JYVmc7Lk+ zi2C*I#f_DArs<89b*#nENmZ8)00R0#`GbDRM!OL^K5*hDL9I>i1!aba;7=WTU-&t? z;mitVikpn=xMyYOdRo)cinb_8v|Scyi(=tbNuCuD5l%~LcJf4c7!m-npg_0$g|kJRX7lxOwb?9JXrr>bU2?(4`T=XC&He5A{XHr+ z=O6ey5&COOzj^2uDr2Pa1J!v{yEZE8o?njF-K_;IQ z#IzDn>}2B5w{;?!u@TUl%23Y*j?Ffk6?>HT6fHYnPi-QuOfLH!QRwU_9E%^k7XVV;P2!6xi;x*!Az5*4g)F|cI%;x^MyHoJ(kbof zskCk4=7jd2b(Hh2(riyo+mlvLId6~8J94X|v^o=-oVDe8dvbQ8oOPA@wRGB58uY-v zS;LjbEe)M~*FNbw#~r4?9_{f31)fU5g$k3uz8Uw8a9~7zJs23l7@qb4{WPU%G%})| z7F?@ga}t(O{NZ!`2P}b325cwJ+e3kXgYdU+D!+YGr$N~Fqykod^QI1UkkOD3@J|QT zZ;mRjj_ZeoJ#rPfuP=Rzmn$?F0f`=11S~#jPA8@6F%b!x>Jsx+jv!E>kL?lK+U_An z%y|I*#5g(z{BbWe1T<05%H83(;us>Icq|CuDU=BuAWUH+>N02jiTwq5Og|xDVIKkp z0zwG7$IwRzTp6|pilaLjb+U0b44&CBXD))j41Zf17s2+@Uv~Yq60f}3CfRP+ zw|95%XhwnF^K5U5#X?%RYLyI}o9>N3f0eOL-z|HMy zy&?Xi^*s=fR_y7M>)kA+b^KiL1QbE`PW3oK$^(@mP@CA9Z$`)n{0P}NIy7t;ql`6s zsC#|nyKo_}WcO5?;E%?QH0`S1jqJ1~`%<>^!87)_Mv!~nu7sPk}j+oShl*o2;_KqUTSH&?`=B*Psb#}TzGmjk`k z*K0Rwt*w=>mEx6J?&!6iQSD+|?-{3k<8+{&4z07Xbs>8fvVW$8Ej4PW;h7qrs`0rR zw$XDb7|~jM8Y%Ro9ow#GgT_?MlE^el@osHZ~a~D>K@8b}mH`MWP z?GEsr`?#QD8ucpx*E(^Gw2yn+l){3w5-gkDoR5tYF5)0WjQX( zX-VcjBFda#uBa}seWE&^&q~Uwzl)JcxzXSeDX;mR*@Cajo!C3e#-1 zSk9MlNMEg1=%;tPdAz@Uya)NAH_V4MZNGfH|14s=sQkVA*N^Z1_2u!WFOS53M0Ngh=UPxc8vEA*^@|7r!Tisx_ z#nnixmBEP@ZEsM7o^V%e_UB}iJalac6C~Kt56(cO6=mHpkEA0~boxQZunh)L8Y<>f z{B61cjhGfWh8rRr>|kqpbWTD*r2o=KvOr`OxqwR)ZOpezl`be?5M0gXuE9o~w zwKGx({;r2AtOkb0RbRatsy8FEhm63fs@W){nA$c9C%}L3cX4bVW-%VhL{Kk`P9h$w zgANV2Oq&FbxjAv(gL28E**bZw!_f;mzhx<2$3t0$q( zqdPXc6RSPe+avv&E=qm1HBei9rPb3KZ9+h`em!a2fd6<*YFFdx<)lXAYEo~@w56TZ zD~$S;e0qaXqla8$(!7zYS7SPWIFjb|w$kkA&7NAhp+%`tXzM3E`}o>8CJ^j7g|1s1 z5Xm7gr6D1tdnx6}(9$N!~0>ze1VUE6g@&yDD(oW7V#kz}!9R;pAXkj(X#rJnhH3gZWAte|5tbSGji%S~6oF&O?$ATH=x>Y;n}K2ngkNx2 zFg)7X2md+5njAhh2b$XvLFb8iH8NWRqCoS!Z?py&m<(yZaXm6Suqw31G;|~p5>WC* z+!)e%Bu!!~FGz;Et=qot1}ecHQV(5~)yDx>H+N+;xFgoA-ze2<-kYX3kN{~r>o|*ngXR-9qJHr13h-TuIzF1Ce4E4Brt2e{p0Lk_2Luh> z4lOT+(W?_Gb|g6w^1IFSR7>kL^sKDVc2U=|I!&}$P0Pw^T9)S(g=lX9gFq#NM#v0@ zIZ^}TpVh&qaWctH2oPliWa$hg)D%ME2ep89a>%ynuh42*@dbs0d~)Fbd&9 zg<4=BpyO(WrCAP)R}`~9(Ryqn-yzN$D&4Wx8EMx81?j~@<9euF^yN0F%WRLdzO2id zrRt_>+O`Y$BLeh21b-3#rL`^E4g&#E1rnfaM6`yRII0Q!_xV<)Ebvt;KI@c_KPFS7X*be-E0sYUK1UT0hC>} z-ce{jEkP?CtQQ8l6x4D>b~)q7H-L zz>J0l)WK^lJd?wQ6qJTRc^ntVajqX655oK~&Y_z&`&QC~De%7t0SWkCK?{5e1Xl;=xHJU#{iB4an`=(?gLkYkxCe_>aLy?rE`ylEXZQ zeF25}X9V1jr$FtmN1dIW0fo^0el9@y5V#zD-BC#XAy-OO|82|YCu?2ZtP z{q=do_!hQ*5CWg^4o-n0+RJv(>;jF+cdrh=Lq;GV^4I5iojW1;+m{{#=Kjqw!ch9< z!3hB$`wQ-$@qe6$GZ)_+{~QQr1bprk$1KRM(cCfwQT3yL7g84^kDprkgiRVx_y@`= zV3iQCR3-ka5m#}CXrLSZF$@tQogpO;NqETn<8IA#AF@H~i2YUodkr)s<}#BifRA0d zIeDOl1Hf^}9(Ym#k>x22s9T~VT=Vkk>;i7m`yRol?d7UuI#kG$#D92^=oN_M)CzMR zd%-aF)gbjfx7pt9?jG*mzkhi5?%~6Shlhu|5APp{2#N6CJ?_xP;Nk9p zt3VzfwirA?m$SRg?d@tu6!;VoUZFN{0XtBbAY%m&lM%XLvoB1Do=s@g3wM@z8nF6D zya*5Jlr8C&8Fx6K?=1w29U>1uAOswNX&j{JX>Ok;I>BGiQM``g_UJ03`d!6u%Yy%$ zi?MSxaV{tB<;1=w3Zx;s9VmrPU&R>+B?p=}v4W975EjT59GHiyH_*U*eJ$wI`c)+m zB<^%>B1rh>X z+{f_upA!E~IQdV~y@`e;K0)L)uj$XbYO|}=+O+1Dix+^u!j(cx@LET&b+krDJMHQO zqx3Sa==*6rZOa6>?zQR>2qK$agULdd$(UX_y}PmQPpoia`m!BL(`e$vV|UiG!j3t+ zGLx>Iwav6=XCrs6x+xk_uq|*r%TTqA@NdfB{Xjs%aoZ2!qiegw0ccKd2f7>5nH6+~ z@CH`YwPy4k(9q_@YBg1JS%GpVmKPKr>sKQt7^+4 zgJ4O`#Dvoa5j8HWbTGl<3=brT zKYZN%`1ww#egE%|qVfYE_^-cX4hitn-RF;>!ygbMzWwq^$bpCjfBuM!TRMq=zjt@b zcM#gMyUlF7LG$SOVz$U;+=&sl<{acrIRkDcn#?eZfr+?5BbP>i{|NqYFPC?-TRYcQ z;7>F~c$kfx2rhTK<^6VbyH4+Rw2tF0ICK2jGBvV+B`pTra0>Y_G~K}R6WfKr2BTqa z$Hq^>jc&M023&!&WVM(RQ;L2$1cHyZ*^X`^UW`BiAu5&`vy32nVkZ(Kpys91AcfN@ zY-JMkvs|WIWID17OeUI@C5R+L|3gU@{O8~_z=a^}e2l0tzcAFWhbROgXoDMzjTUgK zZckJMb_bHt9jQctgm+!SK@@-J?SXPLQf?3e#@{cjrbY&#;YcpriBM}7>{MD}!x@}w&$&G54;~K*s^uH_Vlx*aTDsASH)^?OR{B<@KP~o*>cFWDz2+pS4D53$I-B?{$#2tIRPk>#LQz@uVqVgmzjEMXqqP_ee$}#g1{LvPp?=u2c*%!L<90Z{b7{6v@wsggzs`Y60fF#8BcO;Z!;HGwfEOnr;FZ6<@YfgaiY6_0edQAluCBb*O}Orb+kUtjgqwb_ z8Yf#L+1lwU-t6YLyW5A|?(X*fVSD$myF;g{-NWPk!~O2=en&xV_I9@<5QO!^hO0yN1;S`ei%8YJThIc%hq#Ru+O(nJ1ir==%k>go zUwFuB4G^Sn61uW`VLT$ zN?wf2^PYY&u}=q(0MB~bY2QR-wy#|bi4IMaBu|XXp-D%cbyXU)v(?wG#wLA{5F>VE zx}c-VWDKIUN4i5?+e47r>_}*KeBQ&do=~rFDS`hknaZ_PO$+ZU31A$zpQzNX8r?Dg?pydgd`Pnt66TEW-~CN>aoU?(?L)SD(9E9qM4 z$V*2~Vnpa;=EN}Ljevl27xs-2a{f>^1Np~d3D9t2-HlW`)SO6nBH~M;%<(iFOrt9{ zCTwVNRY?#F*0P4N5d3#$E>6|7p(C^kR?}By0y`PlNBmdO5Em9um}f*QV?Pt21VE(y zB{{2USyRZ08g1!RG!{)EI%;W??p0$p%FY^UTAC!_LUr#-&4J*VKtP%l6{P(^EQEPs zikqw&7P!Y_-^xVx7^*%ciTCq<)MQi_uxhg#u>vO3vMwoE@s@Ak!eqG-qS?rf5Ms*1GbJt zRS7)`x*AgJ_Jt!zD?}%2uv&Jzo-H#ZanN5XP%hyt-Y_KIu^bfCn`o^TafWM%WYB;` zeaLP53GGO@bq2S}Ae4+Z>uk4$pC9byZ(&=rB*2`bH<=TnN=b9)12Y-g^NEuh!QA%K zkbP%n@KjHhbfH=j2%-vPiOSyy`X9>H(X$cjN;s}#(3A6P=IZmG+1bP$lvs7Q7j0eXbXgRKsM0K>8Q> zocR}pFo0qqkkJ!+f`DZ}*M}V-ykJ~-%bTeA)l6rCY7e4GlT(WAA?G7@N8rCcN>WgU zj7ns-yXuaOK1{C&{-$l(Ki1o0163V;x>iWlO9*)7ixDQ6kL#CXnnT!Y5eSZn>Q2rF z#nw329OfFsTyvZ|9UnCY$LFJ5bC7F}@~1-@bU@*JSU4M1F6HW#RKJ!R$Ou#k1nX@Y za+MGe;b0;{t=7{UJ)J>#20aMEiOZGh@t5Y@dw^!8hh>WTrM7pA=z zd&@w0$MBK4?-8iQL^#5*3W!v~eSrv0lK=j74jF-TJO)RHktWCw*_V|Ze~W>>BY%B) z^cVJ;`OB-Lzk)vZzB3|1Ez$>H0hgfyqSr7!G`tb|RB7kyBh(ag?jT~^!u942Q6uY} z9Eb-g9v8|vQITCB_yhl)FwmdyO++#W=nB3+^l5|YIEN2N2cCmE$jk>)EWiVZ zAH@S_V=u=NqvW2|fP5_eF+A2AY)HuAT9J~+A>cFE1ajA4hQBAL7_JUsC6dSwvfG6?_SAl5mQ2_aB*$3z=e zNPI)^M-123!=4s)H3)%#KgqpTf=g(D!Ik1&O8zC`pyU%F?Qu}DuN0r?5IHN7bEEhj z)ddS`bRKLWD{4^DhDI>dh^724k)_BloLCnFt3?yyzX8MFz-smlTobz*qQe8a%c$Qd zwDYW|H@jNBt)BLv+no()4=N2|Ii~Pxp0;dreLV*JT~Cawq1vLe?E}F=0wfBY6ffmU zTcJISfOIyK5D;1*d&is&w6pQ_QgR6dFJ&K?s}RD{%SOgzU$+UJCzdxhgR$vLPBOH7 zqQH?&U$@D`PlrxAaT3w{)rn9R8pMdf`RD?d*nTucLnq?D*hb@rNOMBf4K8oo!L&!sydtk0eK4a zzlt`eNri6`AQo5-j~*0tfDZO62FS<}CJ{>{G! z0wVYe{(B()yZ!L6CVC_I`#Z;f|M9~;CZ8YvfdL~x+VhVukEs0kVfW?J-48H)S)mhW zo>agec8khx^l3~0OlaMe(BIj1wSbijmzco&eUsjAQ)C=2A<+RDLj;Y3klX3{urV?m zSOgokuUSZV)u)byP8&W_MbUWz!^1;jkINzOQV?fO7Fn`c&u>@hc0J?f+6#0^oWofL zB}(*bIgLkX9~X`7MD^$Ns~9Dy1tyN=LY3K)jbIjwc(a1^nW9b|+F$h4gadgd&;MZ8 z#3~?s;L(l<<@sJPwOzyU6dh6=`{ZdO#pq6y&R9V?2%^BKjYVGIJ}68Gs1BIS#)`p? zdMF1${+|s5jM;{IhDzixL&hZonKH6%;|uRtlJZ9I*<+S|7&qD z8iiSbR&WAU#B@o!u?=V0!oTs|Lw1qBYa z2Gz?^sWmum3jXUKo(_(hH2TM<ue2!Ko6ROa8SQbd0F2 zMK@YRtJ5nrY$-uQjv7F~pfHL~#_>@<$c^Gdt^zq4aTXx95p4zkG5o;`8stZNUPA?h zDd0iv>x1f_4mb*YQ2FkN_^42QX#*O=%P5_GsY_o#M>>;BSTeM)j72YmS13dQ>^W_6x z9u#nMPjW{up6W;tGA3MOn;29I!zK_oh?|6iZ*eLD%D^YGK>qRlECI3;ce%DFJQnkwM8PVAy<(YA55ULJUpc8%as`|OKYIF=pkD(T_}$>s zmaAM@0yU8-5CL4SGDf~0ibd)$g+T)nE-pqCxCJ8@PX0svNAn!Ue*}PB{M#(m@G=Pd z3Y9uu0Ks3iaf0m=3nFX{3KaQ&z&q9gt2~}`M1C3dngBtZ`HBA;sQh5~Lvaav5AuX| zCMm)qU&+x*nr)?IrN&z&St+xXIp3PIjg{Woi;bOa%yi={x6^dvE;fFKE>!Srz1^(P z_l>@AHjAf`Z8z&3dWH}SF4ijo!PR!P-mO^q+n}v5@gf|+HfxlF;0(8{3ohvTzCt_u z8CQp-3k;rQ=pwRSEr5ONh#WVPB_z7%Bh&%{lh&G5h zkX&r~Lo*y15vtG3up|2&Ex1uVg1j4=DDbJGH7J4LrQ}`8-i725CtXb3*4PnH2s$LT zlaa!FCA(ccL|B;v7B`C9)oA_d-zZL3!~9xyh#gy_>BZQ*7+GgS8s_OhuXoKxkA_k2 zpjM;V)f;`i(KYK`y^4BXrPk4EZM}T0)^5OpM2%;C?Fu!^=H*bo7^s-bHf=9PdaKVI zImCIYZKZsv6j=)_T`P36+Lm$I?WhEo1b^p*fFtvaQxaSBk|yp2fuQVO$sQ1pUbgNH zbg!?uBh&3G4x-+=H!(xmOD1+aacARcB)bWH`>HPdT+r~1dwGR3`pl6O=tlD?eWOQ2 zhY>veok({R#ik#Gj}Wtsp9OvRJu{?FkA4tzp}*3jb3HyK1k{M4<~0Ml9kC#B8zeeC zJ2e+geO5IT8FnpD+!mBqhvb9tu67v`dEXV+$WZDnmM zyE4*_wdkOzWi@uPk(-UZMc=~CmI0U}3PdG}lCnJwPei^T4`xB2p_rEuQ=Sn`UYW7% zE$k$V=ZHjZw&=k7aKC&1?vBPIMDYy~+q=j0r^n65$Muh&gbD}*{0G{;-TnCa?jN7; z|MmCBA3s6=Ll?M@2m$}_;qE<`{i1y2;r8*4?UwG>@42zZ`}@_y?Mmo>n+-SI!GC+@ z4>*Jh*?rEP=ro8nH4!{GIbut&6*BJXIMfhwCx7-!M$9Y!mZP?1I_YK_QZQkC#1U!biXCQ0`Z{bqvH{83GER5 zw;?}8xO2SC(70JNk{M=Bhrhw^l!z`nFEaq=IeK3WRW%P`t7rqOPQ z|DgO4|C!fg{c3=5-c`=KY6Ep1<4S8x*jG3ooSY4c=fmQ8zi`?w(#`XJ=>oyu{MqRE zY?M16A2&yD>fM8S|DZlRY7PkjX?p?|1Q8aX0**NUSgN&^1`0={GrHRJVJ_3^f;+E} ztccvPt73e`7gWm`crwBypNBf=Ee z*)=-HVO;JYBKn9N z97E50ljDp)Hi&si6i9e?_&3(=pyaV@;9s#H^4?!x91_(L(*5bh(bwM{0sEN$1npt_ zBKPMPIl6bhg$MQCfSMr^VPfcx=sSX!`bL-@rIw!rn8ql*`KPeLwHt2~;2nT}{83fT6SmY-P`#_)`SBHpru^0eE@ET7At4A z@|N3Rv5A(OWW9y8Ki2`yw_CK~TyJMf`p)CZz}0HLTETp53!7JBK^jbZ;6D)I?F#(2 zBZ!144Bd;A_4R@v58a|NjM+S!Emr902_cXWaJk$PZmzP;k{-T+C7~!N&epeUxD4*& z$i#~abX1EH$B%U%%9CWlUqGJ5k{u6>pl?7399l7PTNmx;L!zH+Fi>z!gVvpjPqf#P z5hT4BI~NE~c;}LH4iKcfP*Dp-Pz^4TwgNAe8@g<%JRug8-L~Ri$_{N?W4kp01)fc& z=VSY9WY@bE;Exaxb}dG=Ym{%aYFjV0Rl>n?TdmyaL~muHH@0`F)4(NFZ*(+5xAT#8 zF|^M6s4u2V>Uj@(UZbNx>g(vV3NKzwDs8RORtO@AAnCEqj&j~Z$uOe81K7t93lfZ8 zPV5WGzMMD=wH^`hjq3I^uPeJf)#cnrZ=j)}=L9wlzU)KNlFMt3sMZ!W7;dLX+c7J63n@0 z9kFIfifandYI<#EQm`;!l$gb|qS>x?yUoMn?j3R4``h>LcK5qAi)XZ569p1K{RsaT z?(^|+_u~)uw1x7=WgnkE-T&}m_XS(xzuQmmcToFa@_Y+_C1x*p%G{&9?>+rFAVC); zATW7Ztx#A6f0h}NYnlII#DnL=f9N{HwHjVX%n_s33MCp~F9bnR9DyR)JqsdHFIi+M zDvQ_id&rI1{SNtg!o6j;ri($kM!*^1=6j)o&R`zAlPnKS#!S&p!*H)-#J_F{jrL_h(i$BP0TH6Iy~lHerSljL+RW0`%)3{)5{n3R%3+ zv_yAc2ezOv1>`;)iZPfd@Pa`USiT_;9EqFCNYaNBeJq=U37P|;bVD^Y9pxZ~HMOR; z%btKy2)EM&ZQ{Zdg()#4$ta>%K_JY1&(UgJXBR-?KUsHxfRf&y=tIdG%2pqqqlh*4 z*n+A((ol~~%fg;agV?K0E6=`q$?$j46PbT9@n7wFQbdq%dRv+>);Aa^!8Y!dv94`_Zm%AW%P^TdDWW8?+4CWQ+LG386SawRpcCA!+Q zdJqCH=sMG*XV>5|I8@tk%+@aX5+sV`Xx&>MTJ_=y5Ucr3C5QJ+S0?wV3MF{xtq;hafq*!_l z<|w~9Dxnj`5ei*_fDB$DUMaMz*N1u0{o*ZaTF?RkY9(k(1w<7Ad?;2ei=Z%59V4Ky zJ^|q&1yI;cKMw-Ld;v*;jH(+cW$1hzZ=LB)1g4XzrD_X^EwX-e9e|L9FpcT;gj!)@D5qRJS=?A5+;`? zpKzUW9wo^%0lebF=c9-frjO?pg;}` z^B#^AH$^E)gH!$J49ugIdag*X>gPcem>1F@ZL5s}=7)i~K?fiB(+udawRQ@LGO}xT3 zB=}p>d^Mx}v}d)QZ?-WU#-IzPtL<#HOtKZ-+=C#bJ7T`gYPVUT9CEuR>;udJ0kh2t zp`%TfSc`V zv0TmO=sN1hGbc<8KT;hOA4pSBh>Y$R@z6x@sH+nW#(gvDa57v6smCE$5EKX;yp+R> z34x#wAyD$qC6_>u=7BAul*p@Ti*NW#9;;j}rJHpkA{ z&}#JI*j(!xRrvN9H5mBm)jbOu)f=PSF{&MdD6n!vBu8Ax8et#Nlh)8eLLn-PwHA{f zpm1O`dTRYft92CuJ|QKt{s%R&Ik1{N{j`gs;1*I3jmr@|+++uwX=`M)#?xyi;2X%6 zc1LvyVY@0yr+cbBLdKpyG6TsDR6EkWneM?R#zOnJ)D03pN$Dp=TMrGv5EQmUG=#7N zkRm;5Lga0QLkltA!8GpCr_G~HTPwM-;tMTo>G7GKH1&BM2$&K7)$~OTD&VYPE|3~% z5){q|ziLKS(TM+2Y_k= z_hut6Q-e&4vgvGLh3PcP6h9r?X>XdfjI5!dh@`^LLfFSognAJ=c|k&3o3{h0PtDnRg!^ckdt3MDcM4V%u#O4|j|E-ICDo^T+LHba=b_ zf})TI6nT6C|DoXHeK!90X?t!;XCk|j(i4t7MZa&PUfMEC#BBHU#@ggsn z*^X~aU9<+Cx`@f@u;r6gYozMvkTFp@Lp02wE%Dz#QU;PfkqOZ>E*v&!jIlM*TFo#u zW2$I|Y3+l;p6k#nNfPvfV-}@>PI8v*q7Y>2%bF!{bE26^!Bhe7RhrGk9 z5jva0iDm@J4Svo&^`Z|OzgAa)+g}Ip*SMBzZG~8^)EZP+=PR~`1;V%%;4gpLKW_An zPe-}a0S}0LhmHQxDUn~7wqQZxzq8Tt>GZ3p3GJy$L0yi@qu^v15(4H10e9ji_@gan0rtcEIHAe!4(h)>Kot0QZ|i>`_&cb7 zeTea=qx#oJwLc%#|3nCws}KVI_pkmj>XmYWt^jvHh`$N|2$~-;0v_bc|NH3w{%@g0 zu`x0lW^g~;|NRe*(Ku!BfYBrmwgAJ4dx=G$PKne&h=NE5q&e5Ia*&sGzCwZfjvxyV zPAECVg%S6pIjSY{;^at)gNjCId$f=33jX7k9(xCtmq%#e_5y%)^5&>0!zJ7U(0|*me z(H9TaHt4JLUY;6dSK4*iJf<$cQ<;Wuw_FOFnd z#R0^)N5$8ik@*%M!t*FXx;x?UJtH6nLc_qU0znlq90b2gu7tym3T1-(qe7KWQhpw< zk4tZ8Re-zbrw`^6a-bN;<@ymAv2-kA$E+`+dbe>3bC=U5^f~r!7TtbPbbNX$%7>pt zyHXAMU#Z&QYV=yJR68On#RS`xswSQMQ!kLSBY^mNvcLqQCD%Qncwld+$M(8D>p{HYanH?C(;LvCQT3&MpXxmGb9lj zXUHie>_fb`-UahjI|^ZCt%EAOT8DP(jV|&F&xaO0gs#7ro$2N_uWx{v*YC69#(w3E7S=ptTwh0HV zbmV5Tml+WT@t@*n6MxmQvvVV>>qtGU8Y|=!DtJkP0#QoLwJFdArKF4uMK~JPxe$2b zWz&QZFk7sax4Vs~|3%YYRDs;Sd%z-y=WeqqY(;-qX!5(nN@}@}0?%1DgU{a# zHqTt)o1z8-g&H$2h`n$&bs=;S;yB!Zk$cq$OXLuRseb5z!qCPBT40*2P+bAvmfH>e zA<`clI_=VSy_lmLZyE>eY;3zeOMS>)lMPQo6CDSgYEh}m&1w}mw@=im=xM7ME_&yf zwr076kGkz~TV8}jSsLRSkreHM+#s^t$aH6uX*e{Zo(2B9(vyxB5duztfb{!0v;8DW z5M-sdKF^R-n8b*Ci^RXchtlVH0X$mJhr^@)qYfAS8{yOLvHs_9!lG#hL}T2F18I4h z=!Ld4)jG?Scih)S6q)k+Pq@dI8V4{s=V<@R3StW2BPEPhwa^QMUJ3etpuw&s8O~Vcgg?pXj@fjkuU_`#tATtukcjgxx-_J# zf!1PI=kuP@?9xOL_I~wisn(XN*W=2SRK1#1;NdbV@hD%8xsrnraF}cMa}7ek0Wsh4 z+32Xz&z<&<8iS+L(IJ!HVG~?Puvnr;T_E!h<60pEEYoRm$&zZA-)`r8uNm5w3)6Yb-pCAzv~46-)UNN=bl#1wxb30V+RA z=&tc3`_Wv$pFmPj;9-G%URdNiI3^bSp7k?AK!JU11jte!$7J`RUho zK4D0Dg|bN96A@mXl#f}-6Z{8^BepAIdr+tV{!YpV1sb?Xb2{gnlggWX`4vu1m{>ia zBl%#$K}_?|gNJn4?)Fb92)Fa?K zEY%Kyry#;y8T?209u=$kN`nSKkhgSXq1q_cngoIZ?21H_Y$#LaE#yFc-d`gixU=4* z7fej7xv}CzU#;)aN#Hqgefw~COOrcP?XIB(g1TlPKcc`*v{=PUARvv|dIJ_@3dD8| z2@u=m3en;1YPs92@3u5V7#F1;$m5|bm7ic9(pO5him_)A zFV=JbYWy5-CQIU_j1^LBX!- z?i-%=&bdIjs{7o39FOHaHa0*Iq$KjgT*-KtIc^E@J@;BVzP5vVJ-*>) z*q8_B^SC~XL2Ll8`WzHUEwBL=oW?oNF{?wEtUjmDH|dQQvEXYu(Wz1Egj^Z3rp+IrkG)1i~}&9rN!_p?|66Dji5X3Nqz$?MUG z7dR`cQHiw%Bk5eiA~oW?X62ge#j>r_vpknxAOToxz5Me#ux}%!(J^`Y<7JJ%Dv;cd z@5}EmS)S7I|Ni^=|M?f}<^TTIGh4&``}_a(&+q^G0cu<`armF#U!KW}phl{FkCN@N z!5`L=QaXLU?8zbI7XkYcw&%eAd`<+U|2Lr!7(}7%`Ha_eS+&u0LWbg5-okKn%QbA* zv1dYA{xpWoGA^cPu`45M`NfRPBle|9xMp53?!T}ZG0h?t#FAuU%XQi3#&p$% zp)9QNoQ<;ws*(3>>`%agnzXNA;gaFh7)>o@YJwCeY=B`fh>-4AUW{c^Ad@5&_WZD1 zrk3MAM6rUQK?(nEMi2!5;f_ubN3fKn_8Ai#_$l+A=@VuNz<`cl{0DGZ?8?K!D=he; zW3&v=o=Fd^&Yt6V7K(qGNg$hP)|`HAwg$NI@!p zk~oqpg#b8UVtb&r`s4fFtkb9O_@R%-PFd}5Ivr1EIPGMnjb|Fq!)kx}0|N@#fUYx~ zx4L6M-c@IE+n=1@k1p=U&AYM0_D!1YF>^2O$BnzuMO!8Lf&ZBEp-5F{1(a648Wk@4 zrJGUlYCyXfl&@IW>R+L}~aliK~Hde6Ji>iwkNnevX5b)l!{Og@`l^tG#@#(UQut=XmFg9{%-)$X(g z1RUzspp}GmDG)43%kfKM0ZZSAO+|do@3F88{~etXCiag> ze)}hM`{wIAM@7-kM58(^N^ukZqmXv6J?1mDH$q_^#I|#|Rr>&Exy$m1rCa{`C+d_0 z|K-tv%t#OfloV8Yex)`cTMSeDqdX~928(+~r^J+FYLJYIljp*mQXiiEh?n>f9p{Z^N+iypLb6_(A9gIqux6TctA99=H~v~9S|PC?&R&xX)fu# z5w?5#?KEG1Lo^f${CfP$r^8=A=bLo@CD>b9K>5)%qMtbUuD9=XOg$L;ExI*zgz{}KM^UEY{ytYA+xds)rksN7XAaV zQTbz9ckbsE39t-g%!503PXK>He#gb#Q*Q2_R5+e8V04etAfS+u0}LMEA}dPLYfRQ; zFke}Oy=wiO|aGON?(bb!4elT7Sg+LOaOgJ7EsszMx{g4-* z!y<`Lj;a0~?3g&hr@)h*m-xI}G-P!c#sxNn2ys>025~qi&Og%q?!x)U~~O@V`Mnu-dz4(SWt#OqCx z_X^nX`-;Bc=hce30myHiu(Sg`#f(&EX8`7Zkn@(AA7@^Yf&bieq1UY23v z*NVWYLn+k+OBOGXc zU-L(L)YpTd9(ET1!Jwx{4~yu2#*(BUmAe_3&uh)X8#RDkt3HhyVQ>YT_^^wK%ZVW1 z`PjLT0tc|h$i7g#=D=$7tc#J`7+AHgLHO&jI99D^RJul~vw*RsTYHWXyFhRCF2nV% zL3?AprRet)=Y|Qq>|b|1(r?7Bm{~j}|8;o(UF)(zFcDBFkb+{HM94Nx9eRWtqA6Yt z=>NSQYPV7c8`wujuoTC>o7nfN*4m-%1D%nz{{j!(9Wl0lq@71n1_b3wmwQ+AOu zapV+FnqFwhwU*s#>8;LwzSnc+AUF8%jKv5kLo(2?I?F(T6}Bw_`9;`d9l>c-Q%RPW z1j_WzNPFU0Uigt8tr8&GX8rWU7QO#wrF3bK_4KEXxf3Gn`;ydz$6z_)(gkBxeBi+y%i1Ea=a4du}+Y#x&lU?t+1& zH@6?rof=1B!1C=;m?c3%H!C}eL=ofcSZ76i!KUTRb-H?o(yVN#8pFBSo0t!Z)>Bxl zxTl&uWg(&BlEg8bN&CgI+AaLFvFZz?&a6B7K79({wWby}yaNbi?){Ys^+oKuC zuhpAecShIU@pXH0ey7~@)XO%-ygZM%#|Xbkr>AzutS{IZvdf4R7o1*pNO)wsTcruu zx*676O8u5~TflrYY1GjWyXdHmHly*_=i{D1z<{>$^{~>S<_F*_Tn!4BgR`q13qD^D z0fhx2JfPmm)!_JIcqGOWFqfl~%Mtjma5a`tKbXSe&#XM4F!GO)Dr%+079eGe?OCF=Cudje4YaV`&whDH~Mo4{$mPA4G7rRD}AlpX9u~$z$x_ILeDL+_@7%H z6aLEMpfU0jDz<0VmGv&aXCc%HF?{-B6JScpE;j#}) zxcDz%Q?V~}QiEl494t^5l$XiL{t2KE5cbo<&Y(S(^(h_FvAa#(VCY_n-riHHYXW>F zk?{&OaN9oK&$H70S!M5pB)8T41nhRmf+dXK1ogfi7k3yl%1z99Z8FLVp%7;fMX*AN zPD1)}MG!Q0R;ftHU`;&5&69FfFjSnpBJ~061oi3%KvE&RgA)4|9?HsbxsmV6S@57x zKgi*)KtRM}|BisC1u#@9{g} z?~fO-;CHOByaYRVaC`;@QnXudq7@~;Wc`#2fk41;O=FB8`Hw`urdN*y=zMtA1)x@*3XHIWn_viLNbHIZ5(j6NCKyYe@szd}X zTsnmfkyr86i@D}7F>`GAiV^g6|9nDe4M zq&bh8Gmt1rt~rgcS!X87lKeMcRwhwpLJ*WE-KHc{p`6ASv-pOICh46X51r-M1N^0C zn0VW*r-hUHrlFUT4uj0|Ls zh_na^aU+I5IH?^I(aq}l?15oBGtC~)>Hi(5COHqZry49)%sM9QSKA$%-7%#>;9!@{ zbqI@ih$1Zzrwf~kpzde}6LJmPWv@BYom;-5Gqt?0xdS5@7)%Ww+YxR~bkYBO76)Z< zKuK+JrMw|)!O*Mh)88$ZNB8$!H(7X3x8^#Xym-|BK55lx%owW3I?N+go8XdWnj+0P z7@VhSLsjc5YJWU`7^y%&Fx+4=>yD@W@vJ|ZcE^jscn*@g8%*v8v)eA4>RvG+V+?d7 zlU)Jel

  • c{{kcA6<8tzyTt>xL05|o$(FfkDYm0X8C?}PM8}uS$kQ@vpO(R`MU)X zvMmRje6WWb`}49UAAP}-8bGiuA%N8X0CR)l&G_`ZTapeRA`13dK=hjBT~4k>M;Coi z;NivS=xTIwJwCluK!Kw9DGWRAOfGwB^MUuA_@t_Lv`U9v$mw(F=*14kMH!p0j#ln6 z*16o%VL-iV-zX1^a#ySLjSB92hemB^mHTG7Zm+S@~M0b_EE zdG+mK1@`{1^5LNL`MCP&2xIXpzuLhQKNUO4rN9?F+uBn0Ba0BQ&OV73l5*7U>8Jgl z${!i!buQo{2$-+r|8O2b7UrE$y?X`0XlmasU;}e>Z@qxVA5t z9MHZTi5-`|90CNl0wG<=0MKHUB_!#nrNYOo4sq`u7i-KY7i|wuy-%L29u#XZu3$n0 z+_E4+@O3007DWy$!hn6m$J}9!*CGPp7WKe(pun?A?X1!)NKF}LkW?A)SFGjdF z|_lwidUGBd=kR0}fjoDswnrGgj-*pi?MGz23CDbFuYu?8Aq z7jV!D6Vpq~fafv%WZ@>dPmWo5Omv+(@q}C$C}!9*{GQ|+(m}ic3kI!Oa64h;D%LNU z`d5m3qk;v4HV|h@br5@RS<#*@Dm<#a2yUm|-7L5UX({&A#Jw1pmkM3O=R>nT(3=B` zlis3E|A+yY!+13^uSYsiFPG&yGl$~b-0n=B_RPh4TP3jp-EI_+oOuok?13hkM?wiu z+{)!UDuNPjxF~m2IbhM~Y4Q|0CXIo?JY~hal=SBt=7m_S$bjdaxes%f*&BFvcItEo zy3f22ovb`Dys_ysH5gx|9;*XR!4nS9FqDAHV5kSZMbOs67RA5dMkK(NmJt55_*#o^ zG0|z~v*==x)fV79T740n>#OD>YmoeCRXT-Z824&fRgyv|3JQ?@M8n!5tIz3{Wd%WD zN6gDpK5FYDer3L#4*x>NX|fWMr8oMrrKfEx z?OW-xZ~$;j zY5~Tqh8%}U23Yf=)D{WQWR(*Sq%Qmy&P?{aX7^slp9=gf*p1qmXfS(1{_`ffhm{2( zjQr&Jq3hAnoo5SEV@t??+f0iv#1Xn>>%x(v8TilWtJYv*c33Bm{VIBSg-eA6?H^(xDaGklZgUeCCXuNIF3eS(SkXQFos$0~3&ir63(UU1 zl>Iy@14wa_smfCN#o^^StX6FUd7ZiNC0?DnFjS36%1mLN8>5*qm>ENMhSa4)k2x6Y z%8V{-?i$Yrtjr7q6y0vH*iMGi-e}fVSRm$()mYSv`{Bj?@axVy15+a1&- zKbHV^t5mLs^}FGD8;6k;*=e`MCcHH|c3ES&)>5i1mUIRP*6)-W&ojzFkh0&Ma@nP) z`0`;w;qXBPv^DS5I?i@KDPBtg$BlA&-YZ-W&#o1KUHNucxto;k)Z*>v^m=p(?7Nxd zR%lH@gat;VjLXbO1N_Y{`_r5Lg2`<|U8*_*>C95sD0R)Vj&{~DI6iPJ_F3w$)UzuC zyVAEy+;qx-yq;MZx)@6XtAx$IMX3*XH=y`;+V=o?m2r4B@<@RKe`f;;{sZS>a})ps z&xZa<&jAR6_Hs1D3XdEH*es0vH_ZR7{(4Y-dt85a)OdST{q3Oo`%&$8Y#y>B+^dy7 z9pYP@-|JtQKXJDEmkLP2kQ9ouui|a|vJXsQMk>i~?_}$d+}lDP%bL6*;FrTvE>?Xx z_z$%Y5W{%EBRo-Q=cu&HhI0IeC)zn6Xp(6JYb3t`$FS}oQzCMyPbl*^EUG@ELaf9r%9XRzFeXN7;=8o}-(2p;zae>V^|-gCV9$K}t* z<=^*;pAL%n{lTtJheatZNe3}ANC1~bAwoRemep!l+>w>7Lm4lpP}!q_1#1T-9L5m9 z1Ll7;4z@%{r|==AKCZ*|U(Y7TW5g?};o%^{pQ;`cM=Fv;Tx%3+=ckq0X?44jyPM^- zTNMx&uzOa)w|r;r0Ri!~^CNqDTz_W=4{WlqAN^Gn@aPEMJjR>H^_ zrAf-LEN+-n^0WapiU)Z^P4W8=h80T5=v1;p;#Hclh6I~;Ms(CNznINI>FuRr=Yj%b z0k~uZq@$BDjO}=3hp7>yCddy&7^QlU&bP7drNO-3|uBz4Cq^HLl`H4#i{hB!ku_p^x;PV8uGC5jm-R@^tjzUDtH+^!b% zG&Zk%SOj8zR}cDn*qO1{MRyV0&mA0q6=D+(UWDC+e-Ch61TCQ3)Mokx3*WOv+a=SD zjcd^1$haJ7z{F->yOfx}E5&S2-S*V$5Xii?YIo<@WL4^x6rH&lQ^UI)>gRp!e4tZG z>}rHR81BUZf1SD9tS`WS)$Rhf<26twL$HlTU#|%THbIah>wIKhsqQr{Z0@sM^MY4< zH*;VQT7ch@&cf^K9)4r+qJ~B=u>;kPCQd{aWby~IZSoL6&~sl8@TmK_cejY{G`5wy zm9RgO-#on25{y^#_-YYfEEt)0p^Hb=Sf0-)4PG0xTO)0mDK;;S>{82`bMjn6N=DZ) z5xtO1maoj>rnbc1Ykhg4rI&z6tmI@#WXwcCq*#cDlvGY~)T>RSh7M$;C%QHh=dXkw z*5|8SG6ZyCk00nYq8z!=)3iyoBkv+2eZsyuqIl?x*O_{jrfY ziR3@=>aL!cACCh;fvd-L`r~QEy)WxOw+GX{0~WtO;jeJBS;AK9B$KYb>2et{wUzx7 z+2$;W{Rsbr^Wr$lk~q!$gt8x_0O_e^KMhIlzCa z6l`YzAH((Nu^lrxqs7L%)mt{<#ROm{o8u}7j}`UCb&7dIihOre^>A2SGC8&@!j6qQ zX81PmN36hdr{F1=_S;d(f4wO?hWDnIy#)(@J}@$`LYa^i<4ZTn8ToHm0uZe7N@Ogp*=6P=aq*=gVjv6i-C4C(l5ux<=Cu^%v#^9fZK+4 zkxhHO(!edidKT=IW}kLJcy?*%p7pG=o>LrnfV?7;IsDQHsOO&bfpKnG0lm3JB`8wf z^Gixt0OyUup9qMtH0I_R@h&_ad0;{Mg~vG3&y666O=bJ2H%Ik1hu}ZL-`m6Lhm*$p zk}QRXY34@w_j(NH|IThtQ)Nwh9{JpZm5o`E*L!bI3(qJun&!rnfRu1K)kFZ@oI zF4a4Vd3)H*M_D8b7T(D^Xb&SHZ}03Ua^=ohFj;OyJ&Ja@C-(%X_Y27nqXhGPKH55Y zMe5^`Tei!Y598SzoAh}Quz{v|-2kq?^m<}Q)ILK>wFBkUq>nSdh%(}-nfdqV9 z5IB?U3i@rCczY-b7CFF?TDI93%-Cf>o`%$v0;~j5q^D!92sG zKr9n)FK8_H^KLai{4#vz%|L}bN8l5-6V&@eZME>>0ES&qWTR_aa!R>{@Yr8sZTGCYdkT!J69kL3J?ethqf&!j;9{Lh zA%(!oVW~;x6MhA^QN26ca%4`BIno_SnBXxfuyIe}#tW`q zC;>j=OYFxFj4wZ4UjF>?_=B};S1&l#qtuRmq_cRvBn7Sse?GH4R$i96N#e$_pGgi! z9NS@Lg_#kpG(Tq94xe~uL@eO})C2he`&1{Gddb8|#&!ss`SIM1RVM@*>LDw%ff}^{ zyh!rXeVlo1P#{d5ghWWmFk&SdAKaPH#f)8eUMCjZ4DqCt24_yV@Z*J#=LKluDZ(iT z!1BgcIJQ_Sd18el!<$I0GA12!j1)7RItfq->mylYRb)M{O5+2nn1(!eZzmRz>y`<* z7RE~od-nCnx+Nys_bR(&N}h_>26VEPveTN_cd99)b*-3q2>7qj)fh+ku&8$R^24Ic zqBD#9bG+8m%Uz9ySi5onV{yz%Ptx&5W@BhI$M*Tyxg6V9K+>sqGxM*fK3K2?9MrVtxf(c0*NnSP`e3n=ON%&|kq+rQPOo&*7$EOl zORtROB}P4I>C0;^xt5dMS<4$t4C3JVB5Azpf}p^-==PY`w%MD@hXT@+{|nq*Uv9cFW;a3_>Q|C`g8yM z^ZAF=?UUT9wZz9Rm-xkBvtp+FDWoq?)CE~DnkwLTK9*Gj#RZJJsWo-;beYCk#7f8P zg3U&~u2dBE!`SmlczzuDypoi88KgjxA5&qams)>km`2ja?K7wLWXF7^9groNCGx z6I_NdX0vRIs-)%24UZjYEYI{={>frh!^mSzP}Y3`sd}VdX+0PCHro=jfjACh$_s1n zG38~>f`7JLu*o`wR0N%|?yw*C%(_>t`>EBM7%*UKPqq3pX0Z&XR%g8EumjtyGn(J9 z;+@(WvIqCg!-SRax|55C$vL~FVN~h8y&KlZe84!4fIs0sa$f0b3x%LV99C~lu-Uw4 zrDc*Ixp0esSZOl&kCi@o=8k&F+IurTV{dvpoL>&6to`0!G{AqoX}!0|<3I{6;2r$~ zrH)pR;sXpmet_wf2d&y!l%2nW1^=D(UDDpb2j>wD0eK`mj|b3#Q{rPF2pARyTmD1w zoC!ED{6}dRGKA!Uz;dbS8=Zi3R&JHQSLbj3?;}x6(iC?8<`jNCMijxHafEare%vpT zHmKxn(KE-vJS^{%XnO*D)X8$BqlTA@X995Vb_(xy|1xmZJ04H~oKf4uxGQsvxnf7D zkAj@=9G$iTZO5cHQT4W{2Zq}@1rg?(TlmY*@C_ta5b`U$8il~^-kmKG;u>%m;g2lH zX90%hZsNDQXYcn)qCNryiK?Qg6~4SCRS@#%u4U!z<8mG(SH()6D#5(nJZz4rSCaIL zD)KCmDHF*+ zB7xO}1;JrdBKOXy=TY7(N)%u|ifdRFb3lZZ$%|*i$Gsc`MF{+<0t!Kr0>OVrWzOYn z)t{J{8=oEYNeZlj|Js`WkNEL1dwGduOrD>)`ScP$J*Q9H%$}ZE0Rr~&9Es)!Sd2E$ z(F)@u4kP~oAD^B8d2IbFKILaAiTn8DdBZ@%AM0ldimR7R!U8dD3X-hWbStly;fgVZ zUb+e;%FxH0(SE5F1H#fR0tSf|BtSYX%%*;#0{grK@Ta<&;$ohSolvpkp&etCIfyWx z1=-9?q~u3DBSFRnPDqiD>L3UYTxdnHm#%|!4gPb5L_L-#%ouAJWrnb$6D~1v!j&mG zuu}alFqsUIGa?1Zd4TK5F_BLyFq%z?s@c?~XBmqVE1G%X&|p6+8H4WJ2itWu|4y~p zA6<1oem9fc=wiNR0cxu?^VuK$6luR=@hW#Wg|NtIBDOe<25%B;SGS&Nbjta4q213 z+=Ibm9vtRmJlGt2&hp+|-kM~@3sx2k8``p=CAE13%L5HTkhOVIpJz>NRR@gDmy`@) z8Y2QPwd`_{-55#R%D|(e+~@13PQ3I$e#t6GnTMXN*|G42O|jR1GL!fFpMN~T{{1hu z&L;nTUq8KUHjm5oX4}k=?p+dL^76=d!Mx6&)O>kl_#nG%Z%BZflyx-O?w9$n+o(R) zc8R@^MhXl_fl;~yi2?*cKfu0#?%)ig7w|A3pcBNV8|qG=JJHl|7m`;o&E2Vnk8v!` z00&d6Pc!?fIhffn%m>s0sS8e-Cc-3Q$r|w-pDonb+9IOZ<^};7%MTW&tLn~p4t%tT zO;eM7Y!$sDQGjh_(V6J%Z3r8{7I!e>px#zY@eAvnk%q^10fG}lI$~>si8fRXg-hC|FvqglsT}kHJX9{fL|U*~O4uf9gHvUf`Y(v`4~g&x>t=yzT-Y2&JCE zSmYr;5b6W=XR8j(%76~sGQrL)53JhAZH!#p9A2xelX@+UdK-#Y9ebq##;`OBDaeT{ zwkVN&B_{1MZoUklb z_lb!YM7Mlz{*N%XFOJ$*wGW%*p1mT@^L~%6+kE}QE~tWwANH^=;c*9`jiQKoXYY24 zZ+97iCt8}wX<$L_qRf^rzTqOkO9J(%{0W@plqS1=`NCbl5bREW5y;!l#hJ^^FHG-{ zU1z_FllK>H9{*SjW@eTylWHjeN=anq$<|m8kDC>2GEahVle>BuBqxqtNtKlc%JEV~h2)oK z)B^s1P}ThcRX4&P6*y7;PRW1NWhI`E+Md9iTwa;Lhac7nB%cqjgZg9r{*;X z{DFY6*_peYh5L_i^AtY;0iS~PV?ssnCERQPf6!-}Eli0z>XH5JR$uC%KgupT<$$(!#G!qaO zW(&|;5HF%^&KwSc9pG>3XNnU{+zb>rvXhY;lNHQxXb}WQWI;hg7X~2XLndB4^-|)R z$2xEXK}Hr*|08rRAAx;2jCx7N@-!=^JOc-X2#JP{l&z6PKE#e0ZsGu~H8J ztnq^3i76e^c$P4oi)_h@=Su(!hV(Df!X7K9u)IZQ;Xf?AyP3~+9THFo+RHm8f%6z& zsCu{^7xyvl%gw8?eK9hy>r$~B_|T`5SF84LTTgdzt;<;K@&i}ueUtSF`(_d20Q_gw zhgM~v*M|6@x9bz{eBuECo2qv?4=)$twH{u8{IvLb!Og3gkI99MS9AYXV`2x0u%ibL zdf3$%F*&58Jm?v8k#jV|HeV4CFuXV779GJc@Q!B09X%$lnbZaEjObdU+qY##cQ!-o z6kt}k(u1WDuXHvoOr`-BhmM%H>^o`Kin}&9ar_v_=%-^Row(85UxB&RFv0NyH^nh6 zi>l$J&MqTOZCPJXbi|~&O*)C{Se#1*L3W~}HRmy1$y64pJ_0DaW;(RfnV+&pPQUiJ>nMv^`s zgf8ij@}wVT#6$|)2^JXwXa>N(x$Ub`EL~YRs_Bk^cbYrW1OewxPqq6qT32OaI4E#9 zv&nykH?x>B!e~Nf6Z<+V%aFZH$76>W*VnNw`NflkIh0y3eW?Y5aWFM|>Y}489!8)* z4b0b4jC)0I4UN`_B`V2+SR5?wiHUT)wgG}Ov!k#nwq%pQv=N0sz^KDk)GS!T92b}U z?ji^LC(TTNemVSEq`(mCEQsT>BL`y{iK?VSriM74&KiW?!t&;p$7a@sJzChx!hM+9 z?TOox)c)24e|^@&%w>Ba$(Ont>o-H~3dlvr>-3_lp7+$ogL=`MF(;!#Sq`AaeBKVZ z?fij-T7>N;7x!ZvbJ=CK$7M&YQT!XhNO&yoN7e939+;0r$?lY{-p-VK`JmqPXBgS< zr$4&^{Eg<Gm2dUw1+=`eqxNAy5fTWcoV2N z)sa&kxwWxhl~Q~SDQ;v#M#(q-`&ZoFLjc(`umFj=Qx9@4=YoYP^wEmH9-`ZZOu`m2rtVo59D*G!GDqH=p zSgA=vEf(ypuySvs%)Q_ba>@Rgc6l(N)PmSc`M&kqpUjBZn=(6JUVT>t=p07*naRPLQtaRcxw zze&K~N%`~EdrRLg=?(mMOg-;+I(aGe;r$2v{eFZ^Qs7%bz<2WM1p6ukK~f+QkaS4N zu>3n{@~BMt5ECHaA=SZ8c$O^}(qH`br1FK1;3_HbjH=|$86~})t)y4qFA@a#GR5|{ zVS>yZ0sl!5VO>7zb~i$Ra4_dwJR-bx0TklO{q>{I z%$Sv%uAF3P#VO+#;}x*g$i3L4*wkSB;tC_M2CqU3$g*Rb{HIvK*hxmXU=tKba_Y?Z zfqS>`TXW`-uspTuUa9sCg9x4LiF3hJ67v%Lr`VTc2Os59Zcqo|f$hq<>^BhRBkd9R zszZDqumnH97yy5O!jWAaIyL#|Z%n+V3g%;rwu?n_4hqz=OAQzlV&zJUuk_^BNIB8s zbHE(tQr_iG5AU>~V}u2$V;u z6E4kog)^wZvgc4Wyd?8c`O8BIbE`2@Fnit1>Oy`D_0!WE6Fj=Sx0W4y*|Sp+=R}@Y zV@5ff|FT=zk}VJce@{<@Jlyio?fac&{K$WQJpXuk2FX1?F`jSzv|O)O=}MyXSiLBw zmo|=AwrIU%cblgrJ7u%&_VV$0vw2)^fQNuTN%)O2mVKeHMFW+g@b)u^XnQ7wW=)Gr*s;Oa%W8=PdLyn!DH>E!YftFn8I_Px?dy1bb8a zVPX#G617KjduA|kMAdC@(%kf!J7Q5y)PPVj&IwYE#>RjyOj$6budlKe%xGo}rrHn` zHPP76Own#fi`$`grx>@20hWT@(qulEQxsHSdRyWJ9~7PQk=CCQCC6+x!sc?UV&nL> z>$4DyFY$kXUC*aHDVZPafX5sW?)BL4n3*ChVaWQ}^c{o$bjJk~vyG6!vPTobu`|-c zq2}Ya_lD&^omrn)*`J+v0fGy5;sLt7c47pmUG*l? z+Iw=vh8b9y-VNqgV8jR3OvcI;@DWsplRSV6+2rGj2dmd2@^O;|;b9X1-&GeUpW^&i z?6ko)KbL^Np>{r)UkvryKx+*2N}rI&l-q$>8#*NleokfJ)JJY(=$@19FuD!J!Mr{W z>Ks{<8EjW0-mx;@#e{l)mw~_d2=&MKvz7b0)+_{aHFEiF5>UDW!;LAzRr0wwd>O_! zVqq7$cdAUxuoS7nt=9LWb#>Z9j3D32LCSizOxoa2D!5hBDKY+9WJ z_`GUN{L6XNn({uAK`Ca0&w0g34+sYh`Hp1G3w&!Hm7B+9P+g-~&l@V#a{L1Pm8*?P ztx>6x|LTpcE?8sRhI&2+ksOw`u$U))%2@e&RNQ%m!Vd>b!pP_1?gYK%+{RjZ`MN~T z3CZn>?Q9V+7tcshqMvQ|lB+n9IYf#R8rvR|@1j>%An)y7G55yi5}ll_@FpMW?fsd$ zAuBlxVo`R<1M~G$;@xiX*RO?~{6K+k_shTSm1GlRS!l1oIgu#0Vm`jZC`2gaS|ktU z7<5$5aR<~zN2er4u`a&O3XA@n<~~{R{|fniqW)JAA8z@>F)p=2wQrvn|L#C!zx~p?eXhKv zE=Zz%PyLUy_in$)UDN`rz&_$2wZO^;oDB$gv}Hlqr{l_}!}8}7BH&kG=m|$kac7hX zze+qJ)wr|DE>V@Vx(6aG3GIm+_mBx9d5%a`=uqJAjPS?zlc=}N2&PQ9#lG4>sri@w zCr)I5CYg_{xm~9mSO6Ua54!&kZ^L%L03b3A7zpEP?Gx-sggO5uFE1p#CkljQz9)7H zVavGnbMW{m;0Ti=>EC+FGl-YZFRSn0SBwt)&U6s=lcFD45D?V(MBH4a-fHD$6y7|M z13mG{no*Lc1M3kZ0v8~s2;cqjEJ(-!9#{cXmr(G-#1W679rXkSp(FqW z;?BD@^RFh(?Tl?mSYJl5u2h$$rzcD(ZjP<`z`(~n*sd}#t3$io!-u{_>=Pmc?KQx8 z1G_P>S&y*KyMF*8KK*MWtD@MovDd^0I^i#F&Jz&cWgc>8W*4A9Jz><{BIc-PK)@T5 zbai| zJ=k>V-h&YxZYtht%7mVj`P!6$Q{7Lg1V^bB(xl*B=v{+<9@~;P`KK7OiKr~ zF92mgn!gPp#eqi^@YX`(*LV3&vo)&eGU+e>Wc`Ncw;PE5_AY2y*JX1 zl|EPru5jv+|7Kp|#7iqm^OTEhy~)V@#DML^Y^9Mdou?%T6p~#+c)>;F6?1y zJ*ZB1>U8In0DCiwbJZM9?cv-4dy$ivLE=p)cdW$?{$?J7c3i zWt85S87c%#&GG06_CnW>OxFVoI?R3MA~+bM?FV+iZpiqDca*L2l9)Z?q67eKxW4X2 zfY+Jhk4+y;JeHQ$u!pJFo_Y5y2=7SKNT)*tbn&LOfq)b1Mu8cZeeDX@+}F-o^muyy zFuP<8Wa8a*e|j&y(OS|QgI;e&JudD>d|hotYYkZZkBxnM(`#mOuzzC<5A3S91GP1r z-GCAMb3B|x2>$D{wT3iUTU-s;G5ku=n=+n{jONHVAKUejSyi0M(1w+8PuQnRw@MbY z>$u-jD3x7|-P?J14VY8Irtlw#ssXf`hE*k~D&F-p0RQ3dS7nq-G{;-yL{pcEaXllx zXOu|90?rDttf5B0vc{CSRu^b1j|p=nC8Bp&tN^x~MAZ3cl>JHqkz246tBMLp@$c2W zTgOvOc=C$kS0=u|A2q-089r)o|LJ%2Xu$llXy!x=$Z?}H#=!D`RksLO0qRxQ$Dvkl)C5s;m@s(<02C{nfKvPd$8*Amlo-M*q8 zg|s}hZksKUuZtQ-3Y4%sDs$U)BAu)Y*!?OnN3_}%sM-Qn4tWJx{K;P8nFX}vn%o|t zjmHQqV$My9f?`{GgB5@IcJ_-r-7jCy-cZ&OsSn5RW#%x_$E`4^rU!gTn9P2>$TOd0RzuzaSteTHt}WgGKgxN6C;Z$jw6_ph$+Y z>jTlSBw8Sw(0n@Pra&i!z%QZ#=GTMEz!iQws{v1QIHMJK%{j$_1<8f<_T~|RoaC>4 zUtTqpzgI^vCVZ5nxlM4JsapP!?r4UP|S27J}MMgh_bOf4-nlT0H8W?Gmm0wUDRCt6{?h_b04t3D$F zReFT+Rh#J-3>m>9SR5Duy~93P%?MXkvLbUx z(yfsN7x5+FZx&q4<4ZjQ_FWs< zm65_OWV`}DS<8G5B9wKGw?-z(7V)(f-ExdEw(#9xCN~_TmXX{Waa#|24qhf+V?1$F zdDV33j=fk7(n&z?tr9HhX|>aio3NFql#n-Sv>Z6;otd7KWpU+<^Aj&{+SD_^A6T#nG}N+&cz*G^ zfT1A2j*~s$Ucw=y;&)7omO6h8Sb@mH%|H|fY+9HlDlx_quw6r_u>%0>Cam1 zpF3qE-98v`)>am`!jANe4<*izoz`Yx&2u2&$ha8l&AxsyG#VqbIU@F9QX3lhORtXI z>c}e(+!}>FuROA=Bi!$K&9QSncAFFD3a@1z-p+%o8O*<$M;8-f+_~zV1F&XMQy8nw zg87k(-z9$Zg$6^hqlq1M4IjHMr#_gE1PP#=Md!pvoFpKwP5hclwj&4%domGxBx{Ga~S&YRWd76&Ul)fNH&r+;6L z=ofxZCj0+s5ckW@+5dWVzy9~W|NO_$I*?p0`_bWBc(+HA1Esy+tGwT@yb~j|ak27d zhtMWOSO%z3wA-)zMrfn`x`R{60oWynfldgEI~25j%cVO3N9=lcP@%TRGtlICP$2Dn zK1wk~%z=8MepNmI_zo){Pb!~|wxMrdPisFZ2k-~mCH#?5q{ML(Xr5!=@itjiP){}w z*{Pzj&q%n&fp|jqOVso71dbefNH8?2S;QBdAGB1g@1E9oNQVuKG65UazkxnwlNc(D zg$XVa*Ov1i6+6NiMLXK7KNk}s;NjmWP@KQ{_#ehMB!381Kp-IBnd8cPkpKyl3s877pNvt4 zuW2IxlkEsc_HDm!djGJ}wF6tOoaLjxd8QD!c?{?XekRO`G3HN{zwmJb1SBSIo}DG; z&vv%K#9eOe)yiD~0Wp81i1_pzK0PJRPoT#5=_O$87p@ zgxIv`i0oS2d@vb{*5OLh5nXC1IVIHOm|2o2IGcmha)lmb&VidCxurq{i?Yxp0OYMW zAtkJH${A4NS}V+8;AIS9ydIn(1%P5cv~g|Gz|HWCeaSGuyk{`=^?~lxxN9bNT6C{r z9^K*tT6M3c-sQwSpSS=%`4D$5CSH@9E-0`zG;wEN9hz0)JWwDE2w0{k$QJ%HFIe!8 zStIugA75-8&F^SITMvL}w_0$u2(NTd9ksnnopxoWH#Tf_Wv(#ZnCX?+jk%p)i(!6i zWm3H*Ynj=twYnk{0{&7$A+BE!I(F8T@V>E^s^Yp;#Kz!12JkIMe%hn+H|y9@$IZZh zT~Prg>W;-$So$$wb~fuivaC;Pg)9=p%Hc7iGs$GhGDw%fa>?xSC5SMw!zC~s0C%Uy zEi)pyG8QmuXwkWrfe6nzAsS*+7UdN!;yc_S5dPx6qiwz7@r5(Xx& z#OIr(3~M9y(T8jKffGiy%uO%!z`-6LZUu=G1eB#iz9*8R6zeX4FQ77KhYLGk9~Tz! zj;21QYLzmT~LiS3xNs|N3?Q4Ed^V*tsqdNE-#Qo9* zlOfn5h$&f9N~8}nzB6~KwAGndw~7VYqfIyxa7S}y5K~e$I%5-)E?aMdeL;jeSg;Ki zoaoGq0p^Yt;Jh}*!K|e)4)S4wQSVGNoabHz1mopPId{b*{0+1wSWvLtD#u9 zqicZq6d<5i9sA{>QpOe%_7SAchZLvdNbe##(|dp*KU=JlK{j&3;mw~Odn62jzw z2p<;@pg<#>I?>FFR3}pGXl$}(J{}8##AB~PkhAatScb=f&*o86_3CO+Qb2Ev>ibLK zQ==+Zd^&j*AMgjrt1`APsDb%Ngnk*!H;EdP2-ja%qXx+@%8~S9itFJe;Xb)%Mnm>? z@~8Z%QHP$pk;WSUcB(8%QQTsU)o}}zCit%)^I{!iy@1Wi{{aCjH8%3f=XqO&|J?uI z|8~T^`0;?DZ~wgy2>9&;@b}9%R?hqHegF9{&%G7Fk0M_VXXLYe5(b5+T#6I_>~Fcd zb}QZeWw{Xe_Mq}6UlDKSJ4tK!eZTlY+?|YI6Lt~S0aliU_Db(C7tVWsRC~ofYJQ(i zY9EiQAC3Wh)z7DOY<@V#O6~I*LoL5Dy_9qUp4cOD)d)0nG76BDY6r}0s2o=sN6b;! z>U=r>fe4xU@QQtTl-mK%BmPjvy^;3v42C_T59Z}>@^nC@e9Vz3r@e1f{ut=SO<5tH z68kE|(-YQ%{CHUYd|IXWC-yrNfysZwIFcV7zPWJ|`D@erIX?%*SNXSRz#y~->9 zm8pi}jXHkS|M;X;YB--0g7vezd32Z0X1c@!ofXcoftet}Y~wA#f@_bxL&%h%#@x&7FIVnzg_C#; zC8P!1wegp0u5XwWEPi1ewlR~;N*G|LQxwFwqB0j{i*Tj-j02kotBFq<19(mRbm+#I z^qoXLH*gqNOn@T@k`UQ8 zqk)rgFI|M`13rwbtSuhTjvjVR?8>@Ue5VI;OxzI}>_HFP*wi`iT1z}p$H+QHbZ;a) zKrRCpbI(eUw#k7geTcp+axpuh{&#XUDb@IrCUCk`FHAisfGBl%%8ncG2g z8vJ5#nj`m;o$K5?eC6wYPY*_RI5Y#rq4yj>+=kg%%L2@$H)2hCRTQ7 zB>=%o%7LqEj_I|XUXlf4Qs65Q{_obZm$%~H?YeZxg8YDeLoXf&t08b1nB{@DVnM*D z*dgxk85?ScDLE{R++^v+^u_z>lDz>FhK)Mn1H~@WO94Z; zTL6*cXK`;y5gF2LbRncG9^tsj0yIfekGP_Wx z0w^#7=XbCe@{;(xF{AX{AP!RYIrOt6%vM3Rj8;oOPGAvkY@*bQBM>St60gD|#Tp*i zE+Y%F$p#yJu$~LJHq5|(AV0$iG$+vA5MZZ!z!bW4%^+bmI)N|L9DMEh;2YD64c0bi zYi8E#c0y3m6kpf|+v$#VkNsL0{73!oegdjv?s+bBwWoetyqxz_APy@~-T{5a7REca zkhWo%v?un1D$d-6JDj_U?hfX*q>q67oNk^cOUJPb_-nJ-G)Ra>lwofh`);D&lit98 zWTqR%V*f*oBNKBrE$p-H_4UZO7LV{Py{n5`z~b1v8R1|954-^>g15%@9mWw$W8Mj& z4mE$IIb+?QI)uNxR=J8dfh@?k(E@M-`0!RUhuULfyM#X-F9@v=?_>m$nBsR52&m&u ziH*YV<^lfhE{Im{mFitl1$6JHcS$E`|3EdjfcoP18a>mY{GCPa1iem9xHRLi*aJyDHtt=OTs4Bg`!`wyu5SC4*@2D z!SKn@7&*;}R~gyWiC?Gk=TsGTS_6&M08$h092CWrUgmRL%~-AJejfBJ-fa>GHUD0V z@FB(!WEdklqML<}8_|yL_f6Kl8tG)Ou1OBt666BLuHQKLcJ5!#Lb{km3#?B;pUn0Z zQBX|b99Ek~)hWrZF%5BKbLwBr!}Dp>n1cWOCaxbJcRRXNKPZ2ohmo15@3x5uwBKbD6TsYCdM9P^C|~693`aYq62_ipc~a_0 z^$RQ~q%F17K6B&*z(<|$xccb?RtNTd7Wn(j!ix3JK$AiPL;}Y8#=y1aL8-A{60c>k zxm&D*`F0ER#?ngMJS;bIK$KCEUL~7#kKup~dT&dO{CE~C5q!ZJc25a^QbMIFWGP^G zMi>GHk@f_Sa@4~CAgA2>%!5yApI*hb90Btb4N8E-HIeSbS4%st(0dD#`x^p&I06~d zy(`SO)d=7174YWB!zugaCORVCE*R6 zRH%*_!9V6vvY@{;vzB1EwfFcKJU%neLsURuU;N`cMml!s+x^a9!Oe@iCi8(Eo#nH= z+Gxqj%wUhEP@t6%2PqJ)9&PH2m^0qaU*Y%-&fu;=ip${f$$xxu*UYpCL6!u^jhC%K zigvnmGKS(=>DtaR;Gmf-jdZD}D~+LbDN{rIcphZ*D&qSuT)}`B`1&6U4uU*-4)wo* z3pgWkb?mHdh8-(mC<&D+samYZca+39VeLA0tq5^ni^=sOyfYKJIE~~^Pwq*0ptr2W zO&)nmj!Zbw13sK*zz3Emx6~1nXN|a}C3hMhp7+MM%bzaqmSJ!g4!gl+X#5zx)gmdO z9N+>jr{RU_U5uHri;wua;#?2`T`A+@UQ7bU@hDb(4CZqyL#sJ)Yb^5T;22;c?)Yz~ z-u>Kr&;rGZCpI&qbBDDWWP~sm)RlCcRmWSky%mV<)?VFM*_D~yIICMnu#c0az~4#? zjJUcoA|j)KRooBbC*SJ(8Vm(5Zn2EX$Gf47_#2p2H&7`Qf6Gb9G zN)~yT=zgmE*@9!F`LP*9tXS?xE|5Z6(KtSvrctDf#n@XnbEC*&vB}5|$f;mERy+5o z3)+4xk$jm4+ziu&>&=~n)hPKThmpy=AUw?r=j_54Xl^t$gBhzLONNKZzI>_`OaOca zOEXSPd@s`Ns~D`>&7Lm0w{-yn@;ajO2@!35aXQRyUYtJeL*YOC&@pj%5i+=y-mC}b0A3VsUPQscR9 zM>hEHa-?4k+2rPiTHxXa2sotZbt`GY#6F&Z65y?BUym&^;+Ua$cWh?J+L=92spjEj zg8u-)pn<97&D=<3?dT8)I3q~|l-WMS2@*F79iOFhyolv>>>$!zUxYw5w!ypCnY;JW z{s-j2_K(!#Su9f!(CRQ^60a2WNfsm@Pi-JzPYURCr%p#T@wNc|FzHT>wn{i|Df%sw zph4C8)nJ~hhW8VbFLMNfqyhNIek9AB)Vm@GS|GXWDR1!d zo5PyoR(azG;Bx^|4SY(deogVu!C12ZA070f&M4FY*Y0LyzV;$w>m!P4l-9Z$3GYEq z+PnpguBZN`=zN&-U@c&MP<%qp{X5Qu8jYaM&(Gj~fqUQ-doQQ{`OH6``i)ssS3MA( z#065@1NoJSh7lHPs>e=@D(g?-vko70c+>?5avlNx@DX>#qEykj%CJT1i&H#BfQuZl z8K6I9pLZ(0__5+grkcJqE)PM3SY%@^wnN~^Jkz|$2#HXjuv|X_AXeE&6|_gTBM378 zgQN6Og%t^o)C<|^Rpi4W_^(#4H7}|S@S<4#9J`JyRIPSSOP@~ot^e+*LIrO3?9FZg zH1_Kr_>alCzrH4Iz~0lVSbV=v@*{BU7nwiH62z3FJ{%V5Gz2jmmcJY`ks_~Ry|>LC zt?r)I33Dg8$FNRGNx+WiBM5%X3PQixc}ix8ohTTra#uESly zsT@SUo(XTAR=){q>=YXWi(+%9(EQ2>ye8qVjInW0t?yTwht+ei;2u|MRG0{M^_8^DRsBlkXp(WV&6|U?rUHiLFbI6^>~apb6-8Y6)E>EPF^w- z@swA7LgW%fEw>uUk5U{d4df^K+*YfjZYNIR+yntjI1J-Q$q{~k%;Vo46i9WsESl#6 zi@iVO!5`)1VjyNta4J0SXW}4!F)E+rlJHyrxX&QGJP4Ej=4t@d)`cL8=-aG;dgC~g;#3Dd#{j^p7mX9!EU-}3T)R&J& zw$_uS4kAof{~uv*!rZo*f9d9X&CLCGCvluOPTY>Im9n){qPXunc5sp0-8J8M&U0Q+ z?*E;-b*tV&fgp&DlC3<4=Vzub zwvzWR=#gxHwEjBOHd_T=}tA3v7`18GP+k%^Zw(Ue^Cl=+D z-DJ~>bYCwT2!Vo(?fpzFD25YeWn?of;5PCbrqG@lPTW=s{s?h10z!l!V^LogdJB9s zGV0@XeZ+O|ZYLDIyPm}Ngu!jK&h<38o$23h0@BT(y1V%n_rz6^Zy>+)cDB8o5Rr2= z%`f#dtjBa}uM~PX=GhkqB(?Gv1qwXx#phiVK4z>>kk#9X{1)MTqCh?Le<9o_)k8o3 zou_Hrg{cSecAOORw44_EAy;XSAeZhN>-;G$>(TaZwYfL6-A8+j(N%f1C@_VgKwMx! zAu}t+?Rs~+Mm`kq;Rr7`TH<+>LM^#onhTdjpuqc8{*>%n$-WtvLi1L#?YM4BKizeb zoj_2dmE`1z2oOp4DJJB6P*P_p^4sjgR@K^TA}-Sa!-$3M(_W(12Fa|1xcG z0sL)fX_(UsXPL00xr6y8Nj8andt0Sl{fT06X8mO`z|W04v#3AM+@mk;qJDvW!m>84 zX!J5^jWrXuW|?l8nrYAC$Kjg%*5T@L6xBym8W#nM`EEz4%bldx11(Q(;XkTTUiYA@ zTZ&UI#W#1b9UrXsSIx=#X-sXD<`fcYh=)iYiSR~8g2kl<+}4?0b%~I>3DDz&k1Ngh zLI~aLvNQYA((=V+d+C|^mlhqXuQcd>S(J$a=^PvfneWSDJjN4A^IYxEVx`gjw50*hs(OaYlLd6Z|%xQa*dxW3QY88u0MJ4lep?^ zn4R}ijk7`e71=N48FB==-Rl3qBz>49PYd#A8}pgvzJhQt=u7hvsckV|Tuzr>50ZCu((4h`N z3)Fm2`+z?R7(!}TJe2!)li@g1W zjQ2J;$hLQbya#K3BsR`wE>`j{#y*cKTJAN_P#9_z^T^s5{Dig2%vlw9_ovCpaAt~n z1vQkp5T$nr*JC(35PCEJ`CS4ZgA07b5F`G1{9k{b{8yk!`@erD`0wa%UjJ_#z^S3| zup-hcH;I41y==|MDt+~ottL%qC_N+0?gn+vVVxExhIez}PP%IVv z{qx_&zy5bh$(TwV1OZ?E6+i!L{cQ3R^KDT6#^S%t%Y653Qhu9mUM9s}v@zbijEnt< z`W+&VJ-C_fCs?|BTw@fzm(}hi{`O7ShxZ5hy{ri+3?YW!R$C2iUu*6cy5(=5mxjxw zXfh|IcOnEVpGTYpDHo!^QSmGgY)9gZZAaL#DxTJ5GuqY{n0%dDLT`Ya>;Thx<%HS`bq0uWqZ z=((RT!T2iy-55O={YdwK+euoVW{r8)UXh_f=1LBQ^QEA)?R##`B=9+tw*{ZlLeeIXqrrrt^~-8I)mE7Gt6M+v|J<2WgXX-@W!Zr-+rd0KGhZ?b(B z2vVR?&lqXG$af^-B)hIZ-a$~z^<~|=zZ@_+NAVTs-I?~7nFFTv_112+=66Cy(J)Rl zyUz8Coti!uc|#oYIn^#K-hbFwnv>NGhK?fQZZ?+r!`u-s=1x-6ICyeXE=TcKVfPgD)Wv_KEvFkYt#Z`v#ah5OTnYR1M-dHH z=;B5|unZwEV9@8&Kg3VR<|ISXhtK2)lOrMogzaj`ey2nbek6`iZ=oQ5U^`VdiB>x@ z_MM#L2p?e$p8<}i02u{%Kc9P-LKQ+~A=EAcNCtxCIcv91)qfGJ9Ibin*m=OG# z|KJIsf?#H5`qB0)Cbc&B5l7qN-+{n1gDiJKqOSefA3r#>@%uRX`v+HYIY8lm zy(ifvg!&2W&;>2{{p~}AeSsr?{72wRTjv(){_Z`7;l00(N~PoQOnwM>oH7NXIq|5AX z|D-0$e_E!kb^b#q-F35FFWL14f}+5DyV!{B_RIY@qWzvBKbH*rclPi9oxHpV3eg4s z`S1AUUm)QA+v@pW%l*G*TM!WVE5W|W=4F(FeSN`S@!U(dy<{Uw8)TcI?s?^ITE0xt z1)mp!$ntr<`L+`9?OqnU{p$Ijt7oia#J`tsBElshhPIxCiTiItK!m`p$ZrQ<8ve99 z?WGfE-MH)|+jd;E<83S2Hlxi`tQ&msxY|B0x0;F%^bC5BBb=iJTGD$J0uDhbyqf43@-O39Ps1ic{d4qcWB$uu;h4nNZohUpB1}+2|9|yQ z^Jc=+v#U2}`cGZqR3x0*==x0cjSxn;8|OQHHNISVHz|6_zKvbGYb51Ew68~-+f{MD zMgqKEZg1ARn^h?a3=Xd-@Yb^5)iS?Yl>))rXoqmPBt|e0A=CBtYE_5=Z=LP?5bp^1 zx~H~*zpU%LA1&#xH$#z}D}f6H$BEOK^Md-} zsdHJJ(SjV9q*`uL+>8+vMSjIlXRS>w5&t^N>}eJ^XIW#CI!!_Rm(@oQ-oq#rmfepM zn2(S?JGnHmh(rluxLfEU7VTYQo31f`LA~f}XK~eAU-s5tyQ{DL=%$}s^`pyfs5ib6 z6o#_oO#3U!5?LDLv;EawP!Oq7&Wv!7wi&&}Z69y&K)1TUJESa{Q$x5n%KJnJoz-aP8-Hor((v#5>J4GPnk zag_~-hAgLXw#tjR$g*-1mqnbFabB!)Az(aD^6^URWTB7nJdUGWq$u($t2)wo>E$Se zq|U7LZ6;k&;Ed4_cTT|W&O$G7oST!VH5F2m6!JJ;p{-UD;Hou^sIBd4I}L|OYUW{t zKQ6WtD5H-G`#8HWR=0!2b#I}Cm;J>hEh5*~16{yXeXMU`rSJN77z?oK)2Kd;A85Co z3g6vgF~@co=QmURLr5Gm$Nz_rr9r%k{+o$h=k)Sv%n9l1Kzm7ljh8x3%3)|(L}YNT zcOU0T-A|#SJ0`*{Id|WWC6Wk2g(OzhhYn%;;?bFAP zL&?BC?yxo+5bzR<83plf3Sr;Ra+*?(Nl)e!SRuxHaUpu0@BJ(j1-2F$U;Q#|&tgAu zrNbppT;Y+aze@DQiCsP%Q3ZzLBQ7}N;%X;UA^BW;|Jh`7WC4uT&aDoLmXOCFr&E^y zm&7x?;#?EO$X)`a=>U$-E{*^=9Zc;=2V*l@Z0AF| z@DYM{0d0eL$&7|pu6;SuYBi1@6%(4&%Zt+sp&=`Pl1!QTcxnal#G>O#?fo$rA#^ZF zcpTM!0WU7z`ouNFe{Z2f^IrvjK0%wp_>$!CGGq9&m}mM4I#!5v3#Nx~=rzMubM`7b1YoV@*1a~L14 zcR0;oKc69gzH+dYyg++D@e@M!3p4r@dZ7*9ARLDDj-M_2IhBNMTCBC~=Pxd-^9L&L znJExaQ1c|eCdCh(q}1(G6xdC-{T%&lTt3gX-*9iY`}q#!!t)I=e7gG*$)}h5=;dF_ z?YH?xu=uaJ*54xjG2MO}6?-(fd_OK;2FyR>(&l>&k~Uz$O`o8&{ixgzwMUop75vS& z&r|mM!rpf{%e>rJYuvreH#?ioKDNz^0D{Q2TpUwsYu!XlR(8@YNu5#Iii=k4d7{mV zr%33Q3+C>o=y`Woz#y7H@Fw73C~Ja;8{aqt@OqxzE)kRNXKYGz(g7<;A{Nf}6WgiL zwoCqLm0aA4ipNFvw94G#ws=@%k1mYdSeIm?0D?|NnHNGv3y1O5l&%{F!C(ZtMTfZ% zQLt*Wo8eGHjVO^evJ;}P!>FW0J2LcMqgFGem|X#<8*eG3EIt;RWV-TuQgms&Q5ev- z{ZOSP+w{_XGZH#)n#s1lD(dm(ZY|Wq+db%l`}-Id_*zi7-rZ?ov_}!t4M5Zwi4?_- zh<~@yHbe(%db4JsHg&fu5Zgq7QPIovctF&qt{6dqxWoIW$Xz{<19KflS0H7?AE(=S zu~}|+D;Hwah_|~1A)!=_?onT`sB0ICoT-j>ncvRS`xO*;zbr!W!uoux>7BoN>c6ar zMAXk7=u9X9jR2`DlW;-C)FdYncrx2VUX*Q!t!OWD zw9)t3iCxT7B)VFS=_jx$3Six{Dfx zgqF4T;-a(C%td!~*^R!^6?*;Etq3pa11k_*Tn{0_E4L`T!4xJ3!tQW#*`q}bIEb5^ z-nf||v`1Df!1uMYbiI=KWm_|gFDAUx=H!d8uRT9|nto|7PM*Yq6g1IGf#8MK>@KzZ zOM4ce@S;5xMAlt_xjBh-Uw3LVX6`6TW^p!-UFJ|!r!Oc*OkI#JT|~t;DYxlnoA37m z!N?Jo;_O+Hku(G0(Hf3S>bzW#3(VAIv`Mda=^P3~j|3Bom;%xBnD9y}Am)8y3W>Jt zEi&Q-r!oD$$1!=n0znIYsDP8Gi4YhC@e)&bylS&@^f+4TOS~OY;Qe;6GAl3c23)$U zK84?}hpVr><>f#x=l4jntD6yj;CB>?r>*wAvo7?XD&*c?I#%z(;+&XCGg_#B6oS7x zMcTz=c&znVa*y+ywO1RVUT>ZEqj;KzwwAeAP)k}10s%ugdiMtszzO@Z+Au#GW@p3n zj3>|Rf`3h^Q15Y0DoK4V{zC}VgYn&j3ILZjG0q3c*&s$i9NPsJM2_-PazT=sH*zsb zb-?aINo?ZPD7v=PM}G0R>QTuUTIL+ZAf`{@QSd#>#O2^Pp$-my75^=BJty$cwM;%7 zpMIb&VCa;3PGgBsSr^_qrONK7^H61tio{MC`ICU$-U!{&i)9#?QxBx zGW;>1QjZfV6n+8+&;Amng@rz_zs#ebP6NgYundKo@K2A1->d~SQ99GT_BB<5EFUt(|MKl@rjg<0LKCELe586j$}*ZAA;Yz z4nJe{mD7wn2g{~6#vkPcO4_(u-pn4#AL!LG2AfUPPhM@ZmiOY$u|4d z?peU6v3~yNVkaznneYC&+++SC{%v2TCD5kNYK+Toqw=|*ivLgn2SK7sx5$B-Nwz&L z$+o2Q3JtTJR^wBAa6ig7;z(_Zmz(``3rbd`2>ETb!npW0EVNA$2-@l9(Rl_4eo+bS zt;>gHN%5CR6u8y2zM_=z-ID3O_-4ht#*LZaZjotfiAeO|G>%zz11ppd0y|L@#-;X4 zKJvKS&FrX7GV(?z1(_)Q6z>wOjtNH-0RyHX?*XPMTkBFs(pZsJ{IuFQNkt%1f}x_% z)t1<2QbW=^itQbIYVwx@*pY6Gmra|ELjULmopoprxb*Vueu`oJxTMg`gZ@*mwoPG5 ztZCjBAB#>Bj;HIwg!EO5fkF`vwk%NVk#3vo9N#=D?xM~8YV#0pgo8J_PpnHK=WvQa zz+1g^;z$)HDA)?~5#)DgBD_IRBq*>R@9ObZ+tKxWa=>3FAxBuF5pq)^sslFGIU+0H z8rdP8h+ZIlBJ=jMteh9SQ$;``B5f zZ3;}{vb7eP7Es_a?=Eu+2Ca!u97fROIHJ!DwXBmov=DT6=|YS+wqDrrM(D(#--ct+ zG#ay{F-={{Cw&O2Nd*Tn&7&~^(=TGa{`yOwNKl%(cGqX3y-sx2T9PW>UY<3Vhd!{b z8Qxx=x3t1apSo~^8PZF8>k9suuAFK>9ZC=FD7h3h4#boK6tCY|fSx_5uKNIS87Gl2h=KQ?P%te^CgoaB9wGA)g4tM95Zh?3^SU*kUA=H&j z<7}Da^CVkl$aM>Q=7nHs~lh+VHIb6-b#`IJC5S=CuFx7&`$hyR{03H!q%UZvSA z7LJPoF^kdvgq3SRbK-#(xJrj>Oyuz@)|Vxe9IeHFWY{z(bP&ey9WOO-fvF}FV^xn< ztqH}qHSGx>ql~jyAzwXB*7swK-A7T~aCJY4Z$@tXGo%%`IR49k;!Rfq>rs3^5#dGG za9-?)4j~s3AWa$_C?e*&a4?DBOwWone1r6cd|o|s;{V>yXfnkAmRX8jJ4fp4M>MFU z+H;Z*)^R|<=3LLK`qz7+(?wzVKKNpO*dRd1H}0=^{{pKNo9a<4%Yd zyg-c1MR>JgYJ5!3`Uxq({e<};w(^;_HcHPmhRj?z@8pYq$->7;a4=H+stL}q<$dcS z`2hi+W_lJ{H|VGtH&Mrv<{S|0uJr7blI|9lAA)cN(z(5az{RN#RjHAnz>ymP#|Q`C zf4-nniG{Zh$DVhmT0t06+-Z&6kzm3CRhpv7{RJw89g+R;_OIiR)9Rc3$b@5Q^XZsBXz#}-A@WZg2D*vKL~qR305vbK7}2ty zS2OdS!mJ-pF}pv)aIEt&e2P)~;HXFD4UyR5nm>b^D;L-j;2#bRFDf_ zV|&4$jDQ~n9JOC81j4v*42<}Wm@}PwfE!Me>UYlV2r+OdVUW$Mq<8wGvn8sqHk+Fa zC!>Tg!2ph7dB8+8IS0vk=DQ*Y$(h>%4nla06YN?Wvi}K!#OJX-R&tQ*?6;o$^h%Z= zag9C00UyTc&q#402j#yl_w)#77Tx#w%_oGqAoZE;jvYyPYWO?lw{b+$4AGVV;&BM6 z)J3zB$0a4O&yNt{Wq8ZKtEw+ZRpf=M4fg%UZ}Ob&{D=Nmseq>qc2GDSklz6T9Tkon+U`%6Po@cvnv*&N4VmB%_ zqCLGkD!vW0CM)Cry8Q2USUwNY=S&#IvxUYz385OA$(ZkCn_dPE4vKF=My)U`U%G{7 ziWhSUn5d12O;P)_J{#GzlA@LDM1D^O2%stg?;h8s2K44z{ypMT`LGh_rFCK7TolNX zTm9o(pvF0FObfTDXs-ex{HF~fBDNwy61lXxolnZ=j%;XpSLEMD*=C&W zCqi4FuMm(tWdL_?jcu!qU|B|_t?2mMNQR;xAeH(uI+#_^@W?X0Ujl!Ey!sr-qlzJ? zhWp$m>A@r&WKI`86z@WZqT8idb1&SXCXT!DwrHojrBLFU>e=XC4!r9a#kjEH3(DAL zn*#cZE2&kz80r7utEh38l zNH>PhFqhE+*J+bo6rFTO;*xGTWgQ`Bk<~DOOY@~dPGUg-)XKZ?C4VW4)(`y zmgya_iQ3&(GuJa-BHudtQh|o#OdS`Y+t&P zWE*fTrLXiTL600zDst0Z=iT*2w@=`2k+qg-%U*C_KNVy`ii8i=`6Pw&h92XD2ttd9 zdaIzY`HJ>{y0^8LuDIsH;E&wJvnOubh2|fo8PRy5XAHqu8LkP9Ec)iKSWJ=`w#xJfPX(-!rFFS;T>8sL5b@?vPuxgb^q*L0?)IraLI z)mC4+BERUO8`at?)I;c+D9L;0iNcGQ}|eypja}T z(?25&vEcnYX|GECqWF)m=Nz3^nv**fB_xGVSHC35R}Y`m3QdJ&+GdT!-sFNr4H|{( zaTLRMmOL%Re|ic{9`tmI?La06AJLIa^4bXD@O+q_iu1;~2=Z(MO`eT%=ZGZKd@(7W zJNe^+Q;01JreA40nO{xxY!f?8B;p^S&SDhZkK_7yT^~mt@x$1m5i@!lv}Q@47z{mn zrGI>eoc`gyAb%d!j8>H#734R9(yYOdz6u?lgbY>^DMGR0qZ-*HP9GsbMDPS!oxxSM zWj~+}(tzX-mpd`#)Yv$&agY$QmQ7(p60I7%uQQsoR>yE+1gu{E=H%Jme2~98rQ<+> z=j;pCBpi^LQ}6efCTYQ_4V0#LKc1N3PFc>HCqS@MJrFo`oG5vpDZ>1xx6C+Y;Rk=@ zPrnP~eMayT+Hx>{Ddr3C$2w?%paXfPN1QKYbEKCL$-8671OEF=oLMDq1@y6qMJd4$ zyH@4KqU{B=a!Txxu@53d^Q+dZ5@4Mt@k)pA7L4TzHBc8mDY#bYbGWf##&~Cd`|$W$S)53x2*~eLw+UtUzk~L z;XjLio-ddYH1N_(n8H%jf3ZZTA#CdB^!b<+n;8L!FY9NABtHMkHE~{+yJyXym2QY` z6iI+ADO#qj>K#pH5kc{hp~Gx5$Za?Z1e1a~c?L2ImSr;%#^o)#rBPpyN_Ea?7TXC8 zpVnBGO~=XgomAVTmdcietL+0?pi5o@f5a?4@F@pDuCzgbI0Q0=?Fc1XNO26~RNhUv z$Xrq~c>@S;xF$xxhh(P#1+MUUZ-BPFL9p=H2j&z1Vf$JU3`^?qj+a8fScq1jEb8pE zeVC8hf!fPsx~r3-k&6`BmzKx5E{o`y>+dT@AZfChQL;&!>c zp65XY)cNY*!*{9+^0cag5cGU9Fzt!jNj-L%@lmR~BhuY8&jSVOtyu;UqUWXTx))`- zPyS zedKYTKF;U|BkaTV8#C2y?=YCZpX9fqKopUj${>T-AEXzN3{1<_%$FS5uKKH5XUbGi*jZc- z)*L`@c{7UcM$zLWZK3O=W9l7dqB<((Y>K4Flg&0RfWLH$?TZ}fz{*uxuClELv72ty zh*J!`6(X={lF#CFnqyLXQk$e3eXR4ope`8 zZ<&b3^tkol?24-qr3WuZ@s<5wq1zQQ7z}quvIXIHH;x$j;sOGQXJbv1FO&S71m3JR zPH6T67mBD7DqiU$0L=W-!e!d^|Pk!U!MfIerG4W*0zV{AH3+o@SH^2hWDY z7i#^Bi4I%X7d{I_ex=rQqD!I2;41EAq91ugfmQl7ukXW4LL@_B%jgkBFn77rWU$^i z4c1B?s8oATW^1TgZ1Vez2p1Yigc0Vs4SzhL$pKlt8x0TnH-SZiIYG%qxYQPaiB~`B3dP_<{j#1arC!O z0K_|E%DW@ZE5ri6|L=})(EO0H;2WsL%y(=o*2%g$wD~6RA0}o9ZUf+6S&FxQ{6Oel zcsGy}M0L>lelk10aWEX>AAxZwaH2W_;0)Zv=fQKQ+EidlqV#Oe1_Kx1BXrN?_ra2$ zqx25IM>)M$Lgi?2x1D$!GL9?SGlPc6&Je2yK88R&?Al*GRpf`;izj<-_^UZk(l3pD zgiEr-3;9)qG@8JLLE$@dl63&?i{FlobcXWxCtUw9emgpT1;O7jd=D|ENU+EH$nU4M z-@Im6$Nq2akFyIXA1&~#m(Ww~hi<-WCqNr=phlsW;((%)3%s@;U3!8~(Pt&qfzEx^D^xlWij@8VRoMQ{oJdNQjm_MuI%*3=955fy}QUQ_B*14lsG(M86%8Qq7ONXqOnHc6dks( zbPHd3zzBs*B#oC!bX^-oaPzdv9|JF9g6~YjbiBQvr|y1612n*Bk=6y2(cZ<7cdp5& zkLORcM}zzbpo|C#)B(VP$+o^0WQ*;#_sPBndpLI=Sb;$Y(Zi&aBD!e%py z*e{aSGHWgJUR-w8I&3{^ivN<9o2Nf5`8ATFF(tP6a#}?vQzH;#I=P*tkAlTj)>`L} zQymqXrH=gsl0yreWEW#{+P-o~%y{HA%;iX^R~y8&11x@@j$;y;wVWeQuWe^vO#%p} zmILE!{WivWKJhPhs2^%_Hz83*0R1$H+sj-(nASXbPjDV&L(P;Ucb>4^;%dX^R5qdG z79jYGYmo$jO3Mw1ybL9atq6vO7R1Aa&KA@(_AS=#?HN`w+sDQY0H^!?uU7srG!GH| zRgk``-1$hLKyc7WvXw4q{m&a0Tmp7~0CV`!SlcHkb{|f3=LYN?)F>>|xX@ky57#CX z^O^I4UCUAZW`NMi2DS^3$8n-O`6Ub4NZ?lxHe9P}26qxPsrUnucz+B>{$UD%7Y~Bg zub(M6SEZVYkF`xSLJZJfxGd*y?2;R>;JGTb!dFS$7Bn-US#)Ul3$h&QT}6tlLv$TM zmVpifDW0JYI^m}Jl)>@uRYJxwAAcQeTyJSpSi^zp{573dO!>M^1MAP#3?KBCarUe4 z)TkE@JFNff5fyWEf^T1CKYQg|A1BJ#1rBmx&4_vOi&JL+M8{T|3r&HJ-U}4|n|=(Z zTTXP{~A{fSmM(@X%t0|Jud`+chCAFX+MuJQZHD+1OaKW`*#s^=K6ABM%V zwIA`{wwFKm(r0A3>{*V>_>5OuH}KoAxT2)Jzv5c6-EfdfEK?G7${N(zWD6`vL2QK4Hs zAYc?ED+m9@a13}s^9ggFiSQB4sY1gi)-3Rp*{|^88R|`8KDt?$!@7x%P^485gIK&w zH~Yo@Wxiz)8A;V^vSb$f=THz^?;-&f`%zj*mJ*$kJ_NHBJ_eDQM=wN%#4yzd;|hxdhe6?S*P8i4%}CnG+@PQcvy#Rndz>c^)3`oK>m%;>qS^_9?G55 z7p@1Z>plu!Aiwi2zz0f-_J{?n2B{}-WV2uP_sMt5lzTqa$z zXtm9$!TBpbamH7`CWPzy?b5I`2khSC4;-{AuaDjd^k-Mw}Bj91=m!hiHM0 z4zw0H&Cm5k43J?)YHfPIAa3trNwS)o8zuS|!4o6tYk6ZyIAC4qxyXP~z>&O- zFB5Glc9t#(csEalfXzknM{E6tWJR6i_fDC#f_VOi`ocTxyoGfL+p^FFsZ@CY@FlVTp#n45hY?)WOb(lU_ZeC7ozs@l+w2G<0iyqj)kF+d zG(UwLWJaJpfBY2950a?aVm@b7(Rjd|ivx$ceVp2%N-*H!DVkH2Phk1#x6h#>V1SY; z7x+(-3HbPX%Yj@Uvy0z7w$BK@c!S5_jw9HpGF>qiBAn)bG=4#NA%5;44gN%Jo#Oyx zLD;ib3%dOb0#=G(n1+{cKA-z#HGYQY&VxW0j9o9UfbZ`I_mJfP;SdnXmYlzs`U8T=P1C{EU4XM+~mUXTJTgO@0Z6zh5dP)v7AK zEx=tdx2;})Tc~$(_TfzQc20z)ej6uH9cNlr({eZ8?iaf%i+OPHCXeaMx<7oxgoEjxk5q2?Tui& zy7>>tTQcfPoYP0_ZxlgZdO2eO2s&dIFW3cKkm$nj1rM!6%6qiEtzhduE+3OUNEeH} z#B(gHyQ~c4=c$tRK4E*Qy>xWUX-8z4yg9ulkVeHe9xXMq- zyoEq?+_jz%ym4X;!ze_b;=(6t-|PlLx|}2u@;r+Da$8a0IKi~F3oOWk{KS94xRJgu zJt0vbW;X!)NS%S?XhJBO#J+FSdnPBiaN!#^BON(rRPaZ5C}g?U_WKS1XzCX3wt@H5 zRAbyyQ_cM6tk3Ilrg7yQa0Z3MsS0`N0=d_~U+jLYP~cTaoTLI=Uh5|p3igTcLt`67kB*%`P)?#_7I;0)v&IZl`)MlhasfHP4IGv~&XW2xz8wn$x!gx^s^)l!cX=62PK}9^q~^vfd7#W*qJy~`tskbE zVWF_EVHNFZPS%3>kMfFHiF&8&>DoGrgl@8x)3DGEqGFYd>C>tjxLeb$m1?)tM#Q&88!D7S*+lXWYccO~vgDelCpx&acilzd- z)-rGF+k^$#KC-2DH&3YS80EwOB-xbELjm8GtdzW*5*3Q*IC5U|G|jxcn1}__l1GK4 z?CICF$}}_3nqGgL>hYrxst)437g4~kDRf(8^*ME>uBLdYwQ+hehW~I^D`^dDl@whZ zSZdT?PqRyU4kZG?8+1O}d)zzK%uPOGQi;WvGg2|=QDkWQBK(?B#)T&kN}p=K7|M-R zPA>d9Zi*dAq|3>on~DEuG54@6DaF6QH5RJYrwE*Pb3Kfa`lh|#iZz$KbvXrIzf8P~ z!<0h(LTP@>g^5c_I4^Wd!us?nf=<_Z*N4$>NBjkV2BZhhv`$40=QpCQR04ce*;I0a}{ z01@_R7z*7Q-0U^<=>o7kLxdu@c1nqv%5psoL3lgsptFBEI? zk?-*Lv&$lS3&+&WHuL>Txg4}ZK7N=Q2NC~_h9N-k_}8Ngzok7Mhvmcz9=mR{&EJEb z7X&|$?vFDsG5i_z_{n`oz*CkGoN#(BUPLGM%pa#0VI9NYh2f8iFhWCNPcO}XXd_BF z7bJfH;1KPev1QX8)BHIIfdK&n3!)1qShvPRFa>I1s`-M5J*#?cb77YR4v1&8c^(Rk z7|-MFw|=?p7yEwsQjuawvkI}GW||=!uy{uK^UPCH=-%JXpPL#fAlS?yMdAXpXL3QZ zeM1Mpk$dlzWVmgSF)Ae8QzKe06H1VfhLQoM6sa!vlafSZGLgyNfCvYn?_7%cOKBUg zGuu+>(8AuH85gY4m~3{7-8Ym!nyl=?21SjN4gT-Yc`ZGxTm0XF5s)a!Y}3t=8*#=x zwT8M8+qJQ|%O(T9X;~4ZezI-iCYTOb zLM~zAJ(e+eM+&gftqHG-?O;K@8&p73W0$0`f5dGj{i+FnLj9$_qLz#T%{AuB6#c8ZNE;rqY z*lt~?CK1d>T{m~0xEn>{xramW{;lxNQs4bp=n3#?&}Vj*X@m6%FT)bblP*$WpLwew z=Q=9Kv4uVHUmiv&dK;%Ar$YQR%gPDOpv(R`*6FlEA6t|&T3iSyX?^C}B@N2^rJS8l z&3c}23W2a=8g7#(E8t5y>s-jFg+f5`3|2HxYmxdYR)z&dV6@X%=N)0C7*RBaTFLra zA~fu-Tx@wAkK=Nj(Q=b=LW!On0u+{`I2pycV-Iqji{N#EM_dAe;>C<}oKTI(Gb!PN zwDZwh`Ifjw9#l{Sb!^S0el39lvvX26k}p$OioiR1A!wc?}~I|4CN*@4P4<5I?NyD znSN3F>*&X2i^2lslYUDpq)oBoqd(hNrjPm!%*pn3Eq#}^LG82SOr0#sPdsgilLdteNbUW#o-6dLYk=T+W1d=LJ4FU_J>j7Iy%hpNc;uoY1bWFU1#))}%bmID z#8rqb09N3q5XNU>a}Gxk;hgf44CjZuy~dhgmR?mg&m#!Tg0a!^}qvVo1)s z6{7A!FrPCv&i*{J_6Ek8+XykVi;d_Ag@m)VAsc892o93odq6-~(Azl+1^IsT{C`qinE8*P)vEcQgUo3?~H&UDdgR&5gd4toL^yI&8P?M{ciL3U>2YL zeo6=dC`nttvo6v0`47GP8CDbOB}L%BcD4!fUNhTLU@tIVuz+)DpvvCJk*1IjbLh%3 zg|HxE;bFWYpr~sk%-ZZn#q)@IF+07aE=)mQu(r@GpW8VzZRYpdwY^|Np@^;c#*76* z4-Du7jBYp>?!5z*^aV}W{iV4xg+s}7*Q0s4XPn&)ZWF5D3Ig>CpA0y#-Wx$ z#^bsf{&<%lzkq-gk)f`k12G*EhazZQQ0HiMkcxU<=w`b?;IwqtaM9!XG7bDE_#-)b zl|PCFX_2zgcvx?FC|{%xAql1;Kc`k00mWP0!WO>+@A@R`h_`kI>yqsR?1m0Cb`BNQ zFN7sJwz`fX-9E$sU*JE={w3x)BVYi*`?WKUlWm9&q&*#G@h*I-ZsrR^Wcg^Cv?j`B z;i-VmawV~+NU9uRBPm_QW_zbQ(>h0kTo?Up-%m;91Ly`pj9@TsI%{!W)=ik{MFsgQ#C?MA?Pv>; z;LaBf5$Y_jl-If23=#sBA_r0qg9J=dAeDZLlf!%LQxRwQqnV(pHw) z!#IAJ#rHV2y5r_|Y%_V96}s30ptYUB^B6FOefB!glRG}HURaFaf2xDyU=laowtzd=z_y8NFa?KfXl@C zqW2=ooUu+jU>`dwnsZ0RS@Ub*x6*vYebN9sjm8XpRA2#bt(dwJ3dfJ!TPcMF$>7Xm zA`8xXYXN0$&@8Z|5%5aQbfaY8fWlFNr%YLvG@Iw!MevA=E$Jz#pvpRBV*G^#iz!MW z{I|%)`r@DwVir39&VAB=vmk&O6qx6(4@DhUOc}%*10@F;fb5{C)pYw8 z_7M?ybVl(0ag{0Zn^OmT@RfcEOxQ+r4`1&wY|Q{??hFN%S>LNUMZ?=MxKy$zU=&bQ zIA|ga7lDH$+|a3}AxzCVs`e;}{0qlyDCGD<2%z!B3Z>;Vz78KYhAi2&&ffitEDB=m zJ{=B- z)n|Wprf|3jFrR}L`C$NpHLk`1px=BteN$)YupJ@0Iz^ z$(#1ztNAR52eq{(v69s~y4u1-fuPfe;X?bu;(m{y3sz2Xm^q>BU!?*%+ZXc}!t=ue z<01%wRV?5sI^sLjLB|>%pFOS8c3k|>$%RlmuqoNK^d}8Jk-gCpMTyS}76zVc#)yJ} z@G1$=DI*YGjsys?Rqn0s)5ur2!$^I*LHXPl3At*_c>fJ@+VFBvzVr%51PTN-N+_@z z<-S+GK%5+*h?9ll&cKV^;-v)|K6i|;qC;;A$t{$X89H0p<5_oZLE9kT;6az#?`~Mo z4G-+20QGKMY-W1_+*X5ngk`9Svj_ED=}_xCq|YFz<)vOehiWgFj6OBeOE=%Ni($E? zIg0BeVtJD>g9_L+iIN9H%pcZmPyFY68d#8uiK5lL;IC~E6vg86;;q{hw#bJF8arJ# zMvEnJcukhf!zz7nSmeP3Co}p%*uk_6fq)R6r9Mw7j%am|wi(o9@pyErj2^!S(!hnV zF4?&2<*;CzP`rIJEt|r=bl1&GG)|*!3t-X;TNpGhg5U?YMJTwS8~Es#Da-MNO?7t> zi6%OQKzrD}Y2`jQob%gAcbNXf1MD80Akv1F^<&F>#6(u|E$+G1L<$30unZ81&P~`Q zUhp{EIBT2!C<8Zw3pEkjQR-Zs|-1Io$B!P5lY6yC~A)jQoPC3W@bYHpk;nXTbk6}1xxHO!mwQHdxZFLtvk18 zs(Uu~$Q)_#0EMBKjBfUB5rH#^{4>tJSRK3?;muiZqjHT{Rtz!9D1WUp5*79AKkAfG z;G&`vWxWVBP6M;gfnNZVepl2vr-V&?77Og^xY$IGk+A7$o%-8Uu4aaEbm_y4GB+0g z5;LC|qHNkgr~Hk%%?Czlk`6Lts{IP}MkzYwC@autX%)yzuvK^(K^RXI)5-2hr%fC4 zf=YN3(rfV9H8V*b<}^lon2=S?juv#oY_7D&2&mP8xqaf3%lZUHY|LTP=A3S6RLh$u zl&6`e@Fkp@>rg#twyUYTZrCqgn=jXSH^yS7_Zq{}BiA!`2_dbJ^jJc0A=yG!_@*h? zH%XB;hkQKY^r7=O;GZVV>s`%1e}{p<+AwL4| z^2MyJ5R&}AD7**()ISsj}u3c=% zGZDJHFjLPXN>vM)Ipl~~LF8`z7ux|S9bM-o;Lfjq5&Gubh#JGt<~FQ>@X+T%j28nE zB6Ic~O?8joQ3?)iEcm1}+a-DoFIb3)v~zTZeq&N3{tq%RcDObQ2XAU|N>`*^Wu%Orl!9ifeYb8oLpS19AS%s0b38^ zA57yD0amO^)9w5Fn6FjHtRDA zA7M!qCV0>YQ9Y|AuLl#3=O_5@%(~!77(U=Cb%P5VD3Cb60Bsewapkq#-Y$g4!rHGv z#>2X$>|Y4%t3GA&BS4UAbrDEWMEEx7$G(7XEe%?QtwIACyhWynx%~TE?+#^O-s1vS z@qc!Tk@`Y9h-MB-q2E0@^`!R3d9^=yqg^5WALGfpdW1pg164Sy37YxY_riOk?8a*~Cf6V3&;mh5hmc zLfVjDa#&au6x3VPnxTG;Kc!o>*lP=%0c{>)zR6bfww-LBN0gPOnsf-x)4Ss>UhQ=I zP45cbCeGfN?(7KjK|VsY>J2g;N}gyEti-qNq3Vf>U`p@~hj-)ZiHM6sm$`-uGa(dS z@UUdpLO_yW@O)AGsBY+s*3Yf{g+y#^Jm+13uc)h=gFC_KBnmLyhZK$A%TqapREZL| z7yU2P#6bpoSmz;!mlWX0(KhOjXVB@>-kM2 z)HVg8!}+J;rZVDMu6fTMI{h}Vj2*QZk^j-i5GKKQ^uhz%*|$a26W+xb!J@`yhQilO z2n-O0@{I%c8~+sD!$TmI7CaJwn<2<@J4|zgSW9$mUnNHkijQ{$3%dJA7X(DxvmLy% zD7)*EfMHJjiIUvsx+T+gyw zF&`}f5dy283ho@}*m-L0hC*wsKO%ARZbATAo7&(=o(P{QXVHmLoo@&7t45cI#*BG_ z9mOl#r&Zjf_Koh=q$!{YIhgE@3{wtXq;+THGJ9o6J0vp4k8=lvS^s;~DKE-^P`J`` zumAxKh)8Q1J@78?tYRP|Ey*1%YD66N^^+q9MHE%y z9U~~lnjwYdP|QW&NPXc!(RlGUhVS(pRqvvb24msf1;7`izKR7sCF(B7hh&zZy;Z@2 z6p=ytO*@;BbS1z=@CY7 zYn5WMuMlyY>;CIXGD7kW!3qVh`vS!dEcYcO5@z=p!ywt=~ZC zuV66`1`6|z@vox$O?#A@bBitN(gidOgcMK-hqOupV1=**5Dc#9C+?uXe?B$&aj&&v zM@f!QcMTporjVYa?!ZS=os&7NnUR@s6tp_;!dhJ*05l{lRO@YIhj2QWqS z3^QFdO!%6y>41Q)@C*atdj^To39X1vPEbXf zaUiFv|4|qEw-cnqC;cahiyvIT zPpBaf4303S9wXJX>=ZV03$Y-DIl?%g;SM77a+iit z>zN3-0($G^LytT>M>?;W*%z+4@< zINs5jIw{bQDcC12$q#jcf?aMUvPVU6bUs%R=Q8pYa7lOg?6%ik(xnuz4yhXBph-9~ zxX=9j^eYdJ_RuF4(41@QN{yW)=kyT^EwV-hhZloxY>Mpc0D`3(>-mtJg`+zbLZAmi zAmSgxl^Ov)9gIF0Hl>x_z;N4GWh8pTf+Szx6I@l*C%>H+ZVBU#(z=(=(pxe#>G&c* zq-(0ieGFakax7N%%&Q?gJS<~HDO3I0;= z8fgunbQ8s-xhi#FA{(lv159GjY>*-;b=E=z7%Pw>>CA>mwm)Srbj_Ki_mkLc=j8$W z;LhAUhue5JiKx9|>~pcb_>OWsaOAyf??JJep_U%CNOYR4PhXa>g5V?8Db%UvLq>~b zQCP%&G*N?{2vfTp)|JPf3a1)M4n zZ!ByC>)z}xt02)|n7p=4X*FgXL;`#j#u(pCReQchF4Ba-9lTl)>X3dB^gI{lJ$-+C zN@Wcq_G<4>La7v5Z*l7-M;^Ev1(7@&564|{xTwbC$$ zs%Mio1O-+&;wr>2AGsscg~lv4V%i49_Y@Dg+_9CdchH(|0`AnW~aA4nj(uH#Sjp_>U z7{JfwlU6|0dvnP1_!+mi_N!z2todDNYdWtt75w=uOmDCJM>Z}|cc;|n3u18P4m-o< zxDprPzaaDm1Z3kC4pvZT5Dy?2<^$6Ge~tHNL_g^T_`Y z2tsn!;SS@uUxJ2&`eDdEYue4tJ%sBC7s&i=3l{N$SspMktYAD6D8LQF&9j5>_I<3_ z$~-mCRig_9vV|V-2Of3BTjf@V*CjR)Xd8Io^NRmA&yyXENhaHu+5X#Px7So-yam)| z#P+=i2LU?|0uW0vjVRDrDK>eB<<=m$8Sh>k|F;`j1>~)bP}NiyfYlgB77InQu?PdR z29je2ezMz(D7X#%>mXEAPoOF!O^3)xW1pw)l~-MD>uQ88hIK;G>?$=o7@gZ@k_!PF zkP6unjdkuEXB0tvVTvXOMbI`e3B`iHG?d7B(n$1KoMPb5VTG^0Gsu#mP>Q`mQuDav z8iIh^7bn%C`SGneKrqOk0B)LFB?XUk*vOe#W#&@x(c+(eNLDnl?3-z6ZEr{5V-BTR z)nkK0_8az&S?`@Xa8rX;G<*di{!+l_Mm411(3TL0e?g*4iL-QlpMu}EMapid&P`|J z4fiLmJjByMd9{oOLxV&i?DEN3 z4#S=@O{F7N?jpREP9-TsfuTW5gK|HG9>p4K61N`#K}halxxHVOv<;+z4YYJSjmh7f zCAXpzF_ufFxtmsud`R4mg%D-9Unsz!db3c@*OQGXiFIS*0?D}REdImIgJ7i3ZX=M59~dAfLEAu zB0+NVTLKqdkjI&B>Nti-r>nRt^0PeIMTvwC-FF+JGD=pQ=TgRKoOHrns&}VCMvC*nmz+^v$$_q@ zVnGX|S<{AfLGm6J)~nn!JkSqFhc%qgkH;QyZ%rJem`{WRCa%-wGKGc#V$AEHEFv*# zWw;8PwNu%z3Ei~UnDw1lhmq75c(^xns<+%OOm!sc5>zKHBm_`T5iUS@4fg4`MB)X> zB9nx)k4gdr#X1~ALNW6MF%ltA6c`tS82Hl|0_fz0w9)f8Y^1(5K->|$0*)NK2p-vQ z#R{Ahfq;mA6x7s0TwuNHDN1wNVB}P*aU0?%v{+^uiojxsV1PCskWpY}0de9pjN>-GYo4Y*{SPfPE%2d|T2%oVOdYUum@9 zqAkwh4H0tO_}?9!2=xfY5&~kLo&tg(;JJ(KvB6(HRSX)WyTEGT#U~FRaG*DXNLbA* z;sSeKA)E;3Vp3!^>w=X#Tmj-ySfLUHL0+Jz!bcHIpuq4FmGs~On@%nQ^MQbY{61^m zf*($zj^`NQ3ujc>n$>4@4Szog!k8UQKJH-0;}b^{hN{I*g*Fc%VtIF<>|bbka#5A>`&9dd zQ@ikIPl?_$GTI0}etTT~sI+}S;V+>RV91pT7wY&}e%(W6RUbidL(OyU)rl2sO#_O!0HIA%l`j|fIfi#))(ae9^P6_|H;J9(eiI0m z>>{Ams}LyO0t7upc*9uS4z~NzmOSD>eglXQ2YIv+=e-1;n`}*fTf^Umc@lVc-zM9g z6~P_eF8qh>JMyRW*|5#v7f(pz2%F;F5jx*yC>AW>23{5rA?cViv*aDi9WkRxKK#fXyZF8LgK~ifC zC{%azauFA|Foix^x*Gun&iHO%27MkonuJ4iZb$Rb~(@Q`9oYIBq7o z4mr)!Xa=Y+B_;SzP~{Ok{jCvgk4~2HUDM?yHv)oC__p10*G|aHMbxaq4E9Y9z|RS= z^_DPAf+=6bo#O%nno;g1djI9NVwTP>Yhz&77KwPSJ|?O?n1tL;AZ{6Uho!?f{qI$G!VK%8$%Q%k4JZL_m6h%K+v!>Ad)zu zp&3^)M~b^!goa=#h0PI5Y%wD%;t$@@9GNAL-txn$WPYIoFsjljPzMl)SjOsjR!sF- zciBegySL!yUOOC5IFh>=d%T6E7+M(WeFR0&&K(SD%@0ru0Qz7FjU{v&WBA;msE0+& zHCzJ3&9xY)?2v7$ZzpY6(i%cnD3W~dJ{Bl{R`twe#IE7eGROtNszy(ZopTKU0e_y} zl3wFPYysaP1pzvAgEFrWv@{(pk(z-HJ*A%;VUFSwhXw{AP^?DhT#KD#Ip{Pw)5`D0 z&8)m*kS>UwC}$YN`6Jku+ty4diwH+TKWvS+GOLM5Yu%U+zUpn=*wUlXQ{?2CoSiNb zs8?5shX;NecI_SH=NV5^emrv?65z#!PLqt_yCub_8ytg{4YDX5P;_{Yv$(M$Y1f1&{uBI>z)|O0BW#qJMci0G ziu@kTe_HcFOR&6COe>w^Di!=``y3vZg}t|#7b7MlqK4bK6E9x#B!bzB0^}$IT%KEORK&>r%Y|{#@6WN^D^T!y@xer110@ zHhtx!Lw-i^aBYuz7~p~@dm>n@L_3dwK>>Gyju=Q0r8AtYWvcIBg#T*-u2LBcN!2x} zyiqo2S2VDuYs8$mgKdDbaE^rcIqM~4JOtH>YXUr3yJ7^;m&Kf>=<>aCQ zMpV2bHVRJjd77gD@TbY7C-3lvSJh@ zz3pxsls|jEgz+&i{(G731MrFe_S2nawv=ezy#S8dX=Mj91O(&l^T6c*A;Mg1a@Io* zOy~Oy1{J$O0mC_p(Fhn~8Qn3@R43xegP+^BZ(Bt)1|p@*Q_9V!Ym8J~iWYVlv3FigJI#4mB0EwW%v%iYF>6Mkm9;lC zztHIUaV649DQ`}&U=|wO1uT1=)?L=;o**zMY|eo~BH^H}w2q;cp{}ijaq<14)D0N# zbxr3OhBH^5*1EIO0#P5KqYM!Op;}OSZf99{A)P$TQl zQQ#hgt@D@@w5$lR8UCyh+66W_*?Pv3wuhckc6b>dL?g0IVXQR>ct4|Kn4ReS2H%Z7xu}!f2zeRd0y`19t*&D?0gx1m5}*R3%4;jw39rQv@K0vN;CAGN7ubIt*-U zsI+Nmt%bH1a1&p+gLnxJ21yd1I?m0e#3nYEk&!XDy(y>3#Yv#^1tjNg#mo@IId{&G zhd^8xjbnqYVL?h&`=}l{Ul);?iwA%22@9610m9Wx&Robh1kbUNaD(>@_yWgNY!^ZR&+Uh@#J=Z=)kKq@-=$s* zx)FJuhoiEz6Ck6C;p2FM_4x{U)iAET(jfy-vqtDG_>7E)tCa1t9P=zJT>P&;qq^oo|9YL6NvLolCz)1*ZpwdA^3_2oJOU!(S zg{NXc+R9a>?;N8>4`Pa{fIddva8eb{9#vEJ>-huu!F-jW%)19@^Vj#5wrP$^3=}9l zIuW|PQq-}bFertv(ZP_lCwpKoM@AwOTA4#i46B8RNx~vuk&b-@6Pz&6P_eHLGRw^@f98qtED2hRa;NP1us0vHP7keV+Tru_|| z;|)TG+EmyecYV(cFo@B>M!akC^O1};`nUu2d@#V@PRFwifqf)%0D|A_-Ue8N{6Yce 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 z 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

    & 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 TcXvtz00000NkvXXu0mjfvv-sj literal 0 HcmV?d00001 From 0be7be2b9f79b0010751e1898e1d1d5d4f2f144e Mon Sep 17 00:00:00 2001 From: Tofpu Date: Fri, 24 May 2024 23:46:21 +0300 Subject: [PATCH 55/71] Overhaul the help system to be more descriptive --- .../io/tofpu/speedbridge2/util/material/MultiMaterial.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java index 806328e1..d8dd8ffb 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java @@ -7,6 +7,10 @@ import java.util.*; @AutoRegister +// todo: refactor to add support for items to add red_wool support and among others +// - player choice +// - this one +// - gui, perhaps? maybe not public final class MultiMaterial { private static final Map GENERAL_MATERIAL_LOOKUP_MAP = new HashMap<>(); private static final Set BLOCK_MATERIALS = new HashSet<>(); From 404cec40c4a1ae807f480a389a003235ba50de86 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 14 Aug 2024 12:25:29 +0300 Subject: [PATCH 56/71] Relocate setup related commands to a new internal setup command class --- .../subcommand/SpeedBridgeCommand.java | 118 +++++++++--------- 1 file changed, 61 insertions(+), 57 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 1ff2192f..e9d34d17 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -69,6 +69,7 @@ public SpeedBridgeCommand(final HelpMessageProvider helpMessageProvider, final P public void visit(@NotNull CommandHandler handler) { handler.register(this); handler.register(new PlayerSubCommand()); + handler.register(new SetupCommand()); } @DefaultFor("~") @@ -393,76 +394,79 @@ private java.util.Optional getRandomIsland() { return java.util.Optional.ofNullable(filteredIslands.get(randomIndex)); } - @Subcommand("setup create") - @Description("Create an island setup") - @CommandPermission("speedbridge.setup.admin") - @RestrictDummyModel - @RestrictSetup - @RestrictConsole - public String onStartSetup(final BridgePlayer bridgePlayer, final Island island) { - if (!isGeneralSetupComplete(bridgePlayer)) { - return ""; - } - final int slot = island.getSlot(); + @Subcommand("setup") + class SetupCommand { + @Subcommand("create") + @Description("Create an island setup") + @CommandPermission("speedbridge.setup.admin") + @RestrictDummyModel + @RestrictSetup + @RestrictConsole + public String onStartSetup(final BridgePlayer bridgePlayer, final Island island) { + if (!isGeneralSetupComplete(bridgePlayer)) { + return ""; + } + final int slot = island.getSlot(); + + if (bridgePlayer.isPlaying()) { + return INSTANCE.inAGame; + } else if (island == null) { + return String.format(INSTANCE.invalidIsland, slot); + } - if (bridgePlayer.isPlaying()) { - return INSTANCE.inAGame; - } else if (island == null) { - return String.format(INSTANCE.invalidIsland, slot); + IslandSetupHandler.INSTANCE.initiate(bridgePlayer, island); + return String.format(INSTANCE.startingSetupProcess, slot); } - IslandSetupHandler.INSTANCE.initiate(bridgePlayer, island); - return String.format(INSTANCE.startingSetupProcess, slot); - } + @Subcommand("setspawn") + @Description("Sets the island's spawnpoint") + @CommandPermission("speedbridge.setup.admin") + @RestrictSetup(opposite = true) + @RestrictConsole + public String setupSetSpawn(final BridgePlayer bridgePlayer) { + final IslandSetup islandSetup = IslandSetupHandler.INSTANCE.findSetupBy(bridgePlayer.getPlayerUid()); - @Subcommand("setup setspawn") - @Description("Sets the island's spawnpoint") - @CommandPermission("speedbridge.setup.admin") - @RestrictSetup(opposite = true) - @RestrictConsole - public String setupSetSpawn(final BridgePlayer bridgePlayer) { - final IslandSetup islandSetup = IslandSetupHandler.INSTANCE.findSetupBy(bridgePlayer.getPlayerUid()); + final Location playerLocation = bridgePlayer.getPlayer() + .getLocation(); - final Location playerLocation = bridgePlayer.getPlayer() - .getLocation(); + // if the location given was not valid + if (!islandSetup.isLocationValid(playerLocation)) { + return INSTANCE.invalidSpawnPoint; + } + + // otherwise, set the location point + islandSetup.setPlayerSpawnPoint(playerLocation); - // if the location given was not valid - if (!islandSetup.isLocationValid(playerLocation)) { - return INSTANCE.invalidSpawnPoint; + return INSTANCE.setSpawnPoint + "\n" + INSTANCE.completeNotification; } - // otherwise, set the location point - islandSetup.setPlayerSpawnPoint(playerLocation); + @Subcommand("finish") + @Description("Completes the island's setup") + @CommandPermission("speedbridge.setup.admin") + @RestrictSetup(opposite = true) + @RestrictConsole + public String setupFinish(final BridgePlayer bridgePlayer) { + final IslandSetup islandSetup = IslandSetupHandler.INSTANCE.findSetupBy(bridgePlayer.getPlayerUid()); - return INSTANCE.setSpawnPoint + "\n" + INSTANCE.completeNotification; - } - - @Subcommand("setup finish") - @Description("Completes the island's setup") - @CommandPermission("speedbridge.setup.admin") - @RestrictSetup(opposite = true) - @RestrictConsole - public String setupFinish(final BridgePlayer bridgePlayer) { - final IslandSetup islandSetup = IslandSetupHandler.INSTANCE.findSetupBy(bridgePlayer.getPlayerUid()); + if (!islandSetup.isReady()) { + return INSTANCE.setupIncomplete; + } - if (!islandSetup.isReady()) { - return INSTANCE.setupIncomplete; + islandSetup.finish(); + return INSTANCE.setupComplete; } - islandSetup.finish(); - return INSTANCE.setupComplete; - } + @Subcommand("cancel") + @Description("Cancels the island's setup") + @CommandPermission("speedbridge.setup.admin") + @RestrictSetup(opposite = true) + @RestrictConsole + public String cancelSetup(final BridgePlayer bridgePlayer) { + final IslandSetup islandSetup = IslandSetupHandler.INSTANCE.findSetupBy(bridgePlayer.getPlayerUid()); - @Subcommand("setup cancel") - @Description("Cancels the island's setup") - @CommandPermission("speedbridge.setup.admin") - @RestrictSetup(opposite = true) - @RestrictConsole - public String cancelSetup(final BridgePlayer bridgePlayer) { - final IslandSetup islandSetup = IslandSetupHandler.INSTANCE.findSetupBy(bridgePlayer.getPlayerUid()); - - islandSetup.cancel(); - return INSTANCE.setupCancelled; + islandSetup.cancel(); + return INSTANCE.setupCancelled; + } } private String hover(final String hoverContent, final String content) { From e056567c2318fb64c995d2ba22e1ffe97cc5f57c Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 14 Aug 2024 12:37:07 +0300 Subject: [PATCH 57/71] Revert command breaking changes involving user commands --- .../command/subcommand/SpeedBridgeCommand.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index e9d34d17..821e72f3 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -190,7 +190,8 @@ private boolean isGeneralSetupComplete(final BridgePlayer bridgePlayer) { return false; } - @Subcommand("join") + @Command({"sb join", "speedbridge join" ,"join"}) +// @Subcommand("join") @Usage("") @Description("Join an island") @RestrictDummyModel @@ -219,7 +220,7 @@ public String onIslandJoin(final BridgePlayer sender, final Island island, @Opti return String.format(INSTANCE.otherJoinedAnIsland, target.getName(), island.getSlot()); } - @Subcommand("leave") + @Command({"sb leave", "speedbridge leave", "leave"}) @Description("Leave an island") public String onIslandLeave(final BridgePlayer sender, final @Optional GameIsland senderGame, @@ -244,7 +245,7 @@ public String onIslandLeave(final BridgePlayer sender, return String.format(INSTANCE.otherLeftTheIsland, target.getName(), slot); } - @Subcommand("score") + @Command({"sb score", "speedbridge score" ,"score"}) @Description("Shows a list of your scores") @RestrictConsole public String onScore(final BridgePlayer sender, @@ -272,8 +273,7 @@ public String onScore(final BridgePlayer sender, return String.join("\n", scoreList); } - @Subcommand("choose") - @Command("choose") + @Command({"sb choose", "speedbridge choose", "choose"}) @Description("Lets you choose a block") @RestrictDummyModel @RestrictConsole @@ -281,7 +281,7 @@ public void chooseBlock(final BridgePlayer bridgePlayer) { BlockMenuManager.INSTANCE.showInventory(bridgePlayer); } - @Subcommand("islands") + @Command({"sb islands", "speedbridge islands", "islands"}) @CommandPermission("sb.islands") public String showIslands() { final MessagePresenterHolderImpl holder = new MessagePresenterHolderImpl( @@ -344,7 +344,7 @@ public void onHelp(final CommonBridgePlayer bridgePlayer, final ExecutableCom helpMessageProvider.showHelpMessage(parent.getName(), bridgePlayer.getPlayer()); } - @Subcommand("randomjoin") + @Command({"sb randomjoin", "speedbridge randomjoin" ,"randomjoin"}) @Description("Chooses a random island for you") @RestrictSetup @RestrictDummyModel From 43bda31653796d393730375d4af0969c51188c8d Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 14 Aug 2024 12:38:44 +0300 Subject: [PATCH 58/71] Register brigadier for sb commands --- .../main/java/io/tofpu/speedbridge2/command/CommandManager.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java index d0b5eb8f..dc159cbe 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/CommandManager.java @@ -98,6 +98,8 @@ public boolean isCustomType(final Class type) { log("Generating `/sb help` message..."); helpGenerator.generate(plugin, commandHandler); + + commandHandler.registerBrigadier(); } private static void constructTabCompleter(final @NotNull IslandService islandService) { From 4cc16ad78094b91894885e2abfafcc5ce7998008 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Fri, 24 May 2024 23:46:21 +0300 Subject: [PATCH 59/71] Fix extra wrong method? --- .../io/tofpu/speedbridge2/model/island/object/GameIsland.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java index 168048df..7bda235f 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/island/object/GameIsland.java @@ -154,8 +154,4 @@ public boolean stopGame() { public void abortGame() { getIsland().abortGame(getGamePlayer().getBridgePlayer()); } - - public void abortGame() { - getIsland().abortGame(getGamePlayer().getBridgePlayer()); - } } From c3b84d802c36c7222bc9b8faa4918fb32564403f Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 14 Aug 2024 13:50:11 +0300 Subject: [PATCH 60/71] Fix toolbar dependency not loading --- spigot/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 26bd60c4..3a4ad195 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -49,7 +49,7 @@ dependencies { exclude("com.sk89q", "worldedit") } - implementation("com.github.tofpu:toolbar:v1-SNAPSHOT") + implementation("com.github.Tofpu:toolbar:v1-SNAPSHOT") implementation("com.github.Tofpu:dynamicclass:1.3") { exclude("com.google.guava", "guava") } From fca9a947f5219b686593bb2016dc3773f1a7ca8c Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 14 Aug 2024 13:50:23 +0300 Subject: [PATCH 61/71] Add PAPI support for all messages --- .../model/common/util/BridgeUtil.java | 21 +++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java index 91e3035e..1bdef7e1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java @@ -6,9 +6,11 @@ import io.tofpu.speedbridge2.model.common.database.wrapper.DatabaseQuery; import io.tofpu.speedbridge2.model.common.database.wrapper.DatabaseSet; import io.tofpu.speedbridge2.model.leaderboard.object.BoardPlayer; +import io.tofpu.speedbridge2.model.player.object.BridgePlayer; import io.tofpu.speedbridge2.model.player.object.CommonBridgePlayer; import io.tofpu.speedbridge2.model.player.object.score.Score; import io.tofpu.speedbridge2.plugin.SpeedBridgePlugin; +import me.clip.placeholderapi.PlaceholderAPI; import net.kyori.adventure.audience.Audience; import net.kyori.adventure.platform.bukkit.BukkitComponentSerializer; import net.kyori.adventure.text.Component; @@ -16,6 +18,7 @@ import org.bukkit.Bukkit; import org.bukkit.ChatColor; import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; import org.bukkit.plugin.java.JavaPlugin; import java.util.UUID; @@ -119,11 +122,15 @@ public static Component sendMessage(final CommonBridgePlayer sender, * @param content The content of the message. * @return Nothing. */ - public static Component sendMessage(final CommandSender sender, - final String content) { + public static Component sendMessage(final CommandSender sender, String content) { if (content.isEmpty()) { return null; } + + if (sender instanceof Player) { + content = replaceWithPAPI((Player) sender, content); + } + final Component component = translateMiniMessage(content); sendMessage(sender, component); return component; @@ -154,6 +161,16 @@ public static String translate(final String replace) { return ChatColor.translateAlternateColorCodes('&', replace); } + public static String replaceWithPAPI(Player player, String text) { + if (player == null) { + return text; + } + if (!Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { + return text; + } + return PlaceholderAPI.setBracketPlaceholders(player.getPlayer(), text); + } + /** * Given a row or column, and a database set, return a BoardPlayer * From 3135755ceac8443fbb25ac4d3c09cadaf349791e Mon Sep 17 00:00:00 2001 From: Tofpu Date: Thu, 15 Aug 2024 16:29:31 +0300 Subject: [PATCH 62/71] Remove unnecessary comments --- .../speedbridge2/command/subcommand/SpeedBridgeCommand.java | 1 - .../io/tofpu/speedbridge2/util/material/MultiMaterial.java | 4 ---- 2 files changed, 5 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java index 821e72f3..83d9f5b0 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/subcommand/SpeedBridgeCommand.java @@ -191,7 +191,6 @@ private boolean isGeneralSetupComplete(final BridgePlayer bridgePlayer) { } @Command({"sb join", "speedbridge join" ,"join"}) -// @Subcommand("join") @Usage("") @Description("Join an island") @RestrictDummyModel diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java index d8dd8ffb..806328e1 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/util/material/MultiMaterial.java @@ -7,10 +7,6 @@ import java.util.*; @AutoRegister -// todo: refactor to add support for items to add red_wool support and among others -// - player choice -// - this one -// - gui, perhaps? maybe not public final class MultiMaterial { private static final Map GENERAL_MATERIAL_LOOKUP_MAP = new HashMap<>(); private static final Set BLOCK_MATERIALS = new HashSet<>(); From 36adcf010654fdb587b36e5247e403f60ef62394 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Thu, 15 Aug 2024 16:35:36 +0300 Subject: [PATCH 63/71] Add `general.check-for-updates` option to config.yml Allows users to disable the update check if they want to --- .../io/tofpu/speedbridge2/SpeedBridge.java | 36 ++++++++++--------- .../config/category/GeneralCategory.java | 8 +++++ 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java b/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java index b09e7a2f..b3d724b4 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/SpeedBridge.java @@ -139,22 +139,26 @@ public void enable() { log("Loading the messages..."); Message.load(javaPlugin.getDataFolder()); - log("Checking for an update..."); - UpdateChecker.init(javaPlugin, 100619) - .requestUpdateCheck() - .whenComplete((updateResult, throwable) -> { - if (throwable != null) { - log("Couldn't check for an update..."); - return; - } - - if (updateResult.requiresUpdate()) { - log("You're using an outdated version of SpeedBridge!"); - log("You can download the latest version at https://www.spigotmc.org/resources/.100619/"); - } else { - log("You're using the latest version!"); - } - }); + if (ConfigurationManager.INSTANCE.getGeneralCategory().shouldCheckForUpdates()) { + log("Checking for an update..."); + UpdateChecker.init(javaPlugin, 100619) + .requestUpdateCheck() + .whenComplete((updateResult, throwable) -> { + if (throwable != null) { + log("Couldn't check for an update..."); + return; + } + + if (updateResult.requiresUpdate()) { + log("You're using an outdated version of SpeedBridge!"); + log("You can download the latest version at https://www.spigotmc.org/resources/.100619/"); + } else { + log("You're using the latest version!"); + } + }); + } else { + log("Not checking for an update as it was explicitly disabled in the config."); + } } public void shutdown() { diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java index b67966f5..fee20f66 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/config/category/GeneralCategory.java @@ -17,6 +17,10 @@ public final class GeneralCategory { @Comment("The space gap between islands") private int islandSpaceGap = 10; + @Setting("check-for-updates") + @Comment("Checks for an available update on startup. (default: true)") + private boolean checkForUpdates = true; + public boolean isDebugEnabled() { return showDebugMessage; } @@ -28,4 +32,8 @@ public String getDefaultIslandCategory() { public int getIslandSpaceGap() { return islandSpaceGap; } + + public boolean shouldCheckForUpdates() { + return checkForUpdates; + } } From 29728613b5535beae23358cfed3bb815cb05ea99 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Thu, 15 Aug 2024 16:57:51 +0300 Subject: [PATCH 64/71] Avoid sending update notification to operators on join when check-for-updates=false --- .../listener/general/PlayerConnectionListener.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java b/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java index 251a566d..06a75ce7 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/listener/general/PlayerConnectionListener.java @@ -32,8 +32,9 @@ private void onPlayerJoin(final @NotNull PlayerJoinEvent event) { playerService.loadIfAbsent(player, (bridgePlayer) -> playerService.internalRefresh(player, bridgePlayer)); if (player.isOp()) { - UpdateChecker.get() - .updateNotification(player); + if (UpdateChecker.isInitialized() && ConfigurationManager.INSTANCE.getGeneralCategory().shouldCheckForUpdates()) { + UpdateChecker.get().updateNotification(player); + } } teleportToLobby(player); From 93264217430b057be9497d7b91362b3af45838a9 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Wed, 21 Aug 2024 09:24:41 +0300 Subject: [PATCH 65/71] Allow name and score to be retrieved separately from the leaderboard placeholders Adds backwards compatibility for the old placeholder by defaulting to the full text display type if no type is specified. To retrieve the name and the score separately, it may look like this from now on: - `%sb_leaderboard_global_1_name%` - `%sb_leaderboard_global_1_score%` --- .../expansions/LeaderboardExpansion.java | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java index d89afbc1..c2c147f3 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/support/placeholderapi/expansion/expansions/LeaderboardExpansion.java @@ -37,7 +37,7 @@ public String getDefaultAction(final BridgePlayer bridgePlayer) { public boolean passedRequirement(final BridgePlayer bridgePlayer, final String[] args) { // this placeholder requires four arguments - return args.length == 3; + return args.length >= 3 && args.length <= 4; } @Override @@ -82,6 +82,16 @@ public String runAction(final BridgePlayer bridgePlayer, return ""; } + TextDisplayType textDisplayType = TextDisplayType.FULL; + if (args.length > 3) { + textDisplayType = TextDisplayType.fromString(args[3], TextDisplayType.FULL); + } + + if (textDisplayType == TextDisplayType.NAME) { + return boardPlayer.getName(); + } else if (textDisplayType == TextDisplayType.SCORE) { + return BridgeUtil.formatNumber(bestScore.getScore()); + } return BridgeUtil.translate(ConfigurationManager.INSTANCE.getLeaderboardCategory() .getLeaderboardFormat() .replace("%position%", boardPlayer.getPosition() + "") @@ -89,6 +99,21 @@ public String runAction(final BridgePlayer bridgePlayer, .replace("%score%", BridgeUtil.formatNumber(bestScore.getScore()))); } + enum TextDisplayType { + NAME, SCORE, FULL; + + private static final TextDisplayType[] CACHED_VALUES = values(); + + public static TextDisplayType fromString(final String string, final TextDisplayType defaultValue) { + for (final TextDisplayType textDisplayType : CACHED_VALUES) { + if (textDisplayType.name().equalsIgnoreCase(string)) { + return textDisplayType; + } + } + return defaultValue; + } + } + public int parse(final String[] args, final int index) { try { return Integer.parseInt(args[index]); From f1fbdebde24e0e3a5cb141e23736850bf9e954af Mon Sep 17 00:00:00 2001 From: Tofpu Date: Thu, 22 Aug 2024 06:36:31 +0300 Subject: [PATCH 66/71] Fix PAPI placeholder not being replaced for certain messages --- .../tofpu/speedbridge2/model/common/util/BridgeUtil.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java index 1bdef7e1..b6566ee3 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/model/common/util/BridgeUtil.java @@ -109,9 +109,7 @@ public static Component sendMessage(final CommonBridgePlayer sender, if (content.isEmpty()) { return null; } - final Component component = translateMiniMessage(content); - sendMessage(sender.getPlayer(), component); - return component; + return sendMessage(sender.getPlayer(), content); } /** @@ -130,8 +128,9 @@ public static Component sendMessage(final CommandSender sender, String content) if (sender instanceof Player) { content = replaceWithPAPI((Player) sender, content); } - + final Component component = translateMiniMessage(content); + sendMessage(sender, component); return component; } From 64f0d9020e785c31e9d7defcb595f9e4a4d8dd20 Mon Sep 17 00:00:00 2001 From: Tofpu Date: Fri, 23 Aug 2024 10:26:17 +0300 Subject: [PATCH 67/71] Remove check for @Nullable annotation on GameIsland parameter Because `org.jetbrains.annotations` dependency may not be available on runtime. And we don't need to check for it anyway, as we have a replacement for it. --- .../speedbridge2/command/context/GameIslandContext.java | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java index 5c6c1bc9..8f20bed7 100644 --- a/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java +++ b/spigot/src/main/java/io/tofpu/speedbridge2/command/context/GameIslandContext.java @@ -5,12 +5,9 @@ import io.tofpu.speedbridge2.model.island.object.GameIsland; import io.tofpu.speedbridge2.model.player.PlayerService; import io.tofpu.speedbridge2.model.player.object.BridgePlayer; -import org.jetbrains.annotations.Nullable; import revxrsal.commands.exception.CommandErrorException; import revxrsal.commands.process.ContextResolver; -import java.lang.reflect.Parameter; -import java.util.Arrays; import static io.tofpu.speedbridge2.model.common.Message.INSTANCE; @@ -26,8 +23,7 @@ public GameIslandContext(final LampContextRegistry registry, final PlayerService @Override public GameIsland resolve(final ContextResolver.ContextResolverContext context) { final BridgePlayer player = playerService.getIfPresent(context.actor().getUniqueId()); - Parameter javaParameter = context.parameter().getJavaParameter(); - boolean canBeNull = javaParameter.isAnnotationPresent(Nullable.class) || context.parameter().isOptional(); + boolean canBeNull = context.parameter().isOptional(); if (player == null && canBeNull) { return null; From e7688b34cc74a072c842dac4692276ec95946235 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=87=B5=F0=9F=87=B8=20Tofpu?= Date: Sat, 19 Oct 2024 17:01:44 +0000 Subject: [PATCH 68/71] Fix older versions of PAPI not being avialable --- spigot/build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 3a4ad195..70036fc9 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -38,7 +38,7 @@ dependencies { implementation("org.bstats:bstats-bukkit:3.0.0") - compileOnly("me.clip:placeholderapi:2.10.10") + compileOnly("me.clip:placeholderapi:2.11.6") implementation("com.github.ben-manes.caffeine:caffeine:2.9.3") From 2a8ef6c1653863fece7b4146fe77bb133ce15148 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=87=B5=F0=9F=87=B8=20Tofpu?= Date: Sat, 26 Oct 2024 20:52:10 +0300 Subject: [PATCH 69/71] Use latest version of MultiWorldEdit to support 1.12.x --- spigot/build.gradle.kts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/spigot/build.gradle.kts b/spigot/build.gradle.kts index 70036fc9..f8635dbd 100644 --- a/spigot/build.gradle.kts +++ b/spigot/build.gradle.kts @@ -43,7 +43,7 @@ dependencies { implementation("com.github.ben-manes.caffeine:caffeine:2.9.3") implementation("com.github.cryptomorin:XSeries:8.7.1") - implementation("com.github.tofpu.MultiWorldEdit:multiworldedit-api:0eb85d6cbd") { + implementation("com.github.tofpu.MultiWorldEdit:multiworldedit-api:8930fd3caa") { exclude("de.schlichtherle", "truezip") exclude("rhino", "js") exclude("com.sk89q", "worldedit") @@ -83,4 +83,4 @@ tasks { minecraftVersion("1.19.4") pluginJars(project.file("libs/worldedit-bukkit-7.3.0.jar")) } -} \ No newline at end of file +} From f0a82790d389309b34d3e1f26dc9c6ae7bc7533b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=87=B5=F0=9F=87=B8=20Tofpu?= Date: Sat, 26 Oct 2024 20:55:23 +0300 Subject: [PATCH 70/71] Use v4 of actions/upload-artifact --- .github/workflows/automatic-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/automatic-build.yml b/.github/workflows/automatic-build.yml index cdd07377..c3e5ddbb 100644 --- a/.github/workflows/automatic-build.yml +++ b/.github/workflows/automatic-build.yml @@ -23,7 +23,7 @@ jobs: arguments: shadowJar - name: Uploading - uses: actions/upload-artifact@v2 + uses: actions/upload-artifact@v4 with: name: SpeedBridge-2 path: ${{ github.workspace }}/speedbridge2-spigot-plugin/build/libs/*.jar From 6a5813f99bec1c878610353399379f3204d9571d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=F0=9F=87=B5=F0=9F=87=B8=20Tofpu?= Date: Sat, 26 Oct 2024 21:02:06 +0300 Subject: [PATCH 71/71] Fix workflow using old spigot jar path --- .github/workflows/automatic-build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/automatic-build.yml b/.github/workflows/automatic-build.yml index c3e5ddbb..ca564036 100644 --- a/.github/workflows/automatic-build.yml +++ b/.github/workflows/automatic-build.yml @@ -26,4 +26,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: SpeedBridge-2 - path: ${{ github.workspace }}/speedbridge2-spigot-plugin/build/libs/*.jar + path: ${{ github.workspace }}/spigot/build/libs/*.jar

  • FKgyY3$zDfxjD7Y0s@sLcz`JN0L|YIYq5G^7|+Y2oCB{u3kR z84vXj9Ud6&8932%n@3NU(=vu~@6n+%14E}vI|D=I_A>*6q$5Km(crNY=Z>9Fnq|)r*>7%qmD)o8NG8i7b3}(3Z$k3s_r@l97}pt>03QV$n=tU zYBla&bSzI%2Jl*Md6wg+%CT1!G%6JyJ9%X2tY(9Bgy*WKXMO4itf^e;Kh7KRw3Jz5 zoJWS4J-;bsdYMLDDlhH`mCO6;(>pDNyu|uuj|`V#l=1YHInh**j_artgJFtJ>vf;h zBb+QZmbb(0yd%9YXO4MDF@Z6jBg6cz%7A$t<#nI#&o27?I&|t+5QV%TO3E+f=!x=L z&mBK`Zt&FkV<*lJp1N@S8*!ProU~$VPuRo`V1TIeAP&2fP)l=8n6S%TwW_gJ8@&7z#fRFwgbbteRG%_ zcc-Evp&N}D76bTPr(RXw<9CG^c7-aBfp4~+qQXo6u5T_aUzsX+XZ~}> zzy}DH{KB*|lq^iIEfor!-|Q?b&5gf$jAuzkQAdo8LG~t!d2C8Nqib?Y3>bnOh{BTR z*}=p_E45RfMYEJoR8UEk1!Q_Dt{=U-O&8|8MNOp&QU?oPdI{(h*u|;K#p@cjAWzt* zPAmMWwYck?P)|=fToCZ$fa{RwPX*d_9d^lJa$ zA#ee7D3|;>KP(*7XZ57XuOeV~5*>0B8|k|qUvzNi^fA8cq+r1l6oO61VTk+&(@_CL z_)nl#LBXt$r~cxe%Vy6BRv?vTggOq03<4392B6i3|G=XoFs_g0s>)JA;lV?FN52IN z9y100m%{@Ly9+ecuQQcJ)UP0^^vh`(WEpCq1hL)OLSUYaWC&xQk)oEI=`)lh0@h>@ zgrRfHMlsR+kn+4!(U@N`Pek5CNXcLs@PG+kv%%yPNG)UFnDisQ;p(9O21pn+yB|9x zbPi5!Wj2nTJbV1)*}{UJ=a|)av#%8# zbVNx1B7kV-#(~zyFs0dg`<= zV=d`1{JHCPKATF83{*0xx#iwr-QECP(3L4rnJACj_1UQHt2}RM(HMl9P!e^LDU&jz zmsTArKp`=V;9zq}l8riTp_0eoOXdcb96Bat(KOj~ch1V99sy*pjkl9|PL~)@f_3!h z`t>QImwbcCf=FnGc$@|S-Iu|u&cB8o&l?XOu$XToUbiISdV4(v#tD~Ok5h)hr(Gk- zHe-Z272T=)@GLiGj3d%Ie6>6SORMg*(Q?L#nwx%Q9 za`4o*aId@8@2zRaSEK#tv4<})@^(Xet;){yDN`$Onz#4y{|Li#oh*;BH8uInyJie5 znxZhCLN)6nh(8blTbRh;8HO+UG}%$V&zOy~n$?&Y1V5j8COyx3YE?Vir*a8n<|oRQ}bz!1>1$!hUN6UKku+bnG zT6?qr=6p|Rdv!2T-fP;+w-b#h6I5h1G1(~4%8$k|Do0`7tJXrS^|8W}Ph-xbrpAz0 z`;+pc9kX3?wMoW1WoWADLPV=e^+piTB~>Fd1sdjjFC{7KQYYJNAAQ$=?rN)m;sdET z=0ByldSuA_WQ8x$3eIcsRwyp|2BU!);L5v}VrS54kiv*#F)vtW5OuKNVEIU!La3bN zSC5hgyNFQjbnAa+P>)bp<4XoLW0|Y*)Q~P<6bNM&6b^b4dW=&8gNOSEU+pavc%KmBg6fJg&kkxHx@Gxqa_9QWhz7%zios-RKPQ%uUuTY5C0Vk zTmXDPgTHxT*h)zcV&JoF+|ids>ro1DzTnHr#yVV9*?u+K(5f$}Y(_ z&a-Dby2V!wfBAyMH?0w>rc?eV^`)em3)N0S6`ZZYte`J_7tHxm4nP@0lB%^+G?fiz zM_MqDT{js%t3hCW)C`j!WY*mX%pbp`L1nOyyfH*nH{114**~3WF;487bnJ5)@`ZQ4uALom9`2^bqLt>d~`1 zYnRuS8_lm;dn3OvT{9K}jfQK>bIWs=^aeeF@d)OaUcsLS8TMJvmGX=s2ato=4}!kk zl3NlUEG21BE%3bRMN^c|WzY;l%2aSLUNq%3WrZkgnzeozP1Oo9DoSkRjry&8$c?S8 ztpcjfiM)#17n&co;B35#e0>)DG(|4a)r&rDOMs1P7zh}k)55;N!%$!Yf`|J{{$we! z>u?W>@ z8g4(7Uh$A+!UDTFs=yk}@aZGgz(m{e$_(@Z*78K{8G|^@sWJq&k0A{r8J-j)${wvB zj3G~mhTY%2Yr1?)+wpNr%caEnZW^O8yIcQLVd9`)fs|&yi}Gg%@5@{p+Go5MU5a7k z0LmW;QcPJMz;80G$^OMk$Mu*g)K6XGKRtYI?8Mpe0)nqx!V>}&aBTg_fByGZUYZO& zFkiLvwgE8_O&?uAs$yAB)mrrJpP&EVN~#bsA(;vC zL++NN9SzCs)jJH3#i?z(6)%DkYDULOPCnJ+m`F5|v(b)JPuGbGhPKK#(jR5K>VEinl`imp;x3vI04s4uH4H|*8i zn0>j0?6EJKjibq+K8Svz=8rbIWzt7I&>Yk~Rej6!taMCkfEx)S4oTd9H8t z36rJa#;g+`{+4Vh>`U6HNaU4&(#&*MMJTtXPL=Und-d44`RS3)(p*~wtQ1(+0$L07 zX{o$4cj;S48LivV7|d-bk?yyeut^%5pTeoP1!^%)&7L8zdGLHqaTo0{Ka`l&vW{<5 zQ@WZqaZNk(re8}iXe6PVE5u;xJS*=8Q-Q0O0s)moc-Hx(+fh<8z6$>}mFtbVg^WbO zE(&y}o_YY~bRfVnjOOY(>K{ISS|5HZe9@u z19t)ku@wf`#rHBbq@mNtQtLV*1FoURX#nM>S&wD8NGk z=tnzY)mHDTmGUL(6|hW@ybP&mfyWu7gvQiRTSsY-!#yAr)vOU33gJ|##Y~j&s}i9R zZGgFwk-9AnTKA>v^5SfteGME0<-JHzfh(F*Ul9L9Fhw7aI_=0-?c{v;jbc~7WSoF7XXLU zXF={zW=v*n>~r2E7YJyuupUW55f~X=N z(3VmbA2U%!lAN)!UEaDk+ELf0Nij{83A2SLcLhJ4?-C~V1{4M?x{zw7J+;sRi+~pwniq}Y&cINOfX`)R2X+1mSt88M&l{EL5eP- z<>>B046h|a`lu;w*KALkNg|T!ha%XUe^g|TRdbCQj)zifFGIlWCDp-b$1NnZ`P3y% zd0vf6UAV(bX>RW-uZ7WXLwK!Al;r2xSN#>Y{?{(-Q%#@hCr6=&6nD`Jz$E@_wWg+g zZ*TThdu*p@uyyLB`Xh~4sPDZS@9%DBA2?R!&yA>pS;utcI&Kq^Xv3m4Lc^9o5Y0^a z01h<^I%Ed!EWd#x!{-*~#@1RCXy#kKGHtW(%9R!rF3zqkPX3o8+-n4h=hXtf0KSHn z0*~l4O9oNx!B1JGRMSXRlOskRd zcPS!MEdERVZ@5Z;mY@m<7XB*~SkhsXuv79HIVtO2u%N%Me9JNE+Hlrw+u-jiXKhuNwvhNten;RE=s7J|l{aT0?Qj<`o9&_yQV76O?4$zfca>tQiBN+SVFwPH z1FJz)Giu%Qp3O6rzeDfrs(nX%!s zubGR}}vocbH z!R{RQX1Q?9L(MvsM>YPymxE*IZDIGpl&l$$+AwbNSsl44yzj5J#?0qhzyPcuMW*W| z_3atmdeVc*_vZZXZ^z?wK7LVNB56hpOn3f*x+{R#g?i>B0Y^8yCfoTFNVV!OqROqj zJ2D`G9b)JP6Y~=7#0o;Sz}rbi)SGI$<6Fx&RS;9*Np*y14Qp~WFDW(1STlV-HZ;li zn^E~l1+7+W>3Q{1#lFNx(P|cwPvf|I^k@S~W3*Az3=#R@596BPFRZr}FLa~ktrkWj zmPM_-DeojJVM2-ck46Hgpr6CXFB}^_zc_cPP@pZp76PjkxDf)EW;=^hubtNa2zo~% z6$2=!RKZ0{6+NGIuuu1o`bMy{wyNx)^^OM<{;)pa9=JpWqSudKO?XVG1mqN8#I`xthM{~9|l z5+EvI!-&2#Fzid^>CV2|hyTYRd4VMMNehf*yCLvr{&U8PU}g%4U}!^Ei^YFoH{@F= zqb=k|rfvExtaFYM_)qFlqhK{^Rwhx7?65`$G0o}T;EYJg8F4hUMc$wz{ib~8D|%XQ z3yetI0S%)B*6BM|8V{y1B3Rx71m*Ty#lOlKj4zd@GRSjFTluIocn?Yas%6xq}&YE%Fr>bUfe@$p>@-x9p8%|nnWnzJ; z+81leO}M_bcnkJ8NfWTCT_)oggNIjUrdKnppO6+-N_b{PV}pj)2#5OlfgunMow;}d z1YE-x*a7(t4W2zzKKTdWFSS4$K!F2?bU8E_&?Y`J-q}#gF+bbXOa!Ewq{Np%3~C?u z@(*#8xW^Rsy4#EvG?LI4^Dh2@ZnvCj9OVr1WxWT7HFB3YO!<9?b}$9oX^o>O=Vk4? zsTTe=EyuAsDDdfRRw5qfk}}PZ4z_PR^0)cm)uu-|A9yO%nrSAx$d-AEupqw#XQNIF z(GsxK{&0i2?G(MJ>w{OF+#?V2G6ZbTUN>}BK2FI{h2oNK)i5ZHk6BkapJ9Dy{XNzI zYGvw^VtUh3oT(y_KJA{;sF@kpapUgYJ=T?TanxII%#pr~vEo=TwGq{%m%bJxIg_3! zQEmT?IR+1`4z-UiTtPU}N)-*!)v}SK!>;7f>Z-K8R=MOo;Y;dv8nXy8U{@w%GOCaO z!FbT*lBI&E^qN9J^q7TTxr8ps%rEQ0u@mRlmKx8G%74`hxbWZF^7N@w<*zI~zA4iH zH+W9ko(eSpWuhZlEj8_$x)`KR{g@0X2UD%OQMn;M9Abiv@^&ZpWvx`F)(9IP5xqIE%z9<8d4^d2t=DDsOHfhPdLeopZV<~uF@sXxdM<~suOm1D2?ua*Od{X>#o z@E!3N8t(xa7WF+oV}WEKmy`(y`LtV2;p< zDFwo)kQofDN02ZL86LSGN|@WSz3Kt`;^`u2OAM(DPixQ~yt!{&tMkUVc8$^_4v_oE9&|qJ3VT%qisY?OP*)#K%yuu8j)k(%Phndo} zzVjrpfkJW%7E}@3-WcN&QaxY=D-&NX82d{c`pCY$^6%8f6TOnZJwp zOG!VccpXaOzmz{!;sq5$$4{L-d4A#*!t=^0xFBF~fFb4p0#*=|!*49hQxgASCbp&6 zuDf08iz5X}GORwN+~})qfNSHU%iYVt@*b79>-cJIzbCJ@d(2+IwS&F;E+;(~Y#|VV0aBl&_TL`ZbfM=VjjYw>hfSOBzG;)z15~ zy{~e#=@M0@JWF(MP)k&ckq7@74&1mZoMSxMW9`fGk2CeD{ao&jF2JL6y*?%%kcLyb zqdScxGcNJ)1P7Q7lX#?oRl?)hGf^kX%~G_WE?mt+&By1D(&5+6t}RWiE#VPt1gxT9 zXKAkR-{8?6z3Vw!*bA)SkR#?(yx0HWzjy;Q1;p#^Y<)$xQoL zFhx5*rb?Qt33Gn@>^L)| z$AJ?U+vRpqqSG`4dq{Q%?&s%$3TVOapkGLn3gHd3P><#OU3OveM^7B;8!D}p^sQc; zXM2tghbv|9-~MzIch^KH8SgC7RnDt!>5#2<-<6{?O5 ziTp&XG79fQocaioGtc&8u?=;qN_}DW70pO$!dbzWtXfgn;yiO$(pY2$uzl;ohNeh6ZQ{c8PHY5jI@t*hBde zj|}lQLvS-cm?2!Pj}j%(%?1}jgrfXpK|hXX+aMTF-twyHwcE8s!IH6*K78g<#06w` zxX!~|*azVqgug&QJ`yk@3&MnS!XwLdmIFEM85(JSVh_n>M1UBO;l2)j{@VuM{LD*{ zk^tE*@6s1rcR4`@LtO~y&%g7+otGe>KFR*hS<)L}HgauWyZ3|l>f4!0-T`cC+CQLU zG5FTZM7d>*Tr!wwRS}R+@5|cXk8ua<=+j;s6!K#hY* ztue_-V9AjUSG8|Ha5X_KThn;dW-WC4^|aQn5?xQ&4MWMRJ-S>q_pSDO$rEMQO&9LP z$f&DwjI~r2w~RlpKn&f5U$ANduYsgMl3NSf^K?nn ztc{QY4Vyxp=JQ5Lg*i=5&eHiX4abuP;l*Hls)>!tzP)l=#XHKQPTz3N#F08}G;How zCW(y{s{li_ji7+;g_4l^>?snL8s`#B#+C`gn^?mTJ8CUp8~#!P^r<9`AyhzCkCoKO zex^VS!Lkk?K62vKzM*fS0}Z1r>iDWz@W_ytYE`I04%B)tV^brfm89S)@)&LDf(eC2 zoLG=2N~lSz+)iQB^vFd;%0%)LNva9cq>tvp!vwxQK|I334JXgalGuPC45x*R1CA+e zaEbMZ)&DdW|Fu>MCIW_AYh&}R%3qrcB@L3?KCGjBbC<){35W}1gzVJyEI7~<1niM( zulA~l3IZDY)wOs!CA#>vAP}C)`OKAq2NGUKisWn-gbwxhM*gA_m%~GO zxW?0#WxP=(_2WFvZ1)*w>qB|ArFsIp(Bxq+b{xQ}PUZfgqbJY3GTPa7P?(YqSxY;B zeNL~v)}*lK1`C2;%16}bgDT)*J~>o4pbqL@(P6uMUmZT@>Z_|w3s*~hA zZ%VEcw`gEOu@SVW{Q#PEx<|FYotG(y2lM8Y{rBpt*(`VC-|?5Nz551qi*afU;KDu_ zO0IQvP+-@ao=NmMsTRNy7#fCMwkH9kKye>!@Oo?90MhIh!~>_%t)_`u++@^ErT zYO2L0P0O0DL5#oR71ht_?F*cunx=xT`^Aw}&kKH1O<(e9uS#Mnn1nb@AdY71y~-r0 z1({J;kI|qO|JAYOjom43@x9Sz3-#i0xY`Up%A5SKxE7d0v{Q8G>i^r|U6wT7Ax(0% zpz0WpR6yG7Q(QnT*a||b@V750Ol7{ml2}tHAyE7`cql+{@YUYqhx#O6Ay9=AWqe{o zLd#<%r^J{3LH2%7N_8;Z2)a}C{nY*<<#R4+P{3i$tT7YI*4&_BPvcZ;Y8>i2HjJe> zoJG!MsN^OY{!$kVhgq|1l_!I%sK&}jc%{-_l)DkG8U!u=sjxyJAecr^VVOBeuF!&D zMG7p`&TI<-V=6-bvm7V`eK^ckX|NY*FecwE*Adp`akYeemq!cqW*t|?Uol_WdEq3N zu*THzWD}|oD)hqP%72m3EO}N30<{D6Jh!nq%`uF^ngL&piK<7>yb}#dAT-LGP)&RB z^DqwTcjZM0QNeqt$fLZ>TU+A{>}w~jrd6J$w1@hSt0T%^xoAT$`<6bkdG{dvy$k^p zyg-w%2!{k1r(K`(dTAf(xdkhWf9>-x32>hQk&nIpajy{5zS@0np^ z$ac%^6pQT+^czhbP-NTb;0S9|`|z%vH&*J{jc!=_lJfQI^-QYfxtBm{PGiqL;0|g` zhSSlm53X!4khqjzYmVu?q3-SYCL3xD+H=d!|slp{BmCNsBPy!)e$6iO*lMsd2 zBOLTGSSoN(OR~&}K#aEn3;mB3Z_1Ye)K&bx6zW&-(1}C6$9kX;;7<;=8M_WYk0IPt zrR$huQWh%J1}#KMxeW3HP?G!x$5EPARcp41WQcRzR`grNG z{5IOEGO3d_CBcY=lTzVp9^@$NN8>TA3;Jpv3;fZ$vCLQ;ah`MD_ARU=#oSUMUvBG< z0h!k$lZBQBRv@q{;DB06g!{?_ZmTtEga{$%yP((ysGONv%ma zh#OzlzDn9UnajII$nE|}eTM!MDVXx|)S9VbSfkj+|Rxn%r2uJUekQLM)lgl(F*%&9=GVV zj7v5P61gL=CO}7Ffu(iT?ILuP#MP^y9_;GT%bvf7`i@zYvX3WMtpj!Gf?D9EG(e2& z;6K>TXwsrR9i?MsoD@UMu@h&GpFEF`g4`6^P~t6>ft5tSdZX@@`I1wv^3=hCRX$A1 zY$F+}=J8W{%;V*Fxc|6m3`$Fp)lg{i>zC0y1VZiM>qm$o>9jwU%LGmL*e-;|jPixE z6Yqw4%DV;%L;n*UraBmwVov+R<%0Lc>{YvP3?}DUr%+pl3k9;E}sjrvdqf6YcKL7iB%mgNiLHD=t zO(`lHTN{Jvey9x-dm+eW|Ji}6-8|mF=2-c_$mhZ2V!ERn!-T>19 zOcWOeOSz=oKA-jj{!;OQzzfj)Fi3345yckH!N6h%zGO&?8{6$9{|+4y=|g3 z-Zk}eJXy2FXY?pnhNM6*5Oh=R_Q{Js%z{b@qm^;HJ5>b1yz2HX4XTcMR08_~_yUi- zFfOsIH#x5k!|nHnFlH1JA;lo$)CgEzD8v^0J85U5EqZk$ zWAoKov$mG>cA;&Yl?^vKrM?FfHwM2pm6a;+wHtB2Mj~!G7|AbgPpL1O3MM|-OPmII zSLjq8<};2rl%~qQVY;m>$R{v>&ny`0|KjNKlfpaT?{LW^{~fmeClIWPp!5xLVQwNdeg?65oyiRGuQH;xnt%ugPakJb+jAuip1Pppx#Oo;Us&nHT-AmZ z0Z53l1cbprrZKPN69AEsOm&=x^^@jfmS;SCWDpwGWJ231&e~v>#m@pereYQVP9FvW^WL?6Ke{5(1U%ML}jziA#Q2hWkjSNry;ma4-;1 zn8>NgUecyseFke(Xh!~o2;orA;v+LQc-nfNsV)`*HYw@Qt4;@k|EkGY+tabW&;f%? z!^o)EyQOQ|AzDvrUC@T$UGZO`z=v9^cfJjL?G)q}n|bITQ^=3N&WG%-5tl;n>-x+m zQK@oswVlxOzS+aKo!WJJaslE#eTYkZz-*PKYhi)L{LL*_(ax2F|4c~T@L`FLX1g6< zeD6zJKAa9H`qD>h2UEM97>_<(F{pgQw33MH#PqM?7iuWY+IM^bwCs?3bEezJ?HG~yS>kD z&e=^ik&%595t$L$=g!dt|F))h#&l_V2fV3 z2!ev3AcCK~2&LEYJkJ#X`k?y zx?onA{DEwe(w;fO!a*Wn$b_K`0R%;XoC^|>{g8t{=^#|ye^ z*d-!cRWM%`YJn9bK{JCih}2+&3W-9HE#;Y>m#iz`g)M-lo;R zAF6P0NV}royM9XD6zp4QY4=6&Jfj%tB zHgEd(`Rku0=NgDDZ?LxR>|K=Go`A|NEA(DiL)ngd|D~to>(_(wJHi6`?aNXEv3>^d zJMDbtBvJlI41qAFyIU%uPHJCyRg39vNn;1W@~Tj&Y|&SypKWz4uMYM9%nLQxu6lWO z1b;K#7{SyN{#}Vwy6&!jh1L4?pn9PJ{~?quvJ^rAK)VrEYEw^(Xn+bRxTNc9A7%yZ z@qYcr#c*DnEdu6n>hS7X8mZ2a5w6?x{IVAlX}v{gILwf>XhCD5TOShPZ=(c0UyOUV zF@Cqb-wS$?w{nF#4tLwfXk8^)N`C{Ty;{nmuhLJ+d8K_den^0UcZq;KfG*~~WX2^&bd7OJhXP44`cpUsU?ED8gkWSSfhY5xDQ#v&9th5&bDhe|?5i5je;=D#Rd?6d&W&BXUy)@DVHsDB9BwyBs^F zh(hp7ocuTWY+yJvKbOZG0oC$oXgpiMg+@*YWTbvGj`uwz()mkr3lMZB6Ah>_`QY)7 zkDtGO{0zHhqCyIseEJF?h`Nf@L1iERsEzKhjbZ_OE(9u#y5NsOck~;#$6~;0oJaUm z$Qlq(m4Oj>hXshN`vVyoo5EJcDVqg`;$8x;k*(s=qpN`9cpXR=8e+$3WcdWe=9k44 z3Zwb$*grPFQsEkY?77DHGxI!UX@NWy{E_boe8{lz?;6{+0Aa)3FADU32_zR5P&kZ@ z0R5i|U^{}oJB77bpn#8>pCmwD4IeQrNusf(Wf2h`N;5OQPuO05fx-%9~uL<5d zCm!)d!2Gu|6uZYny*R3Z-I#SX{J%6tq@9Q`Nh^^qMqqA){vl38)77#F1Zj_VjSSpo zlVkd3G^}LD;;Q3jRS$PC#_!&;q%2Na0ZCqb{gskON^^D@sd;!%s{Y6hW$I;YUPkw_MM_2ntNSg}&sykJ$J7-tuP_?5Ge2~?1_e7 zu^z#hOI8F&e1rT0pcmNpc_Hmd?F&iIRX35MABRHf!&UL90I|TntjlFQ8hu680xD=s`kxw& z{}hY}X^=i>NrNL#h@_OesOYFfuBd)%i;Y(#j3G_o+2H8Z_rtw{Ul05}qC8f$4^MnI zIR5?6IDgTD|2UDMkBfg*Jq*Nuz(ib~3>Wak)0b1+npi4ep$NJz_=KeBjQ9+FDLpz# zaAYZh?t*k23{2#!G-WKb>A=K}k@d$OZ)HGEGT95K$o*wn!2BrtB`+1O-k!WZNx`A|fd#p402?(WZC{RzMaxh{auz%KWEVR5N1u`g*)cqHCpJ$vaV)~TzEBjjoS4>P1Y zcO{G1zKnn*MfX1YD~#i6>XC6f-E5j`>o0Pu3P%Ddd;{lPv(zSp>rsHr(VT8MSO3Ty zFr3RIr+yo^lz!;~Cn->;#gh7aan0cJp#r3m?Ff#!ekVU4P~^(nsrnY<^p}dgxYP1* z?A}*#*xh|)5OpVJGnyTxnQqC59>#Yip=h54+D5?WvS(T0RgcRPEjq11bml0 zfVGSNfXKt44foq~{9Xz03*$>NWbsvLguCpyRggbkLA+GJyX@%;MqUX0!qfsugm>Ay z16TT=Cxrmu?y?8rjX?q&9DNEXN%4=;pi6+tN9HNzKvxaHqjXP$P^SV2Sz54 z?#(@1@aA8teJKq}MRp2|e=U&VT$S`JmdH{E5oTOq1_iQZcnn(_>8}gRqZ)1FNCng% z2LB#(^jrRhF9^Pz-M*M@UyILpbXua+=kEd`?zs5pA{Nog?VtGTgDDM8v+lB4Nktj~ zzu6Uvk@iqYmCh@|2>!Zzca1Q}y;@jT_Z*6iKBiAy_3~L1!{;wDNtsZjCCeljLWzTg zD^AVzf*K2hFm|wZ!B0<^@JD?vq%uDC?D87W_Ba4eL%F4^j2uLQ zqW2oWMi_!WnpIuOCHV@6f55QA`t9^7;`wkoG`cabvTu9~<)hGa#T0(yu0Hy7tY^zG zpFpu%jq}R4!l?!?Zh;$mGl8ZXp8nEbLMbq!zdYFY+x+>ruYk`nh(cYkoj8M#K^p;6 zk|K1<5cVo)3$HPyIQ$(JCEwVl*##4SaNe<^`c>m6E3vkUpYCfP6Wz;Rp!QYcN4b~1 zo(ZPtg2lV+MSgmc_p#T?^#$F_9ulB~;C<|wJAzH2?RX!1MFd9VpEDlW!Cw^v)UUxQiW5*5xVnu%4fC!Y7YUpC5Yiwyl;jLUij_E+@_%bL= zN&4Y^If97WVl=12fHt5>ML7vi>J?i+=e$K-g9ps%t{J#i@DmO2yHz#@LV0Qn>Va-F zz~hqAhSP#mMS)^aomPaW8;s5TVv2ZxxZ1k_b@5Wx1&-d4Ul1E<SV__>XhQ#EiT== zkirq?-uB_4zBi)fi`wpO|8?UBU)~qd0_nz{dUWZR?WG#B+{@l00-*xl3js%_py-U? z^$GVvK#v0CUN8gx?vMn**hgjz!#H;N2MG2;c)u7zBv+T>ndg z3K&aL4X=4MCq$~QOcm+{4wR(yLyu^l&2qlG;GRTkg9;IKvz;g z73`=>#)Y_X#tV*3J&*S|JGkKeAKVi=8cCl*A0^_5dx&%u{DtNRTBS&-uVdT;0p&qf zJD_lI#FjKpZsYSGf}|HM6Wx|J>7H^));fWItmk9q;D`gStu#93UkAjICkrs~`AzWU#KKRT2} zW0pwKZ*y09u>W%Tv$0Py1LO$@!F;||ih$4A&I!-cL<0NRQL16)e^_P8J;;8EaE5?F zB-nylG`pOMB}^REC#`gW3&*^_{a26Am4BUmAmDxM1&&{1|8?Vk_5CtO`2O~zQ$LM_ z%lJO_DFkMw2zQ5Jb_n;^l@^FP-#9GsPua@hsumRf=qb#BgQN5zl5&`TI+nZBJsBbq zx?fnEcK`&HHZeJfE`TKa%?^*P1Dxvax)tHUw+m@diM>?I06G-^5Y?wHh7{=$cGS~Q zPzpmD489zH^1_o(xm%%}kJ!a}0y`J7I33CX9cRObX7a$r;_i@Fy$dJ!Kri{YI>P4HLn9FdN7 zBSO2i?*_)dhs)S-aB@(x+^9z}`t3wLZkhEV$e-Uq9K{omqnYC3vxGmau+jpnQ}>Be zARNUX8~!pu;m8YS&}8NHF2qhJRQb>qmhk+W+4i;gk1C)ujl?|X8>V`AI&ejMIIT24 zo(|rfzo`N^tI$X2R=I0knM098=RfVy$Y1v-RT{F3i>@hV7jO3&tG=EuoPgUqERTs1 zIIUV-LeoUDQF}T)Lm+gQYcU$Tl#PLL{v1LJ4BR34O#zQcT0uzk|N1G-Tv-%>X+3Js zIV;NhO(YIP!aZC?53~V*$aML21MJ&64vJjhFXWlxn&x7?xjj z^>?DDBzv#>H>kQ+%f31d?wn%OCcEf==>6zW7L8dVMZe8m<-z{T<yfDn#S+`3if) z`F)-JSFVTY!1uQwMJ9pQ?_;0aL}xlMw;?Q|1IdUaLdF7)Khu(e_I_ksAVE;c%RE&D z37&|h1NmXwzo0Dx)qC4lz5G8+l-Zzy!YP=&oDGwZ{b)M!~6^i4#u+f&fId zv+jzZ1`!UH-R(FqYK-z&j!3%K0UVM8lm7&W?wX`D#k?83mv(sk2_otSk;_5?F15hI z(=9fNy4f2Z+3aE<0iQHK_wADWs0eypL`e2U>>xd}aM5NwT)KnDBT`U9xyzWu48iQl zOMBpu{h<66OAY>WC=}Gn%#9WQ2O%?Cn8DM9xdD^{M3FJ?mq0wJTYgL(H&(9r#Y!4f zNT1)7FwrczD|K#UBcgSOIQ{_CLeh2Q{f4<9SGAqr&b4poS0$G5mz9K95faeKE7hCX zq~77wISh>ovDc4le;9t*?sEyPxOa3BoaYsekJFS4y~M_ZvH^>rAdh(PmW`?1Z<{Se z3Ug1X7}2#WN{j>2%4&1!01 zN(nP{!CN+k$(3l?gRvQn-x|l)uo{!!nr87I#ZSNUJD>XKAxk;qee6|a^I(5h`Lnba z$%)TG*b7&0g@6Hh8T04h=#8!;3KJuJI7>0O5_Nmssner>zm>J;-&+w~$|igx@dNdqxO0k-m?;Kd7fOV^3%9W3TnF+-v-xD@beiu}6x= z)Q<$gAMaz&h`=ffgt35B0SPpsLrQ}P3e`O)2K(9Dlhjfn+?N)-_XAyxivk<-Y;^Qq@p zhN#Y+%L#u{$XpLoupr7fB~RmNxQ)1ol-3$ia&d zDl+rIUvpT^l`X0`Lxgc6BToBgkxkh`Aj_loEd~s*ODT?K;vuh-ht$hEq8)BuIe&eS z0>TP@f)uCq$e?1lm(M&GGaNa{0hDSCZ7){aKY|v3tA2OxThH-XoC{^?P{^+`vlqXN6b}ga7v0_w ztpYwLJZWixQ`IqS@{MyY1Xdznwew4*EQaBN#GNDT@^@f{5(pfHVEF(iHb(+Fes5!8jG;K@Nm8Ok*r z$VCJ(IGB3oA%KByMtEIvV9{Ph_2KyZHA2UjD?rgs>fJMgvyq7(5NQY53@j*QtU79n zXD=0*=j(}u4Pf6s@{P7H(Hd|b6zrtnh1Oqj?cZ~q6tkPCsK3&v4?XTF+6`vDQh zsn-r9?Gf5Ufm*h6EdkN`W`ZyvY!bWuA$o5Vna=1tI6=>NrG^3ldE*AYfq*K6ct%x* zx=A#Q=tkXmZu)4b?eNEkPfU+Ouf4QD6y`F2Qv?5r0xv1dyfW;wpZ44l+D`5N7e&P0 zYh+yV6fNWcfsW+5^yhX%SfwDA?W(IJ*d@%BS5-7u7$gy*PDK!ebW1PtL5|R4BP{be zc*3FT&NXOinq|vy&zNQ~8RK*jBmu6#9Z{Whxc<4)Cg3I>b>SxNw^z}OK7R28dPWYM zjVBQ7n9I&~;-Fu3MhwZYe`Jwm)P4OuPsvC2=@9IwmVmtKDU})_+iw{suEwLrn77}x zieN%@&4}k5Ke~5;NC_We==Bcc&wA`Ylsl+;I7T`E~8+euWvQaNC z<6h&J<;(VCQt5E?cQk+5o*TZnYN(xGzHDzKmycBC7wxq>Aa~^c<>v!zLSFEX0<2p> zu(T&>!Jc7ZuO^=U!tQ4>G`rnGn+3_&V1q`?Y@j0$IArcHGa;Gd3y;4E~#7JRb|{jy~L` z&M7drnj^6ZiKggL<$w?og@fadU*OGY;f$69NCX5S>1DfWhj&;pg04b=0!O)jb@*6? zYm)T9osKLBizN7{E?eo^;0-oYH;x@U7IsU7WNru)12KoIG3jN({ zf>gSRM;SJUcsq)MMyTTZh|5HbX0WeburcNQ%1mJjfnqyF4NmY;7bW;x?L=oJ{pe1m zhRP{yEn`zJ9zUPP4T8(xFdgSLcXI>{v!bLQ`G_TCIt3;I;%zjPKiy^Tx*#_faSCpYh9=SjA(!<%3f-(s1CdW zf-G>V4-gAJyC2e}Wd;;}*PE7liW!XRg%gz$hEjr{7m~pclUogdCJ{CGlXa(` z+Kb>XRlu&w2xwIjru^4K6WFOl`kXwiu3ACFa>Y&s!20ynDAcKE*gj@xOg>^;)sq*~ z)$Q1=1^)?ubtDV^#J8A80+grtrI@e0S-OM8g;oBFo{3fb9lq`=eIEBB70`{=zwXffOl5I8vT196}3;KA{42gdM?zaacQ#~zKvmff$q zcJLtbNKf?l}5(mXeQ3u=UYL5*{7jX)(C{OmyUiQ7K zj#r+<+Nf`3`UnQ^A4e3ZdRT(r6}|*GX=VhJTTmG7lecX6tRkm#B2JE0j#Cz2 zRkvE1j?~gdqm|=0QNPPxV-7i^ z+++RxgOnw|k^8KNbj9)Wg>QG+lcMk^gf4f0U}^85R^Zx~?L}$oLO?0RKXQ5cc`MG7 zsz-Vg!-?Khfy5<_e8Obmry{lj`-oybT2Yr$Sb|;o`Nw|$y_K?smap)a*8SQyefsTv zwOmQruFtLZD)~21er~Z>kl)wXb64jI1k2AY_Oa)4f^zxkx7Ry@jRHryUpc5xzrBat zO~BP#w(HYx54H=!E8F$yx1W4w$Y?D1j62v>>Akt~rY3ts6VAka^~9HXpPR8%>LS%Mp$ zju;M3J$3k#GnCvT@C{+CsD~V=qal=y#<$pob2c&g6YGhvNb%8cU^S5 zMEy?jQWJ+luRIAKF`0?tB}RY}#(U>|1^LCJaBr!KS}I=DYvLHD8Jlt^2s-AfF_pr+ zN=0xSct`S!CydfnpTxI-wOJ+BruPEd?D6#hj=fH2y^8(;prX5;a+MScC`MK+Cco>r z$4U;Y?t1J8AmFSEf!D@);y=h*bjS`oc3n`H90a>Ouvxs3AXuTEeq6D+Ou(YrRkZ0$ z`C}}Gi~3y%=&~QVfu!PVKwThM&ffoH-(Q#b*I(Bx{o{!3RL_=M5RlZ>MNTBbyvMHl zqNrKURTkW=oXgZf$$!1h)3W3m5>7o_zMkD#j=_mnQ{_1?epIgpUaRtGvL3!e|Ezsxk(tFW@ioR0M^EgIERt!AB!V zPmw-{fUsxot4$>D>fA>x_^a?}0(>wAN$drw1zF5^ zdx!7mTyde`&jmtOl9Pxa@NR1_63SFTfedS-E*R1v)Vr6$MEQ$H8NR99)d}o|0|pZG zOclv4`2>1=#1684UwL#DFl8_Y#AtUG9K(LpT$|ngQ$$1R&2`+TCNS6Wm(L*|g)5_a z;fKNjF%fZ)a2b`<1t&u$q*q#NP^t&jQ|z$lLN7hSygM9SBgETWUczO}?Hi|_y&3-j zdrgxm{dNd~B@R0O+3}mX_Jv*(JQD~=Ec2WUvLK=ZRjeHb(DUerEm&}XA#Q%@akcr2 zeq4hoZ`X=A-7QFTSCLIYfdPW@3-_sj65;yCzfb+H(r>R4KgJcfupX!sT-CE4-AMl| zg3%n4fa~xl2ur-{pZ%_NYCYt(Uw9@Os<$tS2O~;M5(3_;7xs^-Iv)i{OB~sQ&MJ5& zq2Bf1>8-0uNAs;V2`+crIB&^#s2jXg=haHj3u+;F-Db~)RT7%Ib9|J3d){f)B@oR? zrQcpko|YkXDhQzZ5$(4hdgA0K<1GF5TmWRhSWIe@)${CLKT(VbI2=)Ts^2=kV_fhe z#-FN2=(iW2ab(_OaF_!eD^7&2(nT;I8=Ve`n^l*h=sR@^6bM$DAKjFBQ}ETsRUg?y z+1OYmPyFFu|7%uMcls3X<_djYhmz7>H=;YjEL^1K8jZh)(mqzAzX8d}As|Rf zP#hfZ%(Zc}vmG&u*$hm=0P%QEF7kQBe*uD?w+keC27;s?90({;utec0XtyskqvLE< z@w%gM;TkTLQR|EEnlX!0*h3K^hR9->eCE<%;T#X-O)vSAM|_FjDBl7%mhXZK{g1#W z1O$o+6Zw>ggQT~}Q%3RI=Qf9)AH#nG6b@pS1JQ^Vx&VLWWv;N#r|y+MznR^J1UR#W z7sRCsC<&0ke|lettAL6TgaK271$JG5fMgV8esup}b2N`8EZgJi>x}#>f0*wo*-M^E zpPENTzxAqsx}E;lL}wBDk@BI9GvWW4uY8eS>(peUXFvAliT+^ zWm%5azs?-62ip4UgWNT+zc0J{)_ti94)=WHQ&?yJn0YnvUENC?l~OM(-P!%4#Vvmc zI(5tX-}+rPej~&w)n(sdD6_&wuO@^aVsrA_}V{r2J^eIvsKZVK}H z?S1jQ8q09uFcG0=JzNs*j$ly|>Me*iT-|1YfFTFoVxI{3Btfkrn0|XV(*ucYgY2cN zF-~!GoACCg{wIKT<|r!I0-A*9;-62ddRFwOA_|11-v!*wVlS<^3(~({DhOZOv(1nE8Z;z|~N{_4v+A5u|3(*+l7jcBl6qa9@ zIC!glI*#!eBWzB-(SCawFr5MwM?jUS7yb57o~Qzjlle$~(go4jZ*TlZ_ya7G1%ZHI z!ROOf8GZ6o>Hk%da@NC1ohqQ9@Hugo2uQbYB4Fx*NrXrob_9G%A@CWtrx`HW|4#|I*G!lm~rjUIcFJH!UD3X-L;`tn;4n}Y!iO^L*tka$? zXfWLPs(x1y_Hnut0;ykuz`91e%kdgl@#ECrexEgzHu$kD2+T{ghywLP zsP?|T{#)BWzL-yLUmq&R@43_5yzp-P(kw!^yKL^Nb9Qvk1;lADe(8?x8Yf3c4Ap7B zeKO(~?x=*(?shy4we**2oyG2qL-<{v|1hXAF^gBTI7#rn{D(>{0<3;sl&+>C zd!b2>eNUzQ;r9i^l1hUSJzm#-{D)STB3@8y4xWoULYL5%a?D&(1&$Ft#!yIK4|#~s zL7YUe1KZh6L9yn-P!Id09|EEfjb^?uT^)|~@bqN@A|7DSn2<~NrBl>@0D7w8r(O>P zOpL3D5RXnbqAorx3|_h7$PvUS*=tlc5;&McY30TG`HlEe-2>|z&2S|>_UxiBREw!b z(89Xx*)kNaYHeXNoV@tB+SSkPF;37SvqMH;j3PO+XM9?EMzAbhv14V74&N^OhytXs zYkO8f$7eIV_pb4^RE`AIv(TkT@tC?DIGEVu(6ll^RS@kZB^73aA2+4|w;}=p@rY@QY66 z&nkEuSXD-GFE6+UwKgVvIxzMW`&272+0#>S9G-kSflOFrMGy#(4B>>4SR+@UOJa_I zd3D4cqoIe{fKPsOcjS|J>zXTbSgnX;9B$&LgX78z){Zt)LsSHPoS>XxzD-Uz=#>ae z1f5JFE!SfNIr8Wv-|fLklSC^nR7(7dmhHs|zI5N2IdwtZ6j`wH(h8KxZO@YV z$|L@U9SwhU0hPC}g=GTu#1B70d6niGE@>x1G`^57Ywh36(h;nPK(W-{;ifRE;}?`U zBANEfOVa-YUM$=-W=KqSdn_Q?k$t<`1#m^iZvPMbU4`ylIhQHCRqLT_S)zdM>yGhx zwaXFNU%#t#k5iFZL239=PZf}tNOC<0sBk)}gZ<-|%$KSg$He$u<0PEj?KXA%;!plv zHh0xEK3%ukiQ4B9q?VStdgnNCJGll9b<3KErR?%a_Fwh6a202>QfWHgcKE`1@__hPmG8^29EGbBWpU@JC67iNq&O7F6eZ7 z{!EI-(q0o00W0WCd(F!(PAWs(7Y1e^7{E>5uiCxKV=xNqN;(n3I^nrJk*ioI9p!q4 z`BV$gi3L}C@8Ohy#a`l=3IUZ?;w3I+&Ihwx9oKv`4x105Dmh&uUCDFN-C2`2j$=&f z@K=oEl=GAw`DKaf@=ksIq&H54x6J8LV8G%bl=fPH=Bj3?Zof(r3j1y|-Ykz;k6KFm z5d56CqDyt!gJ{$UB^E|;v#ON#G9Jy;U>@BOEZXa~hgmfswLr8u{0Z_(dpb-bmx7UG z#3s^-cFpav2X8^n5%9_LOG_v{BEr&s>e;mXzX5zvr{681(7Kc1Y#jR%F-4+Y;9$NT zM5!Uqt7V5f*ntnpA081H)QgP+Dfqz)ED#(*>MmGtkVQDCSCtGPH|6>G4{(*H3pfMd zl7v{PG_a7MiZcF`Df*D7_=kj2 zG?a+LWdrGuAUr&&d*s5NGuau1-~NjcQXrm&v!HZAT$My;eFeC=`Jd{c1y)~#;~+2b z5y4x{Kjxo?k>mV4L`OV-Kjk;>-^;`^yd5MR!72D<@E=7%=zqa{t^!&msLu0$MKCPN z{OJ0@R@#RK>1ua$>s1W}n*Bf9Dgk_$#r?nHlF$@;l*s!aAnvGFJFGyezYraIow+$w z{=gIX-f$;HJ|z~J^{=PDa0G|Kp&T<H}8i9XB`u5e*-&b{xfWI8U$FOsZ zhV62&@>0lSs+Uex)rmXaF-Hr4Q=NlU0~RA|Y8D?SPRS)q5a9xN9EtU~Ss3HzoVSn$ z;zIqv`;1f~)iR8ycKIKpPCQkAMpRTn-ev?s$=mbxlD>M0QyNEhvtKY6z& z8RHT$D1kc%%p>ldBRGo1q%v^Ludir59Q>Ar<$d)mJHKluR2aODt@zSLGnPko3Egq{ z$xDJ=ATLCA8!9zCte1SkysXewu<@MThiVvchqS5I3P-z(+WRQ-dTOPAWRh-Llk2MVZAi zzx2&UsPMUF*q2oezPkD#b;2Qit+KE(}F5Wx@~z;fI}g zimPHfAlFo-0@{rO{+MJ#er2#=)F~5!8ui>=M^`@DWsQZ4@nQdySL&LNA7J`pk8k~ ze9E`rf(n1FIeR5W68`urRe@l{+i7j(_+4`quH^pq{@HWPp&sB6h0qP1P=ckhh2%sc zk*0Nx&1HC-tn@jQZ&w+M)pm_fdXr5FaQ(%{q5X)%pR!U^!CwVtNyjel zx4&=y$ilDkIaKSZ+{CacuXc@0C@Jr;ylbh0YU%GArLAL-)08=g%RN;+k_p5{|a1Sd$pIAvQgO(K?#=XZ- zNon-M>fs~5-lFy=U3$s)+ttw z;`ZK=?*h)7;-kQRF0!mRFZx!47|azE=(P9rHA*~<0(9jmVGF=V<||dVk`eW`2}pE!@|2o9#!jf02U}jTGUAV@{C}lhLrEy6`45{>W4Pd zN>W5ryN1>HoG98u#vAPZ@h(f+1b}J^4d`g7mBd^)&3dklOqM8F*$j#2zPJW)gV*EM z)QIk0Ck3ib%+kmunurVg$5$ElU8do0%z-~0Di zkxhU7p*)m_@=yxka~7okm*QWvLj^=q2wl}u0sHGgc)m3>oSTk%4uatV1~L{&A-XgS zJ`0C$N`M9Dr5xxiShkNE%{(tza6oVG@R&b`9)gi7KTv;?E7lo{l2RY@WgT2dIt)<| z9%0w{$W;aBd8Jzvl;+n(hjK$xQ%uAJ^d}OLfx4ELX|rfF29l*6{l$Q2K}2R?ZWPIo z;zHN|2*G1h&*j@C%{ySp>uSJ9G?e~_y$M|@7dxcd?^ks9jJd}qb)RRnDh<~0PoC2YHf#rG@ z_E8QL2+~O{*%CpA&URDo=OrQt0rmbm83!FwL>y&CupGg{yOaY<_^Uz#$3TkYxwLUJ z;@}Td1QB&NSm=T&2NK$z5i%U<97Lj}z!8Tt2SgSE*>gcvpCLJ;a zkm%`kBh;K)lNQJ1stOQ!8i0sz!8z5#;6kCKCAdli79wR7YJqwJL);Uaj$ogc>ZU*t z85klhxqzJo?T;O!vr1-EZz+E=q%*d_)6g4~io28?1 zu5GC}4KrQJ!8H!s&Fs3)+p$J_o_M6&7;1hSk9vWP3%lsZ`Za8}VaD<~>M+x2R;llP zwvv{0cAxVuRl#~Vp#1@81eL$!n^+Ry!N`Myjq&IGT&UW@|&>%E2^u#-~OTR zU);XqKR(IwCmZ2UGy6l|e)~Ufef58j=HaI-TgRWhe$3;+r^ex@#{Tt6`{Qcoe0Ar1 z9pz$u_hPyI(dyRj^<6ZY&D!pTH7;$vU*5JODmdM?v4XUESx=8+CPd?Xb3f zIJbVduz6J9u;bzU`u+_CzZuC7~s z|EzU*-r7Ig+_#p?RX)0Ptk546)@(;xWUP~o@7MWkt*mUFu56twZM|JbTjabv)g$C(}N)8|0eL*6mx{`Or8xZysE19bGmLJ~j{R zc)@bnI=r-HH}*f`9l?Y%f*RlkAShM?_E`&gNKj}vB`B<+5x!&667Y`jcVqm=?ru+B zysYi~mQZM{sdm@^9Pw55nDGDUSZ5FRJwT)Q}YN`3oN@X$j^rrQ;PWjogKT` zt9fFm+Gn+l4%P;A^CcO>f%e3LsNnWB%V%+3E$EO(8xTk|y>*e?#s>>fi!qIpe#WV@ zBaRxOhDY}aY!qAwz_R*wkk-zpE*wOQu^`6Osr7Y6th%EkzprbYZew0T-nA~_bPFJe z7Q?0($}F8Av8rfv<^vQG)T~_KX#_#eV-1dRPG%svz_MMy9{~|1uJY6eB=!M1uQUaF zRY<48dHIFvB=(qRaSv|Y$pq@?m7{gncG&J(cVDa%)o-1&VsgvMZ>i%tbtR2 z^Hy38K(-##+bCi_Hoik+;2>9iYNt!BlO^!qd-5O1Zw=)=xe)WR0vt5(G90wUEHn=n zH?WfR&grHR(%zYIl8A~F2oO|@)ms9=-H)O!P~gso_1&}0Jz&D=}z*;dM5Kt^= zPfW`u!hSI3BMY9`B8@?9d0H$w>!>fP2kz{~YN$$_G-YaB_3Gy^0V;SmZi ziHx7rUh4oTNofEwF=EXXM3LMLf6H(DJ;fE+#Vl;0$_VNbN2-xh9G651Fvd)d^r5&s z3@CeJL5g!%ghI%2g)!N#8l3ZP33(yK5j2TS_B43cnog%I_QYJ4n-6C4F56ckFvx5n z8P4%I8#oBGB7Z}uBdf_QrNkH+Fo)?tZ^o9 z8#7kjH3HEPQ*<;4nR45)4~;m5XeVR@dud6+K9ZayK!Tl!5M7|~?ckQdZ5@~W9P$d_ ztM8gYamjGJ^J$S>xPapg+q*E)+Ih)UK>g2s{HG^Y1|E-op~yz|`tf+^dsq33-uKz; z%PfDg5&kr@KlJUl|MS+@RluXqjl-K3fzMd5armhvEs#Rs_VMRb0S(>O2z-g1| zE0^eWYQV9wb!-f0WqxyiVdG$_akNO-BJG`k1vih43zq?BXvAp)nCJrG2GDSG=S+yB zVNuayG?6b12qme~1xsm@##`-Eie#t8e}+Nezb&=ABMXxJ?6h^d21`3V^_FdDY3m(S zrkA&BYx_&B<4uFS{qyGj#l{}wKm)$k;pGO!zfvRAQN>7(k|B`J+NqcV@>Y%KsLY8| z@kqIH*DqPt@W+FH3>ZqTVPRMj6ipmYNQWPw|FuwoaA-t`+f@A>Kydp5&~O`2xYRnu zYWHll27(u@!)rTj9zp^%D75?9-2Z@g1e5SYR457!6o=JzC>lY}1DXi(C>8>_q!h}} zOR-RxNCXr)VKlN%N1kF}S&byeK_H|7A3G4|oWnqAknv`=q&3>hyl@n>;i=!Js0&!uZvH%PV8`g$X9hi+)F4jX}DID$)D2o#4=-jhU^ zPF}LwC(`yMUBeiJ#_p&UXjTLU2-942;HqUC)L0l8Sze0FpaKTiN!w%J&;kjdT*D<{ z&fUrs)j)5W8V2Fd)q)dV?Q2?$(Tv`J%iH2Y^>Tm){&wgu?f}K;{JkouE_FNmUanHN ztEZS3b+~|cp)3X+x_oH=w6G)oPPzxoVgnKZT?PD;{Q&%Femoxf_S^q?>-&I!4}JSf z*;oJfShQc$-HV3(b{^d{jRlY4{M`(vuvHB21b@o}LHL5{?Oor!lB6dga9tGu-+LgS zN*i+EO52FXD({GZ@7;z+DeFe1FgMc#7(GYNX`)qmZ1Bwv_+|ch<+fcU1F4P4>^Fx8G^|7&c?he_`hq<+# z+S=Z{A>i799c!z*3!C&ZHx3uYe66?h>j#Ebfv~0gMQR6BsPnO~4b`X?Oh)eclI<~Nj^_?>?A4E+r zEgWryXWu}s+Xbu5wJ#9uw{=c>3z%~PqsNv&2H4w@`s1h#Avq3y!QY{0;&hrlv(ER zsYb_5@?VTBdaKJ9%+v1JJ~rCZ>wwz;on*DT1EPz3#&!mObwVCv`yA}Va|PrfKrjqG zr>rRW^CR(5{}ca{xqkpu+`(c70ef1nd}N5w<7++EF2Zj)2=} zS=>6M3b;43n-KU_aq_09~|zaD~CMqB?P22m@VG^y4HMMZ_X@r?D)FgdNtoPB78N!F~70D0{VR4 zutn}6%+5fnas)d9;&fGjScrvdZTM&5?d{lubziV^p)}4Q!c98jp+|0=7~vsi5t80p zt62A?#__7%5mZb9B?BBK{#hYw;t?&iPL^AznD4;h5 z1E&COq9y8cIQpf6(gb1TCnh}ro_2sZf-MCRQeOm6(${Bviju=Xzma4GDT))gP*R-dka2drt+8{Y~F*4wfU9Lrq z^2s_{IbeD2#XKYM7IuD~-a04PLHU!^XQzZPcv|Hwu4()tuupI)Oq>Vv1zb|F47m;% zH%t7Is;9fA86`tDYA*VzUE!;B!o!O()qV*`#mE3b&E>-e?ak7e>y0~(eRBj#&)5(J zivLi7pI7K+W1_wd-!2W*9^#)kQhs5(g`m3V%Zc1yY=a~qlKIk1yohqM@PL31eedr3 zfPfEu`%Br^|L?JJywEr?5L{@U);HcRG~XEkY#e;tI{w@`ylEU>Z|q;K@13s}5}#gD7Li2cI=feg9*DerIcZeXi%@DB~`xlfOK{p0uIi%Ue%h@_2%?S zb8dBSt#h)u``#$9c>sSa;sy6y4wObH*Rb(xQU6Gv^7~B&|GA#3yC|H(YeYc9zE$ww zTYzI5ENDcy)P!G{M@BTl`HO{Oz7GI?$e{giOP0A|OP* zHj+Z#L{cs2in3X_ba_<#U+|d=fr_zf!8=TV@Kj&vXY~03o|JJyoMK;)Vo)75Ii8B` z1Z|F7L2T$1u4DiTWj`(wX(9>%gvjU7e!wiP6YU;NSdrW{P)0!0Mm!>KN|!tZ#3#zB zBOVd3%ax1RROu;%E#>vGWdHzx07*naRLOF33K!9JTq?r&jB=_dJx4$f97IJ~BT@uG zW<8Y2S&|5y`#py@MXGsMSk;=2I(D^7U-i< zpChqZN8;KJfsCk^f}b&QK;D(ZqH>2NAM%t(W)Kq!X?z*H2oQJ64##X`G^aq0oMdT5 z|0{ne59Ogel>3)@=_bvc=Nc(`! zM@cWzgc%6PykJz|`6W&%3XqkLOVHllIR&->f=k=T8ioqkdRH@aTQ`?6l5%GfS2eWJYvy}Ie{1EV`G?CSP1^-oruxN0pBxPehrn8X$TJHpf zeu@@@LgcBezzo!~+J0|zGQYNOz&E?HCn3D;nh72kL zcX0z*z>BT7*4Ti*@}h~13RLL6gm4u_Efm!{%%vp`W;h_?5nb&A1BJqOihwx>!SDsQ zPnTN9VGO-cxfe^V)1|HBnFRwrz~9Ug$}}s2M9N-(t!hk=f55HYf!6k~F zfI@@-hS+J{ed@;krNN&lka&s!LA&K|z(e3ak{q{&5jF)2<`E$1?ab|v)JNk>WsNxA zIdxq~0!;0#;zI5Y6PT3%$9O?9Xb6EJzfm@WnY)7li&6v`N2sB+wolamT&t7*7jMAx z*ui-~sy2o3({c?MTI#IMS86ScM+p*m4EMa0Ki3%nZ1sQ)%nPHF|g< zzo`Y|M5c%#;4DQ-F&u*Yd<58_5#z99k<~#LvmlS^pik|Qg3*3yybg6xerFKg70{Mb zyS>s@me%Pw)1d!JA$AnB0tf@kvoG9!fk-)*Fcuw0a}fB>w{ zM{%?J<#0=}JHJD3G&$p!3MVCsT8g)exG@qd!~O4@V3u(!KY*f)-$3fLz0wcgp( zwoV+k7#BzoTy29&BVG_U0%df|$mwVSuH?Oi%_GJF?#)981P)qdj+KQ#KZ~+vk zUdRYB=-J#oZyrJd4B9K}C=>{*3Rr6I<2rI_ZAmAaJ7-YE+En-|$L@P&gitR8PB{w( zDy?CU801yJ$7=PhClC&B~pA=*zGp5!->8J)8r zKT=oZ3(rNqu*eBE?%ox3;ZmFe+Atbq!ZOvPbkVW}9%Lu8N?c6$w3lMWDxn0copT8g z6%k>cW~q7Qs)Ekqs>D20xanYW7}BVzch)$vz>Cgexn-Fe+=i4m&7A81uL|SDl)xi~ zRJwCH=#Z;YWFerL?&jDgknPGo@ttKH+R!dy(^0-%&P)HVrcfYbp*Tto%p76I-$*NA z)F9m1j2%SWp*C|-Hm*R;jm3X-87IIc##Qze$z`aYBVF3CEVs zwM~py46mUtTHOY}pw?(Z37Roxjrb^%#wm1MRIJoHR)HBUtqzg0#_n~;aXh7Z=LYSV z&c1QB;2#DTbq>pHXuz?$*qC;TMz%9V(le$xEOk)p)w$I2>g~$~rsMFR0iWvpcIpoO zNSCfNa=lpS5Q*(bu4AP?crEu@AJ~$XH^z3&L^GP5l;`6sO!|OvhfBFp>u7GwQY>1x+?Xw-??7eK`)g> z4qg@+tFpZJSyOW&Yq_+_A{%+U!6_}(vdk~n?s{?elii55*m3y)N4D7G!f4*Ui&HB$ ztWAWuqQwjCab#r~y{ryntxY4?q*i3Gy#LvZaooLLvbk(h9<%Tg9?mK%ReQggx9?m< zCEEAw;asik-_+YzR#&mVrIo0wEbo0<+5c?CjO{_Oi`^q0?8?E<_7GO~uB~Ea^#J#- z+h@g&Kbx7=R}X&HS70r;bikH<+%Ip$mUOLItk@;pkyTc(emwKF!{06#12y1;U22{h zkk!Fnr&bJxmbTw5wBA{Lv2|huV}w+La}!4+v$<7lcQ?0wgy<+^ukH7ZgR6O?lg(q~ zRjdMljN$AQ84`#>Lovv!qy4~UTqNy@{NNb1LIl)Nil7~BNrp|_$wdy|vsLU1b4gL~ zd==4GbPfBCFlUqikp%+SqNrwdNrOwB5*(>?4ZAuB7TkBQ@oMKoZEa_vaRiO9jqUdo1?WdOOeqSoght44K!|7DZ^aO> zdGM;X{-)k~GvAn5?idRi{|N-81xg(>3KSX!9d5m@w_Y!_UL$a@QQz2y>PDo4hdLxc z!JpMz+-s1IV7RuW$-!Xvd<}tvMrmhjzN3w+fJ@C|IDB0KJfS)WUoezHy96AhzqolU zOvLHdyLxkPV;A|_P2{pLZF$$$@LrLN-yjf>USP+*Ersqe{{vf!aIRAX*LEg$QwS3eOP^xsJyU zXsm#*?yw;v;y7)JpM4O@erl|N+juYX7rOunwhJ1w_DeX~l~(M2SYBnkBN(o8 ziQjen#4?^Qyt*}T9{G$3B0SB&KDd>0s3>M|$w89mk`$|XSwN`13|9oTQw*oW7oonN z=678$6ye#E_q9Qt#TS7_U>}~pQxr~J93_dmB@qtAi$B~ z0@P~Qo(Z@~WbsRyR|_CSf(VV?7DZ!RCjs#)!Oni*7xDXT3jn$SH+Rs*ui9w*yHbu0 zCD=<%Cq6U#dH!;k%f>|x2zIe!7%zFFBdL!GhC_iR>$;kl0yBpjapc7U64Echi()u* zyk6!|j(t@-2`})-$Hx@p)EHKXsZ#HTxg|D|;Q)oALpv_u-v(8?75kUQGFd8H9R51? zFAeJm*dpx#0a*;Du@dqYn2&^q#ucw$Sp|g#q(Gc5?EwK<2(o*)TF{=Y0SKt#@P`3; zb>E-rGVevb#C$ll;{nlgSFm`!dhpw&o%8y}iRfpk_1=JQsRjN+WS+G&PeFl=6T=rF zpcjE)1Iige@Njm3|IjO8b5*mjG~w)3k0;fn6JKhq9{PrrTpn=X6YBE zfh_}Je|uLOd)LUE1q&h~a82G}=7J~}817(h3Ip+M>m48u;ehh4GWbtHf$a~zBOovl zuw^$(TD7}AF{qtmIG}KlE5vOoWf)#yh6XAYP$C~HNC80z;B2~p*^aATfg)%fiKHJE zw>}vEiSul!cDjN_Fdy8(DDNO}lK&QY)PfDC>doW1)t%Zp_FFc#b0H8~AR+=iO@t0& zwj2EIFKobrT;DicZ7Y32X|~2s*vbU1VQ#$Kth7M83Mixy2v2kx!4thdyJBnD z#qKkWqgCW#0EQ$DX8y;Lw(CRi90CE2r630awvJxTu1_yC4d!0eHm4UA7l^{_5Q>6u z6E_hcSZjy^r{Ozp0v4G;GPBU!I=bFEzG@zPY#btS#Q2p8T%stgxJlboW_Bbwe1r`A|hKE z&+QwLADQEVv0^uTSqPX(L>OfDiS5{DPIv~LSpMsmIG5J4!QwHNRk6nVp#VY zqf}aB1pEP#ip*ujEFv8wXjSbsN5%>V!Gd)4f(S)XNnL34cGOX@3|-Z)K77G=cOOV@ z8p7T+83Nl%b0Zj7W*1ihIczmWAsj0E1S10k6_dh_eorvpCw!aEju#RjbuT1Na*3N6ses;UzCok?vO*CA0+N3C^|75? zsLguN(gyrlJ;+a_i0-^91iS*(Av)7=fdCiU;R3`kMl~SX;S;_uqhZ#Q3%!d9NzU8x zdyl@jYePV^^OErs*$Z4%02xu0{D+%$dJt#W+5+7I?{-3BEMQJ`-ExkQqzJmoxyWHY zCdj6%kr*8`Ml2SVE$&_k)HEHihA5-PWsvS=cI2?$uCFN}uP!rzAjZEC8d73}K!{%Z z&(<={Vb4^r%cKVl+;z*6nozd_xeTZ~iRIkTgrIJRF?DJ1#r*`KR* zzX2EGUljI*T3wS_b-;LZJujf1O=gHIa(!Sl`iD{Kqg(I(Fj z|3pYq0TH|Au3n_slK-R&8UmrGhf8z^69M7yUB!Ywgu>^6fI>Y#Hr~mvG%RBR{sMpqa=GJ$Ynukc6Xn$C@ zW%C6g+H%>6kb2uvnQzR%1-$)csU=S_OXz}189~{a zU2N>W`@D5@vvqW3EZ8y%JOU1aaSdKQCj+S@wjTLpGnK?S*d4e8-~IE}!NtZtY}Re5 z2wps0Y#c)cL?EE?AAG@tzY~asTYA?BE}5l01mCX_0h$nBu?2Tyf3{LXGo$4#<116vEF7do)Vk^8i6lA^~Y7|7~5*?|LL3WB$dA&fGf-V3Kq0fC9`=S>=eSvX!*DCyzZ3cuLbUnoL*w)2;scvmQS#b$v* zz=fTky`yK7@DhN}6L_KIi5*=s^r5gqP2?jB_@HK?QGVVIl77-gAQ*K~quD!X2F&IA zLZXNTg9t%#)JFw&5hK_If29^!vLKBWI4FZI5bQ;;|Gz)j;F|ti0#H6i5aGh^&-_}i zC;{Thqy)%Qm#L&Csy$u3>C(j|Dt|<@N)fb*FmB0xz87@<0^|6bho~O?4lZ;-7$0q$M zvIM+?pBJN|#>E|c5pX332=dfyZV0jfyQqK~#eWn6!!Imk#MPU{&bd+7Qp=d{6d>4o zzd-+^Rl+@b0%Gfv0B=1tOZZq@ALg6rQa2m~?EwL)=b;|j9vr?E@U^_+9@r29<(uBv zyKWqOQd!%*1P<<9Z5~{&?;;n(Gd$WKR(H;p8T=<-uwDVeeWBljnGE>wb~Pl0NFY>R zaJ>nkFLt$8uc1Au1EY|WCZ&zFu5HJl|L3ILR?yb3J9L#5&YMV z3e+Zd5CaOKFd<|REuamC32vXQY@aP*YmyI;Ji)SOi^#69CwT-Ggy2Unuwmaiv_L9? z3=K3QY3@_Ws}d>Jk;HJG`!GuvEV4uBX65O|&PM~p#_sv@){$W!5>ukoP>_!@Xa7!E z-K%fz84FTBL%?6!`EQfrA7cIhg%ko`)i;$gJOdEyAV&lU zxE&#b+fWMYt>)30@!$5*%{D;ry8ZU5{q}R`g(4uxYCC9b7KnCspTYLO056yQwh%6cO0m_S$gIArO;{wY zDI5?SX6=Dr7@zB5N4&H6l5Yp$^5}U4nL+KtASArcu=K5=6%m*Ss4WH^95t_qQ2D=L zxX$%-%l@DHGuo?YLLw&bLJnVb%$P#xfApS%%!1Nt7%+Uhfr+f!6fVDEqZxS;*;n|b zF4XOuEa$?2?s8^_#BPGxZcuo^zH%cb+fnU<`Utq>F?dt}%1P(8FR0hDBX*qe)Z;2RPxd?}2r43w zDao|7)87nE{CZ&g@9^_~@$-N1^SA%czis8e|KIa zv&d`=cL8r4i~Ld!oTEOsh6GirfI9A7t?gcb1tAK81()I5{kXEjtznof%uv5~#(bba zP^qvh5N^LD#W2if2X8BP_o#bwTFOG7u1Ym_QIZ8GV|KgNw!H z0Z?yke-1h*q%Y(nBP)5g4x!N+_rZwB;lC;rR0nP4TSph%^$_c33yd9uF%(BrUqYMP2wq8tlIXZ!j8HP)O#+fD z6~qqY&*Y$d#1Q+Zh z!wp}|hHrq!QmjeNR zo3D)vfrgFOGq#(|BQWqOL|H=9T2?W50I$JedHtL@{P*5Nr{(ROVJXf0N( zvIROc5d36lX!l5$H*;M0qB*F8(2~zKcY(!J1m89FdN*xD=sPAtE5&PCc0Y1|8SEXy z*UAA0m$!|)kLT8L%ROab;}EfcGh5ehnjc9Xk>@Lz>o^h8P3-%{(C159as(tE?HGK> zYb;+XNr<{sGNPAqM?jb591vLqfAQ)O+Qfj4iJ~;`9CJRtPQ739nKdWAPQ6qONg3A(5gHHlkkO8raLR&*=?09O)O{^1Yy?@S(17 zOk8DqL=(~meG4Mw=F-lQ$TIO^1?bU>XkNiwy-F65FWAEh%K{Z}2k$9PI#h8tbRo;l zVNV$@o?0MY__l+z*4Q0J80W@FoTggj+(lqlIV?5#xz z_{aPR#me$8{M-MWmHzgB<=_1mt^7Ox@!zoW&;MKhtQEEY(|`0&S@~E0{eRg?*FdwZ&*?N(?4=)WtyLV=Hc`3dHDPV`TSLW5&@MOECf{iAAQrF5mMVcUfcQDFa#v? zt?h;cxL+Wk(cwNpaPNAJe&L`!F%x!y7C9{=Um;%;2O(_{6FK?SHr<^)@0H5`EB$YF z4bg$3LnVl0vhzF~uZMFRbej7cg!gmf7>^fR*@JXP3D8k5T);&xh@qjgpcv6*Lhf`e z6_9DgRhZ)f6+vC{BVlo=`2imGjs1nqqs8W)QabD?F-&O_Qu{W1Pvh8K1$r3NGDjb% zfM<9o+uq0Nm7UrOWIvTUV-V+1fm3)+&`D8nZW-}{Y~&H|HQBFi>@8zSyFblt0P?8( z!5zH72tT-n!Ga+QB3_XGVo;zbi_GJla$v!Fqj_-Fd3!Acg!1?Hs(pO3ef-G^PphJM z!L1{^YOr|SLJG*o=HbN#_wd_fvIw3D@?AbKtwf@rgD>jZ@Q?W=NcFG>g+}Z?y^Pm1 zA9JVfTin4yKt=(IKPc}}0RsF1EXa9q?DFlvGuuc9#>?M)r$D9vTlbdIgaLDrL9898 zo!$bEuID_m&{;}~qvlG^i;5!uZm8$+O>vc2D83|OhFmBAugW|;)SxA-(Axdg!*E-( zZvbK&$rdqSiK?)t{&$t+rvzawiI;pIX&g+M$p8vJaC#1{;+^a< zzUP_<4Sfpwf-B=+4~&2NfPfF5htI?3>pvv|3j2)qkdqNR!YE7-{09U)S(ncjYF|iz z2R!vgmj(?DH}(6h zuKX!A#C1W12FgK<1xxcgVQaQ7L5pEZwG^_ivWA=T>%SmpikopgpVCk!x%q=%In~4*MlC z5O8qC(GaKT*q&L!jxdIFKh166WpOnqeq>$^@(e?I`u#f8C+nep9PmwhOQfwUv2aOl)c+osMUv3>QZy(y-HA3*y9@Oq8 z_Q*(wLb{CK*+Ua1;^|>8n2$3n?b(%14SVrG993#|%@DB0s5J^at^zs^wh{J+I^4m| zWP&`>;iteaqcndt$c(=RO_u;q0dtw&L4GO%_-23+0!P7O5SY&hSd`BfxTY*!*<(yt z^0dqgLCBgak`lFYS}J*kW`&x_7s0`-fXnEP%w@j?Y<1xYE3hE~`i!0zLcep2pYTLq zu={qY0&ZjFs8Fg5o6i6^DSzHE+`&lB2=^-$L@ADmdeycsDva|JtKn;{+{(-s-oYc~ z-p*mqT#%VoDutdh5?5mfLArV)n()G-{g?!!>698=L+mEdQ=VUCjRdhd#+8Iu#`z&x zxO%?`b`T8X%DyB^AEEF#=T)hIa{CI%e*Q;4S-JVES60sc@_Q?)pZ}E)R)lM6Da&vF z;KqvTpa0smmCJwV%!*pBfB(WtY5#BjhyR+DfBirBBP(hd=jVc->%Pxl=BI2aEkE;9 zUe)LK`6*leaejWw&p*jec~$MIYeuz{?W+G3e#&`EoBq!q@S}SFy!zaA@A}+zk01C^ zy?+hmyno0~Im=x$>bc!@^{)1E_WRs#{~eXR`agHgTYmJt=)3#t{M@HkY197<@AJ9O z{g$8mtg8H*FIT0$dU~bJKfzDga@R+F^{n*iwfLpyp!;p}BLqYy@+N=}?+9t0rWPn& zaFH3otHvLD=Z1ZB1VjG=?MVgnaKKNFhWl51N61HPAJaJl2;xXK+WNS{O{5o^r%cG@ zCejqxa%<>?Dlg=C7Ay$2ra1-0e*hbMe zg#nMMc(k8h6M`gVDT49{zqbWbCZr9hQFrm48{D8v$bNXmFfW}N`K8O7yWu$RuI--B ztn9w3w|}Z_y_`b?UTt;9h^KjQ**d%++tKa2hga@8_e3S413xqlE>^eS&aUjtS)uZW z$|_kf@?il$MW%?vKVhF(kc|gcmaxa6;iHY#o>>I>g`bzq=i~=8)MharBS-|4clgKI z^|kHO*70RyAKcbBJZ~JFcTODj40GuM1`)zRd;q_&0ixiKxg)at)I9iD-#A*_JYH-X z)*mc2-!`xh&U+iy22s=?eZfi`K5Op7UksnJ`_oY|%azuFA>iDyJrkAPI;qzXQ1AK0 zYl3H(^MOPGx_wbl5k=|sV%+2z_EO`Z!_oiyiCC7qNdptPWL07nUjQ0d~d z0!R32rR^~&u-d#juVN_G`7kkcEhIhcW)k~IBYl|k#?U?RAC0RQ0jr~ms4JyA=IDIl zH&so+F)tv6Lds2m)3=tc=PCw~R0mHq7Dgwpe8izO(mq&FilBCW$#A{Q7gjPU?wU4r z`hqi)m+chr?1+a@m2M@^8$pl-+x6vw$OcKQMPpas;5-m;`~d;;Q~vB}Mzxgfs_Tcd zoVT>;|J(-=?z(qqqN*PyyF>FM)vR`IY!5UvLzoz}2=9kNq%T7$y4l5nfW#JcSDw@OJ`NFS$?xA?3gmZGW9nfbI^?$~t$z(fdLOi1HEF@w(o(v+M8( z8wD;lPYmgVdf>cbN0@X9+a*YV5(2qjwB$XgeGvKNIL2%4=+Pz!ZbQ`6wm7L28Z55u zo*9(9oZos?-?s7+$M%nNt=IL2t#ge#r?d`{_h6Og{^jQW`FiZ1M-cqjJj4z%%gy82 z~sg~oy_V8J=MiKPWHU%2uY*8zWMF+9R+>sacft{RlW?diqF zoB778IYj<3=fiPOF@ka&I|~{k&Tek(oY=ArzmTf3uj9E@jQO^YuR|TYZo4RW)qb0z z;AQLRLV<%@Z!c>|UO8NB953-r%Ep3AjpOC5qovl7J%LSR2Sf9-x!?|NyHj`*E^<#U zp%(bw9t+@aWrtCiyLdP&J4gqahI*G9L_-CX5J*)IkY`v%IZ!Y8xB^j;EoR{Jjig|A zunM!76s)%o(+jDvIZ#oxlS`&($QO+E`tHr#HoCK2z$e6^fs+=X5F%x@n;`aT@m*lH zxTRlmXBBsdak^hIf<_8>Sa!KPpo}5QLEOSEOY_ro(=Ej;`n&HCnxXRB-+)M7^7m!ER3o_t;p%Oj}aX-9WCc3m0-Ag1eCL4grFn8AYc$n$01 zi6Z$T`4=M;%&GxF8#=Ja42g` zY>9$@9`L;*Z1ESqq4;|~fS7nh@v>kkj+#Qa`RgJbLS3cdwKq=VG#* z1(k0Hu^9FG&7+ZDKN=PW>1V9`sn%VXffb*TgJXn2uWQUMOP`LGcGrU=zjAy2FsKcy$4yAE9SO2{Eo&Nd}*6{6s-&D3+`F?2BZcVfJRs6-q zp9d=Fo->;9cSBwC>Tlb>-){$h^&QHuza9MbcV5u=?W13P`~9zeGw^%AvC6>jef!8N zDt7waz@zU62Y&PD(YFHw-#!|$@*BJT@BC;Z{Klr{fSR{Nz_p#THN4^D5;TU)+|vc5 z+`0;gxWLV~hJZ>3abIxd_N|1#HC@`f;;w-o*E%+)7pofuvhm~E&PO_k&#XH(kp_F6 z)HYoFV;COcRPoh(N5zcMT*RR?c7L|H6@tis*3Dr9lBAPv6dA7rnhVi=CO} zU29)#o+_jdaeH`oF!Mhc8o2B-;rq4ZLOZtL^G$n6fTBG)h~*ky5>~?U3>>+QeWz{4 zL_k}BDpr1~wXD3UH)mFNR<_@-@BTlOy@_vS*>&!xKf&tmnn@N}1FJ~hdwF>W&hvOV zSCPeHu~?&flr;smln9Uw*$ue`L6cj8;Ma`NxQAbXgKPEaRRccQh~+Fe30rWAAQ_q67-7N`A|Q4# zrich(-{ zhjI-R4$fm6l3REV6RY-ctWqNg)+blqLF{wQPca{$w8#z8+I`Wb;Kef1mNh}TObj;fm&QzLx}-pP1f3^ET(7@TnkKb;Dhlr z>QO+PR3Z!fqA#7g`912CP)~SApFHg>f=ddx^k@>4W{_o69`N~yzyNB)kWq0-;wnu+ zBd-IWB0qxv!k!x@V8=(QcW$V~~yMqc>{k_hjE4uykQfOa3o<*^Y+TWPck zXF(z+t}3LDgyJHZU369lzN4_S)u_-~D zE-9GuOy`LR$dS)=fdZci+6%Dr0iz`!Ir^lv@szIwJ?$lW;b{mM_(IGomP)X5+9;Up zG=>TUjJeqJXnR0|<~ojmaSO*v)+kCi0%57074#Q6XoWn5N2Tu2XZJh=3d|tv|KcL{^Fc(=sy1Gyc;rl3I?V*pm4AIUquWh1VsI8@z|enq)VI^ryK#j8^=)# zIzI&go%sU(vU2XZGv@$*8TqBUA)pmQz|(<%&jS9=lmDU+2Q_bwfV1m&jnbglSp{BJ zcZU}Y{K2XzWKxOOnP zvPX|YT6^j3N54RXeaIG!SYSzjOdO+V4?vzWzbF>OD)U4@4-nwd2gWIhzdNf;MeX->B46L2V` zl1J7N`N2B8Zny&+oLn8YvtU8HwU$REO9c#F5Gi9KT4ESGmw5PaNP{=Xh4vWNN2Xeh zF=N45xeS5=>k1a0D>vrGm$w(U4D7HuFG4rA4F~t<*7r~`1l&BZuapL1#? zL@?+L7irfq*Cd`Hlx7~wiXiE$TU{CyxtKn?}kQzS1pDdD`4 z?ZpRSj0pIQc4X}-lI*+$IOKOsxG8r)FeL*-kn=fIz$P9qSa6v8g78|<+t_-M$*;*U z5$8+%vB`0evxGXxZf&u^$@4E21%-^Rdr}xBXZdfx`d?dd1jK8v^HN`jm4QmQGN{VO(3nv7=;*8BC*LdHt2nzH&#UdJ$#NO4sGS&db*^yLIj@ zb@rA!%Y$9z!HXZ|=lH7{RCmUwuuCwJW{eiA+py(Im(G@~Qo%BOF&3@^6 z$Mtfjm22fLn>|NQ87O^TzTGtit}ScLoz;5xP`!ukotOJ;Kp#zK<5A$)(|f^w6kkTpj4RGT`%~*b~OjSKJ7vE^g{lZ-CE!nTHzc*c?xny9?=QZLq z=F5K_|I=l$cAHvH40ptz42$t4Md739=PxyYr`=s^_}_*c8=i2#(EQHzl{&5uTqu># zmns(q%IB?I?>~QS02M3NK2SPWE?=mWFIdG&|G>F{f%E0^`AX$NnWf(7sW&cpy?&`) z??HXgf8RD0uyruIVHC(14(v{$FpmAP<-O6R-R3Mj>Si|XbAz}H{)$)-`2r@V!25P> zD%w!a#w7L~$T|!ykbo#OoLs##;yaYURy(o~CTT$7mRtZ+vS`D^@da3@Jr+2#0uPf5 z>r*(o@;7tCZNaE>OXW#yE?gUj3fP$0K+%9YD_Ma>$8;+>?t=m0u^v_@x~(E{#f=|;2OBFePH}IziGgCe{Ovr8;7vZ zlB7Yf;C+0BI(V5&_3@Q=821b<-9?HJ%7KU#pp8|uCmss;yDQrBJ{|%B zdogj1aOUPw5S|zaXwt&|9~@2Ws0z-?+)Vf*|7Cg`8IB9^ZQM8-qK`#mgvcZ)Vylvr zDe$rPciXh9jJ*85%XP(uzeZqw3%<5U7Q+IgDkMw>+lt{Zg14z zVeSSi;2XyNv+CfWHY@?sWjslA7~I7?7yKSD+aHD!1+o!kS!UT0Cb1BTkMe(ar z9mZBfJ>wGY(jk4ZPEC&8q!EIcL2`gIQ5p&t00azNgJo6-7)(|GU*fZ%w}RW?MT|M4Gx@Pi+G|NGzn z@sEG}_SUjc;7+?YwxE_{huC2q=SHCn4Z7)bs4UUajFJ z7yYwifrABs2~8?P7YB!gfER@Y>SnL-t0e$j3e+&>t z2~Q~3NdH?LePb@WA_eBL$$%$~C$;8orc*NkE92@eXY zRQOv9*9?hpr$9jbpgL=hs0{%JpN@clPR&>#U?M;N3N|I};ptUt-G+eIh=7Dn@Si;g zA|Qb^R;#&=Bj72Tyw!(<=NOkibA9E!1@jdZ*41AMh9qbvlpuLCHhl2M=|V551-DA1UX2uK_pM7!q75fGvst+caL z?}TM6PH9F(lS}(^a8Ns(+k9AL1QhlmN6aA$R6y&1fClJ=Hmpm4;=gHrH421XI2h5U zkO!Xp>P8_z0tAy?nBw1VwqHmJ6TV@zN1HF|xMUWFjRyX)KB20J#`rpKw zY{5g=Xbu4r27-;rjiJf)p$W9tr#Bb~f~3}yiXdjZ2(~|QA&?4RM1Eu-$n=3$Uq;jj z%RcrLS-EXwHaNNh&Kq7Tv&agZOM~`Rl|+g#6B`Rotxc`moL=2+Ofce=fgpxuO`1Cc z0j=H9kY~e2jIU(D>9wJ;7Ii_WfQD8|p(0zbDx(zt!YE7-EEo}6;f*5Q^k#j0d9XQK zs?UwgtQzFe5G;>CM6{6Y4xt5NgAl5N>C`qhj$42_=*D8?j=p(+diB=m!VS@$R6q%V zkO1dzj>Fc!Jt0f+yfM9i)x8GC@Z)YyVH4q-a~pSt##dkho?2souu)*^9g6&*3g|i? z5ya30${+ZTN**LVKTAII-QnmmC~1&{$4j_Vuv4AOaynZJ%QBt+B+)76*P$@rPw44e zy|G{=s^csq#zKt~EMnwkIGKfgxriX)(ZP|joa&mTV8H~7bSo4A<65B}$`WE(Kx}!Y z!?-qV!MY3gz|$1i5Iv@T~c5oHbXR=%1pG>@ZuC)00EtWhGb3S zv-My;OzjC@2yL7Z6bQIfe_fLLb65`IQNXcV3334*GPw-a-|p&{#|uNE(|S}9&k5|3 zH(_An-4ynrw1T<9$GSDFMjb0afySJ zGaO#7`HV0A&Tm>#IEc)+xT@kXA)Qa-^p(|;FR7>xHLlbeSIU)((CUoO%C65<6DV9i z(O~z?nG4UI?d-YM+0!f4Q!@$$K#;v92PPCuN4YM&qN2Nl5P@B#3K_4B1qpdZ`GbQO3l1B!UmxtKZbb8L zD22g}s^}h%BcLqWemlGiiG2NouBY<(cV6l1Y!3I@L*R@k<-v)=3f(u&!L79D> z2o)?$D6|2kCQ=2&$h0*pOc;t|Av#iV1o_SHj?v_5tO?-_EQr`-Y=2zD2q$UK5ipWM zhb>r9AXEpX0*=n6WHB@c&l>`6LIq@LOl=q>al7I5A()0?Ikk$l55cIqRvld#npm@0 zXwSWkwK0qJarm3ywjz=S;as@Ftk)~x#VPm*-ZK2neF0OE7AW95a!N#~cCsL@wMEt^ z*P8@8K;C#OM?e<>35a=n4S?$%aB8CE@HgjDUuG9heu3b>Xm=bOM&|8J33b>6WwJG~ zyfqJ3#e?~c+lyOwmJJ8D50_{TX2t06KoZ~*zA{W0DxgDQwA?pL9Gi8^uf#u5AOLip za$sPe)nytU=cy5R3W5}=7v3D5U2D#)^QVMUAfFNq!EJ?7Uo9-c;u{a_0QZD-n08?* ze1bpHmEs|^6-NPiyqwyh6Vd|We`~PD%B7E|m=`)@L?=imxv(8Kh=4L5x3MEp72`ua zIxN_6311VXC60`*1im6AwE*s@<6tu83LJ%ox#hQ!B2IVEFg`fxx< zfOLI}4n@x<4ZC7Q1tX(n3E?S-CYJA@Ou8QGA?kvIV8Mt!X&WGl>QYp1$~!|Tk$_0Y zK8#OckJ#tdUgdv*A(*Eck(Q5r0C}R!ptk}LrSK(aQ$=*ht8|Gip5|%R6Jqjm-;zWv zsi+SlOLXdy@&X=5K!swsZpRn@+i$=9H~jn^Ki~V__rCI#uNdn6m>&s&*5@1F_=Yj! zzvt(F;pYcG_<`QsB8gvtfK(sVKLH;vM8#UHa1iwoM#9RWK}M8HlUp!&$*E0M__pgl$(DnPBcQ?>x913i6ttatYs1$zBy z2q?sl0js=IBH&eMkgjwFT&A9JgRVrfT{vYwtI?9w(5E7x4^^#6EhYkL@JtJ|Mnk|v zcvfVvE_1q2XN$91gYNM-0%r5-uhA)&B5|VWF?zjzy}GC z3g!3$q(KrP(2zSdLoXa%Fgjcxp26=(1WYMlWaka{J{ctiMno<-2nxllXoCR>OXj4q%sEeU*s3t=RcbT_QHS=u`4A?eZuHD^oezk%gd{J{d|WmbgR>5WeA;gCm1G#YpqP&)U5s;B?EFSj z*Z9oy=NV*N7pf~R1k>Yj%UJh#R+XvbsAd1qkY#Dq< z>`#JrUWI@pMNs&NN``l#4i=VQr3|DqqLbg)dT4>|c>$k*fT70Oi|Vic`mg_{*^Ygp4a6Q6<#BF8Dyd>pf&1Y&wUlq6|s{;Ixw9lF#| z{SwUCK;9FPNMR6S0=?9Q$fyKl49EybzRY1Fsd0KNe!0H7SD)Xn<`NDTK6z){^-xbQ z14@psHB=mcVix}u;(pV53YgQHWsp^Zl4H;Lf?r!H1V4=F^|o0wa)o5(woxJ%aKCXm zS7BvE&5h1E{swBJX8~2>OFIAAPw7Ju{$Mf=VChF1Fg^m+*7OLNJDVj@7p#n5wJ`IyxM=>ihBf> zE*Si|@wW_faCNA2XsENd{~XKtUU~}l_n+;#dZwrMjIO#~f*e>X+f_z^U4voh&k+zR zoq^ga%)#QnIr5+ChHH~6hGHSJ&0w<-u;9#%v87!EW70Z|jL?V|Ih@@@IEa)*awHx8 z=mID?aC!~olkM>{DUJY8HaH>UJkVH7a4v@`+T;#&B*3j6Jq1D);3xQMI1SMib z7)LAv@$xNt4Hjrf6%gSd$pn0)90NXBfn_pIjaIKuZq_F@s)nQ!&aYLh77}J1ieRhB zlqf6^2w7T9h?=XlahQP7GSPybmz2M`Ey;nxyTSyFJ&qj&Q~v-&r$!slenH=TcxiWf zWzWjQ%I@si{?g{*yyKuTpQJ&L4sok7gNVh5K)}VD#*q^LY$)uf0{=g43QRx6IT!q7 z2$qdlq&PCWAq3Q2jN89bmUkx?cesP_u673jW>u;G5fOk&;08DBLgFHVpdDU-OLsF6 zeBcm?%UzZey`i(w8`2FPFl9_aLm?D43uf3vvLlPbRMFrpghCQnQUtXTh?|?i8Ep=H zU^0kx zFh|7EI9|$O_RU!BiT(BJdI|!vTfn9J|2Z76rNj7-E$C1t0!kXZOqEe!ahYK>#(zV# zOB(H0Az;A==pT@$qjWFX#I+3FOCVtMlx;eeO7A_tU(NLd1T?I)S376qXx$oZ0M=M4 zpfrNJ|6GA(=#wEY9*Z3nJRz<+5dmo!^=pNCv1Y#ulssYsbtrQlc)^>kbk^y8m|f_n zPC`KW0&1!DSo)yp#)SgAeEe$Rr&yA=<#h+vLB<;~w5aQvBOvN0A>cFgxeQ#+CPe`P zT8Y0gA|Q*D#Q5xqA4GyfEjzNtY&Q@E401AN0{lq@^g1}N zI=T|fhe#1X;nW6&K*)jBvDH#zzSLZ(Pqju3O}NML9)SJS=_;AlRIeAy~#=Nq{XNV7LYX z0ZDSAy##+wS|JC5@MhOXX4SGjJhQG#;wy~8hJc91SV5VB1$@UUhF=DPgs@#h!@2c4 z$O5>99pSW1a54vDb3Cem_H~Tjek_J=#)7c+8k<5Lq%;WYFb%{$rRq zWk{&_OW?jEZY;1%Mqj`SfA9x?@Y-vy{o)tD__IIzGh?`K zfBW0t``-7gA{?~FzxkWLG1~hVekAxA|9$nVU$t%m$DjS|XV%j=@-P4LFZcKNZ{4~j zd^wJQJ^U!QOQ0KQOa|O*rOs<5Hz1ZPcx6hZ6W%G>mtQ-GgNgiHU>hJv^_8Ds2zDf5 zA`-z|jL*^HZSCS>pvlz%gqP|yOha?Gt@AQLL5sAC0zn1=M%^bNpt8?6;RW8=1RrU4&Ei%^3KmecU@`*lNMpl7f(w3SA)x7qAvd*UI(K}1;F@)S4%c&a26LpdqjN2u*a zWcCbAx`Tftxh>ck7k#Apg~Oj)hpS!9k>2KTuM2hj^ULQI{%Z3yrGOFM30niHgY%$h zLJPE?*uV~+fBcoTPKQFR@JU7YsK4R-euaQ_AZ8Dgyz=?(E9Wm>fe9EwAmQ(%0*i3@ zg27)ZSNl)~%4caE1_8^(yE_Y-IMrehH-$tE^U~`%V z;)R{r^+W4F<6eNU_R8R^qvr@D3ko`ggOe*rr<~yL2>-zx4C^owwWxzU1*P^m`9bY- zB1AZd+lWDa87bbNFQ6O&VFd;=83H0x;D!^SI|#CUk^-S(htarN1+Fc_Mm)A!8C$6g zFAp>q?Cj{`uH8HH2r7MaiWm0SVdS80-L8!@79=q*f>J0(m5#0koN!a>9lI~3L?SBJ)z9aM_#g)su_FY*Ij2bjK^x7J!X&)Yk#2S{wo(_Q z&tI@zE%HdGp8N_Sja(?VKbnlG?a_=&DvB{hend3j9ViVtpOcfW(uIUV1op}f>sDI9 zllvgv2g$YQfQYXe3P2ESr>kH&jdqZbx)I>3AkupK4S*G7Awv4$O{3i#{^2xzbBPkriBufP7f{lET`pZw&%gKP>{Pii-Q?FH{ic0twmNW>-K%)r}lwL&ZQ397s zRJP(OyxoC-CFn**fxiX=FWMJw(W>%g{>F>=T}I+^1*W{?+R}wHgtyav>0qLZC9jMC6CE z!_Wl~6(Zny=zkdk_V%CaW4&+SjE#020R?11X$aQ<2-1y@wptJyT=8UA&35CE0*9?Q zqA-B>hV`FBenGex&a46iNtWWjq&QM^T!p20no+b~777VaIEb&=BetcgHIA(qU=7c0k1l}uWZGtEh^vE>t$i7Sj~je*D6Go<8)ua@+Ix<+ z1{!nn1*HB5A&_$58g;=HScf54f(WZ&ASNcl3s5ZR5h1ZP2qisaS22=nMC3;T!7+hg z#0XaGqxg~XQlIq~>#_a{{`L@5jb&r9= zhs!q}Os_!y8(ReY;V2MX!ckEm$xJ*B7eE<^l|g!gilEDZV^+dM}>CkfIYkN|_BVSK41Oow2cl_}m|M44dyz%Cn zZ(8N^pa1-;ufF;h{QUgqKmYNMe=H%;K5CTN*FJy#=YRgzTW=|L1XU0iaL?OkgK)VI6NozSN=XAl|dyQ(UX? zg?hIX!Kb0v88`Cg^QtaHle?i_+d515>n>i{P7hr}Faf)%PRyaXjvGd`PX@XL5Gc_J zCW^U`WiXPSL{C4Z2W6FRA|p+)-9k5+7mp_mapd)6G`Lo}S~6A+FeQ!M+Tc((efw}z zy5BV8K)@eb3N%Dr9*{z!6rG44wRgM*A8FYWX+`G}sK&BeLDK&%yB?uSYm5@2z;{_>pyvq)skmDhjcnbTJK`cE6!^;|uF$x1JZbiTxYFa%e- ztf;-8EhIwczkvbe3shZ=XRNNd+6=+S2<@JK(&_|ivug(v9u9J+IlZl2*QC9%IQGdX zoB<+t;{|Wsm~7pi!@jPEND3W@Y2!0zo`gW;oiSiyL@<)Vi2OVu^Fq<0c;T^m)JK^< zra7~TY%jBfQ7L~|#x8)*um;Kc9)XGcjxeGS zuuRajN_}#Z*oP(6d9?bF>wjQDEtO?Mr8>4uGx2JD3OEP^oM;usU-Dlv2TKban=hRI zf)oLN$v_-uHw+)AmUlsWfIp&Mi}1IyJB1(grnO822vW@36$^sWj1;jmvLPUJ!P(VY zVFJGCAn1;O0>MooAltV!lx)N_6K~rkhzs#Bku9izOFL6bLO|m=s(=o5guJR#8rTA9 z^Hu`>NIa;+GmIJ`RXU@bYV7|ZvPtAeGLw7=Drzb^#BmcaCsM>!kOTd4v_p1s;EPLq zKq4J7tq2_1-zzf9QZ(LrQPUS6 zi3WwFI?`f`CpKFlxZq?q;& zPDS~mL4*%Qd$@!l(<_&5Seo%+(&6Jp95ZkL~SflK6=oSQ$_>E)WpuPL#t>X!7eIpbXaeEWk3OKu5rI7sWl= zqmYu<-ssmp9RZ(3q7+s6_;tT&2Cz`^7jcdWQt3|>4D0Sli?FTyFP%b_6p z6G*dE^YwJ5AGgHJd`b;d`c(+1WHf}uqKF;+YsI0^e!-sJv=YP!mkL8LD_S$H;c6+L z91iju&z!N+*KfFX=HjK(Jy*{3Ts?QG_d-cgAc+EnfcD!_4vcm%UjScG&=NSPxpD-Y z1N`p%XA0A(=j4W10mn+RBkd~qC z!tNCI%DZb2HaL3J5isYxRB6`&7pr4{KV=XE0@Cd-^96MBgYq{9*-tiNvGyC>(u`|aiADcGNBzuXE%-S$$WdT{4TdE zf=fE$>&z;+P(67xBHWQ`XjC`d+MC_DLv0Tf$kZ^PKq`WA5QHswj7DKV;quP-;@bSo}vvLl5=9 zfKeC8B}+8dR!oYFfZ5knB+i&Vh>{r~=kl^n>V*1Z1u>-G|T>|> zlU|vbFJMfkis1#F1A#jN_G<*(B9Mfnb&5GvQiq>rTrs%+ic{<{t8rty5$SU9MNV5NQ0Xz`S= z5~S1~zM}skbc65)b1kAk9 zv6Tqcro4cJzbOXQg8yLrbuYj%WeTMKU$7w3$Beb80vhnGK>tf1IBFoc5ON^el~Bgo zDE`g%7I*$w$iqI4xcZ6z+R?BO4h;dhqaDCb?tnwVe;l2KBi#QV z$K5%cQ-{-ax|`|FnN4okbazbm>E<-k({0AEiPMIu*>p28H8rMw_x=45pU?aCdcK~| z=K~kV!-qsghuN{^<3V*+Nt}0JQ>o_?uv_Q)%3l&yksQ?m`M13h90?sU9tkm8)%yONNA3Q4!7Z z4r#ulg*TcIW-RWG{4N>Te)5gRJFzH#JE#D;BTd)h+}%I&ct?2z(mu%GWB8eArWzQA zs5GG-sK;vflK~YLCLjgrVAvhTl}nPj}_b z&6|+!iOHj-HiBEzpg)5+MD+84>SS9zU0pJPtTe#YFTPq}ZzkZ3+VkK@+4rQGjJEaP zKY5RCP*iI7y3*nTa3uNq83=_k;ZKilY9$-x`VB-=1#=J>>^oZBzDl!qk(p}50xa)e zuMk817~4MLKQBZef+qZ#?5Rqz3WQwn1b6tadHrrw8%aEu+X{aeC61% z1&&P`gAvX&Z0vLHn?}B>rW;EqA6!$(KK&Y))xD~VlUPH$!2&8ko8QSN|2yW zB%>cyXE_wfrlX}?&a5!ib$oqU0oA_4f#xf8MLYAnxy=0*SDvRoNN5*Cl=ejc#9WJZ zuG#F89fdt+g#(#A;09lun4Lb0h$f53TbUspUahnFkq&KA`Pe@r=)%5jR0|P5`pU;M z)@T4@8$U$6gu~N>@g8cd+#!)5al+{r@o+lO!m&0-sKUCrzu$)$V-BM9T_N@!W|gCN zn})Z#-Wk6Wq0ql~q*#z!Xh))@87nB-5$wMGlIHTyk3Tz0SJG+}ZcCW7Z{}57_<_pC z2c!pak8r5!vAwMuws{y{65N5m(8DDKz`&~-h6E;c*}h`th*WzWX~VBd%m#tHEHYUt z>Ms-lbL1L7*&8+{UUJIE;cns(*bg0$U5r`?`@k$E-#aAMB1ezqccHD0c_F67+Z zC#xRZ;-?D)vGm%jhl*E6YKbEo^Jry$ySQQn<_FCyuHQ)X@2N(b$-4j z!erTBf^_GkX<OQqiQs`IiOIHj!P6q};PkQ_yxa1-vyr~E zF`vx2!j*UXXcKL=3_K|>ZFrOvA_sk5a(1T<5#19{ayJL%%(SvNHO3I(k*30+f1~gg zh8ZUr6Onf62JOe3^&(ADuOq$ehu86M!DZ+EWI}0?s4e%WV{RMIbClJhBBXnvnh}TS zH{0fx;r_qf+doA1qJ+rk{)d5CYiZcJ+vAlR4RgpgGlL+L$eD0w;7Q=xE&5Gg%b7F{ z@sSo6_q)6P0El5+KR#}_{NST7)N?=l*dK2jv?CWX9S_y^2khUlM=FYs*bs@k+hahg zjuAgzMq0w9OxmpUpsI3KVKmXo{mIG!&wpL&5QfTXw<2SlBQ+c6KkN zD)n5{Z>al1zTIJC&@?(F@%rQzgxNB6p2KORL38kut9#k|d1aq5P5I(bvXMd??O^gm z;3qWPfQiWugR?u`vPPXvjQo60Z&&RxaHuF9sAkRl(|GvN;m^eGg!DOW{*`)&-R-}L ztbdb69Y1~lyyrmZ8s#Om?Jk%32XL+M~6t2cAA4NNI8Fark?5-INz(xGw)n-5u>pFe^+J6vsg)N zNx;fCf%5XlgzSvSf5v{d1jL-?6cc5#?qsQ!92ts=C8sZ#m`-E4idiJ5Y4laUrQv@Q zExSRiyn0(q3(BmOn0o%DYya{@k#4MXLzI{@9ZNDvV%~wZOz?(~>nUS(GGX{n4)lF* zehQfYn83DCe2$+yUMz4p_AXUMLNSQW2UAjCbtKGBya8S@7y-*|VO7b3FBL66AQXJ! z&zp%5DWA+;#KvW-O6fq+c*5jf4(=IxAL0BhQg~^idCLgGPv$~qGEWGzqF%QQ>jgE1 zy-M~1BphJB;Z;xVc|qwo{Bz@xy-UDO^h(E8EzP(rIxBhJ_B@J#Q7m{u7n^I7CHj3_ zu8|een2l19UmoSTGEA(!0dMTOdZ$wiRFFLlBccQ@{vmoiC9&sLTzOPi z{QPJ6;h9@AF0EnZo@sPI72k*nM zyh$1|udEUyEhWkFAU^LCEd|s^d3oc(Z^!ZX#a0U;ULddF299I|RS^}?2M>VxrzjS2 z5sc3W#k$mdK5GKoHi*P%OD~e#M%Zf|I)L|R25xkyaCRcpudTGzS$S4~3PlDM4AKWh zRCi+_5pK%zfcKy8CU#%YU|sc7OmUn#hlVPm^w79FbK}36-&eA=(C2I_4o2pdG(}PX ze+CXMfb?dE#QZTGioA7kw(?x<$Sd` zpxz)pfjA&hZMsw@RKVR-a0zU&b?j60;MsE(6CRMpwJtKNKpoZVAIKRzKA;#6S5;IHd|$HE_isb`6I3KXDR(%! z?=Sf$LS(SJx7%ARbjy1LI9B_W?b+J%cA`<*L+y4en0QafE}eI`Hd@4)HQ&XW54&l) z!C3;tI>Ls*x2ObV4ig#!R`Tsa2Dn^rE{m8^Sa5z{bOK$Bg4?$rYl+*FWwlwK$N=oP zTBP=p4uZ_)+SwyK4c^H?%3h?-WKY%*(g=8czgJ(W68++|nMI$2ND|^aWS!}hyW#`#|2!A7Qd3rP#3GfvoPYCXV3d~jq3-uYxlYf9B8!-Zn+*H7!0;9_y6 zxza$K@N-3GeJzalcZ3e}nPT)(exvrB{=~%Zwbx1keKlf?o8)G=cFCDfzorLO)rw^E z&GP)?B6T+g8l}n{r77(cc&rFU4$+FeG!P$Id$@IbLyV;B{+&!#jVQWZ-c3AR4Lbj( zbyg}8hMvVA(5e~Q1I}eQ@bA9`oxkVq?91vUU*O3>`^S$~U_Wsrk0cke&H+HhrU9ol*Qy{o-t)|s{8ZM6w~pw?5mJ583T4OtG8LZTEXoVhVC zLKwn%Q&znhi)1d1pW3zwX~Cw7((_YJ+`@RL8q3Z$dljdjT@9;TuG?Q`BW0HX%RC)@ z%8^ws%+nOX*ZnE#A9`7m{(YprkbX4jAu~R3HZ!(6TGX+|->4h9eWeu8Q~N5zkLu{9 zL1=C3GA)mqOulzLUzUN7R&PVlDlHBs;Ar@V%VtW)+R+L<_`PP>jqtRbRRAS(o$Tv3 z(UpGS2;%7X9r``rCf%feZ@{@2ab7FrxNDtMKkKS8KI#9EqNW8=`hAL#-XnlFE zIwFyfidxNXJ_|NEfkQUHe}N zB@*Jwz3Y8nZLn{c(7+p_;hkcXO;AAvdDXRW^RHO>gEmn$RZGR)D zF37k!HCA;;Ywj(oSpG_RrC%0hi27?C=}o{-6(pk?$z*AP%IuvJOkO58jc8{n7>)fF zh3Z^a^s>TsFvD1HKI*I5_6Gn8?*8!v1Bwz6l~RdUiKkw7|Ho#;x zoG+^tjGXDgS-0u#rzqp0P1;Vwr9tRlU)=I*y0XdMLDYh^*lo<5%Cs zbtze$aQIg!Iz}FABB@=rEgBO@GcF+pjWZBowk0~7x_5MOl!!*yGk}Xa*_q5o@v2gz z*aXA-HQot67eghjMm+_XqvzPDhmKyJ)?U zSh6zdI@7Yx3ljyosnq@iI9jUmS`a<$;`b3MVaW)%T#z?35s5CGL@oTj4@2A^GtUR# zX#V{Ug;uHAF0wuzCG%SR(|TBsevGQ{M1Yr8S(gw z+4o|cfW=)kE9>6lQ2cG6mxG=4kgHw21eOXKFe-^ZfZ|kAI;1#EWts@$)_+*O;ir9| ztOY*-s4jr*f zLOpy?^c=zftb)jyDxTJ&C*mKGpyd^nvawC7xFdG?&Ez_*^rrnA-T+Yu-4J zr4RF&3KQjyzpd6xi8MI-ScAC^ONb;6euhi?l!XX4R8i?4ssn+edhxkTHbx*es85u; zg^m$y#PbTbA})oREYljNlFPrnKgC+@U5tyc%%;UIqF1abm1WT_4%Le)k;b#^;N z3K@Dy`!iGJShO!=dMsbWm)kfv=j|7kZ1Tg{Q0=F)SrSE#}Lhw@tM;6>!A;F4^G^HlP8A6@tov_3jhMZ+WK(!=!4UV zgpxdK!p~vol)W2zWJV9qDGYK?pyQJVn98*>y%#(nY2Oc9LB4sAs_UO=9ASLEKd3ch zu#g0%13qvYzX_^-z;k<3Wu}~Pw|s}>9-*~wDabj}f`M6|4Dwj{^k$|69cOZ)VE3qI zXoCx|I7<#RMc{~@jOP_-N+%X(t*g@jp<;TdSt7~&mf6hQgZ4?-3 ze@D-jK#Zkmm&78(CE@BwAOv}aH6Yt#u%v)&@!gS(U)NdLq)(PTZAq0}+ZSm6q zybtl-H2rc^l9yk7-nT|zjz$VhGj1hFJFv6`W)R=7p=s`L@Eh{SGgd!S zV%QI2k;95AW=TSNM&>8t|$|}TiSN(jyOTgvvbsFPz{lD>mV9Vf+)+eKY;C9 zv{&T22#+DpdnMJwG_-Fft4T{i_^MU#Bd-opYd`uA)%W%?&9He{KHRX&r<9@PH`5=d zf&n(LE1#LdP7GF11*AXB;xdcTa59}ftT0v$%ppQM)~=mpY5p1TbD3N*t{O~DD3q3s zq?lLZ7C7v4^mur)(1xCqJF1!{k2T|ojiRCA-I0d^L;koAhiJ$<&bC35xlVh}X;)NI z#QqPN(ynTJYhi(sJP0D zx7GXzTt37ZGd`cDIz`Uju@~RI#od5ua-7h*DxJtvj|nWfOPB&=qCJOYkkLf_fE=rM z!5W0GYO1qJg+HNSpEiN*tei%{i~0SA$=||Rsjf6zfa#X?;_CZ#KT?44@WYOF5bmea zr()7q`WR7s(6_9c(k6LaEYfXQVqXhTu56(db$efnTH^$o9A3s@6cDDwCqznY$12n{ zxScWfbG!T_^zV-S7Pdbc9IEBgoqiKr zYtcydjYjZyUCflKrQn0i{C6_@`}^GuoLi;CP<$WhJH=Hr@vs6@boBC6%L zV5WMa+mQ$k_eb-bm0%a7u$HoX4Ppqr5u?Kd>%KexsJQzS0&v0~KL@<{s_7iOu58Gq zi=wqt_?F2Gr#&QJevtZ{Bi-+6RN#fBGqt*>$7@bXG0k+eztby$qf5q}j$J_MDVcRVt@kuNXgUnJl9!<{O=_<5nZ z(gFPBEZxW-czd(DdDVS;8mV;FVe&>dGi#aJM_*4FtlOr(>bY)J00ZA^9i?Gg;L*Fb zQKW=X=bd6LH?dFU{0d?DZrxkWYZOCPzYHgxt8|Aj<4-1Fk$ENR&E6=7U?;dFBfLm8 zUD3EuZ~Z883nw$W2*w=THsOhgYcZ!ue_s)(KuL*MpS7lgJE4z{MnoR7=Wk)&LogGg z_Uq#JN{5qdvkF$-D@}NB20NxW+^IP+sYDgUx;rj0F{P-&)5-lZ?moR`QYQ2?5sgVA z_zTrrZpKpj@G0tBJ>9@D91QuR$)|Lx<5?=uoA65!9l_Z|x7osY_iLM;CONBB$SW{v zj>E=h6_DGTMQ#&}(6SXDT>p~kZ)2ET{)b!m*^s})SNkASu2^_#Mow>0;I9rhCMz?M zx@(>+M(WhhjbxMK(;CehqF9!uykHLE=#c z$rf!K@Mta3kbSgkad?mj{ft8OWc}w1jE>7#rx2>$8-v`uKc3=#8-~NKeZG0y(v-zA zueOM(o>?$F1$uqq1;)qOzi>W!Vn(ur{$RF^e9xXOT7-E3Vmq&5p?f;;?TN_XrmG?H z{yx2vQo3R8yR?pDP}{08cSMr`iH$ zGRFIBQ5R>o(WSia7f&)Gdr!@2@)`5U)i;epYF+c9M)r~MqL zk3)u+ruqttim8>=R$f+}8FpBc6)m ztlCe0Qae!zbBdY+{1bP{?lM2dLM8CB^6;h}_h32lO_HB^CYVogK~cddg*mJe zu&X>Z3v5$i1G}w*g7$rMn1}8)@UrYk=T5I%{sfur!|U#1@5M?Lerf*IM(d@n z9!QQSeY4+tb&(e!!?+EMH{(CjK2q<0vz2fjoqZ<1%{fW8a{M^Q_6v)GT*k9auE=-C z6o39_@=g@_i0bh7O8C04omAqHY2cA)zpNA&@i=;`HHzq)GYgg35B>j3d!9SFjjX&T zDhR&W$v$~}RFJ2#E>XccmH6ZLlO(7$+bq{s2oCop_~R;KKboFGc)7Be*g!FzZ8G}a zmk9`wQQ~Ro4MTLf+LJ5Sm_U+t!P}5@3b@&1cayHrud|wT;wkN0#ei13vIM52=iX5r zEq{BHhRXnzd~$2iw9KzVU{r-Z4Cg>$|Y~H zV+|_XcvFQ_Ll$O*x}~g3bdgx?Dnz_NP0te1o*}y*D|2Aj z;|5%4_k@{ziRsCua57>CZ@s7c<1umUKdS0r37{z%u+SV#pGEc(LffaH4WNie{qh+) z8YHr8m+1%)z#V?XbOwjvhqtk3|3$;q$iCnMs0i`#8vii7l&8S@m@%EPquV493{VIR ze?k6_O~aVhtTTyInbBRBr%yq*hPpB4jN+5|g~uC##6DLr`FRqrBv^w2M7gj|7!}Pw z5$@yS?L0VA4GYgly?7DUe8XfT!hy`|xCvo&W`}3RP#kd-S}iz^K%Bj|+lM{~8euSX zOTsr}aRy!fI_mvavKrN+ym_pM3%)z)AwCFU-g&m|XZTQ}c>R zH=09PXC&t1YW1lXqkzW|C~6`;qhBzDbfx@ocV>(_bZawL6V-e^3VxRLc0bv%2qrte zXyi-;Icc*M}H1#d^5M%_<)xV1Z{i4)u4jEn9>^%1+oVyxeu- z(-Mb+M|*j ze(#8%e)@M#cxNwrd8nvu=hawv`Mk_fc9X5SHfy&VYt8Rr-z;UzF-2(qvr@a6CEY}N z6kQLn%Rc-`!8<%&`SQ09kN@!Ki0b_4@X%gr-M8zviKJ6y2LEaBNnlaK%iE$m-^bC> zg6yk0FrY|kDQ-JazDTxmwc#sfxWPuZug8= zNngoW;J1nK$5(vb1f#Uihw>*Jh`bLx<8qBFB-3DQW=ikGhNiVmWG;qCvo=Cxm`gDX z6ie51j7Ri_=|}$fyZuR@`j~;q2cJ|CTDgf<>y%aUpYYB@{WtVU+0by;xb*-zL$G{@73cw^iw6lv)n;4 zH}c7RL^*}9-XOjoQHaV(Z|T6-qiYV;2z2)dwu_^ccvUcAxXxEJ{27l72;@bd+A!_- z8B>a9l+C7$hxO&t7|O&CT+TJ2m~@1oCqiv#E<(VidB6_FgeNzSRbo|+E1hQRadQ79 z{gB=f^Rgz2;vp1$u{+I}nu7)KHFAL> z&Y=By{xDArMBF#xYXiaMm3CGd)bCkHm?^niO20^=4|VL{AqsqgzxWe5#EXXRA4Hn{ zW*>e(vHS~!T`hRn2PN^eCpINoKaw5jV9gT4)g?9mFm3kCRuZcx4U4zFGGKCY#i>*l zu(-myd&&u8(}3&efIla--~(bDR#|TVIBNLWNXEXPr;i~{U2*DutYkYByw^0W7+D2TMOUI(1Nm;KM*Ch2N1z2E6c9@qlRZWL|{n9 zDHg>zlg|;5J%^jB@whA&oC>etSZyDnh*cl{Ke-cUdqKahvGxhW*uL5SEm^kKR3KFL z6ARZ*(<>ekI(YIrr$)gxs)(UopihAW<`@+-s{GCWeo=KkD#l6%D2sg_z_q{rq}gO3 z!w^qc<=Jkawi(Z-dsYuNJbsPa7hcPE{W8=<7DwJo9^f!8>uy^-iAS)m$gPHkbEQna zNhnLDjD<1D>AS)%R-JuAa2FFOeb{ zuLO%4Sm>xlPyn4;{fV|tQ#@{KJtzzIyn5_fyOoLPTYJ1;qZsP?&y)F5pfX7wA5?Ey zWvABPE#-T>SJ%p6W)6W$-~w9h8cbW1QB3>=vFuewg4708jNz45aGz zTmqPYOmb##sA16v@!wEDuz~Tn%$}U!mqrPwmTi$MFOagSd}!}hmc=jfj=uSV=OwDY z*e(L&s&#Zk`0Ns&q4`oWznq{z@`6%vVD!n>4iG?UWI2-~X4fk|`0tN@6r%eX&h0jJ z<*Ql-LbF=>bDG$nI`gp()pKs&+7HKsvWeVLTjw<)K`G|^9bK8VX=lE<58*YWfEDou zZ*+5k1>sL)c6f1Zv|?Qdk_-cbfA*=eg1&q)SLHKsRiOSqnsqwNm|)gaa5VRZ@k=rC z-;3y!1xVVn`~2c2xmnQchV~-{1i+8RL_RVxwHIJrUZQEZuQZ^Kw16>ns;Z8~mnb@e zbq)X*G>2(9Sy2REiVYl;&fQkY2%2F^B##ZZH=2Ji8ItuYqkQlU8Oz?bCR|8avp~@HpZoY5CPgEz;!T5h!g)<> zF=sdlrzBNTWECYIXTtIxOl9(5Xudtw*=p+&t(oE;{#B@ztQ>2o4hBwA4;GmEuH0Hs z^ljM9n3R#uwK|2TZ*S|Tg)vs)(DMxdp=W|LjVD-l?Q>-`VN4GX`8<|l zbMY<~`oZTtByHGj8V%bUGih>c1pJc3R&M&|1&Nrj1OQ;%oIL zN#VT+Q%(1+27X$<%LZ#n(qV~WQ+&2T<7|(nr;u9gVB~#%Ig(I)N{6X$>PTIKBdV%Q@U`rV2Gf8 zY--FzX<^Mftd?DK>M>Ftq0yZF(GKJepa5^lx<_3wq7c}Mo${LGaM2HDpSoTdV0tj` zI&oVJ_g=GdY;goojINLAucFgZ=YqR<+?`HDtP?D#{*pmVd=+>)Xatpf+q#3vYUirz zL)n`J>Lgyw*a3^zNzc@YKaZAU;1GbPm{lKiaTN+ z1b^XW4?u~_^=cjt{kO3)7_So^?`dAq_dJGW+P(1YJog%ok-OV4FbjSeSDbVud%v$0 zx{k?kjkZs6CQ3c{r!pvYWt#>#1O_gds;Gtxh5Iv?E54xz4y~%+|H56F5rp14?kJTjyhnbgJYh&Vv0O>%)gY~c9w`8A97S*@SM9_ zk5;s2%>HZnm(#S_IqBJ7^PUq|uXJ*h@Eh?Yi;Fo zaaBaRaVbFOWwy4keZ#(PW!yAZkD@?pTYMIkP)2jJS0ZydWbTB@q7(MUYJ7^6hVd`L zNRPqxExtIXbBZR$>Ktg1IlcDc1EwO?vtBd)Hb-K|}5+$BE9iY(S7|B5rGy-iCghV>p8CitVVla}pe zH>{lzIcjclB_*gArif$WoL%CwBtzZ|Uw} z=k2I4{`J0JEBDHpm9p)ls}*x_nKs;UO-d% zEnJk>u2&vab`{n8w?RZM*+<(f%Y*!XE31X0&Ty`J96F?|_6+rf z1S>U4hxn-`G)N`5U2XO$^Q#_GZvHtCm zfR2s)$|07CKYbwgL2z}%Yf$(B{xHVLNwX!O)QAtIulibLMEw}gj}}m(IU6X8-dN|I zeq5hi&Y6kP-mT-v+CEmWhXaGfPL0b&W4gX|U}#lBdETQ19jec|TTe!+}aCyHWtP z`&bVUuryok1M1wKZWjz()iY&RjRhdoAD~^Bi13@3x!P3geR#H8dh4#2HWz>F(2m4^A&>^xM+AUPMaJCgOWUyI^QNI9VO!4owY1@FNZz01M*MFb_P+^t^EM z6!XDw7G7le*FdTmymgl$U_TR2>!fY&rirG2Ath{tP`Z^n*WLF1_=5UMJGoh|)yI6+ zKEud?&yvD?FWi+nD_7hGLQ8E{a=43Pf3U*4kb@Q)V-Ul6N}HU*I1QCo4q*h#%eR!n zF4B^l#f%huxu^#AW@0C?4tG$Q3gy$Lxx=*eQ&DS ziY|T_@?BB$5Gul5Nx}vx3r+2#!NH@6(Fb&-;|LHw(fbvI{bQN}NgoE3jl>p~g8L^w z_;h3DF+|y?EnJI&$N5toC~1m!Rz{vyi5W~Q3}9;*{xM(0;Gry5s_nO5)qBsZU(0m& zs@bN!_lC!qB$zbYe4Gsa_SBst!*W<48RU*D&j`Sls(9&Pm+XZ%xF8@|N$~qPN<#c* zcY{QLqdK*8Bkm?32ab(oFD`=^4i7O>#whQd(d)~I^ev7RorM_pttFce*KgAU$(Il( z0L3^uC?^%kI!d?Gz3fsugAM#q&?y0Kt57C@Ue)Pe+i1ouDxJ|vL=7V6hJ9m-?J=`O6t7;fi> zSJ!QO-MVio%wJGuht58r-HWmzch}|U2NvC$8;W*RL?|Ze?T_Eyxji29a-*4|7ez+? ze|$r}qYJqev6S`QINMoDp8j)GanO@igPS$Tbg6^tI}XvCFfnm6Sn6!9Ojl`4M02|f z-UN43aOx!4B7H^MXAS3TlIJpC@P+>5Y2dY)Vq2D`=R-0V*T$Li7>gDo;zo+HE1sbf zde|(SH^!aX*JBem#*esiHJF3wdlYh+1PRdQqPwWSxWv=^P95n4@{oShx_45Rk}7u7 zDUpRM<0*rmZLoO7OenAX#kN|s*n>?ewAe7v;_;3?r8Z?$YJ}ZKArMko0{Q3+>sOGW zO^IN8>wu@Qqp_XDY%+%W>S%loBp0iVYnXmlw=3T>lt8`q=)lOaP4s$0E`+4R(jr0t zXBW(Y>GhDWRj}`Oj1SeudTZY59LYg33%cf!gIZdV4Pj|-> zBxW9`5q^YGk5NEd)HuA#p`Ck#;qd)x zg61@B z0!p00$>@ieJ*al+#ghdWg_v!!9*V)cGp=O#F>KeO;N51Gp1F?JeZgHc9?KxSa~Nmz zk>_Pfa)9g6jwkqZ=O>D@jX@r%)vOKuv(y2V8VJ@n5U3a86Bj0rxG|@|&LyTzrJx3M zE;ECIRMS6H5l)76m_QohudWYl*CL%TzFeu67}7Za@tVH3R!=l`v(h=FROpPBueVVC_ASIJ!br^sUMzxZzq5rZSB ze0c0u8Vex7pCR{@4G5ze)S!Yv2oIkhf(WSv!rJO}c>n*j5^c zQKQTG&6_1GasuyyzXzHu&XWb~1I#QZH_dPW4jjrcfTVOr^Ee$88a)%9Uh!SyIyM%O zuj6?`n&66gRAZN{7FPIfkK-QP7h6ckss4;9}X<+;-W}|E(5;@raZtE^EMm?rtCielQsdee)_K{xx~6^PT+%h zu0)5b??TQ4e&OYOBl%o$3X@u`yfD_$qtKzDy80#7Df%w2wpYf=L5bnuiRG#Ss!GfS9@OVRV)ypBbm zD;t^?%Fn2+Q37>;H|20XaYl&|uQwF_s>m2i<7egE7;{3oMVZ%&R3;Hnf4SCZQA-!> zs+T+$@ifFf@&o1l&2l0*Z~oW(Yhz$yzBo!j+gvh=d_MNK&&l^CCDoAmGs1ldR0BwT`wv6Okek6tKV?X5$ljH&2Mp)Ylk1)M%l?B5zq zK}48efQr<}ilU@_T+qnlTVG<9wv_j(|G+>96`K%Vzu+>CO8f;yB&h1McL z5~Q&!H{$)C6-cV4+95U*pqz#|^e1Dg~#SUyK+Q5up2XCxovi<7<9@czgxdFgQt$Pw{4U9I?bl6nKig!V8(bx+E;i{#KmlKRZbI)H zU&%h2b-Ai6weHCJn^uwF^1lWBXI1RJ+u`py?Zb->_WyDKY}bu;^)K3bYGDnon51&x z2^x$vdTL_DoS~>dlUT2A(?>>LixohUrah;9kG9?!{E(yPnPS{I zB~9I{qqE7-k42ap4DESRNKJZsyNevD5i-JJG<7dD`AMZRWTkL&Z=&Bod?g71re$7O7<$t46Ao^w6}l^zPvell+L zS8&XhnCty-%valL9H*j`7|ExqJQ#7iICO+t_W2 zNGQHf?ZvyfYpv+@GGJCMs+)UGs?qoa!88&|cbUykIYV{sZ6^C8c(7HTEmjZ|$!Ms! zzVq9T-%Ku@WWX@tzb1OetUuo+^;;Z}(BMw#tE@(}9`SUQn*`KHPFun#9+-EqPAAep z?>7t1?{fXFHbt50V_o(9YO_aYOaWR$76d2&5^DumWeAmJsLzM)!eAr|H59H%d@C$K zOFXL*N)0>*Wy-R*cDDEQbu9^EN%^Wpq@RWObWZVajU?CdLjhDwntLntvLXA=^; ze)^cMnSl;kxv$3I*`%!SyYXWj7CJkOKZtDur+?Fs(x`ESrzY=z`*rCcijI$T)36dE$nIwkQPZv0_mm!l5F za%@@pY|_3iP3@_c-jtngmI&2n_n3Z&M7{tITZ^;74@mA!9Oh$%0ECN0%U-{KE)U7N z^!|k|Io-ASQ`q!><*!2pGRdWG@?2|q4B(uO*nG@m)N@;c3qPSm2I4Bx}x}BKTzG%b_`} zuefwhu*brLu1hb_T6w=A-tc?|o~4hDJb9*elW>%8%7WqC_8VyVQoQv2v%=8j?A z(Ur__{HQ6yOiS!W(-#Fkv{|VlTqYmVHZ$u8l@7H)hiMKuO*7t1BvC|6Q0)T>H-*6s ze(W~OyEzshn{qm?xYpL;Z|fpb;-=cII_C8shatg+)lJl9cvD>hcvgKLhu(}oVGUoc zIjyDlLu8o5-`Kq|MO{eC;0n7+Uye`GtDs_+zU@kGrVslwo|xElEAI zq+WC|wkvHGWyo#Gag(vYFU)A|aHRN5r0ih!VEb~S>XKGEwAp1Sw1)&hU}HO?g~7?3 z_Y%3x(YCf8(hI)JH~h@H<;Emu6qtaqL1wFO+a&-kZBG)vykHSR?wNyK?R(lgjz0J+ zA!(RT6(ZG&H$yw{urT$6Xap&N3%5QM;0lG1rpXsA%aZt_}2YFB``B>U)@r*wof}`;J5Uncnkw*px zU8x2)i;91;*L0p|_tpAPEbyX=LVVBGSdc-Ir?ou#sXBX&o>mLywXs4=z;xJ^*+JBD zlC4FX#I7K#VATD_N=!@*wt(TMZDwXN|XTGKJS+AIVkyst9v=yMgPmHcS$QXE~e2f(AIP#OjEx zFzG8xs;XM;FC_0f;v_swNv`}rfz|AK-%Bc0U(gK{@1G&$3T@T}I<#->oK{9U!u@Fsg*9jFJDqj?89!h5KcBR4^KPriDWSSip#%|IzMqKH}saeu59+3Kc|dC#Qy@q7Cq@W)pfr@B4S*(n^v=x zWGbB(4@`;RRxFaZR;-y(w8m#bq9=rd&__)uaG7}r?Y)kDO^BFC5cB`FcP6`%Bv~2e z9l943m6>;n**$z7!ae5k4tZ~8Ro0ky$ZFPzcj!l80}?INLTr%e1ww3j16a^PLhNCK zcz_l=&VPP0537uf>=qjqq{-y6FgLf!Q|aIRj~z3+0@C$+W#k4fwkIerbSV9IbhQ^e ztc(cg9$ZEw0@&FtuN$q=^jrE?y6rZqrypR`K>;II z1q4KXXhooNW(oG??!!qOcUj)djF#lwa=h-GbDo>d8|BZQt!$h^j1?GHn2fvFOT4cF zC*6HCHU`<}X?_9owBzy3F}i8H8O+~+&c)zdIu07hqy<-YhQl&n+eQb;uh>7YZ41rKLh`}j&mzX8f z3W-?}le0(iGlpsH11#(iDPfgfynKZ2xOt=Gr_871=P;i!1gl2K9J5Ri6v%yH)RL~V z#480qUE>J*uen7=ER7sUe-XHhFd+b!&2ReAyr0bdbRLej`Qnux84Lv!x}B8<>A=wt z9s!ZD$syPg8O<&Gla(|m**t65(NLhNoHPkQ#0fEa8p`N8tgeTn%W`!$zkaj0`F8hO zR|jGtAP5i4hjT>U+U=upg*pgd;BP1gN&$)1BbZLXNMlJEfK2V1va=OfdrM z0!dLc)RLu=#xKG6UKpv5mAC*Wu&AbFWi`8k&^&9zLY@?7Y|Y8`9m?+je7uES3HJ#2 zRyUXCmV}P;FUpg{v{8$CEWmn{Crszn#EdnC?3jv$jqb?7Hq`=@b%i3J(9D4KEYaG` za!GBJCS!WK?0bSHjK8o^AL-sfrO-HwTtdi%@~7wjVs#*>@g2bN+PDUzFaQy>XYh_L z!EuQ7NPv2Y}O>)kOno#V><^O!Fywiv0eq^n8l6v-)E@uIVaR6XtBH|O3bh`i0_yx9 zN5J2IzIO*v1AUU5SOf(BwFl3EfSEx+fx^x}c`xwjaH6@j`a@H-IFUiSMiAT}D|B;#GxQCCawe&zARTbc}%Ut+#m)lhy{zfC{P|3uxk`Jbi>e|5&wu{{7E8QzI(@1UfnikvDh0T{pXX8v41v+YKDvSVH)s?*Wa5276Jm=_DDxk+}#rp$!9FkXoN@`;G>P0b%QpSV9m$DoT)&K~_H9#Z^vt}rlDEtmCAle+eVKP;p z(@ZoOY}i2bs`tpks-#~t0fKFsVgy-_vy@&`S2ok@Ih9RQ(e%KpOFB$n(&$n z?2s96NO%-kAG!6kxJY(KE$b7<_8{DUkmHEwo|3;!~2yScOr-dIgrs+uG=D2Bo0-0u@dDqP$3NSFo-NKjV zQKs1z(}y{3&4=wW5O>%X%d_Mm68(_|_wM_39S`nU*h7Z>IDh_gw}&p8uyv;0;MU0* zcIVj*?zrB+_v5#7tleWZGq^or;Io{i{RnLtrrkG1>|=TN{W2WuIm4f5aC45$7z1l# za8ZnbwS9cN$Aa6gJ34pl3~ZNuI2`X`V98@?&fBq3yRH8i0p+Xtu)2F#y?R>QJuF|n zTii(@N>VzTR>Ba5S{PuAU9287^n86!EAo3BJxBBynIS&%y zM=Xik$Jq_sW@nOvr|y?8pQOz6=3%t{A}Fzoa$H}hlk05yvcO4hcif+aakTkr%ps(`_g%Uvf28F38dlljRM>osL8K!yozofgbjnf)2Q1CVJ)fTpk%fFTJM@2g}BmG zTExJocj*K%pXqti%D&j+x_+4oG*9o!VMiaJTuf^fgEP8EUB0X&`Eap*d^FPBokmMvq7|J!ra}j z6f~5n39Rr_5X2+RT0=gh6oMPVf#SqIBdHI(UEvZ zldi5QY&1o7;14z5f~HokUDEn*e&7Ld4G~KGDb@m>enLQ|-4E?y&L;$9_=JFNU~LQ> z?|$z7KOvx(&4BmzqU-qI&Kaw)zezuS@Qn(*a{B-`J6TRpL z=e-n(c6{Mw?V#?(<4#a_!m1Zly?E9OD@k{PsvAut$IoVdx{yvvE5m#t)k^)tVlm7X zL+K3QM#i%AY&`r2nNpAO z18D*|wU=zsN73u(yok4`!>_zOL^(WWPl1My?7$CBtyf5$jr!u z#1jFsZZvKOqYGa;Q?!P;%s^`>og7KJ3~`jyj>_OF~K(oe)#h_H+F? z(kUuCn%|PC3rB6FD|vVFpbT8gkDj%LC++B@9X>}4PCBt%pI!LR+tG_w`1~R`>4ws1 zH?HN~bwYHz8;p8!-3_GY($!LWi?;Pibw8@R;j}A>cr3-b z(OmL5nf-X#4<{xcT^hIj5#D$xRaNKx=(Hc7_LH-Ia@vc|{q(dKOZvQ@wEXl;ZuR7f zIq43|VK#}1Wth*y(ag`MLAi`Zv!I+y9Om=5So|K3hKqqO2Ja|eQP@*Huvdl?(CKCZ0;arT^Nkx^ATMbgGb zj3XjQexxe}O4|f{feo$^^^B;QxsE1|BFM#R77(HQp)iX%TTeHO2mzp~AQJw}a7-mc zKs_u3j;k1EhT}RY6B;_S_y`=t1nLj~G1LoDvnq&~u18HP9jeGmn=<*Y@hnky5M%<^ z8gGwlR|Ui-&(s%L%pe+NUBx)EqhxY1AF6Fg&PsPgI_A(VgSVK2NIK*~M!GF4|Jg<# zb>$yOPLU3kD_`Q-!eL569vf}yH+`^;YTrPXnl`uS5lm1ckTL%1AO2e6FMjoB694M& ze<{(u`{#f2rxIC)Iowv-EyMWBzx{>8!!%96fBAQRA(04prh#TGe$x0MXPVH)G|hZW zGq@#>g>N;uIs90;GZv?mQgMiQ6upb;}&#QMHRl zTLp-+6V)A%*+fX99|>BmLWw0bB&0_h5LmGdi%nSX0^HgGyo!~H`D%zd@zgLwc|4mh zB=dZboezrBesWEC?M|*SPHbD_ZhaL?P9-JR(P$;`*9pcw5Xo4mNGP@!RPEtNQD&|{yb7R-ErW7{ zn6H9zEhsFR(ReEr#?@B(jKhM=w zVJ&wD`Ajl}y?UD8OQteLA-Qfm?ZqRoW>~*yMK5}(@ZXEBz+ZIION9bY2kBWSecp{v zdNFQwl9P6P=B4eR@bNa6I2jpY;S!9C{)4T9e1U|%ATOT_?+S#;Sp0m}Pv+7eEr~Mn zcfvr@CAi$v{Jx-hE`K4+1cJ4anasA_Y6;N>BY90NzY;(PyapA3Sl*PrK1s+Q10Yek zH7vUEB*yL@_?)a#^LC*!pmf_HlU$JJAFB3!DQ%o#;czqxVwzT`0FGt}Q8ph+vqDPS3!uR@iP>i`XaCu}0qkRMH`L@^X*L#!X^ z2darVSjT{%mb?dwsZy8$+7wJLsr-@Hv`$)JfmyopkL9(|+?*H31B=ZSz{j6BzXVGX zl?#o_u<{vXRBhDopEd;P&Jr!C6c}fq^BzLoUORj%^)rDh97N3air7tBk&e&e)u_nV zBv4r8K<)xV_)`_oQX_^YIa&;MULYMR)JS4e*rND{pPJcV-vcp`_(c_v5*?9_KP?FE zZy6A@nAlJqq0Q80g}puST_Mrb*#P4HS*@0pG>qu31$5Ev69TeDhQk&aj^#5P>($5G zWpG=6|K5injBUA3eSEyfYUYSo+p+#1w(icu;hcOzK=-bje;5wiIvh2_;k^CdBA}nn z{8T>Dn?OGBDwqY8`O<5g39__@c{`}v;pk#GZhI9ZH2EI;HOMI*spKZiH1{FD=_g;f z4FmweOh8BYLm)t?MR;ytzxvWdKb?~5PP&Q2vu-B*CyDbxeyTZgeJ&Kzk2~PADYU3) z+>K`4XyU~)G*p7sG)lL(L@UU35-~vNNwTnLLhXOiCCYpvOisn+FQahS8Bu9KOW0_@5Dl=&}*gJPyu6!@>8g^R^qILswE-iUNe^#e6O zD+(ILP5}{;n8Jsn@Tt+3g~@QlELKiBR2dHt)?l1grQ)2qLZ37FS5L|2USWu!X>>b% zoGRTDYTMi=S{pVLG)>rcK_Mhdr8+CoXqGp=Dsfl@ygX|vv6aN%Gg-_vA_}_&XDxkz| zQeSFf9Z#-fY-PNPapLVdt}Z)4-UDRR!WrGDpnlegs(v&Q{(un{D&R7#1bqa9)>4mO z0*L|~kG2V_B}Bnui)#(ZP_RjGEvnbi2r8PYfcd#s>PJ028)T>QbC9;YO0MUAeI_6N zLDmjRFJA~Y2|`I#aSib@DmH<9={1cyt8F^DiEA9uA^nfXyLhsT$}I{^E~9z_(I^~Y zI4~&JnwD`vZ|fy>FQ|GE&_uwipH94VIRsBgpXX79S&|OxjBPPv)h@8JhvuXSov{e# zf@prRLirlqlOYcwC_?ZX<_iJJVX+KG$kF_*UkGI`y?hlRJ(GG=eOyZS)GR(}M^i$OL~GxQwkyoOObo%f)wNqPobGi>Fhlu`e$HVvv^=41Ce)%zaO&MQ1koQVwg>2T!OQjKhgZ9 zTFfUZ_)$2V2jvEd1X?ften3@A`S+$EJLIXo@U}01lN6GF?#Xqe sa$tpgFPBH;pHnZH1oy)ex2?tCp+k*IEhT)}Do06M-fm+MH_%+#YA) ztI4yq7dCxqui|Z4W%Cx}a!c*`4PW+`<>F>@0nL-8?jVQHZ+J33ztLQj^T;yp&u_SL zp2e_9Uq|L+SZZ5hW8YiY@Y$r}&9g7JE&VyHdW&2>wdk|KsI!REdVgyh{(RKc{>zv% z7ct{=F$}(pICB1%5gRunSB%L;-MOeV2Td-Dj$GQEi`cjaE?-3Kxv2GG-I7gMUAJHA zZd}UhJePA3XC7B^e^{@}CFI!oi2Y*ClD=MXJ|az4tru$z9sFTU&gshX<+}81FL7qH zA3oLPazCtbbsd++{@7~Gar}pMGcJ2#=QTMemfwHErC)r)CTY6*z1hLE@42Vxf2@E1 zvGM)K+V^X+lvBwGYqFHSTn-~^7H&`OB+@WPeL{P=-jMTfhlcE_o8(wI)%?0EOBt6N zlbd{L&e?eRsqsRZ?7!BSllG~$6t$K&>Tl!LPh0j++x9OB``2yj-x=?>l)aX*H+THx zj-NSd=Z~5P)n=&?RGp6Fcbh>k=nQ)O;b=TQ84b@)PtMOLSLdf!=VuRh=a09Sch_f+ zx96Yl&c8lfez~1~eZ2m9fBEJ9QbzuGxcc^R`St$%kH^bz57R%tT>tguT9$u2qJ#E$ z{Rftp(*Mub8(n^rk*_y@e!i9yetW$6azFk0aPj%!`rG5>!_E1ZN1pug^7HNGmxt@e zyGyx;hud>$_qXSdH|O^^=Xckq_cvF!SJFAZI-gulC%0GA>FJ65zuf=yY%)0+o{UG* zM#I5)G#n24C!_I+t`GX-@n|p@^m_e%U;cO4>Gt}AVbJaMdguq8Ubj2!O20R3x4W%w zuNCyXcF%8j9l!0j`%bfG`yIO(RP9#PZkMh0QLTB@Xdc#@du4yWg5_S--!J>S(kXj8 z$If1*SvYcw$6n#c!}8F}>^rGFC%Nln4!zW#7vHtxMSCM>NAmJzS-&Uiza<+#$LsI6 z>Z>tpIc6=aRp;a(`B3>m9tO65e60NA_sWZpcu2I#sw`iyBhQBH^I}bQtNr6coQlu`cZ{yBS3F~9p*(^Be zJ%7J0e{a|JdtPhMAB_9M;b?erc8bsXd^$ZpJDtjk{NL&6$;rvt+3935k^V@YDtz!K z1KE8vmNogP2g5PWFc|gvqi%mBpK~kd2i-xZKWcXdtxms&t4VE4vM)g_~p?JL5dPVY7{gTw1F$@Y_AN8OT?OK{R~1(xe~sdh+d? z*6X!p*^!5#D^EwO)0M$iI|%SFbb^kwuGeh)tw5I2T)%C(p4)6WUf}pa!)?~=rsV~7 zr&V+0A@Qqrv*xs`mi&7s%`4UY<3{tS<{j7l!>W5&^A4)se#P4@ImKhUaDmNVv$n~$RjkGHm5o9< znmLZ;${YDgG+U0c6UmmPt*4LI(#MgsY^_9c74$Qe^~|w0+2K?AILh6m^C__}JA6tW zt|brFc;KwbpzN@YQ^_Gm>|jtYu`U;tPU=Wc`zduO_Y;*XX3CKqZX=RCj%CYo4^dpM z6qWnT9Lr5^q&mX+dI|tena}{gL-;T zK6z;k{rt0scKX1U&tLXW?KU#|jg++AdIsN@ojs^$5AgM6_UnaX8ENDWt^A>#Ke7t) zwW4qB99er6XSeL`RovYYzWu{`^E)9nMZmYY!P~q+z<0Uf8}?VYX@ztsjHn?`~c^_1kiKMwoXtTa0^;Q0RAIZS0^j%8 z&76e&x{x>i#&tlRoECqMy!hqDu#`X0!dqYd5ZqPc#d>W~-rP}ZWz%}QX}#OBeoneS z3k9a^4{7g1#*XIvt)iFO_Y24E-E#Y&+9@{z%j>w!zTcA9TYrF8`rzzjd^#BmQC(l0 z3SHe^p4?r5y&mt+A8yXR+?{^`1zvu>p9=qBmGDRYyZrO>jgX&mo>1VQpD$$f&&SLE z`Fi`;XW*c0l09Y9H(C9BBZvI;<@Vd7kl*zmpKpMGa`L-NgMiwE|8Asn^Kd(TxEB7q zyuUfU69l|GzrH-VzB;|VI=j9+ySg|%KR-R6P6YmhMJ6X>X(tmPpmczMBXEcCAG+hA z{4*F34Ez0#v~Ev60uTTQ1M~na=yU}j{GjW#q$B9ik&ZOC*>zf-hTCemothJrtY*b- zA5~k2HUF^QKCHF(NPhd3mSA78Uwo_!-u>{5`CjmmQ25g&C~ysr z4fyYa;YA!Pzckk5RPwW@wh$2_lrz`o)`bNDd`mHFDFXOg-msUW)|-vGJUky$&Su_8 z9W)OrLD>?r>9#roZDZkT`5-5!@`2;y=5lg2mBq>F*_m*jf*`O@K6UwJF+v*-rHzIE zgt!MI**fkH#`5!{)fL7P@)Ncj3Tih4`Plodc3+^a(;Ep0f&zuhd!t@&B$(JG`AKWG zJ3(JKuh$Xy<5Hev>2&-3uADRI$v4;vf@aY1gPz~&G+UrRj}$1(CztSAfsBJSJD|*N zZy*mtyVH@TEZ7G7^@aUf?Jfod7F%sR7_GKkU2ssAZnJHBO*yCSwJc8_48LZhQ+52B zg}(ew5bUd1&9c=zt`qy}uCU-i%@h9HugLENTYe`9|Lv4LMZo-lG%y5t!U9qVbL@lv z()*wj0LorX7$vy_{)^|2w{~jeKOms6j$ofqQ9NHGLJ2AfTGcj%rNCj}xtNeswgTqM zmIV0Fa%I9_IU-~hA|RkG1F8f3DcdEFA}Iko;+>&A^w9+4LLAhs;KGm&L4j$5l{jzc@ZTo*RdBYlAvZ65f~+7Q{@$EmVs&e$ zE>ssU5CP@W$X8?ek^w>BGFVWEP(CGrX2N1a_LspV*v^(g*#{IT{CChWAN5Y1@F%S{ z>!kN&Ya;{BtI3xlUr=_xk=c`0P48hOPl(SQf&vT20{2c12xt|L<=3FI2i$iR0fqmh z$)_%D<6fr$iv&2Kz^=03 zD>mr>1k)YiB*=J4+!Fb(y#fiawFLDJo2V)Fq0$L3QMBW=fPnIcC=nV(kZpl|BMok0 zWHA9613}7Q0-7ZhzC@GbR0@e}Y{0=qNPt+?dk`$sCK$?VwFUSVK!kEFpPiVUs9kK#~@UHmGn3YUGPtj?#|7 zzK_5@f}mU%gA@Yg)!vw2gIu(-VZ9L$+-m%kuzpKJ0$k6!v4Xd~>!7Z6P$)-1JN$h4#{+~wIj5ZM>%)zZjPvrLQuFh^Q&#o^70naW#foIdn_-t~b*mnZSX(X73 zK30K%gJB;4I2`tRLJ2)efPEGGI;4sK1RyW_UJLq=kb!VU*KY|%bUnXoHv`A(IDT8` z+49?Uw=G~)vH~GLh<~N#ezhh1R}k_$^7BV-;ZT^*DF^}{dAS2Gd*o*h{mg-z*pW94 z;BO-j!h|Cnn0E-hpID{1|6+j_rQf3s109jh$~uF01RNx1sIK9q&(F_y9e$*=Mc)eApKzsg4i?d4isew^S@S#JmeE=DaZBMo_M1OZoKwmdwm z8`k?RxrfHbq_a_Q()-Q5N~dJ?z4o9P2qBI71Mr+6pK#t({y96lIG;iSoSxx-CTGJm>};K}OlR-45iawjiJ!>$X~s*OK!%zK|beKiijIR_(gu z*PT|y@+x+--0%hdz<>2-rQw$v{;}mBRsAFIpMM~)fBaw&0&t5*jop&FQ?he}Kj8`a z%>afF$Pn_|HTsiapJ2-NPGyTtctsFUb*#AXP_8V4o4InlSQFaYB>%~v%4rb;Sf%xJ zDVjZsWCZ?%!=!UW3RM0puL047{8X+huLJlFsRB~i%YqaQ&k^-Vc#sBX*k?pR?(kd% zTu`O8kN`>BJ3`ylko+2nVnsMF zDYSPWP~H#_%4xg zTqXZ$NBQqfruPPtp`6_KzpuADK)q+8pmC6mUrbLqYp%W;c7TIw0f#sU0Z;wnWbj4> zLMnnQ#yd84uxYbCEMU1Yh<~r>3mYy>39-%eLS9IKQa$2C3m}+)A}IaYQb27bM8jo3 z8{kRpV`W5wS_@Z90#6kX7q?~<*w#U1vSnDwM$ekxsW!fcQY;|1=5^#)FxIYgD?rI10DeZHw+Zgp5~>aU^0q=A^#~O8nIA_6V@=W zOx7P1Wv13!)7@bbLNO>xB)VvjJ&`& z6uX&UOooH(XLt^P_}naR00%h;yhEST;K$G!=FWP!s({biJT*%NK|#Pdh=_8ZwU?i) zg*8iF>hd~Yg%IfevJElmQ_hWMz2sgix$otV+xyk_VGW9o<@MaAyc$PAM_zvY(Qte^ zIXMMFjW5qmfPhzLch`{I-~!*Df4Q5&1qPX2klW6`QUCjk*!S0G^?$E~0ttU$zW?F! zFXcbk^zHUPPzNzWc9cVILKX1(>*wn)@PdUAuOII(R0UK7{7e`4?pFBk^7iWd=2|)z z*H@=k=aU;qfM=KIrx(-H^RvnMx%?3)XQxmBh4&`15IPw3PgDRL$e)RS`u$!HHt?V) zNC>v*x8WWNa}fUI_1_f)>4FlP!hc;s6UPq(AcX&Hzaww@hTo|>LCtO-HT(m4kyo1s z6~8E`SMm$;6CX=2U&3lm;19O1ojLN;`)+F2P42l{MQ5{MN3wP#Z>^>5k7?^eO5m^Y zuY~nuy#DhxM7URx+H$l`{;SX9yM}TsJf{>0!b3a&;g20v2Y>ibr$;Q~bu>O&GWe45 z20yIT5i>vvR4s4`&aeF{2J&0osK4K`f81*PmUcg--Hn|5Z14)D=5eEAdwstxXf+y) zCc=NGr!aZXVEzjD$r3ss2G4-s=;43mQg-&_dWlpXApi0(RsZ4`fpS`0MruTnu`^&7O*aoo+|Y*M|QK3M2w{ z1OerTfsmiuY&$+Az=qefTv)(Fz@~b^@*|;YH%k^l&=%}-kLx~L>#*t_RJ_BQw{vXo zmz|xmT|BI-1)M*$3da=xjx3>&9Q41M07quu3JpqWwFGo5z@M~OzDy*lZ0$lPgThC7 zY=a;b14TjGTh9u^l_J?AYH!*oykRS}z)+K`u44)P?-PC7Pbnh=66ub#qmBGW_)8s0 z`r^O}{DcA_7UJG2&@XectVOe6S*V6k3M(5~ z{WGCx3iT2Ms~a=^0|J5w)e9C}-Yk}%R6zL*cNzkJTLORk_!y<7_8atn@lnf%FP-#( zl_q?rcH~>I)C=C;t;oOBK*0SO0!pVYye^!V77*M63(6)zz{0UZU)U-h!P6)IIl_PP zMekRAK|ldP{0ykN-@VNaG=T37ls|%?Mg(RCV8L{MW(q$wz+dm3@*mKUv3f+n6&l2* zJ?VmqgTdPzE+m`;{-ZPqI%ES2W&nba{Xm4lYf6AB5Y9YeS(Qt`p9Ki^1;xm13TIRV z$%V25g}?xNhBBev&oab9a2o^rI#3EpfuJ;Y=rUMg2fQ;6hSP6SGU4B#{NF_cKTv@jDjLb%D?D(44os+1_SmoyYeFSxlxcNqMa0D1xn zLm_as1P%&oZUxd7g$3c^0{gJs0uHJu2sBKz1Pz4(!J0BBUqIygtKR-IyW)};e1TX+^w_+Kmt1bp6y4NdY>3Jk~TBP$oes|9#P5#+~aX8m#c4|;rR;K{fB~|5&z%?U(pf1 z`kya%e?DG80{jdL{1f}b^Ochb1%AGre*1j&jZ)&52VCWgAmA+#5Z3ecfN8I13 zw3PgEhfW?6ppu`H-uE(lUKRm=R&rOq3ol-@qM1e{XMM^N{xXeUleK>)>>uOS`*`Ec zMq@crTiLLdBK7&T>byJ;ALY>^%z^3z@~Zqz0;L)7_n}UmkAok8iKM{l_aDmA|NaBQ z22=&a10&BN9-F!>7uRY_>y4$D{WcEbe7|M=oUngQJHmf!Y0AcX-cC6@wy^4RtN(z8@7Vr;1un#$~D-Q-J5FM~3SrGoOoJtYU zWAIN;=5D*r5HNJx&!UVzrE89DbhDP-_YWe)leqcs>LI3J3}qrNL+Ka)UQH6#}ILO-|VB$Knu!X#;<&Mj-62PzYqy zVE1iyxPm+qqYlz0W*nixL8N-99EiX{z*bkzznT*4>jD9}NiVlbn|Kw8DaIp~)fGCn z(gc!LcmudfigF;~56T~}Wd_NAWWg3jR5;9FH$g_BvE^jj$dd$6X(|)0q|q_g4Mo9M zw1&xl*g^g-1;J(bxm5n>6jLdr3dp`(S5rWi;*<#!#x-76QBVcKgaN@5e1X< zWT^t;LUHDWklq*_2*{%rNR1FI2prT7$HUYOrLj15MC=I=l$*g-G-oA_rDlq#5=ly< zl}u}xbO_hjU|$^8FdbxtMJA32EJCq^Qb@5-$P8#GgD*i#yctylpYb0c?D;C;k1PnY z7{o?6)73eql0Z0wlK0dwLah#~n>hBR^uyc^;2_aZ;ZK`T9TFWvvv^?xStd{o*98Ho z7lIv?3snxZ< zf&w|BgRaIY>N#T@p{EQZa*I|`xV zK$zev5P|}qMS5X%4*OK)it@f+h%}a>&Z}tS?Uwsv!ueOq`IK^FIXAiE<&Ii~<5sEB zu2?W_JU%@ctCl8Ab#*?uy*vYW-A+H>A@k$Q{WIhJJm!GW`PLsO>eKxuP#rouMq`!O$qSo0_g~H=NB4|1{H7wD{|PM2!x!3 z2uM44j9|clyzz&_agPQcUBzyvhuE?fyuz*kit7jRYIj;4mr;NMe{QQwn@`^N?V1~u z8?B=n?7ZEQw{z?lkBNN;(wxj8$S-%~rw`oBzMI;!1^%{novj_@d_=QW1m>^xTe9)b z?fS3V)=%;JyLj#GX5&?~_Btj6Ute5De$R_f2;HO3*ASR{!2ko$o-Bp!@bK^n{D3qg z^GpKxOth%R3E)^H5+Q7W&xw$wHNRGS6}4V(Snsx+_nVEMx7}Zp)`ztBd&b=;G&gse z={>(#Y8NX4yIso_2pjhXlfm$0GM*sn5B4wkPd;rSKve)INB|K4oP-kKxIaSVAFvNv z+7M=L9~{>1AuU5bRU~J$22N8ryWj9TmM_=p)?M%)2Ae&{$3CFO-cY~}njhd#PAGUb z(g22DAN<#6W2dKW&=<-dAe)03KV9NoC+G#}58xwH4qB4hGzLcfn?*H9q9vdi?K z9u9;Z+(7_h+i!KeX2sSM*hJY6UNGSggTOm9IckG3f-$zu zLQVcagR_hXl&0_(L*_?K&MBWmG^`gg%_#s<1LBSs1!l-=@zi{FmI557Sot z4+vP4!73swskY9XcS?Za>Ml}180`lY5E9^_EiHA>NbOZ}2eyEFX1|s{dXfM&5U^N+ z_$OaF-WiWrpb&e~DP9Jjf&3J?p0{vtpn745iE{P9>tp~%Bp1>V zW(ElpjZFlh!r#mn#wuh&vY?Rz6$im>DKesph(d~x{eYo*8_2y)8Eg2}HdxcR#xSXA z7Kc%TrjLEP045VPXqXQ|pn*S#g%}TM4~&TO8w8wbfzbN><%op)_{;q0T9*6)%0FQ4ZdP( zv)%)BL288Blm#_YgnqGdr!d(P;`uZ*Q2k=^=*$;JRAR_~lIrcz+y?m%aH&M-;GIfecpgbD7Lt)8@X&d6+?A?>KQOac2#j(d z@{92*W$x`0{~@^qo;8w7l>dl;cn60>NcdwK?=yS^8mijI&iAS#;&qPIP+Y9OSYwh3 z9cQElGq^B>KX$-{5O`DqoR3(GF=sK-ScyCGUjHTOtY!UZ-b?N^GY8F`QhUD^RGnVk z6Pkhk*KX^Jb2uKVZZm?eGZ_m+2~^!)p2BjyJiWU*eMB4{GJ-!N91!&O=OZBR8~9If z@ZvAU!Dk_Wv&Q&8qywu>j1i=XXoKzh4N-uCm;#y?hysMrcr90XxSM{Fk-Hn|Jl_R2L%kv3c;4>k=OXdQfo#AhR7P==5* zFu=PV+|X|Y9R`pYBiKW@SjTS4n?7*;j=-PgwQM&KF0tKq9R^=Z-tHxV`+o!5|>OOKD=SLLa z@`kk=tb$#{%p5oCUhM!+n{bwf&kaDIdCP$1iF3*_~o|9Kr@zJ}MWIe|30 z*{i$V20rR8qYsg^fs9}Xbx;tyLVkVNyFz2~01uGUGZ4rdQu!MUdP7`$L?KXk4*w7h zk=p^^pQ~g(U>~>;8*nOx#UT(dK&Su$0p%J<3hs~~=^A(C#{zW3An=e590&rcJk0pN zX3d%LpIfzCW!ne;HTW`2wfhzcYqEcwEGBkX72tZKbQZs+m@D*Mp z1@b0=n?iE9#73@$Ccr1Rtq8~zX1LpIQ2Ve|L69lKaDm}{s}w4fEFX&j!D3B6F*SmP zo8$T8?R}(-B=~tk=Ti%qA94y(D z3S0#Os$a~Mk!=crM8l^%lI>tdgkc;Zn9q2`iOwPf!WLjO0dLnh#e~9T@Ff&V3W03^ zqOpuySVfj`7rrob!5|D4Y_bfE!NGZoe<}g0DU76M9l;r({4H!Wk&*&9)6hND1)=9b zGJMJ-Q6catrcgl;;e%n2BKVJJ$R%=6U>|RI@&_scD*ru~9`#g;fJ=ZsrNHI_!UTa_ z3mYzsTApVHe{wb*0q2DkWI`@9Ssh3#A?i^hG;*MHG-3~oXwpqwIUJrW`SJ%cA1qfA zr>cNLGg`ex`AqL>#)4sbFAxok7y*Qt#>hNn!51t#1KNwK{%7pqnMbT!Us5jwQ&Jav z!N5UaD5}iNaIgWIG$|%RmNo(kmG&4r_;Q^Ag%Rq1xOt%AGe!hlDjGtugGQ*3S3~+U z#hVZTQICe33=8s*kPgYRh(`<^#!s-OXKu za}`Uiy^6ezP{CXug_#Z=i7e?wM>KO#&o(h7h|1lQuPWVqy@7ujWK#d6e z@_6}pd-fTk;Pq!{fz$h|>BH^C!|mnm)%5=6^6qwecYStubB++e%gOcm+2zIQ_2m@e z<#cj^WMJrjvK&L#90`g*3S`}jfc<&XXBftxvWGf4GylDpQ{u9MjHRQZb) z?f8xx&0B!KjQt^F{gy)7$Il7t?PmQ=thTyoz1px|#pJ83&glaK-G^)c#=%DEN=xd>^}Ge~=&04-W=@9xzXwB4Qsw z0t7>8?eIr}f*@+av;w%mEl?n};g+;Y-M2h>Li~#59V`6R+~X?rzY@v@dHceDW#^#k zg8vTdyJfq01Q)n~qyZrYqyVS)Yf2$0r2U5Zzx01$ZbI{`Zxx`B3FvH^YzZTb#bB@k zsx(xN6jj=Q@(0M1L39|jXI$5mdaorKz9nYnR-?!TG1|(eoub!Y^hCS1VMyaR*=h8XosEUlwm=f zBn##<6iB5|J!0@8lsq%2VTEXF6JvkG_N}HM3IYVf8aGrQjrga`hn5BxD*P!6B8x>e z!bC^&i%EwdKgfXy=`&)XI>jVW1AnuoPVsB@AqO%*kSwT5q)8uvl1EVxf}BPQY92A1 zVof5Zcg!?lqY)xKCG?RAn$H^!4_Q#I3vNqLw1bW)oCljY6aqbZ#0Cdv2C<5nP@@tV#Tb$w?O>BZLPb!a5N0&q zd}u&MYJpFYc}juW;U&O`vS}Vv3Ym@khe*LNV;7FFLLo>oig5~r*i9Jm`?cCj&DDU% z4G?^ZL>BO$5~1uV@8E^7Frf^x93Y60QVm5ueT9eWAOu44A`NlgJhDR&7KZDhq6ajg z1!>X7>zMO;!+y8rzE22S*q?Hc0JnFVnS)mGsC`fkj;+A*`);$>>d1R^G+=R*@n|?1 zjpYq4*mpiTIX^wQx}4r#PVcU!w--pcy}LSnxIGu_d%T$f0R`0V!GeE00{9pLc!gRp z-)Q@OzWAHx%MP+YzFvKMy!g*o1Ok40z_9{(e?H!V|L!h6-$DFiqVdJodq{wv?=Bwi zFBkD$c?^Qq;t?P_5ig}=HJ zRGh$a1EAJk@td|_ ztE=SKtk_d1} z-l|*?OXQs>YZCqnH4$S)5Zzc(?-&^&7=$~lc`)jUZy*Q~ zXNd2hCL;7dMo(_jG&j`&Q8WkY;1{X z{x4+0P#1jttUv3Z$<<+)!YMZVr-fsl6v2?^(psCa|2hqK47L_d3sG9^9j z2qU6{fWN;v#e_mr&IT<>0n(JSf#L`R+(H5`^uGkOz!1xtPzu3?C^0>g3};Q?Z26g7 z#}*cpQ6(~j!Y4FjaT#Qau&50#odCn3zzt!Jm!LaLj?~IBOX>@6!WTA|dlCgnfq*lG zJa)p$&)~dgfEZFB(J<-?3hRhgoQ8M?9Be`}i@+U53*|tgw}pP zLJ^TwvQ-^~97tbyo_jL>&svT;OELS+mbySYL-h>+js+snr=7Vz`k zlxZArf&ch?_19-m-5-zV|C?#Q$oBYxDuB}Y_IO1=lpQXh8h*X`f-GQR#G60A-2L(8 z;>$hS*UticXL5;eNCXznqa%EGEx@Nq!N>)gg3~)|?CcU0+Vm z&tL~b1q7d*qAoNl1A_4Yd*cDCL!%`07}WvIvX57OzXuVh)0TI8PiQ01{7}Ey_S#VX zw7`drdLONj|5`P-C2#kt-9AErH^{3j_~&L193ekxi5(}g>&AE8SP`4zG?o(|cQhUAOt}tQzUn%$ZwD&3RMG7tw#`l`ZeLr7r@0NqTiqMR( z+Q9L9&5n>9O8SlA@dEe+0M+~*pNvmX9R?);34f@-BP?bLKEqKRqNHN0>vx83v#Tc* z?5jJSnj2JYSisV1T-Lpw?e!X7*G2tBVJuXKrg4mP5P4d=^nZIS0Zo&4I64^%0wS~% z2#9Z0?m*~o%t}C@(J&22Gs1a?eLM_Q3guX&1wlw87{V?_Y%H}v4#>~|DN`Lp1gigw zL=dmtZngryiQFLDlb;7In}uLt0oy`>!hhaz%_-HLn>*o>{;~ z3(TUk3Cp{t2pA_L!VAupH;ZtA;RVAeNB+kq5s*S4C{XB`xxhk)mA?f7?ojy)CBW?+ zqXM!hpnUihkROvmq@@)N(O?II{|*@iCAT+4~O8Y<}1z&BO`hUn@ zCITw?sYa+FgJ4tLL}DZDX=TAs2%IT`p(rRzp+Lm;X+jAj2%*oh#2~C;r2P{3$buv= z;|t>w%ojn*NVvq@Clm_>0T-E2BK_5LXOSU&yadT_TN&|L2b2a@(+EFhxS2Jqn8;iZ zW*o;+6PpPl>I<8QJ;gy24#<3Au<52|4THK+l{&`QL52yE3#mKCHD^WVG9mWGKz;~n zltFmMn9GE<{Wu8hGjV~Y&~y~KAh~dsKH@HJgrZ=?29j#tZVUt_gok^;v?6AoIpf1p z5i~J>u!H~aCg7zqVJHyF4Wr5+4P}iZRB(hMI72{Q!dYZGixQzJf(U8w`BG~T%2uBx zX;eGJZ9i2aG!4aH0D{zYUao1iY83?)2RUcSI$qTzLhK-0@lr?44u%rW++>m>-|pCf zsA?^&TT4-EH7@YyyxFvVPC7qt+rK8A4>@-|?``D$t)ibhY~>Ey2i0!b?$%tC-e|TF zl|L9@u7=6U=?V(C|^<5_u;V z2mzGU+Y4#;cT-t~5qxuj>VWWnPc(95gb2@z#gO zH-Nq)YxtW{1*V5iX!t?z=_4{MXa~(8KrA52L8Hts-tKt8w=vU$6I30)A>h*RYfih= zXdPCYKtQ^{Ir_ipeK%3GHg{bXe36%#^C@esW9j^sZ2UU~^Y`CL>!+>y`?&R1+Gg!l zthy4j7uSX9YjbPTDA#?gzW7uH{QX{2pLeDOK9Qd(4CH8T_^d*tBA_P!>L&2tr^bT( zE4Ef&idb*r&fAT~`-J`Tw)I=ajpT({Tid&S_NbjZYVMR;hqX@0=~kVt+Z;B#L+WM7 z14hLcLF^Ogf2XI&{ACjP7?e%uLVm_@%sPA!|5)m8-~~Ou(|7%j?IE_(a=Q($)9_{4 zt2vMWD|Wj^EwF(srH+uI-yR@eIDqyB3%CRQPWewgTjp~cs~0-oXvi8seNZY(L88Lt z1n~d}2^bDenHVGukHj+~L>J|dkPff)A_0Uw7{`1xkUr99m6>+X4KQH|D+I9|jNg{O zsO9)Tz&aj`R^5>w39Xvtm#S{5?v>>iLd~NQjQW2^HJ2p-oxQTNb8PLv`L%OU0ipk8 z53C&KmJqP0rFNlIC3Y%We;CDIQ2Dtg*by&k<(D#xKUX*MwGB+6QQ9m}sDrjwiYU^} z%wHI?$PNMjB@f}-st^cY7%E^CVS+~6!%6aJ%5bx`mN||B<3cAFi5eh9T}DG*T+^M6 zTqiqMBKaDE{GNcX79wC6^H)$VWL;=Fznc6TVY2WBDKNBvxx`k1!YV7>@DQyOO%z5^ z7`VWoK={I-WXAk4?2kz^&a~k3Bw1Gl^p7V2Kzu`1_a*#TSv18mn8F}JsDNZa zRR^D;Au~vbeFQ`uOm>&kY7GMfmyH$}Hg$fL0(C@zFO5w~eh44jZpv=tGsuB@KZ~L4 zCvD}w5RhE>T0;go_$)>+EH0P;{Ark=fZ!~B7)%zjAp06VNP~DA#ja!3Xmccnn=L~l?-F53ra&oATAmzg-VBW zgi-jjh&Tl2Q4RzMD&B>CQ}e~d3$8&p#2sS(I@-r5G)U}=Le7MCC`cDp_yhAX%S2bh z4pcy{!Z=nzXts5J1D9Tm*h|sIViYg+_uI}dDd*Re`+L^^E#F0Y` z%n<(s`&fNOE_zS(Q4mnBD-@^*cy|pWSlZ1MjNs4(Mj;!_3&M;LzW$+Bso=*NZ!mn} z_W}R9LsK1^FZo^{wLmZxSU>0l%~sHC_xu*-`?9^jp}J#H0z{2B6#Mn7wk%unUN6=B zgIepL+5`d~yXjpkUbGTLcO&0e&ojwT*QKKT5rVE^bXKIpp;og=Qb%%ze+Fa===I0*Mg;O~ENYWuIh!0N3laK+SjZ%3HG+YFw8iB^+bEQ`G$}Y=-OL|z z0zD>+6yXkUGq5tbXNVBFAcQ|^evJ8J3*-O7C_v2oQHKPGrYfLL+}Fq))R7L%qJVj- zfGPyC#A7u_6|i^&^H;v~0)Ga`>TXDZ`xSq`>VKzjrZfiN%XPtOAp+_kQ+h`rLO|gx zZjZ1CI5Qd{mjaZ^g+gXV3pBaInm8Q<{q{EFGWZ*)EqE;U#Xt0DZoHWS$a_;CKTFquglp)S}_5s{f9to)Z~ z>D7T{avmi=ttqG-HH&AAm{N}zQwhJO9sC;S1PHPL0be1iPm@T5&(L8Nz>o`PDZ^oZ zX-g+5)^nnc%&Vt-kv5A9hB+KtzSb#RL^7}UcR)laA?VOB;w-25N%jl-e@hdYHQ_TA zAXOS90wP{e5il$wC`(lbRTm@|^0f0j=R6s40kMPdg)yR0gAo6;s12=Q>V>*wbRarQ zCY4wN2cJp_qO;iqiUHjW5u%zjDb2(SZZtVV@e>Qe9Y#IsnKTIaLm$Wmt}@9hXzI^~ zI7ot|eGCPTwD+VAayN&Bih_bLl*xrkesk+6E(k-GbVv}?d=V{1t*W8-!pM83fD2VX zRTIgDR1?{deZs*8^ul!w5LAIs>r^{06a=|M$!Pk;KS&1?C5Kx>3RM2%%qRkX_F|;* zdc%Dar}?Y=mur5=dLOgiTA>x)X~v3PVy~4xXcbDG!g1@U(JeIsdA0j(6u=t}k-#}2 z0$!X=PzB~{dUJ6K3-}Ti@a^^F;pPk#0a2oFit5lnH)Qex0ly%s4>P(&zki_S^Q~%rz`-xKe>`6O!Ffb57u@|NCY^)Zd;L}QzdJ!ap+FR)md@vgOH_op zxqv~8qA=6DD}g^vRh}Rg@ci@=xge8Elqi{;p5ZTIF351gk}yNYc#X%vJ>>oZ1VMqS z@yPqX*BhYVTNe?5?M^4)L=hfm5A$1HTj0->`3+rQ@?TkA^UMXtTn@)>@yN{{x|stf zvEy!Hl3!~rYyGy}_$>v`_t&KJPlWwhzcBd&$-nWM@Sn#2aauoHLjaMk9$_G07|f^g zp5ooC{{j=nFt=CJK0Y<(G5xg83&-GBn!m_5iU1bp)&((b#Q(*>e?KN{`L*!xwD)_~ zjpm!lJwJ2UDwczTdRO_c;`S}S>j%Sjci0)63`R)om@oqbnbr^hDgH4#1i2EJ@ORQv z<&SkQ{NVF;8(zN(wNLfGUY(t)-D$ubmLDgax&tNn5QjG$p$d%Z zx0<&h-yF1E#{5mdbDVe%v^P9M8OQ;c4}lGM1}2m7baEo?Y=TgSlkrft$}a?{gIcnh z!2yVb!0dGdLGa)RN->@qAYhMm0ei>=>7opEx8Dpf9h{3&kuBtmLnoGpq*ZfZ0oN>8 z!0>---a*Oc0sKAU7;3aPUvK~ zTg58)uZWp&)%*qU5rAUZ5-r{1Xb%3b%6=cW_c;rQ)_g$+4HNQ~gtWMS83BKP*Zcr> z4BexFtF5}m*t`E~LVgDR(2xZ}4G+4VDu0OcBkDo0%){_qhi<1JXnbK-A~Zy}#wb84 zf?C3mil7-eLM^~TRp4)fT3`gJFt`>aK+vb0S(Ab_BgA;Y`HIdLyoC=FnKY{Z#dThg zLe(gOoFER#*I@}Bl>kA6>>xmMzs_$8C8M)~bgTtK7Z@RcEDBi99@KJ2S~6N^jhktK zb~sHiW`E|CadxqUIf4}d@gI}2^WFObc*-2-^!!DI<^-34a?#$C(0k$fwX^CEdKzSG{?X(e{O+;O{DZtqvx z6}wk+dmbu6BeGszh44>-fG5`%XV=ro&BfX673YP!KEFpsFiJx|A{vjA0z<2tlHM** z7v>9uKn4Y3c3?2ym#c3NfIJoa{&+YSM*IU40bhK5yg&x=m39?Oaubc8PKU-Fmr@2I4_7=z<@$bTXJ)LeL20kI!6fL^mICvKY>MI@Q#PO&6oL* z-ml?@K0IH*AG|}B0+CldCI+M5*Wt9VZA|>oYjf@g0YRUW0z34AEib4$?Fyp+F)6UT z6o=8I31hWc!YS9%MgErq>&34zJhlJFULk!klt~fHvd*>}Fppztr6xonJJhsFVL( zACtnd{_}uwdK0>`uzZ!)p!cEBx6b=4D+7&TI2rc^^3LH=j|J~8r|6uYj%9fwXefP- z023!;3V}mvgeL-m6U-iC;zWUh{HcJjKuV6iK4Jp9tR~2^;g}S}g9O+?wa8{*`GGzg zHAVpn{9#%5pb*#nqpH1Mw)aam`On!a*}F&T|2B%4BFxI|TX{?`TTgRJSpkJ)v8IKH zQN$!)-Y!YpBtv=npGJ`3}0<6RbJ!yS+T|BWURq`)&om$d(or=dsmoGBm5KrXN{~`fz+oH zd!T6`AZTx+XcR$UqEY)wC=FOdJ_@0bvzq_`RS3i?QlU+CXj3V0RvJ(#P{-pt^(`a? zA0zDp5rM~wfOLTc{%SCSH4y{}!W#cqgZ_5_*-tWlk31< zlmjX30nTPz2vb<_4jrswD^o_^go(q%J_HT|`$&gKH#SfRE)))Xi;0GZ?^ubDI4Dcw z0>24!iV27_y$~!&O-|>d`@i!=o*^L8gi*-)wWbfVFf}@wz`?*lNPy`+WVz5Oezo1! zsqn~r%qeDFYnZtd@Z`pjDT4AYT~w3NsYL$XAPuHSfvg$>_?vB2I^?v-x>b!}B|lIg zW`~1rM>!C*x14N45hM#L{}~Eo!tVk_K^m-rfGA}6)Qr!|WZ`EM&{6**BgW;T^m*A( zQ09pOvCq;rr-O_8%p+zJap(&_ix*T!m`Wb`PdiG13t{%Ip*^%v5ey~65ClygiC#sM zh;e2{5SsK}0lq}@rKS>VfS|S*YYLhX0-tiB3WQOUVyqPSJh?>aP_Kms^BO`RpfIFB zRRo{+jYf#0SV6|jPzTMA4zenU4l77wRXdak0e^-FH+;NhX$LEog)B%UCH$!_s9KhB7(hR7gvKB#?PA6WAR>BAR@`9rENj#6tF0fmpO{C5w|`wHiG z@&$9jp#=2fEzDm~AOa8>6v({b+baRnDZF54fv5}px2fTv0s;XU2Z(4eSbNO+Wa_}6 zi+^D8b-J7h0v03mz+S(LVsDr+B9Pa-=eIDEtTa}A6AE&at+U0OI^w?e(VfcGLbT z;rxcChD*CTKcyl# zf*g2yf;a(22MPsJ&!ihn7g+u}`D+kiXyOZT8*)3yXhs%rFX&-HIm{{7Mp01@UjM;_g;Z`DM3+*Z(eR1>4z!8u$UK^Hm7>Nx#5+g@OuKRhXOE(gt!PFbnWz0f@GdH#n%le~}byUlad_{NIwc^%Ou* z;7^l3P@g$0<`-kw-zOyMqR)bV(By>Y2y-aQ7eXFbEh>nXtq>o%4;rbFR<8 zf1LSEX-{kW6~K;K`43KXPL1hGl=;P>WC*E}Cjsznpmq#Wn{oe~><%TbXAsP4h>!r~ zmU1O#Nt6G=`qCN>DEub?y=~G#bZR)H*HHgM*+oi#$o#?XwS2%8@52{5@`ivTZq`)vD&@w_`+5Jvn z?pC*#*!5WWjEFWL?2qft+1!=P)7?GGrN+T4)gYKfKE|^5eB=BmQNZ3ezpuHtU zK&t}5C}f5z*+?r!zOc%H06}zcl~4tIGKh@?h$RlkI4dLKDrP1+ zr9d*D)|X*H8PiYDEDr0)&?yEEve+SLPlNeLgupc)%BbN5^IUR=mg-vu8DflVsEwK1AmpZ|* zI~UUkLQ`u-0FE*w)WMe!FTsd7*07){AEUF6CJ~~s|FrG?JLCVJ zg#{cb!vBpHqk`?I%s7MTf3FcPPu(pZCC7|;rHC8ys+`U<%@N23a3m!YI1dc za(y+uxjaKTn49U{&G|hL@Qm<>_&iMA0SdhM_J9aKFdvgV1Ofl}f~h_}6ZKT{)2$j5 zh~(e93w4LTKAeBOJ2Qm<@2>!hm<2>Lv}FIM8d$nXF?!1Jy9UH zK8^f<3NkpS{9t$;v);yS!O&l}?ccNR$Fvudp9jTe>QMfK;IQ5~w!6Y)PIKV3Amg=r zV@wAOYZSzV`SutHh`53A38V4Gpy|Q5-5GWUqgHRwY7g2-0U7wg04gBze+>w_O#}i; z#{van&JSJnSQ^@CqEKZ!=u&@URTs`x!|4h!&j^y%;p$GN$UPpNGISM4C*;RS(CO(| z9spD|!UF&h)Isg=w*e^dY-(x-kpcmc$Y@3$iBceBMy7~Bf9yg7q*@IBmj%NE;Z%7f zW)fhN<)E8&*Gvb8AW=pE3jZB*3Xp>`guuO$EHMKFvOrY-JFrmy`2b}{k|_Q{IZEJf zm;6^OCs@#U1J)`4La`N8egS4hC;_S< zr~D_Fh|oRl(Wu#)Ir(Fc!(0&B!KeiY36L|w z0R%Y_8~}QYNg+VMU8L892xy`JF)5r$0TzryQv@^P znU#YT3SDG0O-M5S0I(eD~wd7%E_4_#+YU#{v)#(jetJ zfFM~7C7{WLifHft<`MVd5pz`qLc|UtzOYYsSRGr{2z$CJ%Xg3-`)I5b{Z^4glQ2$k03lF?$>))R&xF9|2C)G_u%N1a!T$sP?d~qZ{o&h{cIdF!CGyj*Cv{{8@$T>)G{$!7(1a;P9V+~Wc0}BET zfrIpg6Rat%8ev#6M&04prjWJz!cV1Spg3y0U=r7wiGl)TR2exKYJtoY)~y0(#uw(& zqz})?@0I2tD+SJqOH&bCh(jBbzi25T%m)x$Fd>6R2wdR2AmOSCho%IyNiHS}8YpC9 z$NUDgH{O6NeKRHT77NNCQjn=0Kt1LfQ*=b0FRs;898~J!)x*+*Pzq6ZFcby31FnVA z(P$|FCKMwZ7q?19aMrM@ zRr)kBnG<*b0d)s>zA%nwxg$!1SdAe^M8gCj4X#;g{GkyF0e?Kh3yd^OT%-K4NVT>X zVJia~7NgedP3O&)_a<)tlJb8|x&KPLAM?$%oF6H)B8BGWZf9#R*xqlZ_S^a6R;48V@Z;_D;R@-%S{FvR z?c3uNslgAI$PqzkAZkRjYBa1~I>lGtfP5rzePdwzcf z=KFk4_`8K8e9x(YwF&uQY7piE-(Hmdf)&l#>sh3L{F-)tPGH)P)eT`UcO?e%cXgBbADhmyJW=bl`86Rw`A&uJ zkqa`32yW9tz-Ze3 zkny5fH?iMJ@3(SC?Y(MHae7rp$ZXK;3|gIGD;UY+(e0sZ_y8*4SP^i-nSZtNA5*JO zx{UvWbuLGB26Tau1tKSLTbNCIX&Ry>SA&}8DAnK6zzhITsX#qaWOeNfm3{;^T%LD zJGk0{eN(_7A_lZ%IHLv#qF~%XM}9b9$e(I{>i>fL z@>P?lYqU3A9+@D#9H;l7FB}n8%U5w8fS{&pFbWVX2yP<+J~g$5wWE+1VL51=)&vEH zF0ha&W{^XRG2=K2@~dk6B79`VPN^twt~+iJy{!sRF7ItWEgO^udL~b7REw2?!R(Zzv7^NR3c% z@JGU*fFL^rL7~7R`fq3rzhR0AbwqWIp%Ib@kuoxaLZv{HKKvx<0R*ACWuXxg&RBYe zD&QO3z;GqgFGK*PrL{@QH^c4YBBmDbP01k5C>!g5PprL_W_QEhh zq>SjG65C8HWcZ*KmqFHui5E-?fP&0c0e@XZK+|-Jx$PDW;#t8zCV8N&G?vRmH(ZF) zAgIe2#Ks!dOyMO~lUd$|mkoe>27eIMwwf9&NG)(S;YaH=g9VqKLIVvKa<1ggGLRG{ z20@vqDd>e1*w$%9G&*qBW@xB=h=SWH4F;$hlQ0EkmKd7|MwCsYL)8L_gJ@b-22L@h zK^ROnM@ zD}locG>mzFqr(W^yLk1gjmxZ&P#}a&EEoO$lc_|Adr;_Pn|)wut5+y8Of{Uzo8Gwu94*Zd6zpZ_uIMTG(j&D24VIfMngTWKHE zI)Z>z%ns7Cy{^1>gC0^Y5m}Fjz!R+th`iwQ)2s8z_2mSyfY+ENm=S?fr0(8fnvh3K z6F2>aP(S*-$OS=#mv4{fXrD3R2bPao@c9yjU_gz4zi%x2ECh*ckNfMdkHUY<1xE1S z8L~hKe-F2pch?i7fWY}h6C5P}o!()BxU=gk)CH7x{}sebBH-ENOy>yZWOpbChjJx& zwGUC;4UX@ik9l9Qz?8LG3%W!8>q;L+Z~*^TwLqi>GdtC9buBkw$X6TbAa>`t-sFT% z%|Z#~pfd+v>JYV{H}Y_Se-{KyT0bQk@8XR&o3+)AhO{?v=QY2znI7?BYAUP+D!79QBQ6`YHNNbruYQ6Zn!FlIs%wCsg^;Di)R0z79UZFhDB19wGuq|A(yiP;cW(y0zza z&VRnKm2@@2cG(XO5rko{dH%i7{TRs8n*UL4G68mDueiQf zME`5%*P8`{zqP$wrLkPzSt@N4K1?n#E|9rmZBG1WtTUId&SbZ||8Mpl0;bhZgfWtq zF?ML|FGJoo7{7*|XDsM5-@MG~;eW*bO)0V2tsc;rPlt0{OG~$t^cEyQO1ID+CxJh2 z`%`&W77*beC+QSaq>CQSv2RDu?qsPmE5yE}Mvw_>QV5yxoyU`VpOxBL_zq>9~K0ZSp=1F znTy746o^TX@ib{kgQ+g4HAox#5dS7n=&TuP#7mTkMP1#8i*0uqr+^ri0MP}%zB@l2 z2fs)t4f|%oe-3}zV-~jklSTC`&eJ&PkBPTKXSn5}SWU??ldNfvx#r@mY{l}6Py!B( zgMvlTp`I~h(EKb)b6M|E4H> z{qOHY15)`FCVKdbQRCm=&;H`ZxJlF_c=MOC0DpXS1Y{ZW83=we7Q7|@Qa9;zl%PX>aYQBfKp7wX9gpnwO$Fw)cWfWr<*?9?v3-7;0+-!k#1d~67~ zw3_5LI_2$dwK=S}F>NG0#<-34j}ZUHM+a0%kL`GJa!LtU23(p)504MV$73WwNKSJ* z46(<=!Px4Ljh)W;_T?=>dfApmuE+I#2a+UdzA);t22o3jQ8;UrTNi(Lr?@dj+Qjn#sOE&quROU zgm4&s98ziUi4#o7SEf#H7`1!t4r2rBQNq|5-V#g%-mb?x%z}$|82*9zgZl4Iv{p3= zMEomnHu9ptm35pSRDR1l83O-ymgM}9gQ1EGq@;_sib!(@mHC z6r=*@c`x8pKJ@=N|6%Na=Yj<2Er4GCb-;2U^F@_5N0N)HcQ|}WUDg1%LP&@C>;+kW z1WduZLPN2j!0sLk1})HuFnyLlgubLc(#+>P>MvDf7uw@s zW{HEL7togwaCeSL!A^wRJ{^RR#p2F_@prktj1imjh2^y844l^P>q0fLwwJIaRfx`MG;g-;5wmzh0RvcpipQC0&W=s5)$8;eOsZZ2JnOKjESSY11WkL1uJ(nW*e1$!gUuwZ4r#<=t5e2E_irA?C zI{y%6KG(xygKHp#>*0Lvh;5Fj3eGm~bz1E0UErY2PbUeBQSJ;lIO!nt6>7(jU%DOy1+g_z2Lqe3m=5fTgI+IoD0G={QXO_M z_2nnMaZoQNDw9k!R#SG1gQJ z%}l^P-7M^JB?||YQ^RNZBSY$`#A9BfW+1MzM>2RfF zz8vQ^JNd0{r8cN+cQ^KiJI!Hrj|?{Zu;(LuH0E>u$Ub`Q!}a7ExdnGHpQBO)ZzKmA z0@9Fob7mCCu()p*|GGW<*Z1@P{p<2yf6*5x&b#^%pz!)%;2_$bn*3BXCjVKBL32zQ zAqz(OpWTM(BVSK%ua9rl4)~22LdF4qzq$O53;5JS0k5x)r3g}+zPUcXI=2sgh6P`q zlM90ocyC7B@ewoPlo-4}8sZ2+2iylhhSY)w4u3QPdKI`oNHiTpLm-CQ8w>WagV6HT zZN&YZdUw0t*{pTeYjJ6-UD$}|0$huhR^$2A)=VM#l5c*_wSLc$(fG!@0O#tDrfZL< zcUd#GZ#>5T(J~NxK%W4U{TT5=izmRRvA;yXq>>(B_Y+;DuKd*)Gi?;;Awg=X;IOd0Zp97Ah|M^f_k`}P(>%sU#64~I-*I~Wn%cWBqDsSdG_F1tWi3UfI= zJ{;pHM)1S#L1K%WdF^j^eSUH_spp;^P~>G{?6~5~iD(by@7TYe++U1}v8x1v*T{kJ z-__;Wg-jvo2VyGDDG7P+-c7R*M?$gjD&-B>mF+t@2@HHt)m)Qh1CjE&SNFvC2thN0eKscOu( zSVXL%{+p*FJcs{7`k%zVNg?P{_ZYS>i9xv1oWJj#u8cF2z!~;T_K>c;I2o&OqMFbHH;v%`ZY<7#t0H5zyOHY zfsqEi1gz;G4L5=mH#t+@Zk4v0r7dQ|lFr`CSFf|T46p{#N@W+%97)$D-FcI4?SvC_Kyua*;f@?$- zTLCD`Yq*bPDE1?wAYFrf@gGF!3$yV2U0wL$1peki%FJX1u&I7pyFvaD65MT(oS zpe{NQCP5LLEJ=euBkwr{($e<;TS=R&8R>t5BoOe+L~%SnTwy!N9cbGttTi$QF@8t%4wac9`=4)>X% zweLOgCnrazr}R##sCsm*NpaU?#GGB8DJJmhAl)}E z+VOw?#{BD*-+%voZ4mjtKgfj^{E-Mv{)_m}B|s(ue1NuiL{J(gpbx3fKb*lU|R} zAbi-fLhxHe7obs~{obne&emSCzSBkm+>CSUQFgsOS8U9dDFIIvqK}!nA>g~ky8Ss` zfPk&14CHM*nXNwt2kGN9+WYDA9{wK255j+pem3|c08){Y!aFB9nLPXpgI$c65UBHk z0#W|Lo;UNCy`P~#;F4y8FAdrTrW-F8f*0gtj@ax0ckZ!b339Vh+q zka=l_L-;@Fm(xEkm3a&wMu~$%xn=kFjh3jLvPKwdFj62E8hjrq(nXdIU;IS~lwqix z{bj&D^7#(WM_m%>uDE zLo0#*nr(x>WTzR`8tt8CQfsxV3<7Cy)>@l;?e$u;p%QRq8~v}iQ7^1DipB?Pwd|@S zK!$(pESGCbr7HE`3QcLWtd%tUqfn*)Z-o*t)z5qUH>m|r`u|)Z`;zs9zpZp`FE-n0 zrNgB8FHG{CV)EM^|Eaext@)}xJBtHDa$P9b!fJ+YUil>;Mg!lbr64jIM344ai-96s zH7$lx|B#VEb={eQ%2gZ{_Vsp-`paNwc7>GB-A2d$&qySOr{l3L@#LI$Sg~ zl#e8&2?l9UM=0}^92n{#44C**BI3kN?4Do4K0)XHYn7yVa7-jrX#vE$86*=!$sKfx z0tfc&j)Q(i2x8ET~Kw*9(LGCmfv2ol`@htAl{xBYRAVg8xB;izyf0bC4hnrW7cklt8%D6J^44 zfdYdxsK6RU06t;#T<^aq(D{$MvjGz)CXYw-EcV4`v<%vY8N}%TI&jb}BjP_wvG*uY zFT*3CmF+i2AE6Pgi)~JO0Rblz7|ysLmsXAEeKcG{65xMWMhwD0Oc_dClGL?8p^K5C z!xn|?1vyAmIKB^mlcgt>(M0=y-n-d@nNT?P#2JZy4uVY;g&hZ5KT#J3-TZ@@b#F+q zzc2t-c=sPSbFWEiI(~pg7#`~JELGqqbKXxDJ)4VOEwo?2f6=>4`~7nJ&2scU+kTgg zKNtnBB!6i3*Fq^?Uh8DnyDOMNx~n_g&E4*fAz*jZ?T-h{iKE3|AJRwXC!}U5CR%-g z`aDJpyrBK=_Ui1`j$cnO2!AEd#cjgC+_!V${ZtnYfq&o6e+d5M{3QiYrQS0p4x=D) z$G-@IzV!Y-q6dQncw$`W2>90xbzy_TZ(lEOF3!JcI`G%)vzwc<>+AFLa~#2!w0r>y zV!=});^YW%=K|-}QuY!MY%Z7{1X?(X*n#yz-zWyyv77ytqT9`oDe z-xHw{qv7Ncku`XKd~|%GCOS3M9UPn-Q(-+lJ~@-27a~W5vy3VoF3U9?(z&{ z2T~tzGYY%c7iUD2+n<5O~GK)0?Y{i?dS~ z0xwhu_ShhM_EQu`Is%n(gTeWL8OI8S(Yz7w86A!f?B9g?@4mW1nOPilm zvWp5B;-ED!MzcV+n*_mZH&+pR8in<}(iX!%3Jm-;M9{#u(soAJw@}z*<_9?@)%jv| zK_%c>;Lk2H>(=|&?(<)8LMRm4`45T`9q49^*dl@8vn9#P~i%GhBzDE^Zch&cB)Wj;H@NxOkx zg#@Vcr9-2%H)w$e$bl{jN+#4(&>aXG{^xqFCc?mf`7vc;Np~1K6eaC-YR;%k4E9M5 z6ehAblSia{Njy#P7dsTH=uD2x3-1neP*bzu1ln|ad$hZln3M%4>L5@k>LQQEHgGC= zf&J&H{^yUD?n8XcL57y9|gotZOQ;x@V}@d?HLjM})}SS*;9hFur5 z$LBZ;X*m=clRa4=_=dhfd?aXfnn5QAiG;m7A&@-k0ELh2_KPVXPL6lgVdTI^vWz$j z`bjR%sDm){3v$LmQ21rM)pQE{ne)U=|166!$t-Et;6y15%$HK2Yk|J>%GubD%vCBD zOMq-7v#(b~)%bwm zt4r)4k}d5so=PX{n1p@5RgRZ<>*7U^)VN#Lm>vcZWDY2Do*4 z_8X!%4_C$k9*|>o&YjSm2P%ze1mqt>B~^sS0>MN5%7fY`jqT)|ZaW+phFs_8{$65X zIY(gjs;*aT@$=eWmfG$Wga_)8NyPEy@?6YkRCoSWQ(?X#_@ND>1zwXP$+rTx2VD{s zshKgS_L!GvY`hon90Zg+e9Di6DFizRX@`orf&ci*aCk5r+1q729F3I)Gwk&Had*&8 z>?>2h8S_qPw()}0qof}9>QQ&6nGgh6M*^(wwhjI^YH@k1&L9v%rM28IvQ1L70MVmo zWb&<2dM+S3dU;nrLbxNqry<4sjA^T)cLa*_08pyl=`X=J;x z|B`?(#8b%S^s27<2XD3^E!5?jZRkZ+awaP?7N&++l+(HFpX5dbX|DOQ4&|yFo!z$ygfUe=j!_ z>#8(yM#A1Oqz`I#ust0ugOHzh4GIB0cP5{9^|`ZH9%Ls%xrTXURgGyAe5RtXv!?G; znskj&t$UQAktFXxP%VQl4Z7m^RJZgr!F$t0;5>YzkHXGA2-6%~au%8v14 zS{i=FW0GYf1QZS~Pl%8*vFFR&le69VE#nR9=!pYZ}Q0wE*dM1ihK3dK~3zSm+HTq9|L z*lF*f*3T-@It4oUvFQJsT=c}5^rGNTXTtDev0xjS2a-#<(D9C38~D%hE->P(Ga@M9 zX!y^R4v_<=8qen97mIECIDfMgz0I^=GZZd*yA*xMCGRuIo5dC^Xjd)Aw%%vrUssY( zEA6RLXLdDNTI*%kX$mY>JC)t;cB5BskK*>I+Z~SiXjj|U(UE;Lo{FD*rWPNiXZERV zN30?Ckt|R<`5O<%xdz91OCLg@0iQ?x$=-4L!){|&DcJenL`h%&bxWpr3ih33ES%80(bK4n@lB9IXS1LAJjpL;H}GC|JtVSkFuBQt?M)kEa( z;o<&pf1e2GeY*Px$bRU5-TtUM7g*}| zccX!rK}qeEut9iI5)54r#) z0-oRkKA^sf04PiC@v%E6R7gerJ3XP_jxNj--Z_)65CGX3oq2i-on142nmRAK^7ZNU zxqwfVTwk}yd#7+7h2WE0SpSGHperSoeu)68}g`BDE38XmHrw;P8UpgLDFRNfY|e`&K|o~zdLpzNL3|4E3@I?=EV}-;i2i4L z_z&PqCBV#DJu68s%z4`Y>?FMLpEK0_3 zTfj$2gQ^Z6Qc6yRLoIL+ArRY#rjHacju`FXDM=Af3LmbKa4}DTSgsK$&9zDI7xbmu zhvKYmz!~8t&?%S`5vo!wTnlbrNrMU(OdZOOfKG4Dg_HAGN$e^)MKmDJ3&g`TUq)By zk)P%IkHfg(Fw|I;VgjYzQ!I}NH{dohd8DwYEI`9JY|H6B!vGS8!U^-)U0ksXBBdta zaYk3MFc-VW#cnU`^Kcn1c2kpbm_+iFenAvLyE|tn6I0Li<@I7O0Y8-@NFi9o;!q>T z2n-#P8lzlj^$2#H#{4O~2T^WfK+qA;kBW&7dyO7(I^;+k^ORJTTkaB@BA~u`z4$F zvK)O_NsI!2TcPaxZaI3l)Os&8d~0-=ZNJO3f6Gx0{=%fVWOSCOq>7gBm9`=Kj0F_3H4v;f1U#P{pJ!C@DiEuT6&Ln zec=zdI99Rm>_U+r!VZsoLjojI_&{C#BfKC?2N{kAqoHcQqYenzqaBdcH;?>adH-Ll z-Hp8KE4E|5u9bnYCIA3{07*naR5%zz!0kqdLhw#|wHlW;848?RZ!eUiseI#0zVT_L z@kg#@*!_Dp`emtM$n|D{p&&2j>M!Pu;Enk(@j!to0?HKJ`Z;adBPm)?$WjL6|NXrC zQ;L0h&)iLmo)96U2&EtrBA9+>u>1b}rT%CpdNSL5vB*~id#n7Bji*ZOxl*jL(cO*R zUM(6hx27N zN@@iA1n7bJDCY9FGeojg=Et1K&jr7r{~^3>DKMG#yE&++hVep< z5a&NBf^3}a04Y%v2q@3Tv@)6fUJO_(hpaxoy*6aQi21@$xL^bp|GDNjnJ)tQ1(?H1 z;&<_yugig7vIMm_(gAa-^9Bh}kO%gGfc#MO2>V#U`~`u~`At%@fQoQTp*;qpb;8G)+Y5|!XT@VUs>7U>H=(ND4aoI%d=o80TT^_1X!u1 zDxg80fDZ^0@Qnq9+Diqzzg{yh!~pS-+n1m~V?GxJCpBWHL$P3}5x=4w9Eeaog2rm2 zm&Fm0)GGd}Og!>=aiY>-D3%;3>oMwJKtQhbK$#qJAOfTvq+2Rmzb7sVE)p^LB-0~A5IR(wpb+qxj;ay6UKpYWb+ShwHUeZYj<^u$ zd&ti##hJ8->=Iy#fM|isfTmv*1tv5LrZwWwDd@d}E(+q_@IB0@i0N2CgPH=8CQCc& z1-4UzpwFPwc}a!~vCkke2D;ZcNPAy;7y1rq5WMpmgJO>tdntgXB&xll2SG753%nQs znWmMfWl%aF^IU^ zmwbRl*B4m^f0A=N0>=0+Q3_!D*DP_+zvq*Wx%l^7{2?2^&j5ld`L*9?+xDsdaiwi* zs-S?F^-g9zDQtE(_6F4k2-xZl+dcc78!72mB|RS*3_@Y2IK^O#&DK6*uTgQ-l66Hd zpkzG5zT>}B3S=V4_bXzb83A&xL_j0I5cp@bPGvh;-A-0E;-%FF2#EQn z^=Cf%m}`8@G=9rQ@0aQymZ7e9%dJ-n%@^~Hr%VJU8X7Hdj#wW>1HytFsSC5W^~C<- zQ@an<7@(Ly*v=I`a{fFmh&Dl)LX;h?vag8nbKUz#fBI6#2r?5rooT*YXuV!&e#}Lm zRu~GGsU*3Lq*Ci`?DcA`VN)YIy1mhG|H$48hleNVV}d;Wk8{$IxKNc-{d0N(1L}QZ z`{N7VCr1|-!8vquMadpmH`KdCvQ@MY%xA=(GT-^v>l20nGX44FFSP-vH^4yuNN^|<#d%bL!}${P^oV`tq$VjBcbKzM(9FHk?(!M~;wT3LeD=54 z&8{1cV*$>t8yD`n1c+ICO)4P#M|Mw!(J^$$|UYOy&h^qw1~J zp@{I%7F~nrd0ZtT3^n4E+k!eM3RLf4<>;=burz)d@&!Ram5FH+d_&Mos0ABT-6?`H zk-VYMJaQ0pWPFvUcKo8?+MW@f%YmV!EA$Nf$MOQPG`ttuv*C$=KW9yVFKrWKqY}1L zATnX5?;4?qEl7s`fP@hSE>s0Mhcy@`Q-N6E1r+kg(gHn72AMGInPu!};J;<{2)d8N ziBLyD-T)TN5L-ysphnCI`(z?f%OHe=T-SFWiDF{Z-j_l7dzxB_9R!112L<-s+kyBu zKd}-|6v33egj{!8pyWVRoaG~)bPc8rf+&kL6bAkir4c1#KLw;E>`S?jjX%Bt+@mEi znMV(D-~IzC#drBK59Xr#2>5tWanQzC8W|_~jp-x6)_m~)LV*i_8jLtAEzk`mqA^7Y zQagtH{3!nWS#{wDN|phkod0I&5tI;!#n?;3g1^>JvK9ZN+!oEIlk})!anJ(Uw{#Ij zP*PlK)I}il6c~9&W~Bn!Mz4g3Gk)O=SB+J+@hf39?B^Uo)uz!+b!d?7}J zcKkix{#0ns;0tNzG=Stg8X@~z z!k-0yU(e-4_5s1C_5%2%r-pcrTUq`7?ilsiuPXLY0_KPDSz}`jd>D_0LtDdvvH)cS zhW}{xBKD=1^oDWLBMTbUXMi2JGi)U2f5v}40d}WBDBwno_*PWFt#)=TUM{y5R@4KD{gKH>rsrn$1SHfULsy zKm4|htlVR9c}5QN*~y`byks5Kb@p`Q#39!L9kj+MZZ7(kuu$O>yYqh1)_F~B>P}9kZ+e<|fUR(lH1mMTL11F*XO%aJgOB}XbcTr?nvyA;!Ay^U6a%^l)JNy+qQ!s?^ z`M5SM1u_?WbT4vUdY;Y14uX1@WrA>EICbyI!{H5o1UvH}?j}aO+)Z&4%9Qy-Ro%3n z3;(5imk(+Clfp;uARCfpCQ2b^^t@gW7aUXk731#E|K}1QKN|gii{-uf62P~xN_BXF zI{VH7qn2x-+fT(`wm4nR?GO$R%x@oYDcb;7X%k@t5Ty2aIJz;@xiXZ{IO!vFA{@S2*?+0I#$Ffpl|mt`=1}PO znpB4&PISI~G6+|geHZks0EPO<3AM_>H!V%f_?a@ zONJ`5rV?Nf3q5Yohn)atSw^1t2KrR4^|MUR$&bee4Snu#h`bgThLdT%ST*7-K`_jn zTk3jxqUbHe$~?tE?5<&N2Mi5@&V|wlsT#wGsZIE?OvDhFHV zLQn*q`TU~LP~Cy*6eO*h8-(SgIB6O5#f>3C^vF;nzPnby7buXu1VT@f(I61HNo>hG zA|m9e8UBF|rwX!LM$*zS`$zN?f?sYNA%lAEE<5H?5CRA$M%MUzpW&1 zmsq78-9BTQBDuuNIBOhKAUSkowJkCi}~pJJQklSP+taU6HGxc zlzjsl0(`3f5=iv3>d22~?2)4<%A=tX(7q&OxEB$u|-Eg>I&zgh|n{Dyaep~zrN`kf)+j@O1<<3*hx7{POk`sp$ib7 zI9V_(|4I{#z%BtEY2u0M-S!2+DAzc5q^T!^A51;m-MFb$}&?R~S(?P&Y2liROi=`St z(5eC(+hwqTF#K18K$t%&Ks)fO#)$bN`_SVL3-UaPe$JCXF`cw;xA5Ns6qCSC6;N3Y8wyaJIf zfBL1$w^nj&<@YH}0InZfR``{x65S;=8`AIe8q7=a( z*G*g_$bq1wtAmqg@#-xX?-~aIK}R}3P>NtE4bvwO~nr9zd<) zFDJbmEX8pm2SR~LEA$$%0Iu_JF_9MNHe@auaxr}_b&5PpTLvd?$Uagp`@!4$)Ht+j6J~Gb`EE!MihQv3L?LBXtlbualoI<3*PP9o?Ma z{+U{aA9|Tsdqlyx`?cW7YU3J7xsW=tc+|TajUyk;k|y|MUQfy^;mDl5SsW_QpoG?& z#TX07O8Y}L{-comkxxDqk}n0rLDsKGP;>|Wg8s+Fsd6$??k=u&G8MF+a<#Kj>s1>A zW`rcexHI$|5T(1}pCIr95Ij6qG_ZZfpW*I2)I6@Un{!X)U`iWPgVAq}e|$Ut`}X`V zI{%m#>=Gd1e_tI0H4B6wK>Of7R&|fYKIOlJ&Occ|nDk%}z=MYm{!{k>;32q#EiTBZ zCiqQxB2@SAEMJ^54um!@B*3G?ksCqmr`jJ4N0>l75oTXiVEcJT?QSO#|8+Y3j>yju zFyywtqzIMyX~z#s=)SN>dH>1RJC7eYjHK2D;i|Ce$TdkS%d=L zEj8i4WilGyE;Zh;X}_GWznp8nvbA7D7`>Wnv0sW_%r##xwrssxG+2y`7hf+$FX!sd z=9^Dv>TVw)K3ZDf&r?);De{sO9fUw_1b<)ff6!JqRewCwdOF{FHs5;5(>2~_qmSA6 zOD>vSZD-co#cF?Tx3|+8HIn^Sdk}ZV-NBefz~SLOl9<P;)W__)z`jsF-k6Oc{|_zQyvNuA`(H~Iwd33*gd zIw#ue#gYS0zAHcI_J*cFV?q03z_Ys%A%dS!7A;dIA+?Gg(kW_JjEIBY zPmRFCPH#y4w?Fc1$X49(DIj|h-wJkV35|Cc2iK_@|EUXby%w)w>Ws=8b;^8OO+!Ft zLiiLA#R1|xEg7|J%7O~^X$pw@KQ?BI#%fM}wu}O|r1=@@QQ4IEN0C?LSN%*UToB2; zkcw=U7F+#%Dxqyn=hYM_WzLAy!+<&)vBJ7j+ zw<_{01_bmK=4fHy%_pqPmWzLkiPOd}8cSg% zUb!=iXld@SD9xQEo)rCfspE4;907xOBu$W>>|r=@AxkRYOAi#xi1q^fi3Kx8hXe;c zk+280_3+-BbBoix%7nJYGfgyL=E6Ait_ktp5 z9ENuoXED5`8nGjqHZl3wL8uc5E@&RHW8#9eKyIm7a|`Yo3E6%!jxdJKg+S?ochtq> z2eD8Z+q~Q)Qu|yc^rxFZp}&B%3aqX{J&Wxhh}-=5bINT}1StpW_MwB&tHT8Ih8sjG z1UDbfAP1^09R1H1ji)1hFt+oLRO)@cfZF$nNwRGNLC8Y?HVpyy z8}X<&9QOwMLk2v^5=rnc>Y1A5z1(+jc5-|U0-kz0j3M9;A~~qy83LjL;_!e7mHA8y zAXDJJU;eGUXo2AM?blP!h;}agOHSc$=tjrih?~BW|3kBY?Q=aiKj`=RD!ahdxts*Z zJc2(}fqe+9B)~%@{vMEPLwv~rAMOk{@xG_;Ds)PJP{ zf`jd3U|`hJ_%DaQTC=M}X#2=dD%>L0Q#1Mc^W_4k>` zC{Quojkik#GQVDEytTF1e779ES!le^FgxV^QtSO<Bcxc!r+8yIL><i% zdmB_6L%IOt{dRAh^hTYYy%P>b`-l4@WWMpiAtA~3Tcj2o3c;$J;u$(S!zrvLQPTdD zx^hg6Gx{IlEcSQ25y3O)@5-P}`YtV`kRQfgzCQqe->*Y95WaH0PMi}Jt}~oew}7p` z|GLBroN9#Mu1>#yy_DkUNip`WKmt_04E5hDm4ICWv=>VY;F;Tm)bvLq>R9A&vZ+Y5|n~7ppPU-VE{9o~<@6klm=V-CV0SiyO`2 z`mWCc$pabNWWf*zg9UgIYbs@5)ql4LF~e8W7zXmp8_HC-g5YxK&|%MGpYH*2cl>e99P+W@&A(l z?D`)!))7$|$Qf@Ze6dotua`I{DqF!26=09K_E;-PYwm z;%1)1UZbZe3qH#NXZA9ldl%sS8Zl_d4FdCpO^=mJWkS2J9{-8pj{>oh1x0>CkCM4> zD^Y1!{O3dPkOMt&P>P^j!yq7KVxkJ4iUJ>N0G-ef3N$)Yrl1_eUMZH;=M?xTZ4h)8 zeCku??y=y*bht=>zsY{FbMGprKw1f14h&~h|Mk%z{?vg2#cF{I?UgU~jMxOP9dtnv zA)SIV@nd1%BV|wnh4VxJa)bpD1*H*o-8-TMp2|?{av=8&y5OBU7;GHA&;^Bt-a8m5 zQ*xuPpG1m3g{vGBLCkc%h#yt1z1JYwX4u3yQtAQ`LhRJ+!7Ic5HXwPm*)SvDf zY{)?ZoJIM2JWuBH%cbP`LhHHxS!oBfSA{P4XeN4Ubm$1U5WmZ`e_2UB<~n~AI#L1S z&jpo(3(4;*@t^tVbGi2?6Ck>?}sR<$u8SP0iqD$=R^y{@KmfTyQQ zAyFLk$?@1e>W?%R4m10wt#jt}JwK01}qN}s^l@u~QaIG)S1iwjbh z$z*o_hddu&FON|HK|ucQ_Lu$f?Mm7nTJHq@eEm>V5OT78Pq;bzo4JCVM;I0tN+U!$ zh62A*1^#N^AFe$l$Opt>1is+CaeiiCdU1A6P9)`D{-y4Vg@uAPjg5dU-+B&@#DC*d z0vsy^1|x_E!L%p@`yk+UjRFC*X(|7>pvs67{}Gw6HI~{&=)NNS6`mY87dkGk;uUkMWw&1@U5Fh5hWt8ve zgG2BLrxW2M0X7QE0s;7ZMsR`fKP`&C_0o>*o8}ee$Jx>8V-IbCSMBi+-kB|=`5`#*^Q*InN)Uq8+-k#efBp8d-48W ztIx-OZ`AMa8widM4*J94!NJi!V_prOa7vQ(dvtKh@K)LZug*b0!Z_sK_)B`8!=J}Q z`})_nOId@jJR>k1Nr%2>e8{(p@Aip)OQ4J*pwDivPQFv}Q-k0YE?`P~tTT1~on0X> z9beJ%&&;|@>W}m$UR<0A0W}WJUgVj5%;N=~ARzyahr=Ps&_n}L2p$dO1;Gd+1Y{0u z4+?B2Jq-oH4$_J`4Ic{J>{R#SYQ4L)mu&3D>r{d5H`&Q=M7i~Nxe^-!e#y5!qT#jP zN$^AJTa4Z=wBBI{Zv2*M{gyM}i~n3{eYU?BKTlKnby3hWDIeJzlJLmZ>&3?VWy8w$ zCwpTQ+Ec~OY$;h>O_nQ$t=-j~-d1B+ZT9z~QA0yPI{k5PcrX}^LBRdPgQH`60}v2B z4l^^50uPbTm=^3l@nfpMBnJ@$1C;x0596>K;=5BL$n~iZ5c9`3g^Ihq*CjyEP@Jbu zP^AUgo{7?)9DecF4f?T;H@C_XzvW&hScnu2{q^cX?~~JO;sbF3UmFOXpQc|4C;^8S zKz!n!0to*d>gU2KG}c_>eFhvW9?0Jtqjs06Fj3NPL`j2*aD%<5t!&7&1+dZGsI}I2 zTb>12p|7i14q4EYfK>>tXIE>>AqbjrAag|}m8@*K3OLIcx6SG7hSQ$(zv?Vw(>8JD zx+5fbCc+?H=nYX&{1hToHVDuAPelzh%x#5*MWZUaEy-&c;ozEu=KdI7<{qt}xCfIJWlDNYn9 z%g8+3^qx-SQMk02CSV(y4x)?0TFYrcrL3BI`p zg#^lYo1mj%ii7`I5oQ@Y*$uFIxan9DASz(`P_NQTu~VR-5{jVVU>>IADxu*k&`@&V zz0&Z1mx+UJcX!73PK0XOBSFRmIeT8IckUYDj5~i-S*97$Jsf%*Od;WsRV-#NEznPD zAtDC;6C-jLHx%oU#f9nPXyb~YJ>w(e0G~&f?c4J{p*l>6j5NFs(xB#x0El`J6@@#` z?wSQdu~P-An2;$Jy8&u(BV&W>h5sxA+3Z-+BgUW zx;p6j((dQrq6)-#iWeDn%*k*SLf{jR7!2@-X!p~M$S;M$2V@N*H-e|`7x5bh)_c1&G01%q_zp5aA%rf5LOEV6$IGR7p<)-~>3nOZ5Pi-?f2^Pj{<35s zXph;XEwtO^&zxdTc{9!rzn2GH@FkMdOO36aW zp01tS9OSpUm0E9YuUBo1cmuS_f@yd5d&9$i-w^P?{@|m1q5xwK5*c&GH-y_OS;$Z9{MVcF+pkyTgkK!ppc!Kiy1K$A(ObOT#@W8$vkOkfE4-Nk8Ye0e!*!S6hQPQIeu-V>gb#|M~h1;pOw{|1m6$Ak` zH+JI6c3i;)QZJMG)-0|!+y#=Y?B-UDNVbXe-)P+-6R9pVIA9#ZmXt$r)}?V{mXDh0@E@ zlQ|#hqS|ZcarKh$N6#OXU)fgX%e(UhW~-q5;rYc5vQRckYl;XVzlr!~2|p*IgMhvGdq;i@|7}b<|H6ioJ_W@1o}|E)%|==vR`D0BM_iKlX9&o?8m;cM z%QfC1@ZV0dx)a-fK)ebJ{Ou+i^^W1-y7+I?zG2qlf4nUp8vhv>*-qA>X{>>)y! zZy1^dB>}!lH!r!Pngumw#Ar!(58jc9F8E*To?h5{sT{$S1yLDAgcNgK9b|AwHW1-+ z<;92vl`;dLQ8<38#=#eOihCYL{UqzzE=WEJBUd)RLZoUbiRc4^avqMX4y{4O1$Xy;jSb}>bXIjTS5^evzn+Hw-U!*CYBQE z6TLhz+W2=EbWGF=D;cP zSa9}8`kcerV--BQ-F57;+6rmnvJFgcb zJ7fIEIJkuvfp95)vy24zfl$Es_Z7(RPshGeXR4G;uL6J5#dxNeEUb1i8=d8~cxAI+ z+U~CJ4%TYjtwwLBX{*268rIu`xI1ol?K98#4+QMf2(>S0!Xvy70!mRkrXBF&| zl=-a}$Ebjm^T0R)pF<)H6XD1Oq!xTdIv}HgSza3Uyy$)C5`Db{#$IlU#9Z=$4dNZ#jvk!_aosC{765MY8Ip4N-!qRG2?}2V^tDE2GtnT#IcZb{d9^gB`ezQ#~P|_PGGy@zc z6!5^-KF2XEI0T<%3PC$NlvN0K1?_bdf~mKjot+v zpn)H0HEL%)BGKkpA&2OHhp^zW{Y=Asx?uOI0t3EX_|Lu=jN%SP;J7D zxC^+d=0CDvcH{M();hfbsDLs8Hw^w()^_uhfC++e7f7az1hr7yp3QAh|5e+cSAlI! z=c-f7>#q5Qr5dQlxK)h;>9=!Nhu2K=b`tEn>z~V~)(SXJ=kd%^0>UtBQtAmp9+;-8GXHHW zva5>KxUfn1OR=iruOZ-e+r>X8zp~+AEvnSo6^Fk)`){)JKPiHndmUR+0b?A&Zyo*w zg5p1_wC~rBp+Hjow4rDV1v(TOY&jI#@ug!Qd-stX2a8EDXoPRvK60IelI%oX?FrU^3A?MA$eK!GDCLVM+}r2@Vd^S#E~3j+GdS1J>W2>;7R%z9k} z@*D@nj{7fl=A~@Q&VmyPd|fzr;b@rV$h^?;zxeO|MSGC@7jcKsGC0=qStCjuBz+Lc z^J%XCY`L%Uae%_-D3@$rtn7RHpfe(>VPL^Pd&q&y)QH_^;-D6SW+p6{OS5KVE_ssa zQZEi&gFzbfaA|jqJk^7{eb_6)&(c`IXUiS&ANCR3I1$>l)N^6M&J$Qr_Fj(2glL3b zHD2sIRq@&(`0;{7M`54pyb=QCHGU}d4%Y}TARypFRf=8zGYXVG2MY#a(oH0jPC=Eb z?JllRf@r}zLf7Dfxt4>V)7Ye0@L{M6%R8)~LA@9O-+zK27ZoUjGzfTwiNG3LN5`J7 znwX1&&%^7sUN{cK8LGXZMm$*$)KhpbTsn*!A&k%kzj>6uJ2ae2Ys7LE6aE4k(g^sR z;&1dm+hgEIF8*aXewXRIHs;GDOoYpz4l?`=BS`XoIsT*2`7@vVneTilc4k(4Gv&^7 z$yR%&)LB^VEmb;8Yn{wyC%4&WDBM&&6T6+VnQ5rE_$~Vy&7NYp}D}9Gy*Ed5(!YF0^wBtMzhDd5}<+r4FPvsI)-s@%ypVNx^C2D3Cz?ze8BzN*^=_6b`5shP+S8DaT@7~Io3~B5 z4*B^K=Pj(V82GC$z{y%(YpDK<_=o;i+{tc$eRqRE%DXG;jf^@q83cl)r&MQ5yJ-;2 zI`J-k8xMaG2!enZfj3&HfQo>jSx^~)#(%}_*zmE8SFByyj);A!#pUf*rIsKBZo_}; zwaywf-_9D%e@O-4OXLN%GsM9N0h52cUp+>agVG$)4&JW9e2##yU{<4iP%^QM z6g3XGm@akKNehGmC!K;Xag#9G#N|NWyh_Et$!4;+NYCG$Mi`2!Vfu(C%k*C=iF&f0 z=6cU%A3+EdGf5Hj@IR+R{K(I;J>|#<1hai_?9&42goFGPoQLG75kFIWj2I4hvi;+w z&U4JgD0w^=$8^3(nj<3$q+jsqGQcM-Pz{2Bp!e#b1>z||8pNXEIOsIy%SFMk=UT+S zN4QDSCPJcWwAaaphKY+b5k8!E8Ipk?PJt9*L&{8B)#2V_iqRf4=zV*dO$QVbPZM6o zf_sM%?IsJE&FizC1+Aj+6S@h5!y`-_NsGd)g%06@+Bo5{feRh@l7M}wA}9t`cOXV% ze=gwfQK$}2?7%3Ox+xLes4v7hK3(<$;W)>Pl5oG&&GeH-b}@g?fKQtLZ!2~##&y7 zC$by;l}&~M7q`2sH~{+9M!(h?>_(%#Xc%>dtqus-5dwDmBcnj9!J~uG(6H$UD*(P= z`s&V34=*lG)a>Q`{)&eFO6R_J0jAh@@xMQ4_>(E*TxUW%;G{3`U$@sjCe9tfJ_z_m z{eR4OxS*~lA&?0Zs5^@MRSL9E0in|$70}>AwcztJfe10h$E3rk9q<_aa*Qwt1n$ce z-0xBU#Rc5$bvxaG;a{gWF!D40i`vAPGqK)c_Jdkqp{_~74dc8LGojjHv4fR&w& zA>hhpl39%xE75d;((P|q;sD=}?LuGRZ@Jd*8G8QE|BBJl8iCB&^(4Ci|CP5$=UJY+18VV z==mIjVLo94=glDTZ&0ZAR(FSMwf@H5V5>f?HitF)>&Js;XWZ)Sx00d#^*a)PdqbHa z`a`Fed~&50wR_Gk75!#hL~1vN9~_Uq+WWr=^iJ|heI%11?$ z0_Z`2^8PBh+PLpjT>-QL+WX;<4oCP8zq6Ns?VTYPh{4~W+Z%QV`46zS{}-ZIpA8TFgp{FL4N;tM$te7u9j+{UC9jBA8p!5YOY1T?5J z1k_C7DnKR#BtOM4OAt0E4)duVP#O(_p> z;W6>>rl84^7kHON%@--rXwUXWe)C`-G9l$)FA6g*d540p$ZwI?yt_!$GwPt~zk5p+ zyJ|aa2fTBB$o9cFkmX8!xzb!H?KlNyDoqW7BLyZy{g)u<$|Ej?5ZftivRI$?Z`d6#(V}_27(_1fA2+s?^O{N7aqOS`LHU-s?`Sl?-zlf zk>5leAVFL)NSS)FC{4y5|B~YWY(xUFfZY- zz??b(<-QsR?LpvCgDpYfUB2M`CE^tS<^F>XpShbPH+mAR#7s2t$j~52MOYJu#hN~nSUBiHpzIyb zL$e@U=*40rx@E}hDXx^s^btA~#ki6rl@5p$XGBQt_`eo~<0lhy@si@KCzI&z?-vvG z3mVeJE)BwD9vtJP;kz=iONNMi56P4U4JE~;_2RkCgBdXEvG)b4HPAIbj;TK9YhoGZ z1x)s-C`h>Ayk^h^C`@|?)io#_Z0iX5dD7v7xt6gY@Ru4&xK>tQ#`P+6#widJ@jS9$ z&;`{v$jrJ>DR$-~)#cGVN5jFNLz`gqcwQyo`Gn!W8Akek$Qb{1e$RD&&v$-X>HL<5 z0^eog4=bHtatTq-VnjQBL;^$woLlY9u6E|j$>LgfX|20l>1H=+0nBaojRK3?{o+o) zywfEMrq(42q(LZjBkH#Z1srvIMuEe=A>d$tFx>AC#`~i~ydj2whje|}hw1sbecT^j zoSj~s9o<|5XSdfN;NO1{@Tx2zrhsZ{Kv?+AJ=XKaR~VS?c(-^ zbU+RNIHRxsg8DDXe?Iw*%n^#bm!}9zq5p4U2k}pRsetwh&(4kv0Z)z(P7DDLXl8_G znGE6xIKUB1OW-i+ApYU}=+O43M8Iy#_^)g5*HIO?lR7}-okmn^bhc{oRy`pBcspLJ zbxK?9{1!f&#Y%g&7=6jLK4yr6{w){1&oq9`wSLP)f99IgrD&m)ES8f@C0<^O3!91Y z-|9|hb=!{Z_3h63UUzfP{yLl~Z+BNV;}xSowFb^r+6I?@=HfpJ(QkktbADgXH(o5X z7%RdYx#q)}#)Fy0(|JQfuC;FtpYrYLVmni@F962Vnt!vUd+hePVY_LYDR0X((GV3tfFv|zd% zsDMD#<>lAmZ+8yF8wld*kx+M|X>S?|a_LEdih#x-^1~CM{k?%HQjBjV^aw?)i0xM`M{< ze8VWvZo@1%lArf7>rFAAf?&cp;D&~L5C>?Oh!$v6CxtItaq+K}+ic`FBSywK|1km% zX|Pa@ssC=Z?Y{=4?RHVXSK5vZ_{!UD`@eQ+Ct7v>(^^&im*Q`&yT040>>Bwg4kjEY z2v{)`J9)om>lhsLfN0nM>`cmkvT+CpR}Y*EC(Um~dXA|lx5jev5Hs9roVj;I_A^Qj!{q-db&TqS|9?=0w)=0cqtM|9DiC_ty`xv~#0 z1~70bTUDqJ*ii6r49xPbQ1{zq=B6mixq9{u7G{NWMfti0Ny|$zZKBd@A>5S zTw=GJTJ6l1I}4TW(nfcAy`S0WuWa?R8>oPVYA0Xq6k(1*ssavbtwAFiHQK{wdk`ff zGU58nh#QQUi@@+)`$!}y8l40c5J}~b&-hbj#QDevhPqy+@h*Q||NRZrqa*N}RKQ#K z4+{L@${$tWe~10`k6WZcqei!b+}>RL_Y%`* z>&r9SpQp0Zx!M6QX!<{pHRSl{czld0 zZnZm6(lr)rclxb%H%d|okU-#$9H7z8o~J`6n|tlGold#hE*P#=7!WtVim~@gG5Xy= zFdO~4)cidc|DJ75=cB27yjV$=)?&V9%c-Ivpski>jWmAAp!2<=FR=A&A$mH;pt)!B>|ZTJ_TKootY@@u0&B_2 zMz6dL|83Pr8+-ko*2w<)JN)Sn_F_AZTFE}6;kx_n-hSL0+BX5XMvF6}KqIdcPY&WQa?NB8{#Zuv*P0hX#WwW_dqvp(?%(kU zpMSr(AO@Viz<`6_G&vd^{7TuESs?#EUGJgYMw)Et_6yCNu9Ekrs^morPk2wlWFixm z-icC4)!k=iUiikhBNJlHtXtGt^VQW8V^bP*Twf3mu zU|;8bru8A$u|4B-bDejYx(j~qa?QjPBD`aX{P4{3<#v~gh{%T7R=gf;2sV~PLDqz0x1-=yac!OtMCI^5io&Q}|v2;Qpv(&}ei zNES?Qw`!0#+5!7q|6>HOD3JVTCI5kjkRLjTw)gHktOC~zkzqW{5pwl8bdd-k^?az&7T<_FUnsq$fMeM@*4`@`SXggpi$kqgCIwvy6V~5Eb_wnuYN8T)LmjhHr_Z$ zLHP(Pae{*h1wK=cpf5_p>r5G>L3`3OZxDPY^juS*HxVZNf>o`*Hwy~pgo!+FVjn>u zq%{!X(Cx!dZ;67~S)2kZa*$~HNP>XLgkmE(1h$7H8iIgNNiGx=rp6KYPvb_O;1^jw z**keitV}|IRGif;NIjP#uRjIw2i2wOpxcw3{~ihoZ{PIg)m!$G>%8K;UXKdP=X(sD z)6JPjTR)y*M`$_W3;Gq_NL~28DoYqcJ68Klvza7IZm~Btj~}aG~}K2SjSh z2!Ze!VxcII$CoI0pUoT~OMJvJ(@J&{X^>)Z;viX%q(g~B7o=D$B2=58JSBddxk2Pt z8I7sxvO?dJFOzf!!eRH67xN3TFWRgrP=H8w;F=KuLDFOr?)0KCIH*FcJR<8FvG6WE zDGGF?`==B^U#=j!5Xcb<^h)&Y-a(-7zc>>}5lo;^EQmVj^vQ~OkE5O6SF?1%FpvNt?J0jCSwpU&0T0hk z3|>}8i6MmlmdizK@FxTeNd%nI_!UNufFbYwQ-r{fI6&IJ1|bO`V|oGGeNwxceS9I+ zZd~shW})qEl}DSU5$S;W(c1!{+`s2WA4=iJ5`izwd*sMSrwt_U#Q|ZXj6e8Yxcm%^*{oY?Z^$<=}mRD)Xz%=;baGN1pGF4FMl)Gfnux z))=11Uj%}#1%CDZJZ86? zAq09kSO#GY4#6OzVR6@FM}OBmKq&B%!7#}zIA)4qDAp`E`<45q`5)f@=MAHmm&_){ z4*cbc67ad?NjxAY=d}IdUy%po_(U2Y5}*`rL%`+X@q9%nrXyfHr3)~gFUN`l98G5S zn?OJ4DBd5(2ZV%2WC0Gt&S2saV696PxYixJ1ZePAsL=(OGrSP_iT_A2*(`N8060WD zFs{(Sx@(YEFzjo+%h3Gi>usj-K5xh5jEDTacM22&A|H~y{8Iwlz%r7i1|r}kOXXnX zz|Eo;eBnI5UizH31Im7(jVpyL`zjeSF!QDpK3woqM<5M?dJ60#Yjy+y_b_d^*ErP( z{R`cU?5%zSvs}P>xkGUYpoL?az6W(eZ|DVpkeIvi^3c=2tsiF2c z|2gpO)=>U1f7C~7kBIS~;{7xo#P?nf#x<-eFcP4HU_yZgdAa7Oh!8liy{%Fw%r{4+ zE^Wbk-HCfaWC58}dJ_Vl_kq7kDgk=ze_20& zq9hlb9CdDbSRfomli#rq`EXct+Iyxl?phaA9r;|Kb}CZjBt%G~p}UNw3t~Ds^}W}K zp+mw2Awp-wwPeUORdo%b2y%^T!F(sg%@8qth#y(}_n2w;Q3pIUuU2PGEXQ;v*_f_fqX2$eXP;@~dQU{WAXb;rA^4#R>3 z4JO_ZZxa;Q=`Izc?Wql$>|uY|3SEp$Sa7}ZenBBq|S zV>$j*oxiKh{@9D(mg6@De_R&5EKFbIqGy@tSuT2+4gUZEqYtIYMtPEH&M5&K0=D9! z2%y%RS9^0i*820t{-P;6$U(Rqge!aFAH}P1x|+*jy|`%mM)|NZY934!0_1(rbg{rdm> z=c^EqLNF>IC17TO81Q{(_#3Hm*hsI=nelp!fMj@w?L)Gk+y)ogD2N2Y@VOMUqg^r} zjw-ONv$K=)GvaJcjt>o7TZ70xtkdX2_ueG03h#C;Vp4D+_)wxX(2nm5qs^+F40fv% z^<{>Yc5EPC>!SI!httjgcXoF;>)0C1j0o*9=_SW*Y{(ez)}znW;N#xpU1_4o=;6y; z@N}1Ha!+Zvr#)8r8FpTw!p|qgIN*O_n4?d=*N_*&u{hw;V#}}t) zfyUxzXGcjnSQM!7eY}X&f(iGwqavf%T3}if{_*YlU+BtTzSHNYnlHV8?0?Wic=gwJ zJ|6t_=NF|wpWj^T^8oYcM485a*YMw$Yf8ZIALfrU@_|m6Xaf2fy4wE)54)EBM|E3+ zK%D<(%R~I&^Hn%o28st7g|mY&+7BkU!h^Uwh2{*VBh!*XZj zS%7)k%X%4EfOpEB?Xppk9gUn6eWDVudj3=kE_C0)d0oiQHd)q(eCKUOIGAk+0b9$1OFXtRfbf1%RiMr zD!=LayZATCKy?E{z+I}nyVoB;N+H}S9CZFOsFJfdx!`#Mg`~p> zSot=b1s|`aL6koL&b|#O@b;0A!sEn5OsgN_94wfWhTS!Mq)xu%rXyeqg?b{EK_Nn* zB4$!)FliZd`>;Sz*yp04i*q1ULEV9>K2s(Z`O!Y;n-u%7lBAVlyZC-)!Q-bI;p4rd zhZJ^HL2H*RXf; z{ohOX#!2H~)}D?B^q^^2Eh!NDJYq?Ma*f;r1nnlte<}pyVpeZoVkMDWhc1{`(~yxsN1GnPzR%jHq10Bv1zBZ#!~15ag0-_=^Gs?f5G_g2Fy6$S;YQ zPN5J$bS{)%BvA)7q1b1Q2oObn=x}%Sya;mX6D4he+?>&$r}jSM!aLh|hwa%72Pq$8 zZI*E8MPWoi_L2a7HXV`Fe(!oE;vakTzq|ImZ87cl(N6dx8@(#Vuk+!%;_O{9`dFTC zHRhkH@n(Jcu^NA_&6)gW6j+St3oJyhi__=X=y?W@h&JKxdFBFtwu{TLAxNe%EubOM z0$4Hr>)RioMWsjav9Zr;4`=-`YaH9#Ja7EtXaNY?n_p~5q>AuT$soK(9x@!3@v4f3 zK0md$^FOaKZ78|dz-~Pb1m-gYwB=_!Am-mcPyy8@$jFfYd{=e&$5)!YzI`F!mqIYT zfIq%nX~Nj$*Bdt9zGzR>2wi13Lay8ha{l!yxi=jUa(;b{JJ_QE6BY2}h-&bOBjD;3 zV=(&PQlT*Oll+JjkZV5A;by769Ts&>HOV`2Qh9Q>XezRqDcezrS)ti&0^zQ;SkV{*a+& z@VDILePQx>Z=xjdd8sq2AIw_^lz{hx!+vl`8)&fVj%Wtx1&90Lik5)M@gO>+C>#?I zV;>Cc_hB5(Cww+oOl6XtFDL^aVXS7>9={GW*qtbD58s7?7*DP*c#RSj@cPVqH!*bc zlHm@vSNW?_y=FkW~>3V5_-4EHOm<$kHw+15Pd1|1#02#kQFQDd& zxHO2WhgZYxAb3H_)N?nBk_OQ!MQPNL)!rxh&~ssu6u{EHK#+?Q%SfRs=Z7QUz}8lI z;P3~}?d^NzccZ+&T|@b!C=7-o_-#Az*|CBV#K>u+E5LDqn*lV zt2)?W(Njq0pOn8H1-|$oxGa7Skj@9bdGlXV|4j?Qj)Q9zaJSq`_8K2tXpFP&2nPNJ zlzdDK-d2&=t;0tK)T*X{E?Vi!n=Qq&>T^e-KaxKuX&-c%( zKqR`Ij!*xFhG)r{BzHzo=oDD>Cp`l$F`6)>js*e|6Rp7N6OAoF8WaVh4jOnpQ?b~= z)R@dSAYht1{kXK`nnWo~hLJpm{793gm|N0_WHk!{kz5R=aUQ2IOK8Xgy6|Qj!5n1v z$S4p|@bEGA;UhrME>@-3<-qlN%$F!lhEQnyC@%gX5c2pipUZ?vvDjvC{f8eZRg zfOwDCh;^b-ma%LJGTH zIKE52AX4AMv@or1!np?1$veE8u1pdT?ONcSj4OFbu~-i!T$5OcQ$*!jcaX55WXwr! zCTRGR0)69ch@hD4Bd{QoNJ988F^)|ASxAck*~QdYX-1XQMxg@w+18->1rSqdLXdQJZZyW*fEX zr|OhZAA9kevb#el{yxu!Pctk>z*n>bMjwjt$LeIKh6&W({)_EdwZEwM=e53EAP0;3 z{=7X{7-4iqO9Y`{HVEzQe>or>dKpgby?-9YWW-<)aqVY`d-8B~czSfCXz0^(L%?gs zb$pi#_{X1T%J#eX4-Q{i{fz&N_WlF*{pl2#M#K2V3&BW$w*K{FCa~6`VP-zUKWwK?BlsG$E1H89SZ;WZ?PZ| zdOnY$8UEjhiEtrZfUzOqU_2SA5m2MRRQogj>oW(8)CTqR)Y^o;8q!rd#&)Cw68PdC zj%xI|5^hzajlE#I#%R85GtM`{z3#N!nb>R5IzazJ{6hsa$XMUlT!E`Y=%IjGMiH zxp2L4Y6QVIP^|AW2n6`+?o|5QdmWBtrs9$Xh+S8zo{M=#bvav2qpSD1F65W**zrxK z`EIxQR*E2`=;dIez=ZZx+og!y+Q_##rrFWz8f^XKzhp7t*Wr&QJVtuhl|7}>tW6;a z#(6PUqdQa-R@$Fyeo4{UZbEo2@^P2SyB_s|=L0pdn0P+cYYl(fWfVT=KQH?Ne<*)4 zcG%5|!Q#khkErMJzB>OD^@riZ)?h6M!hbO0LDu0Y;rd2!Bjp|ekyzS3WZ)OYf6aP8(wFa>*`{xh;4S~XcynyYXz!wcRFF7LJ$sIyJ zp8=ndpCj7Kx?$oaa$w`^B|Z{JG2y}l0TV71hq0HZL|iB+T%UPSPvyXx@t<9fO9PEi z1ZH3E9fU8uk5Jknb?QV5RLh_W&>Z))M5RyD9>D|w*FiJlGk1-6QTVX}|DLE*FkwMO z$xtIMCdo3-aE%zor7Y-=jQ+=WD*=*?PQsehiwnqsPl}#C%@Y4DpOlXYf|i~qr^ul! zy$h}7V@Z0PPes9p=@D>D`7fymr|Z$}teO1EXhs_}NN2(OnfXH*M^Fd#wJry;G31i( zgqvxPpuykzcrQ1z|1BwTE}htL4d3b`L<`JOy!OlPYeF&VpxOk*f^%6()FYTBS%!^d zNKkAy_R{eEq;Zf<+90T`L8VN4${;r}5l^7N1OyWV1k1b(O|h8Zm|s;L7MZcRLku;^ zGNiglCS))j@FybNAy&p!xa2BBDxz58Gct!~4gSnyV{n5VF#&n8K6aJ__pz+WN| zM)0V#z<(wMVzu$D3&iOK_=}wmr4H)eL?D#U7vK~2i4oHc_wsZ`u9JJ);gbyZ-aksS zH^s^4>ilzcx><{N8uLtRk!dWp>$9yIIe+i9-tNV}`#u0e&O3~0{%KS+!nC8E4*XQ2=L8KkV&U*NZBtQz#7x09_htF?hHT6zGP#_%> zcX4)dPF+%tVB4P_do&;xhC}1o!_{)JS{)(;YEa00v7Ah&_(D(tF@X+I0jGm;I2c6- z!L++SmITOL5GFu$i1@FxgIX`Dbi%z>SfK$Z&esFdVd~*-J>02!s98hjG)wQL?}MjSHa zsymz;gYJiniW#B;sx>fPMe!<*=QM_{j_l`lYEZ2bu-fcSPN}w^YIrmXoLAv-XJ4Ed zk-H;A9ecq2SM*)A1AY<7-Qf8CDi*{DLU6R)zM2i=%Wi)Aaz^-zEFg)YMD<_)CHea0 z>e?fql>&q4Yu^}EV2Z!uzjI9kaSI5Zpyi70hQlM3fDaF+%fooFn9f)6{E#5%Xb~_M zc&RSH`N4Q*2-qJ^umlCf!R(LXWJ!$4b=rm7WCF$ zA0u#~{Ta>!<8XB-?GFi%5-=*D-Q`ta@?Uh9R>RJ`-Ki%+pq#?sqptj{Kp96sxKNgk z#0ZR}N7ta&f;Z9sJeIFVB(+#jRcR0qkBAgOF9CB>z74Kds~`MF|KGk;Kv>YDVO#~& z<9I=t3tR$BY`>KO&?){?!=FmMGV^lp-oVMvp39g|-GL(_pxyQh@C|qBBf0<~Ha0ud ze1{Z&Yqk*ovW>BQt)0n0e!c?6zBS>tOwBf7=5`mLQJu15B>Ro*#qxk?zd&C&wy!F* z0`LE097uDRlLe$e2$bLt3D9l^rFKwk1;tLF67ZP%uet!MB)?Gqt?&CvG{1!Z)CJhu zpSA|H0(VCCXL-upreIEU2ouQ-0qdtmV76Z2^FWPDaIg;ZIfuc8fIx*W*z zGVxC#5M;asf~WF)NDK7n8R6ji;urrjD@C*K1SB(XTA~r7*Bi;FPsdte5ZEey( z4N^=+JD5@xVFNXJlg}gvDrF{V8H5YnFXE4Hd(j@*f!;3&1*#8^F~m4UxG5Yw6cMUN zFsTJg7u3eXWem|C;}M}+`UqnOOR<7Rgoh8n#1)N$26lNS3xl4C{S+U?QD@N`CQs4M3^k5;`qO&o-2d*WH0hxQz4P9mPQ#6y8^jIAK2L!mNi*Pep{1 z2AS;(ZVJx4Mht8I%3wN)g{gVj1wvN`oics>sy@PGLla?|^C#yrjI~39Adu=@h@XS3 zK@lN)9g}%<|5QO%Q|Xe)cD{rZRF zS!1wl4HnHInINr!|CJ#f&^Cr3J%f+Ya(}$&k7kC0l7g0)L*wO4?%>1aq0*uCet&U7 za~|*R=R|d&1!}IByuFw|{{8je4F5>xf_Q=WzZDAofBy6J$DbD-`5_7L`p3639H6*C z>GX0?&@5o+;fn#EcOPCcbBwk>F9%;Uf8rY?3I)?6vOfxm0vSeajRI?Q4f}#R#owsh z2`dJF?XYBTGxZUk>t=$0JJrBez7=m*!tFgHLb6?o9r`lMow(7rHM76?&VT)I(PK*Q z(hyKAXg3#jLA^h%bor8OePWOEu^ha~2e0zM^PS-Fu3_Kg-ez!LqXHjn(GK_`6Ftua zqzL612fS5@Gc6FX0Cdiwzymr0t9{!~_vj6s?R5-B?c>3+b$}Mw50;|9rF{|@qXfHE zd=V=VP`?5O(HgiS{xik`vkbXp3Oa)373^PwR!o7^`U=&0+z%O_!_5bP?f(UW{YNZ#4T5qRJ7PS1WbOCOZ(Bw8efv>>C4to2Dac+Gqv?T;m zt9_qqzs(>78UnuAP0GPRp0ohwI-hfGZzcR(Y=2Typt7TdfO#QcQubBd*+&B_ zX3r7OeZFcL1l`=sA^!8+X4yMb`Gx$j@rvpozuqTcai2|LpO9(=2cj>E|2E0_L-2Dt zL>)}{Z|D->2C06CfAC*47SV`SX1Y$ZRrFu93L zc$S>3r1!#VKao*H_%oI8dHLkI1VX1k+VaXr2@9%Z>_q52g2FW=%ODM&Jud^DhFoyr z-|fQ*1quXz-h?2H3pMNx7DQb9|6S`?8EJ$N8*UN^>`4+dlT?kdh8T*;AmTlOE(bnT zj&!na?~6;ujc~>b$3}sxhenD@88jl~=~ByxZ&ZNhCJLhAV9JH-BUvzMiFREe#w?tl zKSGfE8||(81#g{4DSTK!8oZaz2r&e7EfA$JM+c#ojGYD5;g<-6hHDyaLgI9))d|!UXGDgLq@-TNsALSw26iwF~4kTZVLZr(|O?-#d~XfOMS4+{na*Yo0% z&8AYOv63YHf?~k{MoeWwe`>Wermciqwh=WdAlesGx2NbmJ^OrV@APwnzdD~gXVd|Q^X7nkbAQ_8FVVt? zus2*#lnfX9<5@7Vcf=#3!0BSOJUltZ3xMz=$K@%yj;*if#B+Qj-4_b{L50^i&(%I3 z5S&PWii!Tuj~hnG{q^;)Zx<2;`I5h61#lJ6H6f`xmum1zjHTBG7MEvVa0)|vYYC9@ z;x!#+o)?q&4-!S{OhO><{zfVUL?0i?!En4{j}bUx4y+`=y5_*@UEknuyw@@oj4Ev!0rRAAPcn_kZY9jtquqL#sY8TJerwp< z#3YqMOFT5zdjv^THymwR39yNg15T4+v- z-T7W;R_W0pV4n?I2Q%Zp1F3+6a6SkZNPyGTbh?_&4_8ZMR70sVNr1}PIo84j;=dB- zi6i*rN-@#o@}$1t8(vLfy=4mFCI0r6dhRzG`#?Zy!Ng2{`OZq({(gKt|7yQrw!gXI zg}$*zP*e~_|D^b9%U)<|(lUR5qy(8COZ?+MH39&CMzKdn$1AG9J_7N0ZXa)$7EK(I z_>YNj!IVKDqsh$3Z)87>$qWh5J_(HNjTs5BYwzL%QX!S)7GMNvk4j959k>yMc)9BS zZiPhX9fsI;H_QDkIf6gto1YZF@*(GT;G`E&aWGyH2KAi$-VhDbd6#YI0~>8R5CT zS5rw0{v`F~dmoBDAz&|!m~o?tR6x&vQ3T9J%75JJAurX@#@@kJ4gS+$Uu3^6qF%I7 zybJApz~6AE0`_qR&Ck}@Tm5z_p7tmB`ImrXkO?2}=31 z>$xEHe_#QwkBjXfM-X(FBM1=q%QFH5_$#;F{1NJ=vH<&D2#)G`MdQ@9x|fX$j@~I)J9|<&0{-YJJbsqqAVf%WAxE%JEa-rUAm{2`1({G{9(7fU z!by)Hh?eMr&VNpa2@3*k&%}QK8P#Ebv}3*jfgrilI^%NSS`fj2QkQhRH z*rONeKxD_hNA4z0&v>!;nbbjOOm$&-ij&4cYT1CGv_L3uXS(ODS{&^bK-gS~Yed@L_S~-eG?tXvqi7t-Ax2I0)+LHh-yXnXe;+y6{Qz*Hc_Q-Ur?vLMo(rx@A>Ju*j8*i||d zM<{Tf9RDwMFs&3jAbR=uKI9k6St3B(l|YDIC@aZsVj})^i&&Xo0ktWrm>4mEP67xe z8M2@#=+heq*Dhl^6cZ3kw7^^S;G^61N z|GW8L7=dpX7W~8b@A|KA_M-PC z?al&EWBF^kg@DmI+_xa$#9mRD2| zH|=9ajb_1o3)@hI$oOC3H2NA4T)ke9lPa<6~wlpNOH2teG)%_189O^WO-kq})!q zw^QkpX#)9mR0Sr$Pc3@g4Ucgys0FYH+Y$I83WWJGl!M=9jQqS7%+Y%RX$s6Vg@76# zmu-H?HbjAXd`iG@ArvT{^CcC~pBg~?oQQK87NRk3Y7i9adE1}+OCo((u7{)!=WaRzFTU`E6GZwg`3x z0geB*JnF@zL8HBTuTz_Qvads=VP&CZmoe=vQ$NU4_C*vdwE{yu8Ub;8z=A|O_3UFdSOowuvQ$4_V+Ol-pU@e8jUIv?QVr6RnxlDHQ5 z$gyu%Q8LJZX%pdYQc8BgPuOS6iERc!rin8?o=!2;bBe+WqXq$)edkd!bD4;d1|JB^ z))CY04oN6*C&58Sz+|rmL8*gtydylF3y{c%_cD~80X1(N%uuBIrb@>hS$tCf7-gBU#2Tpr23hw_a$6Or@LsO&S#Q z{j3Z7Ub-MbGdwQ>Av`B((C=jlA5{?dGil4P!pn>{iD|0u?<@{`|-Y<@3H-jpUE zDzo>cm^xs?2oh6pxii=NG5Z5Vy{|i>=d8VNe~jk!9_Oh!(x4Vs?aaPDv+nb$v@@Cx zCyPQXHso(wk#}^90-@h6KCOv;@{`=2gBt`!>DKOV6 z0dpSlPh)~f2L2P_2Q|@-DgpBzuL7djPR36y-v04_;1u!pG6vBS1x&&5+ZWNs`N{d| z(KXW486E}If=^G5&rXj{j#f;#JzO0hLo;p-o-bzcbUvLf!bxlh7*3|+NjwOmgYmRK zQq}Jur0d^4(|5y4*RYS~Zb^Xj0OcBCzHX=&<~T;#Mzky0FVl#P0u8WAomrV6=$Zeh z75g{yPx%Iawg`ejm*ridiED@K9t{gNVv9HT!cV2>ZJsQc#|n?UvlaZhF}k-sxkGCy zLg2ma@xz_aDDX)pc&S{;KZ-_;(MEZ?S&erZ)7^T^v}itHOg@(<8x_psTeWzn8s$4^ zjrP6SM}i(Lp$rT}|C_C5^W|)=XmGfhl~OgsmoLw>G@9k=!u$V3e$?XOv+GMco;au_ zbzy}#660bY9wY~T69wK}lQD!A`2FTPnJ-u0Z@&C_bDcE*-Kd)oZTM2MAI@Lb|4;zQ zr$+yyJZ*>Lr1*QR5hi@oY4abGuaA!Ai{)%dcPr+PCHyzV2)qcVSU|#PHWdF+0-j6{ zFapo|Si%_x*Bi#o{b3_gSyuVS{SB1ByF?3y{JvaPvWP{-6 zQ25y=#WB^F1t#*pi^yoi#bVbH(8+JREayjMv|Sw-|811<_M!p``3X<6vrBNG$7U(W2%H0@`_lzx7J^Z#1*@kJqgW6>TBE=XJ2m_Rs5QFGYlG zM1;?)6pLS|Wb7dLik0*TN+wMB?`4ArT(jUaYQ#U~K#?COg_{WilJHVV8w81=IeA_^ z=G&;EH9k{m_=Wt!Pd#)R983_d{Cgtf$YTUHCXuXJaJ_DqhMy`F z5Ckk!7gq8M&4Rw*KM8?9&o~H{r3e<;_)%IQEQl^BkBGMk8u>j*OT#G((!J-3AUukd zIBEOSm8&O3zIms>C;DHJYKOu>RJSB+#-%}T7BsXAPgg zxH6aa3#z1>N`n+?-Np+AiU`reRBlEu^m=iYy0BD3GN{oGT@=*P%wnX$1P!4;R{>`( z1nNw3(rv|FK}He8N-Q^Vs{j46<)|kjbQ}~B-jURo@?yx|8wyn~{@XROupkHSPBkMg z<-fl#yZ3L+f{uW$9d4>#jC=?tA_uxcX@r_I5gHdFH$KQjPcqSq!t_-kHnw|DqVII8 zI^AN($84uLHH_PBPInq}Swm(hh4ndFpkVCyDTT$TKJ?4nKEloaGW^iPE zUhIG%)t*tHecYU>+KU&pWgs$GG!OWjRq4*l9VEk2D=M@i+w8UDS~qSF?C%jaRYHT~ z<$Q^DqIXqtKrWdSclz!6g328wJf^k&`%h}S>I;G73BbZC17n0Syb{>1@J`VB!D=;|cc9LD(Ng{XyJ5AOX0w zA9?+^+6l^S+<)a(P-;>F&f?n*)qxHI+Cph-#)ejfR$OS38d&X43FY3W5=1WJh+0n@ z=Hugjlj<-PqB`#){QR@cNugngHrXf!ANHbGx!^@^0s`(b5!m_fS3^K3aB_ENa(^>? zupK_y2_Nr_o)Qp4#`rt?4Jm{l_To?Wt5pg=mE(81`K}y)5Fl<;B@?P!pfy-_hchfe zlZ88h=19L91VSqvnx9*3E*THZ3*kMQuKf8>5bVHqG)BBoOdv^t=jRv95xLYT;cEu{ zp#@%x=~da6K^T!wk&w_Kv47tw6JMhgCf*>1MB6Xkb&~(WQK^5>pSL7}ffE0Yjr0+$ zu`Vx}YjUJ%Hz5Dim~Xy{XN&24K3g2xD^3@n_>VBiwEk=SXXG~sX1(F0H;Ot3@E^Yh zJ%$1|_rqFyT<--g0p=P9MdAPl`I-)Ra{#KDV=$#5GAhX)Y(o1DI#;lR92L;mh z*8-=K(r{M;LVgCsKz>BSbk;M1-)G$v;=GuK3#NtOPX*8|1wrISr3v!vB2GpI6YR&B zV3m6FRC_<@N`pK$vI7Hrd?#$)=i8qcXVQgJDL^wjb-lUuERyVqwwvFA@KO1pZp%y>3+KjE(>Hy0)S! zhW%)-7ghJCd)-(#I5RY?4`$VVSl^#g3qF`N255m`-~O}>_DL6{`H#AAd%SE9sT5NS z9xYptAEP^w1}WFf6b;=V7w{#tXCQd-g1xh#tAm%i>*o^ufqhS_(gLXtpT26?@xpJW zl;*|}%EW5~^dxF=Aop6s6w#X1ZftuuX1n4PXv4>T~H2^L==3wN2ef#WAzC7 zQeD`-_Ux&e{8Syr+U$zp8u%pjC1~hpBn=We{TM6pk&A+`U3#v`< zv2tpjX$Bn^ly#nz8JS3YL6%yWMUEeNz97fsyylvqP}(uQYl&o7G!To5-A`vb0}LBLKMe`E+xU4uy}If;6SJ#I!6 zs0y+g2T=i01ZO^#_!b4KchD1O^o-t0=pBTPjCXdUb+e#{{H;MS<*gI}*8-uV*g9^; zZmus@v*0hFn`FW?gXWHa57)>xRcY;+8j_fc(|Yl*E*1*-?3+<)jNO~KiG_gd9TSPa z-j0au-iaRWgimwvi){RsP-r4xw(84GC@|h>EVAt-ieP84+gxncjQ?gI>vMZ+e_xru zD-jU$J9FgZ5h+f7FD5tN6^#O^2xnXKd}~qd&+7*&@)8GQpF42`H}+?hZd~ooOC5v7 zDBm<1h;n2X&+^y^_)y!}pSNidn+*fa5yn4zsCU+*b8^>CudnFd`~Fpf-EPkR`u4>r zkg>m727G^gx1*8Y&42#-YWr0GQ>T}5fPegXNnG$32e|W_YlS~6+vWNiVaeq{rjjV| zPi=xK8GpIFxjgj=B46nU#3t;f5bDKO=Wb14Ox($lOd%A4RS`a>wG9GXElG-A&K669 zfJsa=Gzdr(++1FexO)(_`hgKZqZifa{pVf3+BK>R_SzG*0K$Lvj>QkKNeiI;Ff$EO zpz}?Ty4+5>09*T*vg^G`lNo)pMt^1q-te#<1VWc%=Ouw-t`YB&COG-H7rrS(ud=}t zW`T_EZI1442EPzLnXF$n#^{1-4ZKThVECBN71V`a=NKm_g*g608`?&*lUMo3&b-MP z6xz2M=Ueta&Az4S{$v?MhZ6<_9~(0*<|{lI;GA0~`+D2V4W zGNAeN;?$Vz_>$4R_F7;eO0GFSb`S*guaWlvK?6RqAf;i+e*8*&y}JH_4E)8I@9OO0 z;!MLoE-pwMyhH-DM~DB;PUQbJQk7xl9LzVoKRP}-KEeKt5Jo2N~2m_M0%QwC#6bSniCA zO(eh~c93DF($AE8yA?uVHcQZfmW*Fy9e(y5P zk2#b-pAq6VVeucR_kn0YYQdiiZ3n^68W!Rd2v7;(thV2q zhhzIK