From 8d86c883aee1e2e48e10aa2caf26b68974e077df Mon Sep 17 00:00:00 2001 From: trunksbomb Date: Sun, 22 Mar 2026 14:18:55 -0400 Subject: [PATCH] initial commit for shared version repo of Batteries mod - currently supports 1.21.11 and 1.21.1 of NeoForge. --- .gitignore | 6261 +++++++++++++++++ LICENSE.txt | 24 + README.md | 117 + Screenshot1.png | Bin 0 -> 43380 bytes Screenshot2.png | Bin 0 -> 27218 bytes Screenshot3.png | Bin 0 -> 35774 bytes Screenshot4.png | Bin 0 -> 374272 bytes build.gradle | 16 + common/README.md | 8 + common/src/main/java/.gitkeep | 1 + .../trunksbomb/batteries/BatteriesConfig.java | 124 + .../batteries/PoweredItemEvents.java | 49 + .../batteries/block/BatteryBlockData.java | 48 + .../batteries/block/ChargerBlockData.java | 49 + .../command/BatteryDebugCommands.java | 250 + .../batteries/item/BatteryItemData.java | 97 + .../item/BatteryPoweredArmorItem.java | 86 + .../batteries/item/BatteryPoweredAxeItem.java | 11 + .../batteries/item/BatteryPoweredBowItem.java | 143 + .../batteries/item/BatteryPoweredHoeItem.java | 11 + .../item/BatteryPoweredMiningToolItem.java | 108 + .../item/BatteryPoweredPickaxeItem.java | 11 + .../item/BatteryPoweredShieldItem.java | 76 + .../item/BatteryPoweredShovelItem.java | 11 + .../item/BatteryPoweredSwordItem.java | 93 + .../batteries/item/EnergyTierHelper.java | 22 + .../batteries/item/PoweredEnergyHandler.java | 18 + .../batteries/item/PoweredItem.java | 86 + .../batteries/item/PoweredItemEnergy.java | 171 + .../batteries/shared/BatteryBlockData.java | 48 + .../batteries/shared/ChargerBlockData.java | 49 + common/src/main/resources/.gitkeep | 1 + .../batteries/blockstates/battery_block.json | 24 + .../assets/batteries/blockstates/charger.json | 109 + .../batteries/blockstates/coal_generator.json | 12 + .../batteries/blockstates/ender_charger.json | 109 + .../assets/batteries/items/battery.json | 6 + .../assets/batteries/items/battery1.json | 6 + .../assets/batteries/items/battery2.json | 6 + .../assets/batteries/items/battery3.json | 6 + .../assets/batteries/items/battery_axe.json | 6 + .../assets/batteries/items/battery_block.json | 6 + .../assets/batteries/items/battery_boots.json | 6 + .../assets/batteries/items/battery_bow.json | 6 + .../batteries/items/battery_chestplate.json | 6 + .../batteries/items/battery_creative.json | 6 + .../assets/batteries/items/battery_ender.json | 6 + .../batteries/items/battery_helmet.json | 6 + .../assets/batteries/items/battery_hoe.json | 6 + .../batteries/items/battery_leggings.json | 6 + .../batteries/items/battery_pickaxe.json | 6 + .../batteries/items/battery_shield.json | 6 + .../batteries/items/battery_shovel.json | 6 + .../assets/batteries/items/battery_sword.json | 6 + .../assets/batteries/items/charger.json | 6 + .../batteries/items/coal_generator.json | 6 + .../assets/batteries/items/ender_charger.json | 6 + .../assets/batteries/lang/en_us.json | 35 + .../models/block/battery_block_0.json | 12 + .../models/block/battery_block_1.json | 12 + .../models/block/battery_block_2.json | 12 + .../models/block/battery_block_3.json | 12 + .../models/block/battery_block_4.json | 12 + .../batteries/models/block/charger.json | 12 + .../block/charger/charger_advanced.json | 12 + .../models/block/charger/charger_basic.json | 12 + .../block/charger/charger_creative.json | 12 + .../models/block/charger/charger_elite.json | 12 + .../models/block/charger/charger_ender.json | 12 + .../models/block/charger/charger_none.json | 12 + .../block/charger/charger_ultimate.json | 12 + .../models/block/charger/ender_charger.json | 9 + .../block/charger/ender_charger_full.json | 7 + .../models/block/coal_generator.json | 12 + .../models/block/coal_generator_lit.json | 12 + .../batteries/models/block/ender_charger.json | 12 + .../assets/batteries/models/item/battery.json | 6 + .../batteries/models/item/battery1.json | 6 + .../batteries/models/item/battery2.json | 6 + .../batteries/models/item/battery3.json | 6 + .../batteries/models/item/battery_axe.json | 6 + .../batteries/models/item/battery_block.json | 3 + .../batteries/models/item/battery_boots.json | 6 + .../batteries/models/item/battery_bow.json | 6 + .../models/item/battery_chestplate.json | 6 + .../models/item/battery_creative.json | 6 + .../batteries/models/item/battery_ender.json | 6 + .../batteries/models/item/battery_helmet.json | 6 + .../batteries/models/item/battery_hoe.json | 6 + .../models/item/battery_leggings.json | 6 + .../models/item/battery_pickaxe.json | 6 + .../batteries/models/item/battery_shield.json | 6 + .../batteries/models/item/battery_shovel.json | 6 + .../batteries/models/item/battery_sword.json | 6 + .../assets/batteries/models/item/charger.json | 3 + .../batteries/models/item/coal_generator.json | 3 + .../batteries/models/item/ender_charger.json | 3 + .../batteries/textures/battery_block_gui.png | Bin 0 -> 756 bytes .../assets/batteries/textures/battery_gui.png | Bin 0 -> 5621 bytes .../textures/block/battery_block_bottom.png | Bin 0 -> 167 bytes .../textures/block/battery_block_front_0.png | Bin 0 -> 437 bytes .../textures/block/battery_block_front_1.png | Bin 0 -> 442 bytes .../textures/block/battery_block_front_2.png | Bin 0 -> 442 bytes .../textures/block/battery_block_front_3.png | Bin 0 -> 443 bytes .../textures/block/battery_block_front_4.png | Bin 0 -> 437 bytes .../textures/block/battery_block_side.png | Bin 0 -> 211 bytes .../textures/block/battery_block_top.png | Bin 0 -> 167 bytes .../block/charger/charger_advanced.png | Bin 0 -> 708 bytes .../textures/block/charger/charger_basic.png | Bin 0 -> 708 bytes .../block/charger/charger_creative.png | Bin 0 -> 718 bytes .../textures/block/charger/charger_elite.png | Bin 0 -> 687 bytes .../textures/block/charger/charger_ender.png | Bin 0 -> 697 bytes .../textures/block/charger/charger_front.png | Bin 0 -> 619 bytes .../textures/block/charger/charger_side.png | Bin 0 -> 389 bytes .../textures/block/charger/charger_top.png | Bin 0 -> 417 bytes .../block/charger/charger_ultimate.png | Bin 0 -> 685 bytes .../block/charger/ender_charger_top.png | Bin 0 -> 806 bytes .../batteries/textures/coal_generator_gui.png | Bin 0 -> 816 bytes .../batteries/textures/item/battery.png | Bin 0 -> 1480 bytes .../batteries/textures/item/battery1.png | Bin 0 -> 1473 bytes .../batteries/textures/item/battery2.png | Bin 0 -> 1467 bytes .../batteries/textures/item/battery3.png | Bin 0 -> 1467 bytes .../batteries/textures/item/battery_axe.png | Bin 0 -> 518 bytes .../batteries/textures/item/battery_boots.png | Bin 0 -> 506 bytes .../batteries/textures/item/battery_bow.png | Bin 0 -> 506 bytes .../textures/item/battery_chestplate.png | Bin 0 -> 520 bytes .../textures/item/battery_creative.png | Bin 0 -> 1470 bytes .../batteries/textures/item/battery_ender.png | Bin 0 -> 1585 bytes .../textures/item/battery_helmet.png | Bin 0 -> 499 bytes .../batteries/textures/item/battery_hoe.png | Bin 0 -> 516 bytes .../textures/item/battery_leggings.png | Bin 0 -> 508 bytes .../textures/item/battery_pickaxe.png | Bin 0 -> 519 bytes .../textures/item/battery_shield.png | Bin 0 -> 718 bytes .../textures/item/battery_shovel.png | Bin 0 -> 509 bytes .../batteries/textures/item/battery_sword.png | Bin 0 -> 532 bytes .../loot_table/blocks/battery_block.json | 4 + .../batteries/loot_table/blocks/charger.json | 19 + .../loot_table/blocks/ender_charger.json | 19 + .../recipe/powered_gear_upgrade.json | 3 + .../tags/block/mineable/pickaxe.json | 9 + gradle.properties | 47 + gradle/neoforge-module.gradle | 181 + gradle/wrapper/gradle-wrapper.jar | Bin 0 -> 45457 bytes gradle/wrapper/gradle-wrapper.properties | 7 + gradlew | 251 + gradlew.bat | 94 + neoforge-1.21.1/build.gradle | 25 + .../batteries/BatteriesClientNeoForge121.java | 21 + .../batteries/BatteriesNeoForge121.java | 249 + .../batteries/PoweredItemEvents.java | 49 + .../batteries/PoweredItemNeoForgeEvents.java | 49 + .../batteries/v21_1/block/BatteryBlock.java | 136 + .../batteries/v21_1/block/ChargerBlock.java | 165 + .../v21_1/block/CoalGeneratorBlock.java | 123 + .../entity/BatteryBlockEnergyStorage.java | 57 + .../block/entity/BatteryBlockEntity.java | 171 + .../BatteryBlockSidedEnergyStorage.java | 58 + .../block/entity/ChargerBlockEntity.java | 149 + .../block/entity/ChargerEnergyStorage.java | 60 + .../entity/CoalGeneratorBlockEntity.java | 280 + .../entity/CoalGeneratorEnergyStorage.java | 53 + .../entity/CoalGeneratorItemHandler.java | 87 + .../entity/GeneratorOutputEnergyStorage.java | 41 + .../v21_1/client/screen/BatteriesScreen.java | 237 + .../client/screen/BatteryBlockScreen.java | 147 + .../client/screen/CoalGeneratorScreen.java | 71 + .../integration/jei/BatteriesJeiPlugin.java | 76 + .../v21_1/item/BatteryBlockItem.java | 102 + .../item/BatteryBlockItemEnergyStorage.java | 31 + .../v21_1/item/BatteryEnergyHandler.java | 46 + .../batteries/v21_1/item/BatteryItem.java | 374 + .../v21_1/item/BatteryPoweredArmorItem.java | 86 + .../v21_1/item/BatteryPoweredAxeItem.java | 103 + .../v21_1/item/BatteryPoweredBowItem.java | 120 + .../v21_1/item/BatteryPoweredHoeItem.java | 103 + .../v21_1/item/BatteryPoweredPickaxeItem.java | 103 + .../v21_1/item/BatteryPoweredShieldItem.java | 76 + .../v21_1/item/BatteryPoweredShovelItem.java | 103 + .../v21_1/item/BatteryPoweredSwordItem.java | 92 + .../v21_1/item/PoweredEnergyHandler.java | 31 + .../batteries/v21_1/item/PoweredItem.java | 86 + .../v21_1/item/PoweredItemEnergy.java | 172 + .../batteries/v21_1/menu/BatteriesMenu.java | 253 + .../v21_1/menu/BatteryBlockMenu.java | 125 + .../v21_1/menu/CoalGeneratorMenu.java | 120 + .../recipe/BatteryBlockUpgradeRecipe.java | 106 + .../recipe/BatteryTierUpgradeRecipe.java | 92 + .../recipe/PoweredGearUpgradeRecipe.java | 161 + .../neoforge/transfer/ResourceHandler.java | 48 + .../transfer/TransferPreconditions.java | 25 + .../transfer/energy/EnergyHandler.java | 19 + .../transfer/energy/SimpleEnergyHandler.java | 90 + .../neoforge/transfer/item/ItemResource.java | 42 + .../transfer/transaction/SnapshotJournal.java | 36 + .../transfer/transaction/Transaction.java | 42 + .../transaction/TransactionContext.java | 4 + .../data/batteries/recipe/battery.json | 19 + .../data/batteries/recipe/battery1.json | 4 + .../data/batteries/recipe/battery2.json | 4 + .../data/batteries/recipe/battery3.json | 4 + .../data/batteries/recipe/battery_block.json | 18 + .../recipe/battery_block_upgrade.json | 4 + .../data/batteries/recipe/battery_ender.json | 4 + .../data/batteries/recipe/charger.json | 19 + .../data/batteries/recipe/coal_generator.json | 18 + .../data/batteries/recipe/ender_charger.json | 18 + .../templates/META-INF/neoforge.mods.toml | 32 + neoforge-1.21.11/build.gradle | 8 + .../com/trunksbomb/batteries/Batteries.java | 245 + .../trunksbomb/batteries/BatteriesClient.java | 32 + .../batteries/block/BatteryBlock.java | 135 + .../batteries/block/ChargerBlock.java | 166 + .../batteries/block/CoalGeneratorBlock.java | 121 + .../entity/BatteryBlockEnergyHandler.java | 17 + .../block/entity/BatteryBlockEntity.java | 191 + .../BatteryBlockSidedEnergyHandler.java | 54 + .../block/entity/ChargerBlockEntity.java | 172 + .../block/entity/ChargerEnergyHandler.java | 47 + .../entity/CoalGeneratorBlockEntity.java | 210 + .../entity/CoalGeneratorEnergyHandler.java | 17 + .../entity/CoalGeneratorItemHandler.java | 112 + .../entity/GeneratorOutputEnergyHandler.java | 32 + .../client/screen/BatteriesScreen.java | 263 + .../client/screen/BatteryBlockScreen.java | 150 + .../client/screen/CoalGeneratorScreen.java | 73 + .../integration/jei/BatteriesJeiPlugin.java | 80 + .../batteries/item/BatteryBlockItem.java | 70 + .../batteries/item/BatteryEnergyHandler.java | 45 + .../batteries/item/BatteryItem.java | 379 + .../batteries/menu/BatteriesMenu.java | 272 + .../batteries/menu/BatteryBlockMenu.java | 141 + .../batteries/menu/CoalGeneratorMenu.java | 123 + .../recipe/BatteryBlockUpgradeRecipe.java | 97 + .../recipe/BatteryTierUpgradeRecipe.java | 92 + .../recipe/PoweredGearUpgradeRecipe.java | 156 + .../data/batteries/recipe/battery.json | 19 + .../data/batteries/recipe/battery1.json | 4 + .../data/batteries/recipe/battery2.json | 4 + .../data/batteries/recipe/battery3.json | 4 + .../data/batteries/recipe/battery_block.json | 18 + .../recipe/battery_block_upgrade.json | 4 + .../data/batteries/recipe/battery_ender.json | 4 + .../data/batteries/recipe/charger.json | 19 + .../data/batteries/recipe/coal_generator.json | 18 + .../data/batteries/recipe/ender_charger.json | 18 + .../templates/META-INF/neoforge.mods.toml | 89 + settings.gradle | 15 + 247 files changed, 18315 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE.txt create mode 100644 README.md create mode 100644 Screenshot1.png create mode 100644 Screenshot2.png create mode 100644 Screenshot3.png create mode 100644 Screenshot4.png create mode 100644 build.gradle create mode 100644 common/README.md create mode 100644 common/src/main/java/.gitkeep create mode 100644 common/src/main/java/com/trunksbomb/batteries/BatteriesConfig.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/PoweredItemEvents.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/block/BatteryBlockData.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/block/ChargerBlockData.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/command/BatteryDebugCommands.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/BatteryItemData.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredArmorItem.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredAxeItem.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredBowItem.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredHoeItem.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredMiningToolItem.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredPickaxeItem.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredShieldItem.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredShovelItem.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredSwordItem.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/EnergyTierHelper.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/PoweredEnergyHandler.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/PoweredItem.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/item/PoweredItemEnergy.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/shared/BatteryBlockData.java create mode 100644 common/src/main/java/com/trunksbomb/batteries/shared/ChargerBlockData.java create mode 100644 common/src/main/resources/.gitkeep create mode 100644 common/src/main/resources/assets/batteries/blockstates/battery_block.json create mode 100644 common/src/main/resources/assets/batteries/blockstates/charger.json create mode 100644 common/src/main/resources/assets/batteries/blockstates/coal_generator.json create mode 100644 common/src/main/resources/assets/batteries/blockstates/ender_charger.json create mode 100644 common/src/main/resources/assets/batteries/items/battery.json create mode 100644 common/src/main/resources/assets/batteries/items/battery1.json create mode 100644 common/src/main/resources/assets/batteries/items/battery2.json create mode 100644 common/src/main/resources/assets/batteries/items/battery3.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_axe.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_block.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_boots.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_bow.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_chestplate.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_creative.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_ender.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_helmet.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_hoe.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_leggings.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_pickaxe.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_shield.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_shovel.json create mode 100644 common/src/main/resources/assets/batteries/items/battery_sword.json create mode 100644 common/src/main/resources/assets/batteries/items/charger.json create mode 100644 common/src/main/resources/assets/batteries/items/coal_generator.json create mode 100644 common/src/main/resources/assets/batteries/items/ender_charger.json create mode 100644 common/src/main/resources/assets/batteries/lang/en_us.json create mode 100644 common/src/main/resources/assets/batteries/models/block/battery_block_0.json create mode 100644 common/src/main/resources/assets/batteries/models/block/battery_block_1.json create mode 100644 common/src/main/resources/assets/batteries/models/block/battery_block_2.json create mode 100644 common/src/main/resources/assets/batteries/models/block/battery_block_3.json create mode 100644 common/src/main/resources/assets/batteries/models/block/battery_block_4.json create mode 100644 common/src/main/resources/assets/batteries/models/block/charger.json create mode 100644 common/src/main/resources/assets/batteries/models/block/charger/charger_advanced.json create mode 100644 common/src/main/resources/assets/batteries/models/block/charger/charger_basic.json create mode 100644 common/src/main/resources/assets/batteries/models/block/charger/charger_creative.json create mode 100644 common/src/main/resources/assets/batteries/models/block/charger/charger_elite.json create mode 100644 common/src/main/resources/assets/batteries/models/block/charger/charger_ender.json create mode 100644 common/src/main/resources/assets/batteries/models/block/charger/charger_none.json create mode 100644 common/src/main/resources/assets/batteries/models/block/charger/charger_ultimate.json create mode 100644 common/src/main/resources/assets/batteries/models/block/charger/ender_charger.json create mode 100644 common/src/main/resources/assets/batteries/models/block/charger/ender_charger_full.json create mode 100644 common/src/main/resources/assets/batteries/models/block/coal_generator.json create mode 100644 common/src/main/resources/assets/batteries/models/block/coal_generator_lit.json create mode 100644 common/src/main/resources/assets/batteries/models/block/ender_charger.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery1.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery2.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery3.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_axe.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_block.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_boots.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_bow.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_chestplate.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_creative.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_ender.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_helmet.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_hoe.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_leggings.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_pickaxe.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_shield.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_shovel.json create mode 100644 common/src/main/resources/assets/batteries/models/item/battery_sword.json create mode 100644 common/src/main/resources/assets/batteries/models/item/charger.json create mode 100644 common/src/main/resources/assets/batteries/models/item/coal_generator.json create mode 100644 common/src/main/resources/assets/batteries/models/item/ender_charger.json create mode 100644 common/src/main/resources/assets/batteries/textures/battery_block_gui.png create mode 100644 common/src/main/resources/assets/batteries/textures/battery_gui.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/battery_block_bottom.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/battery_block_front_0.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/battery_block_front_1.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/battery_block_front_2.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/battery_block_front_3.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/battery_block_front_4.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/battery_block_side.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/battery_block_top.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/charger/charger_advanced.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/charger/charger_basic.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/charger/charger_creative.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/charger/charger_elite.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/charger/charger_ender.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/charger/charger_front.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/charger/charger_side.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/charger/charger_top.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/charger/charger_ultimate.png create mode 100644 common/src/main/resources/assets/batteries/textures/block/charger/ender_charger_top.png create mode 100644 common/src/main/resources/assets/batteries/textures/coal_generator_gui.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery1.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery2.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery3.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_axe.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_boots.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_bow.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_chestplate.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_creative.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_ender.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_helmet.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_hoe.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_leggings.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_pickaxe.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_shield.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_shovel.png create mode 100644 common/src/main/resources/assets/batteries/textures/item/battery_sword.png create mode 100644 common/src/main/resources/data/batteries/loot_table/blocks/battery_block.json create mode 100644 common/src/main/resources/data/batteries/loot_table/blocks/charger.json create mode 100644 common/src/main/resources/data/batteries/loot_table/blocks/ender_charger.json create mode 100644 common/src/main/resources/data/batteries/recipe/powered_gear_upgrade.json create mode 100644 common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json create mode 100644 gradle.properties create mode 100644 gradle/neoforge-module.gradle create mode 100644 gradle/wrapper/gradle-wrapper.jar create mode 100644 gradle/wrapper/gradle-wrapper.properties create mode 100644 gradlew create mode 100644 gradlew.bat create mode 100644 neoforge-1.21.1/build.gradle create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/BatteriesClientNeoForge121.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/BatteriesNeoForge121.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/PoweredItemEvents.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/PoweredItemNeoForgeEvents.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/BatteryBlock.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/ChargerBlock.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/CoalGeneratorBlock.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockEnergyStorage.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockEntity.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockSidedEnergyStorage.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/ChargerBlockEntity.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/ChargerEnergyStorage.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorBlockEntity.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorEnergyStorage.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorItemHandler.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/GeneratorOutputEnergyStorage.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/BatteriesScreen.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/BatteryBlockScreen.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/CoalGeneratorScreen.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/integration/jei/BatteriesJeiPlugin.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryBlockItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryBlockItemEnergyStorage.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryEnergyHandler.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredArmorItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredAxeItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredBowItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredHoeItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredPickaxeItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredShieldItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredShovelItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredSwordItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredEnergyHandler.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredItem.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredItemEnergy.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/BatteriesMenu.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/BatteryBlockMenu.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/CoalGeneratorMenu.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/BatteryBlockUpgradeRecipe.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/BatteryTierUpgradeRecipe.java create mode 100644 neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/PoweredGearUpgradeRecipe.java create mode 100644 neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/ResourceHandler.java create mode 100644 neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/TransferPreconditions.java create mode 100644 neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/energy/EnergyHandler.java create mode 100644 neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/energy/SimpleEnergyHandler.java create mode 100644 neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/item/ItemResource.java create mode 100644 neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/SnapshotJournal.java create mode 100644 neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/Transaction.java create mode 100644 neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/TransactionContext.java create mode 100644 neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery.json create mode 100644 neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery1.json create mode 100644 neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery2.json create mode 100644 neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery3.json create mode 100644 neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_block.json create mode 100644 neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_block_upgrade.json create mode 100644 neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_ender.json create mode 100644 neoforge-1.21.1/src/main/resources/data/batteries/recipe/charger.json create mode 100644 neoforge-1.21.1/src/main/resources/data/batteries/recipe/coal_generator.json create mode 100644 neoforge-1.21.1/src/main/resources/data/batteries/recipe/ender_charger.json create mode 100644 neoforge-1.21.1/src/main/templates/META-INF/neoforge.mods.toml create mode 100644 neoforge-1.21.11/build.gradle create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/Batteries.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/BatteriesClient.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/BatteryBlock.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/ChargerBlock.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/CoalGeneratorBlock.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockEnergyHandler.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockEntity.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockSidedEnergyHandler.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/ChargerBlockEntity.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/ChargerEnergyHandler.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorBlockEntity.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorEnergyHandler.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorItemHandler.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/GeneratorOutputEnergyHandler.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/BatteriesScreen.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/BatteryBlockScreen.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/CoalGeneratorScreen.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/integration/jei/BatteriesJeiPlugin.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryBlockItem.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryEnergyHandler.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryItem.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/BatteriesMenu.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/BatteryBlockMenu.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/CoalGeneratorMenu.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/BatteryBlockUpgradeRecipe.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/BatteryTierUpgradeRecipe.java create mode 100644 neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/PoweredGearUpgradeRecipe.java create mode 100644 neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery.json create mode 100644 neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery1.json create mode 100644 neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery2.json create mode 100644 neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery3.json create mode 100644 neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_block.json create mode 100644 neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_block_upgrade.json create mode 100644 neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_ender.json create mode 100644 neoforge-1.21.11/src/main/resources/data/batteries/recipe/charger.json create mode 100644 neoforge-1.21.11/src/main/resources/data/batteries/recipe/coal_generator.json create mode 100644 neoforge-1.21.11/src/main/resources/data/batteries/recipe/ender_charger.json create mode 100644 neoforge-1.21.11/src/main/templates/META-INF/neoforge.mods.toml create mode 100644 settings.gradle diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..32ecfc1 --- /dev/null +++ b/.gitignore @@ -0,0 +1,6261 @@ +### Gradle ### +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/**/build/ + +### IntelliJ IDEA ### +.idea/ +*.iws +*.iml +*.ipr +out/ +!**/src/**/out/ + +.run/ + +### Eclipse ### +.apt_generated +.classpath +.eclipse/ +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/**/bin/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store + +### Minecraft Modding ### +run/ +!**/src/**/run/ +**/src/generated/**/.cache/ +repo/ +!**/src/**/repo/ +/.gradle-user-home/.tmp/gradle-worker-classpath5701992347698864387txt +/.gradle-user-home/.tmp/gradle-worker-classpath12918435474739279939txt +/.gradle-user-home/caches/9.2.1/cc-keystore/cache.properties +/.gradle-user-home/caches/9.2.1/cc-keystore/cc-keystore.lock +/.gradle-user-home/caches/9.2.1/cc-keystore/gradle.keystore +/.gradle-user-home/caches/9.2.1/dependencies-accessors/gc.properties +/.gradle-user-home/caches/9.2.1/file-changes/last-build.bin +/.gradle-user-home/caches/9.2.1/fileContent/fileContent.lock +/.gradle-user-home/caches/9.2.1/fileHashes/fileHashes.bin +/.gradle-user-home/caches/9.2.1/fileHashes/fileHashes.lock +/.gradle-user-home/caches/9.2.1/fileHashes/resourceHashesCache.bin +/.gradle-user-home/caches/9.2.1/groovy-dsl/2f6cd39228f47590243409cf911f218c/workspace/classes/settings/_BuildScript_.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/2f6cd39228f47590243409cf911f218c/workspace/instrumented/settings/_BuildScript_.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/2f6cd39228f47590243409cf911f218c/workspace/metadata/metadata.bin +/.gradle-user-home/caches/9.2.1/groovy-dsl/2f6cd39228f47590243409cf911f218c/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/groovy-dsl/2f6cd39228f47590243409cf911f218c/2f6cd39228f47590243409cf911f218c.lock +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/workspace/classes/cp_settings/_BuildScript_$_run_closure1$_closure3.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/workspace/classes/cp_settings/_BuildScript_$_run_closure1.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/workspace/classes/cp_settings/_BuildScript_$_run_closure2.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/workspace/classes/cp_settings/_BuildScript_.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/workspace/instrumented/cp_settings/_BuildScript_$_run_closure1$_closure3.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/workspace/instrumented/cp_settings/_BuildScript_$_run_closure1.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/workspace/instrumented/cp_settings/_BuildScript_$_run_closure2.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/workspace/instrumented/cp_settings/_BuildScript_.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/workspace/metadata/metadata.bin +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/groovy-dsl/04f3684acade5f1539af8c5839d17a9e/04f3684acade5f1539af8c5839d17a9e.lock +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure1.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure2.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure3.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure4.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure5$_closure12.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure5$_closure13$_closure15.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure5$_closure13$_closure16.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure5$_closure13$_closure17.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure5$_closure13$_closure18.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure5$_closure13$_closure19.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure5$_closure13.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure5$_closure14$_closure20.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure5$_closure14.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure5.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure6.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure7.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure8.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure9$_closure21$_closure23.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure9$_closure21.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure9$_closure22$_closure24.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure9$_closure22.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure9.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure10.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure11$_closure25.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_$_run_closure11.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/classes/proj/_BuildScript_.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure1.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure2.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure3.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure4.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure5$_closure12.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure5$_closure13$_closure15.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure5$_closure13$_closure16.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure5$_closure13$_closure17.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure5$_closure13$_closure18.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure5$_closure13$_closure19.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure5$_closure13.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure5$_closure14$_closure20.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure5$_closure14.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure5.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure6.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure7.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure8.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure9$_closure21$_closure23.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure9$_closure21.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure9$_closure22$_closure24.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure9$_closure22.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure9.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure10.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure11$_closure25.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_$_run_closure11.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/instrumented/proj/_BuildScript_.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/metadata/metadata.bin +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/groovy-dsl/bc707bd4c063e04555acdba6ff1b51f6/bc707bd4c063e04555acdba6ff1b51f6.lock +/.gradle-user-home/caches/9.2.1/groovy-dsl/e300db993d90bcce18e977db81aec313/workspace/classes/cp_proj/_BuildScript_$_run_closure1.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/e300db993d90bcce18e977db81aec313/workspace/classes/cp_proj/_BuildScript_.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/e300db993d90bcce18e977db81aec313/workspace/instrumented/cp_proj/_BuildScript_$_run_closure1.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/e300db993d90bcce18e977db81aec313/workspace/instrumented/cp_proj/_BuildScript_.class +/.gradle-user-home/caches/9.2.1/groovy-dsl/e300db993d90bcce18e977db81aec313/workspace/metadata/metadata.bin +/.gradle-user-home/caches/9.2.1/groovy-dsl/e300db993d90bcce18e977db81aec313/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/groovy-dsl/e300db993d90bcce18e977db81aec313/e300db993d90bcce18e977db81aec313.lock +/.gradle-user-home/caches/9.2.1/groovy-dsl/gc.properties +/.gradle-user-home/caches/9.2.1/javaCompile/classAnalysis.bin +/.gradle-user-home/caches/9.2.1/javaCompile/jarAnalysis.bin +/.gradle-user-home/caches/9.2.1/javaCompile/javaCompile.lock +/.gradle-user-home/caches/9.2.1/md-rule/md-rule.lock +/.gradle-user-home/caches/9.2.1/md-supplier/md-supplier.lock +/.gradle-user-home/caches/9.2.1/transforms/0acfb809d942c0f668cf42a30e46e031/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/0acfb809d942c0f668cf42a30e46e031/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/0acfb809d942c0f668cf42a30e46e031/0acfb809d942c0f668cf42a30e46e031.lock +/.gradle-user-home/caches/9.2.1/transforms/0f4e31ccbd961e2ad76ed498d2b6bf0c/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/0f4e31ccbd961e2ad76ed498d2b6bf0c/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/0f4e31ccbd961e2ad76ed498d2b6bf0c/0f4e31ccbd961e2ad76ed498d2b6bf0c.lock +/.gradle-user-home/caches/9.2.1/transforms/0f5c1b5a1250b15cb0cec3de1b4b2c55/workspace/transformed/analysis/instrumentation-dependencies.bin +/.gradle-user-home/caches/9.2.1/transforms/0f5c1b5a1250b15cb0cec3de1b4b2c55/workspace/transformed/analysis/instrumentation-hierarchy.bin +/.gradle-user-home/caches/9.2.1/transforms/0f5c1b5a1250b15cb0cec3de1b4b2c55/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/0f5c1b5a1250b15cb0cec3de1b4b2c55/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/0f5c1b5a1250b15cb0cec3de1b4b2c55/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/0f5c1b5a1250b15cb0cec3de1b4b2c55/0f5c1b5a1250b15cb0cec3de1b4b2c55.lock +/.gradle-user-home/caches/9.2.1/transforms/1ffe4710f33e62f544deee4162f54007/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/1ffe4710f33e62f544deee4162f54007/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/1ffe4710f33e62f544deee4162f54007/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/1ffe4710f33e62f544deee4162f54007/1ffe4710f33e62f544deee4162f54007.lock +/.gradle-user-home/caches/9.2.1/transforms/4ac041b67713e8da2327e101b27d95c5/workspace/transformed/instrumented/instrumented-gradle-idea-ext-1.2.jar +/.gradle-user-home/caches/9.2.1/transforms/4ac041b67713e8da2327e101b27d95c5/workspace/transformed/.gradle-agent-instrumented.marker +/.gradle-user-home/caches/9.2.1/transforms/4ac041b67713e8da2327e101b27d95c5/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/4ac041b67713e8da2327e101b27d95c5/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/4ac041b67713e8da2327e101b27d95c5/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/4ac041b67713e8da2327e101b27d95c5/4ac041b67713e8da2327e101b27d95c5.lock +/.gradle-user-home/caches/9.2.1/transforms/5a239b985815b238469d86c5ffd8eadd/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/5a239b985815b238469d86c5ffd8eadd/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/5a239b985815b238469d86c5ffd8eadd/5a239b985815b238469d86c5ffd8eadd.lock +/.gradle-user-home/caches/9.2.1/transforms/7cd8009c1fd84379fca464e6ec6d905f/workspace/transformed/instrumented/instrumented-moddev-gradle-2.0.140.jar +/.gradle-user-home/caches/9.2.1/transforms/7cd8009c1fd84379fca464e6ec6d905f/workspace/transformed/.gradle-agent-instrumented.marker +/.gradle-user-home/caches/9.2.1/transforms/7cd8009c1fd84379fca464e6ec6d905f/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/7cd8009c1fd84379fca464e6ec6d905f/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/7cd8009c1fd84379fca464e6ec6d905f/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/7cd8009c1fd84379fca464e6ec6d905f/7cd8009c1fd84379fca464e6ec6d905f.lock +/.gradle-user-home/caches/9.2.1/transforms/9c140c26413d77300558d4bd8003b2cf/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/9c140c26413d77300558d4bd8003b2cf/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/9c140c26413d77300558d4bd8003b2cf/9c140c26413d77300558d4bd8003b2cf.lock +/.gradle-user-home/caches/9.2.1/transforms/13d6dd4efb9005a0d13562c859208170/workspace/transformed/analysis/instrumentation-dependencies.bin +/.gradle-user-home/caches/9.2.1/transforms/13d6dd4efb9005a0d13562c859208170/workspace/transformed/analysis/instrumentation-hierarchy.bin +/.gradle-user-home/caches/9.2.1/transforms/13d6dd4efb9005a0d13562c859208170/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/13d6dd4efb9005a0d13562c859208170/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/13d6dd4efb9005a0d13562c859208170/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/13d6dd4efb9005a0d13562c859208170/13d6dd4efb9005a0d13562c859208170.lock +/.gradle-user-home/caches/9.2.1/transforms/060ac71561734a154ee4341556e5427e/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/060ac71561734a154ee4341556e5427e/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/060ac71561734a154ee4341556e5427e/060ac71561734a154ee4341556e5427e.lock +/.gradle-user-home/caches/9.2.1/transforms/66eaf1787ecfa8936cf1a26128aa5a68/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/66eaf1787ecfa8936cf1a26128aa5a68/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/66eaf1787ecfa8936cf1a26128aa5a68/66eaf1787ecfa8936cf1a26128aa5a68.lock +/.gradle-user-home/caches/9.2.1/transforms/76eef8cb784ff24e24a8a9d3e9a7f736/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/76eef8cb784ff24e24a8a9d3e9a7f736/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/76eef8cb784ff24e24a8a9d3e9a7f736/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/76eef8cb784ff24e24a8a9d3e9a7f736/76eef8cb784ff24e24a8a9d3e9a7f736.lock +/.gradle-user-home/caches/9.2.1/transforms/79e35cd6a8ed979b6448ed274661d627/workspace/transformed/instrumented/instrumented-foojay-resolver-1.0.0.jar +/.gradle-user-home/caches/9.2.1/transforms/79e35cd6a8ed979b6448ed274661d627/workspace/transformed/.gradle-agent-instrumented.marker +/.gradle-user-home/caches/9.2.1/transforms/79e35cd6a8ed979b6448ed274661d627/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/79e35cd6a8ed979b6448ed274661d627/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/79e35cd6a8ed979b6448ed274661d627/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/79e35cd6a8ed979b6448ed274661d627/79e35cd6a8ed979b6448ed274661d627.lock +/.gradle-user-home/caches/9.2.1/transforms/88d728ca6077c871651e77b20e3cc76f/workspace/transformed/analysis/instrumentation-dependencies.bin +/.gradle-user-home/caches/9.2.1/transforms/88d728ca6077c871651e77b20e3cc76f/workspace/transformed/analysis/instrumentation-hierarchy.bin +/.gradle-user-home/caches/9.2.1/transforms/88d728ca6077c871651e77b20e3cc76f/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/88d728ca6077c871651e77b20e3cc76f/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/88d728ca6077c871651e77b20e3cc76f/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/88d728ca6077c871651e77b20e3cc76f/88d728ca6077c871651e77b20e3cc76f.lock +/.gradle-user-home/caches/9.2.1/transforms/333dfc0aa7e2e40c2d970738eca0dcc0/workspace/transformed/merge/instrumentation-dependencies.bin +/.gradle-user-home/caches/9.2.1/transforms/333dfc0aa7e2e40c2d970738eca0dcc0/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/333dfc0aa7e2e40c2d970738eca0dcc0/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/333dfc0aa7e2e40c2d970738eca0dcc0/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/333dfc0aa7e2e40c2d970738eca0dcc0/333dfc0aa7e2e40c2d970738eca0dcc0.lock +/.gradle-user-home/caches/9.2.1/transforms/11344a6386ba70a07f0a9c9c9da1aa2f/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/11344a6386ba70a07f0a9c9c9da1aa2f/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/11344a6386ba70a07f0a9c9c9da1aa2f/11344a6386ba70a07f0a9c9c9da1aa2f.lock +/.gradle-user-home/caches/9.2.1/transforms/792359db7f8d71eb629aeadc9e7cdeda/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/792359db7f8d71eb629aeadc9e7cdeda/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/792359db7f8d71eb629aeadc9e7cdeda/792359db7f8d71eb629aeadc9e7cdeda.lock +/.gradle-user-home/caches/9.2.1/transforms/3388772b21ef99d33236e9351be0482a/workspace/transformed/instrumented/instrumented-gson-2.10.1.jar +/.gradle-user-home/caches/9.2.1/transforms/3388772b21ef99d33236e9351be0482a/workspace/transformed/.gradle-agent-instrumented.marker +/.gradle-user-home/caches/9.2.1/transforms/3388772b21ef99d33236e9351be0482a/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/3388772b21ef99d33236e9351be0482a/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/3388772b21ef99d33236e9351be0482a/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/3388772b21ef99d33236e9351be0482a/3388772b21ef99d33236e9351be0482a.lock +/.gradle-user-home/caches/9.2.1/transforms/b9700d54788408a06d5259c92812f007/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/b9700d54788408a06d5259c92812f007/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/b9700d54788408a06d5259c92812f007/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/b9700d54788408a06d5259c92812f007/b9700d54788408a06d5259c92812f007.lock +/.gradle-user-home/caches/9.2.1/transforms/ba63d1d22beeedc361a77d07450cfd8a/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/ba63d1d22beeedc361a77d07450cfd8a/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/ba63d1d22beeedc361a77d07450cfd8a/ba63d1d22beeedc361a77d07450cfd8a.lock +/.gradle-user-home/caches/9.2.1/transforms/ced6aa6dba746d41ba44912370799021/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/ced6aa6dba746d41ba44912370799021/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/ced6aa6dba746d41ba44912370799021/ced6aa6dba746d41ba44912370799021.lock +/.gradle-user-home/caches/9.2.1/transforms/d5200b291b81b85b5356abc55c6ec5a7/workspace/transformed/analysis/instrumentation-dependencies.bin +/.gradle-user-home/caches/9.2.1/transforms/d5200b291b81b85b5356abc55c6ec5a7/workspace/transformed/analysis/instrumentation-hierarchy.bin +/.gradle-user-home/caches/9.2.1/transforms/d5200b291b81b85b5356abc55c6ec5a7/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/d5200b291b81b85b5356abc55c6ec5a7/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/d5200b291b81b85b5356abc55c6ec5a7/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/d5200b291b81b85b5356abc55c6ec5a7/d5200b291b81b85b5356abc55c6ec5a7.lock +/.gradle-user-home/caches/9.2.1/transforms/e4ebbb06f8329c730f51996dfadef137/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/e4ebbb06f8329c730f51996dfadef137/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/e4ebbb06f8329c730f51996dfadef137/e4ebbb06f8329c730f51996dfadef137.lock +/.gradle-user-home/caches/9.2.1/transforms/ed3bdbd4e94112db28a089f1d648fabd/workspace/transformed/merge/instrumentation-dependencies.bin +/.gradle-user-home/caches/9.2.1/transforms/ed3bdbd4e94112db28a089f1d648fabd/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/ed3bdbd4e94112db28a089f1d648fabd/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/ed3bdbd4e94112db28a089f1d648fabd/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/ed3bdbd4e94112db28a089f1d648fabd/ed3bdbd4e94112db28a089f1d648fabd.lock +/.gradle-user-home/caches/9.2.1/transforms/ef1f3fdb6a615c95afd14eb2cd65605e/workspace/transformed/merge/instrumentation-dependencies.bin +/.gradle-user-home/caches/9.2.1/transforms/ef1f3fdb6a615c95afd14eb2cd65605e/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/ef1f3fdb6a615c95afd14eb2cd65605e/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/ef1f3fdb6a615c95afd14eb2cd65605e/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/ef1f3fdb6a615c95afd14eb2cd65605e/ef1f3fdb6a615c95afd14eb2cd65605e.lock +/.gradle-user-home/caches/9.2.1/transforms/f8aa54013db27995c26dca56d87b5d8f/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/f8aa54013db27995c26dca56d87b5d8f/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/f8aa54013db27995c26dca56d87b5d8f/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/f8aa54013db27995c26dca56d87b5d8f/f8aa54013db27995c26dca56d87b5d8f.lock +/.gradle-user-home/caches/9.2.1/transforms/f93f1941b209081feebe74adbf38f691/workspace/transformed/merge/instrumentation-dependencies.bin +/.gradle-user-home/caches/9.2.1/transforms/f93f1941b209081feebe74adbf38f691/workspace/transformed/.gradle-instrumented-classpath.marker +/.gradle-user-home/caches/9.2.1/transforms/f93f1941b209081feebe74adbf38f691/workspace/metadata.bin +/.gradle-user-home/caches/9.2.1/transforms/f93f1941b209081feebe74adbf38f691/workspace/results.bin +/.gradle-user-home/caches/9.2.1/transforms/f93f1941b209081feebe74adbf38f691/f93f1941b209081feebe74adbf38f691.lock +/.gradle-user-home/caches/9.2.1/transforms/gc.properties +/.gradle-user-home/caches/9.2.1/workerMain/cache.properties +/.gradle-user-home/caches/9.2.1/workerMain/gradle-worker.jar +/.gradle-user-home/caches/9.2.1/workerMain/workerMain.lock +/.gradle-user-home/caches/9.2.1/gc.properties +/.gradle-user-home/caches/build-cache-1/9e3e3176c7310c4b55ce40cc4387e94c +/.gradle-user-home/caches/build-cache-1/9ed9981af4a413410bd461b0727ea92e +/.gradle-user-home/caches/build-cache-1/12a4969edc8567c23693a2160eafeeb2 +/.gradle-user-home/caches/build-cache-1/9806356dc39e8c3dc69fbdc8af53229b +/.gradle-user-home/caches/build-cache-1/build-cache-1.lock +/.gradle-user-home/caches/build-cache-1/d9950a050464fccaff6762acc05c2ecd +/.gradle-user-home/caches/build-cache-1/gc.properties +/.gradle-user-home/caches/jars-9/4d5c9319781a405c98b0377d4491a3f7/cp_settings/settings_44et8n8jgfioiquel3dxmoxlz$_run_closure1$_closure3.class +/.gradle-user-home/caches/jars-9/4d5c9319781a405c98b0377d4491a3f7/cp_settings/settings_44et8n8jgfioiquel3dxmoxlz$_run_closure1.class +/.gradle-user-home/caches/jars-9/4d5c9319781a405c98b0377d4491a3f7/cp_settings/settings_44et8n8jgfioiquel3dxmoxlz$_run_closure2.class +/.gradle-user-home/caches/jars-9/4d5c9319781a405c98b0377d4491a3f7/cp_settings/settings_44et8n8jgfioiquel3dxmoxlz.class +/.gradle-user-home/caches/jars-9/4d5c9319781a405c98b0377d4491a3f7/cp_settings.lock.lock +/.gradle-user-home/caches/jars-9/4d5c9319781a405c98b0377d4491a3f7/cp_settings.receipt +/.gradle-user-home/caches/jars-9/40f0ebd6d542f345352cae68bd90e7f0/cp_proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure1.class +/.gradle-user-home/caches/jars-9/40f0ebd6d542f345352cae68bd90e7f0/cp_proj/build_6sm6ik1wj9aidnk28zztco8v5.class +/.gradle-user-home/caches/jars-9/40f0ebd6d542f345352cae68bd90e7f0/cp_proj.lock.lock +/.gradle-user-home/caches/jars-9/40f0ebd6d542f345352cae68bd90e7f0/cp_proj.receipt +/.gradle-user-home/caches/jars-9/b93a9f726ef43713d25e42e0f3e2d4a3/settings/settings_44et8n8jgfioiquel3dxmoxlz.class +/.gradle-user-home/caches/jars-9/b93a9f726ef43713d25e42e0f3e2d4a3/settings.lock.lock +/.gradle-user-home/caches/jars-9/b93a9f726ef43713d25e42e0f3e2d4a3/settings.receipt +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure1.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure2.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure3.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure4.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure5$_closure12.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure5$_closure13$_closure15.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure5$_closure13$_closure16.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure5$_closure13$_closure17.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure5$_closure13$_closure18.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure5$_closure13$_closure19.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure5$_closure13.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure5$_closure14$_closure20.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure5$_closure14.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure5.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure6.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure7.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure8.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure9$_closure21$_closure23.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure9$_closure21.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure9$_closure22$_closure24.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure9$_closure22.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure9.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure10.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure11$_closure25.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5$_run_closure11.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj/build_6sm6ik1wj9aidnk28zztco8v5.class +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj.lock.lock +/.gradle-user-home/caches/jars-9/bdba2b348a56fc19b9f4c7240784564a/proj.receipt +/.gradle-user-home/caches/jars-9/gc.properties +/.gradle-user-home/caches/jars-9/jars-9.lock +/.gradle-user-home/caches/journal-1/file-access.bin +/.gradle-user-home/caches/journal-1/file-access.properties +/.gradle-user-home/caches/journal-1/journal-1.lock +/.gradle-user-home/caches/modules-2/files-2.1/at.yawk.lz4/lz4-java/1.8.1/1f30a180ee04ccd53339a716aec13cae60a013b5/lz4-java-1.8.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/at.yawk.lz4/lz4-java/1.8.1/2aa74327571ed81e7f3132c940fd895c25eb6eb6/lz4-java-1.8.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/ca.weblite/java-objc-bridge/1.1/1227f9e0666314f9de41477e3ec277e542ed7f7b/java-objc-bridge-1.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/ca.weblite/java-objc-bridge/1.1/d70ed2579b90376b79946d37e504a8e9db5e547a/java-objc-bridge-1.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.azure/azure-client-sdk-parent/1.7.0/564e8c55cea5b77ab4d9c5055fde4351d7702857/azure-client-sdk-parent-1.7.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.azure/azure-json/1.4.0/4c8b6922e3eabee365a00402455470011c38efca/azure-json-1.4.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.azure/azure-json/1.4.0/fcc1d354dbc3e0300e5276b1bf124d0247799cd8/azure-json-1.4.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.azure/azure-sdk-parent/1.6.0/73165acbbb8facea16d837bbfbdecf452c3d29de/azure-sdk-parent-1.6.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.electronwill.night-config/core/3.8.3/16cd19a45fb8bd2a7d9b66ee2a3599300772b4ba/core-3.8.3.module +/.gradle-user-home/caches/modules-2/files-2.1/com.electronwill.night-config/core/3.8.3/669b14d2d0425d373e5e5a7aaa9810056a5ae6f1/core-3.8.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.electronwill.night-config/core/3.8.3/b442a95f09e349927f5a945ecb594455870fcf4f/core-3.8.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.electronwill.night-config/toml/3.8.3/90b2fd6efcb4a7d5b9810cf78f9d824994d717f2/toml-3.8.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.electronwill.night-config/toml/3.8.3/8905d6245471adec3be3b991f6b1c1ccbb56c0aa/toml-3.8.3.module +/.gradle-user-home/caches/modules-2/files-2.1/com.electronwill.night-config/toml/3.8.3/294648522699a8242824e77b51094c00b3686f3/toml-3.8.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.fasterxml/oss-parent/56/355a98a7c92b8dd838bf0b32b04fd991bec14570/oss-parent-56.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.fasterxml/oss-parent/68/f19ecade22562dcd5a3520a35d60225008c16a29/oss-parent-68.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.fasterxml.jackson/jackson-bom/2.16.0/501ecc374ca3d2cab2e546a680aeb387efc3a6e9/jackson-bom-2.16.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.fasterxml.jackson/jackson-bom/2.19.1/849979babb3cff0dc2a47cf13d43e379d17b4839/jackson-bom-2.19.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.fasterxml.jackson/jackson-parent/2.16/712d723d9a99b84ce364361e155857377c16de96/jackson-parent-2.16.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.fasterxml.jackson/jackson-parent/2.19.2/c3dda446ba6d44f47123d670847d8b005857bd45/jackson-parent-2.19.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.github.oshi/oshi-core/6.9.0/9f7d753d1ca13d1f5e6dffb7c38b40d7aed99d73/oshi-core-6.9.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.github.oshi/oshi-core/6.9.0/3224870731860cfcd7744581a05b559e94291e7/oshi-core-6.9.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.github.oshi/oshi-parent/6.9.0/3a5793b80f250fb081a605106f18b1085fa4b39b/oshi-parent-6.9.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.2/8d93cdf4d84d7e1de736df607945c6df0730a10f/jsr305-3.0.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.findbugs/jsr305/3.0.2/25ea2e8b0c338a877313bd4672d3fe056ea78f0d/jsr305-3.0.2.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.gson/gson/2.8.9/e40b03e4cc2b52efb19af75c07596e9d15a52d82/gson-2.8.9.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.gson/gson/2.10/3c9221549841dd251d2f80ffe3bfd60c663b5af/gson-2.10.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.gson/gson/2.10.1/b3add478d4382b78ea20b1671390a858002feb6c/gson-2.10.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.gson/gson/2.10.1/ce159faf33c1e665e1f3a785a5d678a2b20151bc/gson-2.10.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.gson/gson/2.13.2/48b8230771e573b54ce6e867a9001e75977fe78e/gson-2.13.2.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.gson/gson/2.13.2/bf590b4d5dbf4eab3e0654e6db5de8e70947edb3/gson-2.13.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.gson/gson-parent/2.8.9/c3fdad2fa3239f928ad9c77a9f9c9379f6bde7a/gson-parent-2.8.9.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.gson/gson-parent/2.10/ed3f42b8b29f94e917769344aaeeb78639ecbd0b/gson-parent-2.10.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.gson/gson-parent/2.10.1/67ea6db077285dc50a9b0a627763764f0ef4a770/gson-parent-2.10.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.code.gson/gson-parent/2.13.2/70cfa0547114b16538e878d0066738af1fc57c5d/gson-parent-2.13.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.41.0/3035cf6cd44cac9ae600cabb1fe4a494d9c264e4/error_prone_annotations-2.41.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.errorprone/error_prone_annotations/2.41.0/4381275efdef6ddfae38f002c31e84cd001c97f0/error_prone_annotations-2.41.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.google.errorprone/error_prone_parent/2.41.0/12c9e82af5e84745618145ed014afd3944d06c28/error_prone_parent-2.41.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.3/12732d7aa78945d26029ab0dd54d5f824b6fe740/failureaccess-1.0.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/failureaccess/1.0.3/aeaffd00d57023a2c947393ed251f0354f0985fc/failureaccess-1.0.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/guava/31.1-jre/3a6ac93765fbbc416179f7c7127b9ddddbf38d9/guava-31.1-jre.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/guava/33.5.0-jre/1bc4fe20066d7788787a2004986afbc6d1afd2ea/guava-33.5.0-jre.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/guava/33.5.0-jre/8699de25f2f979108d6c1b804a7ba38cda1116bc/guava-33.5.0-jre.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/guava-parent/26.0-android/a2c0df489614352b7e8e503e274bd1dee5c42a64/guava-parent-26.0-android.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/guava-parent/31.1-jre/99dae234b84eeaafa621086b6fff3530fb7e45d3/guava-parent-31.1-jre.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/guava-parent/33.4.0-android/b58bc4ee7ad508a20cc41c776e8eef8fa78dfa5d/guava-parent-33.4.0-android.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/guava-parent/33.5.0-jre/c911af9ef688aeb809f86a864741cd91df184092/guava-parent-33.5.0-jre.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/1b77ba79f9b2b7dfd4e15ea7bb0d568d5eb9cb8d/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/b421526c5f297295adef1c886e5246c39d4ac629/listenablefuture-9999.0-empty-to-avoid-conflict-with-guava.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/3.1/9b801c234cf6d618dc7bd025bbb0dc833c4c529e/j2objc-annotations-3.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.google.j2objc/j2objc-annotations/3.1/a892ca9507839bbdb900d64310ac98256cab992f/j2objc-annotations-3.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.ibm.icu/icu4j/77.1/6f2515903d0cb5db86869f987c2e5b4983d10f99/icu4j-77.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.ibm.icu/icu4j/77.1/38693cf0b1d7362a8b726af74dc06026a7c23809/icu4j-77.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.microsoft.azure/msal4j/1.23.1/6c722b514873b24a4e1ce9c22dca36ea3c22bdbe/msal4j-1.23.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.microsoft.azure/msal4j/1.23.1/b29df216475eed99d805433f7c499643a6a774dc/msal4j-1.23.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/authlib/7.0.61/23b7b2254143f73b6049a467b4dda574467a0b2f/authlib-7.0.61.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/authlib/7.0.61/a819ffa3a82e71c056fdd08fef43774bcedbf441/authlib-7.0.61.module +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/authlib/7.0.61/efee1e6b54e863108576eb3b3ae71144626aaefc/authlib-7.0.61.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/blocklist/1.0.10/5c685c5ffa94c4cd39496c7184c1d122e515ecef/blocklist-1.0.10.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/blocklist/1.0.10/2968969bc06d2febc67c7ff9c5d3d72c96243e56/blocklist-1.0.10.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/brigadier/1.3.10/5daf030d1dd598eed6b76a88da55482d197ef3af/brigadier-1.3.10.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/brigadier/1.3.10/d15b53a14cf20fdcaa98f731af5dda654452c010/brigadier-1.3.10.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/datafixerupper/9.0.19/4e91f9712fa1e83231d1501625381b0210a977da/datafixerupper-9.0.19.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/datafixerupper/9.0.19/41540db4445af5484239fba0725d42ef84e35027/datafixerupper-9.0.19.module +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/datafixerupper/9.0.19/fed05970144c86508616e02d69a951e52756475a/datafixerupper-9.0.19.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/jtracy/1.0.37/6ff6d710fd4ffd470f2799653fab57e27fed0c9d/jtracy-1.0.37-natives-windows.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/jtracy/1.0.37/1356c53679e6b7c464314f1c00cb929ac5d3fa10/jtracy-1.0.37.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/jtracy/1.0.37/348362e77c918ecf802bc52b266708c28d2f422a/jtracy-1.0.37.module +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/jtracy/1.0.37/a3fb649b2e2b2288d2978f0b0bc3d83f62809d1e/jtracy-1.0.37.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/logging/1.1.1/4099c41825bfb0d13ee271889c8209fef06e4c4c/logging-1.1.1.module +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/logging/1.1.1/fc20de58165fb93c5735742a496d929bb9f3dc58/logging-1.1.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/logging/1.6.11/89983e3ef3a6d8e0d8b8f3adf975f07b878a5dd2/logging-1.6.11.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/logging/1.6.11/ca4dead0da46349414e649aaf9159ebf76bdfeb1/logging-1.6.11.module +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/logging/1.6.11/fd147240733010c158249d986323f9ef98977fe/logging-1.6.11.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/patchy/2.2.10/21587e98bbbebba1616bf9ebec792100bc84cde/patchy-2.2.10.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/patchy/2.2.10/da05971b07cbb379d002cf7eaec6a2048211fefc/patchy-2.2.10.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/text2speech/1.18.11/2dffac936639e8d325a229347b1091f84ba5b6fd/text2speech-1.18.11.module +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/text2speech/1.18.11/144902bc18ae69bee871816b5fd8c5374266a263/text2speech-1.18.11.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.mojang/text2speech/1.18.11/e853a12cdd6ba4f4836e8f4bf3b37844a13482b6/text2speech-1.18.11.jar +/.gradle-user-home/caches/modules-2/files-2.1/com.nothome/javaxdelta/2.0.1/96075165da0424e4e3c268f647cc9d618c268a5a/javaxdelta-2.0.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/com.nothome/javaxdelta/2.0.1/d4f5d077f1b15c6f67595015d69572303ad3f66d/javaxdelta-2.0.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/commons-codec/commons-codec/1.19.0/8c0dbe3ae883fceda9b50a6c76e745e548073388/commons-codec-1.19.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/commons-codec/commons-codec/1.19.0/1558aa689bc8fbb7f0214e59e891843e22ec5bf1/commons-codec-1.19.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/commons-io/commons-io/2.11.0/3fe5d6ebed1afb72c3e8c166dba0b0e00fdd1f16/commons-io-2.11.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/commons-io/commons-io/2.20.0/5d26f9d6031e7a0fc1a05f8de8e725688905a3f1/commons-io-2.20.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/commons-io/commons-io/2.20.0/36f3474daec2849c149e877614e7f979b2082cd2/commons-io-2.20.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/de.siegmar/fastcsv/2.0.0/32b6d716348142e6bd24057b7d62c3bc2f9c0a5e/fastcsv-2.0.0.module +/.gradle-user-home/caches/modules-2/files-2.1/de.siegmar/fastcsv/2.0.0/b615f26c03edeac966618b93b9ee4f4eed50aae1/fastcsv-2.0.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/de.siegmar/fastcsv/2.0.0/f218b2a45fc9fd2cdfb79d9fd89a58e993bc09c1/fastcsv-2.0.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/gradle.plugin.org.jetbrains.gradle.plugin.idea-ext/gradle-idea-ext/1.2/4c9d8f062ed3f993b827c9f71874610c22396b82/gradle-idea-ext-1.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/gradle.plugin.org.jetbrains.gradle.plugin.idea-ext/gradle-idea-ext/1.2/bba74ff0295a7e94b6332b06e1b8d8a81e5b7273/gradle-idea-ext-1.2.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.codechicken/DiffPatch/2.0.0.36/5b32f9baa0c0371c0dc80a3b88794960af0c6b44/DiffPatch-2.0.0.36-all.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.codechicken/DiffPatch/2.0.0.36/7c2b47706e4cd455b2d4de69ba736df6caf0c353/DiffPatch-2.0.0.36.module +/.gradle-user-home/caches/modules-2/files-2.1/io.codechicken/DiffPatch/2.0.0.36/bbf529a019807a76a7a401a344e3b0ae9d4e7ae0/DiffPatch-2.0.0.36.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.fabric8/kubernetes-client-bom/5.12.4/e79360b6c85f975006571e2251496c9677a15d19/kubernetes-client-bom-5.12.4.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.github.llamalad7/mixinextras-neoforge/0.5.0/31f4e6bb865a0cc04b1062b60be3eaae184f2282/mixinextras-neoforge-0.5.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.github.llamalad7/mixinextras-neoforge/0.5.0/d734b83ce6542bb70ea31755c1595b88992dbe65/mixinextras-neoforge-0.5.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-bom/4.1.104.Final/885c2138e987581f4769b4aed0c37c709e6c2766/netty-bom-4.1.104.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-buffer/4.2.7.Final/5f1b0c56abf0b54fcf2e26562bb9a8c92d2fa029/netty-buffer-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-buffer/4.2.7.Final/5555ff561643bf2f8430fb57c24403c0efe15994/netty-buffer-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-codec-base/4.2.7.Final/163dcbb4b93b176c657d03fcf5a0358f4daee881/netty-codec-base-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-codec-base/4.2.7.Final/915e381ebabcf115f1c7ff7032d55c48afb50210/netty-codec-base-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-codec-compression/4.2.7.Final/9bc68b8e3744d3df57298135249b36258f37fbe5/netty-codec-compression-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-codec-compression/4.2.7.Final/572341bc1ca90fd9d6e47f1d2694aab5258566e9/netty-codec-compression-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-codec-http/4.2.7.Final/88faef7a8a21c27c95d8865c058b2b82d5883c58/netty-codec-http-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-codec-http/4.2.7.Final/b734c108854099c421fd94d92d9f865e4d4da853/netty-codec-http-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-common/4.2.7.Final/11aa30df26af4fca3239ac1917f303a280f301e1/netty-common-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-common/4.2.7.Final/840386ebad39a6188e39dd580e28081beb30b66a/netty-common-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-handler/4.2.7.Final/7ad8a1f851e2e6fe93cdd091871fda2b81c03b5b/netty-handler-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-handler/4.2.7.Final/c69b85e0f02e041c606aaa80257da7ccd9f77ce4/netty-handler-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-parent/4.2.7.Final/59a720cbc57a3be97930074400c90c999a1212dd/netty-parent-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-resolver/4.2.7.Final/5f3e5ef8de03992cd4fb46960dc0085ec1a12a12/netty-resolver-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-resolver/4.2.7.Final/be3e711d505b3b6f14820185ba83eb978d3331a6/netty-resolver-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-transport/4.2.7.Final/2efb32d4e6044ee0e76f29080f73a19067e82581/netty-transport-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-transport/4.2.7.Final/83ea548981d0d8c4a98027cc1a6f9624f902e142/netty-transport-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-transport-classes-epoll/4.2.7.Final/1075c09f48a78eef9d819fbfd9096b903fdd362a/netty-transport-classes-epoll-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-transport-classes-epoll/4.2.7.Final/9176b95142784b413c91d5182c4b66ac99773797/netty-transport-classes-epoll-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-transport-classes-kqueue/4.2.7.Final/6ab53280e47b39eb4506826df038e845cf6942b4/netty-transport-classes-kqueue-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-transport-classes-kqueue/4.2.7.Final/bdec7c23c75caabd848426d073c09568e8d5f94e/netty-transport-classes-kqueue-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-transport-native-unix-common/4.2.7.Final/85387a36caca4917c1291326d69e7b8a41f00c5f/netty-transport-native-unix-common-4.2.7.Final.pom +/.gradle-user-home/caches/modules-2/files-2.1/io.netty/netty-transport-native-unix-common/4.2.7.Final/89953f04259ea7502cffb313630dd51e00e60669/netty-transport-native-unix-common-4.2.7.Final.jar +/.gradle-user-home/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/8.3.1/ea7892eafbdb968ea53599678f2c2596267a4c92/fastutil-8.3.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/8.3.1/ff33b340d60b81f4c1015fa8008bb30ff0a0d53b/fastutil-8.3.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/8.5.18/a6cff377eecc19c2037bf31568a6d7106b50ba1f/fastutil-8.5.18.jar +/.gradle-user-home/caches/modules-2/files-2.1/it.unimi.dsi/fastutil/8.5.18/c50fddfccc49c1d874cb8aeb6dfad7622f522e25/fastutil-8.5.18.pom +/.gradle-user-home/caches/modules-2/files-2.1/jakarta.platform/jakarta.jakartaee-bom/9.1.0/39a915229cabfe6bba43e0566b1a74bf8fe3eefe/jakarta.jakartaee-bom-9.1.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/jakarta.platform/jakartaee-api-parent/9.1.0/e5020a636b3c0cc4c5dd110e17213aaded1d6895/jakartaee-api-parent-9.1.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.covers1624/Quack/0.4.10.101/970b7f652b5c40c893ef9a4bf13a97a291587d74/Quack-0.4.10.101.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.covers1624/Quack/0.4.10.101/bc4b16e52f356f92c5dc77bf9ae905cdee44d6b1/Quack-0.4.10.101.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.16.5+mixin.0.8.7/80fc3a9f592673cea87f4cd702f87991c6c9fe4d/sponge-mixin-0.16.5+mixin.0.8.7.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.fabricmc/sponge-mixin/0.16.5+mixin.0.8.7/bad1bada28d924e35abde387c5ed76382a2e8b67/sponge-mixin-0.16.5+mixin.0.8.7.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.17.0/33d12735bef894440780fce64f9758d420c7bae2/jna-5.17.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.java.dev.jna/jna/5.17.0/bf690bbd2f47bae28b4c348de5f7d4b8fc899be9/jna-5.17.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.java.dev.jna/jna-platform/5.17.0/4224fa8c1eeccd1a50c215172538e352e21c320f/jna-platform-5.17.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.java.dev.jna/jna-platform/5.17.0/a4934c44d25a9d8c2ddf4203affd20330cb3426f/jna-platform-5.17.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.jodah/typetools/0.6.3/4c71f200014bfe04198c107c2c5bbfa369dabbf5/typetools-0.6.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.jodah/typetools/0.6.3/a01aaa6ddaea9ec07ec4f209487b7a46a526283a/typetools-0.6.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.minecraftforge/mergetool/1.1.7/3d41564f78f123d64573cae7948014baf3aaba3f/mergetool-1.1.7-fatjar.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.minecraftforge/mergetool/1.1.7/cc055f3567721ee014bffdc57f5abdd9252716b5/mergetool-1.1.7.module +/.gradle-user-home/caches/modules-2/files-2.1/net.minecraftforge/mergetool/1.1.7/d92415ae3087d83eb9c1fe190e765d781e76d8da/mergetool-1.1.7.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.minecraftforge/srgutils/0.4.15/ca408b131759478f164e010fae0d73997e125fb5/srgutils-0.4.15.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.minecraftforge/srgutils/0.4.15/dfc400eb7c1952a779f16891884128002bc81078/srgutils-0.4.15.module +/.gradle-user-home/caches/modules-2/files-2.1/net.minecraftforge/srgutils/0.4.15/ef9c92aef306b4152fdb85315992787e1da9f63c/srgutils-0.4.15.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.minecrell/terminalconsoleappender/1.3.0/8b5496034248f70a9f8f47474166a956b495e889/terminalconsoleappender-1.3.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.minecrell/terminalconsoleappender/1.3.0/8780d377a5651b71683aa113183cb2d9d0aafd8/terminalconsoleappender-1.3.0.module +/.gradle-user-home/caches/modules-2/files-2.1/net.minecrell/terminalconsoleappender/1.3.0/b562e9bb61235c9520e26282cdee71f8f802d1fc/terminalconsoleappender-1.3.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/accesstransformers/11.0.2/25dcb69c78b16669935f0ab91dff830ce192379d/accesstransformers-11.0.2.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/accesstransformers/11.0.2/e28c16609d4a24eb0651f624cde3e4c7f46f7543/accesstransformers-11.0.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/accesstransformers/11.0.2/f7cb653a6fd683bd88d461522e5c5320cd1d4968/accesstransformers-11.0.2.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/accesstransformers/13.0.1/4f39cf05b3e637e677add98464a3e882e73faec2/accesstransformers-13.0.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/accesstransformers/13.0.1/5c6200bc80dc1d38b984a106a04d488dddcd642c/accesstransformers-13.0.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/accesstransformers/13.0.1/86586f9a3a2a2deb0ba8923052d172d91230ce51/accesstransformers-13.0.1.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/AutoRenamingTool/2.0.17/9e68b5619f1dd4fb5d3acba34732054956198e25/AutoRenamingTool-2.0.17.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/AutoRenamingTool/2.0.17/9388df4c3589faf10c35d9154cfb2451c83bd717/AutoRenamingTool-2.0.17-all.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/AutoRenamingTool/2.0.17/453980338983da2c30a37774d625fd2dac7cea4f/AutoRenamingTool-2.0.17.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/AutoRenamingTool/2.0.17/cb5eaa58d2ee73efea7785b58beab2d8044037d/AutoRenamingTool-2.0.17.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/bus/8.0.5/5b2d33285ab5d1554e9798ad98c40d6ea3868bd5/bus-8.0.5.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/bus/8.0.5/d784ab4f5b3778ede4646ec0e4614f7a4a463125/bus-8.0.5.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/bus/8.0.5/e758bc3d7fa11c243f1c60188ca49043144db8f0/bus-8.0.5.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/DevLaunch/1.0.2/2e0e9a67793d5bfdedee4f9ea00934dbf3f2e22d/DevLaunch-1.0.2.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/DevLaunch/1.0.2/60fac005f91001c3bef6ac73146a6b27b134d46e/DevLaunch-1.0.2.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/DevLaunch/1.0.2/ab76b6f392e91404e874b3b64ebd3f99b40afeb3/DevLaunch-1.0.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/JarJarMetadata/0.5.0/6f03d0ac17102c33cb7384e42a2e22eda2a3ad8c/JarJarMetadata-0.5.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/JarJarMetadata/0.5.0/2665f3076623f68e137b7bc7af8bb8140f69a552/JarJarMetadata-0.5.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/JarJarMetadata/0.5.0/fea51eb1dfca355bf47ba373a732b02bbb1a0a25/JarJarMetadata-0.5.0.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/JarJarSelector/0.5.0/9b019c5ee932b8298f421a46e7edd6602a0c363d/JarJarSelector-0.5.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/JarJarSelector/0.5.0/64e4956b8dcdd6537eba96590f12fa1f3ba2f831/JarJarSelector-0.5.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/JarJarSelector/0.5.0/a063a460a706a4e3f8f2cb51e6d9635e24d10cd4/JarJarSelector-0.5.0.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/mergetool/2.0.0/52fe1949be64e3303aabaaa21e315f551db9c9f4/mergetool-2.0.0-api.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/mergetool/2.0.0/b0214446c76af673b5f151cfa34a8c8aebe4a42c/mergetool-2.0.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/mergetool/2.0.0/da841e119a4b2cc37c0beed249227c0ade8abdf8/mergetool-2.0.0.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/mergetool/2.0.7/8d217011e2eac8f185c9351240282c780be53e72/mergetool-2.0.7-fatjar.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/mergetool/2.0.7/793b18456e92c4a7f66d9b5d8bf7a9c1c7a20b20/mergetool-2.0.7-api.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/mergetool/2.0.7/7675fc8de2c93cf2db29d19cc710cf3f6056462d/mergetool-2.0.7.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/mergetool/2.0.7/fa78f20958b188c4e0e9cb0316bb1856e4490884/mergetool-2.0.7.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/minecraft-dependencies/1.21.11/30fd9e418c23b0c9b5f879f4679f44e9d52292e8/minecraft-dependencies-1.21.11.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/moddev-gradle/2.0.140/16e585bf0c96c9b166c48ee703b901f934c09294/moddev-gradle-2.0.140.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/moddev-gradle/2.0.140/47b65d1ad642f561f03807a483c13f1ddcb15efb/moddev-gradle-2.0.140.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/moddev-gradle/2.0.140/576812718546d16a4f37a8df2137cff7edd47d6a/moddev-gradle-2.0.140.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoforge/21.11.38-beta/1ed40c92444578b67baea0896b9f3a3c11d9ba95/neoforge-21.11.38-beta.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoforge/21.11.38-beta/5b81867c213c2069db7320e79a10d4792f43e2c4/neoforge-21.11.38-beta.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoforge/21.11.38-beta/3425b0afef02d6a90f7204843bd3cb774c48e372/neoforge-21.11.38-beta-universal.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoforge/21.11.38-beta/3843c888cc139a902ddb0db448ede588c030a3fa/neoforge-21.11.38-beta-userdev.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoforge/21.11.38-beta/c6531aa28764584a28528b63d288ef185e1d989/neoforge-21.11.38-beta-sources.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoforge/21.11.38-beta/d36ce0d8531666d40dda5f4951bebd149c1acefb/neoforge-21.11.38-beta-moddev-config.json +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoform/1.21.11-20251209.172050/9aa3fac837b1cf867b4b175483807c1d0af36782/neoform-1.21.11-20251209.172050.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoform/1.21.11-20251209.172050/9e77c0858627fd060435393d562db1164f826dbb/neoform-1.21.11-20251209.172050.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoform/1.21.11-20251209.172050/28c76dd07c6264162bf7a6f0ccf7a162f081440e/neoform-1.21.11-20251209.172050.zip +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoform-runtime/2.0.18/5c8a28e8aaef47e72379312b54321b35b690ad48/neoform-runtime-2.0.18.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoform-runtime/2.0.18/af5a11e64f209ac5909434ac2617b6af19a02a8d/neoform-runtime-2.0.18-all.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/neoform-runtime/2.0.18/d0ecc6609656df841062d54bca9cd670601d2961/neoform-runtime-2.0.18.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/srgutils/1.0.0/b9fe6cdab494983217cbc14cc6f92c8e6c616526/srgutils-1.0.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/srgutils/1.0.0/c3014b74b36b644fa57c6e0df11a77685dec3125/srgutils-1.0.0.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged/srgutils/1.0.0/c251525d4701bb8a923390635c11f2f32048a90f/srgutils-1.0.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.accesstransformers/at-parser/11.0.2/1b61ab06c048a7ed83a6371c25242110904ec4b7/at-parser-11.0.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.accesstransformers/at-parser/11.0.2/6cd2060dd5d31a5fdd9c0111be08ae56045534ee/at-parser-11.0.2.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.accesstransformers/at-parser/11.0.2/64aae57d6d26d69543c5275181fe6971707a4e16/at-parser-11.0.2.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.accesstransformers/at-parser/13.0.1/6b823d2a57eaf67321ffeb79cb0c94e5bd4219e0/at-parser-13.0.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.accesstransformers/at-parser/13.0.1/32c7515f7d07f8099642dab5825cd6cfec86e4e/at-parser-13.0.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.accesstransformers/at-parser/13.0.1/216de6687198349d83763f5304d7b7f160ceebe2/at-parser-13.0.1.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.fancymodloader/earlydisplay/10.0.36/6114cdb64c1ed3d1b90e71f355d56bbac619622d/earlydisplay-10.0.36.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.fancymodloader/earlydisplay/10.0.36/ce2a44ee40482fa4ad89e43c644319b1be3f29eb/earlydisplay-10.0.36.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.fancymodloader/earlydisplay/10.0.36/dbd0e11d545443f602addede111c39d9639708f9/earlydisplay-10.0.36.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.fancymodloader/loader/10.0.36/17f0056cd3bddf040f6ec770e950666296b006b9/loader-10.0.36.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.fancymodloader/loader/10.0.36/588033d7101c8faa646822cbabda055ac805289/loader-10.0.36.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.fancymodloader/loader/10.0.36/f72ab4d3e755fe736829883d90430a281527aca/loader-10.0.36.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/binarypatcher/4.0.12/806a085347408d6883b1317959a8b4b6161596cb/binarypatcher-4.0.12.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/binarypatcher/4.0.12/868bae8880c16fac19bc32c2163a6b660d8144ff/binarypatcher-4.0.12.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/binarypatcher/4.0.12/abd39e2a004d95f2f5e5a683e4ace98daf1e6b41/binarypatcher-4.0.12.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/cli-utils/2.1.4/352759b3d6aa3b68864ac8b9fba6e02a54d81658/cli-utils-2.1.4.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/cli-utils/2.1.4/af2d83058b5cfda7428aa6b393e042e2f7eb5220/cli-utils-2.1.4.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/cli-utils/4.0.12/4b735f10d4dc056378da48f0fa74ff4ea955482a/cli-utils-4.0.12.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/cli-utils/4.0.12/b00bf1b512f149f9f16890a966352f680e1b02b8/cli-utils-4.0.12.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/cli-utils/4.0.12/f9cb625adf250e95db7818bb66a8909d4c4c0c42/cli-utils-4.0.12.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/installertools/4.0.7/8d76f231d5fd3249d749a233abb5c5a8dbeeafba/installertools-4.0.7.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/installertools/4.0.7/9c78dd9bf5a8fce1094a0811d193eeb2142c1250/installertools-4.0.7.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/installertools/4.0.7/679b87aecf538183e16421207505b70b868547d/installertools-4.0.7-fatjar.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/installertools/4.0.12/94b6e47c3f51f8ca40f8c54720369a952b821e95/installertools-4.0.12-fatjar.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/installertools/4.0.12/8981a7efabfc4a00fb0c4af258f0f1ef2e321bec/installertools-4.0.12.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.installertools/installertools/4.0.12/e23d7da3b20614e82e39d43227100f6db9108d71/installertools-4.0.12.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.javadoctor/gson-io/2.0.17/7b9da1ce7296fa696fb6811f866674b944c0caae/gson-io-2.0.17.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.javadoctor/gson-io/2.0.17/40edf7077205615bffe214a9d250c50cd0d13de/gson-io-2.0.17.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.javadoctor/gson-io/2.0.17/d030d67fe0e4bbdf6ecf784cc9efa1106cbe37c2/gson-io-2.0.17.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.javadoctor/spec/2.0.17/8a54252286102f7938af1afe1fcb4948440cafb7/spec-2.0.17.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.javadoctor/spec/2.0.17/4511423b66c8b5ba38ed8d86d86bfe364731b64f/spec-2.0.17.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.javadoctor/spec/2.0.17/fbe5da0da41957dccf9004014781bd8d05d16192/spec-2.0.17.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.jst/jst-cli-bundle/2.0.6/41bc2dcac9fe41493bee064a7e07b63a5d08348/jst-cli-bundle-2.0.6.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.jst/jst-cli-bundle/2.0.6/1864c03937ac98bc63aa418dbf6018c2c167179/jst-cli-bundle-2.0.6.module +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.jst/jst-cli-bundle/2.0.6/dab6a60a321a7f9c53ef8b426a72df01a3ea35be/jst-cli-bundle-2.0.6.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.neoforged.moddev/net.neoforged.moddev.gradle.plugin/2.0.140/40c5301813c1e516c3c50403a855dc8cf0bbdc0b/net.neoforged.moddev.gradle.plugin-2.0.140.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.4/4fdac2fbe92dfad86aa6e9301736f6b4342a3f5c/jopt-simple-5.0.4.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/5.0.4/c761a09cd9a4695b242c1fc35322d5b1659df7ed/jopt-simple-5.0.4.pom +/.gradle-user-home/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/6.0-alpha-3/2ab1a73e1e22d2b73469362a0908a98644b681d/jopt-simple-6.0-alpha-3.jar +/.gradle-user-home/caches/modules-2/files-2.1/net.sf.jopt-simple/jopt-simple/6.0-alpha-3/c735bddebe9c03a7fdae17d2b4dcaec9289e3880/jopt-simple-6.0-alpha-3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache/apache/18/bd408bbea3840f2c7f914b29403e39a90f84fd5f/apache-18.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache/apache/19/db8bb0231dcbda5011926dbaca1a7ce652fd5517/apache-19.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache/apache/21/649b700a1b2b4a1d87e7ae8e3f47bfe101b2a4a5/apache-21.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache/apache/23/404949e96725e63a10a6d8f9d9b521948d170d5/apache-23.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache/apache/31/9009cbdad2b69835f2df9265794c8ab50cf4dce1/apache-31.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache/apache/33/f7b7b5a9e84395f17d7e6a136e5bfc4b9973566d/apache-33.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache/apache/35/a20c027145b2ee59e77ef7dee4881d4ab0a8e07/apache-35.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.18/1191f9f2bc0c47a8cce69193feb1ff0a8bcb37d5/commons-compress-1.18.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.18/e200ad298ce5683b6c1546d30b19259e79cd575f/commons-compress-1.18.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.28.0/976052d6526ab48697efd2d435b38fdfcc428d4a/commons-compress-1.28.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-compress/1.28.0/e482f2c7a88dac3c497e96aa420b6a769f59c8d7/commons-compress-1.28.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.9/2b7f0896fc2f13bbe7b0022c85738e3b6a3f201a/commons-lang3-3.9.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.9/122c7cee69b53ed4a7681c03d4ee4c0e2765da5/commons-lang3-3.9.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.12.0/302d01a9279f7a400b1e767be60f12c02a5cf513/commons-lang3-3.12.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.19.0/1fd9eb82aaebe11f48471e9ab8e6af4524cfab48/commons-lang3-3.19.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-lang3/3.19.0/d6524b169a6574cd253760c472d419b47bfd37e6/commons-lang3-3.19.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-parent/47/391715f2f4f1b32604a201a2f4ea74a174e1f21c/commons-parent-47.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-parent/48/1cdeb626cf4f0cec0f171ec838a69922efc6ef95/commons-parent-48.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-parent/52/4ee86dedc66d0010ccdc29e5a4ce014c057854/commons-parent-52.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-parent/85/cc8d9a1242954f0245843e625e2a7497a2f95037/commons-parent-85.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.commons/commons-parent/88/26f241229763550be4506c578aa9b931f3f3f0ea/commons-parent-88.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.groovy/groovy-bom/4.0.27/774ec4ea5b652e8bb9500e34b0f9034a0332a81e/groovy-bom-4.0.27.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.groovy/groovy-bom/4.0.27/eb2948e03b965783bd935275840e0bfe17ee11f1/groovy-bom-4.0.27.module +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging/logging-parent/1/11a10ffb21434b96c37f7ca22982d9e20ffb1ee7/logging-parent-1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging/logging-parent/10.5.0/86b2e24165b1c0f0a5c4637b1072e9b68ec54eec/logging-parent-10.5.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j/2.8.1/448f2543aaa53fc80f58cee7d74871c58285ea9f/log4j-2.8.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j/2.22.1/db195de5fa2b030195f0f7dfefb403bf72b48d12/log4j-2.22.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j/2.25.2/138fe4630cccd58bcc4d4fd3677fdc66428f3183/log4j-2.25.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.22.1/dac0ff164868c1d189f43f46d60a1959556a8a3a/log4j-api-2.22.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.25.2/23e770be72db56e92dcb637322d77e70b1b5cdb4/log4j-api-2.25.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-api/2.25.2/292c1a2b1702f1e1e3adb13e1c57e5bff60335ff/log4j-api-2.25.2.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-bom/2.22.1/fdebb9a18352df39baeafd5cd603469a8f452be2/log4j-bom-2.22.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-bom/2.25.2/b66243ca5ffb3ebf7564ec4dd1fbdee208c0376d/log4j-bom-2.25.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.8.1/a233829e7575b8ae4f608c97f34b564ba75012ef/log4j-core-2.8.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.22.1/9b053544a700283536c4367f2c8c2c6c850f7361/log4j-core-2.22.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.25.2/d4d0ad2e51e03e531f784891fbfff1bae1e13a12/log4j-core-2.25.2.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-core/2.25.2/f7e06b47ab1fa040f38af06e08ab5974b78f1a91/log4j-core-2.25.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j2-impl/2.25.2/5eec0c392661dee8a366baec17e8896900dd978f/log4j-slf4j2-impl-2.25.2.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.logging.log4j/log4j-slf4j2-impl/2.25.2/cff185d03cfb39404a8594eb0a1d7fe61913fa8f/log4j-slf4j2-impl-2.25.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.maven/maven/3.9.9/1ffb3dd8874bf8ee7906e6ce701b1b82effddcb/maven-3.9.9.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.9.9/a130ec431ef32e12a4424f9b074735bb58e15d2d/maven-artifact-3.9.9.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.maven/maven-artifact/3.9.9/a0758af5b390987111f547a3f831aa5c09d41eb0/maven-artifact-3.9.9.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.apache.maven/maven-parent/43/b9346196901d4f22b4f92a3c3f0d21d436308b03/maven-parent-43.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.codehaus.groovy/groovy-bom/3.0.19/206e6428672da27eb124ec3bdd7920830b9f6e58/groovy-bom-3.0.19.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.codehaus.plexus/plexus/10/d521749acee596e7325804c5b8fa208efa9f4263/plexus-10.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-utils/3.5.1/9b1bf6967abaa0a516a04ea096da08ec8d8fe0d7/plexus-utils-3.5.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.codehaus.plexus/plexus-utils/3.5.1/c6bfb17c97ecc8863e88778ea301be742c62b06d/plexus-utils-3.5.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.eclipse.ee4j/project/1.0.7/b0f6c4bc691a0b694a377edc9bc4777871647253/project-1.0.7.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.eclipse.jetty/jetty-bom/9.4.53.v20231009/8b328fca26098b482ffa556059cd49d82cfb07e8/jetty-bom-9.4.53.v20231009.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.gradle.toolchains/foojay-resolver/1.0.0/57de20700b98ad32b5eae4095c5d93690ed850c1/foojay-resolver-1.0.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.gradle.toolchains/foojay-resolver/1.0.0/72c0af50bc9156fb2a9429ed152abb4417bb6eaf/foojay-resolver-1.0.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.gradle.toolchains/foojay-resolver/1.0.0/a76fe92fbd5951488cacb66e8f8d31c11d30243c/foojay-resolver-1.0.0.module +/.gradle-user-home/caches/modules-2/files-2.1/org.jcraft/jorbis/0.0.17/8872d22b293e8f5d7d56ff92be966e6dc28ebdc6/jorbis-0.0.17.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.jcraft/jorbis/0.0.17/d6e2acd3efbc2c4c44f043f8d4dea131de3685e0/jorbis-0.0.17.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.jetbrains/annotations/26.0.2-1/8efbdc0b8ecec783fc86234e8c18d2fb0d9031d8/annotations-26.0.2-1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.jetbrains/annotations/26.0.2-1/80c68460cb5c0002e3e0179342a6489ae8c22311/annotations-26.0.2-1.module +/.gradle-user-home/caches/modules-2/files-2.1/org.jetbrains/annotations/26.0.2-1/c7ce3cdeda3d18909368dfe5977332dfad326c6d/annotations-26.0.2-1.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.jline/jline-parent/3.20.0/7b1cc6ff461e67d50d6bc4522dd086b835d56397/jline-parent-3.20.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.jline/jline-reader/3.20.0/8f15415b022a25b473e8e16c28ae913186ffb9c4/jline-reader-3.20.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.jline/jline-reader/3.20.0/ee790a53bd7cf676aeb0a046e93c1831606aea42/jline-reader-3.20.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.jline/jline-terminal/3.20.0/d0ddcc708ddf527a3454c941b7b9225cc83a15ff/jline-terminal-3.20.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.jline/jline-terminal/3.20.0/d2d5e88eb3898d60107699fe98462f28501177ae/jline-terminal-3.20.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.joml/joml/1.10.8/2baa5362c33c774d2c2e86f2ca30b6dabc896745/joml-1.10.8.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.joml/joml/1.10.8/fc0a71dad90a2cf41d82a76156a0e700af8e4f8d/joml-1.10.8.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.jspecify/jspecify/1.0.0/7425a601c1c7ec76645a78d22b8c6a627edee507/jspecify-1.0.0.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.jspecify/jspecify/1.0.0/fae4a252aeee8a649653b2f239067bcead8f80cb/jspecify-1.0.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.7.1/94767e8fb0c5c41a3502cd5cdd77dd35ed67bbfa/junit-bom-5.7.1.module +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.7.1/ea517dcd1a0692cf193264d3e3ef0cc1a4a7b410/junit-bom-5.7.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.7.2/8e74668340163582c9520dfaf9c71579f556a15d/junit-bom-5.7.2.module +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.7.2/e8848369738c03e40af5507686216f9b8b44b6a3/junit-bom-5.7.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.10.1/1b577334c47deb59a29dc31e5211499d0eb3c17b/junit-bom-5.10.1.module +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.10.1/41a86ea51227739a5b7ca3430ae88ce44a64a42a/junit-bom-5.10.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.10.3/316c7ec3b39b3820c4557166a3179590ff2c3402/junit-bom-5.10.3.module +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.10.3/fe8295327d9e5cb3bf1641493dd1485bc714b1e4/junit-bom-5.10.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.13.1/4a2b7185be9155ef83499f1da0ef2f15e0f4fffd/junit-bom-5.13.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.13.1/b3c6e34138c8ee0befa60784860167bc95701ab8/junit-bom-5.13.1.module +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.13.2/c7192090f9462352a598fe81ab090d4a8a0f45d7/junit-bom-5.13.2.module +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.13.2/e192830e2a4932979a3ed6e9e39207d37296f817/junit-bom-5.13.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.13.4/e94bc8d4fe18d155a6f685991d6b806048fb50a3/junit-bom-5.13.4.module +/.gradle-user-home/caches/modules-2/files-2.1/org.junit/junit-bom/5.13.4/eff1995329424362ac5e524dd5198276da1d6b08/junit-bom-5.13.4.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.3/9e670718e050aeaeea0c2d5b907cffb142f2e58f/lwjgl-3.3.3-natives-windows-x86.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.3/35d0f6a95c17c2452e4bfcb4b959d953d3971d7e/lwjgl-3.3.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.3/29589b5f87ed335a6c7e7ee6a5775f81f97ecb84/lwjgl-3.3.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.3/a5ed18a2b82fc91b81f40d717cb1f64c9dcb0540/lwjgl-3.3.3-natives-windows.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl/3.3.3/e9aca8c5479b520a2a7f0d542a118140e812c5e8/lwjgl-3.3.3-natives-windows-arm64.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-bom/3.3.3/927f1f6cb9701a762488fce45da32599cce2581/lwjgl-bom-3.3.3.module +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-bom/3.3.3/f27fd8491a68e864a8c4aa8f8f6efc775a7ac81c/lwjgl-bom-3.3.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-freetype/3.3.3/15a8c1de7f51d07a92eae7ce1222557073a0c0c3/lwjgl-freetype-3.3.3-natives-windows-x86.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-freetype/3.3.3/81091b006dbb43fab04c8c638e9ac87c51b4096d/lwjgl-freetype-3.3.3-natives-windows.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-freetype/3.3.3/82028265a0a2ff33523ca75137ada7dc176e5210/lwjgl-freetype-3.3.3-natives-windows-arm64.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-freetype/3.3.3/a0db6c84a8becc8ca05f9dbfa985edc348a824c7/lwjgl-freetype-3.3.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-freetype/3.3.3/d864c6a5836eb951fae8643962361b9ece1270e5/lwjgl-freetype-3.3.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.3/3e64f95c24d3e7b2eb5bc871f1f249866f41f635/lwjgl-glfw-3.3.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.3/32334f3fd5270a59bad9939a93115acb6de36dcf/lwjgl-glfw-3.3.3-natives-windows-x86.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.3/e449e28b4891fc423c54c85fbc5bb0b9efece67a/lwjgl-glfw-3.3.3-natives-windows.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.3/efa1eb78c5ccd840e9f329717109b5e892d72f8e/lwjgl-glfw-3.3.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-glfw/3.3.3/f27018dc74f6289574502b46cce55d52817554e2/lwjgl-glfw-3.3.3-natives-windows-arm64.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.3/1db152ed8ee34a30fb1d31393197b2f36fe96917/lwjgl-jemalloc-3.3.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.3/426222fc027602a5f21b9c0fe79cde6a4c7a011f/lwjgl-jemalloc-3.3.3-natives-windows.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.3/b543467b7ff3c6920539a88ee602d34098628be5/lwjgl-jemalloc-3.3.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.3/ba1f3fed0ee4be0217eaa41c5bbfb4b9b1383c33/lwjgl-jemalloc-3.3.3-natives-windows-arm64.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-jemalloc/3.3.3/f6063b6e0f23be483c5c88d84ce51b39dc69126c/lwjgl-jemalloc-3.3.3-natives-windows-x86.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.3/8e0615235116b9e4160dfe87bec90f5f6378bf72/lwjgl-openal-3.3.3-natives-windows-arm64.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.3/87b8d5050e3adb46bb58fe1cb2669a4a48fce10d/lwjgl-openal-3.3.3-natives-windows-x86.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.3/997652f7cb13d352bcfb54cccc6fa11e5cdaedeb/lwjgl-openal-3.3.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.3/cf83862ae95d98496b26915024c7e666d8ab1c8f/lwjgl-openal-3.3.3-natives-windows.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-openal/3.3.3/daada81ceb5fc0c291fbfdd4433cb8d9423577f2/lwjgl-openal-3.3.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.3/2f6b0147078396a58979125a4c947664e98293a/lwjgl-opengl-3.3.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.3/65e956d3735a1abdc82eff4baec1b61174697d4b/lwjgl-opengl-3.3.3-natives-windows-arm64.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.3/bfcff9a1c053a4234825275a52ff76c070f1543/lwjgl-opengl-3.3.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.3/d32d833dcaa2f355a886eaf21f0408b5f03241d/lwjgl-opengl-3.3.3-natives-windows-x86.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-opengl/3.3.3/e6c1eec8be8a71951b830a4d69efc01c6531900c/lwjgl-opengl-3.3.3-natives-windows.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.3/1d9facdf6541de114b0f963be33505b7679c78cb/lwjgl-stb-3.3.3-natives-windows.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.3/25dd6161988d7e65f71d5065c99902402ee32746/lwjgl-stb-3.3.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.3/952c8e505f1e8efca3fd98dcede0c65de4c6d0dc/lwjgl-stb-3.3.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.3/a584ab44de569708871f0a79561f4d8c37487f2c/lwjgl-stb-3.3.3-natives-windows-arm64.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-stb/3.3.3/b5c874687b9aac1a936501d4ed2c49567fd1b575/lwjgl-stb-3.3.3-natives-windows-x86.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.3/6f349a2b2d709b160d5add1d4e45a53dbcb26246/lwjgl-tinyfd-3.3.3.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.3/82d755ca94b102e9ca77283b9e2dc46d1b15fbe5/lwjgl-tinyfd-3.3.3.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.3/a88c494f3006eb91a7433b12a3a55a9a6c20788b/lwjgl-tinyfd-3.3.3-natives-windows-arm64.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.3/a6697981b0449a5087c1d546fc08b4f73e8f98c9/lwjgl-tinyfd-3.3.3-natives-windows.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.lwjgl/lwjgl-tinyfd/3.3.3/c336c84ee88cccb495c6ffa112395509e7378e8a/lwjgl-tinyfd-3.3.3-natives-windows-x86.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.mockito/mockito-bom/4.11.0/1c271051b650e8dd5ae2c9726ee5953887030d/mockito-bom-4.11.0.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2/ow2/1.5.1/bda66fa5f1b68fa7d2de3d569bdc8508b2af82d4/ow2-1.5.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm/9.5/29d57fb2366b772c530508ebdeea81b61a4657c1/asm-9.5.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm/9.8/420ea5b64e01f336ce294fac8d17cc50e2c8c08a/asm-9.8.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm/9.8/dc19ecb3f7889b7860697215cae99c0f9b6f6b4b/asm-9.8.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm/9.9.1/2ceea6ab43bcae1979b2a6d85fc0ca429877e5ab/asm-9.9.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm/9.9.1/be908beee2db52bb193972f0d35ca8d603cb7f71/asm-9.9.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.5/490bacc77de7cbc0be1a30bb3471072d705be4a4/asm-analysis-9.5.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.5/fe8e26237d0428920e8098c9a04e485599b4bf65/asm-analysis-9.5.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.8/227a0959c1f343a831b82f2e9898fef2a609d5a4/asm-analysis-9.8.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-analysis/9.8/b9747a320844b6cb1eacd90d8ecfd260a16c01d3/asm-analysis-9.8.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.5/fa5a5be8aad46e084710303b8c2b2b6c65fe3c49/asm-commons-9.5.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.8/8f0aaa4f4079d6100a983c2ac50dfa8cdccda867/asm-commons-9.8.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.8/36e4d212970388e5bd2c5180292012502df461bb/asm-commons-9.8.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.9.1/ab35de4c537184a09339069f1a3b3aacf2289149/asm-commons-9.9.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-commons/9.9.1/e00a3abe42bf2be48f23d31f6acf14e4e63c030f/asm-commons-9.9.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.5/3e9552b02a64dc1c887075d9ccbbaffa570d5539/asm-tree-9.5.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.8/11540e16bb184feb827b4f746b4c662d0c93bbda/asm-tree-9.8.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.8/18419ca5b77a2f81097c741e7872e6ab8d2f40d/asm-tree-9.8.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.9.1/b6b1b3366296163b4b1f540731aad0a2baa484d8/asm-tree-9.9.1.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-tree/9.9.1/dface093adeff89f9eee20c3d6c659519465da6c/asm-tree-9.9.1.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.5/64b5a1fc8c1b15ed2efd6a063e976bc8d3dc5ffe/asm-util-9.5.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.5/a2b1b8c9a62bbd4908b7dc7c61754dcc51099c40/asm-util-9.5.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.8/91dacf2e5f030a85cffba1b002d275be934fc14/asm-util-9.8.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.ow2.asm/asm-util/9.8/395f1c1f035258511f27bc9b2583d76e4b143f59/asm-util-9.8.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.parchmentmc.data/parchment-1.21.11/2025.12.20/9b1e2e1dce1ccbde8adb829f42fa6941205b3d24/parchment-1.21.11-2025.12.20.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.parchmentmc.data/parchment-1.21.11/2025.12.20/b361d93d4688e0c0dc2194ff0ff0a96f6f753421/parchment-1.21.11-2025.12.20.zip +/.gradle-user-home/caches/modules-2/files-2.1/org.slf4j/slf4j-api/2.0.9/96a47b716e8241bca75562533e3a9fbb7ffbefb9/slf4j-api-2.0.9.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.slf4j/slf4j-api/2.0.17/570964f8e6716b09c354c6e334ba1a092464d85/slf4j-api-2.0.17.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.slf4j/slf4j-api/2.0.17/d9e58ac9c7779ba3bf8142aff6c830617a7fe60f/slf4j-api-2.0.17.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.slf4j/slf4j-bom/2.0.9/54c55d4b55c9f82d34434fe6a36e8c6b5671588a/slf4j-bom-2.0.9.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.slf4j/slf4j-bom/2.0.17/abbc25a81a3bc8ccacdbd9150224250e4a66542a/slf4j-bom-2.0.17.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.slf4j/slf4j-parent/2.0.9/fa1b5ef4b7f48daf822d408eebd3319fa6254c0f/slf4j-parent-2.0.9.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.slf4j/slf4j-parent/2.0.17/641edf481a624909e4da7d07343055d46aba0b77/slf4j-parent-2.0.17.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.sonatype.oss/oss-parent/7/46b8a785b60a2767095b8611613b58577e96d4c9/oss-parent-7.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.sonatype.oss/oss-parent/9/e5cdc4d23b86d79c436f16fed20853284e868f65/oss-parent-9.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.springframework/spring-framework-bom/5.3.39/2af3c8b0a5c42c87c784c84eb50ab3bed4d99b4b/spring-framework-bom-5.3.39.module +/.gradle-user-home/caches/modules-2/files-2.1/org.springframework/spring-framework-bom/5.3.39/51d5e26004c5cd98c1d0bd562e0579f18e6552e8/spring-framework-bom-5.3.39.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.tukaani/xz/1.8/83c041bde1965b281cf4e6b31ab11bcf4b68a649/xz-1.8.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.tukaani/xz/1.10/1be8166f89e035a56c6bfc67dbc423996fe577e2/xz-1.10.jar +/.gradle-user-home/caches/modules-2/files-2.1/org.tukaani/xz/1.10/a0ba16af6c9fbad6fbbb749ac267c4d5b1f1c508/xz-1.10.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.vineflower/vineflower/1.11.2/a4aa6896d617135410064a0c9b413e2e059a6572/vineflower-1.11.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/org.vineflower/vineflower/1.11.2/f02c1f554d5bd9cc0fd74d4977efba364d85e739/vineflower-1.11.2.jar +/.gradle-user-home/caches/modules-2/files-2.1/trove/trove/1.0.2/6b1df44319c6f89436ddd260e9f7f8c21460bc3f/trove-1.0.2.pom +/.gradle-user-home/caches/modules-2/files-2.1/trove/trove/1.0.2/112b40581ab9a4d3de4636d49985a7f686d181c8/trove-1.0.2.jar +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/at.yawk.lz4/lz4-java/1.8.1/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/ca.weblite/java-objc-bridge/1.1/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.azure/azure-client-sdk-parent/1.7.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.azure/azure-json/1.4.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.azure/azure-sdk-parent/1.6.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.electronwill.night-config/core/3.8.3/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.electronwill.night-config/toml/3.8.3/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.fasterxml/oss-parent/56/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.fasterxml/oss-parent/68/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.fasterxml.jackson/jackson-bom/2.16.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.fasterxml.jackson/jackson-bom/2.19.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.fasterxml.jackson/jackson-parent/2.16/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.fasterxml.jackson/jackson-parent/2.19.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.github.oshi/oshi-core/6.9.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.github.oshi/oshi-parent/6.9.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.findbugs/jsr305/3.0.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.gson/gson/2.8.9/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.gson/gson/2.10/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.gson/gson/2.10.1/2f8748e965ecb2135dad092e9ef808de/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.gson/gson/2.10.1/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.gson/gson/2.13.2/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.gson/gson-parent/2.8.9/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.gson/gson-parent/2.10/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.gson/gson-parent/2.10.1/2f8748e965ecb2135dad092e9ef808de/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.gson/gson-parent/2.10.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.code.gson/gson-parent/2.13.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.errorprone/error_prone_annotations/2.41.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.errorprone/error_prone_parent/2.41.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.guava/failureaccess/1.0.3/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.guava/guava/31.1-jre/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.guava/guava/33.5.0-jre/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.guava/guava-parent/26.0-android/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.guava/guava-parent/31.1-jre/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.guava/guava-parent/33.4.0-android/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.guava/guava-parent/33.5.0-jre/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.google.j2objc/j2objc-annotations/3.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.ibm.icu/icu4j/77.1/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.microsoft.azure/msal4j/1.23.1/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.mojang/authlib/7.0.61/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.mojang/blocklist/1.0.10/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.mojang/brigadier/1.3.10/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.mojang/datafixerupper/9.0.19/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.mojang/jtracy/1.0.37/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.mojang/logging/1.1.1/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.mojang/logging/1.6.11/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.mojang/patchy/2.2.10/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.mojang/text2speech/1.18.11/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/com.nothome/javaxdelta/2.0.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/commons-codec/commons-codec/1.19.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/commons-io/commons-io/2.11.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/commons-io/commons-io/2.20.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/de.siegmar/fastcsv/2.0.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/gradle.plugin.org.jetbrains.gradle.plugin.idea-ext/gradle-idea-ext/1.2/2f8748e965ecb2135dad092e9ef808de/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.codechicken/DiffPatch/2.0.0.36/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.fabric8/kubernetes-client-bom/5.12.4/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.github.llamalad7/mixinextras-neoforge/0.5.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-bom/4.1.104.Final/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-buffer/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-codec-base/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-codec-compression/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-codec-http/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-common/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-handler/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-parent/4.2.7.Final/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-resolver/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-transport/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-transport-classes-epoll/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-transport-classes-kqueue/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/io.netty/netty-transport-native-unix-common/4.2.7.Final/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/it.unimi.dsi/fastutil/8.3.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/it.unimi.dsi/fastutil/8.5.18/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/jakarta.platform/jakarta.jakartaee-bom/9.1.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/jakarta.platform/jakartaee-api-parent/9.1.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.covers1624/Quack/0.4.10.101/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.fabricmc/sponge-mixin/0.16.5+mixin.0.8.7/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.java.dev.jna/jna/5.17.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.java.dev.jna/jna-platform/5.17.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.jodah/typetools/0.6.3/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.minecraftforge/mergetool/1.1.7/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.minecraftforge/srgutils/0.4.15/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.minecrell/terminalconsoleappender/1.3.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/accesstransformers/11.0.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/accesstransformers/13.0.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/AutoRenamingTool/2.0.17/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/bus/8.0.5/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/DevLaunch/1.0.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/JarJarMetadata/0.5.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/JarJarSelector/0.5.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/mergetool/2.0.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/mergetool/2.0.7/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/minecraft-dependencies/1.21.11/f02ae9116b66bbd56a31f389486551c5/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/moddev-gradle/2.0.140/2f8748e965ecb2135dad092e9ef808de/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/neoforge/21.11.38-beta/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/neoform/1.21.11-20251209.172050/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/neoform-runtime/2.0.18/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged/srgutils/1.0.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.accesstransformers/at-parser/11.0.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.accesstransformers/at-parser/13.0.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.fancymodloader/earlydisplay/10.0.36/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.fancymodloader/loader/10.0.36/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.installertools/binarypatcher/4.0.12/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.installertools/cli-utils/2.1.4/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.installertools/cli-utils/4.0.12/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.installertools/installertools/4.0.7/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.installertools/installertools/4.0.12/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.javadoctor/gson-io/2.0.17/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.javadoctor/spec/2.0.17/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.jst/jst-cli-bundle/2.0.6/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.neoforged.moddev/net.neoforged.moddev.gradle.plugin/2.0.140/2f8748e965ecb2135dad092e9ef808de/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.sf.jopt-simple/jopt-simple/5.0.4/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/net.sf.jopt-simple/jopt-simple/6.0-alpha-3/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache/apache/18/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache/apache/19/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache/apache/21/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache/apache/23/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache/apache/31/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache/apache/33/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache/apache/35/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.commons/commons-compress/1.18/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.commons/commons-compress/1.28.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.commons/commons-lang3/3.9/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.commons/commons-lang3/3.12.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.commons/commons-lang3/3.19.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.commons/commons-parent/47/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.commons/commons-parent/48/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.commons/commons-parent/52/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.commons/commons-parent/85/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.commons/commons-parent/88/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.groovy/groovy-bom/4.0.27/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging/logging-parent/1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging/logging-parent/10.5.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j/2.8.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j/2.22.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j/2.25.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j-api/2.22.1/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j-api/2.25.2/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j-bom/2.22.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j-bom/2.25.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j-core/2.8.1/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j-core/2.22.1/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j-core/2.25.2/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.logging.log4j/log4j-slf4j2-impl/2.25.2/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.maven/maven/3.9.9/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.maven/maven-artifact/3.9.9/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.apache.maven/maven-parent/43/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.codehaus.groovy/groovy-bom/3.0.19/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.codehaus.plexus/plexus/10/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.codehaus.plexus/plexus-utils/3.5.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.eclipse.ee4j/project/1.0.7/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.eclipse.jetty/jetty-bom/9.4.53.v20231009/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.gradle.toolchains/foojay-resolver/1.0.0/2f8748e965ecb2135dad092e9ef808de/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.jcraft/jorbis/0.0.17/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.jetbrains/annotations/26.0.2-1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.jline/jline-parent/3.20.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.jline/jline-reader/3.20.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.jline/jline-terminal/3.20.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.joml/joml/1.10.8/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.jspecify/jspecify/1.0.0/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.junit/junit-bom/5.7.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.junit/junit-bom/5.7.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.junit/junit-bom/5.10.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.junit/junit-bom/5.10.3/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.junit/junit-bom/5.13.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.junit/junit-bom/5.13.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.junit/junit-bom/5.13.4/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.lwjgl/lwjgl/3.3.3/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.lwjgl/lwjgl-bom/3.3.3/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.lwjgl/lwjgl-freetype/3.3.3/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.lwjgl/lwjgl-glfw/3.3.3/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.lwjgl/lwjgl-jemalloc/3.3.3/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.lwjgl/lwjgl-openal/3.3.3/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.lwjgl/lwjgl-opengl/3.3.3/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.lwjgl/lwjgl-stb/3.3.3/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.lwjgl/lwjgl-tinyfd/3.3.3/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.mockito/mockito-bom/4.11.0/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2/ow2/1.5.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm/9.5/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm/9.8/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm/9.9.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm-analysis/9.5/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm-analysis/9.8/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm-commons/9.5/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm-commons/9.8/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm-commons/9.9.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm-tree/9.5/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm-tree/9.8/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm-tree/9.9.1/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm-util/9.5/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.ow2.asm/asm-util/9.8/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.parchmentmc.data/parchment-1.21.11/2025.12.20/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.slf4j/slf4j-api/2.0.9/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.slf4j/slf4j-api/2.0.17/42d5112e53485e9f59b1068dfd734a05/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.slf4j/slf4j-bom/2.0.9/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.slf4j/slf4j-bom/2.0.17/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.slf4j/slf4j-parent/2.0.9/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.slf4j/slf4j-parent/2.0.17/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.sonatype.oss/oss-parent/7/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.sonatype.oss/oss-parent/9/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.springframework/spring-framework-bom/5.3.39/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.tukaani/xz/1.8/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.tukaani/xz/1.10/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/org.vineflower/vineflower/1.11.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/descriptors/trove/trove/1.0.2/e75c35c711ebf8790a31b4beb5ef1458/descriptor.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/module-artifact.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/module-metadata.bin +/.gradle-user-home/caches/modules-2/metadata-2.107/resource-at-url.bin +/.gradle-user-home/caches/modules-2/gc.properties +/.gradle-user-home/caches/modules-2/modules-2.lock +/.gradle-user-home/caches/neoformruntime/artifacts/minecraft_1.21.11_client.jar +/.gradle-user-home/caches/neoformruntime/artifacts/minecraft_1.21.11_client_mappings.txt +/.gradle-user-home/caches/neoformruntime/artifacts/minecraft_1.21.11_server.jar +/.gradle-user-home/caches/neoformruntime/artifacts/minecraft_1.21.11_version_manifest.json +/.gradle-user-home/caches/neoformruntime/artifacts/minecraft_launcher_manifest.json +/.gradle-user-home/caches/neoformruntime/assets/indexes/29.json +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0a9c7929a7ac1d4ade36b5a27dcdffbc6ed0bd74 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0a9d177aa4fb5896b3125f6aea8eadf62c7260dd +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0a11f0f24ea5c41821023ec829100194cc6c8ae0 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0a23b6f3bb5ae4191fa749826443e77156bd0f71 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0a34f2dfbba42968c98bdad1926ec2f4a0226944 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0a44b2fda7d8822b1dbdd7f47eb1d4a8aafef183 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0a62bde16fc2dd5e85f84fb8f0ba2e12f1e7cb92 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0a970d2c73e3566f27f466ace7ca11aac92432d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0a17697bd8ea22449a30c20d233bf801945915f4 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0ab6fd973e07708127ef918c69ab224add2cbd35 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0abd682271cda1a5513e57cea7cdbcf383893813 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0ac6bdc2d85025531e84145a64e04b287dabc51a +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0ac7a8009dd4c6769a8ce35add6e076b98514b77 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0acc3cdf1242adc4310e6d67079f35c12e00b735 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0ae74c540e774f938ab085bb17207ccad1738c01 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0af78c8eaf64884cdc943af387926764242c44fd +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0afbcb49885df59aa3c31521b95d17e7dd50fc33 +/.gradle-user-home/caches/neoformruntime/assets/objects/0a/0afdb46f21cbc3dc7c65980ed245ae6479ed3542 +/.gradle-user-home/caches/neoformruntime/assets/objects/0b/0b00ccbaf87997fd2571946b20b8eedb29dd0388 +/.gradle-user-home/caches/neoformruntime/assets/objects/0b/0b6a8010c62e24588a902e4224279c1ee25acb09 +/.gradle-user-home/caches/neoformruntime/assets/objects/0b/0b7ee07685cfd9f79bad201a3298e836869fc047 +/.gradle-user-home/caches/neoformruntime/assets/objects/0b/0b69d1551701b52e8176c7cd2dfb2761b39e1519 +/.gradle-user-home/caches/neoformruntime/assets/objects/0b/0ba4406cdbcd432a381267d14f49d8adee63da65 +/.gradle-user-home/caches/neoformruntime/assets/objects/0b/0bb8f8a6d39ce1a811517c973eba3108629172a8 +/.gradle-user-home/caches/neoformruntime/assets/objects/0b/0bd2d425ba3d8254999c9b9cb162b05427752447 +/.gradle-user-home/caches/neoformruntime/assets/objects/0b/0bd9f569835966f06236483648dd79419a636ded +/.gradle-user-home/caches/neoformruntime/assets/objects/0b/0be119370167e749ac3ffe67ee9fd9935ea5df8a +/.gradle-user-home/caches/neoformruntime/assets/objects/0b/0bfde0688dbbb5baae87be69c8863f1b8ff14c96 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0c1bb4bac0a42c0c444238a0a89da29dc459aa27 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0c2cdb58940cd6b6a5b95bbde63f8d013b54003d +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0c4bc22cdddeb8bf4ebcbf785765fc0c4e05a59c +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0c28d0fda9d575f08ba992a98d6e99ca5a76b886 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0c62057c8a75b57a8f06e7c1bc1b21a7f88d4820 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0c621637b9aeaf6f2be4d44a1f8368d1fbb25282 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0ca6f9876d9aa99031f22de9d7f5202a42d3c54d +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0cac3b2fbb284e5121e8062b8a08f81b9eb4b53d +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0ccca22fee32f342be3f886e5202025800a742c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0cce5dacf1a8f44502b8e22cff699e6903deb13c +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0cd6d4f6a13893fe6b68d04a913ead7ba53f7c69 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0cdc3cf7d454f1d63c3240652300d41994beb931 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0cdec84d6a3e1089d879410a960d2ae05dceaeb6 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0ce8bc2ef070b4523b42826cc6f1235eabc2affe +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0cf0b92265370a4fe7c1bc2c312e80b2f7185abb +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0cf970cda6c7911eccf7bdbfaedf8134cb0dce59 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0cfa947f3d282bb02426b1c5e666b5dc28aff8a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0cfbbcc2a7658109bcd65ecc0208518803f4ba3e +/.gradle-user-home/caches/neoformruntime/assets/objects/0c/0cff2cfc2ed0fe8607eabc98ee971c79c1a8c611 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d1e37d7a6f3b0543234d3fcea88af7025fb06c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d2a9808c3a76773784d77e0e30ee106cdeb2675 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d3e577976f9e59bafcd19004c81ee6518b45dd5 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d5d634a492ad420a3486128b4ea65e231312eaa +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d6c8eb9d44fdf6250502beceea9a4ab1a0f25b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d23a691583b18a8ce02132a64d76c6b47897efe +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d40d1ae1c24f1e4f8c93aeeaf56204d8274e4b0 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d61e1a8550820d63881a1cfb333c4dda042e86a +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d68cf80d3018c93de2f3048114dd7452d75b8da +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d677ebd6e14704941527898704f83b015509d8e +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0d6733f7369dde9283c6259f58b97ba1c443ada6 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0db776397819a632c88fbaea936fb92133e7e527 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0dbcd56e6d8a931818f0913a0e23f784106d4ad8 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0dd2a053d1305f953b77e67a320e350d68212bc6 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0dd9b4f8824ec7e7ad8a2f771f6affd591f6d091 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0deea905080ffcd7b60b132028c04847f9d8d684 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0df1a7fadb71ab9a8aeb0e09631cde6812f02f07 +/.gradle-user-home/caches/neoformruntime/assets/objects/0d/0df779cb6d625830021f46fa670b246f05ada156 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e0d263eeae9e4289916c92f830e282a5d45f720 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e2e8a4968dc62f096f2789883492d5498a47391 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e5dc591233a89f48c54bc54dfb1b337068e3b46 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e7f2b828b2da3a1e1887fce7cff04ed2f5a3cba +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e8a8879477f2a286a0f5ca217a8e95700f239f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e8d1366458c1b6bc16c4bc5ce0e9992af5fd9e2 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e9a4a2859f4ea0548460398f6a7e7cdd595ce08 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e12cc9cb756d12674ea01ec28762c05d2ceca35 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e28e932a15ad310b652f070a7f0bc2edb9da141 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e70d87bfc2e238f8348e9947ff6efbc238f9434 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e93efa70b9b8b2d4edd719b498b9c9c834a3832 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e208ff8b70b022978b4ea57cfa2ac6672680112 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e533ac4f54c97288ac1f1d207ae185f1059f6ea +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0e800e8471613ac1d4e75367c9278879115956af +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0ea63ab9ae3849d51863299604e7fbbfed7cbfdb +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0ead26ea56117ce0715c4c9d8266a0e4ad92c275 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0eb264d48d3cd4a0b162ad6669b43eef5bc318d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0ec6ace10121c4fbca90d9aa756d0637f0f482a8 +/.gradle-user-home/caches/neoformruntime/assets/objects/0e/0ecc87df118c175ccf396330b96f9a6917e9bbdd +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f4f6d5ffbd1517cec039ff97c08801bdad07292 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f5fc0e0261ddd24976021166ebdc5d50096e981 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f26ee9bab891d6b9a12de80aca8ab86be8a4eba +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f30dad25ab6d5570ab52bdcc2c03e26cb7cf6cb +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f70fcfef5937a907041fe864c1403a6e6f3d377 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f94b749ce0c7844af0f969b77f3463ab36581ba +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f277b625472be5f6d4805f1a881a7bc7c4b34b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f786cfb60312e36353e47ffba52559fd1c30770 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f932b9d5a9714a57139dfe77a22b341021b3780 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f3189f7ac0807a289e2118c18e6c34c0d3f235d +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f9105b4b2010d8a3376d101efa024904b39d04c +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f932860ef79ef34c9538b2baa117f7d592c59ce +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0f968681ee6786f33eeb7acd5ecc66274c0d8722 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0fb1c24c2ac7866392f1a2d441cd4416d41723eb +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0fba25df72d77f0434e0db24dce97aa7a98020ce +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0fdd2efdbf69b5d373294f16246408bd187442bf +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0fdf31adb7ab2d0af6e14ff615cfed27e6c95dd2 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0fe7a2c57b0b284ec0e7b52b0e0e38d4a9139e53 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0fe03055f98935b7564db033979648173be0bcc7 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0fefe0a800702935cef8ff888cb2d711f0220628 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0ff220c28e679af2c8a0ef90afc477aaf1ff6c07 +/.gradle-user-home/caches/neoformruntime/assets/objects/0f/0fff04bae2e68be07342942487706b351e5bb8ed +/.gradle-user-home/caches/neoformruntime/assets/objects/00/00c9fa8115347fb0220aaf72a8d7d921f5354112 +/.gradle-user-home/caches/neoformruntime/assets/objects/00/00cac24f0f0f86a8cf565fae4a172632020ac01b +/.gradle-user-home/caches/neoformruntime/assets/objects/00/00d7b6cb90bbe6552d8b23650f6da1cab68993fa +/.gradle-user-home/caches/neoformruntime/assets/objects/00/00d34c5e9d71885143378bb2bd46d03c4ad7e9a2 +/.gradle-user-home/caches/neoformruntime/assets/objects/00/00e30f283c3a012e0321265f62f1e916d06f3532 +/.gradle-user-home/caches/neoformruntime/assets/objects/00/00f5d330fac7924b65b850e12c8436123c7b07e4 +/.gradle-user-home/caches/neoformruntime/assets/objects/00/005ff4be3158efd7ea7851cddc9839c753d65773 +/.gradle-user-home/caches/neoformruntime/assets/objects/00/007b6d9297e842b63ac7b876b38916212a3c9b51 +/.gradle-user-home/caches/neoformruntime/assets/objects/00/008ab6dcdcac22f1dab94a5fc3ff7c3be12ecaae +/.gradle-user-home/caches/neoformruntime/assets/objects/00/00765b2e5a821e8b22c8b555fd32d887ec805aed +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1a0b16bdb212fddc90d34f202f7f75433dcb1149 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1a2de0f1eabea06f144265b1c09e11463202c026 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1a3e1070c746c70ecfb0c8a9f615a80d2ecd4581 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1a6a34eba2c5041ddf9e8062367faf42025c72e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1a6da0565b523545b05ed7a62de355db62296390 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1a6e8801cfbafdd14af3b345dbc9c0ec6f806511 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1a9fd62fe3699710ca3aa2c9188a44a4f1fecf90 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1a616c4727e64a4e9710ec4a8abcbc070d5ff057 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1a7631a3590477fcb454846191891a0edddfe563 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1a34635af766658ae4d81e829104303518603607 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1aa54bf9d3ce024643a7dea98d5d82ffe4ca4e6e +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1ac66e5239f060e54a8b2e4357013f902d5a67ca +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1ad1b8932e167020d141ff62f3e630633626da0a +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1ad98d0724af8b2e34319cd6da92f307586d7862 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1ad916bab7338140d4025a1ad7ba807a0d9e99f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1ae2ea9397f8ed322f169d020e629fb2ed77b8ba +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1ae7fea3dc9c7b3016ff1b79b5e51bd1c1e1cf50 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1af8e52411c557cbdcf2a18d3152cb0000eecf2c +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1afbe77856dbefe7a551cad0ad7125f5c9d40645 +/.gradle-user-home/caches/neoformruntime/assets/objects/1a/1afdcef47e76d36184f0e699bd2d6fc6418996c3 +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b0a2d0b7c8bc639fef77964b83ad646ea63a08a +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b2a82de1c311fbca1ac0a114bd50f66186552ad +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b3ba9a6a14e99ce3b9c1b832ed3e5a9d7c12379 +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b6e19574b10bd3e91ee40980bdfbab733e73486 +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b46e7257ddef7c55289f55450cb9eab27fc995b +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b62b6e66e47b1cf034ec3ac54bb7c6baff74780 +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b89e9af6ef35f52b41be1a3acbc0bafd8e7df40 +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b212fdf64a28ebb7796686dfc0de2c665fad429 +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b8082ca84b25a3275154ad1aa7e58df923c9d46 +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b55010b83389107e7950b585c082101fefb3afe +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1b4847389100f64149b531a358b95f8132a2fb2f +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1baf16562eb62cfffc5d6c34711096f10dc81425 +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1bb58c169ec0484a658f66e3eff2aafdf48a2354 +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1bc0813bf5e481101d80c123de1d3773fb8e8649 +/.gradle-user-home/caches/neoformruntime/assets/objects/1b/1bce612bb8770ada5477a7b2a592bab99c86a000 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c6fa92e6807125c5bf0b02fc9e314ed1965effd +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c8b0730d35a49b7460548db4f648086d64df6e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c8c17a8e9f1cc1496a25bfd2fd2711e67ad6b20 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c8da6f91a724967ad2dd898333b45aaaf44b901 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c9a58f2fbafdfabc1b4d5f5afa196537ce324eb +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c9aa4f2710ac7025a56f99feb132a29cf5a2b64 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c44d7a762b3a003d152a584e16f71e18de90e95 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c48ebfeef25389410fcc7d7ed6e3ab9fe183e0b +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c49fe28c9708000e6cc38d4140efd9ad944393f +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c189b5685045def884ef8752006bddbdd7f11fb +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c219e07490c50912fae8fe77b44f5090c16fa93 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1c20908d9029ed3dc441a1c77e6cfeb862f56cb8 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1cc42a4336edfabea25db242b3b7fd86f285a977 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1cd7a5c2740f295ee14c60b1a16036440a4e4beb +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1cd16f0d51e7021a1910e0bdfc10b68be84d68ec +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1cd43ebe3962280b0002d595f08c043afc36662b +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1ce1fd11070653071311ed2abd8a50e25c0543ec +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1ce573f8b1719051252d70501121bdc5f510ac62 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1ce850fe67a405cd5dafe550743655ba7f5477c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1cef2a7476a96d50c0379e15ed2a8b9579527e26 +/.gradle-user-home/caches/neoformruntime/assets/objects/1c/1cfbc7d97388508caa9df121fb41d7c2ff1897ff +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d0f4d6fcd3329385e035f810e66da970cd35ef3 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d2b77fca163ae74eabbcee782dbb2e9f8e54d7c +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d8e0b5e9f0f68c7ddfa7f8943e4bfdb9e0d0285 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d8eb3f824e8e17c0834a17cf39b9e55b8479c2e +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d9ca2668a02b21e5bcabb468bbee23edd255aab +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d9f38d0c00e713a9eed7af294991a506a4a90d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d35d9c81c646c7007bde70c4f2d942743878bb2 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d38d387f662e11899756c5c41db05edf2eb241d +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d53a9e71d80171126290be65917ce893cbfef0c +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d78d4afb5fcc5f1029658db91b3fd1779f30155 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d934f24734d3f7a9a62d415cde184f3316fda45 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d2384d4bd89270212a4ceef494e9aec4561d7e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d4108a69bced7129b24c51b4011e0810cb76225 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1d38837caac921f267165753db56a9d123fa9edc +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1dc9d6f2474ffcca204c451fd3514cd704b40848 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1dc20f57b19d65cda41dbb5789fa49f3b77064f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1dc49c965c586bdfe2f8d990c141384a47dcda44 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1dd074d2d7ec04991ce6585677ffb93c78929e29 +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1de7a5eaabd398cca23321b405820f5e4e953dbe +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1de952f58c1ebdb47caa5b18ab080c8ee9eb062a +/.gradle-user-home/caches/neoformruntime/assets/objects/1d/1df02f5cffd771f11069d4e5fca9e901cbf27610 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e00e965fd5a742ae5557c5dfb9091d65fb1db59 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e1edd1aa00a705b3c20a8a4f0758c1df8dfd3c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e3ec649e4a3ceb42ed7fd278c99fba3ef6ee8e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e6a4ebd05ff7042bf9bc3b5fd45dbf7a0919e41 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e6adaad56312e2b6f2f1b8482e510430a4ffd73 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e7d056e556fd40270e92a187164d27f60fc04b3 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e8e2c38a9a16970094e4ad499440e77325c4f42 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e9bf585117985f40a1e2c580231cdc36987854c +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e18eb2f3ad5c379a53c6aeedc0ee3e9d6ee62c8 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e68a44f65699cedc9b0b60f67a67ca1e71e5507 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e81bb7439dc52568e691419beff6900f271578c +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e141f1f48a3b9d02102cd8c9a48b0bd7d6b3fa4 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e8409f4044b4f23bc6e2396a74f026795bbed4c +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e59394b78c6dccb6f428c5b70dbf67802afc866 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e92199e014633778dd7090c06fc2e04ed810f9c +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1e895627247fad9d1d0e168f2a412d657b7685a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1ea02c3ad288fad8ee4255d0af090f208798b5bc +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1ea4892f78e9522c99664631d181ddb48da24217 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1eaf3b9c3bdc23af573d7a46c60b0b2e5ad84f12 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1eb670b34a9bc1cfbc28559a229d34762f7ac9be +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1ebea9a6e9cb5d3c97828cb8026db4fb6c4e0fc6 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1ee3efc2dd4121176b542c96fcc7baf6d3badd13 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1ee51af69babaa870152ca7d936f419deed7312a +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1eede2d3b33f29b1a7d1bb75c0da88f26f5e68b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/1e/1eefb114d3b9180fcad0ad1742e6b88fcf109974 +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1f4f64a46ca95dd9df5fc0c5be8dbe3e9f3c2533 +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1f5c45e15d90873197142e61cc7bffd2c0be82f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1f6a703221da3f3a2b2a45c0ee6636e3109ba6ff +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1f34b0827dc6de72edac0befa329ca6377961558 +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1f049a7f368675990b173a101bcb92c90fcfab14 +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1f86ddd8bc02fb96c27583c0b38ebd0dcdaf271a +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1f149c8e23220f9fa9c126a91b806444369bdf9c +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1f975ac46b3917d05e6c64248c540944bafebd79 +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1f6882f0cafa10e5839b202503d5db141c835766 +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1fa807cfaf7979026cf567fc706c58b301fc27ce +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1fa974f5957de452440d6bfa8f9aa112bc96cd9c +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1fb8fc3577958f7bf8ab6b3875a7f23f36eb1480 +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1fbc058a646eae018f463781d2881617c5c0d209 +/.gradle-user-home/caches/neoformruntime/assets/objects/1f/1fecc9ad49e075d68f1f64996af5d9ab1e819688 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/01b9a0d2165d5d0efd9a4e16d311d9b98d71f140 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/01b15b73b4079bad206b46096ac47798b433a561 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/01bb74e92fabcd2a63d15ecf221c7be801543667 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/01e0a7d49b42e9544735260401c6fc23247f72f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/01e90fd7f1cf5238a16e79497a7a0e5056a1f706 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/011aa5653f55c61f33db064b0e356e7d9e498cda +/.gradle-user-home/caches/neoformruntime/assets/objects/01/014d2911c247f8d21c502916a9cb20f7bba8c6f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/015b6ad7c08735a7856ce404b33ddce317d4c23a +/.gradle-user-home/caches/neoformruntime/assets/objects/01/015b6e71f8ee84e02cd8cbe2746e27a48c80fd19 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/015fe70836561c092aed4dc155ae6448f9d0dd23 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/0134b8025c7ec8105cfaf850e0a4040fcfc93cf1 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/0146d41bda81486f4bb774a48525a7c5bbf5baac +/.gradle-user-home/caches/neoformruntime/assets/objects/01/0175c017335a7fbf4a23a357b4f201bee0383fe7 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/0185a95af09199750da74d9ac8b61fd5f9e351ae +/.gradle-user-home/caches/neoformruntime/assets/objects/01/01365c7ce1d328129648a910a9413d8d59d7b831 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/01564e4a93458fdc78544743528f31bd0ee1335e +/.gradle-user-home/caches/neoformruntime/assets/objects/01/012237aa6dd50c9fc43bf5f53cb4a49ddefdb2b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/01/01466740b89dababdd58f6477403db5228dd6022 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2a1f98cfe05895f6ea959e00df12247bbe5dce6a +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2a2fcf485744434e5a047066316768160f4a0b93 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2a7e0c71307f2f6d1b6b2e4e89dd83974cbf41d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2a15f0994223d6033f6450e5596eb8018c3fc1f5 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2a586ae191513adb9d84e4c55ea795529087f1f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2a965d409f4fb92d54d6ede7fc91cc47eea84881 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2a3535b318a9132b00a1ecb2a3216c8bf237f279 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2a7567bbec7c6295119de7daf4951b606c07eec3 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2aa5a5c53aa0e5722d1804a085cbcb5a705c524c +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2ad3af7f859896938ae115828662030128ee6768 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2af2ecf6c555bb63950994796128a72c6beecc7b +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2af9e14d4d56044ab96b5fed96a4af261eb230d2 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2af3514e4685782da41c6c1bf003e49f7235aab4 +/.gradle-user-home/caches/neoformruntime/assets/objects/2a/2afee169a65f18cf980dcf8bc303e46a18038880 +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2b2ac8e3015b75d9df65b12ec1b60fd515add986 +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2b3d0e7b0b2c47cd500b15697dbb20d6da4c6576 +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2b4f4deceec8620529a32804c002807e1ec4341e +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2b8ec77b85325726ac73bffe9236cb6b42b35328 +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2b22d153f5e0fe3f68b5342ae92e1e572de0c36f +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2b63cb8b075639c741d798e9db9fead6b1dacdb2 +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2b671b1f044f5b77f0473d64b8e108a5724ee653 +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2b922bcec8ab14e5dfeba99bd444b2322528f098 +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2b9277d2e4542d106bca65e63092c6fcaadf40ea +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2b3045915d07d98dab3279bbb7066b3ab6f519e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2baa133f72953a7760a7c3789bb2af9b58646f3b +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2bad307a2e2c4880316b7a0946dd0e4c1ed753da +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2bc9a4fb9201db00c68cb85e28b22c788b8b478d +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2be6e1d2d7b2ead3e934c1d0ffe22d0a9007f1ff +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2beab2d45dca0d65368ca44e2757df67da28acfe +/.gradle-user-home/caches/neoformruntime/assets/objects/2b/2bfceee0fd6e951984251c3683546350d8931bbe +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c2db8e64a159d526c4f0e6928ddc852c923252b +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c7a5a4388dae71dd5100f6e6c5423189e4062ad +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c9c67b6239e6201059540c0f720e6b8837bc754 +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c39bcfd669f132ea1e14f4ce20c310e94440a69 +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c67b51f00220012845ff70ec9570f65f1919b3e +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c93c34d755ef0c4831bd8aab06fb2c9cf0e18f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c407f9ec146b242dc6b343faccbcd814a697f9b +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c571d88b34724382b12dc367df7195ac03ce468 +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c703fb604e0372fe71c75a11f9b56afbe3e4174 +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c3628f6c930d4659dc70eff2210aab53e05bb8f +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2c71430f0cf03dfc9b8d6c72e3d36477210ef6fd +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2cb1b36b8660308e06256e2e18b92205ab9abed1 +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2cc340b0663cc0b2c64e88e6daf0fc1a9b35fc2d +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2cc660a4ab39a14a29ecb79265684901cbaf90fe +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2ccfb856440fe00f1862e1292ca87a2168f924a0 +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2cd4d29d08d094849c445d6df887e10e2bef6ead +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2cd6168b26195743bcf0bed440ad45743ecbbb34 +/.gradle-user-home/caches/neoformruntime/assets/objects/2c/2cebf08712ba200267c03afbe4b09b183ae16bca +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d0deed2af648ecb09b0380c1588993cfeb2c32a +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d1c7d18f5878cd82a294ea55bb7b611c5ad5854 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d01aa86f7a45e27cc61f6875c39f1f844aa7fd6 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d6f3a6a48dcd6e17232275cf2af87c9aaad495f +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d7b327f2bf689cf5561dc9416d7cdd2c07a62c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d033f1dc484294df50a0180a66be5f456a652fe +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d84a21b5d925497558acce92b7448e37a7bea11 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d0296d2a048fe41c2ea5c1882f569337a7af698 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d333e27b8da7d2adffed6380b2b13ddac96f0a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d454a4d3cb18e736aecaa4c00298085ded913e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d888ac14e51d7cab64b5e735456d25bf000720e +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d2812fff670e3fda3499ebba72b85a5743c2c37 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d7296dbf7f097ea03fdbff5f698634a3ded650e +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d63137e2ea2e90b1f24b98d72382f8ea26236dc +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2d67535d719b7485f2a97b1f397051302d3ad1cd +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2da80a0e02b72466fbb3beb0258aebe37f06d2dd +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2da932f9cad41c7a5cac3d9c5ddfa70da0808952 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2dab15d51297d5f32d65335a312b473cca578fa7 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2db5799d39524c6f99e439d310e4a0817c61660e +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2de87d32e203d429bc3b13c3ec6060fe6a2f7e38 +/.gradle-user-home/caches/neoformruntime/assets/objects/2d/2dfdd8011f30f516b0e5dc84ce8394822ae2669e +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e0d70b187702fd8f00994573d36bc185998c2b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e2a3fbb0fa73bfa638b5c3619be174661e75e5c +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e2c162880810d78b449371dbb971472c4df4fe0 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e8e4851fce57c409245a321827275f390158f89 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e9a2ad93404bf022c96f9fc944519ca21c14122 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e30e1421b2b749fc4bb1ea187cd497ae06ace90 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e31efc9abd7b80f12589e1c5ca41436399f11ef +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e59a1566b1cbe10ac2706f944a69b4e2010d5e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e82bfffe303f65ee7c2c23b4b0b637b79ae0360 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e505c6bd1a299c567e0f20f28fd8a3ddf3072a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e972d0b376dc3ddf3b23ee24d70938da8f9d9a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e08911ec9116f3e21afe947fa6fec64d1d6fcb8 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2e431342cd6e0de5ed7fd397d733dae07878ce9b +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2ea2ed311699ad219b6eb8a68725ba2eec5b69b1 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2ea7872655ca486677b75f64775ef59357ac2d32 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2ead0c18cb6a07570950a6fdc1648058a4f4265e +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2eada693a9d40259e38b8e0cdbc1914d2b428560 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2eb9169b1fbd87bc16a6d6b1ec5f0178038ce689 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2eba27e201b8676c80dc6a9f1f7a44e6efddcc4f +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2ebbe4f72dc8cbc876159eced4c138e523939279 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2eca26df0ffa646edee1248cbd22731d625bdfe1 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2ed55ab3b9df49cb57662b483a9fa40403d380a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2ed065e293ef62c22cb4d41eddb8cf26d4044376 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2ee826b38dd00813f26692a7de90e352eb4c812e +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2ef258042270ceae68c58a9bec9ae0a9ed0b2580 +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2efa63676b53e391c7c184d739044880cf694fee +/.gradle-user-home/caches/neoformruntime/assets/objects/2e/2efba559e9d96db67fb182b31464dd9b6da4118e +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f2cc1f4ee732866e5e6c78741b1b2a8caf789fe +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f5ef01938e2150b020e84704f8f1d1097dc8879 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f19ae244c92e4ed7fa8c205c0341f1f3a4cc67e +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f25e83bbfac230b610691e174dc7440101ed279 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f30dcc0a8d06de7737886fdd2ee7012a924eab7 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f76af471d19058770d322704e2ae0b00537d4ac +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f80b9fdd8ee776dd2032f1f906fdc0cff427c9b +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f792cc686394f284b8fd3a9c021fc945ad6cc09 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f908d0a9e681d000f00652bdbbfeae699e799f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f2223b7dbd52a91055bd780184f6881e5db0bb8 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f3436fae7a108cb5f4731fd3cbe31b0621fa725 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f5568d492a49c0bc36a9d2711f4bd87977f88c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f8790ade72501d5c82ccaf1ab9552b0c7b19178 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2f812473b307c7586e3760ed8c4b800b8802e2c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2facb0995b98997033ad5fea8fdd501b388ad8cd +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2fc327f50f68f153197ab9f104b65714ea3242b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2fdc1630c74c7e10a0cd6d2046ae158d9926c960 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2fe7558b44e0f2115de9efc14027f431b74b8e5c +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2fe735984961470b6f3edff20ccc34bc90a35ffa +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2ff78c98aedfb84ad6bb0caac5436d26e28b2589 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2ffdaf3473cf6452422780876f6551bbd8597356 +/.gradle-user-home/caches/neoformruntime/assets/objects/2f/2ffe20140c099788da13857e58695526075e17ba +/.gradle-user-home/caches/neoformruntime/assets/objects/02/02ab34275a8711ea0145682083c321516b1ce490 +/.gradle-user-home/caches/neoformruntime/assets/objects/02/02acc7700dc592bbdff3dcddab03f5c43d9f756e +/.gradle-user-home/caches/neoformruntime/assets/objects/02/02b6bcbd9c941183a6ebff340c10e4b7c3c5eb4c +/.gradle-user-home/caches/neoformruntime/assets/objects/02/02b29a0ff4ac6b40acfee9076fd5caeb6719085b +/.gradle-user-home/caches/neoformruntime/assets/objects/02/02ddd8dece2f0e0ebbcccd0b8c1530ac48716494 +/.gradle-user-home/caches/neoformruntime/assets/objects/02/02e04a1bba845ed4b3c0d006ebffc894c3588604 +/.gradle-user-home/caches/neoformruntime/assets/objects/02/02fd7c2b089b399810df9d6fafe40e15a8d0d07b +/.gradle-user-home/caches/neoformruntime/assets/objects/02/022c7a36e6086312bd6815603f6a0399341b4020 +/.gradle-user-home/caches/neoformruntime/assets/objects/02/024adc119457d65ad4e77d447c59af2df2e9d56d +/.gradle-user-home/caches/neoformruntime/assets/objects/02/025f732e23e817832bda44466091cfe896cb08ff +/.gradle-user-home/caches/neoformruntime/assets/objects/02/027a4dd9a154b579f299743b00d185f4a5e9f7a0 +/.gradle-user-home/caches/neoformruntime/assets/objects/02/029a8c21302bfd3733de3b9ef02a0b08dbd8d75d +/.gradle-user-home/caches/neoformruntime/assets/objects/02/0276d2067c640e57b91046514cd682e54a5e4cc2 +/.gradle-user-home/caches/neoformruntime/assets/objects/02/0279a1e0669bfbf08cf8133a168b51a887aa6e7c +/.gradle-user-home/caches/neoformruntime/assets/objects/02/02023d32cefdb86096a2ce810fd8f2863dd97cfc +/.gradle-user-home/caches/neoformruntime/assets/objects/02/02332b417ec91b279ecdd49923f2e162d87bfea4 +/.gradle-user-home/caches/neoformruntime/assets/objects/02/028386c3a30bacec953cfb951f6550674f08f607 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a3a5bbaea35127a887727ee65a9b8db028ef4df +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a5e4bef6baaa603578055b2555499720e8f1b75 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a6ddcf1e7ea91f209713d03f713ef4d762a6437 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a9a84719d7f5fc00aa2f50012c67f7afd0d8368 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a032babadb2e384f1412f6ac05a69e0bd0736b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a67e115eda155d00a0c71fdc4f454f040d14e82 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a70cf139a5eaeb68bb595bc33d29ce9f7cb74d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a73a4136d37e22bd44e92a2caf584f4f55dd70c +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a088e8aca46099f75c1a41f25c4e7f3e9db8524 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a92d0fd263265719532041f6f2ea44c7ba2f2e2 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a201ad8e740595873b23ab0d98636f0dc7d3637 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a442e7b5274ecd5481e9062418620fc8fd17e57 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a767d6948f06027f17958955c6b2cd9fcf3f151 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3a27444995a679ffa6b87daf3fde2a02451629ef +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3ac386d9b02d557d06e9dfe701045b2b01b23fc3 +/.gradle-user-home/caches/neoformruntime/assets/objects/3a/3ae880252601ad23cb57438b04bd6680522be664 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b3f06e97c457da5e539e2e406ce0edec9d4be88 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b4b6c7f37f78040f6cb4b4fcb2e8ef8103709d2 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b9a1020e956a1ab334c518447b54146e8c6ed4d +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b26c455634254e4b8617b7c65b79d48c40dcc1d +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b80a9b5ab0a3780e249e2241201c2e91c791e76 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b096bab32a08b86f0b323bd94319f82adfde63e +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b99ac91d9c17e6d4542ccc4fcfeaf2fe715b2d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b318c399b11e0adc81653a8372fd5ddf4daa14a +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b383b2809b37b9eb1f4fea0d1069a55e8e8b949 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b487b3e3ec6009b9825fa23c941577c87488ce3 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b521cd8a14d4e2f3ec509465aaaff956239d056 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b640aff2547b47e0f4f8cbcd6db0dde738b9430 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b706e6a8836326e165cbb24feed4dfde3bf5656 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b9446150e77c47485d9aa943b72ffc9a2263ae5 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3b26613786f78114f40a1078c88311e31308dd9d +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3ba11d50f64611ffcf47ebd2c36658db136c22b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3bab28dd831dbd0f70fd74ee1bf549571fbbecbf +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3bb88b8940d6dd7ea27496dacb41c7379bc9e1bb +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3bbb9dc8987ea084ed200fc419b6fb60454c6e13 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3bcdd95aed8ab90427ac5b392d74afc24df93e22 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3be3cf9a5c8534bf6548ba89c699a3b2abf9e074 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3be8d0b483bcd9d7234a55fa8b0ab81f0713438e +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3be71ff151d01c04ae2a08c8c1a5286426cb3768 +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3beb96e88535529e6e24f557e927fffd57956a3a +/.gradle-user-home/caches/neoformruntime/assets/objects/3b/3bff95daab248a565e9b241eaffaae13070b9a15 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c1c1c3fcde317846d8099bf419f7eca455e8724 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c5f513f53d595e75f787b764dd054882d9c3146 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c9f164e25e55a37175f1eaf60ed2675df0612b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c435daad14ecb014d2b10681bdc579fb0f6383a +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c0464ed74b4fd0697f913420fa1839cf3298dd3 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c624a2b3db73f3a6dd9a0548a09ad4b7e5255a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c636ebfa3a1540c450e3b16bd8ddd25cc086723 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c760ef797c1dd3036c5cf7a51de04a2fdbc238d +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c904dfff38734a24c2c6857f6a13251a3901a4f +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c83854d50456a6cc9a4dde52975e71960da1688 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c98528d4afa4af1201e4bf7dece20cc382835cd +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c4519470a30fd304e7189e1e7d454a3048bdc3a +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3c24328855ccdd933fba4b3247b329456f2f1b81 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3ca11902af61eec12ef68e9cca8da23d3874d131 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3cb4ec3901425f7dc7c61def23a25dc0d286123a +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3cb58941cda74d99d934ab7de21a8197c02c2984 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3cb86999d7ece06f86a2e29c94b760b5d77f63d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3cc981a101ae80fbda5a40ac54ab2f418f087898 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3cd1a62b2373b7140621396eca5d60e244f7ab71 +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3cf507fd0a0288688962bd265839e4a706f5d24b +/.gradle-user-home/caches/neoformruntime/assets/objects/3c/3cf0610c73617c572dc079fd3d42759fae11546f +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d0f02f1282f807234ace3f5d408d71069340857 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d1a5c2a922aca9957398b9ab3765c00b3309033 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d1ca64f306c4ca5c7009a5cd2aaa4ead3f49651 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d2aee74c91bf715f8cccc5d7a31fbffb27b916f +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d04e75b29e9a21df3122d60cef4424d5c2514c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d7d2c5a95f0829dbec7f2fefbf16660e38ceec6 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d14cf8f25bd73f558f4e016fedfe26d07067b33 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d23df1c4aa63856b669ca18c27c240d346e7665 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d30cf57e7ea8e8b3e94b7b1b6c21310c03fcf5d +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d99d34e8bcf0419fa3696bd2e95a4b2edaae331 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d218c4cc63e12d5578675f2db6a6367db88d2fc +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d8274d3fe03f28abb559e08505202ca5261ae47 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3d6144967801fcd05665f45768082dac5b4f36c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3da9a539fa3df4e70c6ab3eda39244288d83d3c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3dafbad9dc1b4f6d362b386391f1c017508d5d42 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3db7f5a1f49f02357824ad7200019ffa76256181 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3db046e681a9888135e84e20a3e009575be65c62 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3dc3bc30c986313bb320a4d1513b413afad48254 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3dc37b550892aad4c165c3f23214e3ccabeabb53 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3dd0925f04753ec06650a62c4eb0644d333d482c +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3de85c831b083e10d906c3ac007d7ca9f36b4075 +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3de5312afc6f3b85438788025d54d984fdf57cab +/.gradle-user-home/caches/neoformruntime/assets/objects/3d/3df72a8b90820eb7edfdcc816bf0febf49d94b7c +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3e1c63a265eb5d14c4b76e342455370cd4b428a3 +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3e56f0d658620d97b10cc9a7e5483eb940ed2e08 +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3e299e4046df5f8a660c16db5b50faefb3976cb0 +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3e33597db3a9c2d00ea63ef5f06fd8c300117285 +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3e2868131ea9dbc2197f351b6c93571ea2e30ad3 +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3eaad2c803380279f22157159b710e59c658bf46 +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3eb667e446603d7c1580058b7d2656c723634760 +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3ebd8af308908b19c7bbe797ce44fcf1ef36c654 +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3ed807a2900832bdd1f68a4c2507a6b3e350bd5d +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3ef1282ef1b9783f295770629b0deb9a018858a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/3e/3ef94652f082954479fb1b26ea42c92d1801bd0e +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3f0cc34f74847ecbd39b7bb721aa70592c6eec9b +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3f6d5f2b9ea4f0091d971e05a2551a4386ecf299 +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3f7ccc87f31b5307ebff3347596a35fc0c3f11c1 +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3f9d592a660e95a22ccc7952dcecbc378fde271e +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3f716fe047e7ed8d751d01f7f57f65238a55c992 +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3f1655db225a7093a59d2274011c312b3d522e80 +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3fa0c7a0cce3dc05632c509b1c364b45a9335c76 +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3fad13f1e9f4fa6eedcab98ca691c6c112087b07 +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3fb6dc2b199729123776c72166f9863a3d6881ee +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3fc061f2b8a93cd854764e6bae2007d4680a45ed +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3fc2112817cc025c93eb95cc1d0becf1b963b90d +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3fca17f8df0a59b97686b8601a34faed92e9a323 +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3fdd5aa55541d43545c6f0a32a46bcfcbddb5275 +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3ff01c01f8e0e0e1132a470e153a48951853ffc8 +/.gradle-user-home/caches/neoformruntime/assets/objects/3f/3ffc1f0a10482ab25ef24d0a618aba0289dbb827 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/03a1fcefc1224395d0c2b87525cdd17a270ed8f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/03b56f10188fb173d2c5d767674d55b9f5ff9902 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/03ce1d7853f2cfe8bd4b9cee68ac7fa1a08285bf +/.gradle-user-home/caches/neoformruntime/assets/objects/03/03d52bb8840398d21e8ecdb4e61c7acef69fef0a +/.gradle-user-home/caches/neoformruntime/assets/objects/03/03ea54a43c621c13c6d38cdb857e4bb6a76a8023 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/03ef08c7b003a62766495030acc60ac475327582 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/03ef8795b0506f2a7601fe6e523f84b906507272 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/031aed1262eac0ad9c3275eb53f75c38298c47c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/031e80a9c2aa7455df9c9092e2136cd94e5bd6b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/032dab45995981f555619bfbd8ff80a0fc5f3d91 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/038cff4932ee56b62e5c77f334dd5298c7cff1ae +/.gradle-user-home/caches/neoformruntime/assets/objects/03/039ffe61b98008ab3a9abf930a7d0d994e2fc10a +/.gradle-user-home/caches/neoformruntime/assets/objects/03/0308d7cbf420532ce02e650d13eb5c9f577b3067 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/0366f0465a1b6a3f186b495b4578c7b1c8929943 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/0382a4f5477b0ded79db02534de00b378081eb54 +/.gradle-user-home/caches/neoformruntime/assets/objects/03/0389c34aa75fa73615020a81151a2eb53fea6123 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a2b2aca57376ac8daf67a9c339914d2ffbe9828 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a2ef804bd313ca3ff2e10d205a9e19d50f174df +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a005d06d7684a38172f6cc763470e28b511c012 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a6a5bd43789676bcee313f8071c1f9138729597 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a6c47aa4f8c2cfe3237b250ed19b8714d611fd2 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a28fb5d79c2cdcdd65666d9e8c11977b76a70c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a101c336082c530e93945b0e31ac818cfbf78a0 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a208cddefe51a2b1fd81a3de82b3e8c1977e299 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a379d5c8bc1f29d5dac3b8296d6d5cdbc7e9470 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a916eb00f50e0bf53b076a24f697a80ca5dd9cd +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4a2086473e4e225246a019f3d855411c641dbe15 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4aa1a0d51f4adf8b38c27ab00bbd7da7ea841e7e +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4ab9e7d182a9a2a6a5d800764cf0b174343ecf92 +/.gradle-user-home/caches/neoformruntime/assets/objects/4a/4affb685bfbfd9aeef1998e9d711e6014c5563f5 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4b01bb0855e33b81ba104d0c94fdad473ddff3b7 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4b7a8bb552b47179761301bd7db481543e2404cf +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4b7e0729b62626f5dcc65be24443d83defd30ec0 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4b63d4da2bea032e4573b985ab3908a8b99a98de +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4b63e1c87b93cf75d1a70b92793d1d5ccf08b103 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4b84efdf7e8a4e45279bfe841ac98ba46c4cc5e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4b685fe9c23f03e3a24709a55f3244d2861b999a +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4b812a92858942797979e63714dbf814bd246d35 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4b905fd80da30e902a26f0e34f1ade44df0fb51e +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4b7422b5e6324067f24ea7aee2b8f242ce46069b +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4bb5bce96a4fa6e248b253faf92bbc959f772e59 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4bb85ec0463268e73658de26bc29ba60473abf96 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4bc6be271666131b075137efc1bfc8e943e41482 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4bd8e7714429a47f8d278318110600d95087ce5a +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4be48610cc17bc6ffd034c1b6c64db5290322c32 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4bf3a22cfa2efb28e177b74e2860751cf03634a2 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4bfca4c208651c6e914ca4ad1d0fd05345c287f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/4b/4bfefe2ba00af801702211fafc868aebac5d795b +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4c2d24d500c67e4cb7a2aa82bb1c1964bb23091e +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4c2f6fc7afe9eeb0ce6158553fa988ba2b532db7 +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4c3d4706c8193f2748b88d04d607b94a46071fa3 +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4c4ea0c08ca3de147713fc7a526a4923affb9585 +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4c7e2706d6840e1466cf056ae047ce947852cb09 +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4c7f4cdd0626c77839e9ddfc120acd403c5444ae +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4c26d916ccddcb26dd76cb8dad42bd87bd504c38 +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4c237fdb2ea5f970c73b18dc7d17df4c5439fbed +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4c0620ab6cac070584e06b1508784440abfe48a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4c84011d7576f1a0dbdf0691ab8a4d102f8ba98e +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4cc4b47a09fbcafe9e7715255acff0f79772c591 +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4cc99bd425886ee0692da0cc91f680828010a884 +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4ccda0fab4b44fabf2a6b9f8aec4598b23f6e61b +/.gradle-user-home/caches/neoformruntime/assets/objects/4c/4ce121465f51e7e7bfb039be4f6ad673b112e277 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4d0e0510a433fc624b8188509088aa04a530e9c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4d89f4dce1ef82cdd930f10f9dcbc3f1e3cf24a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4d317c9632c6dc5cd6ec10546f6752a3ac8fbcae +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4d625b1e04e3c3d35e16735e7c376a2e540be8b2 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4d659b75f4ee6440d784c212c236a213b70370c2 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4d756cc6dee2679587cf572580e82e70d3c47033 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4d9169f5ec84feb825c784696b1b45368fd77611 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4d788294e6a2e174f2d8fd1c462f20df97f9dabd +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4d69060908edf479353f2b48e00fed9009d3b2a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4da41564cade0d4fa3e9babdf14142724c2d144a +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4db3c2a36a1f41ce3e6559ebd801318c95c7a9e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4db948ad463dcc6300d5be59abb1d185a5f25b04 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4de3292162a343b21656e610342d17e92331c574 +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4df7e7dc903c9c80c451017c5a62812732c97d1c +/.gradle-user-home/caches/neoformruntime/assets/objects/4d/4df04261a31036a117c1e0b6a29586491cdd74f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e0df873385a1ff16081134f00b01658382267a2 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e2b84745b8b544d6adfa0ffe774b2e4fa04c55c +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e8f8a6dbdff95795d25bd7bd0e460aed28f01c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e9be4db8317c7e096ef4f5cfe016f866e36f40c +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e50de01407050ed8e51722ef6f021c8e1f4ca5f +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e52f7136f1c64a57d85f5a3d4f6d00009c1bca8 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e441f1e9f9035d97aba12de0bea604d71f47d69 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e9240b0b53868110b26cd527e2dc852cb406895 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e320073a5d3980a784cf2e3ed875b50a9764550 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e652192e2fd5e7e292ab6c386c1e7f8957f9bcc +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e1465768a779370a37ee82ca170e47b3bd14edd +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4e540903246cbd7140d2125e032de2ec44aa9119 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4eac11b10e9585b5b549c111f0a46011269886c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4ec488470e6e7b626a62c700b05f9678f54ca4a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4ec831592ae2bcbac1b4047a9f9f72a2de5ca834 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4ecb1cb31b563bbce5dc4867fa68032e9f5f7e0f +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4ecb43cdcadf266fd37297ac795f591fdd5b169f +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4ecc38b27694d9ad73b20dedd154e5efe6b23b8e +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4ecf07e9b0feba4c6a3d6ecc12eef2b7e23f9924 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4ed098c177a4d8f0e7cc64cc4acc008f65cba798 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4ef46fd3165dcd588f4b2d945d4aacca9ad90d42 +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4ef2681e351d00e80403a8f56445577fb074e9bd +/.gradle-user-home/caches/neoformruntime/assets/objects/4e/4eff70fec48a26fe31c76b414cb732d47595e2c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4f0cd42f8a076d4c856c09bf5162b8f360c6f50b +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4f2b3cd4cbad0fe999faf32dd7334109b9836bfa +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4f8a3193ebee4e2e31393bec691011a57d477dc7 +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4f15d4d0638863392f5f0038a38ff87ed5c40af6 +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4f55f82edbaa1c600462e711ce5b15da57e47e6d +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4f903fdda92ed58d7a277a4221abe91c62f66f4e +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4f83255b0f8a4d58969aa5bb49a0a4b599875c3e +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4f841896c898aa4a20db902ed5683be431727d09 +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4fb4b17f3aacd8cb53ce70c0c59a15767d97ec3a +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4fbb4e179a4f4d7c5771f2dc9829fa1655953697 +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4fdae2c387ce4b9598891c2e8f44061fece85265 +/.gradle-user-home/caches/neoformruntime/assets/objects/4f/4fe9374c1d2f4277aa45fa6610d33a384dd7134f +/.gradle-user-home/caches/neoformruntime/assets/objects/04/04a415716140e9d508b438d0d8fcb6fd2f232df8 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/04ab8fe1e63614fb78fae031043abb111936cab7 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/04ac3b928398bfa3762c6c2874cc66dcd8381472 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/04b2c0edc7128fcd1f414e34541f6fa675871cac +/.gradle-user-home/caches/neoformruntime/assets/objects/04/04b8da035ef067f8ba1946692ff9fd261c186c4f +/.gradle-user-home/caches/neoformruntime/assets/objects/04/04dfc903b459be6103a30401fbc411dd960d4b60 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/041e272a9b846d85fa6ea5f7b58efd8d098948ab +/.gradle-user-home/caches/neoformruntime/assets/objects/04/046ea45b6bccc4d8d003b4dd93ac764999303aa6 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/047de78010b7c20397f6df4509bfaa39b188da2e +/.gradle-user-home/caches/neoformruntime/assets/objects/04/048b621c15ae08cf2012e67064b3586a280e72c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/048d0a8b845eee8862e5d22d7df69a88b587dae7 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/0426b1c47e484327c2debc1d01b5be6bc6cdde7f +/.gradle-user-home/caches/neoformruntime/assets/objects/04/0445f088325b39038df2b37a958ec6c987f5e714 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/0463c52f9e7b425006810c8146736416dd2b9231 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/0477daf851cba253d4c909ad3245b6cde4ea4937 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/04430b2c137aaae37241228c6bfeea8e62cf48b5 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/04547c5e9a62aa47809ecb464d578cb8ea1afc23 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/041446ca731499a1a15438d8df05fb04d942b2f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/0455845f8b0976b0ae74c9fe296fa9a6a2f92c6a +/.gradle-user-home/caches/neoformruntime/assets/objects/04/043067183af1d374857b0210fc281535fcf64665 +/.gradle-user-home/caches/neoformruntime/assets/objects/04/04113963487749e081d331e967a9bee8ec9217e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5a00e3f6b3f6124ff473f27fa28f35890c2ffd54 +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5a2a953165cac17c014e9da4c202f1efde19ec46 +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5a5a34d32df0ff19a9754820ff486f0482d93dd9 +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5a7d4b019da7be1395bd024715aefb55a3d5743c +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5a8e8cbb8ab63cdc4f7fbe8cef7d6c4baa67d630 +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5a8ebe13d86e8fdcc6dc750aa4fe03bf00c07a18 +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5a9de95708ab5797123933e1523e47c9f504ea87 +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5a12a9ce0f818640c7ef49832c13266edd27207c +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5a453cc72ede19154bd0945fc846e06ec54f84ab +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5aa31e94e64488e10a8e0cb985cb2b3ea5ac089e +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5ac7f5e586f1fdb4966cdb7e39c1b5989c52de9f +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5acc575e360a4f94d5a06b127b93c8c434f33247 +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5ae6add80b9fd5dc84ea5399c3a621e4f31928b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/5a/5aeb216fb57aee98f9f6b1dca27cf22c259586c1 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b5d0db680b0908b6e76cd898f8cad3e0227b13d +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b6c43e4e02aac1282b20934bbde21646532f8d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b8a1ac9caa777cc31443a08654f5044b979aad7 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b12b6441b49870174c1b1bb92bbbf83d7794c82 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b13f3f71578e30012b3f30cc0057f8c846118c2 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b21bad52e8963d8ac1bbaea347e3ab6a3da0574 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b78e2daaa4bcfb7bb2158859e73f6853c0a5286 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b086af7cfd4394a770076ad6d4cf2e60afc89a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b195c23a0e44177ef75975b5bf29c7315934908 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b546e717b6530000d18bf3a242d27fdaf5d2bfa +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b4904a7312be2c55a1db1b500eff30269f45e2e +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b8254f01a2b56fbded4147440459d083ec47cdf +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b37751d224d4a409435095ea29bfbd8b5218092 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b6990798846f4a425cf2783e5e017ca741b35b1 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5b822601569264742c5a1a00baf808acc4e83a0c +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5ba6a4be8a288b2452509afe0b0c15ee166ec07d +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5bab8236e0fdd4459cc53bf7ab547510b6cddf33 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5bb5a04e776d69ca12b1d7bc369975f9bf62e741 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5bbea888cd1f9266630d8668a5e0eac0d3e534d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5bc44a2b2ffe78ad063a83e3c0315b590fc38ac2 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5bcc8f30d6b91f411a072b3d519a10e56a52bc5e +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5bdac09a1d22de188f771f9d9e372440d9e40523 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5be2d2af796b7b06a3c19d9e753210a272f6a194 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5be8ac36d235793819eb009a90ca55c05a1ddc46 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5be9830370e3d98450950045e8261182c6835eea +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5bebb1b6dad45a0f47c1912f6e8983c7ae24d38c +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5bebe57eca536834dfdd8183936afb75ccfe7362 +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5bedcd6f06dd51cfdecbc9907dcbeb4dcf76123a +/.gradle-user-home/caches/neoformruntime/assets/objects/5b/5bf38da0a281f7f9f0db9109f2155e4484abe404 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c0c1db45c95491f1e8273a3500ceac73f484830 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c2a63ab6297a459a32b6480eb6fca83377657a2 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c2c1396d025b31899e64170c0d68b5aaa5bcf95 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c5eaa8d9f0acd439140e81270789da9ecf6694d +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c8c7e969869f97b45b28458a29f7cb0abdaaa9a +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c016e18ac7a942da00fa06522166b6210c8b3e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c42d1ae39df50bcdfe714db876148720a069efd +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c97ac9788ab81e560bae32b0f5e4fc244e544b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c83631b528231825892d266de71eda05fcaae79 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c952648ebfc26241c9a5eccf4df06926b88d2e4 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5c29424360d286b446e2df1c2ceabcc4565475ea +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5ca580ea624bc79ea0d0dbf1befca09d639956f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5cab2f09f1fecc35ea879da5a30678b9c7daca23 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5cd4263758e9a45acfe027bf8cdf659cf3dc62ca +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5cde6592ea7457b2bc11169b996cc491790608fd +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5ce5022d7f6176bd0ebc0aceadedd228d2b2a8c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5ceda6115d3899b713214d766efc957e1963ddc5 +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5cfaa5161ce8e7c4e1a56aa13d1bb05503cb527d +/.gradle-user-home/caches/neoformruntime/assets/objects/5c/5cfb0802f4ea18691b0df78c679ad054f97380f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d1c8f6859e75306b17ac3d4f0eab61b686d9b5c +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d4bc5d00e649120a071c47477993fb107375f45 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d4ee66fc595356556dd69aa04d16ce2bc6ca9a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d5e4af694b8bf892a9a70da56c380d1100050f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d05cbcf24b004857f25a685f794de5b0d25bdf4 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d6c181854a62ba9bac3a4fdd70e22b8d161e319 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d8e7a47c637d50c167fc9c7d603ed58d9aaa23c +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d7690eecfec6ee9ebd6e2731374747ae6b57c2f +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d7950a8e81d01ecf611ec91f8d9c55dea8b542b +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d48455ed9dcb058b5ae5d246294223e858c8113 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d69945c63a3a26c4f4d9fd4e980561f08430a4a +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5d734258d232ebcbad8485561b2e031d26db89e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5db24715e858119af23a6d4ec8a2e6384b0de100 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5dc64ea990d5980f7b435d65590b5fadc583c22c +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5ddd64522bdc21ad230300d2d21ac91deaf2db86 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5de7eb14bb1a4da831cc46c743471dcf56f477f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5df4fb508bf769c0d9642ed0e4f88e60e832e05c +/.gradle-user-home/caches/neoformruntime/assets/objects/5d/5dfd5cb900745dd72c32aa4789e202dbaf33f301 +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5e7f45451e2d0bcc22173a977e395454654b5ca5 +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5e10a7d73e89ddee95ca195b3642ac225ecc8340 +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5e47dff0a1a49de2005b037ba11022d0d137b831 +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5e70eed559dac551cc7e0493793628e7b55a44d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5e881ee2418a6311e99592bfdb745faa8987792e +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5ed7d5361db27387fa99713af11549a07cf12a69 +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5ed74a344ad807ff75ea8010736a7a2277925458 +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5ed8873c9403762b7e267c0fe90e414379216519 +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5edb78c26e7c33f3b063ac681edd7b61dd3381a0 +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5ee286112cff8297e06ac2ce7ab5f614490c668e +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5eeb380f700bf402638e09482ff55ae926bde71e +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5eec2047e7ef4aeda077e448768e9d1cb528050b +/.gradle-user-home/caches/neoformruntime/assets/objects/5e/5efd47f4bde0841741418d8ec3a1268b78a6d94c +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f2c0bffc0fd430d176d9a0ee1eef799cb713f5e +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f4becb2557c3da9947587eae18e0ef899769eeb +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f6a9b392a748138022f70c847a15b8efd764f05 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f37a9b5e066526cf6cd755a74d48219799e16f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f38b63f4b9f7ce7640db73b6b9be4131629626e +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f66affa1bb143794e97aba6b2e7e600e61d0b4c +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f93c70e7bfeeefe4cfe5be15af57210a5d25118 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f98c736907655a48944c763657a38d472416d6e +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f99cc54eba4f024e28b1bdacd005112d53fa511 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f569f554286fe2cda904c330392f6cf781aa63f +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f767c63a81e6579862c377a137e977d18768fc0 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f890d0d5415bdffef389911b57b01f73888811b +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f4755cd8076306f228257771ce72830fd245832 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f78203be17288b5cdc2b5176280e8312f8e0b89 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f5048533f7301f256b80d010ce969909ddcddd1 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5f05073888c608db67790239fac0623f1f2671a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5fb99bb93fb8a88844a7026b5ac3c906f053761e +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5fbcb419f46e58e1f5079abfa6099646a6f035e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5fc617611c3da52563bab9ee7e017bb514dd26aa +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5fd4f3fd1c07f8c03452c27c8a188c2947a96f75 +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5ff6a8096d2c81d963dd7ff775bdfbc3ecf7076a +/.gradle-user-home/caches/neoformruntime/assets/objects/5f/5ff04807c356f1beed0b86ccf659b44b9983e3fa +/.gradle-user-home/caches/neoformruntime/assets/objects/05/05b10bf6d4554c28cb2fbd0ed85a505e92140e2e +/.gradle-user-home/caches/neoformruntime/assets/objects/05/05b923c53d455a77b38fc0398797afcef26a3888 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/05cd621e2ed94339c2ea5f117afb153c7a75f77b +/.gradle-user-home/caches/neoformruntime/assets/objects/05/05d3db5cb1152f934874c5d496f6ec1867c4d74b +/.gradle-user-home/caches/neoformruntime/assets/objects/05/05e98ef311575355390b4b06f103553e24b2f027 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/050b58b93370995f984309c705e11b890e11a2d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/056ad6f17d5709861fa0f069c615cddf5be8d007 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/059dc76337eaf2690b281fd6013e2c7b57c34df3 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/0524d6385119aa8478e5b9610bbcb06db6266f24 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/0529f4425e6066a1628fdc7b89142216c4a27f7c +/.gradle-user-home/caches/neoformruntime/assets/objects/05/0566b450e5869e0f41d3256d4a28133365b62063 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/0576bfe8c73151c8e9588fb41f6aad29e4fa26e2 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/05799cdc3f99e23d8bf3977760dd420c527f5f0f +/.gradle-user-home/caches/neoformruntime/assets/objects/05/052248b1ed17167e8bc8b9f61e38a93c4e5f4ca7 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/056393a33a9633685c3dc3be2887f5cbd7dbc63f +/.gradle-user-home/caches/neoformruntime/assets/objects/05/057385c44cf4b4a32e97ff1dfdba1a9a87875bc5 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/05084588e272aca53e25940af43624f7a1449766 +/.gradle-user-home/caches/neoformruntime/assets/objects/05/052706580c2512db6ffe36d37ede67dd7900016a +/.gradle-user-home/caches/neoformruntime/assets/objects/05/0595544638db96f0add571c3a6ef133d0e90f4db +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a1ae356c74c9fb89af87a9ac6d313ff4363fb2a +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a8bd18d9f889734e86146ac8a57b2725df13030 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a08ddb3e3019ce34f75958a143bb3ccb15018db +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a9c1661d8915ca8528e2d8ee88c4cd6ff238307 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a9d4d061c4f45b32ec35e39fd0329a74d989f49 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a24d73c5e26aacae2f76bf2455ab42ca4815024 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a64d03b90919dbd1610273e76b37d396fa06c91 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a859c09d4960d1122947be21504ebcc7f37a8a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a77335eee2b4db567d0d53dbf11ee0194839c09 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a98537ff3698f2678f9d585c70216b15b4fe1d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6a85025309bdff20ddd146ec932e7eebc8acd711 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6aa1dc196bf2f337dacc30a5927ba8a24006a921 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6ac3f94dfa686a9034c2490780e72c8f5327c399 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6ae2ff298c1c5658592c15705dff320acafc79c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6ae10cffc71848dd5bf4a28d2134f446a7d7603d +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6aebb6160f030291f9f72af11e215d01a5e4289f +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6af06471f5896500f067b0e7a27e54d7a8cbc8e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6af7543bc1aadfac78e1470ed44429676bd91979 +/.gradle-user-home/caches/neoformruntime/assets/objects/6a/6afbb475721b805b742f7e0bfae974594c5f6ce9 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b0c7eb3f22a33d07d4226d26153fe060ae762e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b1f9a8557d2c68bacc57e59f3965ef9ce0e7ccf +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b2a7ff4fabb0285c50785acbb92720610bf9a86 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b2ac5e67c159b91f29cc8ce9388e1c4bc4ce84a +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b2c846ec8ed094f959d6134058d689430a2d67b +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b4bd28b12261998837cccf2103de64a12a5220e +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b6a1f07a8fb3b97c6d6cc4d3810e33c2701c47a +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b82e81c0122b8edad442925a532f7574ce7c8d2 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b85e734842e78d8284351f9c571d31f90a7da4a +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b07250ee0f1d24557b0e619b87c5df5748a7b28 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b7328aceb145af99f686cb4139d7b508e2fa0bd +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b57631f235bd07c6607578639d45a9160d8a313 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b66557e4f1c10f571b830621286093c07d7892b +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b98561d97dca746ad17396458d9446de8725359 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6b518182d367db6dd70fb81a204febd48821d4ef +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6bad2067cffeadd34f2ccbe3f1f7d83716dd6811 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6bb2c7d902f930fa17c1df0739ae2cbeb452151f +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6bb2cdcea082f3318f5ee371ff94307312b0b5d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6bd5a6c13f09a9aa03d52649ea139b8996fec1a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6bd9dca08ccd2281e86e5d3c61f5a2376e7dbe12 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6bd90c8845ceec0323fcc3d8efd685075aec5969 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6be14445d7574aedf48232e4d028420738bc56c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/6b/6bf5fb2f1dc2c5697d944d124642a4aa5aba7b36 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c3ac56c7444bfee116bb7cf52b01b90f3319608 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c7d087048d8f37979d6f8a726c2f9a328491353 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c7fc817f892c79af5d2a1bc976fc17c2e313bd0 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c9cd4e4d33421764f7fb0183cc51e93b6c0fb2d +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c85c21a335a1387207a3681de07240cdcdee5fa +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c89a8af10895729f1e774bee734013722e8299d +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c0181e299523eb049795987bcd9261722f1c669 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c261a3d5df9cfa755f9becbe9eff78822bde902 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c605ff79d8c1e30e52127138627e49ed2190e73 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c752adc2596d76e89d8866cba2a5226892f6d02 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c9072eac9d59db316907d74c93b0ff203760c6d +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c15744cd77e7e189d02ebd4ddffaef0d52a83e2 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6c824498e5ccedf219400b36cd05b95524342251 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6cae1d7535447f361985f6e318de58b7bee42018 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6cb211b79bc00474c50efc469c1d5371e76e7701 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6cb547d2f95e1ccf54cc5e836f1a6d873bb66b33 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6cbd8afd0860ebfc0339cffc7963a9678fe81a68 +/.gradle-user-home/caches/neoformruntime/assets/objects/6c/6cdf620249c506b80bd7c781ec69ec3e332d2bf8 +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6d0c580f84cb9f51913acde5d4bf0a68a8d1a6e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6d45eef09a06f1c16bbb90c8f4a6be1fcb5a12df +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6d68d66730c285e0c866c71b0cfcdf065ad96e42 +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6d353c3e78f60a841ee459a180376f8fe189e623 +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6d431a75475652c13f68efa09904893e87f1d95c +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6d689e547efb849a3641c4eee912a395187197f5 +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6d4188e3c7b26a4dca657f9f047383deccf6ec73 +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6d117449beebf9359a5ee6e107d4818d13a17a05 +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6d543461fdd01bb42aba1a4ea11991cce0a2cc2e +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6dc95a1516b8e454d48cd789453110f4ae770809 +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6de02a09775d274130058c654b20010bdbc93f3d +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6de302c5b1fdc9607485f64640b905e37642d86b +/.gradle-user-home/caches/neoformruntime/assets/objects/6d/6df446a07ce7f7aa292e8eeeab9f96543acd805b +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6e5c3a15fe5af5ea9c58e25437d31717a9a5410c +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6e9c3f42dabbab33be160964f49f145ac181c711 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6e193d8037b734e7a7bb69aadf3ae98c90a13858 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6e613f05029a4b7350333f2734aa8b7546ee6fe9 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6e631a9b0f54b20aa9513d24e9214c3cfb4456c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6e958c47928b592951feacce8015e0b308e39934 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6e3522c6dfd94911fab8b194f2ac3250c7465cae +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6e6783637ca21eceb00659ed6ea5c6d71c03b22a +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6e258426517f6074697cd6c112bbd4590cbdde93 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ea2f56d5ff9c2dd6f6e2b0e6743c59863543f1a +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ea9be6132a22310a0ae4dbe7fbe03a8edec4366 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ea96110357f29e6e77b3df20b938483cce28cc4 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6eae899a01a619c8159a79ee33f5555ac8edfacb +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6eb62a07da842363c903f38c3a67e520ceaa097f +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ebe0bafda35b6d983d7da1b7102181781baf7c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ec1fa58e2294541cbd00ff4c4b3bc9347d020a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ec39e921a301681ecad0e067df2ddc953d1bd4f +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ecd3bc9033c5a8902610a57d4df32d7d4af6c72 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ed9e10ed18f497d4b1c5e8f26af748bcb46b9fe +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ed05589cf5885b3ce969ed649b7f9da465e3417 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6eece3d1e68f2cc5c44d1dd0271935a032ad18ed +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6eee90cd95c540508b924883a7658b7a9957302c +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ef2b3130bd4f8f693016aae5a5ad56ce05e3423 +/.gradle-user-home/caches/neoformruntime/assets/objects/6e/6ef362393b703aa5538cd99bdce71c33cc42c4ba +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6f1d1bc3787f4270cfb0d1f925be0d4f329074e1 +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6f3ae50c05462ad0bb05dc33ab86ab5363cbd22a +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6f05a249a3f6db896122f82de58b30e8f3ec71a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6f9e9c9a5f3e789f4c7b889673c07ae791665c12 +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6f619afea6bdaa066c29c0fd782e49e4e1a2c2fe +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6f797144f816541aa43f119b4f9cb130048df70b +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6f1086519f3722b7c40b5ec15ad4a3e1baefdc05 +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6fa4895a44f671fd7c24c366f87ca908da6485a3 +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6faf5d46008e9794f6cc1f8835e3a694684899e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6fc976d65fc742451db2049a2a38a1007b976bc1 +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6fcafa13cfbef21a54e545a706fd8657a841a154 +/.gradle-user-home/caches/neoformruntime/assets/objects/6f/6fce1c49d98d57a1ae0f858939d30beb2abcdf44 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06a2f38a094573652977232abcc4f268cf6745ad +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06a4b57e5aa49c6c3796eb9e1b3b14d9b37dcd94 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06b1e0560d243589cd726defb2b70fd670dbe21b +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06b3ae639b685aafdbfda744b2c079a0f73a10c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06b903971b89f88fe2cea066d005b19c17925c3b +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06bc0a3761bd322d26933c7597c86acb15242151 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06e04f911d0bdf396dc7e905f7efcdb1717dd2e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06e38c06d7165d7349dbdb85209910cb68815b7c +/.gradle-user-home/caches/neoformruntime/assets/objects/06/061daab0fb148906aaa50e9c7c8e81da06fe427f +/.gradle-user-home/caches/neoformruntime/assets/objects/06/065ae5e3252835018ebec25b600d9fb4e79fc0f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/0622bc0f1fdcfeb812036b962574bbd19af60697 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/0666acde6adbf946a8c9c0c135db96ed341f1421 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06045c750b32298bd794c046f087005750bc2d58 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06317ff7367e50af1a74b9c2bea5ef7773372f2d +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06402f38cfe4da766c1e0e1bfa13067082fe71bd +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06491fc8f45f858876f05cd1ac71742f3a86f1e4 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/06983b3fc40c6770ccad2d85f0083d955a22f848 +/.gradle-user-home/caches/neoformruntime/assets/objects/06/065186f68d8a54fe76d028da273ac2670eb09008 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a1cf15a4bf688ab94c67bb6351455e363496c61 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a7dad3c650ba7e3ba50af91ad0c579c2ddfb0e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a7df9a71e86cd87074f92fcdc2a48da01169235 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a9bef29a41d8a734e861952d5ce14076a80c1e1 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a13ec82ec28b2adf2424a415ad5bcb67bbc4ccd +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a34a4136adc49b5a656010daad587b73de65786 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a50f5075a03232a87c8bdc05ecf4c48c947f129 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a52fdd395db607b32b1b78c28bcbab29b5c954e +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a286cc442a5e57c1affe56d03efca5a28d42d3b +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a968d72e42dc51d7c1127983ea4b3e5b8d4bfe8 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a2066da814b01dede8e60f1b60915e0b8484055 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a7565acf4a18ef54107bfa29f9c17c06afb5226 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a29263ebb35a3f317a5b5a8415dfb0287c9d09b +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7a3534229d271f27229989b7f0c75a796500648a +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7aa19be91e3a5608fab943f02123833db09a058a +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7ac730a63061814535b75dece8711fc97e072654 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7ac608958fbdffa90dd9cd4d9e518ef30260b6ea +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7aedafe8cb5db98bba1139f3d6fe90881549f792 +/.gradle-user-home/caches/neoformruntime/assets/objects/7a/7afc0a50da1e1f92499c9c45c7ea912808d9a9ea +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b1d2ddf09008d1e49adeb1d0251272549ebecd3 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b2c4354cb259a4ed7bf7dcf317012aa54bceb06 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b3b3090c1652e73b99880388ccb00f9bb28d28d +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b5af15d95e01feacbbdd8f8d7264be6dc755612 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b9be3ea905d57289b91510612b11f50264e1367 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b9ecc952c1c9f5c79585533ff35b32d77e79100 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b33ce222598a42c9613dad18aa9e85e16a9d217 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b39a6fffd8da4772a541574ca89fe52825bb0e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b96a88619a2228cf4c7d3a2b81ecfd1b3b56673 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b974f1e23958cccb4ccde4a426bc0514cd5339f +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b09812c2b6e891590794b9a781e0d6a0e8befe8 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b017560e2db27bea5eb7706a63fc30064e8e425 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b418335da299dd716517026317d7e58117735ca +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7b82612898e03ec61a3f49f809db703cfcd90c46 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7ba5854050897c8ef2efd8b1e4f878807154808a +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7bab209c06bf6883932c31542ac068548224dbba +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7bbbce598d019c64dd29959b6808bcd0b0e4d62b +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7bd37531acf96c978dc484e84dbdfc5bd11c05c1 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7be87ed58c69281103a4bed34737f6058a2d31d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7be727ea16b9a261665b8419397115f13a0966b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7be61443ca2883bc8e500bfed9f4ed5d5ad65809 +/.gradle-user-home/caches/neoformruntime/assets/objects/7b/7bf0b305e76d86071003474114ff211e2e9a581f +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c2e83c4d82f8f351f6f4188f1fe1d9592f49499 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c7ad950734bf39a46092b1d9650c1255fdbfdd3 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c8cf941eddc90b33007fbe7e95122848cabd236 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c26ac099f78d5f8d147ee6204036c1dc4cde134 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c42f197c2b4dfd98ffb6a30b50ee2777db18bef +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c94d20d83fb643a3ef2aff23d980e155f7f986a +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c841d6f811a2946770e94ad4732a8910a4bd4eb +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c0857bfbcd95dc99969bb97447cdb35fb77b6ef +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c5037ca6d1acf40ae5d2c3b13199ce48537694a +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c1316769a136a75db6a526ded569c47d1e12e28 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7c1796615ef4533b67bf989ff41d1911e348e794 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7cada580a1c35232f8bee70622d24db572591ddf +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7cc80749257e0df1d4ba6497d5ee49f15f0b6513 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7ccc3bd2ba2f89aaaa903f10e8174f12dd50c727 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7cccdfdd8fb3b0655f04f7884c6c0f408a935407 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7ce06a52ad2c364f73b37b367e7392acc8454192 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7ce23e6bb53581b716711e4cee5c869493e5a1fa +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7cf7ffd53f702e2cf9990df19fd50f46158bd087 +/.gradle-user-home/caches/neoformruntime/assets/objects/7c/7cf945b7f890ae37adc150d5724fef99aed4d4e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d2d4b60ec51462992b7429aa861d03048cd43c1 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d3bd8655eb785e3dc00367643bf99b3077e04aa +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d3f1f2baa61d33875d71386c3b8ec85dc4ae9d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d7ec74df17c6e6908d14bec7f3d7112c5466658 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d7f7244a248dbf3b5db57aa2cde2d9d43e98b12 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d33a0653252f7f8b0ca57688c6eaf9e200ab37c +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d35b855afd6df7f3b12db2da7a08d59b6c0d069 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d53daef2a4fe526f9819c528a18403583511e3c +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d467b1a379b73ebf64453402b46a4430a42657a +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d896daf494f616435ff9f9357727b2be7d16842 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7d593977e91642790c95339a3535ba56773228c3 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7da7d56846a22d42c82cc511af3b93fed4d7123d +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7da9205947bad631c102c7b0b4eb6003b68a5e11 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7daa6b5522fb37adf0ef03065ba93bcdec96668a +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7dad3b60796c4e8c15c9c01c947f2cc7163ded23 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7dbe7f6b02b34c2e4258c78ebf71fc36f8db627a +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7dc7373a3e13a9a1f50b0474859ad9a7220f5f56 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7dd001cb691c087eb1d1771bfca14d100b8f0d76 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7dd9b7c4d8ea50a0f1320f316ea69aaa3b4a6ebf +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7dd06959ed85aa66822640c8aac47d941fb1768a +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7de7d162c2a937e135f8c3ec948d2a3ae495a069 +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7de717ca128c7dc643ffb067df2eb5c0fdd5fc6f +/.gradle-user-home/caches/neoformruntime/assets/objects/7d/7df7ac16c0c626ec85a989a2b63fa8143f149fd2 +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7e2c2c0473a06be0b8eb575b966dd094c71c8c82 +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7e4c50715d8ae2e51d320cc9d35aa564124693f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7e6f5590925bb2445ccaa8d0318ca89cea279585 +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7e8e01f81e874e72730d92f94a62b159e9bfc6fc +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7e30e09fea8453fdca7c43375b8c0fc41b640390 +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7e51c92c96d6ad6e25d8ab9bc1f4def474c94e7a +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7e75d89480b76ae89c45503198b4b5834639b93a +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7e86ced51d049411a28627854c633a3977f45332 +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7e985242c1b9b47ad6395daf23b9b23b6e57fac7 +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7e07671554c25c6969f42de636b3d976d31fd05a +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7ea7d126ea38f7aa8a331a8e2abc05ad40bfeacf +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7eae1376b92e71afb53a776a9c36ccbddcc7e1c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7eb276f23a2f4ef72e77a4876f78b141488b77f3 +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7ebe67ee8f113f6de7b7f6d7d71e925c31fdc84d +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7ec17a07c70a32a80c280f37e340bea8b53eb46a +/.gradle-user-home/caches/neoformruntime/assets/objects/7e/7ef725e8974a636a63cfd438c5829dc2bdbba354 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7f1e51127887e125e4991b592d32f218eb674c11 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7f2b691fbbd4ffe9c68cadd611b71de054ff1354 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7f5afe9c461415da6c9588ce6126745a23ba2492 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7f09c286de0c2a186c84eb67c777ad35a50562e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7f77e186063198933a7dd67eb492ae4d74839dd9 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7f93c3329ec5f9cb7f4bee404c8727adc2ea000a +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7f2489b172301ed7457a17ae1bd8f4d1ffe8cf0b +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7f5891d061e4df605c1f0fc317d8066399d5192e +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7f7777e5d5b163c5d64201fd53e5682599548a49 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7fa3cc293a0ade6cbe4e1d0a08cd683b70c5b848 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7fad73987669bfb30d09e2d71413c86f6fa29435 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7fc3927e4c0258b3f3f9ee1945d411cbeeb2bdf6 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7fdf7e2d368705ae0b34a21d7d860215857ba0ed +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7ff23cbba45f0458df09d95f7aed7c988802facf +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7ff81055a299493a758c0b0f6c129dec6132dff1 +/.gradle-user-home/caches/neoformruntime/assets/objects/7f/7ff747597389d9d485ab873114dd80bf3e2ab50c +/.gradle-user-home/caches/neoformruntime/assets/objects/07/07c4db76bf5dff677866d9317e7c8ee41e7f3e3a +/.gradle-user-home/caches/neoformruntime/assets/objects/07/07dea5606e9449e3c9e9cd5d4a6439b9a10d35b5 +/.gradle-user-home/caches/neoformruntime/assets/objects/07/07f0c92bc179f58ceeeedfef2bc2ed76920cf99d +/.gradle-user-home/caches/neoformruntime/assets/objects/07/07f255f4919ea113183e1148d96342723e622d07 +/.gradle-user-home/caches/neoformruntime/assets/objects/07/07f03002a522ba3e398d8ea2165d3091b104fcd0 +/.gradle-user-home/caches/neoformruntime/assets/objects/07/070b4565691243aa4255810ac4d29c1238d03536 +/.gradle-user-home/caches/neoformruntime/assets/objects/07/071db4363132ebb930caa4152024a72e373cf578 +/.gradle-user-home/caches/neoformruntime/assets/objects/07/073eab6086fd3bd9fd76e59acbbc3dab7033a816 +/.gradle-user-home/caches/neoformruntime/assets/objects/07/074bf1f2406289d81e600c80862c0267550e4a8e +/.gradle-user-home/caches/neoformruntime/assets/objects/07/075c9e204c4150e7c43e57f1f01428177aca997d +/.gradle-user-home/caches/neoformruntime/assets/objects/07/0720d3b4819f8626286004e5b96d5de9c945ce86 +/.gradle-user-home/caches/neoformruntime/assets/objects/07/0753fdb23227445dce935e2ec9a88ee4a0be8ae7 +/.gradle-user-home/caches/neoformruntime/assets/objects/07/071003e0b359f3a85959c5a7ad8955c19947455e +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a3e53e060d2afd15c634bcdfdf6368e5d67cfb3 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a04a60d5c28fc60df472a877ca57f37eabc78d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a5ca64c3334328e4eecc4ed405340a217c0c28e +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a7b847203edef386f62a33fd3124ea1f2df7398 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a65f8b0dbf5509455f2d211c416df9dd4379ada +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a456c979ae648793e0bc67ff93df0a9a6834131 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a687fb7ea955d58a8e758a7e6ca8147c48dd477 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a059948fa1bb11c735a212722f4243ab8cee2bb +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a87818be8e38de3e3b185356057e81f5e021ce0 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a8114476ec8709368efdd9e26fcc60bff0b3bd8 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8a8768677077f0b03d39c849df64ce160f0b5aa7 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8aaaa5fc3424da6ad9cd5fb3954c4fc798064dd0 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8ab46b5e8b2bbe24a364ee65cef1bdaf74837fcd +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8abcbed843fff26146330dde170862e64b8491ab +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8ac3455f9b5cc8b7e92bfa750ee40186389bbb55 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8ae3ae1922100aebfe081d5274fd8b05ce9ece1e +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8ae8cb06b4ddbf9a2c79c44fee5fabf4bb3d0421 +/.gradle-user-home/caches/neoformruntime/assets/objects/8a/8aeec53d877af725b710614572f276954c7d0f17 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8b4ac501a75c7a3f64b2a822b1f099a828ea8297 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8b5a04fbaf70e8526752e7cdf4e915eeb76a2bc0 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8b65d256a03b0ce5568d701655f5f87740fdc30f +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8b75c05a03817591d1dd33399cf4fcc5a7e3f8ed +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8b248e889249a96b65398146168cc958fc7789af +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8b855f61442b96b34447bbcecbe003ac99700f66 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8b9616d697f22321f8d557df82392aa8e70e8a64 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bba51d3ece2194b3d080df7b1d5c0d40895cf10 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bbc42b4c5773ed082d30dde9506ecac45a26cf9 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bc1c4de8c29b43f2934175f08be10aa5d538fcd +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bc2c8515d2022d580de6ca09e9117b28b338e31 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bcda486ff6fdb2c2c4532da72e6d71536779853 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bd6d652b83feeb858dacfb90da763196567da85 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bd9484e2bc85bfa2c1c4c6dd84d102c9a7f86c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bd78604d88160f561feb7d05220fa42beff0ca8 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bd88654359722dba0fc6b02f4d6b9216695ef70 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8be3509f63277ee94d5a3027eac6db2e645831ad +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bea2d07bf47cf8f0eba8c4049c394bf3c92f835 +/.gradle-user-home/caches/neoformruntime/assets/objects/8b/8bef91a032873606b8e70be7a885448fbedf657c +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8c1fb777d4454c17bd13e29a226302de9aa68dba +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8c9c80d0e76124c462434740a97e925546e0de11 +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8c45f63f3b50b8445dee67dba0cccabe66e983be +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8c63dc56c264fa42cd127e83714a0f927a23d298 +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8c97b6d40a58ec71caa53098ce65f53e45e316f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8c515ed4795bb3d7aed1b86849ba65703edf1306 +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8c584a285e699660942a9ffd16971bfac87bb337 +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8c4623fe4b3d3a2000cb597ff07c430d4d0bfb3a +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8ca0e2f511471f2fd9375915131499ea323c828c +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8ca287259fc74a037044930768dd94b76249d057 +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8cb03a82e064925b02b9f89b9b2a492feaeaa117 +/.gradle-user-home/caches/neoformruntime/assets/objects/8c/8cea574c406963f0bf7adedb0a396e4c532e715e +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d0c2f3eae53fe7fa1f9b55b9088c75d601c712c +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d0f5200fb9949cf55e1de57297349c1188a3115 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d2b0c2bcb5f452c9dcd08246733006d56c658bb +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d5b13c57c0689a009a5857219a2700009495afe +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d7e8f796ab00a29c131326f39dbadd3c88f32e4 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d8d6c9677b4236bbc6756414783f1b2cfa792f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d8d8ed31959f603aae9d3d79356d208abeeecf7 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d8da2d91cf0ebf4400de8ac8a65a3bbbf0d11a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d22f72686dcf0e857e35620b7a2a44624471f3a +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d37ef4a9a330c23aa6746183424fde31bcdf11e +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d39bccd5cc3049a24661869518b01c154606899 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d44ab22e9b2b869126250ff1e709c8938024cbc +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d045ea00ba8696c421713a369be842ecf5af593 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d371dcbd1fdcd2b233a092975ee240487896af8 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d931d4ee6b9228390ebefa6a3f41304143d0e45 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d5469b6c5ab97a8f97f28204b068fbfa0a46853 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d9238f873139d3c0f5eba3ce952553c7d5b195c +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8d4652179c808a8eb2987bd8a01f7aeab001d41c +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8da0afea2dcda4ab840e962e0e1616b7c35da228 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8dbf96aa7208979d2b97f7906d2f46a0be1d9bf4 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8dcac0ef3f5ead77a5530f68c95c5a410a8b2cf0 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8dcb966daf784226dd041dea755355cee2e8709e +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8ddeb231655f45d98e62f3281a1c50cd9035576b +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8de22c03536fb625a4652e06e4cf75b83485fc0c +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8de88913c677e71da62e113b58caa1ad7935f468 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8ded9c14dff326415ffe5c8320233c0e9d548041 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8defa6e305571b092e691a90712c9cc8001fb661 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8dfb5e40811b79266df1a97fe334e0d7740f2731 +/.gradle-user-home/caches/neoformruntime/assets/objects/8d/8dfd90da4e259388924ff960e6abc8dec7bd0337 +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e0e61ae27476b55386152940245fc309ac1b11e +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e1b5ac91c37eede382a2240a808a8c2766462be +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e3c151725219a0c9dd16be100b43a9a7faf5a82 +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e4c8fd5eb7e1f339e87ceb3d6f92b62fca717a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e4ccaf6ce579b9951feacb9bfb8241ac1d94e48 +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e6a9e99c9c849c53b61da8a91541e94b180cb90 +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e7b1f82f4d68c04e8fdd43fb631079e4e36badc +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e7f24fe86361c57467d3f2584a8ff78ed0f9da8 +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e901a9a5e4daee7e3cbff8a3529d0a4148f8406 +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e6265fa36f3494f01c87c7de1d5be3ce3f4255b +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8e3701253a89b9b08e87d58e04b0f79e0a6c2f5b +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8ea7441d6e84805615159a7d87f2aa01d9f4c1f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8eaa122d6c96f2d5fef601926aa930cef0c5f81c +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8ec26c22f2e429af5f743d853bd33bf22d796aae +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8ed6b6a1a08f56d5aeeb3994bb7f294a9ff342b7 +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8edd840599bbd1e35f7fa3857d8a9f7d43e697d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/8e/8ee9d608f0bbb2d0513af7bfc1b55e591ada05ea +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8f5e0651a43e9b2413946ce4ec7b0103d653e4c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8f6d15acc509936941efdc566b60c66365b1561e +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8f7cf140dac3cb400ccaacaef1fc8b2fa9c181c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8f501d40a4f75b8ebea3718ec6de8b9bee9bef6c +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8f5008b42cf998a0bf391a9772fab8aa69049cac +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8f252063b2238390276990d5897d04abecabc5c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8f569038378aab43810f2b1c2f4054da7b21c3b7 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8faf5fbcb4d1080241d44f2519a03b51fe92c3a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8fb4c784459d54c2972fb4c62ba2cb5d60da1f74 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8fb8df008222d5fcc8d2147187625f05dc5c0991 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8fb273a29573dc71202949abbbda0eb84a18327d +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8fb36859ba52771601bf8772f7c2a701a3a58d88 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8fc7baf8356f85638a8cb7d1c12f5ba15a5c8fec +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8fc64dea15a395ccba89d91501c7767a6f816418 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8fd181bf39c52b3dae7dc66753d755901861491f +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8fd668f6584957c324c9eaccecefe1b811276485 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8fdb4080b274671e8634bee9c32e3e08cff95b92 +/.gradle-user-home/caches/neoformruntime/assets/objects/8f/8fe6ffcac6cb527a4a1cd1810b6e10e702f0e39d +/.gradle-user-home/caches/neoformruntime/assets/objects/08/08adfcd8425cfa0afe29f5d05ab336186acd8ce5 +/.gradle-user-home/caches/neoformruntime/assets/objects/08/08b13d73e321b2def27d361ae6785ebfef90fdbb +/.gradle-user-home/caches/neoformruntime/assets/objects/08/08c7eb4906bb0c2464f137092656336da53759d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/08/08d1e959c03311f97584702adc4ebbee57a73ba8 +/.gradle-user-home/caches/neoformruntime/assets/objects/08/08e313dea021f4387687e7530b1edb3be6a3e71e +/.gradle-user-home/caches/neoformruntime/assets/objects/08/08f52b2a4deab55b16a4d6d2e2ae0b9c836666a3 +/.gradle-user-home/caches/neoformruntime/assets/objects/08/089c6bbbbbc25235352d41b844cf7bb7b7136f71 +/.gradle-user-home/caches/neoformruntime/assets/objects/08/0824e1e9c8faa785a8fe975421fae67c651b7333 +/.gradle-user-home/caches/neoformruntime/assets/objects/08/0897e691085bce82bdbcbcc49ec79753f7273cf5 +/.gradle-user-home/caches/neoformruntime/assets/objects/08/08979d1090cc231f2ac106eddabbeebfaf6161ec +/.gradle-user-home/caches/neoformruntime/assets/objects/08/083557d2eb1a78315ca5f18c384ab3ee693e53ed +/.gradle-user-home/caches/neoformruntime/assets/objects/08/0828348eb05a0e1b232f6b091b8598e2123f9a43 +/.gradle-user-home/caches/neoformruntime/assets/objects/08/0867899d7b001c677a06b7cf839abe12cdb47ca5 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a4bfa8eeb8f34803bf89e55eee3fb062e9bbac6 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a5e93115b641512154d5e453dbaca06b71441f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a7f0d645ba926abd313b9626fed49ead83056be +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a9bcfb00e0a416a09abf0b1064baa1fdddd2b3d +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a74f908bb95cd89e445c654d510c63d5df00763 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a079fc614f1b5ea6ce4dd57a408d591a05447ef +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a83a8b7262544a0473802adc20a4250e2624602 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a96a7a756ccf93118b709114c12fbc7af6672b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a200c9c063915ec4ce512284ffdc29ab4411c29 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a3227ecad3d8535062e102633e0332bdff45a00 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9a364820f346604428a7d983cca871df36c2e4ef +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9ad4fb46cca31d28e7e3971570ff0f4f06eb92f4 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9ad25c61551cfb93ca37731f9e7c6aa3a6ae3908 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9ada20da7c229e7598261d8a60c66e3dbc496507 +/.gradle-user-home/caches/neoformruntime/assets/objects/9a/9afc01f0875fbd7a492e521bc85c844d28ca1a1a +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9b0f5516cd2decc745c7681f5b3f763f74c016a8 +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9b7d92af06a25ff43cd024cbd2310fde3dc2ed8e +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9b7fdf9628c04364222af0c6d339a7494679afd0 +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9b50f8b4ace51d032fdb0dfe37b5edd9591cb41e +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9b54f0eb559f983da0d39680bf107572e5525aea +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9b699c4339f512eb851b2ebbef524d90cb75e577 +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9b2354fb5f979ec4be45d0a2a92acb77a29622d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9b53041a543fdbd0f219a9a0bb378a6ed5103f82 +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9b761739bb3899f466089a1fe8a1fb32fe97a6a8 +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9b50889699fbbe7accfeb5e38fd3a16954fe0d66 +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9ba866dae3ef8f00106d91a611753daf6147ea58 +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9bb00c0798bc94210b1f23efb0da1c0d8d861365 +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9bc2d810f802f87c64287edb6f3257c78e10ecae +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9bc103a2c140ce56a499af07d11171d4f2767a4a +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9bd543c512105dc4909c24dde5516e7b1f1a113e +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9beae1fa9c0b9fb67863798151564a200facdf24 +/.gradle-user-home/caches/neoformruntime/assets/objects/9b/9bfcb651cd20e9d33ca05bca5d9ca8ffdea4b9e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c1a4cdf3314da47f2b797cb55256d066af337cb +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c1aa4f0997c2e02617986a6c79d67c44f12f93f +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c2eb9846a9d8a3aa291abe6db3cfab01a0464d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c3af6d96295912d57474fe29e33c9f1ecf611b2 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c7b89be4cd0b8acb2bb73130972ce23a728adfa +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c20f972468b42ef0e91d36f163059b8cad93677 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c53c94ae67ad6ecff869d59ba162379fef65979 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c80b75f314a4da35fe312c4455577526e0098ab +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c94cf13276d60a7ce67eacdc3885f25fa0aadf5 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c855f1f9c0d3ec3abbe37b97da86b94bf8e79e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9c0455315f3c1f3c9faf9e6ea2b3eed852cb7e04 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9cb8dba93672de4ae019f50dfd31356a8c9a51b5 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9cb0839e234c714ad880f6a3194f62219dca14d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9cce2f0d3657b83380e1746c6fe5444cf1c613f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9cd27061e6924c970ebd737cf5bea17778d4b42e +/.gradle-user-home/caches/neoformruntime/assets/objects/9c/9cf12c75084f76be14e35a8d0255d00bdb8e3894 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d1ba828a27b2a6b5be6b97e4d6b554db885cb08 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d3cc1cb5298a3efc3229069e010aa4bab1f6336 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d3e89d6d1e14810523b335ee3eb06685284808b +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d4c8962c167d0c694b94b401a4e89ee2429177f +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d6afa5a053c302ee0360a85d62749ad8b05a86a +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d019d55711de8f310cfd167852a7298ca8a052e +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d75dbce9be2bab1e8f77dc841bad52eb190549d +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d528a24b3aaf8e4210b570316ef4fe125f813d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d485556b89bf776042080774679c37300bc744b +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d2969618da9501c1fbc40af6e775c23ca23c5b1 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9d7301192ed6c03b2a965d8bfc5d2f94e150bf69 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9db12c7ad3c9cc47607e75eb2fbb0476cf583a40 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9dc573ff438bebb8a78fafd5208c4b30a37ec842 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9dd32387135eefa7ab95996d52a5ca4cec8a3b30 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9de1f0fc74d5e130fd03a88110c3d9dd6c217837 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9de5631d30cb894420d62f699448dcb0b63d550c +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9de807068ef3a713c55f517bb454945aaf7de44a +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9df7b45d3ba5460f70dda8580d094af275c48219 +/.gradle-user-home/caches/neoformruntime/assets/objects/9d/9dfeee82d2710b84cbc0dec89b2dc857cb8f2521 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9e1d166f67f1fbd36ad845974182c5189a0d86cd +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9e3fe46e2622d068aa84595dd498857f391c8878 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9e4a2605efb6c14236aa45fa850e0a37981d560b +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9e4fc69aa5e5a7044047a409db552b1d9c51934a +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9e19baa7f6107aeb6e89f0058808408d71ca212c +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9e479ba1adb33a98054f590739281da1beeff331 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9e3191b2fc9df76169aed567f53c535b2f2194da +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9e7729f3e5b6c66678eb8487719eabfe497c4b9f +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9e987356cafebd98b41b7fd560f8fb934b2d99ce +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9e86260492f98274ee2b3a1db4fb352a7a991606 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9ea0b90c978fa1fd42b432ef9ac7e90ae78be65f +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9ea6c70cbb191c25a6572817339699ad88743877 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9ea8a9e105321891bda18b9007b383b40aa7c076 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9ea710fe8e53c52667375c842145e1654c7c51ea +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9ebce2e32ca79b91e5c1d2339d1ccfe159526279 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9ec7172eac72fc7bcb96aa3f741777735a9baec6 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9ecaba4f3d4ba3ca5eed76a95abd1b232d7ec007 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9edb642d9b16f8e3dd495c7f65348b9ebdbee5f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9ee7ddc0aa7a89321fe1f9c7a7eb3a4c9c11c8c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/9e/9ef36a3e43ddd991266031eeb29914d619993d2e +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9f1e922e758c8cc7ce48305be7f1d9a834486c5d +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9f1f5605ac3ee1df2d79688daffb516e4f3df9e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9f8b52c288f0b0ad72c06bd48c1eb11b1737b7da +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9f8d9380de46bf37ecb6c000663c40b176e62948 +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9f67b65cc7b88859764467476504cb25d03f89fc +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9f84f917a09facacf1235eed3fa77789e4554afb +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9f89e2cafcb4f50649b0b0e0a38670e95acbc887 +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9f98ac19da8a682da80b9f1a9c491a51fcb961fb +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9f8089db25a221807d6650835ea6af22659ba4d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9f409623a7365a1d32d6b9601bb2014d8880c975 +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9fa24ef0a1c545a8eb8014130dd022763f34f72e +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9fb86d62fcbb60337197353e2da16dd588a6d03a +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9fcb4b5468ee540f383396e8970c986e22df72dc +/.gradle-user-home/caches/neoformruntime/assets/objects/9f/9fef290f4b3a4e312b4c2611e370244b7337be44 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/09a94e462b5161d4e432a2cf3fe12205a1471690 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/09a9647f47a22744139707a067b5876cf26df3cb +/.gradle-user-home/caches/neoformruntime/assets/objects/09/09cb0285a1114b63a899fb8163a18f38924d0069 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/09d7b8b447b3be33a021e055bbbc9345355c9f3f +/.gradle-user-home/caches/neoformruntime/assets/objects/09/09d18c4d752b420233a35d9cc1a05af16cbd3dca +/.gradle-user-home/caches/neoformruntime/assets/objects/09/09fc4bb8b59416d1bd941aa1f3cda0e58d8b1e38 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/09fe6bf6b8c0c5912edec2d22874ef49820baab0 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/091eb6ab91298d4ca5629d7dc75e340279ce090f +/.gradle-user-home/caches/neoformruntime/assets/objects/09/092db8449ed085eb9b764c9ab1adc829ee4e2300 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/094de0bb266f3ad92fa4523e82f3492d45ffe31f +/.gradle-user-home/caches/neoformruntime/assets/objects/09/095b229dfd83927251ec0ec6e79f8c3158f99a3b +/.gradle-user-home/caches/neoformruntime/assets/objects/09/097eabe5a18ccfcc253e23550b596bd2a5746649 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/098c6ffcdebbc12e18c84d2729e9b06377dc7c95 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/098fce2f950a3780970359869e709131e88ccf84 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/099d9d49d0cf0fd1132f4b0bc25b548db9f20e9a +/.gradle-user-home/caches/neoformruntime/assets/objects/09/0903c8aab0bade3a30dedb87000543fa757a3830 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/0971e38c31ca3d8a73cf0c4e4f8e1181bac82cf7 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/09283c5992e529526c1665ac36a3cd03f32e18ab +/.gradle-user-home/caches/neoformruntime/assets/objects/09/09731cd69beab52a64296536a2470605d1647d15 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/09835e0c3138faf6047506a2b6f1da087c082d2e +/.gradle-user-home/caches/neoformruntime/assets/objects/09/094428cbf21b6221e738157e51c6b351b412dffe +/.gradle-user-home/caches/neoformruntime/assets/objects/09/0976802baf73753eb8feba5beb05f11053c593e2 +/.gradle-user-home/caches/neoformruntime/assets/objects/09/097798914f7b4de095cbf76e6d154d58fc321f22 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/10a00a20070ca5ea3b8151c7d5a8f4ce84f05998 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/10a50164901a3145a398850661f133410818e6c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/10c460699d18665b9e7eee123722dbba524efb56 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/10ca1bd826243a68c27721cdb82ea8e6d9b77a69 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/10d0b220421dd843116a014f76168f7a182f7be2 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/10d0f3010e33c6a1b563d7e628bb32a4619a8547 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/10d7d7fa8b468e8538eb93241c4c26beaf5a1541 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/10ddd558c544bb0286af5ed0b4b440353c3f2a87 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/101a748961ca243023a09cf65b686f397f3d11d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/104c4934605aef073d3ba87e89ba334de47fd03a +/.gradle-user-home/caches/neoformruntime/assets/objects/10/106aa8342185c13f75f8a6c44d7186603de62fce +/.gradle-user-home/caches/neoformruntime/assets/objects/10/107c9f66683a7c7d2fefc74dca1fb82117107831 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/109e0c05235854b59f3b2f23fd97184be43d9992 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/1058cf72714c48b154e7883cb9d7ec918e0816b3 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/1059daca2eb9c39744a5b3829627bc43c8af8968 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/1094a96acf2f61274676d345505c4a5ef75c6b94 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/104403b1df4f2aaa53cd6c8a91ce1be8c874ff5c +/.gradle-user-home/caches/neoformruntime/assets/objects/10/106505e987c08d164a3da51c2e37b9126cab9af9 +/.gradle-user-home/caches/neoformruntime/assets/objects/10/10425642c04c50bcfd974356d9b6c70d8a104730 +/.gradle-user-home/caches/neoformruntime/assets/objects/11/11a807d88209d0f4f2e81763c9369c093923fad7 +/.gradle-user-home/caches/neoformruntime/assets/objects/11/11abcda449b0ca4aca0244552413a2eac6c3f3bd +/.gradle-user-home/caches/neoformruntime/assets/objects/11/11be3ad1e32adab4fcb1b6eedc0e9cb57e47d56d +/.gradle-user-home/caches/neoformruntime/assets/objects/11/11c7bf577d5772d813524c69c92447867cdb2cd5 +/.gradle-user-home/caches/neoformruntime/assets/objects/11/11e7c4b42ab89941ee148bc84f10dfeee42c0925 +/.gradle-user-home/caches/neoformruntime/assets/objects/11/11fb23958cae11865bedec00522d70a188ca5d1b +/.gradle-user-home/caches/neoformruntime/assets/objects/11/113e2f856cbfbd2c03631d7f078b5d7051a5bceb +/.gradle-user-home/caches/neoformruntime/assets/objects/11/118a9274f2d1fa899f135eb670ea37fac1c77161 +/.gradle-user-home/caches/neoformruntime/assets/objects/11/118c938f87c868ba05a3dca13b67f738ac84a1c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/11/1104f9f1943d809f8c25c6853ece27d6072636ff +/.gradle-user-home/caches/neoformruntime/assets/objects/11/1113dae1e5f7e715941d089d77f97e789531918b +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12b5fed32bcf0492dbe0ab8fea19262a25c49526 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12bd9b42d084ec9a208c15398aee84ed2f1e2517 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12c0a5f206d75f11eaceb2395005038a496c8f11 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12c7ad583e2a0dd000c2dcd7ef4088330e0b18a2 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12d429d6df6716c2bf5e05fdb2d503ec1c1a5b08 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12e4e9f0d13c8e891a87ffadf86f333918008972 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12edc7d00dc3c2ee5d82f26875be77586c46a7ed +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12fbc8ee4634f9f751d8d63d634ab441eac5e595 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12ff439575ffec95e59750e7b38ba83cbc361a81 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/121f572e8566c4dabca914ac78cb0a3d2c6e5ae8 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/122f15d51ff8e021e7b1d47f34f38008884ee388 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/125de45cae330e1e1c370482bc62c0f8c916d259 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/125fe73533e2aee4654fa465d1c5ea84c8ad54d4 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/126e00ff2373dae348cb079cad445459b6e82b8a +/.gradle-user-home/caches/neoformruntime/assets/objects/12/127b46924330c96a1001c550084d2ce873526dc1 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/129abf589045d3abc35f64b286ee8052795bb814 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/1215e91ae93d796612c0e7bc4b46d2d600a6a204 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/1252bc3bc70444a0719651f9c44f63d5343c7e46 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/1293c43c1e4f896745914368bd0a5a2c6d3c346f +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12174a8a8332a4156d57d57f370932ad28789df0 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/123370fbb15bf1e85cf5038b3e8ca719ad391dfb +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12721227ecd0f64b2e8767c08a57f5ef05fede05 +/.gradle-user-home/caches/neoformruntime/assets/objects/12/12735079a45c835d19ca8bd415fc76027b525973 +/.gradle-user-home/caches/neoformruntime/assets/objects/13/13a974b130eaa184a6ad276308ad8ba32ba06e66 +/.gradle-user-home/caches/neoformruntime/assets/objects/13/13afa5748448440724216254b588fe0b44acf700 +/.gradle-user-home/caches/neoformruntime/assets/objects/13/13b3f8c2125605191c427190a47ebb7467e12f5c +/.gradle-user-home/caches/neoformruntime/assets/objects/13/13bba294847b1d20b68a004f62fb8fb8b06c9fa6 +/.gradle-user-home/caches/neoformruntime/assets/objects/13/13c0edd0a66e783fbdc67d9a95ad2868f99d19dd +/.gradle-user-home/caches/neoformruntime/assets/objects/13/13e7f901d031c5077d6632967523bd61d29bb783 +/.gradle-user-home/caches/neoformruntime/assets/objects/13/132b4cd65581c2a3658af6a0d4eedc6a0c1e17ed +/.gradle-user-home/caches/neoformruntime/assets/objects/13/132e875f06d52734aec1810ac05617ec0b264a1c +/.gradle-user-home/caches/neoformruntime/assets/objects/13/134d89171222ab13b8f6a0c265c2e27feb08a45d +/.gradle-user-home/caches/neoformruntime/assets/objects/13/135ee4fcf11d359fdfed376277ed718767357c08 +/.gradle-user-home/caches/neoformruntime/assets/objects/13/1330faec2b5a6ed7dbb3932e4002966a854df137 +/.gradle-user-home/caches/neoformruntime/assets/objects/13/1346ff09e77c8506476a017f63d9a820f25f0839 +/.gradle-user-home/caches/neoformruntime/assets/objects/13/1368f950be4517b4ecaadd5da2ea8d9b3335e71d +/.gradle-user-home/caches/neoformruntime/assets/objects/13/1373cc1ac88329676d09f1607c1f7e5925da103d +/.gradle-user-home/caches/neoformruntime/assets/objects/13/13144a839243e2ce2616118445f1ca1fba4b5e1e +/.gradle-user-home/caches/neoformruntime/assets/objects/13/135130d76cc42fe7a902960f8a367efb74de57d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/13/1349548ded32689a6405b4f3bec19bba6da42d83 +/.gradle-user-home/caches/neoformruntime/assets/objects/14/14b3534e2622470a71dbe69474c15e6a233cc1c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/14/14bd103e77ae1310e834f0892c7d90d0edb4d0d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/14/14cce45307ffc5fe7f50e9f0d0ed3d32ab24beb0 +/.gradle-user-home/caches/neoformruntime/assets/objects/14/14d15c2b2e9310027d3fc9cdfd131b56acca8029 +/.gradle-user-home/caches/neoformruntime/assets/objects/14/142f978e76ef856d86a979bc0ee8281d861ee924 +/.gradle-user-home/caches/neoformruntime/assets/objects/14/148f34232a196bc04f61ea19f7ce39b2d330f45c +/.gradle-user-home/caches/neoformruntime/assets/objects/14/1427db69fd890239451ba01a09774f3083e6980b +/.gradle-user-home/caches/neoformruntime/assets/objects/14/14221fedadd7431bc557f36be1af86582955f7c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/14/148064b50dcf31e9a72dee35a332b95db95c693d +/.gradle-user-home/caches/neoformruntime/assets/objects/14/14031867b855e073c024cdbc3f21b9c25be7d007 +/.gradle-user-home/caches/neoformruntime/assets/objects/14/14109863585f1de53d9bb7957089bfde8ea69f7b +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15a1fc23c9bb50ed2a5476b96dd70868dc6fe365 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15ac5b26a14242099b1213c07361534d08a634b7 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15b1663eb046d98d37dd81f98ec831fcf72c1a01 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15bda39719866402b0e854234f6cc4156992b771 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15beaa4b980e4cdd87ecd2c573f04b3f196e3b8c +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15c8e87c9ace8c279dffaf86d05dda43dd51d933 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15d82386ec6836665d83b047bbb1738233b0e916 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15e3d77a4555455d752fde55b2661c159bee59ba +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15e97ff3fda29dcb5cfb8a8becd1cc64199af1b8 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15eb7f0940b43b5422524c8f20db44b72b310233 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15ef532d2532df5bd73431a249a841dfb7c06292 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15f8ff8cda809e33413e5aa428840f37caf15b3c +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15f33c8815532cf9149d1d4b4b4aca3b432338d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15fe7b6d1e021b98fba3db61cb6770a9c9fd4b54 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/151df7faa5ba5614f7f86416d8ec683c7d9c0809 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/156e19e4e2055033641b01cf223d692b001b4424 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/158b241c3e807d4f6e6595cf7ed1f7cf9c55a993 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/1511afcb61d33d9b69e1c56da933cfcba53d6231 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/1557a78f14fc2b0428ceb71c732e418097211114 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/1571a21fdbae57cfc1d9e1742cb9f511ab99c636 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/1580dfa0697652565278d4accfbb4673705765aa +/.gradle-user-home/caches/neoformruntime/assets/objects/15/15010f2a6c3d3d996376e038af982f71bedfdafd +/.gradle-user-home/caches/neoformruntime/assets/objects/15/154255dcccfcde8af7e3727a0ccaaa72ea359ff5 +/.gradle-user-home/caches/neoformruntime/assets/objects/15/1591058de3128b8a44b8beab1a17ad63ba17301a +/.gradle-user-home/caches/neoformruntime/assets/objects/16/16a50dd79cc72f718738607427b07a3bddbaab80 +/.gradle-user-home/caches/neoformruntime/assets/objects/16/16a795a416c461ba132f4aebd63c207fccecaf0c +/.gradle-user-home/caches/neoformruntime/assets/objects/16/16aee7a90a37734ebf85cfb11dce1d3db39aad4e +/.gradle-user-home/caches/neoformruntime/assets/objects/16/16b67f7a0c3a03b60d6fbe8ae7ad6906c4b4fb11 +/.gradle-user-home/caches/neoformruntime/assets/objects/16/16c3be71d3e789ee539cd70819e526343ace5e84 +/.gradle-user-home/caches/neoformruntime/assets/objects/16/16c08ce6994f0c8bf9a326d14139c83f1c448d2d +/.gradle-user-home/caches/neoformruntime/assets/objects/16/16d4ffc146ea150158b410b094c676a2b2a1b33a +/.gradle-user-home/caches/neoformruntime/assets/objects/16/16da99616e0ba8a3806f1e9b3d841a6ed1428e63 +/.gradle-user-home/caches/neoformruntime/assets/objects/16/160dbeaa819ab4151692b736beeee12094a633ba +/.gradle-user-home/caches/neoformruntime/assets/objects/16/161d5566c38f3cec70a776995bdf58a52852aa79 +/.gradle-user-home/caches/neoformruntime/assets/objects/16/164ba1dbffdc57d7ef79e3cfc800eaee3b4406ab +/.gradle-user-home/caches/neoformruntime/assets/objects/16/166c10afd3ce627a95fba126e751fe890afc3d4f +/.gradle-user-home/caches/neoformruntime/assets/objects/16/169eae10c6c9cc2327ad848aa9d7290a56686422 +/.gradle-user-home/caches/neoformruntime/assets/objects/16/1602a54a8a6542aabc8e61c93103c387309ecf18 +/.gradle-user-home/caches/neoformruntime/assets/objects/16/1610e7eb27510c2e7afba890158d201c5f96d087 +/.gradle-user-home/caches/neoformruntime/assets/objects/16/1618d8c9a2d0b3afe5d244aa0c4a3123ce9bb0fb +/.gradle-user-home/caches/neoformruntime/assets/objects/16/1624c603e4fc24f7375265e27ebecf1a681b5e93 +/.gradle-user-home/caches/neoformruntime/assets/objects/16/1627e8a87dfc18acc7cd5492d55ded515fc59f9a +/.gradle-user-home/caches/neoformruntime/assets/objects/16/16797c4ad9d87a3ff939a4816d29acb189590dca +/.gradle-user-home/caches/neoformruntime/assets/objects/16/1691218e5ce6ee66ef01cd947f6fbb68fd0a4123 +/.gradle-user-home/caches/neoformruntime/assets/objects/16/167633537d3c25326d108feb76491f266d55b969 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/17b7dff9e88b7b32613ce678a0c29020e4b5ce93 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/17ca16026e5556f1ff2e48d2ab1332c96c914641 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/17e416c1edb242639b5582dee23f1e82f024e8f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/17ee9ec6f130f94f18f63f16c1ccb80543f8a4e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/17f1204d0875e4bbd46240a9339411a3c667ea03 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/171c005ff69321b333fd69d4fb9dfaab966ff70a +/.gradle-user-home/caches/neoformruntime/assets/objects/17/174d2c0a0e24d79d21ebdd5d472bec71da6390a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/175a15e5352078159c540207f6240e8751dadefd +/.gradle-user-home/caches/neoformruntime/assets/objects/17/176a42e45e175ba7eb2ad6828d7ec324e27658a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/176d2f7cec51bf54d1702230d038de817912659e +/.gradle-user-home/caches/neoformruntime/assets/objects/17/1706d8882cbd0a424d4b02351c713784a0baf03f +/.gradle-user-home/caches/neoformruntime/assets/objects/17/1708ab5af3717991ebf610e6e4a345812d3e985f +/.gradle-user-home/caches/neoformruntime/assets/objects/17/1745bdfe6432251d3b77cb0a4251d7684bd20bcd +/.gradle-user-home/caches/neoformruntime/assets/objects/17/17263ace7c859058c2bb892f2334f0e49f6a8a7a +/.gradle-user-home/caches/neoformruntime/assets/objects/17/17555ee1014945e896df557e7d83bc6073cad363 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/17952e5f04deba5308ee7d30561a7d24aec33dd4 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/171889bdb52f74e922653a883db46fdf67cd35b8 +/.gradle-user-home/caches/neoformruntime/assets/objects/17/173887d40e42714f51c6dbae7bd956eca5c4e4b7 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/18a0146a81975f4b8e2aac86906a368c4524f15a +/.gradle-user-home/caches/neoformruntime/assets/objects/18/18b3d3903494179868173d1f1dd0dc03f8de637a +/.gradle-user-home/caches/neoformruntime/assets/objects/18/18b7eae4c8b8c2938ada086e44d8ce2c03f4df68 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/18ca25dce99a3034e1c72da7678a6f466bc37491 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/18cfdb1fa5b5bd873d3402dbc332173ca9bd0d45 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/18fc554bbd6ec194bb32952bce55a9efd8d1124b +/.gradle-user-home/caches/neoformruntime/assets/objects/18/180d3c12b20c806ad7da82a77c32238547f68214 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/186d4c1b06582149a972becfaf104b47adce497e +/.gradle-user-home/caches/neoformruntime/assets/objects/18/186d5d9481d59cc99bc4be1b5fbb98d0ef877b8e +/.gradle-user-home/caches/neoformruntime/assets/objects/18/186d32bbd4777bdc95ebd5f379c22817083ecdec +/.gradle-user-home/caches/neoformruntime/assets/objects/18/187a79f49b69ba0d465aa4edc146808f0e04a35b +/.gradle-user-home/caches/neoformruntime/assets/objects/18/188e71a538efd71cd735b72dd8b9eb42e0d45ac2 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/1809f80cd813f57855f9c9c1a010f6d17dd4a649 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/1811fdab411fd2501e8aa5a325de18db0282b693 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/1825ee6ee58c2b237b00c5274496bff9e08aeeba +/.gradle-user-home/caches/neoformruntime/assets/objects/18/1829db3d900fde5a1f118286c7b437ebc48c06d3 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/1838caa64fbc7b6ac410af7ce816352d7909ad68 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/1843cc603e40b465bc5e5047c74aef8a991f1e69 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/1872caa90f666a5159e28413c408c4ccf5fffdd9 +/.gradle-user-home/caches/neoformruntime/assets/objects/18/1895fed0ac3c70a47754824ff8bfb1f505fa1d1d +/.gradle-user-home/caches/neoformruntime/assets/objects/18/18030ff34702b9dab8ba92c68e619a76c101a28d +/.gradle-user-home/caches/neoformruntime/assets/objects/18/18719dd2c60d6faa295ac81fc8eb7c71d652debb +/.gradle-user-home/caches/neoformruntime/assets/objects/18/18944e89e2ba120c2e6a38a65912ce1a09e4ca3a +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19a5baec8f25afdc2c69d2fcbc8ba1539c6654de +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19aa39f803bfb0092ed47a7e096fe726662bbb3a +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19b9832c81480d973f27099f7cb94a84747b8f5e +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19c89e8cb66c03de661dce6d7f780badfdddad6e +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19c6218587201f0c2e1bf1a086e787c6f4d00541 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19e82881cef9acfc892c39376aa13f38912c3ad0 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19fcc8ebf54d0821d0f88a135f19a83cc219dfa9 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/190fc3c07ce94bbb446911d1de5e71826e427162 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/197bf8c344e27787f647872c58158b02f8580245 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/1929f683bcfb0066319ba09cb03f5d00987d7017 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/1933ea18af228a0d39e26c554adb396acdaee05b +/.gradle-user-home/caches/neoformruntime/assets/objects/19/1934a01d11c9f49124ccc57772805011b8aa512a +/.gradle-user-home/caches/neoformruntime/assets/objects/19/1942e678da7394668deb796dcea4782ef3ec0f47 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/1951d9003d62162a765700b587c573b109be7629 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/1956d4d05996b70d3dd3f8183a146705ae2d427f +/.gradle-user-home/caches/neoformruntime/assets/objects/19/1995e1a028d4d3fe4c2bfb0f19cb3f635392d655 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19120c79ca4607c49e15e108ef7eade8d9fbf3f4 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19325ee6c15df1a211c5d41b135098bf49239dd0 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19434f0f3ba2166ab34002407387b7d2789be062 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/195653d23eba12d565a7a44b3b4187d9551774a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/199755acda9ff8e68311691f71002dbc8c8a68e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/19/19034765ba8ba5389b35804ab213537ab5cf706f +/.gradle-user-home/caches/neoformruntime/assets/objects/20/20a2978922313bb5228d879b8081e3700f5ce5bb +/.gradle-user-home/caches/neoformruntime/assets/objects/20/20b3a807754f6daf5778057c94bcc898d97884b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/20/20b1958fea9069befbb20cb494761d2402fb0240 +/.gradle-user-home/caches/neoformruntime/assets/objects/20/20c88ab726a4467bab5eba0f59dc56571c86d779 +/.gradle-user-home/caches/neoformruntime/assets/objects/20/20d6daa862da95996fdeb5036b95a4918895305f +/.gradle-user-home/caches/neoformruntime/assets/objects/20/20fc09bebf0cf9023d63564a411cd3c8083eb633 +/.gradle-user-home/caches/neoformruntime/assets/objects/20/20fee08df557431fb61a70413758c0788badac79 +/.gradle-user-home/caches/neoformruntime/assets/objects/20/20ff9c365388f6d79ee733522dbe3aadbfd536f3 +/.gradle-user-home/caches/neoformruntime/assets/objects/20/200b505176e5619306750943b05d455389aeb469 +/.gradle-user-home/caches/neoformruntime/assets/objects/20/202d7c719c841a48ed52cae567fdc6b35ec79ab8 +/.gradle-user-home/caches/neoformruntime/assets/objects/20/202ded7b43c53c246ffb54d4fb77383120d8f29b +/.gradle-user-home/caches/neoformruntime/assets/objects/20/204aebe731d1e8b230f4a2ef4f494e33bd8a835e +/.gradle-user-home/caches/neoformruntime/assets/objects/20/206f2f3861a3378709e091080a64a795dad6ad9e +/.gradle-user-home/caches/neoformruntime/assets/objects/20/2036f59b02988afac9e39a96751ce24ab7edc3ea +/.gradle-user-home/caches/neoformruntime/assets/objects/20/2059d7595f1873146adf2235a9a754880aa7655e +/.gradle-user-home/caches/neoformruntime/assets/objects/20/200020d0b7d783b393e0bda9ac508a3f0eed1dcc +/.gradle-user-home/caches/neoformruntime/assets/objects/20/20981456d652bbcdddaf7ed10fce0d42ad0f8379 +/.gradle-user-home/caches/neoformruntime/assets/objects/21/21b17a27f2c3f919a1c87bcca0552292b1dcf843 +/.gradle-user-home/caches/neoformruntime/assets/objects/21/21c1d5fae82a32d76de31b0ea05ae7454bf07cb3 +/.gradle-user-home/caches/neoformruntime/assets/objects/21/21c5a91ee929d40d7fe6fb67d19719c1fb161a1d +/.gradle-user-home/caches/neoformruntime/assets/objects/21/21e1cc7289a188e7424f451b787257063f20a61e +/.gradle-user-home/caches/neoformruntime/assets/objects/21/212b19b38d0e61a4308cba33546a1da8bf7a1e3d +/.gradle-user-home/caches/neoformruntime/assets/objects/21/213cea011c25db98a5f98978ce93ed4d690d4122 +/.gradle-user-home/caches/neoformruntime/assets/objects/21/219dd8d77204b36d8d45367f18f978c987a157d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/21/2138c6ea8c39713386a3d1e08c612e2840d8bb56 +/.gradle-user-home/caches/neoformruntime/assets/objects/21/2142a00de645aa748b908c74fc275a3025b8bd90 +/.gradle-user-home/caches/neoformruntime/assets/objects/21/2157d02c910bfece3ba95ccf2b9ba4b8f15fca16 +/.gradle-user-home/caches/neoformruntime/assets/objects/21/2163def86ad24c9937530ddc88993bb876615650 +/.gradle-user-home/caches/neoformruntime/assets/objects/21/2176f149287de50ea15d2604807caf3419b54d59 +/.gradle-user-home/caches/neoformruntime/assets/objects/21/215583bfda553bb04b5b15ef27d643abfe5fa2f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/22/22b61f8192748c33e482b973edd993eed7c405da +/.gradle-user-home/caches/neoformruntime/assets/objects/22/22bb473aaf36574555ca6e38bd69c0ec490dc903 +/.gradle-user-home/caches/neoformruntime/assets/objects/22/22c5aefca088b196a011a1615aaaa6b68f2ad703 +/.gradle-user-home/caches/neoformruntime/assets/objects/22/22c4898315beef5371593f9093375bb867d41b65 +/.gradle-user-home/caches/neoformruntime/assets/objects/22/22eb8f4089af2bd764058a5eeb11880c6ea67f8e +/.gradle-user-home/caches/neoformruntime/assets/objects/22/22f31c6708e3ea1e5b2de087684bb02eb446c8ac +/.gradle-user-home/caches/neoformruntime/assets/objects/22/224b92c6f7b57da1a34bc81a501171d4d0b92587 +/.gradle-user-home/caches/neoformruntime/assets/objects/22/225b26ba6d8842e364ace9d8b0c64831c18c16e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/22/228b652fbb8d9f3d982ead2d0ab07fbd061a6908 +/.gradle-user-home/caches/neoformruntime/assets/objects/22/2219b4e3106c3491936c82624e76faeee2dd66aa +/.gradle-user-home/caches/neoformruntime/assets/objects/22/2242bba8793d15bacdb33cc23964d2c01da27f6e +/.gradle-user-home/caches/neoformruntime/assets/objects/22/2273d42f46a43d16285c0e3164b0bd6100ba7780 +/.gradle-user-home/caches/neoformruntime/assets/objects/22/2276ad86ce09eb7c689658432735464957dcb48e +/.gradle-user-home/caches/neoformruntime/assets/objects/22/2280c8deb0c509f638d02bad1d0b1b3cb8d1e112 +/.gradle-user-home/caches/neoformruntime/assets/objects/22/2292d8ff33d68fd4892d28911a04582e30ef1e24 +/.gradle-user-home/caches/neoformruntime/assets/objects/22/22324b1071e3d53f5f719899ca5d7213dfe4542d +/.gradle-user-home/caches/neoformruntime/assets/objects/22/2252358c51750cfc65ee27f8217384ccbe55171e +/.gradle-user-home/caches/neoformruntime/assets/objects/22/2296140e37917486364a115be306d0b653885ee2 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/23cf697afb231117c4a2d6e01e40b6e9a0d497f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/23d6ba48bbf0e06b3d69021b81cad7c1a868b853 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/23edec96549a8af965ce41c737bce85b5aa8b2d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/23f0b79cd6655e531f01c25e3c543b064dea2c2e +/.gradle-user-home/caches/neoformruntime/assets/objects/23/23f49bc78c831d49b59470801e8edada3c366dc6 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/23f3506cc009ae94eee3bb87b318abeec9d44fc7 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/230a48238f55e8a56b07fdda230b0322a3439d2d +/.gradle-user-home/caches/neoformruntime/assets/objects/23/231e110bf9287385c59565a2e514bcc09b9eadca +/.gradle-user-home/caches/neoformruntime/assets/objects/23/234f525c49216d3957d48d65475a1f554fd8b8ea +/.gradle-user-home/caches/neoformruntime/assets/objects/23/238dd5aa82ef8779be1a443b953279b871e8b8e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/2366f9985e55f9712d153ce48d391c56415ef3de +/.gradle-user-home/caches/neoformruntime/assets/objects/23/2368a0e0b26e33051af360cc4c14cfdcf6246bc0 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/2368ded1c164202a059876128e68b2e70ebcdff9 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/2382caaea57324875b9873cf1d93c5b3ad28f547 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/23991e171a938d4fb87016ad13c37ca5bc9c04be +/.gradle-user-home/caches/neoformruntime/assets/objects/23/23996bf437578860d46c2b1e12c46ce6554456a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/2345540ad9a071ec601e028459bb0c3649845237 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/23006984a98b3fd36acb05998fb95fde42ee5e93 +/.gradle-user-home/caches/neoformruntime/assets/objects/23/23716152f0c5e204387e8238d0d5dd64b3a23911 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/24c5d88bc56f22851030904c219aad4fe032edc2 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/24ccbd8b6748dd0256a5d56afdf98c558fac30ae +/.gradle-user-home/caches/neoformruntime/assets/objects/24/24d54ac72d33f31ab903a14581f2c294d6622c0b +/.gradle-user-home/caches/neoformruntime/assets/objects/24/24e1b0a4692ff3379226ae300009cf124b992b79 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/24f7783a45c3e3306db5ddf41fd1f7f3409cc551 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/24fdff18debd1596bdbe45bb4cfe076ef6c4d5b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/241facfff309b6288fa4704b141b4d8808741bc0 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/244ccea2bd286f17316648b278b9d188e45b5c76 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/246b84dff55d2750e1656fe94964f127a0d14ec2 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/246c82d29e17aec21ad8616d70395cc9a18569d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/246e37485c726cc50b5af4c9cc4f2d55ff2406bb +/.gradle-user-home/caches/neoformruntime/assets/objects/24/248d09d3f4cb85c4dff2ba0c927b60de9fc44ec2 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/249e56179595072f8445d81ccdeb8067444fa594 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/2409d173c2c19bff5866c74288995db5b38b8c04 +/.gradle-user-home/caches/neoformruntime/assets/objects/24/2459fcec85d1cb0b0bd1f777f48c86e7988d666a +/.gradle-user-home/caches/neoformruntime/assets/objects/24/2464fb278d1e855e9fa1a60056f24f0776b006bd +/.gradle-user-home/caches/neoformruntime/assets/objects/24/246278736976219de64df5d7ef1ca905b5924efb +/.gradle-user-home/caches/neoformruntime/assets/objects/25/25a7fbeeb39299a538011e919297775b390f4529 +/.gradle-user-home/caches/neoformruntime/assets/objects/25/25afb522d285c83c3a50007289bbfe1770bebaf5 +/.gradle-user-home/caches/neoformruntime/assets/objects/25/25b67879adb4eea054d75f9191f42e38a91b6043 +/.gradle-user-home/caches/neoformruntime/assets/objects/25/25cd1504b3514c4ac2e1b5cb39065ad081587aed +/.gradle-user-home/caches/neoformruntime/assets/objects/25/25d61770bb505d80389d91fd2dfe47d0ca09a4f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/25/25f1bc69e8991e9ef0ca5bbabf9d13b7d5ccef85 +/.gradle-user-home/caches/neoformruntime/assets/objects/25/251c56cebe93887713e0a297b48bd0b154932a2d +/.gradle-user-home/caches/neoformruntime/assets/objects/25/257c010a7d684f568085b72964563620f9a7d345 +/.gradle-user-home/caches/neoformruntime/assets/objects/25/2531bbaea203726d65d8aed31da576e2cec4fc74 +/.gradle-user-home/caches/neoformruntime/assets/objects/25/2534f9f86a48b18bfbedaba1796221b0fd12779f +/.gradle-user-home/caches/neoformruntime/assets/objects/25/25349bf71bc382c8168b7a6ec110cc982e1b0e70 +/.gradle-user-home/caches/neoformruntime/assets/objects/25/25521a196b3acc962d55f2d424c89a3ce757c836 +/.gradle-user-home/caches/neoformruntime/assets/objects/25/254411a1cba6d0855f397299e0d423ee3f14961c +/.gradle-user-home/caches/neoformruntime/assets/objects/25/2529442f541237a80f10aad29d2aaa275b10b609 +/.gradle-user-home/caches/neoformruntime/assets/objects/25/2571600f0f6a7e6ca98587bea590952e5a5c6670 +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26ad18d9f4ef0a71255459b5f01b738b81dbc7dc +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26b3a3050da842e651ab271fb2522cf248ede82d +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26be2bf85193d707c93ea3440775a061e002df8b +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26c4d57246aef249c4b5548e8c938b393a45a97a +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26c6377cf15714655828cee521dcfbd819b44a3d +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26cd0eda5615a02f1954de91dbf03d30670c031a +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26e04754e24ef912e08387423bd096b0d7d08815 +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26f53bb37024a11bb6cc1be50fe8658d1b2388cc +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26fdd82f38d7e3aa57417c4db826935b70def6f4 +/.gradle-user-home/caches/neoformruntime/assets/objects/26/264ae650cce4cea0cd4cb1757624a9d51653499b +/.gradle-user-home/caches/neoformruntime/assets/objects/26/265a4f766be77ae9a035f09e146a64be8c073ae5 +/.gradle-user-home/caches/neoformruntime/assets/objects/26/267c2f987e7a987c39474269503cbe37254b793b +/.gradle-user-home/caches/neoformruntime/assets/objects/26/269eccfec612e3e4aa9c5c88833db1843a9fe986 +/.gradle-user-home/caches/neoformruntime/assets/objects/26/2600e2e6383845aee4310aa5f3f549d954e2ac9b +/.gradle-user-home/caches/neoformruntime/assets/objects/26/2619f8780101e7ed90979adae6e88e39a0222c29 +/.gradle-user-home/caches/neoformruntime/assets/objects/26/2657b51a5664bab572ae31f24f2d7b99afd62414 +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26130d8b5ebfd50184fe76193b42a1c39921614f +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26531bcbcd4296469f610ff66b6b7261ad073cfd +/.gradle-user-home/caches/neoformruntime/assets/objects/26/26811be0930dbb49c3686d3a69b22f1f2965fb29 +/.gradle-user-home/caches/neoformruntime/assets/objects/26/269587652f4143877ba240bba36fadd3fccbe603 +/.gradle-user-home/caches/neoformruntime/assets/objects/27/27aea996b107206c2e0938f441b722a727248fe4 +/.gradle-user-home/caches/neoformruntime/assets/objects/27/27be6264413a59c1a574d4ddf2ae01053efa48d2 +/.gradle-user-home/caches/neoformruntime/assets/objects/27/27c7f7454d70a924977b0f239febbbbde87ac06a +/.gradle-user-home/caches/neoformruntime/assets/objects/27/27cce57244b212b662e1cf94054e2c216bcf804f +/.gradle-user-home/caches/neoformruntime/assets/objects/27/27f40dd42c41783cf8e37985a00f8dc30247daf2 +/.gradle-user-home/caches/neoformruntime/assets/objects/27/27fd5bb2e339996ac6ce3d33ccd7acaef4bdba39 +/.gradle-user-home/caches/neoformruntime/assets/objects/27/270c29f3c5cbc795c36bd3e41fb9c367ab91ae0f +/.gradle-user-home/caches/neoformruntime/assets/objects/27/271e442119fea8aa36e4f5ad810b90ef97214c5d +/.gradle-user-home/caches/neoformruntime/assets/objects/27/273f0b34150f501a4a3b99a92f3e2717b3945ed6 +/.gradle-user-home/caches/neoformruntime/assets/objects/27/273f437147692f666f264dcc868dbb6ac9c69468 +/.gradle-user-home/caches/neoformruntime/assets/objects/27/277d765ea570f3b9742c968ddc0d67992a5bcae4 +/.gradle-user-home/caches/neoformruntime/assets/objects/27/277e91e5e04b06ecd3ff231e8912873d2e1d5700 +/.gradle-user-home/caches/neoformruntime/assets/objects/27/277f717e1aa7fd71fc50c276add302a985b2a34b +/.gradle-user-home/caches/neoformruntime/assets/objects/27/278b4d72736b2f03173c0220475df9c622c2670d +/.gradle-user-home/caches/neoformruntime/assets/objects/27/279c5eb57f9f8e91661ec69a074ab76c316d7356 +/.gradle-user-home/caches/neoformruntime/assets/objects/27/27464bfda316386457d3e0f58a9c04113b7c2d3e +/.gradle-user-home/caches/neoformruntime/assets/objects/27/277240fd6adb7e403c4ef1b8e7dc6dfd01f51fea +/.gradle-user-home/caches/neoformruntime/assets/objects/27/27956293922758e2a5c7f7acbb94d31c5c3ae639 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/28a986ab93d20421b9250278650dee517f62db72 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/28b18a97cc579a21c2435811757f234741a814c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/28c1c3858c3ca4cc6f7a8fc2de3c4864ba54e204 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/28e3a174d408f0c61d2831d278e78d591095bd18 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/2801f7043382da42c00e35340a863acdb6d295bd +/.gradle-user-home/caches/neoformruntime/assets/objects/28/2842bba36bc93963247f5311e576b6247e737705 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/2843a6f2d76f9dfb362a0938522181e68db83ac9 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/2861f25e5d304c80ec3c4c8be24780b202065795 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/2891cb85fbd8a90ed03889d0d17c640f518b42f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/28809bee5a55462486cf62b32f0c6f9871836d00 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/28912fd79cfe0e4e9465503809465ec400b0926b +/.gradle-user-home/caches/neoformruntime/assets/objects/28/281891c256915ee11ef4c3893a0c0b64a3fd8d2c +/.gradle-user-home/caches/neoformruntime/assets/objects/28/284933d50341876997cbc95b64864b6abab113af +/.gradle-user-home/caches/neoformruntime/assets/objects/28/286294cdcd4f87d8eecd6b7544e5a215ba7cfa3e +/.gradle-user-home/caches/neoformruntime/assets/objects/28/2800055fbed23e1f0f3f1fcc4beafaa3b2e07690 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/28428844c6a0970815f7e0a4efff48d22947ad69 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/287464814e0b4c8588ab9671108382642b103993 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/288152797238fee61acb9c8e93aacb7728be8104 +/.gradle-user-home/caches/neoformruntime/assets/objects/28/28892890033064296ba36dfc9462be578d7b969a +/.gradle-user-home/caches/neoformruntime/assets/objects/29/29a83045889f2b6c507271c41a26bd7dd6ce4b08 +/.gradle-user-home/caches/neoformruntime/assets/objects/29/29b1d75d1ef24892764120c9bec3a81fd46a3ed7 +/.gradle-user-home/caches/neoformruntime/assets/objects/29/29d3254f2a82d15916991e90a608db68178586a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/29/29fbab28d2b809013c195137f745525b13e92082 +/.gradle-user-home/caches/neoformruntime/assets/objects/29/290e827930e4333e78d13c08b2a2e341da29f1b2 +/.gradle-user-home/caches/neoformruntime/assets/objects/29/295f048e8370d397aa4813172d10b2e1b1bd2409 +/.gradle-user-home/caches/neoformruntime/assets/objects/29/296ec244acae70f236c8f1220380976b8fa9e636 +/.gradle-user-home/caches/neoformruntime/assets/objects/29/2933ec1db4be45d5c2980ddce10f2209c4ee5230 +/.gradle-user-home/caches/neoformruntime/assets/objects/29/29539a3ccb453d08ca31bd45e993dc3e47a67f87 +/.gradle-user-home/caches/neoformruntime/assets/objects/29/29617ea7a07d4c3ed1b98b752b5740b8ca2e7cbf +/.gradle-user-home/caches/neoformruntime/assets/objects/30/30a600a9e2cfef0400bbab062cbbd0be2755b5a0 +/.gradle-user-home/caches/neoformruntime/assets/objects/30/30b852ccfdb586472e8f7b9bc3d3d655e769ff25 +/.gradle-user-home/caches/neoformruntime/assets/objects/30/30cbb388cfac2e93e06628218f5ad334bfef60e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/30/30f01019a58d311e86c90b50fd4797a1224dc856 +/.gradle-user-home/caches/neoformruntime/assets/objects/30/303b49a590780c8f69bce33818f74bd807f77c84 +/.gradle-user-home/caches/neoformruntime/assets/objects/30/303ed1b5a9e84adbb5edcaec6de03706c8bd5fa3 +/.gradle-user-home/caches/neoformruntime/assets/objects/30/309a023d60b892ece6c82a37cbdc826621aa98bf +/.gradle-user-home/caches/neoformruntime/assets/objects/30/309b7d70e68e6adcce89347356f1ff369281f676 +/.gradle-user-home/caches/neoformruntime/assets/objects/30/309f360ea3ad1fb4b6ef78e5bb209d6cb415dd5c +/.gradle-user-home/caches/neoformruntime/assets/objects/30/3035f8b719dfe54ce16d4bc2b9b93f9a968e7f2e +/.gradle-user-home/caches/neoformruntime/assets/objects/30/3052c1715360c132eabe491a7df05d95835e2a5b +/.gradle-user-home/caches/neoformruntime/assets/objects/30/3066a05ff74bb537d38e2172c257f28f1b3f6e53 +/.gradle-user-home/caches/neoformruntime/assets/objects/30/3083ff465e1d177eebb73788a43a1855b9ec64ed +/.gradle-user-home/caches/neoformruntime/assets/objects/31/31a036700ec392bc377852ca1654224161bea132 +/.gradle-user-home/caches/neoformruntime/assets/objects/31/31b8ddaa79944c66bf1245bd1802b50dccd59812 +/.gradle-user-home/caches/neoformruntime/assets/objects/31/31b547e0dae375f8fd07431de05a56bdc6880f4d +/.gradle-user-home/caches/neoformruntime/assets/objects/31/31c63f04424414dae60aea291ca7d5b977001abb +/.gradle-user-home/caches/neoformruntime/assets/objects/31/311ef8b58ab266c5a5d903dd758a062532e33f3b +/.gradle-user-home/caches/neoformruntime/assets/objects/31/313f9803cb58eae73c53394cdb5301023d9d0d8c +/.gradle-user-home/caches/neoformruntime/assets/objects/31/317a73002f87d331c31885720e84a0a081e06998 +/.gradle-user-home/caches/neoformruntime/assets/objects/31/319a1c770452b3accc07a8f0d5908de278afc151 +/.gradle-user-home/caches/neoformruntime/assets/objects/31/3109ae0a1d33b78d564824292222cad6966608a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/31/3137d4923103ee59efaf9f520cd21aebbc971177 +/.gradle-user-home/caches/neoformruntime/assets/objects/31/312745ed858214dfc2215346cd9a3012c90018b5 +/.gradle-user-home/caches/neoformruntime/assets/objects/31/3169821e109e3d5cf94a33d835e19534aded7db1 +/.gradle-user-home/caches/neoformruntime/assets/objects/31/31718790d69993ec588f16daf43f48c2feb0ff59 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/32b83f2f9b1c1c5a51a15ea17dedad92cf7aecb1 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/32b595ddc5004a2bff43d90ed029a2cf934f0ac0 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/32bd1e1d184c82e5aae1d3ad687e21665b93cdec +/.gradle-user-home/caches/neoformruntime/assets/objects/32/32c50f602ae4d10947617307f5e1436caa90bccf +/.gradle-user-home/caches/neoformruntime/assets/objects/32/32e6ef3cbceaa79dfb5ba09643eed25ee2f5e4d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/32e656200ba4a507579de8bd6c38e7c5a207c332 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/323c80e65c321928f08ca320b1f8eb4b95acfa3b +/.gradle-user-home/caches/neoformruntime/assets/objects/32/324b5fe052c41ecb8f9f99ceb02f0ae0f378801e +/.gradle-user-home/caches/neoformruntime/assets/objects/32/324bdca11921a46b0c87e61bf7a93047e70eb750 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/324ef0c8d043e6c4246efad337ed07d84b59c84e +/.gradle-user-home/caches/neoformruntime/assets/objects/32/324f58251829988ad3f4a5f7dc39b647fdcc2639 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/324fdeb4e7ff88141d0bfe9b0d4558d59f0daf5c +/.gradle-user-home/caches/neoformruntime/assets/objects/32/325a713ca5fc3580f022bb73fb58b48afc24e501 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/325b3145152437b6367e5a7644a4dcf7dc5851a0 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/3206b61dfb32c47f6e1614de20538bd28ac60c10 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/3257ff8dc891c52a342b60e0b7624bae88379e54 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/3270cf470710d8cbdeafe11e3e17448568f38b3c +/.gradle-user-home/caches/neoformruntime/assets/objects/32/32665c2824be59c76034e08bf6ec1c02c67de441 +/.gradle-user-home/caches/neoformruntime/assets/objects/32/321314ad42fb016fe8f58d06e3b8784bdcdade2d +/.gradle-user-home/caches/neoformruntime/assets/objects/32/326134c1718d012006b6be1c02204b5e1865907f +/.gradle-user-home/caches/neoformruntime/assets/objects/33/33a3f9645aad8c7d5ab8251b8f7fac67c5fb90ac +/.gradle-user-home/caches/neoformruntime/assets/objects/33/33a598eac9b8af70ccc8fbc8d7256c3fe08d5966 +/.gradle-user-home/caches/neoformruntime/assets/objects/33/33b5165a6883700a99cf2061a9801f65ce28620c +/.gradle-user-home/caches/neoformruntime/assets/objects/33/33c4b5cea605c7cd9dd8bae7d8b41926ef97df16 +/.gradle-user-home/caches/neoformruntime/assets/objects/33/33dcd77a59abcf70fef080015aa4305149a8f6d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/33/331c13e9fceca0aee79b9d06dea291dae32fcf8e +/.gradle-user-home/caches/neoformruntime/assets/objects/33/336de0edfc0f8186e41eeba1e65ff58763324d8d +/.gradle-user-home/caches/neoformruntime/assets/objects/33/338e0b08a21e73dd5e7888c9c7e67e9a1a119dc1 +/.gradle-user-home/caches/neoformruntime/assets/objects/33/339a4ca7e66f34c7fa5f4de7198ee56bd6987ede +/.gradle-user-home/caches/neoformruntime/assets/objects/33/3300bdeb4c80efef8ed616c349a5c3cff8d8a6eb +/.gradle-user-home/caches/neoformruntime/assets/objects/33/3337aa5055fde65fc91ba5116fb83ca881b61b33 +/.gradle-user-home/caches/neoformruntime/assets/objects/33/33493d630036b86bb088a5a586f5b58d9e27b439 +/.gradle-user-home/caches/neoformruntime/assets/objects/33/33526e2c16aee8f3df6dd6ae3024d3f3170b4294 +/.gradle-user-home/caches/neoformruntime/assets/objects/33/33647d137efa18aa065d2dbbc81f32a173ec08bd +/.gradle-user-home/caches/neoformruntime/assets/objects/33/33663d0e28e32f7bbc75ad3ce76f92824e6dee20 +/.gradle-user-home/caches/neoformruntime/assets/objects/33/337653ea7805d5af52dd47e6fa916bc050abec3f +/.gradle-user-home/caches/neoformruntime/assets/objects/33/3329207b08cac85f3a990757027fc248e4d23b06 +/.gradle-user-home/caches/neoformruntime/assets/objects/33/3399418ab9cc653a2c7094e81adcd04aef21cece +/.gradle-user-home/caches/neoformruntime/assets/objects/34/34b6976a1e91d76ae76d7bfd0aaae51134310199 +/.gradle-user-home/caches/neoformruntime/assets/objects/34/34dbc7532d14383742333147ca3adbda0350aa0e +/.gradle-user-home/caches/neoformruntime/assets/objects/34/341c5c89f16883188250f5f62e809eae68206234 +/.gradle-user-home/caches/neoformruntime/assets/objects/34/343e433ef9dfa926c4ddf69c09922e3052c69406 +/.gradle-user-home/caches/neoformruntime/assets/objects/34/3400cdc571e3c92b14cb255b47fcfb992abf77e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/34/3455ca942556c7d5eac7dd5e458e7fb3bad564c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/34/3469e814a648321af9cfb3aa9985737fe53f5e43 +/.gradle-user-home/caches/neoformruntime/assets/objects/34/34045a5f85387fa6592e6466435e95825e171c25 +/.gradle-user-home/caches/neoformruntime/assets/objects/34/34574dc6e95a7ca786a4e40e9d2263470d7d7eda +/.gradle-user-home/caches/neoformruntime/assets/objects/34/34334146a857e5e09d349322976c9aba204f182d +/.gradle-user-home/caches/neoformruntime/assets/objects/34/346362752486b4f1cb2f3aa134d3fde60e3eb385 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/35a69020b6b470d44c132cd37781920cd3cf7d0c +/.gradle-user-home/caches/neoformruntime/assets/objects/35/35a8361734a40925f787641e06bde86188d03cf2 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/35b1c5747ba2572775d6e57f6d26a9ec46e75001 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/35c468e8bad22833fdf63d60b1d35cd14dd0f6ef +/.gradle-user-home/caches/neoformruntime/assets/objects/35/35c280803fdd75a413b84070bf4fa9d0e65b7d43 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/35f4080cb0d3229d4f0838f638673eb6837a0178 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/350ff7f8adde86c3dcf9c1661db9843a0bc81f16 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/351eff6423f3cc85901e1dacc0d4b9c432f9eed1 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/352a5126d3d32147a74ca9e5d1a9577dbcec75bc +/.gradle-user-home/caches/neoformruntime/assets/objects/35/352d993b893cfa0cd62293aeb410f29e687065a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/358b7c6f74475a3496f47fabf5f5c07d31d2bcc4 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/358f72d0265cd98cca578525e61544a02e2fa392 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/3558e4e13ba3829cc69f1268581e30b962416816 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/3590f6f4fec1a1a2d24e6675fcc47ede09a7db3d +/.gradle-user-home/caches/neoformruntime/assets/objects/35/3591ce4debaac9064c44043a3034cdafd77c2533 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/355793d4197fdab0e194d9e862f2fcd13c7377a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/357995f8d51884f14e5fa979c3f1e875eb6949c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/35/357797503b925c9139b166cd31a48d9260f7ee61 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/36a5b2759d4d42c4e6e0af5bb05496d2f73e9f67 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/36bc5d9141cf26819f795772caaf69bbe213fc1e +/.gradle-user-home/caches/neoformruntime/assets/objects/36/36d5c0e23a741d7b4682fbc70ee624e87569e197 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/36d181b213f35eacebc4984261e745631b148a92 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/36e2b40419e68e1afd1ad19acd4828064d7c70ce +/.gradle-user-home/caches/neoformruntime/assets/objects/36/36e6890aa5baf629bdece1a3cebdfd86c72d1189 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/361a0d4382833f2e1c5a1a84de4c9bfcca48de16 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/362da2df9f0b4d43d7c09767314e3b9df9f280da +/.gradle-user-home/caches/neoformruntime/assets/objects/36/364ffa7952f56038bc4274415b25d2e4f3221923 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/367a21ebbf3314f456500fb62eba65cb5c75bcdc +/.gradle-user-home/caches/neoformruntime/assets/objects/36/368bcd157f8768ccd56e479e44e3a6ea91e75d8b +/.gradle-user-home/caches/neoformruntime/assets/objects/36/3607b1d4e8d5e42de1a3fbb60b9948d7dbe5d039 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/3643e77db6d2104261472005639967e9dd2b37b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/3618580be0e536a804509d28141b684c272f6ae4 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/363176714ded11d18f9f0cbe8df4629442600764 +/.gradle-user-home/caches/neoformruntime/assets/objects/36/3667958768496b1600af15aa170dd24ec6c62fb5 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37a2fd80b646c30bc4caaf19fedc61357a698348 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37a5c502483e043360f15d438a4bdfa0fe1fd6ab +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37a177326891665f15c6dd9aba72a0fb96c29cbf +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37b0c15ffd3b6a212423438d467cf1089e258fb0 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37bd8d8bbe79f763c98e0e2e641a36d4409d71fd +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37c6276a287144b5a2855d1c7e697500459d6070 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37c638650c820500b90b68381d7bd7b40591b8b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37ca3a11409c7a70d81499cfd34c37b2b982239c +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37cb3d1aa4e5fb5b191c596377027d7461ab4dcd +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37da25a09c68c32a9b7ced845e8f384255ab732d +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37e82d37c936fb9088ca4a64fc3216f0b43d73bf +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37e634797f199982107aa7d296a0f14d69135227 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37f4c7a3a20b6d48b8f467381ee4e73bbf8c09dc +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37fb36af790bf61d8e8deb0b990c8cee3fc5b624 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/372a080abb302cda9618aa8fdb0451badab9b2b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/372cb0fcc25ddedffd2e96d61d4d96b0d09d2d7a +/.gradle-user-home/caches/neoformruntime/assets/objects/37/376b4bf50eb6a2723c52196eeb8dc719584a06c8 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/377d376bf459b1f039e42df8510b7aaab037ea60 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/377dd408d95fda9e9379776349c69e813d4e1389 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/378d419f70b50e539947c300041ee22d5f0be9e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/378fd985c0de76da97d626f9806d528136c8460f +/.gradle-user-home/caches/neoformruntime/assets/objects/37/379e9539589727a03f9f122a230d21f8c11d7a5d +/.gradle-user-home/caches/neoformruntime/assets/objects/37/3773c5cbc781cea28dc05da324310db9e872830d +/.gradle-user-home/caches/neoformruntime/assets/objects/37/37320ce148b868929eed407e4ea5cf41613f8eaf +/.gradle-user-home/caches/neoformruntime/assets/objects/37/374666b4b60e3f4139e932c2212f892632cb8ff3 +/.gradle-user-home/caches/neoformruntime/assets/objects/37/377153b349fa87703f381e4ce03dd954ec836f9d +/.gradle-user-home/caches/neoformruntime/assets/objects/37/376554546bd7b0a108ff0be10ab4ba6389f0d125 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/38aca3200a34dac9bfb02a70dc261344ba009e23 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/38b17e27ba3eb6b8e549c295040f21d965ed347c +/.gradle-user-home/caches/neoformruntime/assets/objects/38/38bc4945e4b02b6da45ccb90e8a58dc723dd6227 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/38be8858400ff9f27f276b3d162d4d469dcceff7 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/38c25af3e2a2d245b1778f681e53eb16af740f7c +/.gradle-user-home/caches/neoformruntime/assets/objects/38/38c49994da848a71e5bd2dc2796d49a51d691eb5 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/38ed6e21e2baa234c0a8901ab8a6fbe5eed00450 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/38f5b1e93a9ef1d4779890ba4e43370421ff17e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/380fe0f9580a7ab619e3d754c619c9b57a4e95b7 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/381bd8590b65134d8c2f31a443cb37752145d353 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/383d58430fbe460cf0a23adb7080bd1fd334b8a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/386adb1a2ab6eff86ab241f7376ad501ae7b6b45 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/387af78d9a3c17f3f09a42c7dceef2fa4f2cd161 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/387fecc2cc03108ddb6f03df0fbb45846388af77 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/389e837fa8c7f8f09499b43d8710489dfd8c53dd +/.gradle-user-home/caches/neoformruntime/assets/objects/38/3874f0d360bc56e3f7d67b863bf43566aba7164f +/.gradle-user-home/caches/neoformruntime/assets/objects/38/3878bc489b0a8aa9a2465215772078352ee2120f +/.gradle-user-home/caches/neoformruntime/assets/objects/38/383342ac69af173e01714110c1dbd6d52de7c887 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/384931b89f622f9d55a4cd58cf8d328588b4de84 +/.gradle-user-home/caches/neoformruntime/assets/objects/38/386730fb668bd471bfda86d21579840ca4943e4f +/.gradle-user-home/caches/neoformruntime/assets/objects/38/38897373c385d415bd606ec1abe4da714a76e5bb +/.gradle-user-home/caches/neoformruntime/assets/objects/38/3847348851687333acddacc9759f7396d2124ac0 +/.gradle-user-home/caches/neoformruntime/assets/objects/39/39aad4fe7e45269bce42fd414c0c81d1017fd92a +/.gradle-user-home/caches/neoformruntime/assets/objects/39/39b7372ac76df026acb03946bbe9c988cdf0885c +/.gradle-user-home/caches/neoformruntime/assets/objects/39/39bb6feb1aea09e0a18c5c868412de5ab822c060 +/.gradle-user-home/caches/neoformruntime/assets/objects/39/39dac60d9d79b33739eed95b7e30080ce2e75d10 +/.gradle-user-home/caches/neoformruntime/assets/objects/39/39dd58da1447613afebbfbd099a551663ac442bc +/.gradle-user-home/caches/neoformruntime/assets/objects/39/390c1e8ea2a1fad82e0c179bcc08b734899307f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/39/394ca943ee0678d13066531663fab6f1f41aea80 +/.gradle-user-home/caches/neoformruntime/assets/objects/39/394e57ac47e16e470f090e4b2f128a0f201d6cde +/.gradle-user-home/caches/neoformruntime/assets/objects/39/399ba913566d400fd1abbe0c2f2f3f7e9b470c2b +/.gradle-user-home/caches/neoformruntime/assets/objects/39/399ea22c603e96cc955f93ffe5850b0fe46e19a3 +/.gradle-user-home/caches/neoformruntime/assets/objects/39/3901af42f72bbf980a1c7b05bc9a0022d6620c8f +/.gradle-user-home/caches/neoformruntime/assets/objects/39/3967b91cfd2cdd497654fb1a30cdea3542bcacc7 +/.gradle-user-home/caches/neoformruntime/assets/objects/39/3999b5a61c24b2c667ed360451e1e6c8a2cf7b9f +/.gradle-user-home/caches/neoformruntime/assets/objects/39/39122faf5c169baa901fd996dde41c3f29c20df0 +/.gradle-user-home/caches/neoformruntime/assets/objects/39/39143ab7c257c5b1138448103fecf73c8e001fa5 +/.gradle-user-home/caches/neoformruntime/assets/objects/39/39863ed3a471649a3e8d110aaa99ac81efe03058 +/.gradle-user-home/caches/neoformruntime/assets/objects/39/3932099acfba8a0deb270b414c6121b25d250a3c +/.gradle-user-home/caches/neoformruntime/assets/objects/39/3914700472b796e27c02fb68c6d4ff4bf91ac781 +/.gradle-user-home/caches/neoformruntime/assets/objects/40/40a7bbb37aff1dc0a13bf0e0dc432be9b11d05a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/40/40a50a72c02cd6b80815c5e9fe7c225cfab2f48b +/.gradle-user-home/caches/neoformruntime/assets/objects/40/40a031654a1b4b18777b7cd188f8567d7b5c98a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/40/40ab5638b37fea5a71010d619bd8cad3771e4ea9 +/.gradle-user-home/caches/neoformruntime/assets/objects/40/40d62fd12000257d8a6e55ab2f20a85a4b19c996 +/.gradle-user-home/caches/neoformruntime/assets/objects/40/40e3afa69dacc9eeec0f4e39a02e8c67b70f1e0b +/.gradle-user-home/caches/neoformruntime/assets/objects/40/40e9339554996857f28e4a93870bf1461e4b437b +/.gradle-user-home/caches/neoformruntime/assets/objects/40/40f2588378e41f1e67da415d14d34f3a678cde6b +/.gradle-user-home/caches/neoformruntime/assets/objects/40/401a4f86da4f4e33ecd55e46048b51344268332f +/.gradle-user-home/caches/neoformruntime/assets/objects/40/402ded0eebd448033ef415e861a17513075f80e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/40/407be1e34e09022a1a175b64c7c87ac05bd1584a +/.gradle-user-home/caches/neoformruntime/assets/objects/40/4016f27dc128015be0ff8732e5bff569da3146ca +/.gradle-user-home/caches/neoformruntime/assets/objects/40/4061a315e7629a5d42a98f91efdbb10424fc70eb +/.gradle-user-home/caches/neoformruntime/assets/objects/40/40082fd467ff5e7cfb389c4ca862939a15db7e69 +/.gradle-user-home/caches/neoformruntime/assets/objects/40/40791b42d490bbf7aba949dbccdc29cf2389922b +/.gradle-user-home/caches/neoformruntime/assets/objects/40/400706feb11661858c9cd229117cbbd4f6279d4d +/.gradle-user-home/caches/neoformruntime/assets/objects/40/404350219666d9ba40343896d071a00697dacbb9 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/41a397f9f400b11f378a94f1e56f5a78c8d66d1d +/.gradle-user-home/caches/neoformruntime/assets/objects/41/41ae38bc134450cb8591d420115133a3b57eff02 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/41b2be4fa07b754dec426a0f8a152f10da40cc63 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/41e28a6eb08a94bff37779e72d149dedd920b2ab +/.gradle-user-home/caches/neoformruntime/assets/objects/41/41ea11e04e24771a43a5cc0352321d18e88cc1ed +/.gradle-user-home/caches/neoformruntime/assets/objects/41/41ea86c6c13c1fb5a9e5328232b2c8e16d18e2f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/41fef90488ed0aa65bd83e123a6bcd20360bdb83 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/411f1dfe2ae82294cf873be8195359911d089e86 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/412bd95a470640470d72be3d107d6a6cf61c0a8d +/.gradle-user-home/caches/neoformruntime/assets/objects/41/415ec9638a5e5574d55b1ecec7ce742a42df4dab +/.gradle-user-home/caches/neoformruntime/assets/objects/41/417fdcfaf5f07ccb50aaf7fce8a65118273427e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/4147e403d6810ea5c24f856e17b42cf6806c0ac4 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/4151c7520e64521a2f44e58f58f8a8f729ac07b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/4158d20271c062b43a0a8081acdf0937221cceb1 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/41055e11b0eaa0a3d53408b63a505e77c85958b8 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/41488c54c1481440d911510405e7353717e06d5d +/.gradle-user-home/caches/neoformruntime/assets/objects/41/417611aaa8827bb57188a7b9e7535af4bfd00462 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/4175672fe68bec354b210a053d398fd7b20bb8e4 +/.gradle-user-home/caches/neoformruntime/assets/objects/41/4192122bdaa7d007518f938df4042dab1ae81149 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42b6a2716a0f3fc191ff7354c2d216ce122ab793 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42c028822ba7e843f53c53762f6586e654594d57 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42cd5cfe8c34126062175d2c3d437db4b60bf925 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42d71c0b4b894b091e6924068a7624788e03b92e +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42d408bcaf1eedb56d67ecb1830c1bca972945bb +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42d31886efa49e957123b2e1d2a0433e475eb449 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42e464144d1ed8a8abb33530eb371db4236958af +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42f0cd5a2a4e294954bcd9c03ea80cee35cd06ad +/.gradle-user-home/caches/neoformruntime/assets/objects/42/421af59b08999afa060a848a27c2d6351eb87ac6 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/425d10c60202787db3c4d5da695ee2934bddb4d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/428e0d0e7c25d8ca12f1839d7e8623465e745a35 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/4211ca09a11fcf0bb2f20d210389ddeae6e0fc8e +/.gradle-user-home/caches/neoformruntime/assets/objects/42/4253a2a69d1dce1a5b00d24a675e379677463d19 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/4268c73e5c421b2e2d0fbcf48631593463e5b422 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42204ac4fdac2c5631106a251ec38626351320c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42429ae14b45439a7017145063b2cceea99ab2fc +/.gradle-user-home/caches/neoformruntime/assets/objects/42/429641a500432ac2df9dcf0f28b034bfbc435acf +/.gradle-user-home/caches/neoformruntime/assets/objects/42/4223968073a67175ee913c256f18f8e808fdece2 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42714946662de93024632f108738d9c69bedc1f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/42/42732129644bda1544f1e086e7ed5d61479c55e4 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/43b98ec31e91d01637f00376ba8a747bd0c316d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/43bd3b146f2647c02261c662c1fa2604303fe991 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/43c6b3ad8c721cc0cc671f07d44d43ec7479efeb +/.gradle-user-home/caches/neoformruntime/assets/objects/43/43c74f4bceca88a5eedb0e5ba6e2ce4946119068 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/43fd095b526ebf6f292c2d63fe28cec673707153 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/434ab511b752a1cdcc9cbfe46983aa68896f36ea +/.gradle-user-home/caches/neoformruntime/assets/objects/43/434e9e09c26b4624b4db25783819f15f1a093365 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/434f9df33b0d402b7094c36f463f52e3cb3762f3 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/435d823c6302e6f50d55a1af43cff06945ed452a +/.gradle-user-home/caches/neoformruntime/assets/objects/43/436c6cf3c17743553c604000f6085fc89f6e9673 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/4314f3a555a3208fab284d6f0dc4b95903203fbe +/.gradle-user-home/caches/neoformruntime/assets/objects/43/4320eabba4eb4e1c6be142a82255e3147101c40d +/.gradle-user-home/caches/neoformruntime/assets/objects/43/43544ddbc393f3a6869e26d5cef76eea44cd49b3 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/43775d8586d4b3bfc71835b5f13b4f5983417973 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/43900ed0dab4b45659688892d9b007749422555b +/.gradle-user-home/caches/neoformruntime/assets/objects/43/433026dc9ff0946ef52622316550aef5fcf9fb46 +/.gradle-user-home/caches/neoformruntime/assets/objects/43/436970b9d93a5da26a5d20a4cefcea103ce431da +/.gradle-user-home/caches/neoformruntime/assets/objects/43/4377468f69b405c8f0882ef7de291e8c88fd189b +/.gradle-user-home/caches/neoformruntime/assets/objects/43/43333894fa2b66c1f5ab30382d728b391da0ceb6 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/44abacadab7273a1869e204101dcb2cf467b9d01 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/44b02e9b5b77222737f93ed43eadcb39a9c7c003 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/44b982dcbae854042c18c766a4dee28d2497f612 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/44bd337eda14f18dd7d5c3366b91a5cea7e34bc0 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/44bf73c4b415442ca23bf917a465c996113a08fb +/.gradle-user-home/caches/neoformruntime/assets/objects/44/44f46567ae7329a71a2e9bfa8702662ba9e8be38 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/44fe93631e6cb71ac33c8902cc1ad74219e9b527 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/441c5d664ce613a1eff8fe2034c0ba368c7f3eec +/.gradle-user-home/caches/neoformruntime/assets/objects/44/442f78be85189bb938e703b19aad7d4823914a7b +/.gradle-user-home/caches/neoformruntime/assets/objects/44/443b235cbaa3debae1ba0229f04ea7243cb1cd68 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/443bb8b2c22f2137e17c0e1df188da31c51b4c7c +/.gradle-user-home/caches/neoformruntime/assets/objects/44/448e0f5351fc4e17640a5d2df9e581c10e5b2dfe +/.gradle-user-home/caches/neoformruntime/assets/objects/44/4430e15a4d60083b9a1479beafd80ef132a651e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/44031ccae235f6b1c2b4af85c4e3050ec7d0b141 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/44886eed578f551391b69af7a651d78bafab34ee +/.gradle-user-home/caches/neoformruntime/assets/objects/44/445882c95ff7a5691ea9ca58637eea7534858154 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/4450225471acf6c3ecbd2ee86f21a8c58bb18a75 +/.gradle-user-home/caches/neoformruntime/assets/objects/44/4470661621cf0e95abdac0b099ece7d8bb308020 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/45d5ecb9b35e17e4e62690fdfcf6bb182a44ccc6 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/45d794c21adb9f4209e12e4ba16bfb5d1b6b35de +/.gradle-user-home/caches/neoformruntime/assets/objects/45/45e404755af7eeed3d222bbc8a30782f0c529616 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/45febb0f2e4c7d7252aecd2b144f6b8015abad1a +/.gradle-user-home/caches/neoformruntime/assets/objects/45/452af45b1729ff634fb30662366616e0b5924001 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/453cbf0d5f094078c2b5572c19d610874b2bf053 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/455eb202c42b52ea55893d9e5b74ec100a2efb67 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/459cfdda3700ab8ce73c8a27e3086486dc21f285 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/459fca285ade6aced5f9d489fcacd1096f87402b +/.gradle-user-home/caches/neoformruntime/assets/objects/45/4502a1b99ce85ee2d0f3fb335643e431b574f62d +/.gradle-user-home/caches/neoformruntime/assets/objects/45/4518fdf76b94647009cc6e2463e12743c44c3118 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/4540a415cc3e1413a09b54fbfcf9cb1c3c48a357 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/4540ef595654fa7551c2e92504f155ef1cc0177a +/.gradle-user-home/caches/neoformruntime/assets/objects/45/4574e4b3a592117b019e05088947ee26bc55e697 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/4536569ebac20ed5b5ad7d3f4cb10d7346fb80e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/4553885dcba9ad468a6cbda4f809d27eed83aeee +/.gradle-user-home/caches/neoformruntime/assets/objects/45/4564809b9a9e52f090da8b901ebdb22f4242b1cb +/.gradle-user-home/caches/neoformruntime/assets/objects/45/4598667fd060396fc26fa163baa3a2388db67088 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/4599306fb9df32b50b76012d6bd64bcb4c6bada6 +/.gradle-user-home/caches/neoformruntime/assets/objects/45/45986752eaebf2c004da7e1e297df0ccf55c929e +/.gradle-user-home/caches/neoformruntime/assets/objects/45/456643032f3498bbc0c1d2f8172f64382627821a +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46a4197001b67c84ff3752c96afce6e747936774 +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46baa8602f9e40edf48f5c0ac7a280474140033b +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46c8440dcc94a4874d2926708eced9f73a13be0f +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46d47a68b34810964a01857a7c130792ca2d802c +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46d9741e0c7f3334cdf74ba5eb72659f0e16fd1d +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46e0afc72cebc57aafec235d6e2b28d6335662bb +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46ea6ad617e88826b705dd4a866f5ae2363ddfb0 +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46ec385b54e675668a976fc6adc0ec7c0349f12e +/.gradle-user-home/caches/neoformruntime/assets/objects/46/461c8179c98984b384cce970ed567ce524afaff7 +/.gradle-user-home/caches/neoformruntime/assets/objects/46/466c7079811a6589a34f6efe17e5a212b2fcc18a +/.gradle-user-home/caches/neoformruntime/assets/objects/46/4634e0b38a0062a9e52a6079773bf252fb421761 +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46169daee2ece0a3d3018578c80e8d175d48d49e +/.gradle-user-home/caches/neoformruntime/assets/objects/46/460066a486afec42aa1a5613e50296a394b7c0c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/46/466021d015a199472996b848d1beb1fe86db8bf2 +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46244605b8663a29cdce7bccc5b2d038241e32ee +/.gradle-user-home/caches/neoformruntime/assets/objects/46/46444368ff9406554c1110381c97fb0e378da08d +/.gradle-user-home/caches/neoformruntime/assets/objects/46/466465961daca3ad95d498fe34aace460ed4c8a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/47a19ce6642f535dc040be1fb812612b38af5d37 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/47b6a0b93c447b07f0be50ef331df0db97662c64 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/47bc6f4f6493e31d68852c9be089c743f93accee +/.gradle-user-home/caches/neoformruntime/assets/objects/47/47d744ded8930de34225e75f19e3320d313e03e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/47e7e34f63028843ca8086510feb6ab9b1f15ce3 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/47ed66641523134ad5f07e41e8fef27000c88454 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/472cc45f50a7baf721e4af27d30c8aabd64ebb35 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/477cf5979094e0512e27d8e94e8b2ba98a479813 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/478fdd04b01658ef5105b433362e8f52a7a3287b +/.gradle-user-home/caches/neoformruntime/assets/objects/47/47030d3d124dd545ab6f6e8da482ad4c2b96add3 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/47255d133c0535c1be709132c54fa21b807a77f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/47652e4aebab8702f231c0e7d3584c4f45e8f923 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/47993b4eb914a498b1b345a84c242cf171d1f8e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/47/478155b926977ca4dd52b235a36e2f89a77bb74c +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48a8f88be7cf031a9881c0d3e189bb6ab83f936c +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48acc0d591ef38aede99d77e9bbe82d939991139 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48b4d2735290187a7302048789a155a2939b5cf0 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48b33e04ea624e00bf12df82a74c138eddc1c671 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48b434d0ad59f5975a173d23ef60480eb08fa6fb +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48be42bf39686e758bf872b1ff6044dee06a8676 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48c42f377d9120924b658330e152bb872b9a8dad +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48d5f752564c3f6b9f04157f1faf134a831ee1c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48e25a17ab04266467a54528dfb09d9caf6ec0f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48f0eb9208f2b84cf9812d1c686d076049ef3bde +/.gradle-user-home/caches/neoformruntime/assets/objects/48/482d50b782bf0ec5c927188d3caa856c2f7000c2 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/484aa5a6c50f1ddc6cdf57c19a3750b006c92e8f +/.gradle-user-home/caches/neoformruntime/assets/objects/48/486d067733df05b20b11e3dfc7b1d1a25526b6f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/487c27a5cd45da871d968c1525143a0c6666b5d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/487efa6238a36d1745938c30e434d5d2972c4d29 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/4854a870e79971c77eaa1fc632da2a52550bac91 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/4878a57f39655fedb891c16425e55a3cd91a2d70 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48585e48180eb593a5eaada25365c3fe123ac938 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/48862fe96a1e8b5c97d0bb07ce6571c335f392be +/.gradle-user-home/caches/neoformruntime/assets/objects/48/487799e00e80d0706f1284df3fc8c7805bb325d4 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/480767336e40e2dabae0ab20164af027cc37a1a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/485339846fd58acb7ab863d914f42736db4583b1 +/.gradle-user-home/caches/neoformruntime/assets/objects/48/488394809bc2c1ffe51a0694d184e7fd0437495f +/.gradle-user-home/caches/neoformruntime/assets/objects/49/49a03d502e04d5a2e13d81a4323784ddf327218f +/.gradle-user-home/caches/neoformruntime/assets/objects/49/49a9370b68d63857223657ef91bc8c33fd9072f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/49b6b073bc60bca804c3ad0bc28dc547361ebd3e +/.gradle-user-home/caches/neoformruntime/assets/objects/49/49ca72487f0f5138b476c8a3a0a3f9b6897c00f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/49d29b0b9c9b39c7c99998f528e7e13923e11260 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/49fccf7d54780bae55dbda7351afcf884ba97c51 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/493cce04bae5c64ae11fb9f067c9ccb9b1ad3067 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/496a1bcb51a8a67b628d0d444fbac88994a4b231 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/497a9f21d2cd014ee8fd99134aeb1dfb479af257 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/498c72265649158b9203f6d3b8177018f7942a79 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/498e22ffc5a433104da6fdef98ede32474ae24b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/498fa8e1d3dbf88fb4db534232f3cef53ccd198f +/.gradle-user-home/caches/neoformruntime/assets/objects/49/4904ea79799cddee7169cef551c0d09450ac31bd +/.gradle-user-home/caches/neoformruntime/assets/objects/49/4945ba65b8429e8ecb7e37a1fbcce386931accb7 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/4966dc86d3d893854eff0aaf30ff0c6271511fb3 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/4984fe8a1524b5c203631317a1146c64f2d4ac24 +/.gradle-user-home/caches/neoformruntime/assets/objects/49/49013f794592d1c3694879a9e883e8612d7a8a0b +/.gradle-user-home/caches/neoformruntime/assets/objects/49/496400b98474a0dc6769033fc8fe3db922549e8d +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50b4d18ccb5189016b582b9de0328715b4e181b7 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50b6e19cb05e2a2d37fd34bfd03a888a60130914 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50b928af4d33822d8cc5ca0d0161053e491b6c5a +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50bee0811b311cd80602fbaa67ceb529c0333c2d +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50d9f8b451f4fc0ab524682a506a848fb41809b3 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50eca2e6d9a97e884fbfdcb0a30befb3e78f55d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50fff063cf07332d93f7461e62a4464492d47a15 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/503d385ab305f9f6471e03510ae4a9e0b2d6bb9a +/.gradle-user-home/caches/neoformruntime/assets/objects/50/506f2fdb1b7530df66134aa04c71e66513df0c93 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/507a087f3c73af46f5cdcd229f75f36c53ee043f +/.gradle-user-home/caches/neoformruntime/assets/objects/50/507f8145163897693125ca7886f954823f53a107 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/509d57f807af65bcd3cff606524202be0a00f674 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/5019e134a4e6cf66528a768006d8ff1be603b36e +/.gradle-user-home/caches/neoformruntime/assets/objects/50/5051ca4b109d465c1524b5625a364dc9c98c6046 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/5056c670acb0cd350de812cf8cc1f7e7926e5d41 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/5089cd829181b591a9cfe5590497b06d59f77550 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/5093ce54bca246c93bb159c83ec8e3d17424ef9b +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50225fbfb904caa6ddfd2816609e34e390f45f9e +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50705bafa6ea7a7762df77040f52425db3280574 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50991b159a03d7fc14205505fb133115a8664deb +/.gradle-user-home/caches/neoformruntime/assets/objects/50/5021730a7be8e2abed49649d545450ee44ac2112 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/5094896e7cad39b5e02171fcfb46e4fd1f39faa5 +/.gradle-user-home/caches/neoformruntime/assets/objects/50/50116675df44b6d60a200e3fb2070dc67fc11d7c +/.gradle-user-home/caches/neoformruntime/assets/objects/51/51d636fd0db72e5499cc590e879989bfe03eefc6 +/.gradle-user-home/caches/neoformruntime/assets/objects/51/51dbd9a8b167a552cbc9a376f1f8133b454b6458 +/.gradle-user-home/caches/neoformruntime/assets/objects/51/51deaef407de6444854e4da39b165faa0d41370d +/.gradle-user-home/caches/neoformruntime/assets/objects/51/51e0ac658961510dedc7d09a55d6a9fd9ab08497 +/.gradle-user-home/caches/neoformruntime/assets/objects/51/51eda81eaa45fd035a53d251183653eb38884de9 +/.gradle-user-home/caches/neoformruntime/assets/objects/51/510bcfc863b9d64fd063d038f97547bfe58e2f12 +/.gradle-user-home/caches/neoformruntime/assets/objects/51/511fce760d0a64353a839f456f4225783be344bc +/.gradle-user-home/caches/neoformruntime/assets/objects/51/517a67bab994f6605fe10596da833b6185695dfe +/.gradle-user-home/caches/neoformruntime/assets/objects/51/5108c24b6b55cb2eb5cccdf3f28f82359ea4d7df +/.gradle-user-home/caches/neoformruntime/assets/objects/51/5166cf84adbb14d42b79bcf710ff3bfb123976d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/51/51245a824bb389a71c48749288269c3a0d5ac320 +/.gradle-user-home/caches/neoformruntime/assets/objects/51/51430c287f1d1901384b513ba14eb86703e39761 +/.gradle-user-home/caches/neoformruntime/assets/objects/51/5117536be57b6df3e49b2a6ad9730b8096a65c2b +/.gradle-user-home/caches/neoformruntime/assets/objects/51/51985898d7ba21742a883dca7f9966386a6e8512 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/52a753b45e64efb80784e45776403d54f1dc312f +/.gradle-user-home/caches/neoformruntime/assets/objects/52/52aef6b85220e8f40b4f6b12600e876c5ae2b728 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/52b22be2f42003c269b4b5f9a101128330bc7647 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/52b667e0cd5778872f8523cb5ce486b04c6391ef +/.gradle-user-home/caches/neoformruntime/assets/objects/52/52c0af0dd09fc812e8c99fd7a98f595bec2868db +/.gradle-user-home/caches/neoformruntime/assets/objects/52/52c0482e727a9370374d59d8c6756d4cc828ac39 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/52d1dc49bbfbd67a6f1870793d1b90d2120a2a9a +/.gradle-user-home/caches/neoformruntime/assets/objects/52/523e7498b573764916aa0d0d5fa163a0ef3b4caf +/.gradle-user-home/caches/neoformruntime/assets/objects/52/523fa864bde9ad0153d95cba82c8d155b3294968 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/526ee5d18e4d93f3f097f848c293ea96f3da8501 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/527a0a831df27e62e4223cf50b50e446c3aba6ba +/.gradle-user-home/caches/neoformruntime/assets/objects/52/527c6ed68122e92f57dc51d33a5cd88f962b5ca0 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/529e4602466f3752d66bf34eb8e5b92f7d602ccc +/.gradle-user-home/caches/neoformruntime/assets/objects/52/5237fcc3ff0a03c7ae59f1d55cf926e501d0d59b +/.gradle-user-home/caches/neoformruntime/assets/objects/52/5244bc92929a6e50c79e1dbe1b51a602c3454d07 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/5271efaf10e123ce7d03a574ebb8a593c7e8c826 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/5280bbe1c5d5ddabd622b4458c3aa31c4616a3da +/.gradle-user-home/caches/neoformruntime/assets/objects/52/5283e15ca66c2a873e991c6d4ed07c231ac68c01 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/52049ed59e074474287b5dfee00477ce571b3385 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/52219b8a45a0371ebd3601efd5deac6df63a8175 +/.gradle-user-home/caches/neoformruntime/assets/objects/52/521749fe4b753428e2ddf3273a7639f95da8524f +/.gradle-user-home/caches/neoformruntime/assets/objects/52/526895e2cd6d5655326f39f8b045a2761c89094d +/.gradle-user-home/caches/neoformruntime/assets/objects/53/53c7ade7123abe57fe72a35b855ceba543674072 +/.gradle-user-home/caches/neoformruntime/assets/objects/53/53d78c3a4afe30b5ec5a54e969647572bf72e9d2 +/.gradle-user-home/caches/neoformruntime/assets/objects/53/53d47879418573cdaf3052aa891d34ffb4295156 +/.gradle-user-home/caches/neoformruntime/assets/objects/53/532fdae2fd43bc046f78a1b7b79f28161f25fc4c +/.gradle-user-home/caches/neoformruntime/assets/objects/53/536d231281501e65163f4ec45dac00d59d340469 +/.gradle-user-home/caches/neoformruntime/assets/objects/53/5340d653099dcccd01062c6ee453f28a7b5684bc +/.gradle-user-home/caches/neoformruntime/assets/objects/53/5350ba0ce6e2d5deeb53849704ce4702c0ee4a85 +/.gradle-user-home/caches/neoformruntime/assets/objects/53/5399b5f7424fd6d92c3d6b178dba3629b6c2db40 +/.gradle-user-home/caches/neoformruntime/assets/objects/53/53976ed366c97ad86c1d7ce21497c9985f33d4f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/53/539444ea45e17cf39db2363068952eee74c0623d +/.gradle-user-home/caches/neoformruntime/assets/objects/53/53063778ac8449c79e42198a1f3b63c68f6c9069 +/.gradle-user-home/caches/neoformruntime/assets/objects/53/539290770406876dd05593efada83ff5db358ed6 +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54a19edefba480d7985c8da05c35340d0db9cb0e +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54ab48277ef3c82cf46e0b044180aced6fa08c9c +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54b9403fc2362a9fc28b67e7f34f7c3efdfe0dce +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54bb5eeb26f5028b371212d2e708bef056b2ab6e +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54c95e9185616c2db606e8af71949fa56d6c6a9a +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54d3bab527bce99450bce5d976a64ff96361e2f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54db8870ec9669d326e84c19507071650c92d3e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54f37a73d613c9e2f9c303f7c3f2180cbf67912b +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54f3878bcc4a6091489dd3a206e3458af14e4f7f +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54ff654f2f156090ebbe0452e2f798c89fb825bb +/.gradle-user-home/caches/neoformruntime/assets/objects/54/540e5c7b281cbca39b98ef82c26302c4ada59f49 +/.gradle-user-home/caches/neoformruntime/assets/objects/54/544e1fb40e49b1655bb05268421e749761fd138e +/.gradle-user-home/caches/neoformruntime/assets/objects/54/544e752b66ddd7e82c22e9aed1a392cc578e1889 +/.gradle-user-home/caches/neoformruntime/assets/objects/54/544fbe5a0f9142f9ef84679fb7ebe9ee7eb58e38 +/.gradle-user-home/caches/neoformruntime/assets/objects/54/547abbf1fa7de9dee7f2d78c3a55c1d15a4614ab +/.gradle-user-home/caches/neoformruntime/assets/objects/54/548ff711051b19d4997e886b9ad7760c4196682f +/.gradle-user-home/caches/neoformruntime/assets/objects/54/5489c44a4fbedfb800d3d3ba978ae6e1b5eaee5e +/.gradle-user-home/caches/neoformruntime/assets/objects/54/5492b1d8b471f403f7e2af774f2bfdee4e678889 +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54151fe9a4bc01de2a3647d8e8f8babcb2c725d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/54/54782e8b9c26be8a05bbb7145cc496fa1374a31a +/.gradle-user-home/caches/neoformruntime/assets/objects/55/55b027d5fce68364f9e82d1b3ec43bd7e9a19e21 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/55c3b12c57345802fe55fa7010a03c6861de94cf +/.gradle-user-home/caches/neoformruntime/assets/objects/55/55ffa7726f8f2603fea7c0db2b27633a49b3fe20 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/550e94017979ac5c20c587edab0024192acbc278 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/555df6c41d133feea389a48ba76f00f37460b5f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/556cab29343e57f6443848c8582d2de3ad81f64f +/.gradle-user-home/caches/neoformruntime/assets/objects/55/559a02997de3175804810d3f29d567ae7d6b25dc +/.gradle-user-home/caches/neoformruntime/assets/objects/55/559ec3d80c9c797bf3c75f62b4e77911be82b091 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/5561ce870837ae106a6ff0b6186d04f726aeafc6 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/55353cde7e6449249f33513f10dc43e7f6f9fe56 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/55736bf72866347107f6f06b8cbf87993fd311d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/55898a87d714f778ca0b3f7abdc87fce75e56b7b +/.gradle-user-home/caches/neoformruntime/assets/objects/55/551080f43d0a4d6f2cda17a0b79bd29faa0446e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/552218e330c62eb7f84420dcae85a816b2163c04 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/556028a3bbc4dba60b0d05c85530ca588c9086e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/55/55789901e16de878aafe1590b7690d66e1572885 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/56a5b8e793ce6ebcc4094a835aebb0588d6e98a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/56a035acfe54e2035bb7b4dba68b411f65e74330 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/56b0c91d5c0dbf2d9ada5cbb5404130e7e505bf9 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/56b6675c85557f631665c8edf46e0a34c77ed1a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/56c168f9b424f34e83ed74ad7dd76beac654636e +/.gradle-user-home/caches/neoformruntime/assets/objects/56/56c678526d9d6d4a6383f0fb8efe701cf83949d2 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/56f0a473389b4051c181ed4b7e59097a44b6059e +/.gradle-user-home/caches/neoformruntime/assets/objects/56/561ec373e0556b34e1cebc647a44df39339a6b7d +/.gradle-user-home/caches/neoformruntime/assets/objects/56/562edd38fc4c453f2af5c51d8d90e28b12b9981f +/.gradle-user-home/caches/neoformruntime/assets/objects/56/563f15f03500de05007a1283b906234b9e74b934 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/568d1b99a5a8133c6b0686791b4d5fa55d7d64f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/5617b344111456e4dbdc079b8bf3c4dfc34d9924 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/5622e8ee31f0f1d4a0ec46daef7565f851aea7fe +/.gradle-user-home/caches/neoformruntime/assets/objects/56/5661b57b68464a0cd49e34349b2fffc4ae158182 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/5666e34551a4d11e53c40777bc7df22bbeffd725 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/5687c0f1c2766c3cb7d0aecfd2ddc34db2b9551b +/.gradle-user-home/caches/neoformruntime/assets/objects/56/56334e56a9ad22e1b8488343cd7b71dc7e77da41 +/.gradle-user-home/caches/neoformruntime/assets/objects/56/56944ee7c95b870515401e6d7d9505fe0653fd9e +/.gradle-user-home/caches/neoformruntime/assets/objects/56/567755439fc5118a0ede2e191a552ca0c1db8d25 +/.gradle-user-home/caches/neoformruntime/assets/objects/57/57bc0d3c05470580efb254ec51262eae17ff0c4c +/.gradle-user-home/caches/neoformruntime/assets/objects/57/57d0019254b31759f3e4ba10fafff112082c6846 +/.gradle-user-home/caches/neoformruntime/assets/objects/57/57eeddaae9d56b728be998abe56c43222620518c +/.gradle-user-home/caches/neoformruntime/assets/objects/57/57f50076e7b91b12595a17cf0d38303f979f862b +/.gradle-user-home/caches/neoformruntime/assets/objects/57/579f8760daaa880e702a559fa24df84e28abda7a +/.gradle-user-home/caches/neoformruntime/assets/objects/57/5739d04564662a44fed5f274e6c1e780c42193d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/57/5798b9c17b5b00a7acfded2c24d42f6a700f24de +/.gradle-user-home/caches/neoformruntime/assets/objects/57/57291a737b71d702a8bed3fdb1df8263cb2d123a +/.gradle-user-home/caches/neoformruntime/assets/objects/57/5722548545b3405acfe280a74e88471517bc7bb1 +/.gradle-user-home/caches/neoformruntime/assets/objects/57/57983674378a3d1bf827833e362a69839acd609e +/.gradle-user-home/caches/neoformruntime/assets/objects/58/58a7fc3f3c3396357f3a1386b8f25c428d6e7655 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/58a16a9ad86e31d7681d35749c926c410da90e71 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/58b2a39f25d1198fbd7057768eb9c4a9f4c24210 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/58d49f1ee9aee1fb8c455bff3372a5685c0de8fa +/.gradle-user-home/caches/neoformruntime/assets/objects/58/58dd568a1d69b7365c33a06d5b54d1b70de0134e +/.gradle-user-home/caches/neoformruntime/assets/objects/58/58f904c0c7b0502b6cde480c356cf1970dea09c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/58fac9456ae52633eed3b525465ba22ef5f3a35b +/.gradle-user-home/caches/neoformruntime/assets/objects/58/580e9bb670b8a684f32ae25ef2e9e3c4281e36a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/581b3e143cfedd5eeb1625cb3e72f912e740aa6a +/.gradle-user-home/caches/neoformruntime/assets/objects/58/584ac8cfca1f68b5e1eb6d0c3554dd52f31bbec5 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/589ae7da46a948514a677a3c7c4d23e1750b3ab6 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/589fff28d3590774738d0da812a631d265724318 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/5805befbac0824eb2ca27821bf7a47cf2b9ce1c2 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/5808ff93c6c65ba2350d2237756ac9a9d4ce00fe +/.gradle-user-home/caches/neoformruntime/assets/objects/58/5858cda3d09fb66e7f7426792e86b002804ff7c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/5863a08b676a22d88a0c8af9955c2e48d2deb2ad +/.gradle-user-home/caches/neoformruntime/assets/objects/58/5882c16270a945ccc8ada293bcf59996038201c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/58200e27c0f44396f38d944186b7ebb9b06165b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/58766a0b926a32c728533ca4ba0d44c3a6221f4d +/.gradle-user-home/caches/neoformruntime/assets/objects/58/58930c612add179d3954cdeabdf6894d11eec1c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/58/5817670503e44b7c8ae5d6b314baa349f0f53c7c +/.gradle-user-home/caches/neoformruntime/assets/objects/58/5897178066f58be63ccd8b9df42dff2760b73a95 +/.gradle-user-home/caches/neoformruntime/assets/objects/59/59b77eaabf6ba4415b71f760638917e891d22336 +/.gradle-user-home/caches/neoformruntime/assets/objects/59/59cc1d9f09157d334c52db5b79da04f8d56c11bf +/.gradle-user-home/caches/neoformruntime/assets/objects/59/59ce2fddc9e777d47471c5614aa5d7d219a43ad1 +/.gradle-user-home/caches/neoformruntime/assets/objects/59/59d8157fa79a96eb6557e4ff440aa7482edbbd52 +/.gradle-user-home/caches/neoformruntime/assets/objects/59/59d9086078d62a1c254f376efdc9563e99f6f9ec +/.gradle-user-home/caches/neoformruntime/assets/objects/59/59eabf53f8507029a7a0179262ec80409f7584cd +/.gradle-user-home/caches/neoformruntime/assets/objects/59/59faa3795ef668a7a28a0b50c62ae2c0f663f381 +/.gradle-user-home/caches/neoformruntime/assets/objects/59/5935a6c4874744a39f96527e5eca40ac94fb0b74 +/.gradle-user-home/caches/neoformruntime/assets/objects/59/590470ab0f17afb73a4e41d9cb56fdbe069d275a +/.gradle-user-home/caches/neoformruntime/assets/objects/59/595574dfa22c18712dbddd9f609d2bee2a1b9032 +/.gradle-user-home/caches/neoformruntime/assets/objects/59/596126e15164eaea979b63642ac7f47a36ee8894 +/.gradle-user-home/caches/neoformruntime/assets/objects/59/596514f2cc18e8439a6691fa173e6bb628f443d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/59/596963dce1f0cbd5446410e26a814b8421acbb4d +/.gradle-user-home/caches/neoformruntime/assets/objects/59/5967891c47da72fa108d92268619cc9d7655c823 +/.gradle-user-home/caches/neoformruntime/assets/objects/59/59268870f300ebbe170f4ec17a6811e7d6880f62 +/.gradle-user-home/caches/neoformruntime/assets/objects/60/60aa21f8848710db1609a5aa433efae63d8f0857 +/.gradle-user-home/caches/neoformruntime/assets/objects/60/60c88b2d0a2c82635f1d2469323bb8affd4339b3 +/.gradle-user-home/caches/neoformruntime/assets/objects/60/60d1fda7012944ed16e25fc1926d4595ab2d3555 +/.gradle-user-home/caches/neoformruntime/assets/objects/60/60f3cb6da0dedefb50015b883c98e32357134231 +/.gradle-user-home/caches/neoformruntime/assets/objects/60/602d6a80a55319cf9928c63e10720c0764524d14 +/.gradle-user-home/caches/neoformruntime/assets/objects/60/603e4795260af35c8d4648232f595bc4f9d6c56e +/.gradle-user-home/caches/neoformruntime/assets/objects/60/603fd41ebe3eac0795ebfa0b31195be1866d1e9c +/.gradle-user-home/caches/neoformruntime/assets/objects/60/605d64b2d1dbc275dbd95d4c27e46ab5cf33052f +/.gradle-user-home/caches/neoformruntime/assets/objects/60/606b41548f5e5dfe113f148e2ebd0871a74558e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/60/6002fb75c913b2f40661d7ff7c35823f744d1ba7 +/.gradle-user-home/caches/neoformruntime/assets/objects/60/6036cf54dc5e3a69fbed75eee1701dcfb460f4cb +/.gradle-user-home/caches/neoformruntime/assets/objects/60/6095be3382a6b9897a7d0caf93131436e5cea4d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/60/605719f2e01fe91850a84c83f70b31853aa3e99b +/.gradle-user-home/caches/neoformruntime/assets/objects/60/605869b47596e4fe6347ae68455a37dbd74ea22f +/.gradle-user-home/caches/neoformruntime/assets/objects/60/608792c62e053a9ddf9fc3bd493a6da1437ad36a +/.gradle-user-home/caches/neoformruntime/assets/objects/60/6078298fdc7a6e3f344b6e7278652ad2d6a612c8 +/.gradle-user-home/caches/neoformruntime/assets/objects/60/60671488f7efff3ce37ddd7b0027198829935a15 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/61d172e0025b72c0bc70e234f3aa82718303ec73 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/61dbffae9d50f65ff842dc0f90debd9e31683ccf +/.gradle-user-home/caches/neoformruntime/assets/objects/61/61ed0c5cec3e936637a0e8db4e36b2e0f5b6a1cf +/.gradle-user-home/caches/neoformruntime/assets/objects/61/610ec4abc16e8cab1b2133bfbb3d9926d3c629e1 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/612a31517eb566ba2e48dd74cbdcd2120620a55c +/.gradle-user-home/caches/neoformruntime/assets/objects/61/612f3d2f815f646d336d90ec223e8561a0f658d5 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/614d534c219fe77929fe81d642dc783f3ed7e6c1 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/6128eb6363243e499304b25b0b1ebd2d3f56bdb1 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/6185ff58cc432fd2cba9018645a2a8d01890ea8b +/.gradle-user-home/caches/neoformruntime/assets/objects/61/6186fc57dc018b215f1621240e32d72ce529ee0c +/.gradle-user-home/caches/neoformruntime/assets/objects/61/6189d20ac2b2f05ef3e7e5485942be88d69307e4 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/6199bae4a02add8c159b685acbd8f752bb776857 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/61262ee70465e468013fc106e148a95a4afd83d5 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/6101718c2ef435b328f8bb7ac8642320b9861308 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/6194784cddbd9eeba04602d62e9f8b48f209ada4 +/.gradle-user-home/caches/neoformruntime/assets/objects/61/612124534b759f5db4832c9f96d371347579f595 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/62b284afd1c5805c6300c41e80c3f27e1994b2e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/62ce4ae83e9872a3c3febff4a98fc226282fb112 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/62d0ae42e010821e3a4fe82652e9a7c7597013bb +/.gradle-user-home/caches/neoformruntime/assets/objects/62/62ef4f7c2da1d0ebf50c9462c9bfe7b27e865b0f +/.gradle-user-home/caches/neoformruntime/assets/objects/62/62ffa5f85aeefcee4a9aa98290beb14bdd84e68d +/.gradle-user-home/caches/neoformruntime/assets/objects/62/621c8e363ed571a9ece044cb05a6970414bc9d7b +/.gradle-user-home/caches/neoformruntime/assets/objects/62/622fb127130bc09030d8662c16b5e2743defa03b +/.gradle-user-home/caches/neoformruntime/assets/objects/62/623ade16fac50f1ca883b38f67b41b02cf0c3e12 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/625f3f1551b47f3f331ede66c2453c57584734bf +/.gradle-user-home/caches/neoformruntime/assets/objects/62/627e6ea6b076dbf8e467b9b921dc019042434d96 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/629db7d90d2a8555adafa8fc057303eb92f7081b +/.gradle-user-home/caches/neoformruntime/assets/objects/62/6201e940fa4ab042208122df1747a1d56a66a193 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/6277de504c0994f6a6b8deee42c03188fd8facc9 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/62002bf051a3cbc6b8ceeafc2659cda70f533e3d +/.gradle-user-home/caches/neoformruntime/assets/objects/62/62579dcf7b4bee2dfed7b64b94191bc2fee59cf3 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/62681ba4773e4825769bc16169847b7b160822bb +/.gradle-user-home/caches/neoformruntime/assets/objects/62/622440e109b6fd67dcbb33a8210a9ab4f494d8b3 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/6210466ea3b85499767bd003a7c0a091d46d6cf0 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/6277161e9b812fb8d9ae8cc0090dcf66595a0a9b +/.gradle-user-home/caches/neoformruntime/assets/objects/62/628607524d7e165cebb597dca371dd117ccafcc7 +/.gradle-user-home/caches/neoformruntime/assets/objects/62/6291956028159a53f625eb0c8171f9370658f156 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/63aaab4b1c60dcb6f97c8b78db7791e3ab5353ee +/.gradle-user-home/caches/neoformruntime/assets/objects/63/63b00435a6086c270b8c47567f2f489d122ce5a3 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/63c3efe76ca17085f67edb073a762c5891dfe2d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/63c6b08da734e070962e6cd23d55e936d9d5676f +/.gradle-user-home/caches/neoformruntime/assets/objects/63/63d38dff7a8f122fd7b329b2a8d346cd9974d764 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/63eddc1acc4729bb60076fae24e702689ef91e97 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/631b1e3d64b315c432792ae015ba06083f34ef42 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/631ea6f1e64ca68e9bb49862aaab1f71ed879227 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/633a8506034ee419376a895f538b88928140b4f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/636f77f372f8b27da2b5804cee61c7091e2925de +/.gradle-user-home/caches/neoformruntime/assets/objects/63/637f51dad0819a54a95b0bf80931b54ec6acdcbb +/.gradle-user-home/caches/neoformruntime/assets/objects/63/638cfa93effc79da0da5b5335a0aa39190ff6b47 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/639d3ecadc8ec244aa94fccfdfdd225522e3ec73 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/6376cabb22a0e3042b25cb7443a5a75bffe6e4a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/63/631491c0d7f13f0fd8a435962105d161c281dc7a +/.gradle-user-home/caches/neoformruntime/assets/objects/63/639157a1c66558da9f66045150f66885c2adabbe +/.gradle-user-home/caches/neoformruntime/assets/objects/63/639814aadec7da5d05e0af3a9dfb3e56a2751eeb +/.gradle-user-home/caches/neoformruntime/assets/objects/63/63383499c144feb574238023ec70d64685608b7c +/.gradle-user-home/caches/neoformruntime/assets/objects/63/63907313270d5d87a92111082e1a85f394153ace +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64a64e066d510dfa1cfcb15ab4337f3679b4bb20 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64b957ed6cb8e25f645cf3edd16df2dd83c04cb6 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64bfe63e0e769c4048fc87a4e30e58836ef14cf1 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64c5ef9ce717fe8c9b2ceb6fd2e0632bcce5d51b +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64d2b763bb3bcfcaee67ba1b9351b0a83c209ae7 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64d6e05a6af272acc17689841b135cbf75b30dcb +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64daa28cc72b76a3516f8291fa929e5c2702f4dc +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64dac1b222bb4a269089949c4e4f03e57de5e618 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64eb3ab6d041365b0ee6032cdb29d6632b181c26 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64f16af0de928612e92607b053021b7e62cc5240 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/640c1c6b998a8a121b66f9e018a1a008ec8d778d +/.gradle-user-home/caches/neoformruntime/assets/objects/64/641cf35f089efec7494d67c3116fe4ddb5ae37c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/642f4aec0fc60f20be24669dbca6e70bb69f26bb +/.gradle-user-home/caches/neoformruntime/assets/objects/64/644f4be2e5dd8a22954b66048104d6e3a2bd5628 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/645a5cbd35f4cc5a8ea7ae884783153ca8776cbb +/.gradle-user-home/caches/neoformruntime/assets/objects/64/648c1d7f3790bdb5c95252149f0405896b9e3144 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/649a538d2e4611c23727381bc5c0d60582c36d04 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/6413e0ae6dc38daa62208fea68f5a49403e99d95 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/6447cd0ddcf09414a99551c3a53b69df5974455d +/.gradle-user-home/caches/neoformruntime/assets/objects/64/6483cce6aec3f4627e46c8a251072e40f069e75d +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64208a0172464baa69681aa79a7a058e06a1c700 +/.gradle-user-home/caches/neoformruntime/assets/objects/64/6495136aab23f9c5b6821965c936faf9b50e4a1b +/.gradle-user-home/caches/neoformruntime/assets/objects/64/64725912f2fa1fdd70cbf774fb0d2763483074e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/65/65b4a77743f968784bd624b7715b0a1c39a56797 +/.gradle-user-home/caches/neoformruntime/assets/objects/65/65b762da90c8b192ee065692fcd50068f571b3fc +/.gradle-user-home/caches/neoformruntime/assets/objects/65/65bf3f80ca720c55b99925ba3a515d2f932b15b1 +/.gradle-user-home/caches/neoformruntime/assets/objects/65/65d56e92a4dc664b3462c9756131bf2174725fdd +/.gradle-user-home/caches/neoformruntime/assets/objects/65/65ea0ea13b8e720959aaab989f8fd0409d5659b0 +/.gradle-user-home/caches/neoformruntime/assets/objects/65/65ebca3306ccd6d7f9d5de8f1cc7a1216d80246d +/.gradle-user-home/caches/neoformruntime/assets/objects/65/651b016a545d9abcd5593e80c95b9a757a02041d +/.gradle-user-home/caches/neoformruntime/assets/objects/65/655d339faca5f54ecbc0b279cf7c90721efed4bd +/.gradle-user-home/caches/neoformruntime/assets/objects/65/656fdfef5989c5634d62c25aff1e81916eb4f7f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/65/657d76d798d33b71bad04bb220b7b88c339327bf +/.gradle-user-home/caches/neoformruntime/assets/objects/65/657d93d7a22eb25458ab2534f93ffdc05b444a90 +/.gradle-user-home/caches/neoformruntime/assets/objects/65/659d7a3c3171b1f0ef99bf075d5897c54c42a733 +/.gradle-user-home/caches/neoformruntime/assets/objects/65/6571f0d5bc3f62a19308fd040ba0da11a0fa59c1 +/.gradle-user-home/caches/neoformruntime/assets/objects/65/6582e589d649de71649f01db4f24eb8d90ea0a74 +/.gradle-user-home/caches/neoformruntime/assets/objects/65/650523a255e0d62b2900f0b69556a176e329680e +/.gradle-user-home/caches/neoformruntime/assets/objects/65/650766ab090fba82c32a43b5700923021cd5ceaa +/.gradle-user-home/caches/neoformruntime/assets/objects/65/65919863c0a6fbb0ae175f1b2d9061532b1fd725 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/66a1ef29c6f8d833bbaaf6401b380cdc22ca4a01 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/66a5aafc49d7b76c582a2afa1c2135fb83f3d31b +/.gradle-user-home/caches/neoformruntime/assets/objects/66/66a182bf80478faa761b4d78d396e6e8fed47337 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/66a961b791a166340350a5f4d6029d6d0cae214b +/.gradle-user-home/caches/neoformruntime/assets/objects/66/66ad1d35e8e3d5f063346dbb2ee00f51aff6625b +/.gradle-user-home/caches/neoformruntime/assets/objects/66/66b0772a248492e0c9db6e98c24c80d154c44cc0 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/66bb8badf84d28a31f4d7584bd1cde71addb20b2 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/66d7c20045b77b5da035f981e6b5ff1f7961c6c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/663cd15b439f9aeb7a0959866e2aa879bd8d563a +/.gradle-user-home/caches/neoformruntime/assets/objects/66/664e84b3b330899f275a2bcfd71c46ba935ff25f +/.gradle-user-home/caches/neoformruntime/assets/objects/66/666c560b860bfac36cbac7b015a24ccad0500db6 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/6637a4756c12719f1dd59c2c2262fbb7f47875c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/6669a59d95aa4f21d7d5a8068b42513694508c75 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/6686e4d2685e52fdfbd0a6dd1e9b9952372c96a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/66267eada65930c654b94de8876c15f630b097e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/66/66994251f371dad569790e05e8f7b6472c2b7334 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67abd16cada0ff493b373ba04aedbc11411cd890 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67acf728cd0279728fc1704c58ab1a2f6e1cdb67 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67b0c058804c0a98da2d5f1aab12c8b3b5af0a53 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67b10fedd43e774e36284992fc690d582d147018 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67c5f03ae10eb02077b848a29e88f6b6becacf8b +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67e2b7f1f5e48da3dc7aae2cc7e6a48cffd1c7a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67e25166bfe3e0ce3ef45ce2680b2413f80ccc5a +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67ed08f926da4c66424152f639f5da65caac3ce4 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67fba17716dbffbea9ec9f6f127a272433637fa2 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67ff272003f1f1bb9a648dee1e93b8fd8c98225b +/.gradle-user-home/caches/neoformruntime/assets/objects/67/670e5884cdb3f5ef4ff33f175c278994d097993d +/.gradle-user-home/caches/neoformruntime/assets/objects/67/671b2fd5ff27883e9f4122b85a935774aadf0563 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/672de5ad67eabcc62f2a71cb19d3bceb60e5fc4a +/.gradle-user-home/caches/neoformruntime/assets/objects/67/674af8ae97eb617cd3fece7c22db24d37c2333ae +/.gradle-user-home/caches/neoformruntime/assets/objects/67/677f59ed8b7946e34cd99ce7192bd11c1afdc27a +/.gradle-user-home/caches/neoformruntime/assets/objects/67/678a8fc38db841b7c5c66cd8486f30031e3a7c8b +/.gradle-user-home/caches/neoformruntime/assets/objects/67/678b39601c8f02b92e3aa124df64bbdcef96a1a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/6710c4738b11fb869bb122e5525f2d79b39f0db5 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/6736c2afa4cda671722e7d24cd5b66fc4006b054 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/6741e6a76f59d61730042f7b9a5aabbcc440a77e +/.gradle-user-home/caches/neoformruntime/assets/objects/67/6762f9d4601780c97734e713bd54568c9ba3c687 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/6768d68960b07aa2183f0b29f3c01344c373e449 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/6779f5e3fc00b201a145f903bb94c2b5eb0724ab +/.gradle-user-home/caches/neoformruntime/assets/objects/67/67863b6f569dc03626d407a811057825c2d45de9 +/.gradle-user-home/caches/neoformruntime/assets/objects/67/676381e79bb6c4dbea4c4d9d1f8b20edc85e08c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68a3447a6924f6cf0d1f970024bd0cb664972ac7 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68a399326c45452ca61a2d6587a18ad9d5ebe5a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68ada49c61d305b3fff50762cc87b964fadbb2e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68b63b77ca9c7171609a39e2c292cf50fd663fb4 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68b7367447e9c34554e695914fc0805f23d35a55 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68bae150ce7321de9150b6f0b60711e25251e844 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68c941413914e16a8564b5fb58c97540a5db771f +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68e60273efbd711121dd926c5811b4c20da743b3 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68e910067dea1e50474763a4852f3c9990992737 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68e1263235a0f4a7ecd12d5e291ce29b5971b420 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68f712dbc12f3708a156f9bc56904cce1d02257f +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68f86009552982c9744c4b849359d8b520775d6a +/.gradle-user-home/caches/neoformruntime/assets/objects/68/682aa9e38a3819ef272d82fbee6134d21e3ed9e1 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/6831f2025b403ae7b7db7d535872f74e900167d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/6853ff1b496995fd4acf8b0bb60bb28b4f9dabac +/.gradle-user-home/caches/neoformruntime/assets/objects/68/6855f8a8905b601cf5a15094a8ebeab066345cc2 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/6881f868cad20e47a6b9c04b9b32950fc9c30160 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/6882f98957c6ca466de5ca61a7bf8ab087d0be1e +/.gradle-user-home/caches/neoformruntime/assets/objects/68/68828b76f86100a43daf79f9d8e893457ba91000 +/.gradle-user-home/caches/neoformruntime/assets/objects/68/688363e00caa323a19d41b7d4dbb4b7d60414eae +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69a2e5712c9c4c3a8baa1092f4fb3664c0e1a4c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69a4a003e93004641e0ab5c2a743265d9c0ca77d +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69a546fd8202436096224a45b044b33e321c3bd5 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69a7917eb4b72be7eb7adc058a317c0397fb75be +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69c5e373712ef6b1fa8a74188ad2998697fea5e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69c92fb62d8a7711f2c81db1fafb46b36d126f99 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69d4af7d21df68c5398d7728ed67b7b1198fc2d5 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69d349ed030f125c34766b96ba66beb812d1f5ef +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69dc81055187d0e31f8ee24cc35d37d4297d9a7e +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69de3c72732d43860edaf6cf4ee6366f81c402c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69de25025c1e217844abc2adf3b547cbf8176814 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69f85728e3bce4307774433a4da29400ec37a9f3 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69fc1d36f954348b4d3e9c475cb39c2e67b03e6b +/.gradle-user-home/caches/neoformruntime/assets/objects/69/695c375dffb26360fefb8975dfa98972b0ddd4e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/698f16bcea825ec873cb38be0ba191b177654e62 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/6976b32e73a61a4bcaa761e51e4c4723674cf995 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/6990c94903aed55e5fffae14bb1e6187bce75dbd +/.gradle-user-home/caches/neoformruntime/assets/objects/69/69796b6a75b37d44654dc128f4bd8cd1e8f57621 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/6939981d810d79fdda5542d312ef152d94af35e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/6918498830e94c2a54abd8a0168c5d81bb98e9a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/69/6993351945532093490fe7d1e62ada30c290c52e +/.gradle-user-home/caches/neoformruntime/assets/objects/70/70a886ff5dc8f49c87d42ccd766c5d17b3df1013 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/70b0d0dabb74efcd05476a832d9a1af6b6f87d46 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/70bc7babfa17f43c0215ca89244e3d103603dcd9 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/70c0cf4b40effff39602153f909828a63667e74d +/.gradle-user-home/caches/neoformruntime/assets/objects/70/70c7e704472d19e92b606eac1d71250c3e69dd40 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/70fdc50a914cb6c3d90c6c3bae33955192303807 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/701c9f5d1a05b7f1db7b78ca2149dc5d236cca8b +/.gradle-user-home/caches/neoformruntime/assets/objects/70/701f3e0a598b56cb35c691db5f0b17c2dc3d0368 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/705e04dba52523e7d58f5a90a837ddcd4b8c116a +/.gradle-user-home/caches/neoformruntime/assets/objects/70/707e3ce4bafbb7cc300e238fab40f3c0d1720187 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/708a8039622bda40de1997f4d0410e6729d964d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/7001f57b712a6d03bbd924e8a8f4b36aedeeef56 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/7009ad9e386de37fdf4c7fa56f0a0a1ba138e736 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/7089d660db3e43a6061cff7f4a77b0b770ef4632 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/70479e8618d9f47528b26a32b65285e65a68dfc2 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/70675b5c54517a6276ab311ee9302d0c331fa73b +/.gradle-user-home/caches/neoformruntime/assets/objects/70/70806f4600f9912430cf85b69d36f5a6e71ecbea +/.gradle-user-home/caches/neoformruntime/assets/objects/70/701173e8135b69f0731feafd06997b2949d32bf2 +/.gradle-user-home/caches/neoformruntime/assets/objects/70/707692f15758fa8c84235d2007e0c00259df2ff2 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/71a03ccde88a5c440ce60afef906f19c4dfbc2ee +/.gradle-user-home/caches/neoformruntime/assets/objects/71/71aba3de2e7e5870bd63374a9b9fc4968b7df334 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/71cb911b1991fb44d04c23358b3aca48d9b690f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/71d7fdda5f0ff979adb0f6c7895d8b6be16ad624 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/71d9ad77da5febc1b2b7bd5916ca730c2b9ab6a8 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/71d54c16492583678134b4d6e2c7f960f72df97a +/.gradle-user-home/caches/neoformruntime/assets/objects/71/71de59f2a2e80284b82b321d2ab715bda93ba2ff +/.gradle-user-home/caches/neoformruntime/assets/objects/71/71f6777df8dcf6bb5f079f1701b1dd36dd952153 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/711ded3c88295be8e4fa5fe657ee9e459aacd033 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/712c72f5d70a5d8ca7d8459083e375977ba8f8d4 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/712e0aaea2e31ba6872912dddc28640ad3a4207e +/.gradle-user-home/caches/neoformruntime/assets/objects/71/715e5a4bf5be5c8c4a7287f9add531b0672989cc +/.gradle-user-home/caches/neoformruntime/assets/objects/71/7100d5be52e1e9c582b46ffb739bc970dca0763b +/.gradle-user-home/caches/neoformruntime/assets/objects/71/7114c65027e2ef0d8f42a406fa226e513a76ab72 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/7157aafc9c8a1735b9dbaeaf588e6bf39a16e61c +/.gradle-user-home/caches/neoformruntime/assets/objects/71/71050bbf68c95591ef5b96f74b6ae5b9e91f45a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/71103b592ecb37e3b27ca3bd585fb06bfecc893f +/.gradle-user-home/caches/neoformruntime/assets/objects/71/718445399fdbe1b89eaa779c3875dece106732e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/71/7199244590b99249a176970e29719e6e8013717a +/.gradle-user-home/caches/neoformruntime/assets/objects/71/7125632649039c3f105639964961df8c15c8fb0c +/.gradle-user-home/caches/neoformruntime/assets/objects/72/72a578bf5d3cde7c972c3a9a3bd9f56f65bfd5e1 +/.gradle-user-home/caches/neoformruntime/assets/objects/72/72b41d4c91dfb780106fa98639e180c86b744886 +/.gradle-user-home/caches/neoformruntime/assets/objects/72/72c4fd7a2a9d27b3191c512980d8bea39d3ce68c +/.gradle-user-home/caches/neoformruntime/assets/objects/72/72e10acda2694414dc794bce3485c4afa574dd0d +/.gradle-user-home/caches/neoformruntime/assets/objects/72/72e89b6a9ca8f72c1f5f67c09c8d3dbc6d6f2ae2 +/.gradle-user-home/caches/neoformruntime/assets/objects/72/72f1a30cc0f5811a121ef666fc0c221a2048f6fc +/.gradle-user-home/caches/neoformruntime/assets/objects/72/722c2e319fb2094de9232b9a92396417bdef5b9d +/.gradle-user-home/caches/neoformruntime/assets/objects/72/722f551cfab940a7cd04dc19fe7ea9faf9a7a2a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/72/723ab8918e4a49c9434924c23a46d8403117c9c2 +/.gradle-user-home/caches/neoformruntime/assets/objects/72/723b7981e98bd1907e7d3fce30da15caeff9bb4b +/.gradle-user-home/caches/neoformruntime/assets/objects/72/725e07dc7c9549a7e168e8be14d44d76ad67a6cb +/.gradle-user-home/caches/neoformruntime/assets/objects/72/726f5257fc8b3b49da1ade18a4a6395cdc7128b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/72/7206e030a8bb50f75a88306a361e829cf8e065d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/72/7269af1c1d8773763c1af8bfa4bd38e13b3e1f98 +/.gradle-user-home/caches/neoformruntime/assets/objects/72/72031a3276c8e87243e6aec406eab8dc75e016ed +/.gradle-user-home/caches/neoformruntime/assets/objects/72/72280ef8562002f2cbe79cecf91f8391b92d80c3 +/.gradle-user-home/caches/neoformruntime/assets/objects/72/7215144981a575cebaf1def177005af78969d644 +/.gradle-user-home/caches/neoformruntime/assets/objects/73/73bb5c480c4fa3b911c0efa249d6acd4bab86257 +/.gradle-user-home/caches/neoformruntime/assets/objects/73/73d7d9e0c010e376b0abaf4a0a64cfa073d6a24c +/.gradle-user-home/caches/neoformruntime/assets/objects/73/73d8711890a1225f767f556bd4963d4348659b7b +/.gradle-user-home/caches/neoformruntime/assets/objects/73/73e4df44ac7d84734bbb96ca0f476c6ef2cca9a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/73/73f6be05dc07c36b8be5c029f73fdd2eca3af293 +/.gradle-user-home/caches/neoformruntime/assets/objects/73/738d3164073aac2f5ad0247287b551b2659041ab +/.gradle-user-home/caches/neoformruntime/assets/objects/73/738feec331550415131bc9323e4b61e2eed299cf +/.gradle-user-home/caches/neoformruntime/assets/objects/73/7356e0a396a34eaa3e882923d3968f4b2e5e4651 +/.gradle-user-home/caches/neoformruntime/assets/objects/73/7372ffbb929b7f189c5e99b41730bab2c45e40a8 +/.gradle-user-home/caches/neoformruntime/assets/objects/73/7396c2c7c63bb6b1e46ba4a80c61d98a76d17768 +/.gradle-user-home/caches/neoformruntime/assets/objects/73/73276c997c63d4595d7dc2f6623f35aa5d2e485f +/.gradle-user-home/caches/neoformruntime/assets/objects/73/73799c114c80ae724e594dc4b636dc0100d134a0 +/.gradle-user-home/caches/neoformruntime/assets/objects/73/73969292d8da9b3fbedcb27e3d0f4eea4ba64227 +/.gradle-user-home/caches/neoformruntime/assets/objects/74/74a120f19cc005c528a5561801369d528c26c13d +/.gradle-user-home/caches/neoformruntime/assets/objects/74/74aa261b9608ce78752af699b208164d2ee4eb1f +/.gradle-user-home/caches/neoformruntime/assets/objects/74/74c6fb1977c23362bc25f4ba8828fd2ed1d57591 +/.gradle-user-home/caches/neoformruntime/assets/objects/74/74c8d4ddfb43716d39f20d4e9db5f59997343a5a +/.gradle-user-home/caches/neoformruntime/assets/objects/74/74e8bb9c8c47da4916b971027dd78a2efe51430e +/.gradle-user-home/caches/neoformruntime/assets/objects/74/74e99006d462c1d27f1628e35d72d44865347ed9 +/.gradle-user-home/caches/neoformruntime/assets/objects/74/74fb4a747125ac026ade020b5ee2cebd77d13881 +/.gradle-user-home/caches/neoformruntime/assets/objects/74/742a002ecc284e8a474c4a36e71e3e89d04cdb8c +/.gradle-user-home/caches/neoformruntime/assets/objects/74/744ecadcffa4408ae5b5db8be7ad69439f106734 +/.gradle-user-home/caches/neoformruntime/assets/objects/74/747f1ca0bd80a13266d5f00c1036c743770f3094 +/.gradle-user-home/caches/neoformruntime/assets/objects/74/7455df5161e6d1c36a06cfd15a7724bf6a8efadd +/.gradle-user-home/caches/neoformruntime/assets/objects/74/74856b910cbcb52f815f3c042ae5ac79979bb1ae +/.gradle-user-home/caches/neoformruntime/assets/objects/74/74881aa5bd8452cc167d86ee09382fc5919d0207 +/.gradle-user-home/caches/neoformruntime/assets/objects/74/741249a89e97577f7a5acf30ece523fde0042650 +/.gradle-user-home/caches/neoformruntime/assets/objects/74/741882ca045142bfa076569c87bca37e0ed5a008 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75a6cf26c59fcbd34fcd4036b01ae4bb4b31d399 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75aad92df36ba44928e934674069694ad03f42f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75b7aaf6286f73ccf05d0fee7010e5a1967d0174 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75b54f54e6bba7b1e908555fd99b27700c859508 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75b6933acfef6d24e2205b01f34d8907c5fb9dad +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75c3df1293a7a559a780b47d2f9e630e7b0a46ff +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75c3e1b56723461d889b37c0af0c40898806a9db +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75cc2290efa602b53fa7dd1698d792e7c8bc0517 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75ce7dd8513af76b486cd7421fc7036bebb56308 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75d8512e350d4f432346f5ba435e4dfaee3cee79 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75d437919fe1cbd8b594762778abe50262adddf6 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/75f0045e0d2c80008868d32a9ac0757f597545b0 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/750b67e390ddb8d91e158e6f18eb7cf88b64af12 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/750d9b56e1ad11cafb937052d4579f5072f67efe +/.gradle-user-home/caches/neoformruntime/assets/objects/75/750e4dbf74fe89f116d749d3aa1e619f32ee436e +/.gradle-user-home/caches/neoformruntime/assets/objects/75/752cb94f7751e2b3ebcda41dd4f906889e1f0a51 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/755de154a6f5bc28bfadaad9841817d23a90b1ff +/.gradle-user-home/caches/neoformruntime/assets/objects/75/755e69980dc931bb4883f3418a09d5ee7ed51ee4 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/7539beb68238ebd44096de96956e310d111bbca3 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/7540f499c7713711ec0ebb7e3a6240c8b1ed0b8e +/.gradle-user-home/caches/neoformruntime/assets/objects/75/7544da0466b7551f25d70cda5ca4dbf7ff14ff4b +/.gradle-user-home/caches/neoformruntime/assets/objects/75/751373e07aae51ea3eaa53b5b38dc293b6b504d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/75/7543108f075247b7b3503dd351cc37233872636e +/.gradle-user-home/caches/neoformruntime/assets/objects/75/7561831105288058296eaa73970bf2e3ca2d2b16 +/.gradle-user-home/caches/neoformruntime/assets/objects/76/76a69ee1c9af542a384d675bee0d40ece9c6fa43 +/.gradle-user-home/caches/neoformruntime/assets/objects/76/76ba0d2dec5567374c31d2d788183c440efebe9a +/.gradle-user-home/caches/neoformruntime/assets/objects/76/76c31b73ee48718cbc25ac521e97a3a2a47b1636 +/.gradle-user-home/caches/neoformruntime/assets/objects/76/76ca9ac5520898d74430637e2b4462794bab19ce +/.gradle-user-home/caches/neoformruntime/assets/objects/76/76dd4983249264ab1f4779145118bb162b0d884a +/.gradle-user-home/caches/neoformruntime/assets/objects/76/760af46c92f93d599f3429e6f3c49795238ab603 +/.gradle-user-home/caches/neoformruntime/assets/objects/76/762d9719aa4ee55cbf3fd9e58e4f7d512d89d950 +/.gradle-user-home/caches/neoformruntime/assets/objects/76/767d49561422e3833d1da8232d82f45c582a52f4 +/.gradle-user-home/caches/neoformruntime/assets/objects/76/769e415507f445ce99c0d693a767d7c6767ba159 +/.gradle-user-home/caches/neoformruntime/assets/objects/76/7669a518e60eef133ac902fef21a5fbfe71571d3 +/.gradle-user-home/caches/neoformruntime/assets/objects/76/7678f24f572b9abbcfa3fcdc3f647e70b2139c4c +/.gradle-user-home/caches/neoformruntime/assets/objects/76/76072a386e3d8bfe1adfb01848c0ee177ccb6403 +/.gradle-user-home/caches/neoformruntime/assets/objects/76/76689cd5b6061f2814cd8c804ab981b861458071 +/.gradle-user-home/caches/neoformruntime/assets/objects/76/761773e6a284a97dbf2f72a2eccdc86f941f153e +/.gradle-user-home/caches/neoformruntime/assets/objects/76/7621463230ca87557d2ced0a97caa823dbe6ef7e +/.gradle-user-home/caches/neoformruntime/assets/objects/77/77b0b1385766ddfaf61bf952bf4bc056fb594782 +/.gradle-user-home/caches/neoformruntime/assets/objects/77/77ef81db0fa49e065c4f0cfc8b3093dc98b926a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/77/771cae5478daa79c850470d8bd06cf880fab04a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/77/774ac8e0156d5afc13f49acd2c1193231c9ce383 +/.gradle-user-home/caches/neoformruntime/assets/objects/77/774ae41e86f0b62a5cc961d1bc2e3d0aef9d229c +/.gradle-user-home/caches/neoformruntime/assets/objects/77/774f5b188dfc3e1429ed7e4c95c15ad1863efb9b +/.gradle-user-home/caches/neoformruntime/assets/objects/77/777bcb2b96ca2d604fcaa87af9b4ddda4d868f94 +/.gradle-user-home/caches/neoformruntime/assets/objects/77/778b0704d697e97d4c7ecf6cb3ef2802b73b6d1b +/.gradle-user-home/caches/neoformruntime/assets/objects/77/778be006871e8b273ec8ab607e1b8820d254436f +/.gradle-user-home/caches/neoformruntime/assets/objects/77/779d1efdad643440d0699f6e39bebccd907f2a64 +/.gradle-user-home/caches/neoformruntime/assets/objects/77/7711c0051fb19cdca87688b048d172b72a5b7d63 +/.gradle-user-home/caches/neoformruntime/assets/objects/77/7739ae87621d47ff47a36d6cadf2984438f7ffe5 +/.gradle-user-home/caches/neoformruntime/assets/objects/77/7758bc210e0b8a5013cc8689ae0606d9bdbee4bf +/.gradle-user-home/caches/neoformruntime/assets/objects/77/77112f3608e12e748006ab09a1dc05185f1668ca +/.gradle-user-home/caches/neoformruntime/assets/objects/77/77535e99c08e5d4b7e20bb0f5fe1022a18dfc5e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/77/773373df7c8e496679d81a0762a0c257472c3005 +/.gradle-user-home/caches/neoformruntime/assets/objects/77/770656946072c79683235e1438d50176f31b2829 +/.gradle-user-home/caches/neoformruntime/assets/objects/78/78a1bc942ee6e68730a5db8b8289c192348574da +/.gradle-user-home/caches/neoformruntime/assets/objects/78/78ac79c9818b1d67229d845d5a4e3ee6e61d6d8e +/.gradle-user-home/caches/neoformruntime/assets/objects/78/78b99f889c28717f7cd82fa113f0681502cfa53d +/.gradle-user-home/caches/neoformruntime/assets/objects/78/78c8e3e8fc96d3b576eddf850c010b97e5959de4 +/.gradle-user-home/caches/neoformruntime/assets/objects/78/78d511b2ae44d0354e932acdc7acdaaf0a39d73a +/.gradle-user-home/caches/neoformruntime/assets/objects/78/78ec27fadbb62589a2c277c1180803753eabdadc +/.gradle-user-home/caches/neoformruntime/assets/objects/78/781d4bfc6ee0aff2a61b0d78f0da34610a28aa62 +/.gradle-user-home/caches/neoformruntime/assets/objects/78/786f127c0584048be4308d9722d486b983b927ba +/.gradle-user-home/caches/neoformruntime/assets/objects/78/787adafac6185c2e83b2fb01d2db022aedbad78b +/.gradle-user-home/caches/neoformruntime/assets/objects/78/7871eb3607f7ce9db79656cdba221b6c5ce25c4f +/.gradle-user-home/caches/neoformruntime/assets/objects/78/7880ec612bb4a1278845c4fa5b109216ab10152b +/.gradle-user-home/caches/neoformruntime/assets/objects/78/78294a9aaed85390e3f022a3dc346c509bea0a47 +/.gradle-user-home/caches/neoformruntime/assets/objects/78/78702c6433d81ddb5c556d94eded3a6f818251f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/78/784351f22954a13d0bae5de4d74b6517774c044f +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79bbfd39280e2802b2b5718b301c203aad1910c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79c2e2711a546a1867b46ef2b81d8d410107f18d +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79c7d561ef22929fbfd0c1c05f9f4bb50b485660 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79d857276b703fdf9f8be7c35fee276f20d2217e +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79e8a065c5ce2c593d45190b9ad8e5ec75f4edf0 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79f67a2fbd59ae3290646f4d4808295366c8d3ef +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79fdb366ce047a20297c73f85858ea7e29ec0898 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/790a8a054d6fbc2440fdd0d5f153baa9d817756b +/.gradle-user-home/caches/neoformruntime/assets/objects/79/791edfe35bc72bb3d836ae1ecd5270d441777844 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/793afdfc1b11b160bea076e18b635e78594ebf27 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/795a67efbe31b7a23d21a6a4fdc87104794598bf +/.gradle-user-home/caches/neoformruntime/assets/objects/79/796abcbe8c5f8d4715afbe5d640317f4948a4bb0 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/799bc1661b7f771993906dbd61f66e331e6c7371 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/7938494a1174a99d39cdcb0da28aaa06c562df0d +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79087504baf5844468823ecbc2ef092d31011298 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79565814c833a9a3161ddbda0ded8a9e015a67b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79954196b3baa4d5bcabccae350d2607755ccf78 +/.gradle-user-home/caches/neoformruntime/assets/objects/79/79795659716b1f0ad2b2b3078933acb7c86327d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/80a7880c1b190f4faeeca1d5a3b584108dfa480a +/.gradle-user-home/caches/neoformruntime/assets/objects/80/80c1c8a3de011b5c08169f0c532c272ca586d355 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/80d786a36f0c33ffdbd65452c79d197264523609 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/80dab32f80954b698748892ef84dda69b6fdd5ee +/.gradle-user-home/caches/neoformruntime/assets/objects/80/80e109cad5a1c3556d3e7fa05023d3a5caa06a3a +/.gradle-user-home/caches/neoformruntime/assets/objects/80/80ee54bc22e81dd7ab7887114053029ecfecde9e +/.gradle-user-home/caches/neoformruntime/assets/objects/80/80f2e63eaad730255ff843619429756538f22a5d +/.gradle-user-home/caches/neoformruntime/assets/objects/80/803e8806639566aaaf0c4fe4ae76103b19646fcc +/.gradle-user-home/caches/neoformruntime/assets/objects/80/804d9a53c906913794d18691bb26040cf2e1324d +/.gradle-user-home/caches/neoformruntime/assets/objects/80/806fabe0425d34d9953f148ffe47cbd6dbedc500 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/808f9db277e7e6a7a0061bd283d85a229dabb1bc +/.gradle-user-home/caches/neoformruntime/assets/objects/80/809eff448adb6f3277c86ce372d1d12c9592e59b +/.gradle-user-home/caches/neoformruntime/assets/objects/80/8021a5503ec3e492aac6fc5da859091cf905d4cd +/.gradle-user-home/caches/neoformruntime/assets/objects/80/8028f043cf9b7e73d4c89c3fcdb61b63f56e7322 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/8030dd9dc315c0381d52c4782ea36c6baf6e8135 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/8038df5285a51003d716016a725bfdd9b6643d42 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/8042b947982f1fed3ac3bf938b1b975f131e6443 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/8047b9279c9ac27483a3cc9e46dbef7c91465a28 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/8079d95b4510d24fe71798e40888e98b592f974d +/.gradle-user-home/caches/neoformruntime/assets/objects/80/80096de42d58bb6ef658182239afa297b1adcb28 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/80156c24f24360716ea24497c857fbba853ca5dd +/.gradle-user-home/caches/neoformruntime/assets/objects/80/80192b06c08980d15a933ee0aa1c7eba5bd9c110 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/803241cc64e53ceb4211c5222ff06cfd691b2ad7 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/806720e66e2ddceb497081f3ee709c61877a3dc7 +/.gradle-user-home/caches/neoformruntime/assets/objects/80/8017842db46e848a224bd8eadbe874e3b19681d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81a1e0d1616180983e000473c364688557b34ae3 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81a7657d366a4e1bdc288744b10fe68ab8fb2dde +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81adad34862b8f9e9479039a04aca78ddd85206c +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81c7f5b93526c8cd970c8eca1248d45d7bd0e85e +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81c82bfaf8a5222a6f13a4256ad08acfa71cde70 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81cc878e9bd9af120e4fa6f66da69a769cfb75d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81e3e20ca6bb0da2ebcf2f37cccf1f8adc75bada +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81e15e31d36a37b041db04df16531346b20338a0 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81e6856b28c34e1f0e2f93a0b191639da64365d4 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81ec539eb173b103a18e0ab2ca314fb95dc3bf90 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81ee680915142c5082f7da3a5acc884efc9c0ed4 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81f5d88a9d6b21ad38999e6b3d2a03cfa846f918 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81fb73a754948f5d3f66972eb8404c12caf3d440 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/812ffca1d982cd9decae23284044527c7d0dabb9 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/814bc1bc9b2e2b9baed1dc263b5d24cca069e066 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/816e6dd7c8e080ab8b6197aa46ea9dbb73bf0540 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/816e9600a743cdc43a539dab603445ae7f6a27b1 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/818ecbb3788a79a72da93b8d2367000b90fdeeb7 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/818fd48666770b45ec19509d18fab62dbf2b859c +/.gradle-user-home/caches/neoformruntime/assets/objects/81/8112d96f4f017bd0fb7d01b1b1167727c78a72b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/8136a8c6e0ea3eb99377689d2652d41013731958 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/8188fca013d11018a5fa2ebfe1543e8595576831 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/81917a810e2d000ffcecee236fd59fba0383896a +/.gradle-user-home/caches/neoformruntime/assets/objects/81/8104076eab97d709782f2b52463f5ee0c3691ee3 +/.gradle-user-home/caches/neoformruntime/assets/objects/81/8156895b48beeeda17bd215371e7be2859c9bc66 +/.gradle-user-home/caches/neoformruntime/assets/objects/82/82a11ab06ea2449f523353407eed3c0a4ad814ec +/.gradle-user-home/caches/neoformruntime/assets/objects/82/82a837074ebb499c05a8ec9258190288ddcb5cbe +/.gradle-user-home/caches/neoformruntime/assets/objects/82/82aa6f582d10a4f2e0e848a90a88d7262a84aa5f +/.gradle-user-home/caches/neoformruntime/assets/objects/82/82d79ebe4115b1ec95cefb5355fff4e1517bdaba +/.gradle-user-home/caches/neoformruntime/assets/objects/82/82d92c79fb45bd5e068c8b03062662534c23b692 +/.gradle-user-home/caches/neoformruntime/assets/objects/82/823d8e488e40b684698576ab72bb80f8903a3a68 +/.gradle-user-home/caches/neoformruntime/assets/objects/82/824eadc9623fec95a1e1e330e48852e3dbbcbf77 +/.gradle-user-home/caches/neoformruntime/assets/objects/82/829c044d2c7189d938efb8cb89d1bb66b77c67da +/.gradle-user-home/caches/neoformruntime/assets/objects/82/8210d2353fbd6b0b1c9bfd7fdf3232f5866bf729 +/.gradle-user-home/caches/neoformruntime/assets/objects/82/8227d2c8a967ab7d1a0362332b52a8a107d82b7a +/.gradle-user-home/caches/neoformruntime/assets/objects/82/8248ad6190c073991d504dabe7e8e115d0cde89e +/.gradle-user-home/caches/neoformruntime/assets/objects/82/8260c62cccc2b437bf3dab9f2aae999d857b3335 +/.gradle-user-home/caches/neoformruntime/assets/objects/82/821949a118d0d4be01e0594634521a00dc5c2c63 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/83c8fe5a2540d2e3a0eb41f99ffa5625ee7c2fd5 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/83c89769f6a4bf564df34990a6d4fea3fa90ae9d +/.gradle-user-home/caches/neoformruntime/assets/objects/83/83cf0ff6d3ff09f0c4209a91325c5525e10848e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/83cfcaec81aa3ef38f57a3db313b28beaeebfb79 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/83d9b6c417ae06b91b351151068bae65ca434771 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/83db28fa10d28a63fb649729e8fdec2ecde0f430 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/83e1905e00f9a0516548844c6b0383959c1d422d +/.gradle-user-home/caches/neoformruntime/assets/objects/83/83ff2c375e2f592dd8021915b4bd165fc90b5e42 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/833f9b908db2f877e678c377b9f62f9b726d7b0c +/.gradle-user-home/caches/neoformruntime/assets/objects/83/834dbbc645ef60386e48fe2a6733f31e8ded3ce8 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/835e8767ccd13731038505fa80c564d7b65f9d81 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/839b5c67010398d2e655500b498e9931e9a30ce1 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/83598a7d1de171a739adb97539d387707030e5f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/83/839041a5c7463e7c303b76fa3c6586312936a4da +/.gradle-user-home/caches/neoformruntime/assets/objects/84/84ac333e5b28bfe2d75461071a97736a05a98ae1 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/84c1cb04d76e69d4585e5653524af3111b2b74d4 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/84d3ea63e3a016c4bab7e5477f3a5fa303c7ed19 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/84e8b9981dcb47f417f38ef755ad98a0744c22ad +/.gradle-user-home/caches/neoformruntime/assets/objects/84/84f2c608df1dedf9ad9ae385f38d4cc003e980d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/84fd00ea656c5cb570c19077383e1690d532406e +/.gradle-user-home/caches/neoformruntime/assets/objects/84/841c8ce0aab798fd3a351df5d4dbd7d33d93cc86 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/843cf0ef9d34bc3146b2e0d2e7cb1ea4dc18ab9a +/.gradle-user-home/caches/neoformruntime/assets/objects/84/843f1160b5e56e0a671abba7154f633dd442e747 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/845a813d61b345669e9cbc3c4014ddf2298580e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/846bc201e348e4395a0aa7ae54212b9d79d83954 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/847a88d743631e657191915ca9a24a6cad4a8d4f +/.gradle-user-home/caches/neoformruntime/assets/objects/84/848b1ae0e0895cf3e93aa81d1f6295ac933a01d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/8409d6b888dfde69412f0b24208d174511c347d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/8485b20a62a0d364fe713be63df20c8a93181406 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/84100c9516fb3f8181ce3e50e3078aa8d148ba20 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/84680f16139f2d2ea3d6ac5276db83dae01efa87 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/844749c39f3519ef6123527240c5c05c40a1abd1 +/.gradle-user-home/caches/neoformruntime/assets/objects/84/8439416a43efb373f1d54f2aa7d5c34ef2b7cda5 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/85a616fdd30fb3782da596048a034fbbd8df30ab +/.gradle-user-home/caches/neoformruntime/assets/objects/85/85a926523452c262caa6f0bf3bf408a12e00f84e +/.gradle-user-home/caches/neoformruntime/assets/objects/85/85d457a67055477cb22538ee3ee0b3d537bef3f5 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/85f10b61a540a9ee014c5c489d17e5bfa57b3d2e +/.gradle-user-home/caches/neoformruntime/assets/objects/85/85fd72d44ccbf8fc1e0b8aa714c37e0b5835cdc8 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/853aba2cd3609300a4f15fb4f9efbaac5f05e9e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/853da2928e9ca37e6d7c9aeaad58d4cbfeca77d4 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/856cd7ba5df07d527d8fab59bcb620e07b278422 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/858b522acda61ab94dc9b52e75974e32b941c809 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/859a02ca8ab17a21bd05bc05f1f66811b6e03444 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/859d0902af97b5c15493ba815353cc24d972a556 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/8508acd68cb9930cb6d9a1799d5c677c4a63520a +/.gradle-user-home/caches/neoformruntime/assets/objects/85/8511ad612a1499370e1078f1c3745ca2df124ccb +/.gradle-user-home/caches/neoformruntime/assets/objects/85/8515daefb7997178c39bf3ee44e418122098fb71 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/8569e774f10480e83a430b5baf4609c561c5f7d4 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/8595e9f6b5eb1c0d646ced84941662e8c9a2d003 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/85539a26d936aa5cbbd328f98a16d9cdebab2d01 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/850147baf6bdab51818316ce9feeb4b95bed1d33 +/.gradle-user-home/caches/neoformruntime/assets/objects/85/853943f6b6a3eeefeb973ceab6f74129e68de8e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86a0b94f4f328875c20b338c3cb8cda44a55d942 +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86a81954be9aaa84854aa606f8100ff9e9d31000 +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86d6f58ce7ae38547cbe6953043b66c53fed5d1c +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86d7debb43f3016d525c649ff9f61a2869eec3cd +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86db10084162de0f4e27fe2df10b67e33898760e +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86e50969063621cfdf9388d207cc20e83195e763 +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86ee4459e92beea5a4287881d26f7eaee0411c92 +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86f495c4d08c6e4441759d58fcea059943fece1c +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86fc2655778bf3b6c87875549f1ab297915cfc2f +/.gradle-user-home/caches/neoformruntime/assets/objects/86/862cb429acb77fd01e647d28f6437f21e4ac3ebd +/.gradle-user-home/caches/neoformruntime/assets/objects/86/864a2d0a35e699be0a89fb1c9425a405f825a970 +/.gradle-user-home/caches/neoformruntime/assets/objects/86/869db1bd55f5a583ca9e32da419f7d747862cd49 +/.gradle-user-home/caches/neoformruntime/assets/objects/86/8636f54842ab14cbec18f43907c7e765d718ae88 +/.gradle-user-home/caches/neoformruntime/assets/objects/86/8648a8dcbe82c047b60d74783f7b1c9eb5826290 +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86082b956f8f548dc909ff4bcb5a2f729c65397e +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86485e70714fd921b1a78daf9c6f9e4896a3e07e +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86589a9fa6cc44c7761b8e648a0b83c0145f740b +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86745fd0223b24d6e7a42dc84f409fa6908a7cff +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86767d3c08a06dc2440463a05f5a505e05454ab9 +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86911c8c9eb54a3be3addaaf045a349647691afb +/.gradle-user-home/caches/neoformruntime/assets/objects/86/86342127e36b679ed9846408cb99bcc1aa04fc4d +/.gradle-user-home/caches/neoformruntime/assets/objects/86/867043461e73df31076e74a8b9247fdffd30e6a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/87/87b1f12d7daa327c65c66ac44569eca9ab4bc4d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/87/87cb1d4a720eea88acf72e76afc81c26ff7c59fd +/.gradle-user-home/caches/neoformruntime/assets/objects/87/87d5e8d5a978b0443d23741bb88434e88d60f60f +/.gradle-user-home/caches/neoformruntime/assets/objects/87/87d5e6747f08cc6c82aecba1fee3a1bbfb57a82e +/.gradle-user-home/caches/neoformruntime/assets/objects/87/87fe1be2e8238dcf66ed0072cc8115702fe6b108 +/.gradle-user-home/caches/neoformruntime/assets/objects/87/872a3e47b7e88e5fa76fbbf71558ecfcb36de671 +/.gradle-user-home/caches/neoformruntime/assets/objects/87/874a85ad778aabf2595544b07da0197b49f24dd4 +/.gradle-user-home/caches/neoformruntime/assets/objects/87/8711b18848546a66c88aa8d92400ee9e7ee861c1 +/.gradle-user-home/caches/neoformruntime/assets/objects/87/8724b09ee35adb9ace9e61d670e5f353d1bfe11a +/.gradle-user-home/caches/neoformruntime/assets/objects/87/8729ce280502248f6886d36a9d2d848e58bd12c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/87/8738c6275a70c76d0f5c184fab8c953de0557e8f +/.gradle-user-home/caches/neoformruntime/assets/objects/87/8740a15ba2100a68975842c571d40edf970f5bef +/.gradle-user-home/caches/neoformruntime/assets/objects/87/87325e36738d7e7dadbddf82c06ec307ec4c1f10 +/.gradle-user-home/caches/neoformruntime/assets/objects/87/876436d92a9ae0a614859141031cc112688f62f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/87/87253391dd7e646128e05e386c0af8d9c67c15c1 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/88d1ff9da5f9661168b3591273e0e153af1878a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/88d994eb34435986dfabf98dd64abda81c60b707 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/88e43e4abf70882594f3128a219bf77ba36cdb8b +/.gradle-user-home/caches/neoformruntime/assets/objects/88/88ea17890a302ce1c8c4f499f6c7d6022f3917a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/88fcac4f179539ebd3fb60d92db4cdbf16266ddd +/.gradle-user-home/caches/neoformruntime/assets/objects/88/888dc3e9ae0fb74109b2e79020919a4ebfd7dd66 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/888efd5ccb2366b7d37f6cb706ab5bec225a0a4a +/.gradle-user-home/caches/neoformruntime/assets/objects/88/8818eee402e23133873b51aa5ca4791f12fb3667 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/8831f30b872dc52fb18fcf2e842a13889111e3d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/8849e75a8740e98b2613331272655ea5d6e95934 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/8868e83ebbdf92703f02eb8465520120f01c7ab6 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/88005e510e6d652e888ce1098998123179b97a9d +/.gradle-user-home/caches/neoformruntime/assets/objects/88/88147cc91f326e76e8f9a9e6a1d933e2bcbfdfbd +/.gradle-user-home/caches/neoformruntime/assets/objects/88/88378c5a24a6cd1f8c543ddaa08988bab2ac2eb9 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/88625ae1dfaf75726e37d23a0111429ad9ea5e56 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/88837df52ff6ee8f6c5f406a3d3f022733341369 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/880940d69969b702dde0807f29411c4c166f7c50 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/881057fb4871a123565b52143d63e3763af5f19a +/.gradle-user-home/caches/neoformruntime/assets/objects/88/882756c7761f4470cfb92b1b1f3597fb4bcf3e9f +/.gradle-user-home/caches/neoformruntime/assets/objects/88/886190d022c21bd3480e0a72a26846e28d2d2bb4 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/8808491b110a6e15d0599d5108978f46a7140099 +/.gradle-user-home/caches/neoformruntime/assets/objects/88/8855447a5c5fe347907ae574495fec645a11a9d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89ae8e1e64e97e96e9e29e432eaf623a20df8f5d +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89bbd7da47d332ed514e65631bcea79fcfa32efc +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89c7aba7b4d0cb27793cbbc801e5b52d892524b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89c7ffa21ee7ffc3e0876eb22faea4df26dc6c5a +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89c8bd590966d3590a488567f376be501aa9d3be +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89daae909cddd0edbab8ad8bff3765d8ff32448b +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89e0fcbc59d01ef3d0929afbce9db78dfae29a3e +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89ebe341a4c20bcdb643d6284a68080a0dbf3387 +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89edf6c17693361003a04db7f240bdc434fc48a8 +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89ef3aed3fec190c64ed86eeba5dc38aae9ca2ee +/.gradle-user-home/caches/neoformruntime/assets/objects/89/891fcac353b7c81b1a2cff12e1e59f4cb96a4d91 +/.gradle-user-home/caches/neoformruntime/assets/objects/89/892b2053c7272c2a2f14f63c78b908a08b25adff +/.gradle-user-home/caches/neoformruntime/assets/objects/89/893e51fb583c45afdf430c46cb1707132a74bb2e +/.gradle-user-home/caches/neoformruntime/assets/objects/89/895d6705151e0df42c7f95e62935159da7324976 +/.gradle-user-home/caches/neoformruntime/assets/objects/89/896ab9c5e237aef4b0098b02c3d52fd90a1588f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89508f92c6917da7dd5e1a5945936f12e53529da +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89741b2005ca27c98454e0cc000afe33b5af86fb +/.gradle-user-home/caches/neoformruntime/assets/objects/89/897453dc748e920a4482204c50374847872152af +/.gradle-user-home/caches/neoformruntime/assets/objects/89/8923380f8288688f9183cfc1ec54f3c15061c396 +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89236079c6c9eafb1b3d5aeaefbeb08dbf6003ff +/.gradle-user-home/caches/neoformruntime/assets/objects/89/89684131070403ea2d3babd119de32a456452984 +/.gradle-user-home/caches/neoformruntime/assets/objects/90/90a1ad51df9224dd1c0f9b45797d08c80ef88c9d +/.gradle-user-home/caches/neoformruntime/assets/objects/90/90a690d7850c916b4aaed906be3730e761ebffa8 +/.gradle-user-home/caches/neoformruntime/assets/objects/90/90bf2ebbdf3bb510eb5ec443405d1021f63ce4a3 +/.gradle-user-home/caches/neoformruntime/assets/objects/90/90ce322374d4770d0c92c5ebe769378d15a350cf +/.gradle-user-home/caches/neoformruntime/assets/objects/90/90f9308bb2e4df9fca59e48389d8317243c2db15 +/.gradle-user-home/caches/neoformruntime/assets/objects/90/90fef087440d5297b82908c2d2a239c1fa04e442 +/.gradle-user-home/caches/neoformruntime/assets/objects/90/902fba3f16593df6c4df433af4f210d060d2bb8f +/.gradle-user-home/caches/neoformruntime/assets/objects/90/904ba7671ef9684bb4866a239f34732a2f352a85 +/.gradle-user-home/caches/neoformruntime/assets/objects/90/906f3c7603388170df9be706d950cb9e79a7ce3d +/.gradle-user-home/caches/neoformruntime/assets/objects/90/909ded09c154faea85e71d5456921be64cbdcd49 +/.gradle-user-home/caches/neoformruntime/assets/objects/90/9015a049f9a649eb3cb3f9a8e36cdb130ed78a2d +/.gradle-user-home/caches/neoformruntime/assets/objects/90/9022fcfb001438a87c65b268202a6abf5957b64a +/.gradle-user-home/caches/neoformruntime/assets/objects/90/90256cbc94aa370ec98b61726693a57093112b14 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/91a8543456e06dea5fc066db5ba7986c8783fac5 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/91ae98690736218edb5a24bb215d606be1d7c51e +/.gradle-user-home/caches/neoformruntime/assets/objects/91/91c18d957f612d003b89221603f3d93b165f4d23 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/91d150774699001663cf17fa677e083d76a7014a +/.gradle-user-home/caches/neoformruntime/assets/objects/91/91e6b5d66b587abc7e616ca8c348255b2365d862 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/91effb4eb1199cf1f02db23f1004e006125b2950 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/911ac4247600455af6a8bf5638ba58469445e8fa +/.gradle-user-home/caches/neoformruntime/assets/objects/91/911cf4d77ca2cfc7a4d5ffdb2c40554036cad5d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/912f27c8f38db853b835421579b3423393ae6260 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/918c409795350a885b1d0a9b6390885f5695fdfa +/.gradle-user-home/caches/neoformruntime/assets/objects/91/9115cbd06d5c721950a2a7d16330bbb15805029b +/.gradle-user-home/caches/neoformruntime/assets/objects/91/9146d276a0d83204bbece64fb614445460a13af6 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/9175b581230b552217fe55f19830d359a435ced6 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/91140fda4ef1bd92904110fe9bf0e47021729576 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/919749bfacbb135b5703a11d8c624329820104b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/91/91547587db850771aba7fcd5eb830cf680f45ab2 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92bb2c7fa9c823679518f59fb447d20c17bc8bf5 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92c82d5dae46a4ce7c743580d50dbb71376dc0ab +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92dab48dc7436bd2b2cc564c9190f934f9fd5463 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92e6c376ee2745b5e05d3ac1820bedfa417f2ee4 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92e577c282bb0f3afbcea470fde1c8292a4e098b +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92e854405f58ed2d1c339bc4917bf1345a734483 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92ecd29a556b0b14727b8aac22c4929b4baa37c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92ed5d01731c0ce62f341425909319c7ac894a96 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92edd8965abfbca38d960fee86f5aeeb8f62f592 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92f9a86c6387c1464236bbc4f9de5ebe60580965 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/92f61228a9a0dfab21dada9f530a8bf926266e21 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/922e50f84afc88deb5c68fc6d4e0b55c91dc1110 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/926af0437953fbd903c9ca1b9d42645688d3967c +/.gradle-user-home/caches/neoformruntime/assets/objects/92/929a486c3d4b8c67cde7a04c6a9f1966864c772d +/.gradle-user-home/caches/neoformruntime/assets/objects/92/9247ca2f05d3e7f2b39c33c30f76a4e6d034b6d5 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/9263cdc07e710b3ab85d72c4d64799f3b23dd493 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/9234258d13f8cf39b01b8f25a7cc5bf1008e5103 +/.gradle-user-home/caches/neoformruntime/assets/objects/92/9297374242fa6116dbc30ef6778d30d1e73b5f8b +/.gradle-user-home/caches/neoformruntime/assets/objects/93/93ac6c1f1ced2cc9eed75e6a7b94ede19fe09658 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/93b2ae9bffbbf94cc94999dbfff9cb58e3009488 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/93b7f7e08ea4d4d7c67b9357a50be65dbf8115c1 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/93bf9534ab5112b8bf4c0a923f59fd544cda72db +/.gradle-user-home/caches/neoformruntime/assets/objects/93/93c50c20f4eb2d3f6116f8b354fb5d5090e78712 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/93d5a2d83f36efd582d31630801cd96c70c60715 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/93f7d5c9a9909e8acb58d53f0de85633f1c0d907 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/93f2599a7a9b569e4d72eb69f14f99dd6c0b0e44 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/930cb3be6464ac9e11705736250fb938ae0239ef +/.gradle-user-home/caches/neoformruntime/assets/objects/93/930d7e854d760215522af541b7aa226e6a11bf7c +/.gradle-user-home/caches/neoformruntime/assets/objects/93/935d8fc1072c11c04d986f3a24dd59eb69bf28f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/935fbfb4b3dea314ead96418f06ac31b4d6fe55c +/.gradle-user-home/caches/neoformruntime/assets/objects/93/938a23d03c5a72deb69bf0abcf2c072063ffe524 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/939be997b108dd223aa26adab3c35caf41588314 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/9331bef7e5d87f014ff5610769f73a0a7261bded +/.gradle-user-home/caches/neoformruntime/assets/objects/93/9340adb5c86230146f204c26a13c052626a8ad9e +/.gradle-user-home/caches/neoformruntime/assets/objects/93/93062e5109692ee4b67d10ee603a0ea00da22fbc +/.gradle-user-home/caches/neoformruntime/assets/objects/93/932044cf67069d4b7d651e325cbe2e47e3d9a264 +/.gradle-user-home/caches/neoformruntime/assets/objects/93/935038c6a2ce4547ea8e8deea051e57b9975024b +/.gradle-user-home/caches/neoformruntime/assets/objects/93/939399f7b2bf256ba744f19b4cc102c90ee282ee +/.gradle-user-home/caches/neoformruntime/assets/objects/93/9396576ec3e7a564c4b9abea5cfbadac3a69105b +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94afa8dda40ba0ac5e6225cf8bef196bb3f1cccf +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94bb6b253b7b185dce169221b3312bfba87f0bf1 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94bed4c46b2ad1d38c77d17926b8821382df2c13 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94c5df5cba50f5bb456702130bd286d1273f9692 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94c8a7041b56af194005108e6863f8faf7bc508b +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94cf597af95061779ab98c3e73b9b6cbf78342bb +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94d61b2f28dcbb8e635657b831545d4cc241fb52 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94dc6662cb919072506918fc3dad64663eb8bb26 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94e5b3f27e93bd060066e3e8aa45aac7eeababf6 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94e8088b50454d25414f9ac63cc5364b7812f2e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94ff4b7c26a8d2a16846989f407b494b29d17d8f +/.gradle-user-home/caches/neoformruntime/assets/objects/94/942f8aa6ef1ea1d4a7baa192d2d1c1abfabf0b90 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/943c4b9ecdc317e2b1607ea180dca174dcb2c75d +/.gradle-user-home/caches/neoformruntime/assets/objects/94/943f45c787298643b8a64f9eba13a7311ec81f8b +/.gradle-user-home/caches/neoformruntime/assets/objects/94/945f5710936be2ab03a4fbc7aa5758d02f5a6861 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/948e5c119ba5fa1923b76b03a4d80292b8b58b5d +/.gradle-user-home/caches/neoformruntime/assets/objects/94/949afe72d4d3d785dab52d8baaefeb0e38b3c067 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/9410ea94169557cef4737e37245029b7febeedb5 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/9423ca87fdc43522b12f30a324ba8756a36c62e1 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94029c8b507945a2ffbcb85b224f9ebdb63631eb +/.gradle-user-home/caches/neoformruntime/assets/objects/94/94097d3a1ca59a7e2d2ab9b4c948eb5393e50592 +/.gradle-user-home/caches/neoformruntime/assets/objects/94/9422061b499393c0163531dc8a536b5459ef168f +/.gradle-user-home/caches/neoformruntime/assets/objects/94/940857260315b22485252b6c29f9bd2328559d84 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95a4c1e7dc57e1d8fb1dec2349d7474968ecce30 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95aebdfcb2255ee241e42dc5ed2ad8c001940738 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95ba7a407300fc85b5e2ea9dba563ce69f45ad2b +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95bbb94f69d2ba6087d8279a621ae80b2e522f17 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95cb05f2fe80e48c26c098922c67617ca31c7515 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95cc1a95725bc0dc66159d970664a12fa309d2e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95d8be2cd93f60079dace71b4393c949b48fb461 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95d201f92ddfba80febb175d051a10073cfd629a +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95dca0416258364d90649392592d470eb800b17c +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95e35f94cd24ddd2fb011af188de8cebade4d148 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/951bd24d521e7466557f50220af188f5d0d2d4c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/951f06dc9d4866a2950eca97cb99a35515c5003d +/.gradle-user-home/caches/neoformruntime/assets/objects/95/953b11b095140ee772694591a284051c694fa909 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/958d57021d8009de55d6e9e19957a72545e3c30c +/.gradle-user-home/caches/neoformruntime/assets/objects/95/9501ca012db1c1484af6920b3e84fac716d5b197 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/9529ec6496b7178e1da810e458cc9093e6ee84ed +/.gradle-user-home/caches/neoformruntime/assets/objects/95/9550d6928017b1ca6767efa45d7a6d75128d6dca +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95162dc7621e7cddc16c9b0e60d18555af80032c +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95505e333c3b7fd1946fdfea15573864285c99e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/95646e6c1db2fce4a2ea3fb498d02e8e2b4389cb +/.gradle-user-home/caches/neoformruntime/assets/objects/95/951186e27f7e5a070f750f2c1a5d63a8fcb25ebf +/.gradle-user-home/caches/neoformruntime/assets/objects/95/9553128f1784e2dd6703859be1937548aecebc68 +/.gradle-user-home/caches/neoformruntime/assets/objects/95/9561606cf8238897f033bb19a4129359d3b9cd4c +/.gradle-user-home/caches/neoformruntime/assets/objects/96/96a84af9fad5619657dd5ea6995888f95144ae10 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/96a80007c1ae9c9354d812150d37dde3042637f4 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/96a422508e7dcb5fa7a2a83d7a3e5a1781773e52 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/96d0484dc7365d8b2e45e5fba3067d920d9bc737 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/96f2fcce73cba1c2f56eb9ae6b1c311cd0817bd8 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/96fd44f6a57b46075ad2553d2b68263aa5800f31 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/960e66248010f1adf7306379706866c86731453f +/.gradle-user-home/caches/neoformruntime/assets/objects/96/962f5a528dd2a5beaf80233b88fc412acc517aeb +/.gradle-user-home/caches/neoformruntime/assets/objects/96/964d2e9bf8294d6d271648c03a8da7c9f7b12a91 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/9606d4fb8a45d243704bd48e7569854526ab8590 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/9616fac7e99fda83764ab9cf39d522ee7930b33d +/.gradle-user-home/caches/neoformruntime/assets/objects/96/9620bd7894626119808276d90597dafcb4006c39 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/96314f3d851ca570a0f167121963d7c53f61c60f +/.gradle-user-home/caches/neoformruntime/assets/objects/96/96696ce78f076f9d89ef4e6c02b70d7dba93eb93 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/96729da0224ea09b3bbfe61dbb7c8668ddb96583 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/965177ba822cee3f7cd1c82cf4ee0a956cbf62bd +/.gradle-user-home/caches/neoformruntime/assets/objects/96/9628106bdc110328920700c5af43d7319ef327d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/96/9660299d31b6a8d345b8b21f82934c49150de15a +/.gradle-user-home/caches/neoformruntime/assets/objects/97/97ad91936d0be05d3438d7e1f0ca61871cbfb5f5 +/.gradle-user-home/caches/neoformruntime/assets/objects/97/97b47b7a62f22addf6ff1db0c57b2fce22504098 +/.gradle-user-home/caches/neoformruntime/assets/objects/97/97c61ce93b5f8d14e921e88bf8288f5a304ed7f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/97/979e158a9c798c2cb3fd6b83a675d3029795b1f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/97/9751fe8193532dae7df155f2a17eb45519c231b5 +/.gradle-user-home/caches/neoformruntime/assets/objects/97/9785ad151bafe0ebbccd19115ec0292aaa4e221f +/.gradle-user-home/caches/neoformruntime/assets/objects/97/9792ced2042dc6765b08e47df9ec14ed7422461a +/.gradle-user-home/caches/neoformruntime/assets/objects/97/9793dbdd971b5d7ea57ac5a35f5ddf309e416df8 +/.gradle-user-home/caches/neoformruntime/assets/objects/97/97116f4bf1df22a78ed414fce32dfe56cadded19 +/.gradle-user-home/caches/neoformruntime/assets/objects/97/97886d7ba109c2dc48ac0088fb4ab464268a1528 +/.gradle-user-home/caches/neoformruntime/assets/objects/97/970879f2cb6cce9ce072c28b3c475535d88bc5a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/97/979808be0dc14a812557b46cf4b12fc890ab996e +/.gradle-user-home/caches/neoformruntime/assets/objects/97/972034032fd6d1b684830976337f8e9db87c7337 +/.gradle-user-home/caches/neoformruntime/assets/objects/98/98a086f97728ae57a4552ef3c812f6fd9576c888 +/.gradle-user-home/caches/neoformruntime/assets/objects/98/98c23d73be7bd53350cd4b1b830705f98465fa03 +/.gradle-user-home/caches/neoformruntime/assets/objects/98/98c94b78a3538392ec63314bd00b6fdd02277a1e +/.gradle-user-home/caches/neoformruntime/assets/objects/98/98c5637be3a8318c6dd0dc1f0404f15ebc01fc1b +/.gradle-user-home/caches/neoformruntime/assets/objects/98/98c98486abde4419300c0a8ead95b922e153ff03 +/.gradle-user-home/caches/neoformruntime/assets/objects/98/98d9b15c6eacb67c6a4854fb0d3b97de3ab30340 +/.gradle-user-home/caches/neoformruntime/assets/objects/98/98dfc1ea33b18d387dfbed5cbdc919250538c42e +/.gradle-user-home/caches/neoformruntime/assets/objects/98/98f8cdbd360822f55128801767f1fcf938caef56 +/.gradle-user-home/caches/neoformruntime/assets/objects/98/98f36fa7518bce840b14b1cc9b48e9baa9ff9bad +/.gradle-user-home/caches/neoformruntime/assets/objects/98/983b8598fa068b6f3a2a1d8a1c28ac6bd57e177b +/.gradle-user-home/caches/neoformruntime/assets/objects/98/983ef16972c1f292f57aa8d9d2b68bdf955517ca +/.gradle-user-home/caches/neoformruntime/assets/objects/98/984a7d9501fd7d679c1c91af756ca8633beb09b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/98/984d3aaaba9e8bfd10a7edb77de46b975be8e25a +/.gradle-user-home/caches/neoformruntime/assets/objects/98/985f000ff3b189601ad8de7997cda4d8af0c3f74 +/.gradle-user-home/caches/neoformruntime/assets/objects/98/986a0f4dfce89008e043caa0b5c38761b885726c +/.gradle-user-home/caches/neoformruntime/assets/objects/98/9822ae94c710bcd4130f78bb353eefecfd614c2f +/.gradle-user-home/caches/neoformruntime/assets/objects/98/9843a7fe901e32195a74066365fe3b82fb96f90a +/.gradle-user-home/caches/neoformruntime/assets/objects/98/9870aac3e67912103715daff13532010b94f8dfb +/.gradle-user-home/caches/neoformruntime/assets/objects/98/982573a3ca665307ecfa7ac79479aefda24231ff +/.gradle-user-home/caches/neoformruntime/assets/objects/98/9842441d4294733494cbf89eaba1c3ee65f99ddf +/.gradle-user-home/caches/neoformruntime/assets/objects/98/98155943b8d35f365d0d2a03b0c5d36d303f5e7b +/.gradle-user-home/caches/neoformruntime/assets/objects/99/99a74f5734610b1ebe18a0e3589fc22a6e4dc307 +/.gradle-user-home/caches/neoformruntime/assets/objects/99/99b93c4e99d75c329a37c4b409f16df983a4e2fa +/.gradle-user-home/caches/neoformruntime/assets/objects/99/99ccae1d18428ab4629afec56cda36d1ae125fbd +/.gradle-user-home/caches/neoformruntime/assets/objects/99/99ce682350c75934e52dafd946476e62c0a4f7f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/99/99d745c29649c84492a072bc1c9002a51695cf81 +/.gradle-user-home/caches/neoformruntime/assets/objects/99/99e20768fc500ab537217faf07b595ecd2ff0e0e +/.gradle-user-home/caches/neoformruntime/assets/objects/99/99f280560d677a6c298040b142f42d3b39d4c800 +/.gradle-user-home/caches/neoformruntime/assets/objects/99/991a3ca0d15f17adbf7b337057a760dd93888f81 +/.gradle-user-home/caches/neoformruntime/assets/objects/99/999bdf382687457820f934783e6ef38dc01c508b +/.gradle-user-home/caches/neoformruntime/assets/objects/99/9920cfbe289ddee5447e97304a01c3d11377983b +/.gradle-user-home/caches/neoformruntime/assets/objects/99/9926aa4b33e65b99f24f0f6248c6756e24aab6c3 +/.gradle-user-home/caches/neoformruntime/assets/objects/99/9929e61036da5bee39d249502e670104f1cf969d +/.gradle-user-home/caches/neoformruntime/assets/objects/99/9955e190530db9fbbf2f527b0d60ac738b6a77ca +/.gradle-user-home/caches/neoformruntime/assets/objects/99/99791a6827feba6dc95bb95815d80057be9ddfd3 +/.gradle-user-home/caches/neoformruntime/assets/objects/99/990232db6a8b7edfb8e7fd0e167b79c2eef9c37d +/.gradle-user-home/caches/neoformruntime/assets/objects/99/9973249da2a3c95d932a38ca8570c60a9a8914f3 +/.gradle-user-home/caches/neoformruntime/assets/objects/99/993081027766bd7fb0e2d670d2011d7ead6f265a +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a0ab21bec256a988a65a19b7f96e24405c0b3581 +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a0b189453154bd86ff8d6c941e4e01bd5021c472 +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a0cffda2225b6daff48e5408cedf2ba6deb50e28 +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a0d9187ca37ac82a7e11b0564882e87762bca51c +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a0f85922a40f928d450f846340e63071d3c65293 +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a01d5a32c55bcddeb5a2c215a8a7c97db00eb7fb +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a02ee345cc7a7cc2afb6ea0a368b097e3e477608 +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a010bf6e310588699f491f326d72c651f1b7d0e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a016fd59de9ae9df7573041ac8460bffb543265f +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a084cc73ae04f6d4aaec3b33865dc05709c17603 +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a0819f50ebd724ef155bb7c9eee3f48cc807e4e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a09924e4fb66c6c1669d4b8669e55132e38f586b +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a021158e44a44ca64443eb86d591847374349daa +/.gradle-user-home/caches/neoformruntime/assets/objects/a0/a01705000011bfcb8786351ab4a2d4dbebf8d132 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a1a1eed5307c991ad0b64e0cb6fce87f20f713c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a1a7b885db05e48a2f452de75d1cca4c8703f637 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a1ac7aa91b5f63a2c32bcd414702f8309cd2f2a2 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a1d33e92f9343c37ce30535e7261fd7483028ff2 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a1d536a39ee1de7d61e580e6dc27f00ce9c2ec15 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a1e833dec61595dc79d0c672fcd7838579ca4b14 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a1ef47e0497eb04404fd8c4625bb229c1295abfd +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a10cb2f721ba376a7d2bfe85291cde903bff3d59 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a10d2d5bcb7b391737379593d86400af886082fe +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a10f6c006f094ce0206044e20189a6beea38efba +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a11aff04b1141ed73a7ab8cc499115a674def07e +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a11cb77dfcf81418a9b562642a212cd1a4189add +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a16c9407a782197eae018ab8c9b254948c5b80f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a19a5a096ec8856616c25a286c6bb5cec949ae17 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a19eea7979d380661c1514a5d999e99e0eb61ee6 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a135be46d5b8875428a50206ebf21925b4d4ead2 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a191d7d12d62e0d9a3a9e8628657f477f722370c +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a1260ad0107b49e9ea070a1ed87934b50d6caefd +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a12177b8cb7844ed33eac78576c4fb43cebad4b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a11636025bd4e85fec2f40ced585ac7028ee6046 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a120746451672bfebaf36c8dcf8844c13138fa80 +/.gradle-user-home/caches/neoformruntime/assets/objects/a1/a167579977833d52d3bf9900bcdebef0a02d550a +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a2aef9cedac7aab0bbf5b904fc1a900e96b6f29c +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a2b5af171e999ddfe59c01bbfc6401e7478d6760 +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a2b55d2483ac7f12f22cc4ac51cd02a421aa5837 +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a2ba5981d87d17865c72fb54463bfaa344888851 +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a2c420c177d06113c82183298507a01bd5f30192 +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a2f02c5e19d877adf6675f641b71f49b1becd8ab +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a20add2a3031db81fe7ba732b721438db2c95889 +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a20f0a846d7becf5d08756207f86acf24fac1a8d +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a21e17aa9da8aae598db112329ef0e08cd272b77 +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a23f29cc77384305500826664aab697de7d5fd13 +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a25cc0deef44936ce6996c372d740f4840a00eeb +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a27a948537d1e43e4e44b54c6d164d908a7a871c +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a28d0caaecd1b12391933485e120d380abe91ba7 +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a29dc6b15a241abd42336e0435181eff55dc37f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a297cd9713e000c77feefd41a06024b523cfefe5 +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a2467aa307af205f714f3cb30868e176b584da3d +/.gradle-user-home/caches/neoformruntime/assets/objects/a2/a2520146a484bd7458e5894614f285e741692c24 +/.gradle-user-home/caches/neoformruntime/assets/objects/a3/a3ed04daf5a6a405fa3964b37ceda19b43a8c777 +/.gradle-user-home/caches/neoformruntime/assets/objects/a3/a3f2b27bd1f54c98455f11c17418a16dd85cb1be +/.gradle-user-home/caches/neoformruntime/assets/objects/a3/a3fb95476b85b2bc43384bf6b7f6ba8053e0eff4 +/.gradle-user-home/caches/neoformruntime/assets/objects/a3/a3fea7b6f54b4e7a789f7ad5249586956c3412c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/a3/a32d22b74e0a451083c99b68a0119b501652ccd8 +/.gradle-user-home/caches/neoformruntime/assets/objects/a3/a33ec641bf3173dda6d8c48d08516e4df9776a4e +/.gradle-user-home/caches/neoformruntime/assets/objects/a3/a33fc4451792179988c4a8b82a941719f224c45a +/.gradle-user-home/caches/neoformruntime/assets/objects/a3/a38b8c5721ba5b13547de6d8f8101a3e33846c0f +/.gradle-user-home/caches/neoformruntime/assets/objects/a3/a329c273360e55b51d051e633714456bf2a66a5a +/.gradle-user-home/caches/neoformruntime/assets/objects/a3/a396414ad4f8b797cc8c4b8f2f512ed96377b859 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a4d76d331caf75f0ffc11f2b76f12fbd4f70f932 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a4d790e99aee7b2e903e28ad6058ef91fb62b7f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a4fe07709e6dc99cdb378ce151f2547fb532469f +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a41b977902c5ca168d33bc98fdb2dffd348e7c53 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a41d82d0326266551006b4333af2e578d76b92a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a48d1ae5a24dbebe1db26cd5fa5976aacbe175bd +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a408bc74cd454d57a31301cca3bda13873193023 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a414a9cc71f59108f984b7ce6d564eee1b240431 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a442af18ceda67f72569a6cae4189557d9ce1c32 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a444db7147ed3eca9b3011bf263669efcbb7d681 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a449a2395b194c67b17ce2cba15b1e2958130f11 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a463398d76f6d6417f924afbc83faf9735f85b2d +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a484516c7a1a86a82cc393790ba5d0b635eada65 +/.gradle-user-home/caches/neoformruntime/assets/objects/a4/a4900087f0e8818c159758f7a4bf8b9ceef52e47 +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a5ae91369a1180c4fef1e2804d552a67332ec129 +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a5e571cb47ef1595626aba0c828ad816fe49a1e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a50e81c3a29f43af61bce72b51d81ca07d628ff3 +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a51b0e0d452ca8b345e2e9cd1655af0efa0085ca +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a58f05597ae455373587e39f5d04eb7035d37cad +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a59fb898d981e00949606be9cf50e68c3a2ae49a +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a59fcfbbde0b79ee158a2fa4a02aa4ba64cdd5f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a518e6df51f090ddbb0a191c8d67381c2810aedd +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a5335c2cf7877c146eee04e5b876ab0c01fe82d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a56598b71aa92a0da636522ddf2d6348f4d5a5c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a53959868566c96bd7ad08d1b3721101fdc4b39f +/.gradle-user-home/caches/neoformruntime/assets/objects/a5/a5917646618282d8d2383aa58b0bbf05507606cb +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a6b1c17e2247cb39045bb2ad20cb794260d9883e +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a6bc97e54bc4eaa1cbe8fd6b2d1c26359a481b7a +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a6c211ee8f24bcb87079a7c300f9e8f326e68531 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a6cc7f68228c91f8e692144464f48ece318e9a11 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a6e5bfd25627c0b761cdac06fd5f3dbd090da779 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a6edf57f2e84d56a45c1936f34f88da69184ebb4 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a6f81cd44a241516d9ce835e6f9e75e62436cdeb +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a60da14b911c5f517b63f6d5393ad1872b5d395b +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a60ea4981ac0286f4e2c6047a8b3e4b34ceb8a36 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a60f0eb2578fb8ab48b93a62c747a8d1c8597cca +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a62bc5a06775b97eee6a740d29b0dafa953cc2d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a62c6054fe1ac8137b22f29959b562c0d821b6ed +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a63e498f39177b4302708e005546b7a76a236870 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a64d1fcb71cb9e72fb7f357ece491408abb10e52 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a65ae450dc8556b241205ef5c529d9f0ad8dd3c8 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a66c9a44027dc9c57cef179b4896c5cddcb1da59 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a66f76a8dbe2e6dc1f9205597bdae1362a2b5cf9 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a639c2645183e94ff65f69d2fc3356b1cfa53481 +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a6053f9a5655e692555db6b0102cace489c86c2c +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a66698e1f9e53057d2f5cf8b06f21d807f84560c +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a675120deb3392f0b241f4e08df54694b20719fe +/.gradle-user-home/caches/neoformruntime/assets/objects/a6/a6706996801caa6b9d5dadd13204df9516d4ca87 +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a7c9f2e15fe097e97bcc6d129e7e03b436fde783 +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a7d2c7b475aa5e3de50699b73c075e54d27832e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a7d1972892b6af701d00185354b4a2b94a370bcd +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a7dcd4712921c960c3ab1b54fd873808f740da69 +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a7f2c0493e1888b320b546e750be202f1f94c50d +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a7fed36ccd746da48fa81923e59c6cfb8e9d4404 +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a76aebd510975008e41715574e8254e558f23f4b +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a76ef9378fc732b6df8902a9e1f1bc2ec6ce7fd0 +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a70223a6a2369490c3f0e524794bee4e1ced6a7f +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a784136b00678e6d4d640e30f8335d896233a33e +/.gradle-user-home/caches/neoformruntime/assets/objects/a7/a741083672035c9f7e67968b080b9a0f40b639a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a8a9c58188055618b0478696edfdeeff0c3da51b +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a8a396b310256d802c7ae2c9f78feb72d4df735d +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a8cecb35ebf4dbbc83a496e30d81e0f72a85638c +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a8e4ef9a0799f1387a102ddc9498ea3938962607 +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a8e8f828ff3d44fdec0ce34c12727a0e075310e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a80e43bb6795ac91852685ad6cecae10d08d1005 +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a83b6e8fd88753565bc3ecc1111975ce5978b7ae +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a85d759474ff252f0437b34fc609546610194634 +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a89cc74e28097546b39f393c21761e573f968603 +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a836d78166d52951fe5aa76cf4a9bfc582e07907 +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a850abda672f505eda68da08686ce5ba38e98424 +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a892bf72bd55a468fb49901d3c2256b7d9f0d38e +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a8008b64edce79bba47f0bee031d61e8cf993517 +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a8436a6aa1015791109dfce0ebc7d47399338c7f +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a87243e6908907bfc9b2493e1bc0fd52d551045e +/.gradle-user-home/caches/neoformruntime/assets/objects/a8/a844931912efa27ca3f73a5d75ad377536ffea92 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9b5c4e1ffc975834dd39ac6f6962fa91bce6923 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9bc27e80ed80eb61b9a505b52fc9efebd634453 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9d69852e104d8ba4adc24ac3123f3b2994b5f34 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9daf385a56f10ef7cf4ea8181b901b397325524 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9db0b7188ecc48d833866cb9612e3214b1854e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9dba324533068db41ed3a469ccb47cd8059fcdc +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9e03b9f5f11663bcaf413014f16a394c067514c +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9e7ab86a266a8d4bc24c22f70b952edcf44f2c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9eb67a51fe7e122f4f0f3e5bb248b0f4e196b29 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9f73206482601a7c87cf0b8f52808b1f069d4f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9fa12e80ae506b7f7982a2868f1c2a40f6abebf +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a90a8b4e705615b43cb446ea44239d3831a83ca7 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a94c7675f2449982f5cca00805f7cd15e77c840f +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a99e7021b3ad14414532a2c988728094a1e29967 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a923bb37ed00273cb70623f6ebb750d8aa701e52 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a942ba9178c104b54519aa462679458355db26c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a963d3d41b0c1e25a5cc54b28dc3893030756a9d +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a971ae2004798c14bc3387cfd1b89420092b3263 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a995a25a3c398b88a13254b84d0e2eb49ea35852 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9571a32478f42fb063c3237297f2bfe01a37795 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a9587f2de11c9f04e6768a296ceff44691d0ad60 +/.gradle-user-home/caches/neoformruntime/assets/objects/a9/a92635ffeed92282a716ce1f613f00ac40a85ae7 +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aa4b21feb56cca319576289f48d9eec8570683cd +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aa6c662548316c68591a63f568be1f997d162ef1 +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aa8dea7b0f0654cecfa03d9aa50de638fb7a70a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aa8f9b3b48a5e5698e351603e88195a4bbf4e038 +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aa15d9a312e90e9239602341845376ffc9cccab8 +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aa57d2ca2d029c3b042adac9e66838d981145606 +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aa206f99b69c5503fc9c970eeaeddea814420fc9 +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aa745efd1abcd1fa4c3b660d7e386f62df11cb7b +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aa952fbf823bf799bbd023de31442569ea8b6688 +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aa9154fee8d44d2e5c15a6af3dc4c0207c1235f3 +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aaa59e56572f20d1d9d80bffe36d3b362cc6f180 +/.gradle-user-home/caches/neoformruntime/assets/objects/aa/aad0209b6d3f6ca32cf80aae78d11bffef3d974e +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/ab4c0ec59a96c6300cf0f4c289b2f67898386c3d +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/ab5e51331dc78ac782db2926f366df1aa8e0ec1d +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/ab6dc131c164222811db82cdf79dcb5e661ec426 +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/ab8b23fd8937af4efc851ce3172e28d08f7bef63 +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/ab38a0de64c27de16e3268d86339b100665f31ed +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/ab154af601d656940408a300b8c283543b96b203 +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/ab689dfa6896e807f940932c6a26998cabf6b488 +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/ab4688cc0739633a0fe61ef747073fed02ec5f87 +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/ab7982b9c9a0bbc6dcf38f0e0b2f3b6a911015bc +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/abaf3bb7e717965cdefe19e08628031f7b478f84 +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/abbb3a6b3bfe83e1c3e75db04580d6bdd0adbcaf +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/abcedf57588b2ea2fe3fcbd1032e3ab35f23a499 +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/abd7d55ed1f4cefef84a935937a0893dea150a45 +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/abd815a18620001ce207923e377fac725e1764e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/abe1d7a2bd33767b9bfeade34a6b0429ba36103f +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/abf654cf295153c579021d4936ea496453cd46fa +/.gradle-user-home/caches/neoformruntime/assets/objects/ab/abf753c2ea6cb7c7a85eea69ec9c8487f96752a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/ac/ac0f71eb6911c31abfc398c0a5ccfe6911715745 +/.gradle-user-home/caches/neoformruntime/assets/objects/ac/ac04f54eda90242fb93e50ca699359e452cabe37 +/.gradle-user-home/caches/neoformruntime/assets/objects/ac/ac9daba9b389ece2a89554c6775601c9cec0909e +/.gradle-user-home/caches/neoformruntime/assets/objects/ac/ac048cb5950480e8697b0e4741d53ff62c2cb84c +/.gradle-user-home/caches/neoformruntime/assets/objects/ac/ac88b24961961f52fbaf8efc55ae7e260b6f4ad2 +/.gradle-user-home/caches/neoformruntime/assets/objects/ac/aca61491c1ed4f91b2f97ad221ba279cb7629579 +/.gradle-user-home/caches/neoformruntime/assets/objects/ac/acaab88f2be1efe9880b5698381432fb57be9c85 +/.gradle-user-home/caches/neoformruntime/assets/objects/ac/acc9d1a98ab8e680182ff461ff67aff4810d9583 +/.gradle-user-home/caches/neoformruntime/assets/objects/ac/ace85d419307a303d34d1d6dcc33a211ff4eb84b +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad1f801ad8279ca753cadaf910a5d6a9e271b09b +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad2de743a4e028d852f46757f5a662d16c203471 +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad4fe8433973afd81632eb5a465dc3354fd4e391 +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad6af4c6e7bcff6db24dda95caaa4aaff6ab47d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad6cedf7f70cecbafe6e20639c166942454f4544 +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad32f51bad7a68289bcc7270c73f109bf551f651 +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad60ec330aac4c7f9c666ec626154eb78cd56139 +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad95b90dd122aaa98a8f2a996cd3fa13ce33540a +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad001047a1b15e067500bbf3c0cb90095eb69684 +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad2675a08adbe28d8a6247a36debfbf70983b0ca +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ad3224028a3a2b7ac7fd1df82349d4cb61a06fd1 +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/adcae20609d1f828a1225af5f604f72f5c4fb117 +/.gradle-user-home/caches/neoformruntime/assets/objects/ad/ade6bb1df3170ded24773c992324c9cd314248da +/.gradle-user-home/caches/neoformruntime/assets/objects/ae/ae3e9a8a423c4928f74b0e45cf57e95fec81dcbe +/.gradle-user-home/caches/neoformruntime/assets/objects/ae/ae03ecde88fa08a7ad611f4a795677ae60ace9db +/.gradle-user-home/caches/neoformruntime/assets/objects/ae/ae22f9af9ca8a88e0bbbe6b61088d8b9b1653572 +/.gradle-user-home/caches/neoformruntime/assets/objects/ae/ae40c4b39e59cfc7152b7ff647150e7a5f184bef +/.gradle-user-home/caches/neoformruntime/assets/objects/ae/ae60d6d4f582fb3557d5b6b89946c9d494dbff5f +/.gradle-user-home/caches/neoformruntime/assets/objects/ae/ae86f42987cba055d12f0a0df20048cd4437dc9d +/.gradle-user-home/caches/neoformruntime/assets/objects/ae/ae1059f3bbf5308f127d5388afccf03a8d2cafce +/.gradle-user-home/caches/neoformruntime/assets/objects/ae/ae1109fcfc123daedfb0ead6df24cb1fa051781d +/.gradle-user-home/caches/neoformruntime/assets/objects/ae/ae6106cfedda9b9d250fd193f0487e1b3531d6ae +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af1be61826d289bdae090eaa58dd4cc257595f2f +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af3ab843fdc34475c4f318f9cd4cb5831ead420c +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af3b022b44ba0f87b1b119284f60987bd4d9ff3a +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af7fdeee060b5618460246826695c45b17fdbe3f +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af28e43df0b60875348cecd1c1f65e2325b54204 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af78ff66b6604b18641020963f4a6f99d733c5ab +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af91a350ba5dd980f311af44d66c99a79cd5b424 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af96f55a90eaf11b327f1b5f8834a051027dc506 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af129e6773af0e7219b7f3dcbc2ad76449232151 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af751e5757eb23cba6e7bec6ecab54339d801a18 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af7899a8835e361d8205580f1baf234f07354e5c +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af31586c0a6b38bbf027309b696d560bbdb80c36 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af40835f0081df5f78f07675ca07d8224efde93f +/.gradle-user-home/caches/neoformruntime/assets/objects/af/af770815209de8c8e5843d266c1610c04d5d58db +/.gradle-user-home/caches/neoformruntime/assets/objects/af/afb0c87d24c7b8e9fc5eaf31b4fe1df4aa7d536d +/.gradle-user-home/caches/neoformruntime/assets/objects/af/afc9fac5422fd61cb56180a712953332ec0918e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/afc5421bfc5a893d4431489307c7d075901dec52 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/afc9566a2e61b2065ce99bb1d5e7184b65930408 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/afcad12625ae39469e9e2053d12030e90d3da360 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/afd59a85999a61b606f1125adfbfe1de02b62a3a +/.gradle-user-home/caches/neoformruntime/assets/objects/af/afd964f83bfa6f316a51a179eca98b2e8222a262 +/.gradle-user-home/caches/neoformruntime/assets/objects/af/affbfd1a44bb29795b914c1f7dafbaae7b652194 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b0dbd07cf2dba8792a57e8c1930fdfbc13498496 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b0e3b71f049765671bc27be96724fb5701afc4f5 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b0e38d02270299aea7d65853662456bb1640a5d5 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b0ed9fc4ce57b96c05c956b92fe077e8d7c448a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b0f1c0cfe2924b1e794508b92a5aa179d29ac1bc +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b00ff5869490ccf7b1517413f4c7783eaf48191c +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b02f3e6b3857de2ab43035a0127b789347ae23ee +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b06e087e36c5ad1e3e32179d2d712d2bc24425a0 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b08f6e02b476a81fc428679c62c7039027199f25 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b023b1ddac5e027086ef04a9da7234e73a4502a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b035a580ce1ce76437612edc529ef31c569be4f3 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b043bbd9f8aaceacd4dde89d413424c80331c72c +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b050e71c61b315361a12daa55f5ae9533f017206 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b0051dda98d983b6b5c1b357eab1b78f99fc6260 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b054ede6e4d3fc188301b15dc0053f01d36ee38e +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b0158d4692687981c7a54fdd56113cafb673673a +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b0810a28f4e830280e26a59c40cc1bb12ba82e9b +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b0386400d7a47f087313bb7924b75a579dd59e32 +/.gradle-user-home/caches/neoformruntime/assets/objects/b0/b04022583d2d085a769e14ca7b7ea6566f326d58 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1a5c68cc2ad876472b77ad25d91bf5931a4254a +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1abbf3a7eebb5b31e2de443f1605f093527220a +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1aefa52f4db2a7185a0a92f5d0f427015c5a95c +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1c1cb788fdba32f1326e79ad1deb3e863e544f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1d2dae87eb291e2f48417e767387014037b81f4 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1d5d976d5dbc91c986e6a70ef1297c3afdc9813 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1d714df1dff66b11a3fb2bf95f56fd3de7ee542 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1db1090e77c094084f47776189e5bc849c77e12 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1e914ffc0d263e0cc0304f0dd182f1c76d2831f +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b12d1119fb5401538fd56ea7aeba89c80546a2ec +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b12eb3b7df1ad600424bb01975e363955deccf8e +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b106c50d7fefaade326d0b1eeb4ae3d5a8a6ad99 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1208f6c3156a9f65c1063759392b181cb83d2e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1217f0690956ceeea7fbbc3ffc4160e038a05f3 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1595a8d9aa1455d635ba9e73c1e4f6825ebe073 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b1919c44d2336004abd33f9e8812546ae2fa4de5 +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b154434a584afa4ebd7256be9edc1453f77eb42e +/.gradle-user-home/caches/neoformruntime/assets/objects/b1/b18614963bb15838d348d7fae9de8f1447076098 +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2a2874f6a4cfc613655bd5d885d21f6e4d09632 +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2a6162b783a62cffabc2bd58e79e383b5c70a8d +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2c7e62c6e45bc0743c6ee0e8a2d127a23c290bf +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2c8cba192539a413bcf2cc86724f19fa843199a +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2c137da3b3c4a462af349c2e12eaf54e2c6f86a +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2d0d39d20b6c580b61811f2e4a907d4206da8ce +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2d4fe875f5a729c8eb07eafd7ab77ea51b890f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2d9789533a44a16a09fdf9c4a74a5a0696342cd +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2fa3db0c8363b9c454f9a04f93eebb11409229e +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2faf0571510850c8ca3471181b6ec7a1abc83f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b20c57049e28e3c972ed280532f021440e91fa42 +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b22e8e1097ff3cf4456c35c1e3dc24b3b4775eb9 +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b24d87d2696bcb80708dd122d6789a60bd68acba +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b221e56eb46371dc460f75e07f550042aa27776c +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b261e1c5fb0e74bb492af89931c883a3d644044c +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b272eb3804cccb3cc691c228877717d9c6ded059 +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b2006f7883f10123e11ae1e81c63cd6b0d3d478e +/.gradle-user-home/caches/neoformruntime/assets/objects/b2/b29373839b9b8ee96afeede958312e7ea783f660 +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b3aa8284b5d1df72957e7a9d7947ff0dddfd7fc1 +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b3b5e5b2d89265d37de563ac906f951ff98586a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b3c9d34b013c9a3f50614b52e57c28b279d4e31e +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b3c9e67bcaa5889bfdf0889fd09210c381c63376 +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b3fdf645eabd1e6c1334bfb54bcbde3576c59b92 +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b32b5de6ce7aa2c755411f8bd2eef6f430f13713 +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b36d24996ad848b9c33513b59ebb164a57952a5f +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b305daa318fa7db0097813d10bce1b1114ffd62d +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b334c8ab1abc3ffa233bd612074bc8032c9b160f +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b358e15873b87382205f737919d36ab262b5fd9c +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b365df38c3a3e81078686eb07d581c128615ad51 +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b3622c3b48ea9f018d4eaa37d7ac59958b1b9626 +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b3772ead112bd894903522889cad0c748626a004 +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b30260a71e81bc8b912ded848a516d3aa93a5d6d +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b391080c22475f5196be93af0d7475cdb78e7003 +/.gradle-user-home/caches/neoformruntime/assets/objects/b3/b3032934878b774754d0a10278869c0851dd3a95 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b4a3ad988379b9e11f55fabe16066cf28f682d90 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b4b28147d0656f3fb171ebbc276165b32031ae99 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b4d1c623eec38d8b55adffe95d43dfb6e9e15872 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b4f74b6d59ef6a8c374b5362ff3059d7e130cf34 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b43c5e1d5313213c693e6fe91edbab1fb7f0d955 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b43eda372b248f213e11aab9f2ab24dc996d8caf +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b47e7e08ac51bfb3e0a51f9539e3661cf82b417c +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b48dbc89aae64e280876707e065126924717f998 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b48e2b784d4abbf98f902ee701c84d5671d2a01b +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b406e1c10c0cf34fd943dddd2cea5106dab53ee9 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b448b8755fbb96a437a626fcf5d98e2d690255e2 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b479c2b39fadb1211c87bc4857d2b15d269f63bc +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b487d1bff4d74ff09603ee6fc5134c6d7382b768 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b4791c348e29e6b324fd00516dce885a6c2cce33 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b42538a11f5ec415ebbd996b6d8dec26d567718b +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b452488d314f1bac96b7d4a21f0fd58acccf2ac0 +/.gradle-user-home/caches/neoformruntime/assets/objects/b4/b4852691fd3147b5b14b33d421bcceff2dfdadbe +/.gradle-user-home/caches/neoformruntime/assets/objects/b5/b5a26befa99dd92538b8fab5cd8bd8e860c84670 +/.gradle-user-home/caches/neoformruntime/assets/objects/b5/b5b4a83e60e890473ec3cb997b645ebb8c9780d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/b5/b5c68c6e2aa70b651181195c4e81b6c07c5cbe52 +/.gradle-user-home/caches/neoformruntime/assets/objects/b5/b5dcfa7035a3d509b1dbbe85b1f2deae0d9a087b +/.gradle-user-home/caches/neoformruntime/assets/objects/b5/b5f9d965c227474231582b52f14f8167b97bf476 +/.gradle-user-home/caches/neoformruntime/assets/objects/b5/b51a2fd22f555629750c3261cece995a97993fc4 +/.gradle-user-home/caches/neoformruntime/assets/objects/b5/b55ef6a117639e3d8bee344183dfc6c65e8036c2 +/.gradle-user-home/caches/neoformruntime/assets/objects/b5/b511c74ca73f54d9e698f560fdf7762f9af92f16 +/.gradle-user-home/caches/neoformruntime/assets/objects/b5/b558bbcbc8b5d9fc7d992dad4000ae5183bb623a +/.gradle-user-home/caches/neoformruntime/assets/objects/b5/b5243953e6415eadf03b735e12187736eff4bedf +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6a49b5e947919c47d218697267c383c5553047d +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6a02136a675403d2efe5f139267174d23cacca0 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6acecebe32d8dcc80075de586df9cac260e95aa +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6c6761b701793ad12c4cad6034861c3e0b9f898 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6cbe93c68a94ee93f79301307b024b864a888fa +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6d586ac6b9ba1660b8f5c49463ff5860fc26914 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6e8682f1b6276c1e81c5af3516613a874c5c532 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b62b1e1bfdb2af911fb49fffd66a0213ccd5b50b +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b62ca8ec10d07e6bf5ac8dae0c8c1d2e6a1e3356 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b65c21fa3dfb0b283db7f247f3bf7961832916e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b66a833fb3975e5febfecd09a25400c1d57e1fe3 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b66b02ae251364316a87c04d23ce0818818456a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b68a7ddc65e8113ce2522ce53bcf28dddb198a15 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b602c12f6fe243090375cc7a806c28f5c0c62429 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b683c8cc2aeb709b2c42535de5fe7f86bf6399fa +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6955f323aa2f2eb7f6b480c9d2f053f6a314b50 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6077580d5acce058bfb8127b83a2e7d7a45253e +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6366428d1b9fd074146ede74e0e95efd0330063 +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6422999a415318b44ae4ae14d78a784fde2c5fa +/.gradle-user-home/caches/neoformruntime/assets/objects/b6/b6728209a0fab9be659084ac19d0204fc2407711 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b7b9a8feb18573e4ee4f34f81b72339ce1846050 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b7ba45026cfcc13c7bba3a7f11ae8c1164d77af9 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b7c8f20c690b6e74e665979afad90d13622507c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b7c85be9fd490e33bdad516b08d9b13bc2021e5b +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b7d69f7b5bb8c1b16592f831a7eb21b8ca35bcab +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b7ddd5ef5c3c487e586827bc9a879261e397c726 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b7f1a072735a0a052e63d19a1c119860252ee6c2 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b7f1ab64a5f272240bec3288946a37004d5c7939 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b79e4086587daec752f015c8f89cc3bb8991a70b +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b726a2355288a8f607badefd74a9068f1bc734d1 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b778f789f90ef9f2b82c9c2a33a3eec2d47fe356 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b7465f5c97e1056f5b49b6b0a7bb5205b21bca26 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b7835e5b2816a6ea6550a98146afcc05a120d00b +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b74799d114c708694773ecabb007647c99973f35 +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b75434f8a7d65c44caa508c486d64440bba01a1d +/.gradle-user-home/caches/neoformruntime/assets/objects/b7/b75918507a7a30d84baa72b6279dfd30139d956c +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b8b1bb7a9ec45c9013ed3ad51ce60298b3f20d4e +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b8bc43affc8c05c158c98502904005b2d876cbb7 +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b8bdf3ad47c431c1da576c60eeb018754357edab +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b8cdebb74d1e26e8b8a312af1575150b6891a49c +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b8dac8173742660aa660232450f635945f3fdc1f +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b8e34bdc18ed5ddad772a8f5b2017d89dbee6c02 +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b8f943d148af90b760a93a03fd4da89427a44986 +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b80b6e9ff01c78c624df5429e1d3dcd3d5130834 +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b83f0cec28f0b517507b54b879bab7d1e1f52462 +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b85c213aed6546ec8686f23f6c067886c8877ef3 +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b86bf2360315b92c4585f790bf9e73747407ee4b +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b814e7cbcdd572ed7f926a947250d009f206c07b +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b846fade34b2a51499e24134c5c0536bb8c4d49b +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b893fcb8cd5a120eb443a6fb6cdf9ca1ff9ac2c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b8417bcd4ff39f94b5672a29d48281ece77c7abe +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b8990fb5454091c22e0cb44377a3d113781b316a +/.gradle-user-home/caches/neoformruntime/assets/objects/b8/b841029b8b8f260f0f5fe6032e5e163330bf80ab +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b9a550ba1e028c027557572aeb928b760864efe4 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b9a13347bb6c94d96fe798668415fd04092915f4 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b9c97543573aea0b796303d4e51a2268dcbf0626 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b9dd3b0531aede1c5887b634fee63609e2305723 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b9ddc9980e14d1e32e7302b2ccb7ca03e7d4a624 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b9e4c8f0f63c3a9a0771bbc4359234d97339d008 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b9ea7673485aa2713eb365b97fed4a32460218da +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b91c608071dcd107a053cc4675f5fa8f58078edc +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b93dda954ca171b3f287571a1ea33cb68ef6a300 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b95f32ed10e41cb19986179bcb35fad4ee89e146 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b97c3c571328e5b87c0411fd85ca71f887f8b51c +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b97cfa83f2be06885ce9419522ad379bf96b90c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b97fba61ba4a50a873a35fe4e84b541180bf89a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b98bc9a1058d07a2c978dda367c43e37b649ad12 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b99e052c58dd8a95606292a1dc252c2a824dbf40 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b99f0a6c3e186e4a1e5d023d930fc811bf8f9c74 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b990d14cb77e7fc884bf0e098785385a520f0c01 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b9099a6d04dddc47ca2c01f6bcb751cb86b38d85 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b981631cce8e84f1af90d1cce0bb4c23b66759dd +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b9361288a03fad98053bf519ea7eced31e072099 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b99889832d7f9abe35725506e4cd48075e25f957 +/.gradle-user-home/caches/neoformruntime/assets/objects/b9/b919065291bc2d0632a8c1e5292621c053744acf +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/ba2ba79529033573f178e585e77c44c513a8f579 +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/ba7e3fd432297b977d426bd4a36d7d66b6cbaffc +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/ba9e27200653712bc3396983774bc61d4fc88b3b +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/ba051eb9851481f52f1989bd2f42e3f9dc6582f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/ba74bb7c15c3126ae596d2dbe829738f092cc685 +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/baa42befb3ade28e36a1298c08e0f822dc695907 +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/baa663c69f4d55239063962c4129a1ef9bbb905e +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/bab935754ea614fb07824020a80b332d6dd24537 +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/bad77746f6fe8a380ae5c6c84a27f8fd33f16aef +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/bae2d98f1c2393ae276fae3b13e9da3972306972 +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/baea500e96149654b82981620236cfe484d9648d +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/baf2cefc76fb045e9e42b52e7000945dbdf36a09 +/.gradle-user-home/caches/neoformruntime/assets/objects/ba/bafb15c3d188e1425c0b6428551a14d16b320d9c +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb0c12ef58b5dd98f511b559567f275ffba6a477 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb1c912446199a6b0e45e18c6d5ff586f6261610 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb3cdd562b205b4dd1f9a8e961fb5786006493fd +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb5b054c2e7e01baece3b8c1b3d07e394da270b8 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb5cc7a1ce12e97c787161d158c8f3a4232a9020 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb6dbc8a6a2c9ef7ea9c053bdd19344015f518f5 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb6f34150e416c1c9a335a5232ff561774bd5e10 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb11bb4bd7ecdde95036ec1f373413e824a84c80 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb16dc8979255140a90592700b2b3d82c30a4e97 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb56db9d9bee7e10519d8010ccd350983ee4be87 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb106d048210f17e8b94d72bba0114824254998b +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb234a9c051cb4ed4f66900ac9e6b49f26f22dda +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb431f5babfe02d34f3de4bf8c0e13bf3eda3a8f +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb9658d1bc476ab148a13a9c13f465622797eeaf +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bb1455229d719bcb9a50bc739d3630a200d37fbb +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bba658e4fff93192be4748de9b5780e4d77eddb6 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bbb301a6ed65e5e92eb97b601b9ea9979324bccf +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bbcd0a021e237c25380a29feec39f3dd53f2ad92 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bbd0f09f68ee1b9ef8b55906d1124e745e21bf20 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bbd2e34c38f16149b093d2dd44883fd326fc4d33 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bbd08e5b85eed19819e376c79f01255b62ae52a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bbd633935e9ad4d0dcc2a36c9b3b78cea9afcae9 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bbf9c0a2d81f384c8276295646a54946e2491b54 +/.gradle-user-home/caches/neoformruntime/assets/objects/bb/bbf7022f66336d12225d59985a57e6ffadf4544c +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc1ca6e1cc863fa172bb09a0ec1e3356da2809e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc3a4e3c4151d4719f5e8de7e2d58a523b70afa7 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc7a9788a740e46a10237bad9c95b94d777adf33 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc08fcd33d5e5c03602972455ca6b15d6023a90f +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc35f9cb62ffb1ce4181c65179ebe3f53e3575f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc040fc717537de51319dac4a77a5312a3bdfbe0 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc83ef53bf163e45854a4e619c2c8f20017be979 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc98be2424e6d38791e6bbbab6f33272147baa82 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc187df1091f454b26f9b0b503bf12d557239770 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc648a153191d8490fbaaa49e89c62240c6b2936 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc9216bc46954a47659704667c8298a350177a5e +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc11027f0c3aabe6da20bf3f4ef734f96c6d9de1 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc85675b9f81497d4ffb13d88dda3f57d42855a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bc490285ee3c28a5ad8dfadd42a2b6974690a430 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bcab7bec9fc226bdd88f07868f1d9ce1834198ff +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bccd7d6902c9f32c6051ee7383886dbaf88f8632 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bcd0f038e531be361b2aaedfdce952a76bcad3ce +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bcd162867f2443cb8c7c6a3486ded73d97f089e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bcdb1977793eda739217da89aa7fef1cc9846115 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bcdffb543b84ec8de205ec59e4de846677c88878 +/.gradle-user-home/caches/neoformruntime/assets/objects/bc/bcec1afc6bd7eb00ecf3706aad798726414b6ee6 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bd0ed194271946aa0152da7276c919b49a8dfb82 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bd01dff39a7bd1e0e7f6847f7aee981f157e4f94 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bd3aef7f367a4db7a4e0bf680b48280e45ddaff3 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bd3df414a62eeb543b2e6ff2ee3ecad44412875a +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bd6bd427d755c0c9df7a342aef28f160aac36fb1 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bd25ed102ba7be60a04be404c1dc46b97bc0b55a +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bd76df5c882dc4b65925a8b25c0e7dbebef9bb2e +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bd090d4d049f06217d1436552525d96ea1fa53b0 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bd957c218a9270dd77d10b98712b995b61d010e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bd8311140a7dec4319db34a00ca8128d0bc7f344 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bdad81aa76a53149ac316e730b1d18977a952699 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bdd5aff78b8af4b8d42ae475a91d0cc5d2f8025e +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bdda303d3448d7c3d0db185515fb2ac9c4923470 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bde5dc6ef9a98a6ba115d6841e57c9585fb73381 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bdea3c433dfcd549f2e20f2ed9ab90c3cde71d83 +/.gradle-user-home/caches/neoformruntime/assets/objects/bd/bdffa80cb8875b1b71cd80d07d05aa642630211a +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be1aefb33d82a26876f60e3aa33bad384bcd6d96 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be1ee4c88215a9d0890ff9d7e1a0474cd0cf334f +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be01faa85e08d3e52e94dfdd501c26f479a33861 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be2ca34c27adf5afe28781419ac55e015e48cf3b +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be4eaaa751da35d60c863070f1fa91f9151c6f84 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be6fb471361325ec9692f49d41e92de7996474d5 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be7e1c6b7a0ea50bf397e828f91359e61cff9a5e +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be8a0aa034bc6ca331d04ea9e0f78e9d4b5461c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be9b14926936c4509f7fe5002cdfbba3b2752d82 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be9d8ea24b23fcc0e192df2698146b3d02451c4b +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be74b375d7adfe9470afec83707cda6f35275fa1 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be3621c8da611a9a46ac6349f3d611ebbdc3e0e2 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/be927139e2936139d4608b8a7645578f95d75dc4 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/bea9b17990e1d513cab127ead72c8f655995109e +/.gradle-user-home/caches/neoformruntime/assets/objects/be/beb7a9ec0d0e6f6d5bf40f90b563f0bec8b1f4d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/becfde3a25426367d26296620690dd0a312197d3 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/bed90f9d1672eaa5a510f4d504cd8a614bd83258 +/.gradle-user-home/caches/neoformruntime/assets/objects/be/bed712b9f647abe74847be3e7b09703a9447fd4f +/.gradle-user-home/caches/neoformruntime/assets/objects/be/beec370278bea51ecdf462f08f67454d3ec63eba +/.gradle-user-home/caches/neoformruntime/assets/objects/be/befdf6ca94508a93e52b5324abb793aefef4066f +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf2d553ebf0778934013d2bc07d71c35bf86f851 +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf3b3574b32a1a2f607cbbd4eb0b88b9e6b531c1 +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf5fa161c4be705263329bd3bf2ed482e84bd45b +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf7ad9e27109632f03424ade68c3e4330e623c82 +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf11ddbd35fb38146a42e1d64938979755e8c16b +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf464b90ecde0e24b04576c1bfca7cefb44c6a82 +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf544e65cfdec0512f9e89320d0453f94a5883e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf3558e6fb0cacdf87d0d35f1a470acbe5842af4 +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf5787e78267cb28236bdde3dd7ca8483c237b89 +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf6337ce53c58d489fc2be8bd8681b109338fb7a +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bf6636f1d798fa50b9372365cc2664c60cedc008 +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bfaf9063e4cbc2b4b0ee1284ee2a56b53e02e6d2 +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bfb1049841a3595dd8118575db33de1bb482094c +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bfcce3651ca4c42d72cff71858502eaab9b9e6bf +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bfcdaf1edfe6d62d9ce49f150cf847bec99136ac +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bfe2ef49b5ddbeb0a394baead702376ef7828e18 +/.gradle-user-home/caches/neoformruntime/assets/objects/bf/bfe4b85a831fccf945b8e4b4349b0299e42ce3a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c0b0636758ec85bd68ee8f4f9c7f79cd94daf2d2 +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c0fe37367ec8507b7b8edafad6a4ba066b0b97f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c00c9f50501b1880e577822e6fe2cefa64904c8b +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c03ad485adf7987ea2be20207be558e23d904a62 +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c05cbd8c88b5878703898150e157af88a29d8091 +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c05d9ec6189da10f1a353eba44b2dd848e76ae15 +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c07e7288103269b18dd00d2d701bf627c6d8127d +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c08f6bfa8c0008932a3ebbd73f7fa32964802b50 +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c09d818b23a4f78445fbb5658ae350bbaf9ac4da +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c020d240c75d0f7722c8a9389e9360adf0b141ac +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c0135de2f265a4303a542d8edd21933642077e01 +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c09538dc271842c3662d7c60cf9cd28713203b00 +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c0696332cde4faacaaf2f827c0112221f4f6cc14 +/.gradle-user-home/caches/neoformruntime/assets/objects/c0/c0333979878406dc6267b21eaa1334d7bc2d8b5f +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c1a8ccb4210c8f6cd1c2bc0766097b0de355b516 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c1a20b3df904eb16e6775b5624cbd3aa8619d3cb +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c1ac1e175c6455070b4540ff9d16a1d5f84dd7d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c1ba1a3d8f7f9db964d9658fa04015ed100d0164 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c1cf9cd1fa97cb04795683a80959be56b5a08374 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c1d3c3ae071526e455a980e1ed0d2a408a0e0235 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c1d4af3dcc869abd8ed39ac1d5eb59e3678971d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c1e8c5bdf32f667d23ba1790aa1c09ac1c7b21a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c1f9797ddfd38e67cbafaaf93f54f191bbaca722 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c11ea4960af640d6ef06ce9be0afa8f839fc5b9c +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c13d499b09561cf2e65e8038e987a678fe17ea23 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c15ef07564e069980974af309418847e5bcca521 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c15f4576c221d1b81601594fc2d21cdda5b14d0a +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c18b4929798c97565c439081284992e7fe70a133 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c106e5ef000809049ce7d56e858898255cff9223 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c130bec73d7395b44bb9311ab0176f97512861b3 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c135cc7d343007fd57558f70c787f708d49bd268 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c148c0b10a397e94c198cc222b1dab5aa21ccb75 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c155f4bf614488fe08629738629061914d4c6868 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c167b27c258d1c19bc098ab30fbc66222821ff93 +/.gradle-user-home/caches/neoformruntime/assets/objects/c1/c10026fc83fb700c4becf802461ac480d5372422 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c2a7d28c80b49b04a1620a94a17405543a6fb1f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c2d4b125bb2d0660017b0aade42af9805edc6586 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c2d26f2a784d95e4eee16ef05a070004003b6bce +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c21a656fb6366c4ad35f5be74ebb28f378fb926b +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c22a772466a47677068b27ce20486ce225944ae0 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c22bf2b418d0ba99f79cb97a9bf86b68904e3096 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c22d2c46238f1a9e3da7b311721f815217139bd4 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c23a02b5b7a068096d9010236a89abe2fd277fb6 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c24bab9b91cb2930736f84f7cbceaeb5d494e7e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c25d156970589270b585aae5bffb794c9017c864 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c26d0bb38d6891211eac92636de7e1cba146f6bd +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c27d0aac4f4c7fdd2ff872f1d900f711582c2cd6 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c29d44c116eb9a9f2564c5e2933e1f62d126b416 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c246d102d0ff657a94b8a39f3ba6cf31f88e06ff +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c263ae99db287bd803591b0b6cd7865435e6c54a +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c268ad3b6ddf0005ac1270f745300faaded9fdf8 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c286b600d5c46356f53f2d44d6416e036704c933 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c2843d6e69e87af69def41ee423488e6aeefdd76 +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c20700ef00948b6509d11e4aeee9d4548bd3d11b +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c25705e16f1d51a56a2b0a4604250b3844ceadcf +/.gradle-user-home/caches/neoformruntime/assets/objects/c2/c263373729022241c21e32693bef04fd8f50d476 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c3ac093896099ce5e5c316151af77bc0679590b1 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c3b01e40dcc6d8e4d3e5665a3ae27e40c0cce082 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c3b0749ea9403ec1232290fab4d1bc60583857bc +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c3c6981d6350eb5661c4e8b23e97c4370f8c0f45 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c3ccd01c24a20096ac82f97e563f0192e3c58917 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c3d7903d6270287adc7005d45d6b5c3fb06aa20c +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c3e6d3f34a7221360ad11d18335edd6709df4609 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c3f259d3bd0f8c1283d1bd4eaafea33266eefa7a +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c3f51078a2b014ef3dda8ce7ef4d3f41314a58dd +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c30db94d36d2d6b2d4475cb6bdbecc10a323a019 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c31b0dd62eaec2708e791e4e04c48813b1cdd895 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c32a64f11f71d0aeab17bb772fc2cc500debbd85 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c34c0e19a013b68682f3380f342f6d7c1ebfdf39 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c34ddf61a50a311edccb93f462fc5d3ebbb65416 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c34e09b000a60a7250e483d9ccb55e4f084c9ba1 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c35ae74e4d097c52687f23e6badf2b2e69eb5d2e +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c35e83c1f948fbc1bbe0258e96e303ffb9e1c54d +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c38af5d3701e9803aab0f5e67089a923c2f2c172 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c326c225c104b675adf31bb5536a23ac7f2cd862 +/.gradle-user-home/caches/neoformruntime/assets/objects/c3/c35193da8c9f0b0ccd1080bee591c645a8c4ef3c +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c4a5353b575600774c0b2fea037db62a8b006101 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c4e757abe67ec75b2ffdf808bb904327987980cd +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c4e97902ea7d103a5821d922a921de27c9007cd2 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c40aea24787b7cce0c7fbcf950cc00e3f4c83ae5 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c40b35ce47406f220ffa40b4e22fd766149e03ba +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c40e688556920a67cf8a412b61f3627bcc082586 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c43c957559b9b464807d5f16009015ff774480cd +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c43e28df256051df61e03b9d3ef5908a6c933e88 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c43f8116f0e0571b77d62041573f27e263fbacd8 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c484fb5ed5d3544ab4dd8d6f5d27ad2c2ad05de4 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c4095e981c62291381eadb5e361865e90630c8a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c4177c5fd31775441aba7d25b863fa138aafa191 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c4355e4f9ce3a48d4a8f89aa56b1921539581cfe +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c42943c1fb0906b6bb214bdbcbff46b1b800f854 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c43077ac1f9ceda7e9e1c152f839baf207833aa8 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c45746a7f413659883173ca80d588c42992cf7f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c48194bed96095d75606b69ebb680071579e4287 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c485999f9cfe0e90a41a0c19e590c6ba56bc7035 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c4306160b2239ff1d3a078758074f49b0b336535 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c48966208f3b003318f411638e0319609065760f +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c420508565c4215619ce66c6dc090877fabf70b0 +/.gradle-user-home/caches/neoformruntime/assets/objects/c4/c4484124368df54edc3e384a4b09c11d34eb465e +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5a16dd2e2e184a4cbb1dff2eae8ac5eab110f2b +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5b5f593c0d8b5295fbbbe878ff785ce36862185 +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5b42cadf05e186fbc144dbb25eadf55fbbf8d9a +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5b68eec5dd33613b1fe34a6fa80735d6301551c +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5b4939282b094f0a2cf6d3dd2d0566854551635 +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5bf526d1d9d8bba0147c848143ada28fc387a48 +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5c6ab39ac52459ec0738696b244baf231387d2c +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5f10ae239087e3e036a1db50111b0d44d6ccf76 +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5fa55a050ccb8299a36d4870351271d5e91ffa0 +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5feca44b10c0afe361f2bb6b5715d71aacc0422 +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c52b2abc32f6f203bad20ccd1df41ea93dc019e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c57bd0d8a759d44a576f9e39eb8df0244e1b7d94 +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c57dce9bbf07003810a36c0f790cb130bee8030e +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c58b24b5258f00a5df5f7715fffb2d196b25665f +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c569d892b8e71e5847c39baa1aa2f2a155d99e4e +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5899fcf465776f0037779a16fdf1854fc8463ab +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c5936d5489a27289c324395d43decd54688b1d64 +/.gradle-user-home/caches/neoformruntime/assets/objects/c5/c58202838caf73242f039ecbcdafbc10f7bb9111 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c6ac851130fd51651efeba38957187c85c8b4b29 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c6b68d3d64ec89be3fb0c628a6a5d2d5868caef7 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c6bc5cb3fef969641403883749b77dcbbec96784 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c6cf97c199eb5ba33b6a4c760dc9874a5f2e000e +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c6db7a5dfafa7c3b53cdaaac1efc7deeff7f8aa5 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c61f0e983f4ab8acf150ed87805127aebd05b14c +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c66e36fe4bd15fe566c9de47b22b0899c39c36c5 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c66fd6530bb91335a153f4816641e28a3bb1c316 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c67d6555fcbd313040687c2d8df3036ad4c18275 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c67f469ee3d43a440ea5da854f4a3a52fd13f91a +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c67fe48974aeec012fc4c3bd21f8ab307b890811 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c603db5c082e803c30e5fef555777143f96fcef9 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c632fa24db616894c46b2011c2f214853924c4a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c638b991376f596903f7a6f58adf02240e3ef3fe +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c650f698e8baad90404da5eec4a26b70380c3551 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c682b6ec9d7d601ac20378a4e2340670dce350f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c697b8d40bcc08d02fb14080bc0677554982be5d +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c6405b145de8a51fd46d41eec8fa6082e29ed18e +/.gradle-user-home/caches/neoformruntime/assets/objects/c6/c6683dbfa0893186a8a55cca0637bbe742393123 +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c7b0c5e4d43096e06226f9e9413de71837f95baf +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c7b24b0ca5d282e8c1a3336ed6ae7979bae9e1ee +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c7ce80fe971fc4644d149da5bf4756181468ed0e +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c7d7f137752824568b828e45574f7bdbdba12cac +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c7dfb6697b44e539ee6228e1de125e306f41f339 +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c7ee586c92e10e7edca3750eaf12c847722c27b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c70e4711a8ea34ab1e6f96382974be21fa612fa1 +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c72dc968c642afa06e6e93d996185ada18f82154 +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c75b3bd6889c6bd7cf8d6717cdfbaf711c1e4ee7 +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c78cf4fe10dcc6e3e47b01f7008ee8396b02d2bd +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c720d92eeacadfda441bbb4c1dc1b28b575e23f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c736e96b2f2134cb2a590834152ae1b3b2af150d +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c740cd0075574d1a6f07835e890fe1b584f6a81b +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c748f00452be1c4bda28c3f0e672f7ffa59c027b +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c756a5998391027b765f39e0045ef41322d8bce7 +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c7541de2ca425c980064fdac3a933594b4c76eaa +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c71079f0790272d470082ac4f400df31e39e7c4a +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c78106b18dc48d6cafa288f4a1d4ba1084fe023c +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c78245bd99917dbd09351f151c8975230867eaab +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c79241eee16ad345aba39b93f6e35d46c679fb25 +/.gradle-user-home/caches/neoformruntime/assets/objects/c7/c729001616db9a277987b9ffb176e4bc9dbfca5d +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8ab43d9d879323c65366ff56387d9c29cf3d64e +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8ad1ea1832413257901c65151f88c00e2a4cf4b +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8b37b6aeaa041068338a1725fbfd8ab44e35953 +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8bb74a4365de2128cb42c52f261f6e260c5db0d +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8c78d167a008f5320cb7112e00345adf6eb39eb +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8c992df46642c5c27a8c713c6078a08da1693e2 +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8e9f431216b9d9d1e5f94be6a080f7434869f9e +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8e64c102f026145de1da692d73ba8bb400ef025 +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8eff5282683bf3aa141ed4ba894169d8ba5ab8c +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c806bde5aa9dd27c81832f82c7a27a208f5b0a04 +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c849cb44037b7f6565c7feb27e11b02897001592 +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8334f4b1bd15783b421771691acef1bbc0ac925 +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8849d4fb2a6ed1cbe72693a2f18353f90f3c8e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c85188df33d61438f138adff89b9653a3f54822f +/.gradle-user-home/caches/neoformruntime/assets/objects/c8/c8036952a1becca954cec11225d785d279f01813 +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c9a353bcc80f4d8ec924a7c519ccfdc62c538231 +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c9b9082b0a2085bad5636eb01a89298428b588bf +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c9c3290f4e0033e9ba2c91ef800824a6696da710 +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c9d72edd2cd3a9f22ad5c6d900ea82dd4d64a0a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c9fb0414dece49be099daaa9a61227ff8500dbf2 +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c9fc431f36c1d5798bd8a6a28758dc81229fd3fa +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c9ff6427e506c7b2419afc67e3af1572a7d160c4 +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c90a0a8ba112e8e53f88cf3b50df2d338d94ceac +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c950e310d3f8e35a489011ad997eaed762b5d524 +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c9202ed6588c8acab2f13cfeeb170ec3d0805d59 +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c9916def2cc8fb2e3f82b726ea6014730c3fb428 +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c937186df48d75e819b783e391f5c3c8e094b509 +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c9722884dddb2b01d3d1a64ae1780677bb828f5e +/.gradle-user-home/caches/neoformruntime/assets/objects/c9/c95705795315b5944f32c517b9c0a0d677249405 +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/ca0c39fca7ab5b2dead37f6842a1d4ed4be1d621 +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/ca1eb376b8921d99953a48c1c5aee03e986d9996 +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/ca7e9465bad9c66a83f20092d59c9a239e41e43f +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/ca75ecfa65f05b616911574da104a3b58448eb2a +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/ca096eeb4efdebcd12b704cd7d99f1bb7163e8d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/ca626f7442f2f59d60c47abe567a1d50144f0aa4 +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/ca15927a1d34bafdcf8d7effdaebeef1511bcab4 +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/ca39057e2946eb481bb50b4186b52daadfbd7c1b +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/ca81722355d52173332eddb89942d0c38f74d2ea +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/caa8f5d2de3c3fa53eca358967e930a45cafca18 +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/cac9dc33a726571ddb0c5afe19e10384191a4395 +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/cac18dd78797e5396d38bf8856f4b615ee3dd94c +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/cad8f949f15cc3d22a01b016c22050cf847ca9fc +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/cadd09f6c7642327494e118eabfe999c7663cfea +/.gradle-user-home/caches/neoformruntime/assets/objects/ca/cae0425262afc9f1a725e632677a147025855014 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb1dee565c5bdb7b16e025269aebbb4eabd69b13 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb2cec5109da541da2fbe9088ab63e47d0e351ce +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb6b9af3cd796285405177177f8ca7a2d6c91a25 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb7fd9405357f21decb5de0b373b837dadcbca9c +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb32aeeebd928a290e60f59e51ea309edeefcfa0 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb60f1ce5f4a0c38a6b2f4f287f708321c9b6a42 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb708ddb2081e3ee334ee73d39093dd8f2e35940 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb941a05cbaa57947fcca362a0d638b5d8c1e780 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb01089f7f2a4e84b36790efa99f3ed89ef08f5e +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb4429a1045f0e8611818f66ac6ab444dc87d049 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb6465255dddd7a501b8592b5b68c1bb73511f79 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cb437915751e333e7054a2deb4e449612ae353dd +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cba3b58fb9272c686bd89a80b28e75afe372dcb7 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cbb5c089e2797c818aac2731c4e0b25de7357bce +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cbb3377c9f8c8997f3b0d5722e632e6b03a9d206 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cbde9decd88888768847ab56b8e8e7be29b549b7 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cbe2ec25a4027f0fcfb0dece47e1cfd074ffaf53 +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cbe13b230d4275f4bfa29b9cd1d4fb359b3f0cdc +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cbe538f075bc65040e6c20188dec7c3cae3017be +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cbe596331c96ad03c2cfeb6702de4cf1969e142d +/.gradle-user-home/caches/neoformruntime/assets/objects/cb/cbfd69a8915dbdd6ba2331775f1896e6667eaaec +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc0bcc79d4e83eade33c68220145b0b20ef458ae +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc1c26a06f5e0457be3ed37de4f3f24dd368cf76 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc1ec7ebed87b9f830861891b382661948d08c4b +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc03a029799cea8d138ba34f703921afeda017ab +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc6ec819997fa2ab6ce13f51d733291a988cf528 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc94a15dca4384c3c315ec98628648fb291f17d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc446b2f1d46b2f4f5c90dfc932dc3d1963a2136 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc627f04ec494906df1be6b366a1195b29470268 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc1872c0c02461eab4e70141cd7f29e512756e7a +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc9085f74264c2fa0ed864c107cc99a77565ea03 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cc9728d993ea4ea9e87b86cb7c36459ecd48207d +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cca7bcc6a8a9bc0ee9218bfa9a8471cacb8b0148 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccb20a2db1107737f4ba087a9047d6dddb85aae8 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccbcfa6bbba42df2e8672cdabfcb9f1ded460ea7 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccbd38411e047d5b9f8b90b8f0839f5fc72181b8 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccd5ac4767ce0a9c71d1dd62f2dc25449789b5dd +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccd608398535517bd855f28e0b3c00832373bdbf +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccdb0b492072c06e011fe82219e903285f6966a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccdec6695c1808695ba5f0cd789434f9621a97be +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/cce307819901e2b9523a3b7b4ac76b9a25a6629c +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccec8bf252bd7b0ee27be14ffa45b552f4fc4f66 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccf001fd23dab6378684cd638288f7f3e1d02160 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccf2a5a264bb58795f6475d5c61e2ea295964528 +/.gradle-user-home/caches/neoformruntime/assets/objects/cc/ccf2f26922472624e30d8bbaf0a371d074c10270 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd0e4757e4cbda0a5563feddbbcecada7f5fb3e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd1d156edae157df11b57f84da2e6a570c7bbdf3 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd4d1e4514138832c4e73728e73505e67dabd3fe +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd04e3fc276e047d8f2030dcb9d923d426f16203 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd7bf7e231c8fbf316bbcbd77278ac021e428834 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd47b9f60b4fd86af8d4877540920ea4b557d829 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd95b52d170837d249735c3815f57654fe307d3c +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd547d26573ab127a2cd668893dc85abb06fe84f +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd958b8ca43c161009ec7c2f461b36e5c1d897bd +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd4043ed1b5f883545ff0a269ffaaaf2758670fb +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd83862ecc762663e81f7c7e404b32cff4f53793 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd97453e1bda550a8eb2b37eead6c2236d52ebfe +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cd237064c4803cfdaa84b7469544f7730a4339a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cda6d700465db16e3179d40ecbf5169716a0b40a +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cdba9fd6154fe95d595cf2641b4564ecf4e6a55c +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cdc44d233d9ab161c6c6546a021222b39c093ea2 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cdc576e5d8fab89535b5fd2be313608ee82691a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cdcd8fab475fd1b753231cc3f8d285e246f72c63 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cdd8b45edcd0c9fadc2759f3c8a17367257b79ec +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cde65556718d191e30d48fd625bad1381f1fcd06 +/.gradle-user-home/caches/neoformruntime/assets/objects/cd/cdfc9ce095217d16a3783fa493b32b1d39cb3332 +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ce0ed48ea0723cb2df3b1379ef5d66b7d916aceb +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ce2db416dff051685249d00707e36a3421a11018 +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ce6bae8ef864dfac0f666120b8e2c8cccf0f7a2f +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ce7bcce2a58673654f76816af6c73f24823b5d2e +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ce8a2675cc2c9ac986851d2c5139d5c9ad3eeee1 +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ce9a43bef1d1e9e42b60aa4323d32e31add4b1c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ce42b98a1a030efad7210ff3c59807c152f7c54f +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ce719536d17beda1445931d3ba33d3c23d51e48f +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ce7827134b654a394f9819ce77a1f3c9e0809070 +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/cea35514055ec8165f9f67b3b73526e28d427b2e +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ceb0c6b2dbb81643b41ade0a3fcb20e95f661b35 +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/cec6836f7640b9d29ffff134bc19504c4b57d87c +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ced0b0d9e9d87dd090c42d240b0062c6c2f7cce6 +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ced2af6d2885592b10ceb5ffddd399ecde13f5c3 +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ceddbe3cb01ed6f356d455a1960d13d96afb5363 +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/ceede14b6b28de916432ab1aa7b1de6b50c374fb +/.gradle-user-home/caches/neoformruntime/assets/objects/ce/cef7fe4475a9a6943c408bae69291d61fbe2a5cf +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cf2dbb84c5354abc4309696eacf19640760531d2 +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cf7bf5fa2b4ce5bb8946f0b38ae9855b14e3bf9f +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cf9a16acc0ff7e958ca7857a62104cf84b77696a +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cf9bb5a571e80e643c2eb07928058ffde799fc38 +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cf17f40e6163925c82c53bf6859368695d536f74 +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cf27e6a0ce68e026e5da6970ad0b56279da2a555 +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cf435c7050205cb44a3c2f85ff87eb76c6a032f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cf661b19b996e717140012df6c03d82e59c5dfc2 +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cf4041926ae66fe4fbf2ec5927f92ad3da938b2f +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cf7392963a13efadd11efe67f64895d44ddf03cf +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cfa1c4fcdb9c70534b54249266f877ad2fac7a9f +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cfd6b4db63ffaec9614d80d56fe2927f8aedab43 +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cfe4f2e9c1b7b1fc52693b32b3abefd70b0cb3bc +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cfe9c216f6d2c028106bbadd6fee985f896fa771 +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cff9499421adee16907229fee43767e1b11194f4 +/.gradle-user-home/caches/neoformruntime/assets/objects/cf/cffa70fded6b305ef635e917e08fdb3170a231e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d03bc2e828fff4deb89635fab6fdf4a9e81608d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d07f7fc78faef5c32fd7dd1dc908f7dc98240259 +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d08a5145a0ca7186c9c0aa06c04a5d0854947df4 +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d039d4cf128d224a013c958f05c6b113b411f673 +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d049b28fc3ed2248fe64722a6c3bf804609bb306 +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d0134cd4f1b2fbfd3639f293d92d7ec43fd6ded9 +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d02838d6c51c5512e5ccc223e8b6be0c007119c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d07596a3ffb5c61fba9e72813caab952dd32635d +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d060341da2eb62bbbff0f5d12be555b3404a5238 +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d083154a29f9d698b41390693cef34783a7f89d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/d0/d0334761a307487ba4d051648ca7df4221a3b835 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d1a0dd0eac2d8d81355849289c2cf0a434d3d246 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d1c7aa522ea479249af889356d5a3166fc08a407 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d1d8a4043b005ded332e4520fa9331c7fc818523 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d1d06273f32c192232342d42c37eb44df42ccb39 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d1faf091c1aa0be81a3ce71110a5c07c91c3141a +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d13a0f970a059d6af9364f4e84588c109773bbb7 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d14ad77876e82f51c5953c7403c6fec448881df5 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d17a3b165c758f5f7e63af5c7141aa60602930e2 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d17c3ae92560cb8fb21ac26511c592bbec3d9696 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d18a616740ff7afd74a72535ce71ea27a1f6989c +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d18c5588648d2ccfad21266bc3086e817715a1c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d18dd70bd8f855c5530f6f36287c31ecbd026147 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d181fa75f01a291979f9103d7cd7473631fb5e8c +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d1253ce9c86d56603fbbf45256b894370ff6ed58 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d1311c39925f86d86ac7d00f5f8f4d15ecb31759 +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d18015d2512466c2f81311914df0bf29d9bfcacb +/.gradle-user-home/caches/neoformruntime/assets/objects/d1/d143707f07b3c5cae2bb499fd9e1e3f48ab1d2fc +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d2a64eaa1d1268929d10e0de7037182450934eb9 +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d2a97a385b650f56b4d08797e370724c6d191168 +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d2a781064ab643e6573b3b31fee50db5ad8f7441 +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d2be579e57ef1e500b5435abd83ee7fdf8c261c8 +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d23cb7187ed6af7b59978740cb20799305be6984 +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d25a30f6055cb1063940dcc18ca098b9778200d4 +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d25f44424805b208ce77aad6a1898d55831d47ab +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d205eac4b65ba6851013f9a228fb1789941be080 +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d2361f1f549f8f1c8709e2ae5760e3325bf2cd80 +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d203866f75aba73c8f1cd1f347040023e0dc899d +/.gradle-user-home/caches/neoformruntime/assets/objects/d2/d223757959ae6f0517108bd4564bed4853fd6ccf +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d3a6b1fd78a9bf7dfb16a0986b7c1c5dd02c2582 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d3a1213d23d0669b296afeaef52f72eb32b866f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d3b58df9e4e0b0eb3ea0ec97f88594e7e43fc770 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d3c9081f7b79e5402a7060419173d889e59d297d +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d3df4915f7e23b900d472dba0468df0065ebc7ae +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d3fd06b9ff3f8c6696169a19e5031de6bbfa15de +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d30cb8759cd6ec4da16d2cd3703efca5b0b5b413 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d33b4c2a9bcaa175655a69f9b0a425bf1c136b71 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d37ac7023b6b04d17dd809e95a17069befaffca3 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d354b0d9ab9ac3d157ab3b196e21223222ce74a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d393e350b4f3aeac47789f5d310811a878da8382 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d3597ac811cf7c536a115c2467128294fbfa8195 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d37865c3895660038e4ceb30fb199b346cc1b1ee +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d390309c25210f1f74ef17e97d80047befb640dd +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d3881122aa7b811e96a66b88a59f5c2b0d32c436 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d31782093c7d4b07be20107634d1c35adeb12de9 +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d3471594990759e65b92d9d325c839cf1599598f +/.gradle-user-home/caches/neoformruntime/assets/objects/d3/d32360539026017d28d644430b246c0db61145f5 +/.gradle-user-home/caches/neoformruntime/assets/objects/d4/d4d7803c440c4ae44ffb49803ab2b8aaf7a137ae +/.gradle-user-home/caches/neoformruntime/assets/objects/d4/d43c0400858983fd3d6d5cc4243f6a532961ca79 +/.gradle-user-home/caches/neoformruntime/assets/objects/d4/d44e71399f6bf4d690ebb98fede53febdbcc7b27 +/.gradle-user-home/caches/neoformruntime/assets/objects/d4/d47eb67f59ec462b9b2f5e8b8773297867068952 +/.gradle-user-home/caches/neoformruntime/assets/objects/d4/d419bf4575a2b611fe0d13e9f1e0e2e5ff007f1f +/.gradle-user-home/caches/neoformruntime/assets/objects/d4/d419da1a4dfa239ea298171abc8d367a0a58a56d +/.gradle-user-home/caches/neoformruntime/assets/objects/d4/d488a658e985008dc1294fcac50f1b7a2f5e4344 +/.gradle-user-home/caches/neoformruntime/assets/objects/d4/d4284b06214d64fa8853bd71f503198cab5f452e +/.gradle-user-home/caches/neoformruntime/assets/objects/d4/d43522bbc17961e2c76834554595efe60ef7e16c +/.gradle-user-home/caches/neoformruntime/assets/objects/d4/d4313530b3100f824e2f0b2adeed165b0b816267 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d5ad8cea62f912013b0b1634077cfe85e2c68931 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d5f97294ae98c752622b7fbdfc7fa32e0a141996 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d5f6490149068d710699e31af1748ab113442739 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d52edd118f8cc81023fdfa4de28a79ceaaf01ec1 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d53d8610feeae6d4dc089a65f05e82c939b5eef2 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d53da5fdbf67c4bb4597ed0e212a252920692459 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d53e7fe1270c7c8e26f559bd38165c52de1ade68 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d59d0e2275f9807c49b4b3c8456886af12e4dc6b +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d549abd369ef84357e4d29873f70b0a2448c9c21 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d560ea12518d390d5354707ac8196475f3c95821 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d5604b2eee31c92daed0bab23a225ba354adb843 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d5643d66f5c0b412f2213c7d6ac63d961244967a +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d51230ebdce979f0fbf97f8fc803de43216a9d4f +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d54773d09778e22a0c14e7913e2fbdf14a9b5429 +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d59466f80baac2b72fc3176709fdf3f370ecf71c +/.gradle-user-home/caches/neoformruntime/assets/objects/d5/d584520357d65c54720166c85dbc0680a2cacbdb +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6a6bd8e84743a49e090c8966a2009063ffbee68 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6a89ef0e39b8fb3369741f94cfaa14defe511da +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6ae1c04d0a7376a33d1df12e1b8057cfbab6bc2 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6c3dc83ab6a7944028fa07267783bbea2f3a49c +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6c5192f3b05220ab7db75842ecfe07b2eaf63cb +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6d63a572496becda48acdd84534e70032db2c52 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6d79daa625442e143f9b2b9157e3d8af2800094 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6daf3b5976d491e69f19becea691611027656ed +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6dcb6cd453a54decac9df9b6bad6e58e7b2e929 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6dee97223593e762b595e4c0a3c2a5e3a2a609d +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6e6212132761652a9452cbaf683d51b60ad2505 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6f8b5eb451a72846e1decfd664c83ac02284396 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6f47f2ee9873b32ca53064ea4bb8a2e045a6451 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6fd034d0b69a0981a570dc83b7a6b820a35adf2 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d61d7652325cb778c62dc25bee94de856740cfba +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d61e0d09c8c6b4ae019f790b460bf7c86a360ba5 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d65ce565fe31279f6c624e823a496ca58dc32262 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d66c939c99a00cc9f50957ebd8bf1cd79e13f025 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d691d8b12f320c6dde1edf27eea87db82b1d8a8f +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d698c37a5aea211bbec76b4bc97addc7c70d6c67 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d6639b3015fd8c9153a506eb239bec02e649a12b +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d63066b84e728777aa5cddb085e04d7d963404f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/d6/d63208c8315112d2edc3a6b40f7878f0e92782e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7ad4cbbc2189a00cf28404d473a836b6a4c1014 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7ad426aeeba1cc279ca48844a82adeb82705b67 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7b294c94e41e8f8425e5e4aa50bd9600125e653 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7c15b87710a61f9c202570078ed2b25df090955 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7c482e13bcad584edaeef262e0adab2dadcda1a +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7caa0e3aa5eb656c51817ae4bfbf3c4d72cdaad +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7e153c51e1e5cd4838a7bd694e4b42edeab340f +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7eb1f30e029b5b1b36f0d60264257ccd793dc19 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7edc70a0a6af1f241c2730869a74b83ece2c34b +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d72d2c42ed5d0c9f39b5a903555b73265100ea27 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d74d2fee6daa8276531e4a34d643a00decbe54bc +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d74fbefebd613dac0e8bb267470a3e678b59692b +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d700f02f29c166b746a60fdd35177207ee614ec8 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d724db5fe922c701736cfca5d0d20cdc70e01c05 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d740ea697c1f09e1bdc68dccd43a2aee48759072 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d753c2a6d9690523d51eec325ad97eee58b32706 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d777d74530cde62ef1d15fe407a5be15d713f465 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d781ed3a41c935c75305e990b591aa3aac1d6cdc +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7616c17d0b09afdaf1989ced1011fba414af306 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d74905f08eb52b11055eb29dd159184dba5150a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d793250f46ea32feb1964e847a5cb60031ff520a +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d7505745c0c75b19934cd7cb304607badbbf7e80 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d772889423e6824e729c8454825b6f3db09782c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/d7/d757702418266a5530799911184d72d42c45fe91 +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d8a23d7672a2e277c8a0c08e131fded629fb5db7 +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d8bfc754f9ced2f50521f7bb94503ec456887ddc +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d8d9dee66e602f60f4127a20874fcd7b726a331a +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d8d82045b29653159f689d3356dd87f38b2b41cd +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d8f8d40195d06cfb6314a7752e3d634ed3e5f82a +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d8f877d754e29839011111e9a016be7c66c14462 +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d80a8adf60b42ba1edc015e394f786e7d8a4f58c +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d82f22daf7e6723965cfc609daa4bd340a0f87b5 +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d826bdcc7a5cf8a276d9dec67c71775c55d1f924 +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d850f5f8d60bc937de205e6642b8e54c659c4596 +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d8438a09f5dfe9a7bc4e0e6bb1d1827a4f226def +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d8555cff1012f18bb05199ed5415108994e4400a +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d83668d3039380fa037aed5095044a06fef7a035 +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d835073b99f1d326dd0f0c2dd6c0a97e19118062 +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d85435987d1800612aefc6e9942df7ce560891ff +/.gradle-user-home/caches/neoformruntime/assets/objects/d8/d8530109173c289e3e880135b3651743fee623dd +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d9b29a53708a15e1fdfd4cfcbb879f36dd30ab65 +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d9b0467ea5af4ed27e9824177d0139cc16b838f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d9ca1f6db0fd7108c3806a99e8d70f4f6e9ba45c +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d9cb13721d9857626ab832b633c5d2d1d8e5e38a +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d9faa1521d1075459f498292c9a7764d306f285f +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d9fb85b99f5a3093f81098f9413b7185d87f889c +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d90e6fdd5a89cc91603c57eace78b3b77521eaa9 +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d91e759d9c17fa11c5f9a98542774c6af5735d52 +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d93adf271c6f8b00aa7d1338033d22e5cb1a2259 +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d96cc8ccb82deba5d97df793fc5e79914c66f0d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d98b20e6d3dc4b39be27376af785f5098a7eeb8d +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d98b73986f29eed74b0106e9919e3107cd3c2f97 +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d908e7f4a29d27e67d57260b2efa2d876c30613b +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d956f17b213d2f1cd188f2661660b8f21243dc4a +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d9609b4a85d83ca70fb1ec0140437ed1c5539f50 +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d9766e5713edb90c8b20409701f630b287e0a23d +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d9972bb05701e6b63f2fce94ddd060108478030c +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d94071f611865533ad8b71382e0e1972b54b17de +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d955376c8e19a267b1449fc369b87b25dede4fcf +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d95586217ece6aeec83a03b7a4a2ba7af602a0b2 +/.gradle-user-home/caches/neoformruntime/assets/objects/d9/d928028965babf43ba8c046fb281673b8992b6e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/da0c8b46bbdbafa6b228a1eec36b1debb86b9405 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/da0dadce43b127dfde8dd4295a5f97ad38305042 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/da1ba3ff3110d6ea777251c88ea77bcf35168c80 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/da5b5c99010a20667923ce0393d50fc2be5e250e +/.gradle-user-home/caches/neoformruntime/assets/objects/da/da5bbadb46099260439283e7d170d1b1e2440756 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/da07a6d437bb99d76d9b31520b63883638497b72 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/da8e4532532e6533872b4f5067a55648fc4a3bb1 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/da8f6ebbc16826ff4ccf4091667f23ac62a7c710 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/da126db8fbbff6ff852373ec0ce0c93293e841e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/da320500d8089df08e75efc898de4e5d731c5015 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/dab140dbe86d882c6b370df754309447ab3f16a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/da/dac600c95ae16a9a2199c6e47f1a77895886bfdd +/.gradle-user-home/caches/neoformruntime/assets/objects/da/daeb5ce102282ed1b537b15ffb98ac25bd5602da +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db2cf4f4cbab91745a4f887cfe5f053d8770398c +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db3a7cd1eb984b163f8c545a5eeb8ff8ace44e79 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db3b85662c0000733a04d5087d7d835771a70cc5 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db03ffd082f64ebfbe318d1c92dc1f2ad26f3c3d +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db4d26b419dbd41f372ca082870d561b9810cd42 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db4e9084fc98c2cf591704000525ca4c9a4a8a57 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db9f68cd9db4cf86eb57d171d9714fdca847106e +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db24df80329e9c1ac4566a0ed20029d312002409 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db59b1210639639858f43ac512fd118659944388 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db82fb7505c936e1b5a03c4464bd10963f3c64ce +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db84aad8831f937c3c4162766a8abcb49506c1e7 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db0752c95ce3a167d0d21d0370e6824e120bee8c +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db1093b1d75c1b304d9868e489cbac92fcbae62a +/.gradle-user-home/caches/neoformruntime/assets/objects/db/db5582c177aca966ba1a9b062cead233a262a939 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/dbaca9bdd52310406679c72f11d7cf9b55eb3946 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/dbc7170260fd83dcc1e35ef352b0ab2667711b64 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/dbd04b334c46b180a0113de9b6d955f89a983c59 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/dbe17da4c29e39b19e85bf85c8729a62824552f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/dbed2ce953204287bfd089e99bba2ccaa64c3f36 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/dbed655adb1964686e63a18874fdefc5bff2408e +/.gradle-user-home/caches/neoformruntime/assets/objects/db/dbf242c658d251a084535529e74bb854f93cb271 +/.gradle-user-home/caches/neoformruntime/assets/objects/db/dbfa086465ece0d8ce7d0a71af7555f1ba32cf26 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc0c2df786c6a78d4f162f8fca0fbc3f67aed7db +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc0c30a5e32d773644d445f5a13f7c4fa079eb35 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc0d35cfa96ebf706de43d062418305b7e287a83 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc1d5294aa63115822919ccc54a699d9d162a283 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc61bcd12bea28fc6a3427b62e458c4d1922f3fc +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc73f580e9edbf1b0e604da410f336311f2599b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc74e553d162c301072dff6edf8d9d7b50a9fdd2 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc83e6bd215c0e4afd8727fb49c38dbde31f17c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc322d97f25efe9a419e9771b80bee8807637c2e +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc549f1079da543b117180603c6d33980996c34d +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc788a6b10cd82aea9fb56f4c67eccaf53656fe2 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc1485e6743499c4fe0a451572bb52e1f79ade42 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc041680e0e84defdc9af9546d54aa1dc99c8263 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dc6280367f55275a1b5cd90823561c98f8faaff0 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dca848970b9e53c5923ceadc7a3f346ac95593c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dcbb4157877fbe0ba458fce5331441e593b68a71 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dcbf16528e0835b5638c782cede362aa8743fccd +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dcca8fc5afeeab70064a44adea417032b79c432d +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dcd587498ffd5c2036b4486715bf6f59cc7eb312 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dcdef344e1dff43fd798e3faa41e3ac5e36410f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dce04a1db885f8291e719977f560b96707df8147 +/.gradle-user-home/caches/neoformruntime/assets/objects/dc/dce96bcfed80defbe42be5c6157e29e876139d55 +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/dd0da6a379419805cb63e30d138965829c2fced4 +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/dd1e0bfc7375af66108a6bd824e9a70005b3c26a +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/dd8b95252bf92ca815d10c0f7c7fa004e60b8c35 +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/dd78f4d0985fb51407e8be51a5b9c359a5b51012 +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/dd88cb17c10e4e6db9f6176b55ac9a95a36e958c +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/dd8649c537b9692781e24fe52d5fcedf5798fe8d +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/dd713481356def734428b94d44d3df15f8a9fc71 +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/ddbfa12972ca42ce1e69f906a759990aaa329776 +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/ddc5431b2332e9a027e733f09c123d1d7ea53d86 +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/ddd41cdbf69a8fd9acdc36b1267735f8eb3712de +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/dddf0943e0b94ecaa09670cb9f1d51f0d68a719f +/.gradle-user-home/caches/neoformruntime/assets/objects/dd/ddea3813b27090fe884e2c1ad72921e9765799a8 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de4b6161731ee4be81a74e2626ac018c0e465dd3 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de12bd40faf0fa843aaf90da7e6ff3e2abb21d38 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de69ca0acd9f534deaf2984ba6de79d23a679ed9 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de83d75c9c451e0c2a7da9d0b551cf94c371c69f +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de321cabe42c7bc9fc0a172f39eed42c2b9b9ae5 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de659ace6358f7082bdafbe5be4d1e655fd3c7d4 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de795fff7858ce5adcd232af64fef76342e9caf0 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de956afb80a70059b31a79ddb0775dff5d65ed07 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de11555f812ec0376a98cf4b64100c189a2df8f3 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de72462d4723182ceed3fdc86b87b2aab912b812 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/de538718f248c4ef4e94a7d84e3ef691c1d4c80f +/.gradle-user-home/caches/neoformruntime/assets/objects/de/dea7b51e9a3c6f6caa547622cbd7c4c62e1540ca +/.gradle-user-home/caches/neoformruntime/assets/objects/de/deae116c5e906108ccedb6650f167ed4cfb0af78 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/deb1617c33e693a8d1fff7636efd4f0207347044 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/deba0627f49ca561aaec8b61057dac00deb83fe2 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/debbd3aa0f42c073f44313d4d8e5b6dccf3b55fa +/.gradle-user-home/caches/neoformruntime/assets/objects/de/dec3ae11e464151aa3b1c86c3f30b2409ccce423 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/dec42f5a10b6a0018594bdb868882ddccf04f52e +/.gradle-user-home/caches/neoformruntime/assets/objects/de/decab13d1ed36d8c3d0ad2f6d1e064b5dc74ab11 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/dee0af5a200ec05bd4f7e73f1fe6d432dbb03351 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/dee4bd36721024fea400710a427d4056ade2f435 +/.gradle-user-home/caches/neoformruntime/assets/objects/de/def512f49f1152a1b82e2ce4dfe0482aaa16c38b +/.gradle-user-home/caches/neoformruntime/assets/objects/de/defd232c21ece141935cea0bdb9f174a8f33feec +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df0a0502b7b79edb2f6c4baf58aff0bd18d4ee29 +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df2c45577cbe372ef48e5797e993ac7faee35670 +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df66fe44f72c6d59fa9eaa61535755272007b094 +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df94cb8f2317c95732feaf4b561476d381483b7a +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df95b0661f1702172436b993499ba7d16a8d8998 +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df274fe57c49ef1af6d218703d805db76a5c8af9 +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df444dec6fc366f517bcee5995dfe7148bf0b436 +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df24463e66a88d2fc9f85922cdc32045ada9d10c +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df142866d683b20804347c08423782bd32db9155 +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df4143127a1beddf60415877b39b35cd82bbc47e +/.gradle-user-home/caches/neoformruntime/assets/objects/df/df192101561880a6e43e89493f6fc3c6e4934941 +/.gradle-user-home/caches/neoformruntime/assets/objects/df/dfb63b5d98fc6f17aed98dcd68aca39052ae1ff4 +/.gradle-user-home/caches/neoformruntime/assets/objects/df/dfdb585d1959ed830cbccc55d10190cba64a8310 +/.gradle-user-home/caches/neoformruntime/assets/objects/df/dfec4843eafefcca5b1aea40fe1639604ab7774a +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0a463ebb5d3c3c75d1e6743c02aea410895d721 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0aa241a0e27f3f9b0f0ebcc2c7a777f51232fba +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0adeecdfc7a8e7616eaac7b792de21204cad910 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0b1ba03cb9b518daca91007846dc2b1b8a91899 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0bede88edb12879b3e34743f81ca5af1634c4c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0c39adaab20fa66a32d93316c06fb2a1eeab98e +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0d6a97e3fcdce99627b9306f46c32cfa4f69b70 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0e6b98db313e09f51ccb63000911509facc7744 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0eccc8388223a8ab1e293b1858f95e83d3c7f19 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e02d95dae5d8e6c81f3dc161721e0738df9f18a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e003cae940c726ae24f198f3d0745f78abac14ad +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e04acb34861b4ac53abf9c0e3aec3c0f83cefc0c +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e04f8abb9df2de85ddad179aa71a006648c20a31 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e06ac63b2fb7dfe7234d2b0536e3abc483eccb24 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e079e3be682d780f749f49da65d75521e0dc6b64 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0269c5d612057cd820cd73822caaed30a0a1a73 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0391aeb167a8be978b25b5f415a5d655c40153b +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0770d777577c35b55c806473556d8c5b967c836 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e08768e4746c8fa948a4409a7eea286cba53bd06 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0553315e49647f8cae2425f23edfafffea0609b +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e0579939b43a241f00938aa87fd14035ab9844b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e05438972b5cd4e8f2f3a7afcf762ef5bd954a51 +/.gradle-user-home/caches/neoformruntime/assets/objects/e0/e063368288851806550ee81e108d62c0f8257aff +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1b4726cf75e5d6db25fc22204ceb83279f69498 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1e1d133b900bdf3484b2c0bb0f745e6ecb338ba +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1e49df3d3f8c96746d5424104648e3ab4eb24fc +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1e03445fb1157507b97f86b44278893d919e20e +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1f29cccc69ee7e8f982ac1d78bf12a6d6b20e74 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1f59b0ae1ba6a05e426bf8572d909b6c16fab90 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e15a8f7fdce4175e05fe4799f5bd28468aedfa8c +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e18e0f7cefc75df38f00f5a999c9d371e382faff +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e19b634969f9f5a8e637d60be81488d86d835185 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e19c1c506b3912b5525b4dda588495376ddc6d96 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e180f4a7ec27bcde2067fdc5644e676d24cc8239 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1256df4732914224e42e64aafb2b51df33cca90 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1620e03cf52aaa8d046a9b54f8eddfb6059f694 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1740d184c200975ba50bda28b8095a782670b7d +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1786efc1dbae614b055a47779c3a3ebdd0453d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e1940bfcf38822799cd81279f642e0ec13920923 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e12154ca862546b6f91db32596bfb587a1c1cf77 +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e16352150262ab49686f6c0aeaffa7532d3157ea +/.gradle-user-home/caches/neoformruntime/assets/objects/e1/e19398687322f38946201580a929be39e10b309e +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e2aae5ec9916c6c4ae328520f4d72a50afff5aed +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e2cea3aecffc8383535202ac877759e54b464a77 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e2e0a851ed4177eb0a5590e38a6e9d67cb32e8b2 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e2e099dbd66f0fe576cfb2e45f1999152847d511 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e2e48009090014abfdc17e211c71d1213ec5f453 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e2ee4ca2a71f25e26fc06bbc89616a40aed74384 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e22edffc8b879d8f042010b237d13247f17d5552 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e28d844995368de1d45c724a5d371c9952ae5ed4 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e28ea96f8a617dd17576718af898ba2c2a7d0c69 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e200f8d25bc7e63a7f5cd871e140b2dc6f801718 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e218e23e5181d2f0539469d483cad553db5d1b60 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e228ab1407ec3f8fda277d8cc4e58a75b11f564f +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e274b31e5f2856c9ef048248bb4f8dc353c55e4d +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e2269b8b16778ff810fb6202546b233a36d76a92 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e2439eb75ea3b48581aa55b858d1fd4dd98e8d7d +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e2678af72ebaa5d6e1d89935d1a540d3120f3593 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e22688b99a704b528f438bf70af8a91c47f1d4b1 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e27673c973f083b21bcbdee2bd0b18daed3e95f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e22991960ca956d1a6b6be9d376857d45dd6ff76 +/.gradle-user-home/caches/neoformruntime/assets/objects/e2/e231367664680ecd993348375b089fb9b3a33547 +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3a14e3022607d0f48bc3b17d3f72b015d54ed2b +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3afffc6ce280c71da16ece37339826d9dcdaa1c +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3b8b601d62bde1bd4eb404e3eb6fba4f728fe90 +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3be518cd61155933433c6cb1ded6d8a1df89f9a +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3bf0330c20e1020e23eb873ad655686d3bb2eb3 +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3c1133e11b01dbf63afed83e5e1d63f7fcb23d2 +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3cba57bdf41754cc6b47831b916d0d3e7d8856f +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3cc500d7f48934f7f7198e5a88f529a72016dcd +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3ea94a5120e2149f231d587766c9cae60e300e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3f115735569f60ad88dda390105cc3e142c8d37 +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e32ac8d5f874a5654be012c88148a87975261d1c +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e36dc802e3e9b499fe37b0663e3ea6e3b55850a2 +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e37a1cce03b4d2b0711af303ca12f385513bf525 +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e391fd4d704892ca8e29777318f3a95c773e4222 +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e3103a151f27376d8584aeb342c49d1eb71ef12b +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e32932c73c601488f8dfaa290cfd8ee2457c764b +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e39709df8a61157842ef81742242eee76f7f435b +/.gradle-user-home/caches/neoformruntime/assets/objects/e3/e36444071568c3273ea00627ed5462275cd6828e +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e4c061372b9dd0341c09539dc03525d7d8c19012 +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e4c6669590f0ef6dbf21e118cef81b4122703161 +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e4df499058ce4b7f52801a7b6966de47c948feee +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e4e5f8d0b92e1334e4d5b7104961eaed21f92edb +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e4e8881b4363c482d4921e5bad27f212e661d4f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e4f2f698a6281c7d85f72363525655628e3d4d1b +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e42ded803519dd0cb5e47bbdc9c7ba54da7bb32b +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e44f7cec6df34a303e041247fa1c2017e395b627 +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e46d37992739a282c1aee677fa874bb5646e947e +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e46ef10953dadb96e7faab3dddcfecc5551b652b +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e49c0c26da1c6a7bfd6d8b4771518c1cdfe3f1fb +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e400aafb294db87f5954f41908c79cb88de6b632 +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e443b124baab6ce502b079268f3025e07dbff6d6 +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e4208f313e7c1431d9e04c80974fa4ed4a783275 +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e4507d8e89ce253a95a43672c54cb425b31e7b9d +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e40562f895c4c5809fd98ae4794abcf26db7adcd +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e4741020ec40e539b87e1339570e6453d3812e1e +/.gradle-user-home/caches/neoformruntime/assets/objects/e4/e47790094f5b42482c9d6fd04f79a9b84ae9ff0d +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e5be3ba5e675bb970ef2cc3ad0bb0338a6789702 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e5c209b55e5bbc33c8ed1eeea19cf2901380f1f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e5c445494c32199da213f23978e3a7244d012419 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e5ca13f1ea8432beda44f3d0c037015d72885043 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e5ce22942b463968efdce33e30c0760c544d0331 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e5e4ed38f67c0bb78cc20f8e659e6e61e1e5ad6d +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e51d8d0e351491c0b6b9b5175e9d4b0657e033f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e52c5e8d95c6c4d935449141f38a9b48972c9c85 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e52f081f561c76b00b49e2e90ca2eec9f289ceb7 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e55daa373e577f611565d57ec53cd28dcf472f99 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e57aa22cc1f10bc8df115ced994e2de081a02237 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e58faf1242f37d7bde94c932eec7e8227dba3ced +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e513adbd9b3ea95b7c2d5726c8ae7a5f497e0328 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e539f6aa8c7d9ab2aac76e677100807c41b26e29 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e596b441499af7d245029de65e587153b58bd54d +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e506848dc623f8a87ecc27f3f5d99d70d636ba43 +/.gradle-user-home/caches/neoformruntime/assets/objects/e5/e583520d3ef8b442636863766241121f07fd6aec +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e6b0a68a971f744318c220a3a8f6e0c63ca2e48c +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e6b75086107f28c2648c62cd3a0b52150190d1ed +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e6c0a8a18eb9c866042b44595ba9f40e3a691153 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e6c779bd9afddd64386267151d5be140378e5c2a +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e6d3911f803110236587e652b5cbc990e4f22ba9 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e6ee4114f1db6bba8ae04d24fe8313b5a8095bcf +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e61a6f41cf448134c738bffea855e66ee49608a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e63dea12eb3ffb13dda1bc3258a2a1dcc91a63f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e66deffd7d46205db77a2d46ebea58f3818bf4da +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e66ebcb01ea2f6574eae97488b395577b9126b01 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e615f5e9baf928e00115d84c7f287b1b1e8ed8d0 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e650acca8d23cc14b08b7c287c99e6f1490f9b6c +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e676c2c8b9653ba25c46993aafd5c9afce671785 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e691b03bd2617dfdc13abbaa53acda1bae060b50 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e6087b9a38b765e4555ffcb2a1fe8ae7510633a8 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e6634d3bef5f2b97d86ee3982c063600f3ce5ed3 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e6708a29725381e43e77c7f9344244b7444ff8b8 +/.gradle-user-home/caches/neoformruntime/assets/objects/e6/e6432134389e4c93f338133caef3d1af20bb62ae +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e7a439e6fe0d1ec8712e002a00b3f655d2ef9660 +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e7a858535966f99659d374f47c291ace24376c21 +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e7aa24565ec25896722f8756a73a554edaed8175 +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e71b4031967fbe6e28ac6a3d40c6eb492ce6b042 +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e75c6077b1bfa4a791d62d9951d6e8891757ad1c +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e77f3830976190971f2dffd4568c5ed5347072a1 +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e78d997b02f91f36876f65a7aa6ec4fd86142366 +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e79aa37dd4f19c461fddb36f406809ea1f962426 +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e79cb4e5b1875dfcb2d90530a6561cd0155f8343 +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e747ec6761e14fa3fbb6e9e6c1dacb0891ef52f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e792be7a228007d8a782b0d6caf9da9ebf77a86b +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e7123ffbaaa628fa8a9b86c24eea34dae8fda37f +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e7818b52cd006008a7ee98f512067fde32fff0c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e717312f23b16407ffba767e236da64fde668e7b +/.gradle-user-home/caches/neoformruntime/assets/objects/e7/e7378124e1ff156e96ecff31b36454f66ecdc008 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8a9a8c6c37f23e844a88ebcb7d8a39deb9d99e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8a4101bf68a3a8d792919e390782c357aef4b94 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8a73969b515a15df138a4d55b07f4ff573db25f +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8b4d6fd85e4c432fae28bfeb993a39560b8c2a7 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8cd487fb1c3762538dbb258464d36b06cdbceca +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8e7230c42a623b988c64462a2c2c390face9d61 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8f38c7550086025456c11fd99d57fece0f4f79b +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8f490ef8c34a94fa5b663f2ca3d45a7005d809b +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e85d05a1f0d5d77355e4b401ca279a2f8f6d1a17 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e88edf6b92fcc8a3c3db40356dd6c107f3e5a461 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e806fa91be20960f791acc4657db0ec8714d932e +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e826c5de565a6a6148b4f62d70b9edee741088d8 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e861a169f03bd0c2cdea87172210b4de9cf9f191 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e864e8ed9a756b9ce4fcf592299579af86f20935 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8501a0d5da86571164009a1f3d5ac9830b3e6c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8567c5cff70491d49cbdfd2f9b3df3a3d7a6076 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e8591bd70a7a73bc824fdbb82adc198cb22ea6e1 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e82282aebe27217e74878c179a3b45c335e7cf38 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e875411d29501160a7321d0b27bc85bd1b86d1c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e883215a4e967349b94213bb7e76d968c184b9d4 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e884435a863e8d24f03509f0c70d107b651ba4ce +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e89273765e1e263333391605f1c1c33dfb9fd1a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e877830582b6104352e90b35267dd91cffc8bc4e +/.gradle-user-home/caches/neoformruntime/assets/objects/e8/e87501393023d9251ea9c8f1617114f59bbfd6b8 +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e9a15247ba3a53a58e33c0d47dde7632626283bb +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e9b08dffb873bc920da46c54419d31ad23b41776 +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e9b9d6122cc2aba27ba876e5d6fc9fbb44d45e1b +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e9def72a56fce0abb827733c53658a41154717a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e9eb51e116b47c1ed0709efdc1fe163300fda8e4 +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e93cec6a428a6459861daa2bb392094310186fdb +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e95b84c41cd03f5f0e632b0677108d139a26866f +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e96e03891c4c365dd2aef3491c032e5dbbd0f4fa +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e900c4254dc640e95576b13e6890d70e38eda88f +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e959f24a326e15f17a727b4c58517aee9f368fa3 +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e9007f25f1595d3289b973d233fd20d40f07fd0c +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e9644deaba05299e6f119096a892366b06a92727 +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e91322c3fc6f86883e3d4b56e642b959465067b8 +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e93141eb71a23f06da35970d5e8a987ae6314cea +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e94717397e92b1f6ffe1743ad0f6520506ed1c71 +/.gradle-user-home/caches/neoformruntime/assets/objects/e9/e97672693d77c49e36c492be162b5dcba2a35998 +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea2bab54458a10b94a0ad0508d260df96d6a2016 +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea3c8dba058142c1ff38d7dd49895f5b8b037baa +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea3cc7187d7c5b51c58bf3a6ffa70637901b7b98 +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea5d0dfacc7437bf95455690f8a805a8c4840194 +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea07abc11f8508d31b8e89386a4e2bb1bb602204 +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea9f9d3dde1b2f63a4840d1cf680c7809d379b3b +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea57a9528fc394bd438f0c5c9eedcbaec65bedff +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea93dbbc9a8d5fc306b042fc70c4f3b35a94113b +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea829c0aeca04d62a2cfad9f1f7f306a63b55027 +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea903c158603f54ca2f72078ff77d0572a7dbb8e +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ea5959c5dfd8e0217aa2b9d9ba5d5d33f65d840a +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/eaa0939683152321d7d14db63cbfc1d6bc93d1d5 +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/eaaf823192b61a168b20839da313ce62bd060ef9 +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/eabb8fadff028f3c7c6833ca7718e933ce88773b +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/ead37e2250e34e72adfd3c680408f55e8e275311 +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/eaf429a19fa56728ff8ce2fd312fd6c5a70d2af3 +/.gradle-user-home/caches/neoformruntime/assets/objects/ea/eaf01859132e4f238cc2347c496016a92aaa4808 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb0bec3a8b45c259476e76865dda01fe55074b85 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb3f71a2308f933eec6f2b7c04ac2dc3a59a0f99 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb4af8840e029ed9e750a74178291ef0927c46fb +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb4d54fca28de797c309d13bae3d907bedad633d +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb7c09004071c59dd146a364bed2d85a2e93838f +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb8d59a4b30875b7ad7f4fd5e399b841b16267b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb8f0b060718f3b74eb991f85023bc5d5c21ee59 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb52e26ad35a1b251e45d7bd0a986b05b2628249 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb56e6fb3e29a18846d134972eec9db1ad65b5fd +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb81b977ecf8575f4216ca9d50c4a1af7a1b5c9c +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb500c65f1c33130ab0f29a8b7432a4bfe2187e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb8741e8796d74b128ee0692e583f18e6128efe6 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb6285146955e5533180b67d5a78e920da460db2 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eb8164906353f4f9077eb3d4e913440bace7c3ef +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/eba4d66a97f31ea8a55730d70694463357924335 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebb58195db8df016ab25e5cc4fad3026a13798a5 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebc5c57c45f850d9ba673493a8edff1e27317143 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebcb1dde470b8c8022890809f85b9deb5c35e9b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebcc56665b24df0635c3bd95f55ef3c9fe133b3b +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebd33d8020bfd40d9bc38a17e5544184502f84cc +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebe23a9c980acf919a3e611e74a3b51a8630be53 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebf5d5933fb1461b8f714335b98efe00bfb36e0a +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebf6fcfa3dd26d6f684fd90388221d4ee4a1af1d +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebf8a65ba44449f468329c2388908fc237a91b38 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebf37eeeee4b62c34b4694f96340c5f0b42e7d69 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebf47fe7ebc01fd9ecd8732d8ede35d812d8d719 +/.gradle-user-home/caches/neoformruntime/assets/objects/eb/ebfaffb897611c1edf4ea6f2add562c41a51eb8b +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ec1ba06efabc9960bb37c14791d494bfc6f8f5e8 +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ec1c5a40c16616e5c140034055954bf7cdd0bf47 +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ec5d867eedaf6d09eaae0b6661a63d708c641d2e +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ec7cb9a6aaba2f1d801039075c4e6a08176cd737 +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ec08a8f808ea79725f216b0523b4a663fc1affee +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ec9c805cef9f502a8f6bae558c7ddaa5d202be8b +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ec087e874bd5f61a406d52bb45f7bccdc79bfaae +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ec94a5ec38f2cd5b440619734b21f86de6c93992 +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ec302b81e1d4a993d1f94c5a73d16fb64ccf1fe4 +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ec427e5a26e2170b435c85f4bae71bf5b9329b2c +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ecba9875e8e0447ff843b020db8eafb6015ebbd5 +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ecbd493a02ae4def0aaa9a00957738796c3a6896 +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ecbf5ce78cc21479c4b91273fd030ed68639d3f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ece06913c286fbff4c82fb3209ac768ad277e870 +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ecf6be58a57906919271ba4608f31fa0a4f0a4f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ecf87d451311b9dd807fc7be2af6b8860ba00a8b +/.gradle-user-home/caches/neoformruntime/assets/objects/ec/ecfaee551612efdd61812132331fec1a8a57feed +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed0ea7a1d2549cb25b6cd6c3f2af23b3abc2a2de +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed2e915158de33c9bdf77a7a95ea0e60e80cad6b +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed3f57eae7abddc41f115384387ff6c24ded1996 +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed5ae9af8d9930fb04487434f2ee1d77856cee2b +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed5c965e0354fff9b8acca3021594a9c4402acd4 +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed6e39704f157207ceec704fa12367b4fb5fd915 +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed7ddfb460eb5246d6cbbdf3b6eb381bbd3fe26a +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed038e3fa6170bb1bef598e1e7c38bebf6fa591f +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed62d68890b991e04345aaa0a95b56cd506afac8 +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed402bb1c240a70fa9eb05fe5eec436c248598f2 +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed449e84fc90883941a5daae9a69834a7a221226 +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed0556eeed6f8f8c48b06a34401592215fe80f60 +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed1264fb91099866f70ded9b2496ef19651c0e2b +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/ed8860df917447cf7c407a5ab9f2c21772463901 +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/eda4a38365349ca847008ce669c9896f9ba9c998 +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/edaa44ef0bc25bcf62d529329fc8feac4c27e52d +/.gradle-user-home/caches/neoformruntime/assets/objects/ed/eddda2761b48c2663ed76c851a1b4cc2def90588 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee2eaa8a52780fe3d3ca89860fe4ec408038face +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee4cb58c10d927cd71fb93a91bc26f7e82c4f6b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee53ef9349efeee12cf2c7a4ac0b721cab72344a +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee61f8f3f2b268f4435c49722298d92a403ac253 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee388df70e55bc7462b68ed49eda8532a6561498 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee1041e7a3737704a17891c7860701e6d3b4c980 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee2176e57cdc64434c2bd71249d283a6356cfe70 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee3766ad91311671fe51ab5aad1d1752559cc1e2 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee368242f57f021781e63d1f474720ac54257ac3 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee85480030c2946c7e16af11c02f4340753ef0ae +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/ee0676820023142b84adf7065db872070ff86edb +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/eeb1a037f3011c6c5b42cdcf34ae5a9cc4fa137f +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/eeb39963e94bc35785a7b1967e753e8fc708aa9b +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/eec5d186206792d2c650e1dbaa9c8796c56d2ea3 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/eece842840cd93d36ad7a8bc459cf8e431da208f +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/eed3b961158ebeae781e6c737ee55a1f5e8f6c9d +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/eee21f52dd32033c88ad523b98a6315518cfe0b5 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/eeebab297d38f8dbc733267c115f97d9f9e34a10 +/.gradle-user-home/caches/neoformruntime/assets/objects/ee/eefa3f8e293b2f05e43e2e1cac9e868b17bc19de +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/ef1c704a54dce8806a45814d0aca75b8f244620a +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/ef6e9421377a64e4b25d8f60da356a60a39c16a4 +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/ef59a7ee4163d8b06fcda67e356ffe717756adda +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/ef580bc33235a7de6df3724dbefa8beb5f3efc78 +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/ef7610b0effe7d9ae641938cc7cc317158a59b91 +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/ef859078b24917d4a9d12e84c2a63d08bef04d97 +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/efa1a5748620e66ca12e12c8ed9ae99a0dc10221 +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/efba8a3a509b6d67b3882b5de37d8dfa05648210 +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/efc20a63cc14535bfdf616f90b3596e07a6b10ee +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/efe5fb6f70554d950ebb14e60b00bf5d0179b7ae +/.gradle-user-home/caches/neoformruntime/assets/objects/ef/eff4b27c4de6d4e6c8fd88adfaf2a7d486ce7886 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0af45e814823e47963d702a38ef90c7d515bdc9 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0c022a51c4e496fe8b57ee6a769e01e5b321e4d +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0c27e02d0ba89942516f75439ef211264f2e997 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0c4946eb21ffe8a3e81b83e4f103884e791f885 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0ca66561f832bf2f60b393837297c2692367cd5 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0cdd15e9eb0129cff065733cadbe1a4123ebfca +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0e6c02fdf051c0a7ce691bba3dd640ffe5db6a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0e15006b2f0b2687859fe57d623fa2351dfbc11 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f01c78ac7381b67f5e3014ae5ed153417fd9acf2 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f03d18b2bce2a3c51e6e831747cd8b944f5771f6 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f04f3818a8344179ea169eb252b8ead671836f69 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f06d0edd6f684505e9d08c2d29524bdde10ad5c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f09c4c67e1403d34cee7a60217b76099de3416d5 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f09c1001fd7e9982e0e6e3fabf4e1a7ced9b2cce +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f014d90070e4c722238e9a8ef9ffef3a19ace83b +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f021d3e8c2c926aac7af5d46e4bfee21af1ab75d +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f072e1ea7949f1b7abc7546e1e995cc294661985 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f083b4a80f957cdde6bbc30ae6a26f8d8d190ae4 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0621ec9192760a9ab4a97f279613b05320092b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0645e017607ba6d16dc8141706ef960ce254259 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f02183adf26fec7f79ae5b18ff6715cde7dd7f04 +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f06613bca60316fdc9ae333e39c1c9fd8a06e4de +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f0212098e16342cc0270c6b64eaffd7a6edc5c4c +/.gradle-user-home/caches/neoformruntime/assets/objects/f0/f00657542252858a721e715a2e888a9226404e35 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1a6e5aa446e49b695fbafedfbf02a7f6177d20d +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1a522b5bea10dbb48e49279c1358e71846d3a92 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1b8e424aa0559952b08651d792f96381d2fb132 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1b078c5dffd1cfc4e96160a776d7788ef5e17b8 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1b983140ad6a27be16a1f7079eef2f6942a1b73 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1c8a183dba71fbb340e5a6af0db5cccb2079bfa +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1ccbee7c2633399fce0b0b447de975938b76119 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1f64cabafb33c36238ecbeac55595c2e19e4713 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1f6528247ecc729feb0fe08b5f3d81470ae137a +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1fe33e67908c15871f210350d549474c5c26648 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f11f49974aad534a80dff4996d492bc40d5f2064 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f15fdc35a285cfbe9f0ff9679f93a65bb060a27a +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f16edd2531f260ab12ce55d6d68433f1dece9390 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f19e9d11b4703257187fe78150e08d0dbaf7ce13 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f125c13e6b445091cd1efd409547ffb9452138f5 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f131c13c62e7737ef02e24610b4d6a0f1139f1c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f169c2bd7d40b3075e8e27c379904c3629f49452 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1081a559202c73cef9686b64965cc5158b65948 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1492c9397cd08e1f4e8bffeae01518740c1fd44 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1551be173bda7327006a3eb106bb8244fd74893 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f1986caf428a5af77d8ee727150285ec66e02084 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f12746a79c34c36a87f0cabe7df1375e3b117743 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f13041d4e6aa259fd660b555563329d4be7d490f +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f18324e5496d773fa3080a77284985e2d6562d49 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f105728be2be6022abc58f4b341964bcc5315246 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f168111f74c7b2b44dbee6b4e72d0300fa3a8b99 +/.gradle-user-home/caches/neoformruntime/assets/objects/f1/f185272a7508eab9bd63ef024d1f921ed0aa4226 +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f2a9abf36b6b67eecc9260a9d7b0005892e448e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f2cb1052d3dfb30bdf60a387bc197578d63b1264 +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f2cb23554501f00e0e714be37e02ac83eb906b83 +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f2fcb54f88e85b5cc704358208395451c106ad1a +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f22fffb4d87e6400999d1b4dd5a392a557ecd971 +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f24ac8947717a1ea52d6bc35f686767082df62aa +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f24f2b189395a15f9fe65e059519a781c1fa42b0 +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f28d8306eccdf34242636a56d962570104759a8f +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f286f48fe15189385b222b3045da1e730862fbfa +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f2384d4c466cc6132d69d97a4d2b341e1db7578a +/.gradle-user-home/caches/neoformruntime/assets/objects/f2/f24003f7c291a8b08bd9080e9bd32eafea6348a6 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f3b01b508719c5b4775da95dbbfc666b7cd72c14 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f3b8dcde479d572a5c6973d5b73314eecd785dd6 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f3ca6e1c943b3fa1520247f00d8283800f94fb04 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f3cfba3cf1e876f7058b7106d54b431f65718bf8 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f3d328aec8103dc8d9686f2d1251a052fbd8a469 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f3dc08c87e5469ad9a1be1b7838dc34862fbf0f1 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f3ea2e58d1ae9e3aab8512861ca8eafe9ae7e059 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f3f31701219ad15323ecbc13041be88c7bde103a +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f3fa2f7ac95f0bd8419b9638b2e6b289265e4b18 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f32d47d254760dd12b673f60514987976de9e227 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f32d15105885aa1a9956caa8032cc0b1e42cdd39 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f35d5bf4f37c7206f51c736918e72ee0f77efe3a +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f35eec6a4dc2653bef2cd489c1fc1b2ec96c45e3 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f39c3b69a7d8f3fac8797a9145c8b93cac94fc67 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f300b4634a026e51a0b3c760fba6662483208d26 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f321c0d7ab19678573ccc95bb28a3583269e0433 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f323baa2161f9d95fac3b0f07465f53941f87f93 +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f30080c54b46aa2dcaa260018cb07ef0561408ac +/.gradle-user-home/caches/neoformruntime/assets/objects/f3/f3545164bc3aca109ef7ed1011f156455448f389 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f4cd8111260b8bc8ad13acbefe95b6691f6a4fdd +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f4d76fc18ff37d4caf3ee7d56628d11fbdcfb58b +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f4d95e04f6be4b61b552cd126e6f058302e0e586 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f4e487a5fdbf864c782a09090aca709548183f44 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f4ed34bb8aede2c674a93c4ab3876cb21db62c49 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f4f12b4e94d180c992a0a57fbd41701a272bf454 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f4f12db42aa3ae8138adbcaf7a2e2d236ab094b0 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f40c17b88b4e09ce11361721b40ea384dc873f62 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f43faba5e2e2c77b6c188219a7ef3252b0f1aca8 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f49ee647f441ffc7b73fa5ebca7189b42c58f8b9 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f413b910995d27726ff581e2cffea2b73b9bea9c +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f418af29b5bcd1cfcb7351db09d8b419be68d628 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f442fc892c7712f57f3656b9a1bc8193f4a2a919 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f485faccfd23c9b8b540738399d0ef5aaaf60031 +/.gradle-user-home/caches/neoformruntime/assets/objects/f4/f492d5cddd95e7ac92954469d289fbfec6e93eb5 +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f5a8f8189d9286957468eaaf1851727bb4e5064b +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f5c900b6fdab38912a19ac353b9c78a9501215ae +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f5d6381c34a8154bfd3fdbb67fa87d9fca6794f0 +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f5e067ba8cd334ca3db7bc4f06d4b924d2f6412e +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f5f68d0d8f603c6ba6d1f01b2cb548d710d29987 +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f5f420385ffc93dfb1a07b0d8d1fc9a237be23b3 +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f51bb9bbe6c1b2c4e0acc313908e9cd768b8c449 +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f58d52921ed996f12b51ea3423668da2dcf48daf +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f59e759247f1b73ea74670495d4716f7c0736f6e +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f540f50e7eead24b7e25ddedb9d3b25cfafe593a +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f543d1e6de128c3a149356c4f4768a84452c64c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f550d4d895d47547fe58972d11e6029e903e1e39 +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f588cdf2b885da801e571b97f1bf2c704a6b0f38 +/.gradle-user-home/caches/neoformruntime/assets/objects/f5/f558195a907e9dae4559bf054cb710a5019ddcf6 +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f6a1529f02669d1bd89580c8da35b4af276230b3 +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f6cd0186a8b4447006823b5665a6747f07dad147 +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f6d023a6271ccf429a72a0f1736a84f8ec2d6637 +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f6dd3e263823fbc2051f441e5b12a02b2258ae84 +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f60c452247e3accbca0203eeebaa391953829cfb +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f62a73239f487b70244cf17f1f4bee534abb02eb +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f65e3616b32987b37735e69e0f25866bac75af6b +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f66cb283d78f7192d14033617cfd1a5f129f08a0 +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f67c848272ef2cf16983e7e959bfe675d4258cc5 +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f69d7a5dd2f310c3a137efecc7b29e24ae26d50b +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f6077e9c2465b000a8ec60a9bf0fd610ec2e2822 +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f6824f8bedd23384944188bf00f9bcb91c6ca759 +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f61087fb6a8d34488df1d9d26376ef198b17ddda +/.gradle-user-home/caches/neoformruntime/assets/objects/f6/f61739d682a1edca93a90cff1e3c3cbdf2269000 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f7afa9f94ab6e8f64d3fb45d0b848a56931c0462 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f7c36c515cc267c0d461dbe1f3c2d6be62d99e8c +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f7c536aa2bfa413058ff92547210ddea1e8ca194 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f7da706830cd4f84f81919144a91443d2e73f6fb +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f7e2e72cde7a1843375ec84428e8ec23e7e8f0da +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f71fa1d73c11f266ae4da0bb85f2bfbbd9843e26 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f71fa38e886f8a6c60803422c286e347efb65676 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f73a43d391dae371010eecfa517fac11d08507f3 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f75e57175b69ab1e6c408ab3f32160c8416a8675 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f78a2094a7952634accb4a3a94419040e237092b +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f730e1ccb1f3d425232bd0e78697e69fd44b0ce5 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f758d3cd174df81fdb81260a0cc1a67ac25a5f04 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f767a5608013a899491eb3cec4ebd105c1e26d26 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f782c93d12dba8bb5985e9f94df42b60277aad09 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f7115c7f46d066c30fb62e85a9957e7d3c16b82f +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f7475cb10f30f2658f870d30bb53197831b56818 +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f7699e48fb626bae244aeb9735c9e8e10830e8bd +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f703371e055d9a8b4070ecb767d46ca86d2240df +/.gradle-user-home/caches/neoformruntime/assets/objects/f7/f789417f40eee40b4d8ae6422d78f0ce06a94211 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f8c9d5ab9d536dfea1652a2b3ce4878cf05a4b6f +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f8dabd3f3053aa45461a7e04e4428b25795172d7 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f8dda0060147884a14f6c871496559571dc0fa22 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f8eb114e21403ebce17da21c34c5fb3d1c4d42f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f8ed9edbcf85cde875452585720c8b0b1b60a9c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f80a4fd4cd9713283fde91fce4d4422e7f2b3357 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f80ac07fd29a87232fef38a657f5e5ab654229fb +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f88abbff29410862a934d78f834d3142f34bc116 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f88c75c9c2d8cee9a9678e6e92f02371ea3d754b +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f820f483ee022e9c8c7c64fdcc3205dfa3f57747 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f841f4b0b1060493e8f792ac74496b2a0c9d49b1 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f8484a5e5106e2b355abbc905fa11c45fdaa1e66 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f8608dc8085c9c70ce8f40e039b950c10359ab8b +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f87220f8a3d7e71a12457b0e64456c6b4bfbd1b6 +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f87348d8af3a0309d780d7dc062c4bdf71f7a07d +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f89332d0596fab92ffff6290464074b33c2c294b +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f856295d6812e739fbdf42056f3e1814cf2a76ab +/.gradle-user-home/caches/neoformruntime/assets/objects/f8/f88673368cf2305d150b35cbf72fb7b2267c1e19 +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9bec7e8b1980155e375c12e4656fcc4903f0bda +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9c910948d26f6e6fd92728aa259cde0f91ee421 +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9e4ff760b11244522bce898a4a0ebab1dd4520e +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9e40e4713ecd899d3429844049bd8b275a44982 +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9f57cf8b0743cd7b19aea4d30b1a5834e6dea40 +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9ff2b9241e8f39d99852969896358502023b02b +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f92ce93d42da91a95d921efd1532a1dff479a7a9 +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f93dad41a57680ecb0e0d65a3ca5776f608beb0b +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f93dee2f747d1f96dc4fb4f20b82aca07869a4bd +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f95ca0ad69f3111113542f115cc1b48f656129ca +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f95e9a960a796d7582c3cebff6fe3e5333164911 +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f96c84e93272817d89dc0350484e8cd40c17bd53 +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f97a7ab5f1e3230a1abbc95156ff73d88413134e +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f97d90b3fe08a7728d4ac23379dccac280ed694f +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f922d803219b7c24b1e510c1f187ec23c288e0ff +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f970f8e68b06d60603af52120056ff2eb66ac75d +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f985df2d8681c21b01e9bfd97f0b7202398944fa +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9012db5040e08d07a22a620dcc405cdc3972ee5 +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9500ef831484ce2c2e69bbb02fe9ec23af93d9b +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9507b69aac25a8752c88e92533b3bd03bad90cc +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9758a99ea9ffe42a2473394ec9f4bbda6c41276 +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f9758cb569fb20fe29e437112458f445d8ed5080 +/.gradle-user-home/caches/neoformruntime/assets/objects/f9/f95804a9685ba71d5e365ab01ea206e620d1ad63 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa7c0f7aa58bb840ede0c7eef5428779d64ad67d +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa35a51bb74a4a6cf0c48161342db5a8577f13e5 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa46fa9128075af6cbd423fd52aada024932a82e +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa66a080afaf3d8a87939789053b326e76e43323 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa66f10bb722a0e77a1bd2250501d53a936477c6 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa85b9e7e54c36c9f9d0249ca739444b5e3bb66c +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa138f9ab5a15dd9507b033c5948b1de357ed1f8 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa373b2d51876345ba5ac309fcc3f2536398caf0 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa890e6daf87c9fa6d7a5eee6a0ef29e80efc7cf +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa0958c80d46b700cb620e27fa95fce58c8aed90 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa2719bb68297a235f970cf1f7bc105a5acf90c9 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa51289eabe53d6440a6139d62f463ae645f6d58 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fa631962fecd531873b9d9c9639f1af56a222d39 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/faa54c39b08b83ed77c3ea076737778e7f92ead8 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fabdf2e8febd37bfedea743f547e1ec09e7b0bfa +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fac082b27d0637fec11f0f150c440a44b13afa8a +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fad8acc222de5de75fab16d2fa1698d3161a893e +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fad36ee27d0f4684ff6b52147c19b7a50583fdaa +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/faddf6a4f633983c0582b3434bd5edc14fcdc648 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/fae1cecfc29f67926d47701932a161572b1929c7 +/.gradle-user-home/caches/neoformruntime/assets/objects/fa/faf7717be4970aa108ad24c4ce22257c09a06ee6 +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fb00d15fdc16cadb33091b3af851bfa10faa0e1c +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fb4a558d5e26a519aaf79f0ca351690ca55cc867 +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fb6e21a81ba507e3b8dd486b3d47848e43479794 +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fb7b6292644e6255751b21196663ce864cc764bd +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fb74a5025ef167431e0d070b07095944f2406c0a +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fb79eb6d6a8cd4421a89d3fa03855518af4b1a79 +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fb36173ad2d8fa5dc3bec16bffe9ca2aa5514d6a +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fbb55f4189b2c02105b54c30b54f356c85bbbbd1 +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fbb8115856475678b59b9c923a17bb3c1c685629 +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fbcce88e0a8f7e3dc831d2ac296dc238cbc2ec5e +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fbd17ce3ea0f054c54081c25eca2cc6570ee496a +/.gradle-user-home/caches/neoformruntime/assets/objects/fb/fbf6e8e09bfcb1d95a8795b5e5b2a9cebbb4c009 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fc3c5a15ca3126b41e55b14f6b93b32fae0e6ec4 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fc4cd4adc54009ecb2f72abcf85f9449d5c56613 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fc5c06d978f498bdb2bcf2deb36c6864bc6b01de +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fc7e49c67bffc811f02ea9fef1cf893a15317003 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fc857c1990d4bc7c157f4f8367ca4af0bd6168a2 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fc919c8e2069fdc70876a85251c9839ff48697e0 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fc30546a46675b2a1d6893636f15dd7343f2ac11 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fc67392704eb817ccec3043ebbadb1bd1a8879c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fca594412f2e0ff650819f3b0665a8dba1493f39 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fcc0ef464d25f5a9ab5e0c8bfb28742cb4af4c66 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fcc5c11ceb862e1fc2d50244dba66c7fe9d929bf +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fccc80974524000a83635308c53a645d0d1a2a97 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fcd6c4cb3bd169eaaf9f609fa143959b4e259f52 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fcdb96b7b25ecdbc51f6de7093019a2135a4859c +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fcec7c8c7fee774bda4d6ae9a2df7d46e272c369 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fcec8e0f15e782e2c3a01a21eadaa09a7a1172b4 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fcf124bd16154e0500ed8df76666ea3aef43b1f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fcfacc37f008476785db7bd0b95d1e00836697c0 +/.gradle-user-home/caches/neoformruntime/assets/objects/fc/fcfcdced92d1ea40b586165e0c043736308d7f67 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd1c4105ae5f14595ee6dc230594740d8d809f0b +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd1f1fd42cd32a5b5cea52a9c340a753587fc450 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd2a15ba3147d954e840e76bffe5ffdd89a07a51 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd8a2120904453bd0f411ef122abb0096f07b82c +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd9f79c0bf153332df5edf59b3fadb5f93539a30 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd18d34fa8668ce814ecfef088fef9bc2b0de50b +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd27e5e8ab5f65e279180333ff6b5d952f639d62 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd65fc9dcab76906d5d4cb1d8949cbdced3c3646 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd72a5f970252b07213768276904f6f77c8c1697 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd72bc03228180b5397a76cb0f2c93852a40ba4d +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd5652ef33d5add0b169e3aacbbcd6cc00ab555e +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd92259b2665792127b52ba95e69dc8e017868ec +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fd8953047707f4ab8fef40ed4e55bf07b2217df9 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fda460fce216de1ba1302a0d4e3c2fc575550fa6 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fdbcfc0f24f8cc955cac639eb49ba0569f0d7253 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fdc7b34ca4e848c6230a8601c873ba06104b6ec3 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fdc088f8ad2a48e49b3b6a6bab62abe20596d0e6 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fddd20faa0da21da79b19e89f1eb756c5218d0cd +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fdf18a3512fd1d2ce62b19865d4312fcc343cd36 +/.gradle-user-home/caches/neoformruntime/assets/objects/fd/fdf2347d0f787cba3b39312138f26acbb26a0ba2 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/fe1de3c384b47f8ea46120a90c020adbfe913819 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/fe4b76487891b4bbc702d84cd2623b7b5df5b7da +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/fe6f533990f01233c6f741dea98780d9513e1dc3 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/fe80b22bc6159a72e19acc60e1d36b5db1c67d3c +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/fe185fa59f21659207064439e17039bb39fbd73a +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/fe440be99066e6efcdb809c00d706bc62a500184 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/fe5294afdbfe6561a361ecb560b331c7447ac63c +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/fe9145d6352ff30799568436e7b6d0ea2b05afb7 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/feacefb3c252238ed5d74d36386f187ca2cfc4f9 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/feaf23df11048587e92792a7afbbeb560c4556f7 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/febbe68cf8ee59dad874785d4316b9eea1168163 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/febd4bf87f845f6bb10ffd8ffa85219052f3396d +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/febd527db3b25563c613c8c86bcfca56a51881d9 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/fec5a0e035b1d105c73f18743e4bfbcd45c3f994 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/fee4387ba350fb2d9dd83a3f6c0b9c08ae40be27 +/.gradle-user-home/caches/neoformruntime/assets/objects/fe/feeee313beb55cf6d45b2f99c1bc23ec0a748cd9 +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ff6a6d0cbb51b9f94f014b5fb99ff5f4755ddc02 +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ff12be1d1d9b1334b94aede21ee315d2c183a764 +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ff13ffdb77813d916bd2cc25c2f3ac3d872a6313 +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ff59d8e9e10ed72b0cb83cf4af2b49b59205485d +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ff0253a660370841a8e7a1e3370c66c0e3a29dac +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ff70366cf4a0a96784e0b106d1fba62c55dc9bcc +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ff85720a0188679f7e861a96ae25f6230fd895e9 +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ffb94b364eb694fec2cdc9ee412f52f7ada6070c +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ffb6738eb0cf2bb20b07aa3304036cf470a9e7fb +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ffbfafc39d2d3d513c6860cb3c2467ac33429bbb +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ffc27e79f6d191154702610ec056e106bc051208 +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ffc3155e5ebf3662feaa6dc6413be690c24f3633 +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ffc4776b16f5a75e1c7364e41f3b31455756c176 +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/ffd59d56815c269515151dc71655b091a7bc5729 +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/fff2b8b3cc447917102d8109f4da8f87da040656 +/.gradle-user-home/caches/neoformruntime/assets/objects/ff/fff53a8f308c1fd78641188f635e01ef29eba61c +/.gradle-user-home/caches/neoformruntime/intermediate_results/applyNeoforgePatches_ea68325795f05221fc082bfdefceb1ddb19099f5.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/applyNeoforgePatches_ea68325795f05221fc082bfdefceb1ddb19099f5_output.zip +/.gradle-user-home/caches/neoformruntime/intermediate_results/applyNeoforgePatches_ea68325795f05221fc082bfdefceb1ddb19099f5_outputRejects.zip +/.gradle-user-home/caches/neoformruntime/intermediate_results/compiledWithNeoForge_51fa4c46ae5545ac5e0ed76c029f7715bdaf041b.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/compiledWithNeoForge_51fa4c46ae5545ac5e0ed76c029f7715bdaf041b_output.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/decompile_502b55c4c463a8f92a1792957292b9b1c83e66df.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/decompile_502b55c4c463a8f92a1792957292b9b1c83e66df_output.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/extractServer_b3b348be88b350d227a427020f0d25849e5848fe.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/extractServer_b3b348be88b350d227a427020f0d25849e5848fe_output.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/inject_2af611002f720f6c1dddbf9b19767b32937b49f4.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/inject_2af611002f720f6c1dddbf9b19767b32937b49f4_output.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/merge_630afe1b1dacfdbe7fe9f0132a862de28b15a5a2.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/merge_630afe1b1dacfdbe7fe9f0132a862de28b15a5a2_output.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/mergeMappings_d7f21cd23229c239f32c354cb556902c0292a092.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/mergeMappings_d7f21cd23229c239f32c354cb556902c0292a092_output.tsrg +/.gradle-user-home/caches/neoformruntime/intermediate_results/patch_258a5331e3a1f4ce14b42ed43de17a62f777f790.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/patch_258a5331e3a1f4ce14b42ed43de17a62f777f790_output.zip +/.gradle-user-home/caches/neoformruntime/intermediate_results/patch_258a5331e3a1f4ce14b42ed43de17a62f777f790_outputRejects.zip +/.gradle-user-home/caches/neoformruntime/intermediate_results/recompile_a882205470ffba0b26de3a5c16bd70d02b68a635.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/recompile_a882205470ffba0b26de3a5c16bd70d02b68a635_output.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/rename_925ef2ae5853ed92ce1762b4dac11dcf1e4d233d.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/rename_925ef2ae5853ed92ce1762b4dac11dcf1e4d233d_output.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/sourcesAndCompiledWithNeoForge_a754062ad9aa3638cd231f591971e0e6bbf73b3a.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/sourcesAndCompiledWithNeoForge_a754062ad9aa3638cd231f591971e0e6bbf73b3a_output.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/sourcesWithNeoForge_b059c6c4589c3e6d7b5a3146936707e10a9f13c4.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/sourcesWithNeoForge_b059c6c4589c3e6d7b5a3146936707e10a9f13c4_output.zip +/.gradle-user-home/caches/neoformruntime/intermediate_results/stripClient_5bedf0cb5eb5a3b5464603a273feae32c6fdfbc2.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/stripClient_5bedf0cb5eb5a3b5464603a273feae32c6fdfbc2_output.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/stripClient_5bedf0cb5eb5a3b5464603a273feae32c6fdfbc2_resourcesOutput.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/stripServer_4d5a4ecb2822ee25bdbc7f0fb514840ad585ca8d.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/stripServer_4d5a4ecb2822ee25bdbc7f0fb514840ad585ca8d_output.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/stripServer_4d5a4ecb2822ee25bdbc7f0fb514840ad585ca8d_resourcesOutput.jar +/.gradle-user-home/caches/neoformruntime/intermediate_results/transformSources_e5c0996ed24235387d429d0cfe0db1b27dd215df.txt +/.gradle-user-home/caches/neoformruntime/intermediate_results/transformSources_e5c0996ed24235387d429d0cfe0db1b27dd215df_output.zip +/.gradle-user-home/caches/neoformruntime/intermediate_results/transformSources_e5c0996ed24235387d429d0cfe0db1b27dd215df_stubs.jar +/.gradle-user-home/caches/neoformruntime/_2e62925dcda4b0b218487947e7c8a06a0622d8f2.lock +/.gradle-user-home/caches/neoformruntime/_3fd57c5e16faeed21398b26d7666e481775f4e40.lock +/.gradle-user-home/caches/neoformruntime/_03a10874221a6944453ee95eebea6dd3e4c1c5ab.lock +/.gradle-user-home/caches/neoformruntime/_6f32e88ea7266c9233afac4ad8b6a4fb75860344.lock +/.gradle-user-home/caches/neoformruntime/_7d01cb2f8a7739ab6a93dba68b0dc87639ae1a0b.lock +/.gradle-user-home/caches/neoformruntime/_7e2e971a3e119bef15aea5e43dd79f427e301e97.lock +/.gradle-user-home/caches/neoformruntime/_9e44ddbefe205dfb2cf9e76159977224b44ba38a.lock +/.gradle-user-home/caches/neoformruntime/_21fec2fbf145c9aac4d80b94907fd880bfe6308f.lock +/.gradle-user-home/caches/neoformruntime/_309da66161267ea6b2c12617a6653be58a323b68.lock +/.gradle-user-home/caches/neoformruntime/_6719d9757030f3a6bc11f8296334f9d63c56c882.lock +/.gradle-user-home/caches/neoformruntime/_9193a61ef630b29f6713a48135db638b356007d6.lock +/.gradle-user-home/caches/neoformruntime/_54839fb6b03aa65e523dd97474b3d8410391c0e1.lock +/.gradle-user-home/caches/neoformruntime/_87922f75812a4dd0d34e668534fa3b381772517e.lock +/.gradle-user-home/caches/neoformruntime/_187912ab7cd7f210a94f71e222e3ca17fc7e7933.lock +/.gradle-user-home/caches/neoformruntime/_468080c00c20d8090c69c736c771eff822bfdb2d.lock +/.gradle-user-home/caches/neoformruntime/_a8cbad858084d9bdc05a192fabd1a620ffccee69.lock +/.gradle-user-home/caches/neoformruntime/_ac9b5d095664962c4ee832a962aac635c5ec64ec.lock +/.gradle-user-home/caches/neoformruntime/_b7f065b080bc9da57e6f6530ed42c10da62d2f43.lock +/.gradle-user-home/caches/neoformruntime/_b162e030bd91c94b155e537318073a1dab368110.lock +/.gradle-user-home/caches/neoformruntime/_bb6fcd3ee5ea5437ccbf70124f3652b7824e1833.lock +/.gradle-user-home/caches/neoformruntime/_c49918df27b140ce1193692e631cfa0935692828.lock +/.gradle-user-home/caches/neoformruntime/_f31f3b6b054224ecf2c6d35298fe38fb78639739.lock +/.gradle-user-home/caches/neoformruntime/_f128b015b352bfbb8a46e0d5084cd48381daeda4.lock +/.gradle-user-home/caches/neoformruntime/nfrt_cache_cleanup.state +/.gradle-user-home/caches/CACHEDIR.TAG +/.gradle-user-home/daemon/9.2.1/daemon-25340.out.log +/.gradle-user-home/daemon/9.2.1/registry.bin +/.gradle-user-home/daemon/9.2.1/registry.bin.lock +/.gradle-user-home/daemon/CACHEDIR.TAG +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/management/jmxremote.access +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/management/jmxremote.password.template +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/management/management.properties +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/security/policy/limited/default_local.policy +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/security/policy/limited/default_US_export.policy +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/security/policy/limited/exempt_local.policy +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/security/policy/unlimited/default_local.policy +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/security/policy/unlimited/default_US_export.policy +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/security/policy/README.txt +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/security/java.policy +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/security/java.security +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/jaxp.properties +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/logging.properties +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/net.properties +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/conf/sound.properties +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/win32/bridge/AccessBridgeCallbacks.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/win32/bridge/AccessBridgeCalls.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/win32/bridge/AccessBridgePackages.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/win32/jawt_md.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/win32/jni_md.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/classfile_constants.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/jawt.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/jdwpTransport.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/jni.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/jvmti.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/include/jvmticmlr.h +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.base.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.compiler.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.datatransfer.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.desktop.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.instrument.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.logging.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.management.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.management.rmi.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.naming.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.net.http.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.prefs.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.rmi.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.scripting.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.se.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.security.jgss.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.security.sasl.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.smartcardio.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.sql.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.sql.rowset.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.transaction.xa.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.xml.crypto.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/java.xml.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.accessibility.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.attach.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.charsets.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.compiler.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.crypto.cryptoki.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.crypto.ec.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.crypto.mscapi.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.dynalink.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.editpad.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.hotspot.agent.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.httpserver.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.incubator.vector.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.internal.ed.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.internal.jvmstat.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.internal.le.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.internal.opt.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.internal.vm.ci.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.internal.vm.compiler.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.internal.vm.compiler.management.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jartool.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.javadoc.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jcmd.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jconsole.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jdeps.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jdi.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jdwp.agent.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jfr.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jlink.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jpackage.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jshell.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jsobject.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.jstatd.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.localedata.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.management.agent.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.management.jfr.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.management.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.naming.dns.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.naming.rmi.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.net.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.nio.mapmode.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.random.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.sctp.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.security.auth.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.security.jgss.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.unsupported.desktop.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.unsupported.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.xml.dom.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/jmods/jdk.zipfs.jmod +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/aes.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/asm.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/c-libutl.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/cldr.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/icu.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/public_suffix.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/siphash.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/unicode.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/wepoll.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.base/zlib.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.compiler/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.compiler/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.compiler/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.datatransfer/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.datatransfer/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.datatransfer/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/colorimaging.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/freetype.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/giflib.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/harfbuzz.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/jpeg.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/lcms.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/libpng.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.desktop/mesa3d.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.instrument/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.instrument/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.instrument/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.logging/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.logging/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.logging/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.management/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.management/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.management/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.management.rmi/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.management.rmi/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.management.rmi/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.naming/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.naming/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.naming/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.net.http/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.net.http/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.net.http/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.prefs/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.prefs/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.prefs/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.rmi/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.rmi/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.rmi/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.scripting/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.scripting/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.scripting/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.se/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.se/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.se/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.security.jgss/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.security.jgss/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.security.jgss/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.security.sasl/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.security.sasl/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.security.sasl/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.smartcardio/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.smartcardio/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.smartcardio/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.sql/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.sql/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.sql/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.sql.rowset/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.sql.rowset/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.sql.rowset/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.transaction.xa/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.transaction.xa/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.transaction.xa/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml/bcel.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml/dom.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml/jcup.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml/xalan.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml/xerces.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml.crypto/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml.crypto/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml.crypto/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/java.xml.crypto/santuario.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.accessibility/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.accessibility/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.accessibility/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.attach/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.attach/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.attach/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.charsets/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.charsets/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.charsets/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.compiler/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.compiler/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.compiler/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.cryptoki/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.cryptoki/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.cryptoki/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.cryptoki/pkcs11cryptotoken.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.cryptoki/pkcs11wrapper.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.ec/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.ec/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.ec/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.mscapi/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.mscapi/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.crypto.mscapi/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.dynalink/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.dynalink/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.dynalink/dynalink.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.dynalink/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.editpad/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.editpad/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.editpad/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.hotspot.agent/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.hotspot.agent/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.hotspot.agent/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.httpserver/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.httpserver/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.httpserver/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.incubator.vector/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.incubator.vector/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.incubator.vector/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.ed/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.ed/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.ed/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.jvmstat/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.jvmstat/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.jvmstat/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.le/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.le/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.le/jline.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.le/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.opt/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.opt/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.opt/jopt-simple.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.opt/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.vm.ci/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.vm.ci/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.vm.ci/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.vm.compiler/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.vm.compiler/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.vm.compiler/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.vm.compiler.management/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.vm.compiler.management/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.internal.vm.compiler.management/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jartool/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jartool/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jartool/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.javadoc/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.javadoc/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.javadoc/jquery.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.javadoc/jqueryUI.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.javadoc/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jcmd/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jcmd/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jcmd/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jconsole/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jconsole/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jconsole/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jdeps/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jdeps/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jdeps/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jdi/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jdi/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jdi/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jdwp.agent/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jdwp.agent/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jdwp.agent/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jfr/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jfr/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jfr/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jlink/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jlink/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jlink/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jpackage/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jpackage/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jpackage/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jshell/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jshell/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jshell/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jsobject/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jsobject/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jsobject/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jstatd/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jstatd/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.jstatd/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.localedata/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.localedata/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.localedata/cldr.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.localedata/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.localedata/thaidict.md +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.management/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.management/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.management/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.management.agent/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.management.agent/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.management.agent/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.management.jfr/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.management.jfr/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.management.jfr/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.naming.dns/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.naming.dns/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.naming.dns/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.naming.rmi/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.naming.rmi/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.naming.rmi/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.net/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.net/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.net/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.nio.mapmode/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.nio.mapmode/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.nio.mapmode/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.random/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.random/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.random/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.sctp/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.sctp/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.sctp/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.security.auth/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.security.auth/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.security.auth/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.security.jgss/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.security.jgss/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.security.jgss/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.unsupported/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.unsupported/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.unsupported/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.unsupported.desktop/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.unsupported.desktop/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.unsupported.desktop/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.xml.dom/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.xml.dom/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.xml.dom/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.zipfs/ADDITIONAL_LICENSE_INFO +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.zipfs/ASSEMBLY_EXCEPTION +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/legal/jdk.zipfs/LICENSE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/jfr/default.jfc +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/jfr/profile.jfc +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/security/blocked.certs +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/security/cacerts +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/security/default.policy +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/security/public_suffix_list.dat +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/classlist +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/ct.sym +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/fontconfig.bfc +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/fontconfig.properties.src +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/jawt.lib +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/jrt-fs.jar +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/jvm.cfg +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/jvm.lib +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/modules +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/psfont.properties.ja +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/psfontj2d.properties +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/src.zip +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/tzdb.dat +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/lib/tzmappings +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/.ready +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/NOTICE +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/provisioned.ok +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2/release +/.gradle-user-home/jdks/CACHEDIR.TAG +/.gradle-user-home/jdks/eclipse_adoptium-21-amd64-windows.2.reserved.lock +/.gradle-user-home/jdks/OpenJDK21U-jdk_x64_windows_hotspot_21-any-vendor-21.0.10_7.zip +/.gradle-user-home/jdks/OpenJDK21U-jdk_x64_windows_hotspot_21-any-vendor-21.0.10_7.zip.lock +/.gradle-user-home/native/0.2.8/x86_64-windows-gnu/gradle-fileevents.dll +/.gradle-user-home/native/0.2.8/x86_64-windows-gnu/gradle-fileevents.dll.lock +/.gradle-user-home/native/660c5614fbf4a5f2a75b1949f50a0caf5cd603558e7d8a26e50b933a0cfb79d1/windows-amd64/native-platform.dll +/.gradle-user-home/native/660c5614fbf4a5f2a75b1949f50a0caf5cd603558e7d8a26e50b933a0cfb79d1/windows-amd64/native-platform.dll.lock +/.gradle-user-home/native/jansi/1.18/windows64/jansi.dll +/.gradle-user-home/notifications/9.2.1/release-features.rendered +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/init.d/readme.txt +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/agents/gradle-instrumentation-agent-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/aws-java-sdk-core-1.12.780.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/aws-java-sdk-kms-1.12.780.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/aws-java-sdk-s3-1.12.780.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/aws-java-sdk-sts-1.12.780.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/bcpg-jdk18on-1.81.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/bcprov-jdk18on-1.81.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/bcutil-jdk18on-1.81.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/dd-plist-1.27.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/google-api-client-1.34.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/google-api-services-storage-v1-rev20220705-1.32.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/google-http-client-1.42.2.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/google-http-client-apache-v2-1.42.2.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/google-http-client-gson-1.42.2.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/google-oauth-client-1.34.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-antlr-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-base-ide-plugins-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-bean-serialization-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-build-cache-http-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-build-init-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-build-profile-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-code-quality-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-composite-builds-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-configuration-cache-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-configuration-cache-base-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-core-serialization-codecs-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-daemon-server-worker-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-declarative-dsl-tooling-builders-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-dependency-management-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-dependency-management-serialization-codecs-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-ear-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-encryption-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-enterprise-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-flow-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-graph-isolation-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-graph-serialization-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-guava-serialization-codecs-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-ide-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-ide-native-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-ide-plugins-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-instrumentation-declarations-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-isolated-action-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-ivy-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-jacoco-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-java-compiler-plugin-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-java-platform-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-javadoc-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-kotlin-dsl-provider-plugins-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-kotlin-dsl-tooling-builders-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-language-groovy-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-language-java-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-language-jvm-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-language-native-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-maven-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-platform-base-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-platform-jvm-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-platform-native-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugin-development-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugin-use-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugins-application-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugins-distribution-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugins-groovy-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugins-java-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugins-java-base-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugins-java-library-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugins-jvm-test-fixtures-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugins-jvm-test-suite-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugins-test-report-aggregation-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-plugins-version-catalog-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-publish-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-reporting-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-resources-gcs-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-resources-s3-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-resources-sftp-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-scala-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-security-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-signing-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-software-diagnostics-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-stdlib-serialization-codecs-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-test-kit-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-test-suites-base-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-testing-base-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-testing-base-infrastructure-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-testing-junit-platform-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-testing-jvm-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-testing-jvm-infrastructure-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-testing-native-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-toolchains-jvm-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-tooling-api-builders-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-tooling-native-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-unit-test-fixtures-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-version-control-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-war-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-workers-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/gradle-wrapper-main-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/grpc-context-1.27.2.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/ivy-2.5.3.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/jatl-0.2.3.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/jmespath-java-1.12.780.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/jna-5.17.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/jna-platform-5.17.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/joda-time-2.14.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/jsch-0.2.16.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/maven-builder-support-3.9.5.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/maven-model-3.9.5.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/maven-repository-metadata-3.9.5.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/maven-settings-3.9.5.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/maven-settings-builder-3.9.5.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/opencensus-api-0.31.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/opencensus-contrib-http-util-0.31.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/org.eclipse.jgit.ssh.apache.agent-7.2.1.202505142326-r.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/org.eclipse.jgit.ssh.apache-7.2.1.202505142326-r.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/org.eclipse.jgit-7.2.1.202505142326-r.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/plexus-cipher-2.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/plexus-interpolation-1.26.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/plexus-sec-dispatcher-2.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/plexus-utils-3.5.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/snakeyaml-2.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/sshd-osgi-2.15.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/plugins/sshd-sftp-2.15.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/annotations-24.0.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/ant-1.10.15.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/ant-antlr-1.10.15.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/ant-launcher-1.10.15.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/antlr4-runtime-4.7.2.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/asm-9.8.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/asm-commons-9.8.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/asm-tree-9.8.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/commons-codec-1.18.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/commons-compress-1.26.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/commons-io-2.15.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/commons-lang3-3.17.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/error_prone_annotations-2.36.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/failureaccess-1.0.3.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/fastutil-8.5.2-min.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-api-metadata-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-base-asm-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-base-diagnostics-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-base-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-base-services-groovy-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-cache-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-cache-base-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-cache-local-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-cache-packaging-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-cache-spi-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-configuration-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-events-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-init-specs-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-init-specs-api-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-operations-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-operations-trace-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-option-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-process-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-build-state-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-classloaders-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-cli-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-client-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-concurrent-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-configuration-problems-base-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-core-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-core-api-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-core-flow-services-api-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-core-kotlin-extensions-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-daemon-main-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-daemon-protocol-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-daemon-server-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-daemon-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-declarative-dsl-api-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-declarative-dsl-core-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-declarative-dsl-evaluator-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-declarative-dsl-internal-utils-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-declarative-dsl-provider-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-declarative-dsl-tooling-models-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-enterprise-logging-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-enterprise-operations-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-enterprise-workers-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-execution-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-file-collections-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-file-operations-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-file-temp-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-file-watching-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-fileevents-0.2.8.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-files-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-functional-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-gradle-cli-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-gradle-cli-main-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-groovy-loader-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-hashing-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-input-tracking-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-installation-beacon-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-instrumentation-agent-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-instrumentation-reporting-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-internal-instrumentation-api-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-io-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-java-api-extractor-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-jvm-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-kotlin-dsl-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-kotlin-dsl-extensions-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-kotlin-dsl-shared-runtime-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-kotlin-dsl-tooling-models-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-launcher-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-logging-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-logging-api-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-messaging-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-model-core-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-model-groovy-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-model-reflect-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-native-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-normalization-java-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-persistent-cache-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-problems-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-problems-api-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-problems-rendering-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-process-memory-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-process-services-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-report-rendering-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-request-handler-worker-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-resources-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-resources-http-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-runtime-api-info-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-scoped-persistent-cache-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-serialization-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-service-lookup-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-service-provider-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-service-registry-builder-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-service-registry-impl-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-snapshots-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-software-features-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-software-features-api-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-stdlib-java-extensions-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-stdlib-kotlin-extensions-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-time-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-toolchains-jvm-shared-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-tooling-api-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-tooling-api-provider-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-versioned-cache-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-worker-main-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gradle-wrapper-shared-9.2.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-ant-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-astbuilder-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-datetime-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-dateutil-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-docgenerator-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-groovydoc-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-json-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-nio-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-templates-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/groovy-xml-4.0.28.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/gson-2.13.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/guava-33.4.6-jre.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/httpclient-4.5.14.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/httpcore-4.4.14.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jackson-annotations-2.16.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jackson-core-2.16.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jackson-databind-2.16.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jackson-datatype-jdk8-2.16.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jackson-datatype-jsr310-2.16.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jansi-1.18.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/javaparser-core-3.27.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/javax.inject-1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jcifs-1.3.17.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jcl-over-slf4j-2.0.17.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jsoup-1.15.3.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jspecify-1.0.0-no-module-annotation.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jsr305-3.0.2.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/jul-to-slf4j-2.0.17.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-assignment-compiler-plugin-embeddable-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-build-tools-impl-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-compiler-embeddable-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-daemon-embeddable-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-reflect-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-sam-with-receiver-compiler-plugin-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-script-runtime-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-scripting-common-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-scripting-compiler-embeddable-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-scripting-compiler-impl-embeddable-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-scripting-jvm-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-scripting-jvm-host-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlin-stdlib-2.2.20.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlinx-coroutines-core-jvm-1.10.2.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlinx-serialization-core-jvm-1.9.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kotlinx-serialization-json-jvm-1.9.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/kryo-2.24.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/log4j-over-slf4j-2.0.17.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/minlog-1.2.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-freebsd-amd64-libcpp-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-linux-aarch64-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-linux-aarch64-ncurses5-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-linux-aarch64-ncurses6-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-linux-amd64-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-linux-amd64-ncurses5-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-linux-amd64-ncurses6-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-osx-aarch64-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-osx-amd64-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-windows-aarch64-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-windows-aarch64-min-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-windows-amd64-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-windows-amd64-min-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-windows-i386-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/native-platform-windows-i386-min-0.22-milestone-29.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/objenesis-2.6.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/qdox-1.12.1.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/slf4j-api-2.0.17.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/lib/tomlj-1.0.0.jar +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/LICENSE +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/NOTICE +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1/README +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1-bin.zip.lck +/.gradle-user-home/wrapper/dists/gradle-9.2.1-bin/2t0n5ozlw9xmuyvbp7dnzaxug/gradle-9.2.1-bin.zip.ok +/.gradle-user-home/wrapper/dists/CACHEDIR.TAG diff --git a/LICENSE.txt b/LICENSE.txt new file mode 100644 index 0000000..b64bc64 --- /dev/null +++ b/LICENSE.txt @@ -0,0 +1,24 @@ +MIT License + +Copyright (c) 2023 NeoForged project + +This license applies to the template files as supplied by github.com/NeoForged/MDK + + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..a42e061 --- /dev/null +++ b/README.md @@ -0,0 +1,117 @@ +# Batteries + +Batteries is a tech mod for Minecraft using NeoForge. It's a port of my old 1.16 Batteries mod, with some additional features. + +The mod focuses on charging items in your inventory in a configurable way. + +This mod was born out of frustration with having a "power-hungry" item that sucked up all battery charge, leaving other items in my inventory with no charge. + +Instead, each battery in this mod lets you configure what and how it charges. + +## Features + +### Batteries +![Screenshot1.png](Screenshot1.png) + +The mod adds a battery progression with multiple tiers: + +- Basic Battery +- Advanced Battery +- Elite Battery +- Ultimate Battery +- Ender Battery +- Creative Battery + +Batteries can be charged in your choice of the Charger (included in this mod) or any other mod's charger functionality. + +Each battery can be configured to charge: + +- hotbar items +- main inventory items +- worn armor and offhand items +- nearby machines + +The battery GUI also supports: + +- whitelist and blacklist mode: only charge the things you want to charge +- fair charging: don't let power-hungry items sap all your battery's energy; a battery configred with fair charging will charge items to equilibrium + +Ender Batteries can be linked to an Ender Charger for remote charging while carried by the player. + +### Chargers +![Screenshot4.png](Screenshot4.png) + +The mod includes two charger blocks: + +- Charger +- Ender Charger + +The regular Charger accepts normal batteries and charges them from inserted power. + +The Ender Charger accepts a linked Ender Battery and sends energy into that linked battery while the charger remains loaded and the Ender battery is in the player's inventory. + +### Battery Block +![Screenshot3.png](Screenshot3.png) + +The Battery Block is a placeable energy storage block. + +It provides: + +- internal energy storage +- a configurable sided I/O GUI +- charge-level visuals on the block face +- capacity upgrades by crafting with batteries or additional Battery Blocks + +### Coal Generator + +The Coal Generator is a simple starter power source. + +It: + +- burns any furnace fuel +- generates configurable energy per tick +- outputs energy on all sides +- accepts fuel through its GUI +- accepts fuel automation from item insertion via hoppers or other mods' item transport +### Battery-Powered Gear +![Screenshot2.png](Screenshot2.png) + +The mod adds battery-powered variants of gear: + +- Diamond sword and tools +- Diamond armor +- Shield +- Bow + +Battery-powered items: + +- Are crafted with their respective item + one or more batteries +- Can have their energy capacity upgraded by crafting with additional batteries at any time +- Use energy instead of durability +- Use configurable additional energy per enchantment +- Stop functioning if out of energy, but don't break +- otherwise function identically to their non-powered versions + +Notably: + +- Mending and Unbreaking don't do anything on enchanted battery-powered items + +### Recipes and Upgrades + +- When crafting batteries or battery-powered items, they retain the charge they had, if any +- Batteries can be combined to make a new battery with larger capacity +- Battery Blocks can be combined with other Battery Blocks or Batteries to make a new Battery Block with larger capacity +- Battery-powered gear can similarly be upgraded with more battery storage +- Any recipe that takes a Battery or Battery Block can take one or more of those items to grant more energy capacity + +### Debug Commands + +The mod includes a `/batteries` command for testing and development. + +Current commands include: + +- `/batteries charge held|hotbar|inventory|all [amount]` +- `/batteries drain held|hotbar|inventory|all [amount]` +- `/batteries kit` + +`/batteries kit` places a chest in front of the player containing the vanilla materials and base gear needed to craft the mod content from scratch. \ No newline at end of file diff --git a/Screenshot1.png b/Screenshot1.png new file mode 100644 index 0000000000000000000000000000000000000000..294254638edcb775d77835b96e6ae4160f422445 GIT binary patch literal 43380 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

G*h(_% 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 Zwsg~8hN+o#*h+9jf&RgMO}?1y{{i9>>OTMg literal 0 HcmV?d00001 diff --git a/Screenshot2.png b/Screenshot2.png new file mode 100644 index 0000000000000000000000000000000000000000..962bde40becdf3389eb443da71418c5f99cd4f06 GIT binary patch literal 27218 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 literal 0 HcmV?d00001 diff --git a/Screenshot3.png b/Screenshot3.png new file mode 100644 index 0000000000000000000000000000000000000000..79b4df538fd4217eea9912eba29c7edb4fced90c GIT binary patch literal 35774 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 literal 0 HcmV?d00001 diff --git a/Screenshot4.png b/Screenshot4.png new file mode 100644 index 0000000000000000000000000000000000000000..c5deb780193a34364073bf5c8a88b61ef9225e7a GIT binary patch literal 374272 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�+LLvD;eLWs?NR=N zb@M#gT%ER`zWG7Gq~Q&lF6FNco;^Hw{yeozW{U&MEmqI`qmlI0iCk#-Q8cPge6=e7 zwAO4B?ScJXkEctPjVFl9wuwvYDBPIqxDJB1ZEPVw-6l~KqiimW>(k)1LhqTh&-6h?%bS@>`B_Q1?9ZO2LbayxG z^6mY+-*1>}=9)R@%o(R*i|yY|Ic-AQ51IjpO`d=pR7xvD{Rlx68JVJa%W(ta6@Tnn z`ox4R&kYCyoR{>5p*KvMISp9cs0F8Z^f<$&0grpCfJwRd1LHTde&BsjUET+>xBvVx z3}M=`SV%CY%s|TII|9-FR03mg=Z-j9Jvwl9AhWj@BVTqhKYQV8LGNqSiClw8mj1Id zIX<9>C{`UR4cq4c)A;7zC)3_vVk9%AhwWI3*?d(u9k0O8!4~X$^nx|7^wIuweg1WE zUon;AB_A3H{g#&*w1wH41DG5s(a?V%!qOlv0_M5{)E=x!<^o<{Cs5bc&~uS|N&OlW{zRT8>Q6_nouA^BL!D*u{1Iv8|$j~HEWlPII9(X}+K z667SZrVAR)mwjGKq?8_*Hm@Gp_MY78F5+oUwDiHG00CH{zUwiY(2 zs}Up2ZLk>d+)@5Khj+qm5qi^uopUCZmKpInb*(^x?NwVZzwT?%s_(wCLj?I?CcpfE!bXNiB&FJCQp;i3eTH%>*J*U*;Znb{3Qq zB}}hWLe#?A;wbY4K}q;7w9}--e~ujzv9iIojNI)FTZ0{?ym}!x?0q6FT!doPnVgVcz<3&Z_N%Iz&S8AD&{(1xACp4=??& zV%>faAqV(6Ab>^QFoNhrW?<~gBJ{hl3v3OZOiKhFR(dYau>;*bf-2xDufFvFUn*L* zx9FN-FrE_(ILzj6Aj@iV*`vz!Ij)7Co9^~3VgC5r;R@=lpSHFajbztuuB&U3q!^|v zhs2xn357$licDZvfy+hjp_+jmAY*TDA!2i9zV1T`CaqrHE@xI4#XKs;6(zhpTUvMLwUr2Too-H(*eyr3>clV{D^p4BYbOC~^visDvQ zt>6b-(MZXBQm-E~#@Pd8>sPo7cg&ZMq{8e2!O_Vk`LT9R2hMTV>z*CLl2+nj@Xxh@ z-?90^Xl+~=If+9AW^)(~KTG31E#)JuH&*64r=$x;&buPU3!-Ow(%surOnAV!$hxNfLx>ul@NB4R7dvExdr zmtVJRhRigN27h)#4j`!zWTgPJrZag%P4VX|KAiswFX6GFgp;+rwgygNOhb%7G$m|v zTl-`+X~;=$CDu4uwD~(?n$;R;JuFBi_7igXl-ADyDbKrds`L)GqWYhn+aZ+LL4T(} z3JDKGv}59oBQ7nsGjikM|13RgKGs_LzP!G{465t?gD3905nvWkr*LpAK%&-0@aCEn z+=-Cog)JO!OVrrT#_M&J*X^p$uIKZu2A{u=FpulgH3Dp*Dd|4PDvT75fJG=QHdev@ zM~*%wfLNT9{Fvj{LVGi*(8irXjfgSg^48@kI*61n<6im1$J(3681`0P#e*gCv7W>i zuM_w>FxmoEfp1z)=c^`*oy;rgJ=6bdV!XO#7#9ONzbO4|^J9PGPd=*vt3CV7eh5h3 z3drMK9{_~_)%wROE zr+t7y?O6L0+0}5FU79}0oKJd&N_P6pc?-@P$JkzFY>?FWhe056NZRP*lpala^I5({ zt-b_`>Ds7}=gyL1^tX8ZQmLlY2Ln#5QzwQRLr5m`)S^3ek{;>@SvGl23G+qHKI(H^ z&WVqbU7|!u!{1+w-{g}t~|4Ex|#f+TBYbCO#=fbS>s&d>Aal?l3<|1m}ihyrr2 zwg*cw+?LQ8i3`MLczBwfo^O{e#fgJg_2u7`P1QH2{Cl?r>Mp@5&xX66?oL$pvwEl& z0Jg&*Kbf+(R@jV13OH%Ua_~ckL8HR1NZoJE?$RW=?>dgpdKO@dn$ce9u=4RB3an7TQDMG2V_4t6^QC_TlF<#bK$0^UKa5y$P!(>0FBI#CKD848Ml+ z52H1;odS*21O7T>Dg~U^hKO$#v!;rnvJMb80KT<2q7eVPfSV|IrF4I6zA61NI@C8V zXCjnaDHO$*Y&iVx97EV`Y1Wfq#2Wy!IBY#GAGGpeViBEFR2&oA>Xi-5Pl7n#8W-m0 zdB5%B=O}F|nMiQh%rKNjGALi90Wzl=_Z1wYCNp%0zM?l_<4FV9QOy zuM)?UU&$~GzCQ8$K}8lUBqaPh{?0CHHQuDA=`xHL(`QydSQ!*|{Xx;xl+;P+(8 zANJ?H7kOSjarX8V?oFwxN?Q6B(+y$&r^j;Xj;r6{X5t@I$1SpQ@4xX7E&;{-Bf5YC z&{JY7Un+^xs3p^7Sjxks&%#jc9EM&$*O%pebN-pIWOzTy^R7vZ==qu9!f#Bp+`QFI%7YUPOQwJa z?~~6@qOa>3pJ{`!Zqv!c?Tr$iNRUI3I+muyQ<2Ehe+H%lCfUTzHA75z2p`c3`n&8P z3KZj*yEyC}av-q+9{*22ZRp>q+A#J=zbz5O&>e62Fu6b8Lji2d1-Lyo=uKK5*GqPu zQYptRfKM|B*`lJq#weK7w%z!zB~WqtI} zn0;;o{j{Ylf{N{wz!dqPrR=B?UtFL_#t#U>qP}aVz-W-e3+IQnI&#OR=rvYPxKpQo zW|SE4Pf9+~es^-zy=7Jm=gDqK->3+*77v;YUo@rjU(kO1$&M}c6o)jQ?( ztE&%S*$84sALpzN9--??2>Y)#o{q;`+SlGR*kk#x^?=H3t~xfu$Z<5F=47D(4h!U? z(-RI1JM<#ziDp%TIK3L2C3j`GC_G-4I`-V3LvP?cjr|*(Anp~y0e;ZFVji0>m7Hw% zkd3$f+{rdn{Fi?bGV`!&IodMDl?%~NSbou=DWw@HjNbsUV3ag!#KP*Kb(5ZH2jkbA?t7~{Su+&G`%mIW=5dCNc5e z`W9tchn)X$*8~6JyEww-E>66$r{@72QTPg0XgRTZHoq%3&vp$FL|*vz-)9$7WDxV` z?F1+9uZS-KHJ#6er_Yh_$EMm&FZrNolZEiH^RqJ+KZ)XarIpf%E<2I8^F;&R6*@K^ zd8HVsCmrCIkd}vDC$OgF*vO01(}9T=htDZ#H98f6;5fhi%i2juTxscBSd6?ljA{;D#S1DlFPX*!~KoRI^HT5$Gy z2Y1U!CPJSYqG?H;x={KhGj!K1Lt91fBH$775R%23_){A_t0ONeMs zTBgS}T!y-|dyk03|3SUv*-8g-7JmsbVYt8vSsG)pF&8#nJ5X)}QE5g(kOZ8$;x=iq!&cf#WRe=2&3UWNbp;1QE~??S;Piy;I# zT_Dlh|KH0ZI5oq3iSnL+@CTy*?OpLg!%Vsz$o(Gsp~J2ie;(le*!kUG)t?igJTBpM z55jAoT%0p*WuSsc!|zmh`yPOAS^w!5;tZ^sjxm&((fj3lrZC2326cnQCb27t09lJq zL>||qQsgq~kL-mD(MrH)7)f0){ZJhL5ec;S^>5!wd3A*w+UZpg(+g3EUn)U0_5LDv zgnqro51OYuGClzS*{SJi>1Z$=P|5ne=Y5EXXTo5stRX@%MOstAMuc)(J9Q#eNP5XM7Rq8g%nPcVR@x0Y;r<(q110z+?oNxyBEM^?^>kh1u?um$DwXmoTi z2TL#8zhklkgATvr|=AOgHxq(W;Q}9SNxOcJ#35~IuYNA3)0B1Pw(;XBM73Y z_yPTd{1kl2UE#x&Pq$|*C#wP!7ki>8lsfm54FFk3sLwaA{TPD0dx?iE-!HVZ4>y>J zr8DlWSK$PWI_P1m``h=U>5T?*b9`$t+}EJW4ST`%q6(!jHij;q69w$zW-{& zG`2(g8s86{ggTOtMHLPp2!72ElD=>RUa(k|(L#n;A4bbZbtl>$x;#bJp3eDoG<4cD zH1{7~In?}E#>91qo{qI}ew3CTeIQ^pun{UH^H(uQ4Trj%{0RBF&MiZaQFTvGGMcu3 z((Vy0(U+{eys)Rx@>0GSyfxjDQx;MEve44?9!{3xgdr{mXma{D+~s6))|c+lmGwth z-5rvdsHS7)TpH`E#Aes}??N;?WD`=>H}*vC>q}a-^3T5v0Q%+|$W~lIO^@MHq76$JhSqL{fn4rSJ1U@>GFK#3b9kBH< zA`=Rwv%gmdM!J)IP`e#UJTUYxjE!hD3|NN(-`#i`Y?ySs4qXa%`?uS{F6;FiFP;j` z-H!Zxp++*ZAeb(pESx<;t?9fks`f;rcOpu2yCBz#B(QR7CyLx&0+8N?r1ApD(i(dD znL$ThvDgxH341PaHNeh|WRITH1CN7?x3%u0Lnc#D4OoIJAPuT&mjJPK7cr=MsX88l zncd1BqCyYCsV7f{;!DsA`)Nf<1JI}fWXtlcXPOdHjpx0}>O!n}=Pa;W-k2tC3b!dl ziM?%CB?_hZs9AMr3V)Ouf%{`cw~jg8Sh2y`AJP}(klmYzF$*}SqHqKKj(~*R7RkQ8 z!-8q`9MKo$T%aJ3Z2Z+pw>k$xJzP1w#7byjiE;B*%%3il&Pr^n%(6gNbCgknj3T2) zqBFNrMHRfhtESh(n4Fa74;e#D(b-`wv96~z%#TX9HPbsWdi3`Qe^2Nz-SVc0+nimy zd8d7XMMB^!?1Owg9hd36rWP9`9P9u5iSO)$nNmX{xi=K**xm^eWZ2i;IX>+LWRUVK3Cl6Q0~uiT=*u3E@ew68Ao{(IL+7v!vFTX17Rlk>;> z*cn?{5p2A4ithS&hCkC#nx$Hr8#&R_fYACyOZf7HQ2Wwb(hjePvXYV{ z{BE+IBLu{gAmVDniT*}vd^6jG2jNTo7HJhyJ=mn4 z>;muHCTEG_0anCDXut$T<*k_;?b4NgOm~r*J zDpoV((;Gz$LwcR?Z}(`~phpIdIie+jISUr!Qnli|5_?T2WE^SxUm9rigO6*h8?MwW zF+By_SRc$1&3+X3Uu~44zeV-3vSnCR11WG917GG$lO<>YMIM@QZH>9cYdeRBBB^6- z<({DL1)9J#e1?UqQU2zlgRrgj&VPLTbyD*Qe9e@zm^$Ll{;gY2rFmjtz&0QI!Y`+p z!;z3tenqbtB~@H03t>zksgsTHJIu*6-$|!i;p6Lgsbs{t+7@9^OX7JC7O|(Gj7To zbK(AfXH{&?WPPD^&yDy}1uv??)4E)n%6M2iv@Lhsy=MLiT^SR)H4yx*x|6GU5 zEf~52tpSw?Ra=lf>wb?Q@ja|7%b;_!%i(2UpaN*PGHzu~vHLr6{saZ{f`J~o?qo;4 zk9|qr8folq{4cAeBHssp2|%As1JxI8X^iQ;RUx|!p8R~9Howls)w`&0_B`_M{nMA2 zXS%{UBH3-CXfY1QTNuj{#W-@&pVNCH^FT!+w%J-*Qyh@}FzLacuM-zpDD^nyfby;! z%HCd9+s6wv8A#Oex3e!zhz#mGl19U#LfH(`d<%#N+9%AqO21c&wg^869oR9D89J={ z5$H6#`1M!cQ4P{lMoRUqO!);=h$r8y`I3cNl==#4wQ?V+@_c^Yt>2|b_7&WC7UC@v zq&LFecD3-wD1}!ekVkCPFyO8=v7rQG4=EFqzhMx6czUTp35v;4JE@d~yldW2BHuLa zY+s?FFQ=Poq8+XOs)A3C^2}tQlI-SgG8ZqL!JbW@rLL+ zp|<`Xs)8)8SKpAoRamU1MS$N|JU`kyFIlPpCov*A!Wqg0puY%uQM; zkwDpHxhi*w>h+4~p^`G|m0q?(iYmiI;q(h?bYGqddnyfd4=*lWp}tT)exm&A$|9Gp z3w=TVl;6Cnz(N64pzJ>}DQ-oRMYJFR-jfFW8 z#r~u>PCMRu#p`{3z({SqP6Qj+`}cKMt3`V(104l(V9sF?BFUeGIhpeP#Afz1%cJ!Ft{h;P0 znhRz~a^W^S1qze!8&E1hl^RP947B3>8YyasW4X}HXxtO4?Sk1o^4J@S!afOETU}}+Rn@j}N^uP=9G{z0cOgAtd3b0Mk1YHYFTBuY z|CLnYc-Pc9xW@nNLI1)S+Pm?R)hFgy&RjE~; z%ASu#7iH7@F{(NnH~#TeZ?j%Q|LYHiS^v4nStPhS-$_d~yLEmjA+mlZT2PyCW;SLo zHFvX6J%|Qc4Bo1Y02~PFQ+R?ZeeL%@MkvB1f0}}6Q#8!{& zKZA?m)y3(K;((plA-fyaPl>7MPpUxML5W_Xsu^*ooid2Uz57#>Mw5g|DdSuW;Kw2l zStDD2Vaa$dzOIZf$#DX~k&l_EoQHp*nFHx8@BN^JuHARPgGU?DD0uC0rOSQ2je)HY zr+1}{)n7mB)Ue%i71Emv<8DJ9`WN#B1lqMYmyRaaC*n?;oPAKV&oq9-7-wndfj8F^ z|KQt+j?NI$-R{;6<@Vf60+;U2K~F`?n8U~pkFz|LHB!kITcAbhs15;q+C>M7b$=OMC%;P=)aMeFH)0pf9Xa-Dty@F)V+K0mh(1xSNKA# z@_SANW(xo)%=ju=TK#eR)%rxA4l)uGb3!Q{RDR=dn{wu*n!Z~AcH0+bLgAK4Zy5N> zK7lpnSaz!gBDRO8#LLCqo%5H>wkuE1;?cvz9d^dzoiUF~nd3i>x%?R*ZOH!depv}x zp26)__bpI2Z!|J68Ts123|kzyOF;BnD~#1w<~z#rZ(>5bgTzx#}v!nXfE$>~80Y?gASl96d*CSm_ z6GKWi>{^wN6Z)vop^E~VVm;n5zB?VD^+~yyfkskA{pPwFV+gG%+JDO6*1%{3@QqHL zdYW2ZkYTN6ajFRt!jTtsACskY=ktDjA~UkZJt`4jFofjoxXwZS#2irQKWjv6E%Zr! zM#AV&2JV5@YKqKWuuq`M=Z)nM#s5ic)}S#=^|AA}$gxf0KJND`tx7zPH|Uw-f`Wnf zsyh1>5fdZ ziLg2WZkX)a_VKh7G8xaMojvfj1UysIsN^0if?PHCVn3? z<50Ynt()vU-+%%iTE~^MdA(Or?aAhlbK2MW;(3|l2>g48zJCDy_ttke6IrkI9+ciD z9f?trU>wbc|0{(JKk7^Je)~Bt3+QE-0;Cd1z7tUGLGj+2&tWH8MHR8|;HzHu7s$YG zmT^dd29lFgA6Jn%crD5kq2bJ~y!39HxRQ}@=|JS}Bt`H$`?wV=&OJvy#aeIm1Zvc8 z%#yU*v_Zq9F9Hp2?_49x@(bTp7@OxBIMt<-9hq9T$|s@!n?O;MZ!l6N>FI`aK7d?L zrgiqCfbcZY^PQmM{z4%Se}(K2>S)u;b)#M8_5(3IYNiwT1R5^V=IFQFF1GT>mnca* zDRj_#7DtjBtm6_O{=rwpmnZTuG?OIrJu7d+y9_)c*az0D6sGv*fgs^LW6(Va%;w6@IJl!{>VYG9JJsvH_kbFYu)7 zO{~zfkU_}HiQpy)5iW3fqRZEdYoZuo!E5<-xb|;7b3B!m0>F1W3S%?F%Fv|~ep;!H zLmCj-XiFrny-@%mYs4|*P5v~<&nJr;M$(#OO*>doU!R&PQpzG=(QRO)gpSF0I{aU=)S=!a#i)V7MXVnmEETJT_>)o6v;UIwEHV(Ic%iMD zLLIf>HF1U0%hw0gLBEMx#IsU(kGy{ZniU9!KuCqxWlt{Hu&sW3I+h;0`%$B>%TS=l)$q{{_~dBc@MA0$i%AMq$GUc6G2`0 zwZT^if`p+^M`lL%ZTSIBDz3M&h!0n)U?FhdRJj6dmuu%&nd&YF3GJl{=c__CGsu5z z?=s*MHUW(p9>ZP%&%fRy5tH=I6`?76)N@kipB=Q`y zV{>TtpDfS2ck}*9@u}`xC0If2>awt8Ha@zmMczou)w`YL)ep{VC$>gwVW2!z`RXv- z2jdWbh`&e_gKTv$3?(hGrd>e}6~7i7b4)!nRr%5(19+)`#kbW^uUV)M)qgb5H^See zxRN84?S7n-b^B^abkoNZOzKN7AgvOu`s16}D0Vf-P6t;fK%*35XCtui$zX^-p~{*t zxC=xDa$o738&Wm_QS+uIA0qFpog|J-oQvFJu(Yn5I0fDmdTMwb#( z{VZbarNh-e_l;xia0w_H1&Tg0oKY;`X~>j!;XRf})o~ktv=fE%AX(Wt-4<=5cfk!C z=X~Q=_|2$GwcD~ed+;w!tH0o&?N~_}2RtAU=+5=Q=-{Zh?&kgP+RTf^55+Rw6#B5- zp4(&95ku;o5mA>oLHfEEP%ms*hK~jBaCc6uzzN;Xc@v;F_;qvSxDl z5@B=$eR14^85y1XP=6=#&^V9mRv?R)d-1JaO#RwtH)^?zY^F!XGO?fJu@G8kmFJJJ zSS`E<3#DkvMsYx*XQnRw0Y zPqgQp<*d>`34#`WTe=Pdk7)<#!RV?#|0 zhV1iI-2EIPzK&wK#~YchbFDMD$6p_29=Imp)mQ1;IjXs!G?dY=^6X>S%S_JE&=u<< z${h1AB~g>0cL~yHB@{LX-9ISi^Yw-sUDZFpu&pI4(Wfy*rW5gC(+1`N@=yTOfm5JJ*=dz5dybH8(T=mXZ%G6@`{Um^7a zISxp4J}X4;@y}nYMM|Jqc@;bgJk1GXaVrBlG;620(&86qV<7Tl;J*WS-`z<3kM4Qn zs@ZH+gMC)1MY4`z2n!J7}xtNG&%Skp+rk{;;f$|7U|y3^g}YTfD6?N%cfL zMd2?c$hsgk{doW(__>$8gJSf!Sp7h;nhu&SaNJhG1g{GDFZ~x+#dw(m8$r9iC0JAa zNvlR=%SX#;qq9%TogF`hzux`}n7vUkmDW1NLivjf^{=Qw_QKZg1c|A>2Z_yWYAuL= z)>J|fy?8ddoSe2m=0sFDl39l&yA$srW#1CCSL*ciw0*r76$=c*eUGt;3SQT`pYnW$ zXvQ)9i}@st4r`!VaWMk|`fOE2w;4p7No!`9LwB9}Vt)rg3bcG!7%aIs-&FLQ30)+_ zj+3>v$H!ye@9J8LGv*6TA7mc=+$!@GcyF+_q+F5~3^b7(m2l>cvD{ql{$|X-z@1t|PIV6~a1|#Kg=~k}g z*JJ~x5O!$fo*-E3v`CeE!FZZ{uZ4I?8Z#TT06}W(6Mab<1gzi^2crvwB-~ zRD05zti$S%Z`7GiEbxvBov60i)ADtw;^B8ce#Ds{GIIVqLH#^!Ea?`zYbraE(|_Mj z@}y6en-0k=)w<;B7F~xAw&r?|owZx0ho~L@EqeG9&nHFK|NekUmirxo&{5LG9c4DQ z*9Y88eu9WT=IPg{*!XCIH<^&ktZLjQ>GVwO1!(mkB=dXO)we zGJ_0Sy$ENI#_!NS>jNsJuQA>(<@m6&@ZI+=AXRUbTl{XQe%iaq?7Y?7;FgptxPk#1 z!ceSc?^tHjqwZ@eLOTDbM<%eQ3yAj3c88id_`4_v+YB+$sISB!B@Kw34d2dLK3eNI z{b~_wWzOm#x63uTTfRj|W)Oy)uv z@b)iXlzlO`F%DkXNK@x+NcC6(eqt%Y{aO);g;;O`iWw-BRfkxes~iJ4e^7XAGDr%k zaAbT~JF?Zu{KhOaT|2(eJ-^x zaVluEeRsQ!QRJ{vCbuV^&m&JxW+Ly;4WI9`CsO@)$x4k-$MEZ3Zown#CfqgCjfm&Z zXD*K-L%_ceYddSH4w`?yNZ;wJ_u2J{M6DCd$N5-$>EJhiWey|2+$22sFC!ao)XCqo z*uf&1U%`ftxyM{Ot_ko3EQ@$s#X|eiS>(_+k4g={W-8iB)hL@bg^shGuXjexGn@)5 zKAu?aKAcN>nvA=uu}B8KyR4T?Z6WmK!WqIU?CsO$|NU=Zsa8PsTJ;u#)_}VIBa#`6 zp6xX^Jr!BP5!RoT(@+i>JXpKjTmf5(h z$kf_A(te@Sul=JW(;oXXZ+Q;UTUhk(@+pQPGY79x3ZUIl*1i*hUjMLg&!i;84bwzB=d#4R} zV8yJPjcQ?RRHl+Y)Mv6!Fs)rtINXA$s&h6fwlIz7c}F}GadR%dG#)s-I11d?PoZkV~>kqvh zyF<BC5&(0!9v9c(bz`q?D z&d~81Xd#{~?sN@#m!F04*Zxdncjf(K(z%(n7;x{;5~p@TxWvHvTE<@;?h>Ds!+w#{ zg+=&AtBo9SdS^gOOc~<=Wmc%b%M{<|4~TfG+%VtIOyPj%K(HWY^Nt?#05}q^5NlDb zA=6q|Y-^Z6qPGT>^_FI~10Y@g@Ny;$z>3PWp0P;QsKlvW^B(Is$zqU5ox?hk-(#P~?@IX%Rp zz;Zz5e(a0L)MDm?%|Pu8_Qp|sM-j8YNQd(F&(={X;t#E+1(*}#UOMpK6lj&uw_gD8(vd59BX=vL^D<>FnWrNSwZn)C`=nm!@2_bu*W8DM}h77~Jb{$(c53 zy#57!4CegNz~9Du!Wy(`2uzYh_@&ZM!=rF)_>{8P6%@dWG0#CdQWcFFSV~6QQ8O0p zob?6r$r2g$iETCJ%1> zF(^VooS`tq0E%jDDlI^Ild}85>3qy!j$D9eza*?5z0gEFl+OUVi>Z>JO^6<9+hH_% z^3+CKttyY|B5hOtU!?jOK{;>t+lkvCyv3#IHr`-1FrZ&X^x3T1ll2>bcs>4)`$?w> z1T}H`u2ahZ`-cTK-4|^xCIv1o`#)-&QYxrpIB?ECBgy}~aK^!+iyoFfIG+{Nw`8_R z<{2=6A%kq@?@~L=>31~Nz2k#;g8`k`s6By=rbGq&{z`e9v2;fa%?Nn0ID5;|P}vHG zi23V*yBVtZ)(F=*%phgFg8VQ_TFmd1QLavh?j7bt3Y6cA2j>jFp1dFROLSK}mSsTo z&cU+s#&9Q%7$rZ^4a0n=5q{DdljIKL+LRT^qLi6MpHlpxvw6FCcZ!tQUqTUxGZM)h zqZMhX0x`1yRh%Up^GJG(dEBiJxP-d9jCIu+LSo>_Iw7^I!ciProPqDQ(uRWyI^2Y> zFRZKe!bDgI4nVYE_Hg>RwSRhmyV9V2oZliN-iHdFN!~kNZUcVSevh;2SDy-JYCj_2 zxT&Vd7FkB@D5d?n59B>>}}#*XW}=@|wDwH~2_DgPfd|&*7kkkJ2VI$O}Eqlk#=uP-+nmzsPujr%Tb`t); zc=vIF>-eZ$L0+;&0l}zNaH4jjAu_M6fg_8{1YV0IHmEKgXkRcE%~E<%LNArqq>VW2 zq!2X1MumOosJdEMmyG}SFjB-Q+D=?TRXhs>A67h(_Tbt`q^6y0lK!5Ab#G1y{cC_` zuPWRAJ{$)t=sn4Ly{16m+zsHU=JE013K8u^v` z-;C<#;c<cU0=E6%^dj5}EU;c>=Wy}jHTkUn{_#2W5zemm#&-M3tF%pn6xZ1$ zavH!=(6=-_U2q3s>bE5Tlas%V*^!1WM0RCETz-gyp(jQ!!c6#3DU~5(Wje0FDz^K} zX#;@Z#^g5j2qAMlCsEaOnVd>)gI{F%Ck@=^^%Tw$#Tz9zngS9aV4Z?`4L%io3LM2V0+EOS0CC((2zI4+$Q2 zb`T%;dAoQ2muTm}Js*v&TMWon`FbYjHp3NxT~(6u=MS9xpFKi})fl&`)ZY0&Ne&%y z+%!11Ut?}76QG{37T5h|6N1jTD5qAWLu8($yeY!?%Q$Uv`Ww|bXC;8e&KPNm_6x(_ zU$!?ZUrMgimAz2{Aq_@vcm|Cm#wzCHzAZo6003?K3;Hs|eWtN$-~^^T1{qZ*NAjk?-*2$3v*3l9qr%^$o3EaarguMQ^5Dw zx|cT0KW>`w8PHwNt8KiF$L)vo0^+0e>*GchWuW8h7P)c2 zjHhS42W-$n!y?dM-SF&e&bC<@yS;h4o~p7Z^Nl8Oi41c!cHPKaQfO&rXwP*8-CFI#N=X_n9&_Ss`#%89guQ)EK&H|zqcJAu4yWMjXb+t09goKt{?t? zyz!P9LC0@m(z5RS3O))1_4t|{$JDg@A|HLEd_0|V17+66xWy;-88iP{;l8BBfSIeh zZfcpyzkGLR(}T^!`gB8HrQ*WMZ|fzk+OL zSE5vgYQ_kP?b(lEPUj?Pk_oR1t%Esr{hxfnkmkECDS3fj*jC5DU*e0_^-ciAyD!^w z+NmY1<&*28BHpRI6N*Tb88rQpT{8Lrxg;bOgRWyA#G)5fX~J)3{bgp=_&xmOT%C_N zz~ds>&FK~wZUla^RD5N9r55$RSd$}~H{>m8L=$-gE=kt*l#UYHqhE`+E|LNt@fIz` z$`MuNUEkg(Yc@@FVS?ZD+H)Z=jv{u36Q@)qMzmue`l&6RSSdz@tNbddrsCjfNO(fq z3F!D$mRy|9VXeiKSVq+o=%$f~2foEL8s(5t`IAze6MIhR%psQjNQ?re-$I_JSJ}T3 znpNYNH+d!*L`tW|g{+jm6+bgovvq?;IVU?p2@D@=x6JmkPc%>n1h<|B1izf8SVS>u zRhtQ{VR@?|Nrh_M*%gZ9;>8=grIYq6qbUuYF!1ede(-#Q=EO!ZebAwEAe3J1J$Cq% zg#%uQuYqEi&GiI7!t|t|qN11T2WzJ%*cybM$+)@yQ^$9*?gTU&EvwP`o~o>i_I2R|!EH1%Arq!kq)I`?Nf4pD@b?ngE49EbbjHlgyH7Z8Md=CK`PrIN++0VMtCw^SZf4hi~J{PDt9I^D`DK64r<~^{_nNy@!zwl^d$u} z02}seWhA}ubZhWD@?tS`sM5bdWVq6p}X`v#BfNAXe2Z;GW-*jgJoq$}xiR0*rh@9S1(~(iLnAPV}L2 zhzA+~;`GaibXQ7H&egWy&h$T*(f{IbVKgAedL-6RVuxl9AI9Epq=MV(eBW+yV5TvaJDu-%($(~KG$!fPZWxBJ7I{ELKK|FH z85?_368-@}s^UjkCzqXzUNr`A;&^Uer*VU7qwXGtw>o- zV&2Ctnbj?^b|Ge*>$vf!CXG9#O@Z{)9;O8~({Up=fO)QDY##F>eS-Wy%9ml$o5At$ zbin#|uuB92v%C$!EHVkHkmw|%epqGqnUdSF0=Y=KgCQDKDwhzM21!TP2Pev7`-78i zXw{r)_9(>!mQu+#Pjt83z@0_Wn;KBXUAJOS5haQjjuRZLuwm){fx3P5(N(I&bRRwV z7xnUR(P~I)W4H+i-gc zvX-F|%KmYnObKv;&lWqazu~Z}!}BOCqz+Is`@8N&08ZWt)gJO`%S4fYF*bHjZHm~gA~G~z zQaqMxxPYxVpfBuD8=ufCv4Ww{<2Tm;S-U1ZsXXBA8#RT*@5GfT?AB0e)fg@cjt_!S z9RyKKs(Ebi6_Z-BF{1i`x9E7OGd|g^nN)>3AFpe#;@io8`^len@sVmh(Z2~iefksw zlUL(=KyaCLjJIPFy*W&zH^W5{3Bnx5v$#2e)3^whnxTb~?D&-5=?wR<;jZVgy_;*R z8;Gcy5XyTZwP;`x>ZjOAh|#uXU<%Us1e`8zLQB!T zNM%u56u%v=A$1*d!W5mqx{*B6InIu?@m4Bc=zKqtQycDFo2c+Sy&Yj*B#f_;oeA0S zc-BWU_!dy_Byc>bY1{3J@v9{rLpx3Ui)z-i5|!|OVyM1?5qe)j1cIoQN6s)x`FIei zQT?w@@quxi`|Ed>@xKX?u5{DLGhuz zuYW74h8L6UPz3ZRn#u*&q+7y7dk;)g;KH^Al7$=5s&p(!3TAo^$q$HK`9CK0-Y4F<)=?GdBmb1qVuV z=IimGlk_J{34Lk(X?~HfW3v6rDJ&T#s@ zc@>ej$Nt!Ry{uriZ-_a=JwB$gXHTw47_H%0?+n{7i6F6-s$EvtXdZ5km6AwciSB~a#9yEJT1>stQwad z-p6#DL;IA>^V_)`nT3>7&0F#gg^JCO(iAsERyu!fY4hQia#*QBueaQZ$HJNceuW`Z zG)lhWa)spRyDJMB3%L84@|_3D%G`5X%kX#?c@-vfvFJE;x~~p{bb){2;G%{iP8QEe?zg+v)5DH!F^D=_cV(YGzZKdo2-_FeOp;?uuv|}#OIBn{ zIwz=90s3&;vRmk{0}39p_*XHobj2KnMvq#khAZ-_kUL|{6CQYe=98}EdAVvYvg1=r zlEJyEW-YxB(0YE#x=f!~ZLR*o@k$d9=PbJWg?8o%&J@4EVw5gWr_e4sZ%EcU?_*9r z5ye&kgPuBea=Pr{M^)pbmW|*AT6J?QPa%>yF|feU`f@LEs$E9UMS+b-4lKye58d82 z1d1aO!om9R;1Y}ezO}B3ZSNzq#1>{qv1hwyq@5_t|QLB8oFNXXbzeg)F6*zLJPzeT_vE)xp&B)8Y4OOs|JRmKepm4 zUL(&Eg|N6s^w=>{BTL!&b8OQE&2Gm^W+?`T32`b31h}S`Um0T;M>l-#m#8Ixl_kKBn^VzC8Fu_wP`^L*uJVKkcPX5G@TL$wh1y zdzKAmF^EJ6-FxRr%jcved$C`5*xb|!E7DpS3p+(uD~mR!>c=1mN8Qv5wAR(~m=>kK z9l|lLT}&_OKyU4}6^d`{&Yk+g$~V zTn_UxZi#+$UjM;iJkc>@Y4m#8F~e0i>X&S_tN$<;NH^o?pak|^wwY|)FNAfzZs>cx zKJyx0%;RLw^%Kv!k10~m}HuFn*DjWjiI;saM>4n6HEBk{h8{DZ z3b)2)S8LU1)7co7y!g)pfScP?cMwx*ZO2BRLAPI*=TjJPqWo0aMP7Evu+1W{V&Hal zlf)w_*xysWucObN^{S^Nb`h=Vsd>jB@w;x3iwhE|0oKcnf14tSYWh#l1pivE7ps6? zvAmL=BXaZ?{PT_mJEfug4=PM-!jd^kDLw^A;zJO{2uFj7+o+Up?`dF`Yf}F*U7*xK zmV|DKY^h)kFGWjSwc$l&h+Q#Gpwy3}Sh}BI);1ah2c4a3Fmb?Uv&0^?ag-|7wSS+;h#<62}V!Hw7?%?4A5NH3k>(pPUa^5Od+y^&8@Z$U z0FjZwbawSSB+2sWw7XyBeGz5W*?i@XoPAfnI$BSr3NjUNhRn)=E9F?LMYP=5<2ZhB zT=4P5HH`Ej>U4G8^;fofZASucy=126T-=6~lUqO8sG{zty+T{BpL4vr6f7qps2&xdu{(?08 zab?=@M24NDEL&1$DePnpW=aM0`o%P2$v87veZOl;8C?td8@xz|5K4W!RJL-sLNK$u zZTu@e0y%+KDG5s9SYw zWzJYlzx_~##6MD&$J|V-v7heo{`2TQjf`#cJsPov-}`v!TzZ6X*im$YB_zU-fgg^e zt~|4mA0f+ajM)@JHb;8nGND8`!%YtzFHQq32foq4QTK)PX8JYPw;}w@Y(&`w9SQ7QBnAtS0%jLk$7nJ!>$n2zRLiS1O)LUz1?}TwFKF z)Vzs^?_i|SG!#jd8D0266=MzWW&r>@fX70O=O<|O4j*(#AvRq`ki&w=cGUZp6Evm)uDBGnzdcBE0%Amn+;7;v}UXjv1n7^%M(A1mr1LBZs`5k6V>`2tAwMe8XChub(T%WWAo5jZIsl z7DWxAwaO_gPXetBjz}xiS5P-FNwtXQ)Iv}w1`hhinT77nu+xXYx&UL|z_>BWru3ej z{zrRR{^RRx=?iA)=6+nyyDu53Mh~P0-IV)~CF>=)ith(>okls`ai;?KEU*}Q@BZ=M}F9D_Ufs=5`1)Lc6MPjB5Pw6F?q!Z$yqvHQf!rjYo-{PBkJcAq!GArwqgGlw7=y0$&XJFg*X3bWjc0#%Io zFcN6#6?aP?GJN%B*j4}e4;-N}+dodK&E+<%is2Jy6^hzNzdP$z&uqTyBCBW@r>>JdELV?PQLx z-4{=CWlS6ir_W9(BY*m(Xs-H$FMT>m?nX~_8IaWpRg!qQPO4fkb+AWc_S}uW8r?f3 z%;7+D{Lk?Wdj2(StNVu!hoXZtAM0#Q(RK(DKKHeK^xvE%C>fl93BwmZCK%0~9j{(; zUl4e289^Vd4pxbZsRP!^y_d*>28f1-{01FhP3!3D$)fHWl_t;E$U{!PdHdH zv1eh-Z2>I}D8vYf7@Ag%a1t^9-7~L!))`-}7Cv?79P0ZX=%JQe@kgDQCPs9xuS>QU zh{1ZgA`AQs(GPLv+)AHHaf>Wl`098hqaZfg(3^1dr@(yTN4OQLZcTAA!2%*rbz>19 zr90R~qP^IqrWe1l2ua3Sg1~j4luu!tg^T3)+F3Gy9+e}!sr(6c3uACJlP^t+v0F@~ zk2yg#m=t`EYyUlcOkd9a`&C2UV5D~zbpcIy0y11^19NWza>5a5!V&Ave;*9sdluNE z`j5?=^S2adI;9+)>@4yQHBIX5gC!hG9CSQOvd%Arvy{KhvgI<$EUSj$1`nJl*c+GV zg3jA)0RO^lEa=^W)6B57%|Df;_TtFTG9hs0c^>%C&P`=(gE>I8gcZnI1-5-oMAL2Q zw`(4BF_Mqm8?j2Enheoi+ zvw^n6K)%+?MD7b%NAieu{H;_@z79*=2Uh*bcowBPJz{fi0!No1hi1|E(dJ=#{3Cb7 zBX@!$2LjyfG@La_5#E>)J#M)qjD&DqS5?JOIW)bzBG@vQUL|v3^JwG(v1N;>u7%Hf zqX1eTTO_WeoII=2Q2Qye4smeAl)J-D)hDfj5w5)zocqXYs{elSfL>Cl7gg^}!NxNl z^hCJ=__y5|&Ey@-Ro~Jseu_#ccV*6*=Aea?&);+CW^$|qCQxMDQp$LLJ}IY}Gb|E( zOglI1b-#d{>w>SF3Vh(DUu2|TRsE*;_6rlc=5H{Iv$A}HFqCOQwc>kw^9@sQ{{WxN zIj2e(=y31(X#U~G(1xQEt>=2`W$HXXy4O3xtk;pkzb)XILFn<6spfX|N|_5_#B%Lq zd#KyHO@AyI^huag z0NaV@qm`PInk`ol&JcwFqml-hwi$#QE=}Q2^;js!9*=wBo4?p<|M*ucDBYt>1ITnI z!AJ+W1l9T*K7-e2qaNVn-H1Mft|~;w^gl;5546koq8xix2(mrjSA%7=favRma^WqR76_($4<; z`J}Lw;PWHna|j2~qs!$(cg4r$tIN69?OW8oA-tiFtFv-1c=@_!=)A5&AF(J+!~815 zwW%2W2y5=_326y$LAO+*H9@5Z{jb0&Fvi)Rgc0U-cR|ZbDv&0_5ovgLFiR z_?{&KWDK@-3{~s<=t0A?b^nDY$IlrBMR6p#{m502+PIY-0f7+U}>B zuo48=P8H!Aw%nK)(yh!*V&Rdp-6vG@mxo7sK#KVGQ1^?Ekw*!~dqx&JO_o+lenT0D zZ`8Gf63gYg&$pXWB>@H^f>p}kMtdC_f2M2NsCsA8wH}gXf~teVJFHEjzA^swbc`DP z#L=QF#BnUG%0DJd&-o|8c<-ajeFqSTK+a0`5ST?EfD#5AQ32qBuP4%U1>@@<99p)Mm`y9jdw*3jC3 zLC@-ONus@GMxk~iv)EWg>{+Z;NGH20WqxaQHtiVVzqZXgZle^bUHFMXh2@ycZbEbH zG=}ie2~J5iLo_RzxaP>p`+QFL=&glvJQ4UwesW_BMyf$$?5lQ!$AiG~_RH$Q@`ha( z`Tk|Vhyti#9x{jj73+S~Q)U%G>DS4Yot2GMAeGiRQz{^0u}U`clzRqt=cSgctIVN_ zb}AAPu#<#^Nr46VTEnxmUq~u=EC@rU4^;X2g$K!Awg~{Zf{(vrRcHFx5+3z=eU$grP#6LaT58bdGk^K-1Gc&*%o}BnL`5pV0I>SI) z;Dy%ZV^s`d*zM&RHV=eQ2AoM56Si=*;L6eZD$;~OaNlbvqpS<=@VY`V@;V;?YW4U? zz>)67{JL=2-Inv?zz{}w?DPfUX(jjG9PTej%q^oJfnfhl$ueyS7AM(P^|pTPIfDtBt2lJO-?-bUIM#+_^u zIWxKUcd@dTAwp>NVS^M`>%pY@NcM~e_bDF;lih{y zff4HN6WXWpUl7-8sIoTBXy{2KFlhS*Fq44N+bHDdnnM5ndlUK2U{3eW+u*G10bkpE^B#}#a zV7HNxU=e;t_et?f@qEs~nYBhf$=`>bk#<)in6=^Z4v64PNpsrn8H2x82=dvIEb5`B zOd`I2Ss-!nTR?x>%=ypyK<76d9r-)To~>T_HBm!5VB^<^i;jXf^8{l(G4ex2n) zt^5PagUHA-OFhTtaJ~4$OQ-UKY|l+1p=Ku%q1zokb%rps_Rp@lVq%!bKkB#g_?>Sz zK6l>#`?*e)&Ck`pY$jahG;y-{?HtR(@lFa5aX$M9RWf zSpq%jb^@3fthXDIV*kz_XJLfg=C52iDHtX^?E6Si_fs1W>O-IjfYvC0*@f8naTO5c6auUrsc;gzm5^TGACYrf zh-SsTL^!C?Cqged<}T&y|s29H*$>Y~HZc;_E7E1RGI98ad!t&qcY{)ssD|aBc%I1Dll1Sny(e2e( zacd{=D(1`sW|87}LCK(8a2F=*u4CM-_$$s&A}&~Lyd*12N0s^sHW4PWMZHl&<@IUi zrUbla+!5T6`j946n_6~1o&{3=RzsMGOSpSCh*G~`M5_Q}1Eq^B?2D=mouzv8sYf=2q|%_U3b^$h zp$KE=X+u{->esvAPtVBQqcg%D;1(Gm)mo^2u*%ns|2?fe5Xx)qs-59ppI=p)!H>!U zDCP%mHs4-7xXn3+|8-p7d;F>(vf=aCF+dv5eZ`Ifz~@^pUB7EQ$=e~0Yd!=QU9Tx$ zo0uRRMS|)8$JDsuaOu{amfLESty9V_Euqh%HB#U3QWL`ZEy~5sbF5Rc{x~=EKh2VM zt*7ih^!E_#_XqT!yi0BP28ot199vZ`0m{3k?{iQzC=0|HkQMA^duGXu zYAI@2F;Ko2MHDv5q0<~_7p6*L@5;I;fX^i(-xiZno~r}<{1_WaBzQcf)iQqDxfY%` z)tWvh0%{>0AVOsLa_n8PF)-o8|B@WX4$VhdRQ#^n${hJgP$}{Q2ghsE1Or+l`JPL! z3ePh;w6|aoze@ulob6#$HSq5)HIB}#J7qHZBqA?MYzF(kZOm8f(+gwwuIh%`!e=xQ zNQ5mC)f|Y-wz-L+Ozixc5=jPGE!0^v+|Z&NyCHTI+7G+PB+E)2S;fCTC2$X+kHMn* z%GTm?lunYplE$uup-)g49gSq(@kkA+j{k~cuG=!G-FjE4d`)LkAj3=}mmTl7_^%@`_ zk4NA5vLph$7hAoqDo)lRUKE@N2JKI2zVopMGy)b?obJT`B67WcVX6Pf!{PMcZbniI z`3omu$Tmm>)Af2}hdP%y7rrNDc~D8qxwPxI8R!hFI`JF%>vbM!`2&gQ+lGlWk#L*1 z7SrOg_5}XTJO!_Tz>sjP|G9e4WG2o8SR!c>i^diE(>hqzOEhz9I0;i4 z8kJ}v^dO8yakoe<$YQEk-u_|#PpU{zRI0#7FDg*jiVivkD?1zm$`_QMVvA-;OiJmS zmBTiv5*Qf%6Hzu6JZ}z&S1JxB=}5fkLpbomx(pEOkWJA{bZ&Ww1Ur0}H+!~xV#j<| z4J#DA{|lUa`FY-_>b*Bq|9$GLcU;CAw?B6^Qfj@b=oJ>B}c+vrBcG)m}hjojV#$BJUg@x?WzcTRg z(he`=qiAvu@x%$RCx)ksJt8%~b6#vtd2fek*Y_N7<=N0hQW|u64Z$!=x9=hwf4bmycDwRdpa2Ex zB#}p|KS~QUGtQWm=9PuigiMQ~H>1r5D_x!tm?Ko-1R#E`_ zzT9JOA1}}uTr^XX{rfyC15QNG(eA{-x7paGNv~?4pB-N7{e9>rc3}U|$4d{X52uiO z^bqctsrUIyD+@-AiF%d9i0RK3?nWpOj=JzPX=#iK4h|q`P&xHj%FXp>hO)c;VL1s`I~Oo=>d4@cjC78d3ST;V!l|9-k0Y}7T670`=ws({TQrUECeO6g@C z^Gl_|-tpExDvE(1ink(8nPUXKKoFWyz&-cr!~={AfZqWbkKu)h4cecFP(VtLF#Wig z@o)&DV^c7cHkedP+)4GaMO6*|h-N!v@uN=x#|Od?M+=c^D)CLAjKrzq!{4>RE)j@T zrKxQsM*Th~@;5Ap<{|gIA52w9iI4nc#Hq7Rp!>i_w@ly*bn|XFz^D?r{PfiJ6P@_G z#DanhaoaEneA`*hYP)RNZ`r_gj?4h8N4$EzI496mSsdupz|g|(rcQG9U)!)OV09ET z!#GaQ^-V5!3C-edV2cAXiBxFzLT&@|<+(3V_R>jRENE5dftj}aMW6GvUr6D={&yRs zP5&GHR^I7r=13~)x%_@Gd%9wC8l3J=m^A~dO?=;EXMR5tIn?U=lm>}JNPPiwP_8}M zJtrdDgYj!VW&m2EoJ_o095pfq#>4Hlysg**{Jpt~alnIe-~<@aE zm1u8mYtMGu_1XSge4bVczn5vaX@TP$-b9+(VbM@Sz_q?8#{cnRQMtchlV*L5Z#@W2&$QqiAX5qrxrWie*&P-J?$#Zay-HY!d{)Zfb6& z<92?Pct2hJFR8`7YYAn6SDkoz2ZXGriCU$0zw$Pvxzcoi4OLO=1--Ag*T+$LE%q~t zd9R(WHIE?c=lz-YLH)p)v-v_>LOS(WT z7(F{YaWBAXI)@jERoowcgvo%%D|HvX`^C>GrsVidRf;V8t~zHZA+Usr;Xgm`ux@tw z-?@oAl9f$mxi#!1Xc^Wl_vgpRi6P|m)yz{SO;f%n#~Yr&3lHZypVQfaud z6ljXXygTGeE{W<45+>wPV4MQGEjXESPVq;=bX8C_>Id4R`NriQWIR^IWEG2`iXyXm zo#MKRld5mu)b*_)_$r$p{}ZtNPxMKGp&nbXdvR0zv~L;F;ps?ZrtRE(@~b3-;~NFw zO&Bm0<%}n(;%@x+RQMr|UCUnpYN6f_KB0hoH5JIl(95O#0o)tlE)fGSYnN7`U+cm8 z#>|t5u6gs!c1N}mHDwEJ5{tnAw?B#Ow>U5<(6i?qdh67A;`0+H&A-e0rFg0RpzGl6 z3M*R3jmySD<-%Klp9F@N-^p*|fveH{2PJbEyW2IfpN<&6E+C=i@EtwYQs6?e%};oF z@ZB>i1WNi~-!m$aW1sh2>5BC~mjdC7DV`hYBYk@s1OM%c6fp56e)%>}U?H(Ur7Xqg zPO~(HQH2<}Raeziv8cSA1{FW%BDviB{oSqYM_h}$+pbfT_N?m!x=hJ1R)HP;aR573 zijzF^$8(ASb@8HE{|Xn|;s$71yvwmMp-ptZO@Gvye*Ui$Sx`AXME4uD)zOI|vpv_> z973mWLmZU&_F|Le%UOw18Ci6`0{!6U{uajqdO&Qo;}isFq(9)Bd%RB!n3giXhlRMs zeBgzCtgj8M0}-2097M||Imk}GkwiUysE%E*BXsUr#9cK#MFTuJh!1@`eI&&^|MfY} z^ewg2Ut&I6zRDq3dQ9DSA%TsHFepUwasg(6BiNxi@s4}g)oN}p=jh-(772|hj#Zp0l$n?Z~ zH}^9zRLfK`^YHF&CHH}1sWNgNXW~jbc)DnaT!Pq@{8ZofKF;Ncce9B`C@i$1npZO^dj62E3}eO`P|N|9N`g{FL5gkLpKv`1M81QNYIdHu-dnY0UHyj!Jrp@;09i(3SXE&6$`^r~`l>oTPO+tWeaI%Ery0d1-5{FuEc?`hc&?p3tHVLwn ztnRiDfs=s9m3d}rZM_8JDVs9H$S?&3u_f_ER;FJF&J0Wibn1dnXk6uHQ1txlaB9g{ z3Gs)_LXFVyX=*kkmUuqHiV_D|q94=VCfH_&K75Q8tJHxGHK}oAYY6W8rJTA&4FReAO3X%4Uk8|$JZ~99oiS4`2XK+S)7erV>pc|i~%BCVXu-V(jkIUKYwI2*_+l8RDNHoA)7?s z{z)RMqx**F z?%i?-SJ^rD75rUmSW?gKsHo z4{U(M`E$MB?JE}HQh$zs%a4cWRBql+8n`LnJ{jOBOfq@LZ}065!i2xF8V0Pvjza>% z-2U)Et`eP_%9`9)jrqSmvqw^vuA?Hl?n3p)F7w!!--f=h{muKu2Q_&UT=~8e@oWbpsdOXwz(yosgYpnAdk%U59MDqg?tYQB!1O*(81O73N`OlOo=-6 zpcIr!tSek`jrgc3{=8L8ms&nCi+1V-`|--7)OmdQY??@1kT@>qvw=*9&Z-%4w!#M% zXkxkEPGl1iqe6ROT>}@7RUZ3aLZWz)EWq4bVVLjhtMp!Sjp5~r?&YuYlf=TesG$X~ zc=)Uj{c1tzOSsl+L?wsZr?vv0UZ3@s?5Pae-MMvi$r34|WsFnCz0c-nCf~JWau0P07x=uf zaC>K^Br}ge`N1Tyf0>@a4q38U!QKi0EPdws3XlZVL~TcxUaDA3;D~=ZcJX>uD1xM9 z6F`Zh@8*s$tQrkZ&(F=BF5oQdU6n;{sIRoZf{pGrO9NAD*Jbg42={O1u%H?C#oAzV zGv|Y^t^z;Lwy^u!g#;r>Q}0G@I-%DSZDQlk8y#0ACkyEu{|IL9*K#@f!G*a@=F?2n z!t5A;hh;tcS?mM(=TgC72-|U@k*_GbgMS-l_g}t+TzYX(Ja})B<^dXFt5p7uwDLOY zT0O?hDqPy)5O*j7D`>=7#uj9NAYPC%Zz(@uf@Jx|2qd0YNrXGuUs>zN zJr4}_m9B3VEm0Pn5=n|9c8X0i$$kVQyUb>km_^(8vZA0lZl+Kj%IMQXk=Gv0HmUw4 zN!eF3cA4D4v=~*f5_Rs8IV;;81Lz?Fi@MJkrA$t>B<*qCrvM*0;?hiTss37zCt}o) zmEh+lu0Q)Ga&!H$_9nqcz=~5j+&UZh`{hRC-*|R|k3Dq~gr1DWBIb*qk~t&I z47z;QVWfD+A6vW2KD%iHjd4>Z$9hp9-lx6u*)U-7L_8r-UGO^F$-fUKaHCkNZs0q? zCA!XuHM5OcG*GVJGQU+TMR&u0zSj1~2XP0}4b8~w-n>SeEeXtn#D7Ufgi)t6iKzUY z**k(Q(7V+XP61jEjw0IdrGRjplw3wefB11D=CWlOVK&oK8vq;I^*Sy;VCi9PhV}Oq zFQ%J)o#tBPI)ls*nRjj7rN3T2Mw8W{kJIM6$;L~)!Uhu)XGM>&NUskpu43oa=V=N) ztBT{(19pUH%hu)J@64}B`x&c_j3__<4Xezc7>`aZc(PlSr-9V#RCDO}>Exmxr(DY* z`##X(o=GQet0N8BQK-NDcVztX9s^EJfF_Y&^^G69DYq5(aY^ssP?qY(lW2lksy^O8 zh$3MoL2wcZ6~(T(NH4Q(Rz z9#+T@H|9h8vdP1>5Shb!+_BXV4yxZg@ge`&h;bJJLUV0w08qcpu6Oq@ zKY$g$Oy1?Vf^gd46XJ|kllm-7qj63)&i?~x&nLkB%iuZkFjRA5sg-)kwYji0QfkgS zmNx@iQW0h=Kqa16=UQLxxLQgxp$M!-oom0%9KzY9cb}JE9o`SVP6h0Q8P;0;K%y1K zsvx5mh|PM)R8uKz(xj3gN^D}k`HKvWQ}S^5j^yWMiF;2gY|EjdV=;r>!)g(sVML)A z9=vA2uZR>3N%@@+l!bF}d|q6VHO7#?AW$I1tFD84g<~mYo2b{F=lA@yyD<4;hs`3)_2$O6s@(fwc#&Wzt-ms z`ie$jQ1r4&`#!%Aj4(&}3(7Nc0hN-uMZHx!rk2TgLE2-2+CLMXt7&pz^q=GptuGM$ z8f)Y$CZ{~NlY+y>_Z=+yNI$LIT{QU^HMy5Z$t&Rt!_aD8%7=d0<_0G&CF8DUp$y#3 zCN`8|uzy+0TxxT1k-+>qfJM>zy``-Y+RHcOA_OQ$Lq=ONC%?4OS^5wD9^P%T!M90iTKlO3JDon2Q*J2iy5 zzjBr!YO{AZ;|UUw4xILDPGGQ_w|im(qeaommoiHy1edNUB~!0MVXrGD(V%q$6jh-j zXl7)sNCi6*C#G~`*gW$c4Y|gZym}`mAjP>ZRKPX zO%9lC8ydsh+k-7Qr6>m?B-soitj*f0DP zL(R>pU==hnNY7J6d~8p^rqJ>Bk3zj@Pnk)GySJOfB!8sCdnnj)P10h|0gzTff={%dxHhY+6NzQ>BAGdzkzlSPjb6*;BWkq%VZF3t*k7&tE{Y30JKup;2r65yl z=v`Ng_~=n8^$8-@ABb@}+OP(lXva-Rsfpe?zDQ1dKyc;akew258;kx&$Fswo3TKT9 z`?^Zx2Heb3ZATm~-!(Pon@*qUT@4!vLQ;$`IJ?r*kq%(0E^)z)W&~dJd`F0H>^Gm7 zwY!kE{3+8-+c+F(fn8STGhYW=>Fybd(d+`n1s9}&US*H)+95<}N(DrnG;&QYLAJ_V zHzIeD7md`>2gcp5Qn5k>RlXlnjC3q+&7L+J-1)02M9~*1CBT*j#6YI>QOOZulG|CS>DWTP%m1>M({kt@LHfvm#SK`1ig4fMGi?5C>X)*aa{^` z6lJ_ey;mTo`caB))F8jSMkauMrIdsx4r0xtBuOFsV+%MjzHH|ZOSd)~E39%WaD{v5 z`{SdpkB~2LOLQX`S`B?1kLMtlij5HY!eKxmzqBJ*9L6BR*?u;jrvfh zdX53_lHN&)ZW&5t2DcZh5wp_e)(gp!Z`rJnr6ha{>bar>yjoxpVith$gjO-_ z7Ig*0NJ-$wAex&n7a5^NDbD=c9Y9iv`Y_$CrF1o1=}PpCNqb4~PYk{QY~7pKW~^SM z%N$5~e*S*)bw9lb*P!R6=;YH|@pP2`4YPObj?o1#%_qNO`12SP9<^N`J9O%F{X|-? z-<%o}9kdAv2oF9#0+_D)K}f2|B8!5(QVZgR1i6?$J>AW&SO=LK9AL@udWNyJg$WGI z`q;;+P&Vgz1n%$=fzT(vH=Jn5r&3^lW9K>I&&GlqtCCEI^}MuMi-ZRUkMCrTpkn+! z){m50d`tyc?$p}9#=Mz9XQ{8V%f)PDuZf#ceB~#lsN?hlUi7V5QW=Ms+DGbNB8HXq z>}ULstGjrRYZbGL%KtRbPV*aFgfe*cgO28GaTPG+6u6AjBXmi|R)6tI=`G4lW|vp+ zv`;{KFsw3`MPAnqAov+-Kr#w`ms0?;EN(Y#(uyfOBtD%&YGJeWxkZ&3boq!^kF3_w2%xPwW=3%f$xn)#ZU&vs?*#>$I!vZYT9U`LYkZB3%qdDG zYNF~xICzVAC-d1;N^phF@c?_^V#=J=n%>ZY$U6Nv4xnM5;sS^e17=wK0pT@e=~v+! z;#7~;3|etY?dC4zuIC|pHj|4TTp;BHBbIclFW9%{w*2Nvfx;fre2~`UN*L*hp08Cw zKs*(TSS|G)PDbYTGW)`B0d}rf$gUOLo=Q)|3Za32jQ&`I32`PFNXV;NdsM3#%QIw% zo@qS#evtD_?&0|_X#5v-r1^gY7Qheh|ENC(GR%|%=V906uD|f~kDE|wR+pooo-&gT z?C0it$t-26ow6D?l6KU5sQ^_*-==drJ}2zz0*Q&z{lLibH?>4P(l*Uiz66A5f4vxG z8c}wmZ=>%X#HWf#f06~dTy}ciFD-`11x_F)%!nLs$8WPs3np?)CBa+9FKE5xKa3}w z`H@wDtYeGZTh<%Yez%qMqaNti+Q!ds0O8BD9{;axMmLr@v9g#u=XCFz%i!YN8qMy|htyxQJw4GQD1Ccujpte(F#2drg z+y4JySTDtKZ=3|P#%+}b;^6D@iF1kbiNX1ZnCDv^o6qgQ`i~S3qAYL1heA#sT1Yc7 z8NDko&GJ<1fk4VeZ71i7ukz?GPysY zx;&@;zhyAiQj48=ueL}4 zvb5X06fh4XmG%Fw@Za*P&|g%TVLR%e_l}!BQ=bltKfO0)FWhi^3xwMC-ruh;X8{{e zA{-VdA<>c`8FboTyQZBV1ZH8BdZ>A44Qie5s(TtZJfDYF_4aQ&ema`Fxb7ebGENCS zza{NhwKAPfn8ud{px*m&0!PoMBUk_Nf|b?w^nWKCUe8S)#iz;%McjZ)riHw0<2L`o z9B=@Qkl`7WKD*U-N3J!m{B#&`O)j)C+!M;;2&o^B?SW(m1M#bh=OV3Pg@uT~S>yuD z!t(+OKpwP*yB{B4lJBkKPW8|3BOlNGZ5${$6wm>W zcw^EPOO|`cOHCK2(`ul>(P-%$_*N`d;=GXw5i}!Z0l81(QGzcr%rlyF*km$a(v2Oo8NpNI^(xw||j@cjy#1oHaztl36nEw zI@y9(3})&pdp?i&qA1B5+hi!X!TWLi;o}buIIpwE01$Rm7oMFVJN|p-IzC4~z5~Ge z3Cy^6$Gf8@A5}h>5Svz+`w8Z3q+b1~|A!>wvc?E$4pR$rvwZ!=+nSD@S{J>J0xVqM9pr24z40uSlCcQH8q_z_H{1(4SVL zY`#!EfPMWinSFaXDY)s;CFq9#gM)SvST;Y(?^QXZgPPOlLl7x`>a&~(_#F|A?}cl( zu=;_EVApdLu$J$kR8SIJiTXVCGLIQyncMpRcsk3Vw%WF9mr|^_2X}WU?(R+@Xp0vu z!JR^Jg1Z-Y3GVJziaW&}ic6uq`+mNeZzjVq48O9ov#)cVYaI*dktzRt_+Cpv%m3pF znp5EqX}A#yv~}5mII6c%!3cVju`OdOk@Gdua@0g@{-4U%KZG>m7jUr*O7BAP5}5^y z5Cm}MpJzW5VOfR&&0Mn+gR%ddRdy>bSaC8jK_}3UT-#@X60zr>1P!GkRsY zSX9i*IgXgEWGwz1xhL#pl2q;}eBNwa+7m8`p#Bs_m+JQu$>V%$_i*HjB$I*s6{tge zwpk=89Viwj0Apim9?XjW{Z6s$isKeq<=u?;~YE?bpkBz_R+grJbA6;&FiyqrUL> zAIe~*BL|cjie5Sr)YK(~oCPn>P|Uf&F##0u4EkJjZ+UxshhruBCnkyu^y+P-)?a3w z)K?!#Xzp%&mS#$IK3yXlqW1lh3`nh?|0e?(J9Q$6(%>sp$?Envh+pnd!2J&AqH&l> zVpEgBlaYD5ZQlE42r3{86-j=8cXDELW>RKe*s%)6i#V)liOtJSOR>5lwNbIeWh_lL zs*$B1(s9MiCIIaHME4ZIBf>l!%hvvTxou^&pRpZ0meHi~N_cHeJU^u!OySCDHuuKfPnPjoJ#)g$I)ZUbC+{tbQ0Y!l~xFEFt9 zGH*0$%drcT#oqqVkvPx_`_fTwm2y%eKKtf)CGjVQr(f_6;m}a$$=3Q`0Ws2lEY7&G zp8|-1re5GFssoI}kpkr04|Y?FZZ%v@_(SCbkRS$tUx4_f`fq3adSy%fbzEtXPP4xYR%n1K#)!~3yI%Wgkj0~Emt%~XCD5iPSBKK_>emRlH#d`1PXbZu( z^f9RfT*sfQei~>Qi=am^EGGP$(VKWKRInJK5yoOT1Mxw0L5IZ<7WH5Wuy1>^t@s+J#>Z%#mIhRI#K<3z^;%CIa>0? zE<)v|EtM>eSHAb2u30YZ#ab(t1*lAv7*N^IkQHK6llLxy z;o*`pI7WwHi;Yy;#Pbja6K)}ur(z*$xBDHlFV#o*!8GyeJ0yeV4`4AAjt=$jhpW zy=?#f#4Jr|S{bmR_vfA4&2PAvbIjAZMyLO<4|Cc-TQ>@vxB8MBo791DJv!+2mo{%a zt)VF^=_ibs9tj9)oHnja*mhl#o!w&zO@{xK*HSjbNDM@PntJaj4}uhLA7)vao*rx0 zn6>%XBnf#OoI6Y$%u{>|4HIFF1HP{Ry`bUNg&%%9u$WQ?j+Gt5ZU5N{e&3w|^Ma$j z1_s`2wsfQXzF=xwDN=}5 zp;eoR_hq2?pA%EerB)5c{yvd{lNnlQa@rq{Cst<6-5aG(&&kM)!IH6`m6mA`L|i2O zG5%vx)p3M2Nio0A_&1_3GU7wM7gv+Qi2Cz8dtXTDG(^Y-UH#niM*!qfhC%}S&$THY zgLfMN5+F(j42fFmJaZxBy!4E>)a@H@_*T07)*oIM=7)_f&{WS|{y{a*RNl1J&sG|x zs%#v{kCi?0pR#+twQkP*(#(6ZcUh9NIa2=_#oUg$Zl_=~S3gs1VEi4h{qQMDXOF$jh8)P*+Esr!Z zM~3&|iBXQt;!Hs}btRM|_@fw$l&5lKR{`q zMB+_`U4bBmnK`oS&mKx9P_yj&JK>t0^Yy^?K}?*X(tARAE{r=4z*sY&X@O#*^(JZ? z93#_N$sL0v-@j5ixGlQ-72XuQ`cDJrzbaA|qDzn;Q#8CWU>yi(K8 z{uAcMfEAz8LznL#T>^^RP;#35XHra?2&l*P4PtqbwZh-P0H+n@$9?^?mn5-S(qM;mbOhq@7xAXcgUnfhW#=Sj zlLD#n7rsB+-%ax@-3xWX)uve^u@O`|~K&{B!t@MJHxp7;rE%Z?!)Zs0x(q1IH>C&^r424_PTZNkm1bSW*?Y;W2tC z<|p4~i&2QRFd(Xj*7EikRA9VNgT)tfJqeBw7amxy5_>J@hem&4ldp9G6u7bE@x?!Z zm>s*ouf4r=g-1_g!M7X9+)!=op{(-8jf{otYrs;Lwu)!PYN)R5}@2~7d1#Xs%$ z)?|H4?aef3hlVxTz{!%<%+pN9^b}?-7UXIL5XmVsnlIJ{%zoLwI1xXDaAi;bpmkZ{ z6*}FuYQy|jagb^mf$O5AtG?lTlGzgQnsTxpjr^Glej-9q189r-{hND6@h_+& z=KN==!e^{p~Ebj?p{(jXvV z#lBC|G11pk z>+bUT69;zq%5OgV`$GSEoC5}I=cDb9BKK=R-mesJsv4Yx(gNRIf2W#7`j&_oVrWDj z2Y9OQ5s|-c3USTY6{*dYU;m8CYBCcaSJHs@5hhK&8y*pyY;UH977AB|3{sPHoYZy* zkpUT$yTA)+?j!Nr(cOhJ5^%LmYl!2L*GmTr^p-Uemeb0$fiA20xeG-78|$m@{fU6c z%?;7b^v^%n7NkfL^&lizv(LAZ98i-?zpwuGg9UgaXJS)EAFZrk>hKT+NnTI}#3J}G zrmYqTNDf79q4r_F*^Q37(T1=z(E!lkq8YS!Azs4@#pt;6XS8#1_so+*k@U0iaL_-m zriSyP=IF^D`0u;a$G`&A?(rB~am*{wXA8jB`;EHC#f$g^k5 za@EtVm7usGZPT5ana7I=2DRO-ynB`rdzXGmvY|F-YJ^)KP#}_h zO9G0`EzWzyIezY)@T#90Mnzf!q-R1ea)!h1AtDyN)AYXl?|NL7o3Oz+8-J2J8cGPp zLUsl{uIojL#ZXP{!k3-(VlXL?qrTtbW`s$%dY>^($QiIUM5rR0MiOB%^ z=&}#>W$_2HX~5SsL4Oh`EXL}79heI~<}>zbtKVS{Ei8G)-q>sPk5^ZUP6p`8ct&FEh_yLYCi zpI@nSTEy(Na}#AF5+7^1g~YtzJ5IYW>L!FN;pT9=ISEWSI|eBKW2V`)`~$x>N^qF? zqd|HyIyXQVzU-k;>({m1M_3yeu1=jH#hLkJVf6hs7xrLM^Y@fdb38Upn8j(@?M-Qc zjiudDSWSgpMVujGj>xJ?D%?{aJ>T&X@uwsHIxjV*k7g=cc%clIj;GL+v8#Lh(RjQ! zl{|!}!s39(PsBmbC*{O;EpU)8GWuC2((6snzej8Faj$rk3T*6JnozigCOv)EudE$T zl!jA={ZaX#QP&c_L=_;pYl}#f7qPn7#P%@4pU* zmdf-LRCP5Bh^tOLqSkn$9}zv2_Y-3YNJ$TmPD#$C)Yx>~NL%^o65IPa@u>2uqdF?F zpg-Cnr$}wl z?mkFt^1WDElBLI=|E#B(I_1T3l8S2kalx&bBkVo6%t`_IB zFMql081U`syME*3`+O#uDTq!mG(f$l`XR*@?oZ_0Pyn*V--L7mU9%$tRQM z?rvT#0@@C&1= zXxKJb7Lh83se+9@Cjh(Lv}Hh$q9X!cqFIAFk!so|TJ}&jzY|tDB%*;=l$>(og!SU$ z5~hCPsR5o?Ca|6VW6=dn!(QL(dkemZTk0nag5fJ3xwc({S|&ft*tzM3q>?_`s^L$K z7=0X(+Ye(mBfrr)Fm;#*M4k5bzn**FHxIo3j(NP9@7a|uEzOyUzk35fKtx(DxK>SQ zXrUi>h6LG)nM0Tzs$|h~?l_WrWdBK_RXmqVCt>&aVP0mWsgzU&U4SQIW8*BlVlEy$ zN&0x59>;c;)+rpLSLF0rdklpDvI}6!ceyS;5oPviNAi5!yKw7tD33K{2tBu-1NuPF zvzr6sIIU9M4p?nken&6<%>9q2KdU~EY+evyxGmqIrN*B`oq8dhUDD-~Gx_)WZ5TX~ zff%`^seM4$&NdO&kWh|TH~{~IJbo~35i91rd%mYpd#XXPaNgPXAvvLNH6=Bj=zj30 zCv-W8kRAw5>~nKVa{)7R(-tRMPQ!JptX5!L={x#d!6yRDAvx5FY8Gf!6j~>`*(dt z?G+0N(b~p$YVwU(_upInGZ{K08aNro7Pg#0Z^cexHRtc^v_*&;3F;B~(yVdhP$@ zgq97&TiFl63a2+xl?UYP<9l!KFQV;#ZF_~P)U+U+!VoF%MF|QW!aR%3IR_kirmQe#CRm`MxOtEbY6;3yi7&0AW$M zGns1uJ}13tAt5!(-_21N#_+!lGL|`-x~QOixe8fWb9dAZ(#3be$8R8A{ZvlA?Bej| zzNIf6emumDYr@!0J6wdDxkYG;cl}TGR3iWSFyA@&EY!5lrx#q7OLqL2j>j0RTT`u<63b4y zL88lMdb1AJ(F~PHOWr5sDpmSHZdiYQPXj^7p`9X3F_PA`VTU8mp)V6VYtHMCR65;8 z!H2B)&q9Z17c`Tqw5$Qw)yHO@VfbbK!AbC}p7kV?n_v)tV^!sY%(?PM0SpGlHt^Fm zR3MugSSDjvQ4L87D-l%SDkCPF}$bI-0^lAOPJk`)*83$M;fms301e?vVvNV#lGOpu!P5_@C;X6bLVjfa+G_SU z-5-01^4zC?W%FcDy(zT(p217W*BN($ID@fq)pC|}8{Q-WW`pguHqB1t_F?m3J| zMwCJ4mOo%cloFojS0bSH^a1ilVte58VfFlLxhe;t<D`C?@+ZI6rDcWqK z+%Z;C_`e6=@7V^L@#?Yv2aO`7F(jq>l=WjIO@Sy`(9r*h``Uk(lk^n*!HR#`K`UGH_57&M-(CZ#aB*jsq&I800Esr*VWlB?!a; z?ES;{F5y{Y&rKn&gi-y%Y2q!>gWnCoA}!JO{_nmS=Ii3kQa`X3dllMV^14tpXRKO} z<64a4GK2O8lvxSY2y|0`9XRj_z*~L~fQ-_u8C`zGv!g~T-u4KQd zFZfYHpV4jyF>xno3Z0=pk3lD)`qa*OBfAvR#J43fv*MIX!>1|sM3}0vNY?J)-0vc+ zqWXFilSo`JQd`lx&^~q3RtoRu@CBNdzfk=rizD zFcKF=Y(6qjccy0cL?R!)gRH62-XtH7Hxf(-D&V%lmd1;+8#LHs<#r=UC)doOi!jl8 zpgtQ~upN_n?)i~*+5ff#oe5yF`8M|0LZJ47fIBNVhK3~wtkFH9u@3~7*wOgq(6MReX@dG`10;6INh{ldB zwkSmhK1u{tOGfwFJbQFumS(@STq+8ifvGAsMXfAB)k^1Av9N-5d)kCMQ&oos^Mwt> zVE;h1FU3e?1Fy+KdWTP7*R{a>HM01Et6|H2$boBg@R#Q-#uV-RK^w(OKEPY~g%u|GGrWLrDU}ZK}&}BqqVlm2jC1k@l0LXQ5jlyHkdPu0`Lm z!j#nPZ6H^MA|YK_+8`f%l=e5-8&dp+9o*Po+f%ucRw!X43Hh*>f2yw5He~*~lH%)1)-;t!Z`{cU z$V+rZCAlkkD7dl>$BeL79jXh*VXirImRGnVPEHnT$X z>A4=1nIkAPCzu^)5SB-Qtjr;SA`M?xhYJOa>{13vO=7qV5bT;diFE4^e>pz=LTji4 z6_M?7KLa@_?pK{LAply9iZf_ob<7k8Go=Q7cVVVv(p7|;B51@ZOeB+mL){@bo3o*A1`I1<!jw{AwyHCtNrI7gFJN__UV{%ez7Uf;rEDojIBy{8oZF&D( zDYof2;m3}K!R7?v59eEq^pUKusCO*S(ZArkq|syS)n+0A8N3`{xz?kp2A}+b8zM$S zNpsgyF@+Z6j}6ZF#5P()lM*&}Ew8zjk+=RsYn(fpKLqS>@}%^E5-vI;*aI|1fYA?XAa?BNK`m;|YG>{vM? zw$Pas!g95lCzV5D7?-Mck6_i2oHolr!@sl)-Q^b|D;01d3aZ$hVeTW|VzPu)euLz% z&9Z6S_)oV)!(I_uZ1fk@)$}2#ti?7dRZbh8KXoTQK-7eBC4v>XG)-R%K0QOdED^N$ zLnuGO#u9QHDfAtehka$RnOZXUKNLG{bO-npWRguB40~QrnhH<42J)<=J8J{RG0#Hd zqLq`j zq5tg`?>#xuvdq{v;;vp8{aDC=D5>)c;?>#Le_bbT?4HM?n3a32T>;m^0$s1wC!%Rc z*KaWm+>36KJXz{(+BQBd{*|$nHd@*dSaO(}Wp|qTGgXD&<>ceUO;NMHnJL%OadIJV z+s7<{$Kd%KLeU`F&wkr;In{m=aPPV|YAtr?eJk~ES_JR0e^?_X_QHH`Rkcp~5lF&! z{CmrAHvsn4xWy%vAm=^V#uF0gP@csOqQHdrWKLsR?1|8A=~8C`OG*vI{iZ> zz^R|Qn(1p{PYHUk@8!qL50OQNBZ=Sr?h?D#3_=RuGqND+>{Hw9^ z2IX(=DSjGg=j+0%f1s6&*p;Yw%YrH!eInD{{TW;TFntW}j`7={?fst3qhF_5-8g{< zcbT_;2+Z0*IM~nA=|otdt(n~P)IW-IA#9me7O%PC>*UANwK||y5hfn(WYf&v`QbBG z?ibS8Km3u}M*dH{{Bb4#BVzr2!@W~IJM1G!Sg38$9EG4=Qy;LOk(GR1D_J(BK{o&C z_Zz=(bl?^v)aCcoi)r7ItsBMoJR2~~_#ZK40in>8e5~v*!2>L+44&tYm;mheKa0Fj z1vWntZJ82pZ9Ze?KdR@!+<%&uc^t&@@t2&2(5WBMSoUc+)=;2~UiuXk zT{?KY)ueBPmJjd?CpL8F)M-xKM^7k^5pq&y^2gFB9s}OK0hW8TK&ph%+D<3^P%{AH zbiY721fp(Kmawsxwm-WAQ~%U$K<(L zF6#_P7dM*Y+Ew<6DEAkgs~6b{jD7^731WORu{W|%(zh@RQ(D=tpU`XZf3Y#@d=da` z1(Dx@Xa4&7uzlP24~putEe7Iljio5(Zh5a&=AY*VILG78ONGRH+zS5U`z_o1bfml5 z#DDtGvBMSt=Dij5>5OX7H;~u zE#|tl2eINTIHB)#GYs;at7DD?B?w3+&?+S2*<_d{r~xTl&g{ap!rhqlD!w>DwpLeqnU zSokC`6+ngd0!xI2@`itR;wX2S`eXN~vX%G2avg?2-T-rv=Eu!`~k6%)(Nd)%t5iD?U{Mdrrn z=~SI%Ti-EWC*b6BmV=V6JwQn$i5Wd**zX4j7sEfN3LjB8lc+#;IYYYWf25tsNtR}1aKsA~RP8&B) zs|BJm!cXg}qJK_m3kI6Iu!WhonRs)$QRe(~x248-!Hr0TbBu_x@k{Acd9o*8;6z}^ zCL+Jmb0+||wD0!tFc-^((x%V~W;;UivYw5Rw6Xlqb29h4M=bG<5h*9s;wV(wmPu`t%OFjW$nGsbH>K!y=rrUEct6n3|O%u~bZDwBPo^(`=*S8bj@`qs?-@=W0+Y zJEUee@Mrp?rXc8W<emQpb(5v+@#CDVkS%A4 z@&$@NPFw+`?LaMk9~3`Y!+bExD|LlRV=z|QmnI7RLMFQpCm*ODQ1U9{w!HXBktM)n z_24foqwiRY(UEqG!!>0d6~vcZX1)QCYkNudPx-96zsC$>(NfZ;A-34}^ei7Bn6Tx* z6{x0z=jSMUoh~WQ50y(6`tr_%Z;8U{Mqmb6arsMc%z;r6=`)P$YzC0x2n>@p-4+a* ze(3I+x(qN$?{44ktEKi?7@dX^4L88U)0t#4C9E)!m>Ym=Sh<}RlibZ+%aW4mrCMuW zZ}3Zc=~)eo_#AngdMAnw?0ER?FFK&ZR$3pX*rQH3%zns6MUYp@}8SBNg+H3u0F_D9Sw4@7efuK2%>>^>UZ%ETtleJo@% zR3oX+i3zlB()udr>v%Xy{w=dqV-frQO3oU+YqiwKcqcRuFt!t*m^(fT4Y>p}%gi#a z|81{M7xP0r=E7%;&)a255+Ot>cd;w>!Ldg)p|EN^NQrX)_2aHkcFi^0ZI83C2M1^> zO(e>9rGJ;R#O~2rZ!RPW^b=Y%F$`1zvwnIVGR-T|Hf@oJ!w3PO&;1t$!Tf(=hHA4q zpFmesP4Z(Tt8c`Gb#KN<(Twbo8Qmdx#NlhBuug#%oG~S)r1|p+8)+${7!gCWMgh%n z6ChnMv0y730HD{Y8KT2xBP9AZ=@FIcKf?-aB zF3%9P%n{n>c+;vqj310tZ;;?m-6r09knymUhWt24CO%8{1T!-CMXKn~w@w>mhZw{s z+UjeX$`AQfSNv=d9;o{Jv$gBwbDyiK`e_De!Sl|%G~&;4Xgj%`rO4KveUG51c4m+N zbH=O7Pj~V)1Li&R#>u9hk5@Q!9B8Q|)e;eJjas#Y)!rHDRn`VaKJK42R*;O*=sHGt>wz3&N}P5g zyA2n82Q4 zh`clRdk`v2ODmkpu!ESPzaL3pXHafS2D6A6MmGM;_&`X16_)ape|<(*JA$l4BG>Aq zwiw?;SJK1&#lhDy{=ilWl?}S5oIyVd!gr!o+1a*`y5@{-&4$Y2jo8Ng7Z>p|Q)y4q z<{;e0HZzMCG$-R(E@fdDAI*8I7~^i2q%Ee8m&Y2-J19b6I|Ie~9U796<#VF)7);)y z;d-3Q*^G_syntG@5t5~Sg2?%U>}0ZyZD{Ru3tlyNy;f>XZut*-SjV#vtk;#7f7-Og zt;g-A)~%9`^oB+%hsMwn%$5qCI7p+&{rzx=ERP9z(_j9!1l+TqZ?r}WH#?fP8Z5m{ zrE^?zG=41O8B44AB-mNB;U;mn_nqD40(aZHPj-!YtFaZrB|X3M)`fKLx5%X}aYgWq zNV2obJK+B16R2iP1=!b&F&YHJjN^iyt?xMWey?GPGB=k#MMp7gr;sQ(VV(Pp%4(io z@|qoZgOU8qh3^Xy8Tt<8U!z`A1OBNqnidKb)fBeP@cUxSkR*LfafqW?{G5uq=MoE+ z@m5grRuPh=U6`+{S~kjy8ek`&Gt&+0HY&u%Z6U=B|LgWRXxL=#{4!1}nV=R|h}-zN z%W{%{E2BVfpAofHQ9@U>T~L(=GBYK!5+bV)n9r}#em7u8pqagyzN-E`&Yv3Be2Omjy#C{D46 z4tA8St=n!nUDDcugKX&ji6_!7?}sg4I9xJ;%mayxK~$UN<{+^RUJmQuXruSNfUn*qeJF1m3%4T8Q4eXzQG;-6y)ai4PrLXJ>Hk zceE2li4YyM5XkAXr09L!l`9x+{Pat1M9`t--u16q{_8FTLaHaKy7(b1JTPk_^Zbno|j}=E;Lb-yyl`%kMS(1BQ zzRgFoGPWt!qD{FkzLhV-h=(PeQq8JC+KTq#>)N`$4|FC;JHxh^tBvP;ObYy2(KLP* zD*3Is<3{id*|x~|yx8U|v{*)pDQOTlqZOROc!l;DiPo`uGwSPQ1i=?@5Mo-iW{Ct! z+52=fY7nGPhDs48@^wzZ`ZL>>iDY(R!4_>%o^>qG)_}~~z}QV=&$Oi!q3?)x5+7ZH zGtVj+EyHW0Ii%c*Z=0Q*!N|c>8nKSQn^N)bV8!oudt1Fym=p+Qhdc{V;@}QSDZ;}*>Jpy#{ zwaO3*+T7YeAXV)osr1^z^7qtItO>%x)oLU8m8{7EwCLa3Dr2p(Gbe)M==rIWqUNF| zk)X0irj9XGSCk^~?fKU&th!R3iBjpJ>}D{S*lI8SsgWnzY-f~0h-pf!uUF+QO)d?Y z!q<>8-D7pFJfVbbaFXCy-JCGG0vx)TNd-Y2hJSl9ZQwK>y%vYqO=ze5i7d0-bOiN}O8)={X8vR(b!g%a zl0ZiQ$vw~)(7AfCH8ttsbn?Ov*;&8%-P!yJfF}N<+VBIe+iUj4?|q-m!78BaW~#~q zaxsN2(&B*%TyBW3E5-FAc1jd3%+FbDswT}kZrZ(xgTw|EX)}Li>Pxe1eME=8c4kBI zX9^pUsNv?;`Vf+K0)A&hzOfTMxmYg#rZKl5nu(`vBNz7>{)N9VTdv}}1bXRrduB4M za-@Ud1@9n9lo2?znrK5`uIp^k-^Ug_!9;rIxs-CCSOaC;od2ZJkW0yR#>erLDv&0F z$Uu)uo;&#^x4ed*da)XJgYNuK%0JH6l@q8@|2lrR{0vu@_;-YGn6?jPoY`jHGE)A7 zZiSa=DI~5{F(sgi+p-M5Bphf02(E0TEg7wZeDzK?2aePI4M0n8^Z9nPfxu!JV- zS?AVbsGvFPi(KtVE`x7k1nQ18OUlTcQmNo&R+!uh9HH(eCG>n{%57g)NsZ57`}QpP=4}F8+UE z*Z)S)dOBd~xU6*gEp3!e`nCEh{3Xv3mhY4rv^EFU1OT6 zaX&Z-1Gkh09fCJ)-L;HSGer5L>=5D0E6*n`m8Fs;G-0D;*(B2>(0jFuwfqcvbf&6&diK&@CDt4S!!btN#7QY= zUKVg%Eh6xuYcq#cdxL5up$YqKmWr27glGHO-))q%utExOUu7( zl2{BG%vMgmyP6qQC_Oa7`$scLOdK*ciz;qmB5TJpj9Q`En91XjNA{wipVO!8OqVE)6v}jf`0%0s~N zvM)PC8V{XkI!nLlv;sLG|EOGXz8cpX9@!6L)Ma3-r}IoV>}84KX7VrkK$a-0xHk+i z+n0#6*h%_r_9hr5@ziZv+55}Na?Mm>BN_hX{m=wp{10`t#+(IqS=Q|eGfdmGA4!yk zoFl)`2J@X0@^torEI&&YH^kJ+x@g#tmuCbWsr4tJPDE6R7kMj48G^Eq*t0m^anXHi zjk+6W(uR^hjih-n&*~EhzSrcs+FOeprYHJi|Mg8X!o_yEeH(Uk!M}E`rk&zcA(G6& z+@B}CYGmdOc~W>>re&5r5} z{A=6iTBmsjRS{G?cA?QnLg5+nwrgZAg81~stEykxjJdO^)aa9$5=hM$27M#Uc;#Uk zv#tu~`ntiZsBN<@LvO~fqHf|D)v!u%4Or~j*{|FMJ zawsQx#rQVLG>J$S&+IMd%`O*ltBt&kmT4d}xb}Dd=6e6O7%A5D;0kxC^9t{d+y_xO zm3;UH@Cs-9nYPj|YE-CE+&0P8<+t>ue26ZHuN5-HYpI>)Y(`0L=cL8OTkh*pgx5m0 zGZLV91Ck~c@Jmdk)4i6~3clFv8|@@X+w6{b{Jsh%-RK1b#gyTDSO!H~s$*PJ8uGitBiqH3pq1vcxjh#;RA@35s&uh+5NMRy4+>q93(%mX;QsH-o3PYN} zc1qnL_W>-IYlzG~i*C96AIJ63#QO5fmUd=em3pg zYtN7tVqy%@B9w&)My*pZgr%q^D3S|%f@0rtv*c^{Vpl3TW-FxB#b0UjM;9Ew z4mQbs!xWS&*|`?~Z@)$W5-k-mSUhvQ*1(SWcJ{X1#ZADB(7ZTL1*SjE8yCCtJT+Hf-iLsdf;)xo!~q=2AT zc^n<7pq)?TbL1NKZiE;vPNsoWwy6^NTk^A(9PSU#KUya;7_<^oK;awLa(l4r!Q1Uo zcKxP^vJ6`X*%PIjvg|4eC43xKt#*we+%Z}QK`V}p+(`;>Gc2A1%Ny{^(+6pVyOc6Zj_-qoFUUT!zy4xB z?cQ&4F%R(#bxOQwn?_0#5_2yRBp}hf<8*44*f_CQ8bg`YD682Qy8K%)A-U0uHlXFmvdv&2{voNW;ot zY#uqv2z-mrlC&IDxy)T=_=^~_>>OhcVP&2DqGX*ji9 znye_Q)M=3XoYr>Ar{BlQMO#9%Ey;CLRV02C_fvW2tXr>c3(=6$Yo5y7la2lZ;O^cR z>TwhoZp_1Ea^#jaMmTsk^hMtOu|HjXH$!D4!!4mWtq^4<*eGE@VE|DIcIp%UZ^+B` zsJx{WbUa1azY=jhTw3#qg|nHwK`^u407EQKdCIBmv;kD2u#IQKEt#PbN6VBzD@!_V zNmeeE>d3J63^UFiv25+}kgW=zjUVf|N(u)X`RTV!O}-1u(`Gsnt7_I~F;BLmu-^$h zM&<>uE3x@ zPzJsjo8e=;nA7^;>>h0$N#VI_V0ALQMwM_wU4}hB5U9CT?$*hOZ3YPtjn>`|WMS1k z#y?;j4`TgOSCpf6e5%2uMt@e$`o`pqC0tTdFCoX5Nj|}%`jM3Ior00vwu^1ZM1IY3dmf4hk;7by*?{+;@5^Hai|jI5I+fQ+1yzOrx_PcwGshr*JJF zv4|<%`MjI$xh6n}`p}L5<64tC3q45x>R#9TrOi{-UMQ9yAOiMj!1muetHEXOqq*+xQp>zS~?{CM*NzJ=LNBB{+}2r_yNH3SuqxSdgv(DA$%qDZl}S2r(U76A#&{YgOt*B z?LjD)fxL?P;#!gHjt9G0oyW2>6osYHHORB>J7fCH(^<|XtGQHZV!JePyMQhUG>YmJ3nFS(Qf*z8pqL^0t6!0EV?mUoQ&WvH3p` zBW8WU2G$en8!i#l%`7@iSrw145AuAt*A}vJNkTM?I52M^6^JTR6E|-A2O~74Q3t$5 z2?CdYWs+_!>P)~E1Im&$^v&fQaru1c^F$;;_{EkXi`05*w2$V@d9hbK4dFHciV+J= zOK?l$M9LV)IDq>I1yU$@txFEU?xa+S8s-D&nmHsvwhN(4zHa)$ZXCDKzr|+rsw3DB z?tYx)clse8KYN^MKq;cqWQ_|$aWpImLY zTpYCJA#8;%?({G9+m?YNt2I2TIhnrz1(d zy84(6%~}mU!$f)k7?DvVS?E#`DF@tn6X_bNg(EEdQMnxQ=+I-)3TTvZ z;}^acPr*Q%I!iy_9T`+aBv* z@g1%c9!{6Kvj!q@z11VV6k028*ixBqZ4pt0jT>XhQbwk9(l?x*D-puCdVx~mhR)SZ zHC#g1_MBsWO6L>xQ!=eTpEFhi-RNcOU}}w-detQO{C}|i^ApO)xmk|3F~79+tvlPc zs5^y|4E%m$@9ma-{2BdZ+&+FroErcB^Sh0#Z)M=i0 zGMxJ|N>MB7>4whHNK>#9t$8s9Dr54b;TYc%ZQ?@oUp7+ zX|TuVK-`l?*sm_(E8v|EuCUjkOs$Eu$>tqP{Fi}#0F>H%>3!ZKU4F(I-|+#HZw_BQ zz@-3Y?MWLrKkfkoMtL5b*imuAc<=(O(;jbVjJo74cFLzgTg7%d)&sn}M=o6kd2lwV znb-3hS#0*mj~*zMVM*gdrFTKhzHYFWSqF+moWpc!HVfvDcFJqifh=kvJ#>Rr5uRAu z=3@>C39>)T9Tl}5&ce7alWq-;9yl?2Pm`*%bE3(%#3UTf(YEB+=2}fFv#IuQcC@av+42zrb!!=RgE6iB z&UDq~6!bPdJP{Vy*w3#=!^ zV;A_VU20)?=sr|lCvm}Af;PjF{hfkMm0mvM0Jm%f{?*>wW!pe|uOMKc&tcO{BluDw zc(unBsiN|gtzrfDzadP{EFEh)QX;RiiT+?*kRZ&%bwC%Dtko!O5(QUz>i+;WLCU^4 zlIflsgdYa6Se&cA*1KM!7dr83R9!a;qXksYc#ljiW!Y_;caDxfIB>{+*2ucU z?~0uP9L5?S9(OJ|XVKokqqJopXZ=waKYHWUO6Cp$+%~w)nU{`U5FU}M(Yex z*UQ08P>u71y9NvbidcRt#tQo3PO+!$%8i(CgP@lx^AR!DiCBg=AR zs|>5<3aiBu%lQJU#i}B9xtl^TRzLZfm%|be$B8H64bFhd&ppBC&NF(QExplT2Z2gW zKg>~Mf+oih_tP>T%UC0G<8PA5nvQzUZX{>cvFbV8djw&)7p)+k$?U^PE< zy%p2F3l&#UTD>koI^AuJl!60I;+9rih3YCru53|1HM0~M$Cyxl3v1r=>9eUgP3)(b#XSqbzl@I4so2i2iD3MotIGh^-0|_3UgF)n<>AIR+BBklyaAzF0Lcv5427L zN_?BhMa~}Q^~tldf?M=DIeil4hT?Nu&I)eHxUOq?x!1eyQDfA1;)v6q+S_Ya$ZB)$ z^?h(_3pxFtd&F>NTRfOb=q;|9_Pmz3;c7S5RLanp)FCZUsxb`B4LOx^7+w17jKxTk z3z$uwz~0VFxVZlscBjuHUuDP)v1@rU$KrU7#mNH8`4X$e3fVG4zRHkiIf}eMS%@{Q z1`=K;{3JbgrIc)TJhxd`lo%WM>5cnn3SlCQINYlo$u5a!(_Pw_AWi`m(Gp-88F6uCAr>C#_)q<@ANq&c;uzBLvOt_9q_owz zZZJ{EF>Q$%_y9>0LRBE{`ex2TfZzUr5Oi?Rkm_HTX5poG0Mls4{&_^!1Z1mw3uOC!#6&05__7> zb~<=>*AItvtu9SM;7U z9ToHX%KHA@&Ag+=%%z>3U8HL$(;}N=HNWqA_rpl=Dlc)e9RFELk{Hnj+JT{rS@x2> z8OMMzScR-$Sgg)&UefxdN8qBugF^luo8JV%~ou6Hn(FI~rU(yuLulLWKbj_ZA@gk=ARUwj;(-dcTE zO=<+Z1m}eiU+PW{gUQA2qnJcD^_SM@vKPnKE{aJ^)9rsqDjihSl+zhYWo5?YOu#}| zvl#-LOh0KQxzJ!Jq|WanE`F8}+5;0|L@WY}0F)wwaLsp@?Qe~-Hfs&i+IQKPn= zw7Q{sozV@3{2NLoFcHQm@9-`W@iTONF#vvx7eNFd0WbkD1F*w@Jq8>w;35MqG2luB zy!gal!i!J+H9Y&oU&7PZ{sJDq@>95a=|8}wgYU<|?uW25dj^yA3ZiJ{wK*)xrF-j6 zgg%LNH041E^=mMDDv#qTg2WoB-raG=b5if7U4=bm6g1{c-!yOdRxv}#Lt5Ks1y%=VG)TtK>e3CZjLES&-@LRlDEL1~I) zq$#K!I_22gf%FMy{k4Ggy8zI0Q%dW#T zW(E|n56(+47F#BZw!o$rUS}-s-x#PDjWidu7lZr6PrT+{(Fw`|V_vxF%!L#k2lWf1 z+$GT!xZFFPUlyy+$^|{`eB3Gz0drb9D zOZ8rTSl{EQ_xyX17-}EFd$(-EQhLW((qPorznP5tPTBjcIb4>ICeM03r~C78gXs7cl5f}=cV-o z!-ZfN;z-dcGL3+y6qFq6N0DQ2<62r(7x8axG~NEIi@DIfG*A-L45M@^*3_c)xtN&3 zm`-;w-Mfg{g{zqCUO+P40rQQGIn}AMC{dIpN@XDCtEZgSUn}KC0nHl~FlLB*=~Rn* zo_fTh2yv1kneNikUAq^M?(8F(?yB8Ew}@DrhcTQJ^enez#OkrFsgo%F`9z>#Cxby;!2NV4~^V#Eg#H2!yzPxS<3& z(SB_rCro_1u2kX{=z{22_s$yN~9?LVpj(k3!g3J zqbP?7V?&?op>@JHJ_^OBAGlTC>sp_gE(&sYNRY8-yqU&0$`B`(8^oDLK-EfSZW>sR zv~tRjXA9ccaJ5t}TP~0-=U6R{v09waj*7yq7AMG8OB8vH^%=M!^ejl|DKhW5j4?z> zie$2b>Fxohdlxa;*{97B<%0FIT}*cNFq!QlozBFjiKMeMiCK_BncS#A#ls^8ayboB zPc1cPBf8}gPi9D`yO`|kW4d<%lbr*Kmv2_05XXvaCGzwH`D#IHk9qP$3T07cYGTdw z$T*p*k)vAF-rZ7EPD?Cl&Sw-Q)rgu%i!Euc7YbvDC%Z^@FOrGi&H<9y9w~^E9mJyW z{BtP2%2iCYcH8V~ou4|V-;LuquOZI#anhQ0{85+_MrRL(AL zgd5%FQZ#0Vx{(dthS=!M&NcFf5vu|kQ@|~etH{NV5OTv5!xgzUJvXL|OY`pYPvs$X z+(@{=hPYtd3qxED+#X34u)~OGF9&ziK>o&+Jmbbov zVQ1Pc*O==>PfNNuio9Z1R1wPR8Kv&Ani*4`H2K_Mi?M+W&4WS07>jgP1dR=YPI7NE zI@xkAgsByZA{Twms^HZJQzVPi8H$2-C6$IbWSm1&7ggU_>?|n_bSiL8>t$t2WXn0l zKU>k7!m|8LU8TrSu9nD`$H?Y~$QMV*7sn`;C$x)WwoqCQFLMAKEMkaE@vjDDspd}U zR6>~$yI2H7V&eb~Jw6bdCl>k2*d$TwNOCiQLhZU)V|^wq$|h4G;OX5btJ)6Da0Hmj zBj30=GN&eLRkS)ivdEXs6;%nloc@BLD01Z4N+_WVLkT?*YUnYt#R*C=A2bX`rgEP1 zl{JAe*Ee6z!HZmP-8q@rYUqsA(8+8U>11b=`R>DDqcjR`^U~%zUo--~GF&Igrgx<@ zA2>JvLR|+so_;RaYz^5$?-3IJBf}~-j$*`7j3iE!%d?duavAF@m?D=F%tZU_`Oin4 ze;e*2ROi;un(xvpF>Wq|xbaY-xwi;$Th2dgC`V7f_MxS{&*VNdEzbLEe>0V16(*aVxWSjp!50p=*q_KHJR9y3!h>3Qj)YfDkE3U4XQ#zB0n&Mb*aTklJlwz08xM`P8|1?cg zMASdPQ+k+K_b!ejByydxWP&7_h|dY4nDi~*k3+s#RLGWdu_zlkrF_;-O(fH`BGZe` zm4&n*5DJ|r2a2R2Scr$qH%*flIlveddPW&ktQII%bFF?F3TRoZz!(sxlo>P+H@4MK zBTvdAQ}a>7n)LPKHYcsFOWS0+Q()+epesWg|ITbWe>Zg>z}uK?31H|8C=@vh-4VIs z8j&lFQ>00XBuJY-QE^2h@hZ*-kgQI`W1#Z+S=B`hO zJ7tV_|F~@1qmAQMEny83M?jhYvy@|Z%CW!0abcI^(muzPizU*&uVK&q)>D^8X2dvB zEq61ZCNtba9w#loJ%|4P?EPu4ExVQ_h7FPtv6|hS?zXSX_g-dYR#s+pf+bjn4BN0E zLsFsSl4VH{{6}rrFbw;HVSkWeLAD`Cuw_UtRaU;{-h0m8Yeh$Ym}CTFl8j(9Ywf+y z*<)ecdv*kaeJ~g!CMQQ3#I>GntHDb%#j!$f37+lg?oVr&hG)4fc z%QI;kb=7?gZkq;;BdS$nOZ5zj0|{i7G+(DYboo$3r4&@Ay8mZc29@W?n66=6Q1w<^ zyUxE@xO15@HkDZgSQ@b@p6^RR1UD3*d|SWoz4p`_Tvg{2s`3%F75SQe6GeM}TDMyy z2%d)Jj0_u-BU1VJ$p}=;w~Ie6^bqvoObw+v6E;!@3&(nE2O-dlT-Aw`%*ZlL2x-=U znu0rpUk$AxR7UGrjoNuB@S$}u%$oi?`z5c7;N@WLLzNeOidWy2^2!aesVMOUVqI^% zER01k$SPStDxy*XDictdM3x&CGAeS>w$Q%FwWRQucHT?Rn!t@5;tK-LdX!UQ-wVV` z%l3lX;$?#OEyGcv>yCu3uim!!_I-=*zaoD7zQxyXTfBcmVeW4j^T^YkVj9Tm+P~UmCu$8ojtQDO*q49Z zp9`^{bi@b3)V@82i&~8Fiiwc?i`fIq&@?M8#$uJ6h&A`$Qlo*czirWmSB8cre_F=R zx>8vuOwm2i-$+6V5~(tBwIpPG&aACZtCE&FHdTqXow6poLB2mC-yLag?g(~nI@<08 zStmI07sBW-#wsftv&v!u(#%~ZH$`WCM)@ZHVFj&Z6oC!h2f-3JAmwv3yX)XS3=$C-U&lH2lH>BT#jv2l)HN@DD(6BLY5n53M!LOiYS#Gi=9dB*i3dqT>i__nhwoJix4jd8+(`9 zl*kq0E0VF*c=TB`0WU-fBe*%}NujIANjwt>#2e#=xcYN;0eJC4Ou<+;=kZMuSaIX< z$n?4w^XGyMb??zM4gRBl_CE%|ePtOdD-pA@0)&uI zDnpj#P^v$X9R7XBJGpeXFdPP!?FexYe@D znGj|-%`7iE7g$-ogH#b8_F6NcjFGKyY-+MVvl|{%Zw}2grTs!Oz zT;w`ne>`A!++%mxq1f+`?+WBajx5ihvW%HtU#TEh!rIB`6zJZ$Y^UZU+kk@?Cg+bB zy%=7>5v~ zL;*sY7ALWZ3NeV$L&!J!A~*sU87f)7T-27mwv!JwXY4m-Gy>e}e9(Ai^P#()>#J_L zXuNI6pBRj&Z2hs3ANlbeHG>eQ4TbQ9v9_rprQM;ja1_d3r5x@ykR?}6SQKMIo3OhU zkl-dlH|(Y0m|jxn58O;sJ@*yK*nExI@gA?{F|05T1S?W zth6#`d18?vFEZ@*1$GB3aurPEvc3`%L@qvDa9$KwNdy4UwwF%l((#-7Gse}8w)8p< zo|iRwdTQ`8ywq~MVtep@k-{&m3ynN>mcW0G^ZK2lxoX3C4o_i>&kOV}Gfuw@1BM0UA1iAz zMykF;SKhu3$;FoIKz}NdA%x&Q;Sz;14RezPe2fjZ)TCVwNTHl)G;`;=D&#-`Y-#|Q z7TSz5DOI-Irx+8s{Jd11BH30}l_bai?v9qPxGW|+Y7+PWIL_-YrMx2MjUO)r&ay%- za%F~{z@?BIkt-i8SES|Oai3fx@Vn47r!bnJ3m$O_37gzn6IlC|atgB^!Y>NE&8GPI z;BrlRp$>ncXg`1OKAghO6I=HA?YpDcqz%SC%JEj7;&Skq*2Ol2D{gUG@U(pf#f_QS z^~8dONLorcffdPjSp1&nV$n_3SE6e%#+zh}7Hj>B340qZgkJfPl6;Ku(#7M{=!Gws zzT^vDMqug4)jb|zQqq?}x3sW#R4-%(KpJVo_^s-8NNiBo6{_-t>hyr>{D}I@cCBoT z*wm5^(bhHU@{IEIkhF8<094_V^+NASwCbgH$qlKpV&3 zm@QvJVxX(3^m+<$YRM?&d1z@jwn@MMU0)&NDq8kxjJk}@lofkq#y459r_B~*7WY}N zwf2QEt2lP5W2b;t-4>a3X~ZKYDn)mb)Y=GLMr=zF+GaqvO>c4+5V+jDc*-cOD(U0j z`JetZKlFmYN0}*JAHFcg^OVAQSi1X4I)?eX=F9!qe}8lwYIgpMYoZP)Ecx%Nxu+PRW_FVZG1tu@-te^-m9V}r&BU#+nKBSh+zfw#bT z=xMAgcD&AoApct`Cm&)$=712!*v4A2#e}43bURlXhwru7y^=2_Y`dj|R%2m8(+G;g z&45wpz^;z2pSGq&W6#x1=d8Xi&m{0wC7QZ+mSYYpWng_~@~<1(crgSr$WjnS;Ie+t z`aC*$=^X0UsH+N<6(#K^0sOua0#d1=BmZItnGFrGBmh(=$HdO4pVj#hb?GXgWoJ$& zgt5jN5tS@#2Xh5CvflEQMrv@r)N&mC^33$xEVyj5QyQ(>NQ&drgAXIAeE#SsW*g?2 zR|8}EQp&)^Nqj(fuc+qOSy|U)UPm zMDY5|z*+DN{h!Qhq&I@R|%U&Bs^_di7Gu zwYPPwPjmuLR?vKWcSNzj!R~m6{mmO3?%v^e{{dOP8wy_bUA1vE61l;=SR$LbY=`8g3YBh<)afFAIOlase|<+x*acfj!?FTEFVA7 z3r^r74q@3=>Rhvwzlgq)sAzljHF>i{|v4sar~G)VaQ7ZJ_g~?7 z{~m|ix7gp@V|Tnou|Fc;9gyWas4O>gbwT3f>`EihyKnDKzG4rV z?;unT#Kc;G-r}gM%c9#EQ7Q#xcBog%tZvB^vOGt=+aoK?&Xqz$-q$qRrbbbY)Nqp>z~wHIYq-xzKJVg9254YD}Y8nnrP%*cIK z?(XW@YcI4rW)6|%W*KF~*PHbpCMO*2o29XKIVK5rW=ZLY$VWn%n)k^_Yi$It;g+am z1!nzvk-8{AzJSJIUcVjdtubq|eun~T{Hi=9<%KFiAj@~bx(-4EP5tU;j1MNG9Q!H| zp)fa+#|z<0*p)IQaE*#wb}6FA@YrO*o9uE;7taJwyJ!5zLtZlHA&4hSd0X^m^jpKU z;EJ1v*KdfIuJ{W_|3a~#R(QjOI5I{&M=Yp?r$OZL+*SKCz;nsRHNfZpYv8?181Ocp zB0%p3v%w=8;|l@L_JEs}V|*5ql1$iIjK?y?w6vzM+G1>jiY1G&VcERmj&QZbn3;2{ zJV(AiVs~?oiTm*ciUOgOGB$II>#UT#V`aVDz1o$7cEw831L@j*{_;>_j!QLPllz zr~`i?B~)G@Kaka4zB_b6SqQCh6IGo)q5Sj{Dq{iF)OEL%aG-&hWra;$qpmCCTP!XF zSu7UG9G_-Z2psxx24F1QtgEfjWt2idsIi?rhY-xsewOFRiXE*~G8S@Kv7;riSq`a4 z2#z#Qhj403(7lCIMNtO{FHz)<_l3%PQ^SZgS-*CbTDXZgaszB_Q9guHkSar7?4!=s zLTH<6(@DrvgO3Rz4#JHMC^0TTY(Tga(w9Z1C584<`ZqrtrTq@V|A^5|>k>$+pD?_#1^67n^T_EP zNZ}LWYGd59#S=HcXMh#MfQN1SV|WSF640|a5ZM@C2za(V@<&RH8zJqvi$Df?(vFn; z_!2C=uE%O&CAmIEAo5k!F=jC)q(WBgu{+-3aQ_~+@4v;HZ+?OIKl=^7{?(u3yWjp5 zzWcL(fUke^_wnJEe~EWL`!l@x_Sd-m@N*pBevAFxdlbieWW|B4sB+q~jaU>VVoe*Q zzr*ngo>R&EI%ADA#USWpQ=S|?qODG7jipuFlxBCtX?IZ_gzrRN$SiKKTLTHn_a=eFkm+(=$!v8XgB)hrAwHa@WF@nlAcac|{yo zs51KM%=;qea_DaI6A-mR+$h~`;NO>%j1?uu3xg+@!YOnw&|e66{iN2@E7GAq#|q^g z#&UykT?6z2!cVLKtkH3M!5~_$J}t#Q;(%WW~-n%fBUGS0nGMTDK%Hm5*r32ekE>#5_|Ttu+}I zwPy8Qbw+)DM0I*V`S6ka$(Lu;b=_H42ieOWham6zL+D_G&#budUW9sg9$*+h(P=^&}2Lx$EJfTR*HP&t0fZv$h?q&E3 zUX}Wg=DY}aBB}JT`k^=zD|JWY?9hk8P2ZQMT@w@=2G*I?CK!bXKIx+RzUBX-Aog8|b>~{EZFsWPEPbXEdd;KC4R-jpjmttmOo0MAm>x zNb9DDf{{?C(RMlz6W}`QvtC$BSqAFC3UHkWXZ_7LsH+my`GnGJGTBrm`EO%sL`NmN zZqtM5hi<}M0U=Cf2YiB=^`)HyIHL%9IU0f8xh@$(cDqZ;d=Ht^E)+!L1kP~;Cu9b# z+o5&a0N(AH`0Ltz-h-L{eHHMGgt#TPA5_QST8s?^u8_#p3tZMBvbUIY)=|eqV}T3Q z*Ep!ReQvmJAK4cC-qBYnPS^G3a3)+oB|NGWP9Y`CHsCq)=^u&E9p4wji`ApnZQ$rQ zp9Us%Q!#1p&phW-j13Vy+!VtYKl_T858e-^_;k>~sMu9k6>8&ShL*P26W6pG`}%ORxfufGk8&J5w8y|Z!xkcB*vHuQF|~xxtB(Ma`<}|6^Bwg52Kwe6 z?frYS@4i9%)%W;G{b%^2_}}9X;(v`livJyc5dSCqB>u1XB>pozi2nj7@n56Fe}@`> zK!XSKfqRHSp014U<(@MEQ*AH>|2=sg23ejMX6BSD4aPvGGmfz?pR8s;uAayld<4S! z#UeLRvI`%al+1?!WR@Y@?NJb zAx6v!JqTg8VeK1WtPub}*Zz{upumM0H?YfBc$jLF6lj>6#q>Lx3^ufuxv9`J746zl zmk_%3MXt`$i;G;Y!1c^w`q&nerY{#$b;ob$6oznx4t0ejT1T9@6fWPNM?|l{OUWdI z;DLPFu}f>30Fc#(ecslnjWbotrm1-%SAxm2TREfT_2QS^=Ta<;hhMfJidQ@x{AS{f zIK}P2Ve~tFr zU!wi$d$jMqfxdqaeRB`Jzd?;3(Bfn)dl>wT`FvtTcP&i7TC2U)?{Ew2am{`3pZqWX zO#sFxn9A8MiLPcKX~)F8fXok&Sut*$BO-pr?CLbL$)M;YK`bsh#+-8^yT%N+`sC*>2`MXRC zK@B?xGAm%8`;?D<38%N?WpzeVp2B{`_yD-z27W~xd{7+|xf&*N)%6*5XO(#Fj&~M` zO^wzr+coh~A761t&&86y!uwhZ-D^KHT(!NtiVaorD**FAx-c%ChPM9+aV2OROBcF` zcD!rMbJ#jF-5^6jn7H{1N0b-L$|^Wx1aHSFzT#y=+y7jqL3wu>V-V33+kod`j00@= z^5w<-Y`|+E#w(#4%TpM^oM$4B(vY0*dxt0KN4^eH$iOqk#49r(+X1@+aJU6-?xAnr zLEnD`{q`H^_uoT*_!-)-e~$K>U!eW)J=(WlL*KtMg4YqqcfgpCVZjR;FZ4yQc7_{U z0>_II;#!NbIoI>F*I{i8n*49o^!`7!lu!uTNI_-=RBkqGB*fJow3zPrWl<_-3D@3Fsqhx~8{Wh}~sRCMiN zJ{54VzhsHy2!s$MlyM^!*Xk?~UK!!cF5L`;4MG_4O=VDdfvg~Z_4)3AVt+GSN@>?) z_7~fRbgjx93mZih*iHB+1g^od%fv~xkP=zG=Z7aC&{pJ>uC2^&6Lu+QT|ze%IoNmB z+fHWW>PT(j5cu$u%4yGO)}=;NgVLc;R1R=J|-SDb+S=$kjt zhdW?@1d1Jy<$w`n*7m)%*FOieP2)9vYN^z0fqa;X5Mx$b#+iLv zmFAt31h3wh#u(C6R!B3J`-1wBHoGE*9LC#o-HwT!BltcS1H`P);vTRJC?Dv=IJ;ET z_roqEZDg1idldU4vSJ6BWt~vxLH9b5T{*b5NH!b73T4c?ELH|kha|DDMpIXG|8(`` z`WVv`xxdq7#HW%F{nnqhlc&O{b)?u?Q$FKVpQ(3waaeHk%*{|7|McJfSNWkUgO4OB zycU?ql|-YwoBLA;u}b7x0;v+dAiYq04iEXy9kYkCCAdN&-Gk(Uc1k|LMO)PM7Cy$b(|x2;$aZ_| zZtifn|A5=~-{Jn7U*g@*ev1#k`U`yX+rP$lfBuj0-QW2~`1&`0g%7{{bG-fjH@Nxm zJ@nz0titjgpt5vJ#;tDX(fZ`0M}*tmO0%JjFQ%msoyAw6TtN;YLTWvyhvhC^c-BcQPN)o#h9^=U5iiRF++h-)e|^~n**;+e7*PBOP?j4!#= z)*{XdarHzRLO`kvS-wNDKO)~9pz@;gU1p7;T>oOTEw!!z>(7iW(~OIKnglYljIugE zI>MNvaipMWZRbdXR2lO9k+vc=m7ebo$cjA)VP;1KW!Cvx=WMC@>CkNoV6D^~^G0|1 zq}d$c8ZURtkzT)Zp{c5j%H4B~$h8DpPR>%HQcSB~EH2k)o(|XVBd?gon#ouyws;A6 zj^GouC}Uq*Uuv~XZpu5^;VB78l@ zsOx#p?*7Az`)-x*kND=de;?of`M-j1|Lh;(>tFvB-v8py@%H;)L9-uF8H|+ z1JE)5u;w>#2Q{Q_E3+Zsgw@sp2oZ3`Z#E93rHy&Fw6XIorgHLKmiRtQY0O!2Y211k zS46hlWA~1=Cd-N)@`84~Br$Hq3x5=%TmHE<1YdS(e3iw@K+g9Upl#-hVp*}fs0gCl zmUdLA&!qA;&JLKZyKK_&H>JiE*OvlKV}vJi*)Itpy32Z8UZl^D;3?|=NtRMx31b7@ zOU9PVK3=g6p8rRM6kZlQwNarfMDM`hG1P0>^#A4|Vsx?HoSCP>8Gt>NREH)o6M4w-enMIitZ}|i z?{CY}-2|*Ih?Eu2ki&5UWiEEaqSLfR6@%_XV(z=VH@s)(@Gqvay$M4?T*@;52&Ca`DliT~KiB73VAFvv-&t<{?zt(KSRW~A5N6xZOG0anwyF5xQII+-lPt@wgZ=^4?>giNTnj|5IqhVz;F2i#P#xm* zjkP`0XT6k?A6W_BU@l*=5Qz_?H4v9irfrvY0-HJ4c?aEyS&f~SCq~%4HO;ZowAB|sT8yP5=sch2GeVgvtZaxu)iIHSs35Hqd6$D5!bdNXktG>v z0px?Ku1eJ98P)lO>hyr}^a<7J!7RNyp(;-XJFAfB*ksDz-0wZ0d9(jl;opIbh8KAk5uZgP*W2T(f z!AN4f?o;?|Fg<`S!m}-J1U$cEycC2xq3sS3CxkAd6K-Up(j#5ynmhKSgI_$xvFpBU zj7{hU;MF$97YkmHDP9&lwXIX+agT8pW?yh+tjgc8W~N5UIoQ$)d+NUC?K{S;uC(Bx zJSIIeyaN$#58ZtQtl zr}%1PU3NlKo=~43QJp@aeE13HkAKAJr{Cl8hrh+c5C0O6KmCsW{^@sk{NZ2X{P7Q{ zP7i1svjMime(sJ31 zoB8_If9RkuZ#3p-P%1;Fa%3_`W_QO~By^>t8y{1+7(Aj7=VRGbUjTU3hBzDB^|^~< zQTgVBSLqZ(7<)AH>!)}rTr%#}@G{41Wr`QX>JO5AKD8eIcoDm9n#(agcbyF2aC>mU zt7mIIs`K{*IyYMb2w)RoY_=%E>r_KTtQKb>^a3>rC$%M)53r&kfavwSPGY2`l*O&^LG{K+v~+U^ zneQR<15|M!(K7F?&x)IO9j72>>|7~3lQPGw%pHiK$vIyvf-p#pZQB-YU7@MYsLK=T z(*vrPX>oG`2YT0Up7o;E56E53U41rfEVi z+?A3?l)~;(=Z_2Ha%u6xZTt0l8UbGvoG%Gi$aD8aEm7!FGJ}!|N+?L7Acce!5&~p~ z&MgdL59}?Wmk+8>ikF$|=L&wKhj=L@jB-3HQ?%DC0FP>nTY<;Bb^M<{wyU*S)9?v| z=k&al$H*@6&c}Ey@N_vZhoR_YUUEkTFPHJ`ZS^<|J8YkaUQprn8slX!jG3nyWBkUlSZkxXW} z@r_l`MuNLN^4$T&zTaq&HW@r1%V{@BjFeqKK*|g%-yz!_d*}SY@tV-K4XX14%1=Mw z^yBYPKKz8bB)@5$-?Qr6`#r18O1ZkEzpFFpD=YibC^Sd_Yg<~T%6+lf6@12mu0DT4 zefkMa`3T*VllQ4Bl1&O_#>!1)8M3@^Hh-jzA1CjK*`k;Rs>hFb{PA}<{q#GWKK=pc zPd}i1_z~slBdYTQ>hjT428mq&AoGI9GzuX}{i7Sqn((>K=3Iw!_F`P?Cv( zw$o<$T>ohN225cXHXF%Yr>Avkrh!M4!Z3ske>IvS5I8tR>wKRdpW+&OLE1-$d+-$l(Bx(=Q!uwL&j8O3=L+zs zrud3iYz86XJ&Ye7BXGeFa?cAv!ON^B=~t8t-!I5wWcXe&4}l6_0S#>O>=sh3&d;oO z%MiThNuau7>?3ji=)i-=_|&+Fk1^0ARTu$*+#_X1NXU^F1@dBt-EJQcy!i6QEx>C% z#-(sYGTOD#_c1nHtyY~M(Nuj{D=JAr%Lzk84_lv&8)}f{Q~_BWI>-4^<#a4J&g+W< zvfT~T?g*Lh0U^;g4eF{yQ&qzZ0nA`^^TD46D-PC}&kH=PB4aYD$Zt+kqxFuZ)ow`ZD3xY-Oaq4O9-;!nsJG4ThvuaYNh3bAgD40puOU*lp&1v z-p>Zz1Z_6>;F-eD-TD4Cu|>gn`^0#C@ElAr4f8^;2hZj590xi3Vd=#%%CU*XX7H2k z`HGEkp-P=GA9%$pCc(#nF2f7BBFb2ZA*2-Hf(ZE-Gxi_@N;#y}2#R7yf>-BvNhTJG ze8kNIugqAbUKaV`4%zM&D&HGp8dL5-d8AUv@*Rr(5m`Zw`A5sGK_XdoMs<21k*t{z z$%G)0Y=6Z5<_+@Q5h}|t_VHQkmc*;-gxZK^x~<3SRJ%Uh?MgWwXb7^5wVMQ7Xvw7* zZiXOaW>x~a!X>Tz>kOilU6M*d9wIw|F2TsiM(S8^8tE=qbe1Zb3=5%r5Nx{~w#Cqir>y$sy6c>AO<71z2kdndwa;N_X((}U+|ieqRs4?V>p_*u@-HLrNN zxa!dKidR_hfn|!DVbjPqeF~1g+|5MtQc7OWV_b=8!D|jyUA!GO8bG(P7+dgxnYA&w za|noC1IGJAa=#lxa-H%H8p)Ia4@LBUsnEKGZW^?8P4Bzq8P)lOrY?QaD1G7o(HP@XxD21NdM4C;tQh3A?m}ZV#F7AXG+b;Rr}1E07!CVJatqMyiZ_ zR2e^G)(WgR+#oA<#`28Ua|A*_6+0BidmP?;h270tWV<8e=>0}ZA)D%q=KM$oJ-VT` z9~c1j#y?V#kM`7T5mqj_)HE))O+!mmO&=z`=9BR=|A@LgJ9-Ye-O_C{>wZaw)@Cz; z2D)j`R3+p<%R3K^4_i-n4^$ zDdfzC_wn!lyZ;(LbRArv4@}`A9d80OU|cWV@d4)LA~hObWkaUMGLCU!%uhAM zfyJ1AI!unWQ~x#BS|kl1;|X!Gi`pr~FswuJ&dB3@Ms<2b`S^hH;S138f<( zSpQaO8!7O75b0frAD@9Mzq`f2OW@Jk;6$=2grpU2IqiZ-BH8%(XqQ4}#jZ2{QDzAy zE!!KvJ{2l2P#kWtzyE;!?RymaTV(l;((YE{9lKR{#myb^y%p^gGXPpWRdPUt&>VoU1eGC<1TiYvrLt=pOX>F#>OxPNBoL!Mo^(`D*!FzK;*Kfgfl9R%<5`W z+uXt|b4=lS@r|s`BrRD~s<-6ocCqj+xwNJoBT@>IrkC|YlU9DCh=>)EM4m@y(%EUWAwp$ zXZH(a|k8mzUve;#JqV6jH6|cAqw(ebnA)Vhi5e5#Kd`a(Ej8k}? zw-GPJoD#Vq)51@JXMr;TUa&zN&I5(h3D_+yU5RJ$ezm?Bi|fLQD{bAN?F6qg>eC6; z<0Hz42b7PGs7@zT=QHZE>{mCLRZUCM_L_R)-FOUhHzMO*HsoiHhZ)fAj{F>_-*tU@ z-~oKL^|^P>-jH*4-PW7?sTx4{{e_n7)y8tkakO8bh}D^#>rb?+5CTHcj+LGBdNHp( z2`MiM#^Or%n-7rD(sp88Z-KW*u{TRljo>Gw2rmbf0zeDhR%q&zakg)F;0%LSCn~dy zBwb@zBQO|~{;+ibfw+qO3w8#mjosm<8zCfmj{zyEVx^L;n-=AOCFob%Cf zhpQOX8t0lxIxfwCfbR^<%!dz|kSy~EXR_aPn@Dg-#DPymCWlEOWU9rw^w))Dqa^G zB^EcMqVXSA-I?>VvwnN~j?fUZDlpiFDcFG|P4u6tvy?Y1g>9To`fRryyv@GNY~7Hs zr>%oCH~Db^-*ovVgxW9On_&AMl+>H3)YqBEVJ9Oe&eP+Ssi0&uHcF0T@<5z*v*OpY zUht{-C}1EBaRYQBNzr9w1znCd-~Fi$)0F&3l)3sd>#kuC)Ff3ve=K`rRSKN~SoUDe z8^?c!fSCOxIQf-B{N~HaBtihY86N|Y?S92rL#*ohWe=~>%Js@+bG zZ(f?QTik?~0CkE(UfjrfjEvP!z!>?75Ej;*hl)22)tAOWLvt2m46CGt%t=A0w^Esp zNkNFqvG0z>_WEXuts-{whK8OztHoTSiszbT&hewY;gXiL zXfg%itwFz6wn8e=4>8kORb;R)t&?{Bqp%Nc5Bc{Mx>#+r0aCJl#6KVew1e8pip z=OgO)skEO;o5VPR*}b^wQVn`+>CPeJRnfvV8HEk`&-vU-shBR$)EtmQ+g(W5U7nC= zBtcUb%}>)It_B~e&H|OTq{z&xd3cmO4Os^EoklPTJs-YwI#$PwDp0;FdhEvdBwW_8_$y$~mcj1TUBg^UZ z`qFDhcTAG8eUq{tlTI<`jLZ5J5TRWtKmDbVecm@*`_}@5{~TZ;DY4BeslZ4F-CBU6|>_&yh`sr zH~P9`?aM>nlS19X(jk5m_f&%F({Qln5H`=31m{@#?Ij5UFQQz&);2*%FXF3#?Z1lG z?LmhLPHbV@OTu(|Y%Vq1CB*%VTNwZkW#?o;ImKgEN_?s?-@ zaG{p^x+r5qH2+%V2o?}!kRy95cMi$IMkggSNOFwcLMuWCx*c)a$#F|lQsl}L4vyZ(I|r_N@U<1+W9(o0J2XXP z$t*^o$i6W)_7|Kb%*~(mDGl+posHq|4f){haLj*!11M1a6Jd#}WGU%_T(|hEb^)(% zs0e;gLTlbH0x7pBRQW=49>f~#8n2g0?6YUw;mzDqaF@PL;moz&AM zAYN9Q>LGJbkj@CO4U|Dnk6^QY$s5Awfn3?KgU?fn2%!%Rc)=X*glw6#qw~c1)<14< zX3kUJF#cUCAHp`T!eGr#cj^$Df$%cO6xsM}owzE&6bwiGR+s8J2* zFDMDtKvY!y&7bRCc8?QfK<%k5V&KGBo4)B_%KA{D1p-<;O&zqFf!T}udd-7-2jXIW(??QWGy`$5!$Bog@)SZroA;eP&7{zA?o(ymBoS|G(|I;K1zS#> zm_V&8&gcjTFr7`HBH4pf;UYKJHseHw36|SXJ;CrdtGGw0)PKLC6O#8*C`hDGTE=JLwbmS{(u!ge`wf(YqLcPkQ~ge|bIQpUal;92SPthZnVfqxI_E--`-% zDVyA}AQ5-5g=^mgtQn8DEgB=xa3kh78@#)TE#~Grht$w_t8|GdE9jRsDB>+13J3{6{-! z+$|Bf7^6YgVv$0)F0q(NDlDz4zIxp^gFIvW6f(y(#?F0lnQ!InR6(fQb&(vyd(RQxFHZ3?SuFN$GyLL^)ASs-=M>xUw=bJ8Cbk5@{#9?f% z<`wN^O!9viKJ{>%Deh&kXMc7ubO4V6WTN z>EIO5Xm`P#OB)7E3|n^2xoG70Sfd7sfdST3twa)oEccKEZPhfX2O3Q|7!St zurz%i=EfIJ{Veu~rf}iMm9qf<^k<;$IJywnWNAa-)@3uCL?=X}<7_z&2mc8@+Tg7%9LEo^Qb_`R?gsu0 zhdt}5T4V+fwb<>W0G(dc`I>6C)Jbc%q_8y^ro-w#Vwgwjc8+1JP@m#>fT8j=Uo_8(5WX-+Q2z1vv5^!8oJZsszP(&t zmm6G1Pxd=RF>c^0Au@X6v;+OioLpwwz?y~ES6stxyX(nU+^rsm>wDcev`0dROV0m% zpJ;>;Bz5BuG_BRu3rZ+u7(9ONbb@d%#Ulafr{-OFBTsMJi~3KVImEiY6POxTzcj8W zXBnqGMsG>Luua;&6gt(`x4E7@{_c!Jt|4XWyH0?W(3w*XczBrX@FdaDjU^yklV|U- zc#~10LC!NRx+Ur|a`MK5%sOePX5`!_aPtxes|vwl?OZbDJklR|!iD@o$Z6-RG@WtA zwjRJuLj8y8S?Dh^4OPx>6=>inLlLJdy& zNPO~a-HavaNMFta_vTqb)HJRL`QJ8)1qE7!S4*0W>fTYj)r%*4cYlb*)N@W)J8Zg| z-cJo;PEJR%^(+r>CQJWF2Y2>l%EE7vw`E`;dH(Y1YH(}&dZc&w7)0ji{{*o=nDCV> z06gSUo!mmTduK&2-;K0bTSl9`vx_@Nvs&#ZMwL~>9W8P;wTG^#H&-zJlNz!;aZaY0 z6XPw?bkv;cLrr#nw(|RkJlTopL6tuF22a&yDcP$WnA55(I^Q&dPCaVw1H!eH>G-+_ z#e8~@NJSq#jP|`+w>Le_y;qd8C}S#|y!%53it zB~b^uLIOw?e;Z~T!x~(H4$m|K?*!$FW`u#7^2TmT6x^VTFr^cP8|*cr!A_%Pw3_U>{oJQL=v$r_<;d}&S2 z?YI7zQH~wU&?^ z{C6~KQ%qA?^UD~(Q40me5mDCKr<|-dimIo}r}KXZy>ndBb; z{Uc_h$?bL6tOsii1A32tURgI22?lVQjKwjhbPQovV7^*hQ;C50;MZ=F>bP%fI4RjW z5KtZ{`yJ&@*TiIE6Tiv-17{lU7;7Fc9HV~xcMxz?f^CQuoqqUWffGp4LKfSSaE+r2 zT6<*f@mkugOZ6TW;1`unR|3RE2y#w?=(=@Pi7q6YJ7NP7`P z*b!iqhDDZ|I_YdZ%B-XLaSpx-r`G15dQ_=h0YoDt@SpL2s_AFc;g86w-Y-?iW&j_sSRdw;f8uhbjSE07fnJMjBe{)Miyi;F(VAZlq|5>*wREFQB6 zxIQs*;AR|XmluYj)C1q#Kl9S0n~zf!lTyYc=dB(HU8`16(R^=y4W5y zuZ(_b@L!w=QOFr`?=Djh9Nu=8b@xxEQyzK8iYW7~4Hm54Fe%X^Z+8FQAUG<15!;nH8uZ?1 z8s6v*7UfjSltT^#gMETjjIOLd;-rmy>EEK{k7_#%DP& z3GyM$wuoKum{??R)qOXnC{CUfM{<5eM*tRR{S%>96gZ_YgDkJ<9*lBS^{hafLyR);6UNG(v>_6AlP6a1k@oKz+_`{ycqFUq^o#Kg2>Iy|$l(4X z7xYx9>O&zj{v(qzX@W=>Dl*D!!`kxMMYXVIsytQ%Y@Y6D2WayqvC$Q;)C*EP+XlIp zP2x@NtBR(%!Q5>0Gl?Wa~-2kxU`wJHH0foQ^jMT%nxHpskeK#k(5wix-30RT(?-09rx)Uyd6uhEN1 zB}5}ty}o#DHc$&G8K>66I=1kF1T@@-MF>idIG39|RjE})HK?b6w8Ppzgfd{aL$inN z4Y<8CK_2w0kBi6}C^7Kt5+Cxkwvrai40QCsyO6o$)7x{FMXRy4>Xry6)>!`aNFL8O zfbYO!_s5m_;6Z>Dt&U(P2hN}C&|(|I_J=Nuf`aUVA-|_I`5=0yLhElIU#Sha2D=(E z5VYsjkbDWde>Zz4hp`x}2yj^neudeIT8!>=03j1*#0a&)DhvHDboioy_?Il-%!LI6 zH(3Fb#eD>~h08!$7t{HJF9p^#qy$t+*RyIQdPHDvs#&aBdQ5W$1ZSKnRI4smHG8N% zMM>ZZH!Q+Gkq`@c76EfP8FP2YBb?b3_{#Y*r%&C*=em@p5LqdUC^>U_zn@(u zD4rD}y|n>kEztqGE;zmj zWExvmymQ1Df~Fo6!pI1$Mq)*S2xsfOG=LQR4S?O&j+NYzFk2NB9g?iA$z5(n4NDCA zeRSvug~YM>p#+6larh`;NUe%>jc=@IzBgXAOvQ*;F32O$F{dJ3G0|qs)P3ejQH-%< z5h-9qsr{-T$-c2jo#^&4t@6qymW_hNpKrZ*j%!GHviKW^e!qz;*Iw6q9$Q@80!D-k z+RfejxMDiNDmyE*rb|@gED^_t-Fl5o`OM+RSwe1=^dJ2dR` zJ=ja(eDx!T7Da0*OozOo2m2@BSvI^8^5K`3KbiqrPz}l6-q9Pe5l}@3(II_w2^i!M z_J=_^Z7@EgCu>jo9X+|9Hz?gnNgqN5vVEh_sn+Qf-hk{3 zHI7Wj_qL{A(?O@J*Wvo0Wq6~WguhDD046|VTmLIik`2${8MSR6 z`rkLG^or?Vz0oUbo5hpu@rA{cxqNt-9K+I2a>@?_MNDRY;QH02=VZ4G zI(2;w$9D#|+Vp+@&f%5{3V!pu&~sOuD*R4sH@8Xb!LuTil4)Pu$b1QT5)<7<-vX-m zqLq{qy2>mUZLAt!s0`bL7R4`Xs$YL&t2Xj>Nd!XnfwtBd~>%Okezqwt?urWb4Bs?N>@AlpAC2k*wjb zwZC$j6fZUS?#N&%h&lciR_x(t6&Tj`@FWJ%(XpPbw`*`MZt7E#)ISF!-yF3LnIn7QD2F|BOR8HRKh|QE!92Yt1?_sJi=5 ze!UR^yVYfTwWAp0;laGQ-qhv>UAulU^E8LZ1J#9Kss~Lf8#_%pwJ~r@Y6`s}^nPY^ zu#GW0PJ@T`f}e+WWM?9z!Dlc2(ck2KunbXl ztuIBLf53RNbB9uF_Jl)&Nj?G{av;*oz5ym6v zYo{rjn(^IqiRR&LY*B|M;ad#X25p<);FSeXkEH~S?uSwE!+62x#nDgopQ?=6)g_hk z#fg5lVW&M*l!d@I*dN5`- zETfoq7uKq$qI4zqYg)GsMdFx(W8m=tH^eMb2aHZc5WhAR>KHTxMfmgO0>saN?6^S8 zxjIVT_6IB7#%BZ7qKauN8}^#|Pg=Uibl-HuC^NqeT%OB;F29J44WF}15m8*9$WVO( zW@QEkRC|016s_`HB z^u{>fj!^QD3 zO{O6N^x%$3@OL;u+14Tq8M8GFzQB|LZ$S21w>*kD5yLp_nU2Vc(XSlutL4?ObV2EJ6bV@9jNwnmcyeDRC zUn9KkzmXGO$j79$CyjqLgas8r9k3^eRtzs|;Z6cE6%q^iI%v{Cm~+3~zE@~u<$Ej#L8d>W2<<(zxO zPH`F;|9Y_edsjyat(lrG8rIe070q39UKGyF-w00^0XK3-9rGnCh=LqlTh3XcSurLD zzK<~F3s$T2220rXo=? zGJbgsmx$JSrbDr!95(hhj!isl-wOj*wlQL_qw0^Bn~y;b+Gbte_lxH1@V|>R2ig$J zWZoQ|iAi6Qe?P|z^{NX^e^{NE+k;aDY%yf=GW1X{<#q>N&J4z~VXcU$yt#Ug7XGKKR)Eb1PNMI&vG+obpXc8=XZ}J8#uH@^_?#&x%kp~ zYO1V8hL7)B(Eo-DFL8{(q~7jgw8cv_6b|bmuR0BE{fo!)pD(r^z_aET8+k?U{+fPp z7tjGM-~Y;D37OTwDeQ=R`mvP@zj*Gym@StqlbR6;g*m*-^Va*R^a1xaqt4b#&5E@| z@YCm~G3tk2eOLm(e;nARfPGM}aQ!l1O&D&17bmGv;4ri5R9Vw`U1?{vLdnMBZWm0W z$N_aq2iKMBM?0mP2lKYhvC7)N8TF+bO8&X4PCdSbsRZ3Zg&rm)1!yg{2u|YT1xaIq@S>R`oIjZM)rn2FwwL08{ZJ^ZGZ`EYuQGl? z`Qncg2i8FRFVFb8aCr)`%GBz6TF4)Kns;*#VO>y=_M+yx25C(=+UH7NJBM=99#SQ`tW60too*f{s*o1_+|Cr-zedgo{xh6&JG;#Dbu7# z$cuUCXz=n}dw68xnfr;#?B2P~_I}JY=C<`v8@%8z ze35SouJ_s*JVLvv5B`%@jAFG96hqV%%hJD)=m=qRtLAs1cm{+Ap5`0e|$y#ULp_PM6;a zuBoQ-KLT$@M0VefM-Yr-Js75t3hit;?|pks*bM#P#u+D(>`c{m3KlXK6Sb#IeTLO% zJj$_?rny2X+L`g)#lBQ~a;);|&K zQ3IkoL5ABO2bac%Z*ST$`pK^K{m`z+@0vMUuq}NwyLT?<*OZI;`2bI4Q)FV3GCYd^ zxWilMS}=;bVL!E#3l6}|F$k+36N1f?`u`e@B(<&YP2;%_p<4K((kua^Ri`GaYbp>9Nk|<9_(OcC5RM0A4_wBQP0;agmVzp z-E(LQQ=GY?)}0*eWdTJvcq&|NNfCd}l$+3V80urqL9fBu%@d!?VG8^_+Ir>b2&hyT zuD~wF-f$M$;J%jOi2$K>uMrnWtl7b{xgst6v*cW$iZWTWTxx{2li_uc8kTGrh!u!( z!UxgmaO)Ndg8{n#WJOq0Xd*?vZ;>Z&qQZxNII=n@L#j?f-CmmwzUZ`;SN613sj_%CW5`v8WbzA{*RRm6-R(82e=jyq`}{q@PzlDIy;j zlVu6rNB0$Y-LBTm7FKwIV`4H5+Gqx2_^nbu`Scm2n1MwFbMO>zuYBeP3&Q|3-G7BD z-A}2AH;U$O(RSOuhQIN8)=|D}kN^aBD#53&cvSm-)7K(A-#o2BtqV&*UF<5sPIdN+ zLT&lW*h@AXb?6vH!+=(K+~fOoW41V4i<}#_@;u+kP174h-4_*ei^nnf-~?3Fy#OH^ z&&|>{Vo)+y-W2}))e3Wo>mQ>Sgc;7S^|Kb)C@6)x@cQ455LMC>Uyv)5Mt`v4b{-hn z%=juVH`xtn35aEji`0`Cj}=eM37~^4kq!Rgvj!D=f)|6h)}4!DLn{dZ?fOjrnMyoqv_Ta65@lrX~CT~(#Y#kI0HyrJ98w46)Sp3F<< z1iV0$iF}Zv^}eP*-SL2(<1dGw%)%cr0r5%!uRNY_gO`pU*9l)m-a}vRz{7;0{P*K7 zLpJ5?mH;bm?no2BBI1A1Tc?Z?!RYMnHr$?^P&Zy1lrzH}pNB zbhor|UGq7TknIgds^-3Ti+UWRz-oxX%chwrjN%t6lXM%h z!d0ao=h9~9N~5a@KVGm>{6pvHuxdj8;ZUCpn=CQ;N)0ThX}|*XK6b20-A(UMW3M@2 zSP$^?(NhGc(GPL@lPy--^lCg!08?LjU5z{N1jI_W3qA{R}v1 zC2B=4yy#n&C3QvvzhcTve5@cA0II^IXgH_#5k%fS{&(`9hIHP!{%=%c;DX}qE2^J2 z%h_yLBR1=GTob$SI5T%zv2H8*T?c?=)dsCF{S2yG9WFpHReHg#2cykD4o^k^XI#(I)jkZ-qNI{gg&5gh=)k?QKnNCYSSev4&p_%y6nEm>gcTo}ZubM;r@ZEg4ocyL^u> zMAnRkJFVat8K`@gZ+vL_4w++N*w3yTBFp-2F^aJGP56Z1KqiO@D`nx~iGKtzF}oQG zmH9tw3TN@%9l}Cr;={jnvrZ@`5mHP;1I|&wnP{xYXjnxE?N@#TKpiILPoZ^U>I5=C zthyMSfxQpJ=Nh6R1wVc^wE=(BRqjMtj|YCx z_diqC?{k91#+fpu06lIwT<6=+p>}j}@roRYhHi|%Qk%DSq_ZkLKf7Ud2l(A}sa#7! z_^;;D88N$JxiZi>y=0E4T2xDlY|W^VH*>NBr8~SJ|87^nwHL&91O??2fe?M&<>^Ug z-cz(>yS|e|$7jLkW1b_{+tOmf?tO*aM*_S<+#_xyvP$8_f8c0JRS7{onj|Vm4mpC6 zT>dK-f+Cbw9AIfP;WuLnAnBPw6aWH`>=Vye3W6KDRv0B#A@tBV#+w!#_<>dwFhuu7 zw8ClDHp2{^ux91Qt|Tcf%kH%cEzAj|RNtU;yr_|ZXE?SKCG6jWHbFd!4lN$(milXK zPn(C_p2PAhE{INw6*hvG2%Nu0sK=$Hxw6?eh?OksB*bwt7NI=H@UBh2e^br;^>w@; z#I?eYG^68mbHE>dFIkyHs!EeEj%`~^0U8orYOjd}N;EKSQLsLk!T(;fhnqflGjhN8 zl~B!%E!2eB;O=2-@jU+tx9ZoIMT}S>EwB5vq)eJLW+Yz`r2BN%aGu{-=|4(sG zkrkc{^1?*W-$Gk=8I&{oHEqrPA|gF_3@z`&O)ZT?7ez{0ZM&w6(3%(DqWd#2lT{Nd z_mgRVnY-sWqPwo%GEk=;K4KcrTYztBxJ&~qjP0(vdo<~lgi*e+22ts?J{dn zqGaEZGiRGIey}lY?!As)0pel(z=vDvz9Tqe`hns)tqU3{veW0b(#hA)W8+AJ=sNbGj2?vZ#gJMad&wIg zLmjG4_;MueC!(kYUjx|41=exDV=yqnzJxTP$eifxR|YHgp3_7bG5fi(;gmpt`h=TR zAFT*63yatu<;rN~#Xg2ozyaRZcHq!Q7(NdY$J#bT8Rw&Arqc{1JN>=QPUU!^J-&Q` zx9rE8wiD+u0=KE`KV_dF3Z`^{?fi&S#4HX50EB-vM)C_~?^hta)c5YMP3}?8(0EkW z5U*Wg&1^KDTvAtrq=!qHvSS@Oe(c5HGb~I8osRYwFVf+Jr$V393eux2Qz&8x9udvG z_B^6qGnX`DFvkHl!SeU?-R53A?!vuA;c=lEb&7q`7fqcw>HPA? zdY7bsmvl?7WQ&0KzRze?pqlpM1yv*Q^9Sr}r^i?OP4YF8xhlz}XtQd@U$d~p^XN@? zu60$M6t!Q9#}dyUz;2PzN1mo}8ZMQv(wZ{${x1!_={XR1cJd^}YczBGqaL}3*#RDh z)X!L|7BPzUe%vtCx}55N(IO~hLVu4b}i?u815^)WSW6$6bd}9Rt_Cv~;kr z#-b>OdAVS`lcCiY2SuPhu|_b50>GUtVA-7)*?$uMH#(L8Yn(w&v?3+J$V+MFkO^H~ zmoSxrU%3I9AMJ0EYS}AxvYb-r+T+%eLmj-OkzYDHOJFRj49+1LzZd)GRmM5Mv!3Kr zae+N76Jj%vqGnj*`e#_h4T24(N6pvs&Lj$Lf9+YukQBr@4Dg0_+AiSO=)lD~5QNI{ z1?4tJHz+k7ifGRm?DX;fz^s>2BWT2@(v*Rm!!nkQRM++w+d2JpG=Ho@L~S>R2g!E% zQG?~5ij(+^$_{p=kg>_Y>^wco!FgC260!PK6rfe6$-0$6G%>sC7t$+Poib?asprZ( zkPc50m7C;0)Ci-?Rcl}oRfdCoKo`ELlbC?O96D>if9qOpS+bp|?REVow3(wtbBh68<1jJ4N32>sh0S zZ=r7Z9ZjOko!N6(g?Mxk@k z294A+7OEI!^R^GG*v>};Nw09QdG-1gH`K7#Sc=WrhV(0meM!kZWWQ~rpr5c&Gw=0n zrHfbdDr4=;3eRA}FJTX>89!AXQEi9>%OIr$ND*Q9x9i`1BO`coQeCP*-k?zO1E zZr`3^16)H?&)@dC_ziso(FTQ&vGh-5S_h^v>d@lxTJv-Rc+Up7UmtJR92t?Thqd<6 z*3o1g_LEZ(wbML`(#aRNRY*7c7Crk#{Ozv(2}m8-$1To~qx44`E}G#}MT?9pX*7t*9gi$&Ub z_(DNxu>)X{+$-D;q2rYzs|dMs8R7C~j!WqJK62`TT1q#Y5>MxTjCH3nZ06++h)@w3&}oI&xSB?XZk)h`4y@ zmRype+eW6nX1Qp9CUKhl7>^!=LW;^*v!vr8+*-YlRUO)}Xds1tI<&lV-wlrJXP^4w zX@>V@dN>ec$ChcFZ9o~EP?<;eBi(Wi{*2Z6{mIMn0*m)@Dy~Wt_}=>HzgCTIxvK+( z(xe#IA*ifS`X{u8(W;S;Lg!Y@m+Js5b%+R` z3ZT4~X52gm{`8#5Qp9$Xw;N)+dIaWtj05B=6v?5D?2Y8a1q38JEPmER={rnWksR?T z3RPqP6Zc&fKOSZ}#O|Mx{sB)yOTo>wFt0}+c0Q5k2k?nAkt)Rg&vFT@@G*FuA`uTS z8p5~s;cx!9yZdW|@@XnJ25dkGsZ~2&g($ZE^+}**W6BNU`P>w7!Xf2XPZVFb%)c;L zT^&(U1%}A+2HdaHxEDiqXRUl)+)>v!zn2R-I>x1|y8Iuh5cEHHAE|xcFW{m?KB%ui zbU_JdkO_1_F7!W^I5qv*uU_DmsAJbP3 zXnAlgp5K{2N4I`I0$Lz-u`QT0@{;CEaf9gCs3`npN5J?7M1yB0oHIpoA_D7<9k5We zNvInt_V;#B)Mre6`&iBljr9rtv!u$EoWriCKLJ)5DKWD7E^Cu}5@^mHh&? z4f`aG3a}695p!vZy}V1NhB*Fahi*QIc>g*Y%KPf$ZW|5KNjM;}H_XjsiMX7Z^ky3S zff3>o#xyo0g4p?3XmK!sV~WuziENM+%L!@Q+UjmV({`n$Nx;;$r^d~+mdaD|1q!?Z zxhB<**0IbA)LS+%tkM$&jOS+}U=l?$a|&?{ee^M|1zvopjSIz}flT>xkq zdH3^r0J^RGhEj`YiQM+MBuA=Xom5pcxxej5av=S1%~pB%>J6in)Uws{QR}8Yh3fC| z1GGlE`Hgq45O0}DMsOgWc?QW7!qz*yC9?d+T*NtH>%ofAEPQ8ON{Au%(+FLUFwyRGoH^b5(BhO$#-`2)_5{deCkVzi{BOZS37 zX60^uq#|PF_UwtVW%9<2%FgL2QTyRrF!{}+dU-!cGjq^ZH!FNjKJa!V23*snuX0t|+!9BOO|V#9vFb~rS2l!A76O*+bUaN^1(|Qwipk5$ z;lK%WLv+tYp$68}JD=g0prwM-7b|TFtNnW(;Mgfzt%ku;M9XL9E@unL7}YdSUN!!P z{4c{fFKUX?5X0j+f6?xyBlD4Ui08)0k48*=v&O#LmN>SS{v5vc>DZuj`ya=@m#Mwb z{9bmpa){$Y0%G@^B96onL3H*I5`FoO(wmQb()~~oZO9?MeAlj~At_BHvbw)3rh!89 zRN(CZ9Sq94WQL29$;o6W1@#}@-_f8x4fMz1qD2Gdz#YAEl0reNeKV2AS6L!jGsH}l zT-2h5;J3eS_O-t7AlpeDLxfBk5#u(u)Ws$AziERwf7M#3KuoO${78M9OS)}~kmv+n zw}!zj^g&^rd^T1sgAf(@xmfR!Xies5V!?~df9C1@c@h0jVfna>+TLROVsML9d7Og6 z`eV#Oss5vJB>Y>TQKq`sF&Qmr%QrmVz=}vMk$QQtv!I)~L{A=?ki|!V@rp7*r)RvVoi>2;m}+$VzzXIj>+Zh86qBdNqvUp1un2`a=pt_D0*44>>GP&) zhwVL?gfvp8;tsE{x%wumUXqo*H%qB5l~02$mC}t0$xJgH2AE$Pd^QoyYOW*&!XGM2 ztF9v_>%uoy8VnyYbjk*P+E{I9B~2wi)XjFdy}7DS8&E@qu0#ei{UyiN>ASs8;~Ypb z?e*sw#ZH7=Dyo)0vRJ=f!>{^w*Iw#sJEKO&E`3%tZU3LoSYXrG!)5F7G$n$%6G9m7 zstBgN&OY@07hpKf(JrRm)+DAjq(TOlQ`2-1NY;Ny8C$}_3JOlgEYbz$@TvWpLJ0$a z9-TrE4AIl0TL(*aFX0&NqLVmjznf@mTSl-fb*%$vsj6!qw-Lg?i5yHLY2TKz61s&K zhq$_==a_-;Z>UJuD@HM~*01>#5hCtsLX6@X^P55F1f@BSWky!y{aDCOk;iEI^k`$v z_&~7^8CKtsi+AP~9()l^wX3W1t^`U1g@ z^x$~5oyub!dJ$gngl`8DJN(*b;pD5PUApyZNm|y%{otPB`kg9Ydtvm24MC9pL)%ah zxCdT$3eNxV7j(67kObEt2#6Bry=SlzSH`|ImXyuQ1D>9uaee&|xRbNdGH<`3oxY)w zulNim*dkj53#+FpCF;up7nws-ehg2o%kULzQ?7QK!SdgZ2g9?WdZ1_c8dO(hpCT|p zyEz&E)B;>bj6E!yV5UT$Hm`Lci1E`#04-7Ishv}e(=TBuHU4bVOe{5~Xy^;bWvwL*gcSVOctX~_u#HOx%>cl?+za&xGUO0*~%2hs@< z4V#*#CKkOOI)1W@4oYP(N_C>U)9))Rn;1H{jk?biuuzeY&d@QAUV60_yK2Q>u$Ebw zNlLwkOEd`EBfa$fd^gkGT1Lb?O0#ZpTWBXc2C4~B{2~~+1)px12@YTX^xvI#JlbDz zTO`5uec+Zw_rXN7)vj!#W4@-dInD=QWu*l-fs%>Z!nK;_u2t8`H1pesz*Y778!NQl zQM96OA8b(H#*ygS=TOMcXz*c%n$r$zh4tyt(|>rD)*H#8LB54PKNV!?c^Y5t|t zI*C(j@8B9p*SF0tq4u%|=;6>aJiYafyw&?oy0s3@&$jOsFa1Z^&xqr_!~RU~x?$Te z`7DG7!uEW^PY)cy*hPY76_353!DBv=qzV|;`N?;s2hl|o!5gml%3mpvmw;|s$J+YA zDujyk*fEWeoo4wx43_O3S)yRy*ZvxV@o!0de$ya$KSXG{R3P$(v<)c>=H~FwF?1CX z{5OC7AW;HHh=%ht1i^?S9HQACT&|&k`k-=zNwKkti`mBgl~z1-eTV` z8hsRjXKUv%W zG?XZQ!A0e_n{zLQ{QT&Bt-TJ>9MEcC?~K||x2==q6f|@)P&5K01~1y)`o`Xx8$B$E z8B74!^=daP(yS>;!-3U>#o|dx+is1W{qOyV24q*0?@Lb?=N?bbo%uxlr$oMO?|~j8 z9&IA)APbKWKY!6AoF5Q$S?TuK?P&a)sV2mF+qo#=dZGTioM?i0r03Cy{yXx4ni=r< z@Pb5y(=G!S<~LEN=M~pEI*~lGk+uM#d^nN3LRqDdDhhvU2uynmLEe?au# zO&@aDzRWUH5%0hs+~L^`*xLD~a-$HKHrY9QPhM;jHIFtjJ%B9bUjKvG|uGWl;F9>*U{MgB=G6nJI?J9PtN|$ zp2dmfCi1VfIQo2I=OcOc05js54R^g*OsD}nI?FY_sz=}+A9AD(QnzJ|SHpr6qY?HM z9~!}+eXM@mofj8w{lea{w|As-5PUJb5-v9rx9>NyFR$)N5DXj=9GqHPgO^C#843>K zZBe=D$KiE2X7@Mff$atK!*2bzf&~Iwgdi7~Y0Jp;q0tzOX{lIYaGoD*ULk%j`jyH5 z(y_jEA#y8N%~CDCyx8eBS(v7D)bNZi5+{K=wyPCg4fy#t$e4 zSC7WU?>9S-W)-3ImuB3;TK*JtF32`x4CO4yvXYicwIzZyG>VZXdoN!`M|<&=0y*O4 zC+@vYpgKO`0Tk2NuFKO^*Ku536eIUsIv@r)TjwmayaeNk4NpkRGU-BRQMt74542X9 z88e9GXP8QPtCq@=@Of6q3MARp5iY-asCWAW_BDcQMSjBQ1*P!SC^e1pP78yQd?Q*Tc-q!B zc1qj&DYkx(BAT)5?wuO5uxxO12DK3%C_x^6qhen|bYe-_g zcmuX^iX(3R#*u3#F_znU;}_^vE;gtJ-s3HHGa59j|3}kV2F2Aj-5Pgyg1fuByAuK- zSa5e69D)WX1O}H7AS48L26xxsGPt|@+0XmcshX*ppHtOa?(SY|U00}MTTHWnX5!_7 z=~BZat?m3@^L8~7F1T#qq)KK@pTK<~9Wp0(Tu2m~O{BJ)DlSBUd}l3v{cfdhq|h6E z_2WiQg-R;#qv9DSwms9-FKetz7}TEzv9>Ik>@9+BDhERimP?` ze(0P%l`Ao&9Jr^9idD1tQw$P*bD}VmV}wn9r5!X_pOGQEGn%{6SH|G5|7vUGi)6TF zlqopA^ca@_wWi~y_+!>>hs0Zpq4_&UDHCJK!iyAW++z^tVi%rgx(ev{!VKU0GG}V33O*-+H#g2WC7HNFq zJ_y`L0ZG}LF|Df{YvgOtmkWyamWR;)N+{H5=KEzn`$gi^r?H78abYijAQqvLAvIcU zW7==gVp=j*Z2+5Z3iNfs#|?t#Wb;xjJgVn3Iid0GMgHLm5eVg~M9g!EnTOR9=yz9- z&Olz;DbFKl^Kuk(6UR4_z^9#(lGqjahXRuSLz^9Do@ErTu>3JzWaPX~ae3Bmm@jLF z?l3y(SMVe54t9w2L-hK_b7M&O z?O1u}EV(_YX=yHFpO6#ztNxX5`wmXGdkdGRW#C4s*kHPdR+chA(@fZUE&&%jGw;7s z>itppQ5GFlSwW3|Y+8NeleUWGg>}CTTMc5(VjtCS$yCQ|xw{$_?W}(Pzh&C3fcx^vDcX2PTbJWF+ftch#KS3nk0w2Fxh!VA`N*vdWX1!#`m*QmMhP3} zBKeuw7TgpBk#C56zrvi4CQda!f~~~^kQHy9hd2>qeP>A*_A{$)BfWV*sqT_IQHC3& zo0*s?W*b!5alpdBuHbp=%>DIcee=0B zK){g;BrcG6TVoJ;K0g;|A^l$3&Kei9TSn4&Us$G=x~KGg5Ba~ntnIMb`!u_wEcq_L z%qC=)5NX1yOkdmj{#(N~p#`2MX=>$3P~i|_`(#e?5_`BYQklnqdHwQ`34X&yjoN(S zE3jFoq1SWYj!rGiW^Jp;=UEA$9iIG1xP|{CBxNu2-Ij;(jD^$Am7AboCI$m^dUFKE z=CeL;52qOPGO8HU4^)Ij*l5g31+gW5OwcwkKZ!8{{L%pim)V$vu00}y%F zUB|uH^Q3Gq{^sJrU_OTl!CIK#LP6d^u@?hE!O^=6p33Xrbb17o0JCdSiS*4m3yN5E z9YhNAQ#*LIgvc;vBV6D?R#yGq!*R7WWV#4@Q|j6FEtQj&tYc1(h$hWafiWD_!LIHv z1Ban&Rtf%h(TzWxQ?vE8#;aVR8Xe9Kvpc9jJvBajE3SNb0B1U$JdgrP5eTqO-LX6T zZN>xU?%&rha{g4KZA$xXag`;3%5Tr9l(<=qADN9v%-6)mo{j4>!j}hGHQb?=TKd>x zhHW`%p>1IoJC^~Cg-2`f$jm!g!f2?Pi1+K-qN(FNad!QQ#(%N@jO|Y194k+Bs*;ik z?zlu|O(e5<^J=~)Spit4Cpq)q2eQ}<<0DVIinV2F4M=Yd!z|keOx%03Uoh9GPS0;H zFoPdnCoZxp-*AI(HYzV_eM7=r*Pn^ZR$uVWT-tk9H`vI1U8_ct2EPkr<|R3zS}tFE zto1~#)Hus71e3NDdq(=fT;af%Bt{Y=YB~A+5J&oPmCeKAXWFFQ&b2(oh1KylsNHMS zmDUuV$CMI&>WKdQLIygJgcowJv+4TAd?C~Uz6Xa8+^;6Vg*-E#&-6S`Cw3(yfF*l% znkEo{_ae_IMK}mTBT0u*Lo^L9ECiS2GxTxdYPI2N3yLzv0D+X~spuA17cg&iaNwEv z-oTkJ!J^WQcyc@N2!;tfME&(!yUj7O#Iem!4&X{9G(;*ylV+}Sjw^9bFKeVnsQ>G@ zVY7A1SJBmvMpQBqIrl%OFD`J0YM9)#kE#Rz`Hogsj>zQi&5SL=%#b1JDuvtV-GVhDZ<@@|MO}k*$3cHF&zvP_BG#S!y>l(m%g@|Bw*Chab$N>% zgpSaRTaxoibUw^y*3?uN-WiQxiE+)tuTXHs7Lgyee86goHw9>}@z*zESaY>uHL5Ld zoq4N+n+qN2fEG|yl}%qM<>xV~s2}sd)H+`iE{Q>VPP%qOQV4?7k_COuHjs|_J_y1J zoQ6n=+(%XmrbydxCHv+L1FHdN?Fkq0=L=}^UO-%P0Zw94wfVJy{M}EC*F08(`R*3q zo3!qQ*yf)liGeiN64P%Yck+hOuObPE5c>g)7Lu1yUoq+ z8p{pT%)n>D;waWR0*QVY<&delo>-HYQ;fQQrLC*BpGUM}OphJN ztJ(gV3PvvP{Q%@|=d94LQBCCHj7iV1E=@M)CU6Xd6JG{2s{JC|*{^u|)h4L;SGCcl zrP02sGm~FZxWr1FCO~gCKuMLZYn!dhclW2K679`?aoCFIE$i#h24QIOS=Gp;p%}kQ z4Si=fm&3rHj|sr62dA;C_^fmRoa@X(Bvsi+@*i-@I2z!*;$Xjd$NKgquZwUDF+J!kYZ6SMmsXJik9n%|GC<0 z{>i+B?v~OeJGgYTMcybyM=Qu*`UVi{QoY5@Xmuz(+~aC!jBp%u%Q%ID3d=&gh(6SN z2W!!^E?w5n_mvcig*jy^D_YEd#?K(gaEzuU#U@Y+EZgnn)v&cMNrux^9TYgcU~Yk3 zVgB-$k+7P^At7|(Lo)T;$)t2EfAYg_EEzB9lGDk-qoQX6y+9g^p5T6bc);g)16VDu z_^U2U6yADGS{~C!g9x2_K;$&@E8ZfC3?|>?#tMEyJ9uK8S^Ag)XsmDUQN6uO zu&2VUa?fw89->`NY+#vc)l)d?5y?Wqj&M^^IWxjlE-};Avs@} zSd&vl7`b)3AO(ljZ-hqawTXWA*AyXH%W`z)(w8-z*!}yKZOM4bjEY;mFP;iB&K&A@ zCfet^h>5vS@6I5f-oJF96YH?tQJq1IW^HX**>1Es$4)Xj#o!NH$OjoqI;AwdJ5Px9 z!`9V9FZ^MKyDtzH3ootDHifP1dx3Z$97{0KmrEjBQ_9s+SD2q*YT(VuAY`!6}F`mQQ-ui_JF zK2n+z=MZ;B7HPpVjH`_tP)vSw6S^aITovsG1DIkJK*aDnTL|S~ltulwE_3X_lg6Id z!n4X`Schf&=j~Zxb%>yU8Ffu}EiKuaMNsg{m8|M7b|nC$I^s*;nek+dRwJmZD$9~p zsUt?BqmDAjuGAn#y}mBH6G=+NyuqnZ`3{%{&ixwU8^;FX>8b3>tnx%#!A1Hwu%gKcA{H4t2npA)gsH`!8U^Hsk(IeDo~ z^Iz2RsQfRw{$Ob)eg=OgMuAmEWk$3jl{b|p5Q|x*q@AGH7&&oG`9=DZ|A+7dlP%0e z^Y*#L+dz*oc8~+(2`9RhLP9YypmHCSP}ld0)i&P&FRbJ2B_v+`cKbVHdk$})b3@#(w!Li+S{8fwE$%8bY( zBxxr786qPjL!zUyM?~I!l=8gDyhZ%oRTkjZ?AISsd*Zzlwk$hy z&S#dXl~Z&Jn{f{$pydGmR5I7gPSVcvzM*#Z;&%Q>ZuMkanqDvlYtOZ-y>mM)B1EZA z82|Yar!t0(NeJEO=8PjB*(h-YvM8qx+hKFiw2E%_s)SA>Z=1rs$}7$@ZttWsku6>% zv@b?mJ*ra<2_yo&Cyi2w(<4D-V+=gG!)c|E*OA^9kx$nVW`U*ohA=LjE~ZLDyh~P6 zdBs$Dy0z!M*7vg?NSMjk%H5Ow2L(OywXu|ZcNaDnW`c4l+ zl^H)oIr&PvH^~8hau4g42DNIfr3B0+LkB~EyZa$edp^xQLhHvz+s^In4z6&|L{pra#H>GZlF68i5%i6E$^jW1 z1mC~Qb(jE;*YeiU%l=>%I^xzA{T9{;QuVAW%K`HVzZQrIKe`DvT7m78?b!g96Kw!`vVSC#f63`10t*-K?`pPZEjORj^z z$$6-BzR=8rrE+pYO6&ZUa8nScNx5#>+&Pa^uR$Z=HtKFD$363od3>x&r+5C!Sv=v| zVKea$w2GC?HT`(9qLgj&hSFX3a$GwS8G2&U6Tn{tpkXkS#} zgU#c4_WRLAy@&9Odj>v2zqX24>~MP%DWk5n<9JPzNNJ_N3J^q+Ls+T1jAD?n9aeK|wP%e$8GvhwMj9u>VrYAmJh zktQrcztD*xSse2kHq+9YJdN;Na{kBa*B0%Nayh+rb{h(irsWEy)Z32Pxm@KvZReAI zj2R^eGeQ_OSY}#5(q?Rrsmed*-RJN@^)@dqbuJ=Ep@HCI6v?*Y-5EV)8$2vrb|6GG zSpV|c&{VgRE8FjZ5o+%U^C@}9SpB|*e-0v5{swKYi8r+#x7Q1vx{eHrk$nE%xf4Z7 z>n4e(lppmFjbj6rHwszn^ZKdQn54$KRrThEo_1!#SwCx+z4UQF0$7vNp^0`O&u4{v z^J;ytISA0Ou|ck123xo zW?Va#t~!F%V#Vwe*vu38zb5yTfC-DYpCT~z5{;~9D79rf`#QEExR3JJjC)yG2chER zAclN~N5Tlyhn7MGg8OOYuFY5)QvG8xuKGJKv(FeVM0ZMab>$DYlen0>#)iMKeJF{c zstBg(AxX6{$(BxE21>ADJmn~Arf8-~*sO}sgl9ZacV_(E7vis`D`7#}*EPFiab2E7 zn{2zEJv?ej9G4!NL+}2Qm@(_~;{r1(1Itw9JfUy9`r)zOYxJ!`LYq6MI~<(>N-Fhy$boRVML|HaJ zR_T+d5h=oxv=RsYocAq=jWG%8lNGyLf_Z)TNdB&0$t?9z3u{+~SSC0}(nj zHx4IQ;pxmF?iM~?U#DKD0+#DTN%*P6xkHZ21%KIW%NS7Q>kz7cny^eH{nElFC^_ah zX>t2UT3;{gm}M@3QG2v)PGZC2d3)tv``X$=6eoLzWzeiM7bN*gIEcjh~g0nGwFCT#$jGc4vTjFZW=$2jM-_* zh7epx&WpbnR>o($J|JfSrn>VV%~!ufdbfph6%;QK(#z2gGKt8*ay3w;{1C5F(8~m7?LyXDu4VET=a)LgnH^YuYK?WnFgp*htk4JQ5zbZbkULD;UNstX>&WQWZPvJI zg|kb>lfH26U)qq)9MnSF6{XclLGdL-a*Uw02XhiEOgy_sOqhU?lGiNhl9j6zZc#kN zK@7ucC3lE|K6!lp@$08Yus3(U9FU^b2MdIgZMp#=PVzu7tkNllf2;-p||GUBTUOZFO;UEyPC_Lz_41}rAD$n3;mo)SrpKfDibrg zCIDN_#tdr4?y0-8{nQggaXmujmpjlz?nwEg)*TTRDYTko%e$^3PZo#P2uEV#eLU{@ zXP$BCZ;_p%o^ zvn5cIs)1z7-W_jKZ29Uu=QJeRoiSV~lcX=?{OlzuiWmWr`%q|3iu|)62}vgldYqgW z)*X7S=vZaxYnB^q9X_MJGFcSX-JbP-fOQ@6Q$QL|A57t@L!JQBund&#(wC8N75~-) z_7}U*{HnBdq~WEAx?e%Mu;I+7R0cyp#sb*+4dCCL!*#1HP_L-`qxUw!?mz(4=MBQR zZjySh;N!gtr|s9#c;$Y_&!H|9-WV=2O23HXOhiR;E4B)$sO^vR(%(AkdxZUusvCF` zj{DEPTeHBaVB5PU6O{DrBLySvU(FiXH#-U8Lv#yAJ(e8{sK~jn6I|-rgd6P8)+~GC z4db2BLs*LQ@$=EEE-zW)6F2y17?Q2wT4kYC;3g5(m38G~Us6Lq!nQO6fC584^~dbc z&T`9pKm_@D31@)Y`_&)XOgZU?#X#uD2|<82{<_HJC;oziOBD*5#4&THkk8s*{OmFh zArky6wCC4(7LGG;ZhUl9HZ^bZ>kA0evu2X)18-0=W@$?NKhLkdb#0$}us6&%91Yh% zC!Q6^aXKh(3mD}O3mQb0Bhw{*^c{j1kG-EqWc;enk|dm`XAN3bk!#6m*{H81c$QOA zpUXoBeUlAgQT|QTe-ss*>+;(WU73J`!!PV$G!6+DF{O_8*>dYyxFmJ25R;0D-aLHu z_(7~I3-CFj$+phdIses>unMrNdN`PYe@$T94dZ*wd}Qe-?m+4WM-a@Ns8FpNdr@t* zj#2I%_4ln#qj|euVf!lmtSt}8%cDfYD zGD1T^X9dLqUsyvbGp!5*QrYh==vFSd%ktbyS*b~NmtP2DKwo1hIQ0P^kJ=fiF zx5RLJGo($K$1h}@*wvew(Rfj{Zh}*(3?eTkCZch^$Ty7!$KM@Mxm{Yn5Rz?Zwiq4; zw=hHl>htG4y?}fiDe{6_c>$0+`l2sZ8ev`BPu7@k-lwO3!l)*wU1{z~3&jP~eB*1M zfSr7@B`VTG&S!^N{OTN;;aC&8FJP%Ad7Ps`;!vc~cPB@Mt03YI9w#1}%NCoMFuCJv z!KONH8{T81c+9R5;w_SraW19&aPic{H1K{oWNnQl5L9%2(~7a)K5_nU8RP7XaBYQk zg@Pe5;OmQK!64%I>dr)&p5TOb3_JFaHRy>Xb%;5dJArsrPbW>%1e#`EKHD*$W1rff zaGvJ|9W;owcY*+tLF11?X&jYOD1^dgwu>0b__j4sZ>XF%=?r7K0brIeg$1y*7=*SS z|4z0USM=sk42OT*&X4UegyqF)-$cI=9ANy{{A0?1K+o~Xv=u{FwQ|I#7>X<`N0s;O zEV_$|&h06pni;RoU0(S)i#((*%7wM=AE~p6Y-2xW+)zGP<1B)DE4x_Vid)}GF}aq= z1pb1JO_Ys~hOo_dVMhm^t*+aT33YqL89lx9bWl0tlId9qPXqYWb`TEOvhOD>;5geF({$` z$;T*jUi_UA5F}$NFbH|#E}`9NJxEc0S$Ip8=VAjzZXHyhhAEv?jg;ozBLzDfz2Dns zpQ!5OGY%w)?2~Nx>1?^fq!{OxhNWu#z z&1tW#5UVf{@)jrCl3ubi{l>@~E*L#+Gcup?!{8z*MW*cJc4MYQMn;@{k+Liwc7 z&i-f1yuaQBj0K@+$VlZ1n@2c`t$ufuYG#_`C^f50^MZE5>O(Gzpr6bk%N4lD!`ASp ziEu0ZN5|ah@W&rz<5u@yOzYeRUS3t@o+eP)c>Rf82EPWWwZ5NrNwU4vSxa{HSQV6> zPqa+88*i;QR8Sa^Mn}mcyBKvv!4zboK;6na`S05(J`muk(>r84R0Rwb^q@?RR3;}r zkbhOwf1ytm(}%m$Qd|xdq#*I^riPox-inDc(LXLsRLiY(wnLw8;A|x;Dboy1)}zdn zdzVI>7^^nq@LUV{9k53p)Hh;3TKO-bo7VA#FYeZfY0jBdoC{ROhbf}*CRU#*iKmn7 zL9-t$%jc{bhaMn2`m-RpK}$JLcY@XHC7)Z6dQc~?(J+lQt_H3AV1 znWp{-AN)V^@Esr2sWd}_=`TY_+ok_$$$LEWc43A9Q9fv%tGYi6w60~Kt zoHE((I+plB8N&7$dYKR>)MF|^w>Z>P+`6h(sx^EX8p3Z4&qrC;v*V8KRY*$Y~g%z^uMc6tHU&`Uc7Va`1Sp^;BCP+ zj91@kHHdV`&v)Uqrwr3ErNpCllpon@7bP`FeN_uym(^+!>){l}+PA^${rR`Ux5@rC ztz{sqISRwoYdIRl_-L&ye7^;LSyohKsuxF3$FjY3kUg0-Ii2_25$E4Rvd3-*vMC?c z{8Q?GVC`SQOihxBJY6Fh`VER@&JKs)1yD`teR8K}eQbxOy;dBW+8or(^z0vzQL& zb2CZC=gzi>2)}B&UnOt<HmqdK#b=*fI+pkeg6uN`l;i=C0gpu&vobKF2u8U z{bdKX<0UxSEZ79vdM6^eV%sFeO74TFT0HBWB!K^ep8l4{be+Z@c~mC&SJ74ZxmJt2 zdT2CNTNE`jR*UkBzel92gp6JTb&E$9E>HyhlZ_b=2sT?rV^+bEm>r zDVDxX(16l~>6B4;@dHhP_Fo9t!YN+>{T4O|!f){eZ zP|Y9KDSg}h2El<(`~4*2vxG~-`zSkQ_?>lA*f7rNqKbiE4PR(yNeXVA$ZFW>?lf$A zV7Tno3tZM|*(wS3ttyla?yRR7bEWlO{On-hRILZEfJOs5Z6~*&KXo%?A!JHd?J>rF z&)(#l>0{W_5_&CVIN|{R{n*8-z-WTW7ZGtPb7=AhNr7^x^%$PX5vRd#&UQ}6dDxTG$PxIrbbZ3;!k2eR!^*`=jcJlQ!BlHOC zT2#|KOpKt1>>6Jlo%?;i#POIZ`mhK&6oPkOaOfP8~CP&ZGjmQ@SxVp$g%y z@hw;4w@7{P7W+(+Qc*S{<5V_z-dBNRXhRAr6K+%p!8bvkioS}ZCVl{VT*{&(!Rt`6 z4l5oz3&Jh*NEc31I7c4F$jP^z~F zvgaGuv-7=@;kIl)y(h4NGe2@5JwWmgtGT9hF8727TySS zRqn3erifwIxM?cjlblJe9`C`Sdvv|joHxvyU$tzu300upq?;eAOk^!hl8F;i=^*s6 zW_={2_gkKEM;p8>uEcZ``HFAs6wezT^e-Dzg+-U+9XS^)w&3|6o^DdCLEcc2$&&SR z%ba`$K~Agt*Q+UpgZ8+@;O#s`DeStl%$M;*jpYJ+$625H6afhL_^DW!cj_?oBEHw& zRPw+HD#Xjg88POk)Z?|MLj8@E@BhmAjUgMi6b7$EU7(3Z%t2T# zn&-T_)lC**#b}XaWurf#(pi*_e)Svo!p=fc|8`e{Qpao!H*MxHuLp=r1twJy!PBV{ zMAQO$YMSX5j)r?shc_ZQtUV%8r}qe1{q*ThO@6O@%_P>|Crxk8*T5#w7qw191M2{e z0x}UUC-n#GJ`+ZR-luA+zd6v7eD~kK{{R=>!SX;Vyx${0whsMIT9*qb@3eq;slLBJ z**k<0K3OVT()tr-$VW@|L&z1H$UjxK24l@}6_bCN|1$EYo~&UpQ+N1XvwyGT8?I36 z`o`(`#KrCITO79U8)19UlNrDadz<{^_p*uf-{o*7d3^rb-g&~)Qvp4?5CL(xo07cK zp7zbj;w>rJ<=j>?S7Yxm1KG=}bM0Lra~Z_|bUAc)jQ4xa--e(m z9{+_T0i?zS-WpsT3rRSxCUMPMUKcHPN0R+5b3_OE=X`67Al@OO$|@!7%TVx(k* z?jXg+nJ5hK%2mv2-`w5cqT+-#{2Bf9nCy~>#bu?V6-i27r?j$LLvqYK^mh;efu1_v zly=pGb!ekaZ~G`t+8(o|4<^WT#bxHJ*W&oclrbZRvU*0g8ke$S+(UI!IGvll!ombs z5x{gIYcBtI+H(3SH7`K;T?sZZ+RPggSj4=9##{dQuqZF4`pyS^(T*FpIl#v9CU z(C|PNM$h+$DVW@BC9*x2*6?N5%EPSK{C+aL-J1sQAkE_V9W4wFvYjp+ z<{`SnrxF3E{Zg;D(0W4Er2MmeijP8#KZT7hB}~)c|8|X-gH3(uN%~!D%rn{zZ#qLn zU>3#@RoF*Vp1;LD--+CioxKYd)wDtOn{pv(qBYsL*Se+Muc*z9>!-_B5^5^iydL7c zHb)>2v13K1Z%f6fJfeFif6ym^!Phh!iL=e8Go_iWn{xiEMnbQ_HY}ib{c*)u#EZ;H zU60I^BzkpeR&7viRwKW>bt%0UFzBa3y&og^@FBwkz@FfLll~7s%1#n-6H|qXcCm)j zzd!xOWe!NTho5aYH>xiR2v2lp{DKcdxmP8ZXl3*6w-GqVFaGIeiKvCbzSU6RduVU; z9&JWE8clMU=j8BFw$K|_;M=KG&&1kG>HY0VNMhyL8#<)pC1eYzcGt{C5ltUo4YQHn{PX9#B6VB5h~Gy4 zE9HNIRNSz^_A#D?VB_m)XnUxJ8`^uWzv7bPrAQN64(*`(#K6Z)=0MD$sG9E>8lO`? zz<0M3x+WJgMbCT0gJpgiwmVHlbgEKpTRtw~!Oas?vxR#q<<7zWa~ubg9D|FfS^ z>dA1+?$#jl`T7~v*;wjEr3OP-v=dqopirtXxf|jq|z9;L7e<44AfsSjr_f5cdjBAmWIjF(SBlJ|3Y*pn_SH@BMQ7?gAYO50N za%Nz$+kcy8XIIUiy-h(~c}B4LEFf=pNul#+_h6Nb3rPvouwcX8PZ4WqdGE{;HLLOKU@Dd779B{ZRNF55Qp% ziydPr9lN@?LjuB=h0ffcZY2`$T-}{aLnHU9?&C$w}lmq36l!f>{+F6v=I#^FuulE2F+rnyQ4?_xlf)Lma?$$~|ws zybySPFBgbr{3H{&n9CAvSLSJgIIljE-Ia|cZ`MH&D?Six1_iBb-QLCs-3fv2PO+%k z{lhCeg5$8MPA_g(IZn@9-2wtSFPeH>%%~^$nEyRpe)>eeRw=i=VH>7I^dlPD1q&je zc~tVR$R*I|#y5KrzgHiazSSJq!Gji`=EZ*fF;9ROE-XuVdVlMNazxkdsExM*o)Ch`%7rH(3u;g zZQvCYXW=WIcUGWh6A$++-k4a~)cnzsr{UOyT{|@M1 zigEWqZPv;6P7srCJtr1mnw5QnZ>2NN9-%l!s^RN(}!~E z(Xd_%5AA>BX;y#b%8MsBWc&5K)Z%-Y8uR+(9C zvs%a{g~8aD&1m8^IK-h!xIaSZdxdxB&WyFG)J8_|_FbUCrce%Ukf;l_e^8#=VJIIO zC3i0n9QU23onCzY*+sI~iFAG2IOZ+}hofXubs$|~1tVPL1aH#Y0KZ*P#?{bKhR9NU z17~Z&O0wc4L>N9=cvaXUM_#u8wMsscno7|S%a9=X34VJ6>2Me8@D}S5Bsbs#;N&R{ z(`TNF5*(10Y?`?l4Iq{M%Xvc5zj$=fhbs3j)M)}u?zqh3jYn(5mPDq7AqJ5=frY*S zC>t?m1SE%6wE@iN#>KBIwd$H8+evE}XyZK-KV|@R zDnFl8k!~|EghUjl7M*C6XvLN)aCo+Vd!$XzBM1VMO-Ir@%1%cqhc*udo@YQ10-& zl=pk|0B0ErS7ZP-H;uxPVlw{8DWz1UDSgu)&|hO(vvYOd98`6GY8x_)jkuAxA?ara zS9y{6{^|jky5um1WkRd#@UsaS%>M-U@a++J{1s&HKS+{gzmV?~^q3U3evb{5T3=r+%Yy$sD z36U%F>;O2NhR#i75qr%H75{YBwcNS5+(|jtdOLXw4w>!UK-^h@S)Gp}N$uh??s2ZZ zrQs!>H&*ohma90qoNzX0KYADkKe zMckc{OhY-g+VQ?5bbq0r>`BWfcEn}x*-Nxtkza09qE}o?k%KTdI7T=F2{q8fEt-;9 z_j&U76Dj`{b*A7BH`pmhe0w^nh;yzY*$?a7ak^VHvNkxLfFoqoBL-3c5PjucUIov- zd-9x8t|Pn7-vIZ!;yCy2?(zWWnP>8zH&2T42ev&}C2Q;!sW6%tI~u`L8-+QIjtfh> z`68qbF52_o1gZBCd#%&*sp;u;{5aTurrLR5xH*-V=<9!2xFMY&6ir2A0VHa+y2I({buYTB%Gg~Q&ru<92g#XErp>#{uzsn29 z6hr3v-oP%aMXDd6vZTU}!xb>|Nd6F!Di8^geJ@$SLN%q&1hY-X4&Yxek!iT{M=zxf z`$u}Vs&ZPc?K?*Zx32mgyFio`&EGu&qVH$(RN8&rtL`7G=#q3zDHEufiI?nawTOYW%Xm6PgD#Q|&DHi7=bo9h%PhQ)Nou13xSd&@ zsq@Xy2{6usz-N#(UHz(gpq-A1Bivf02%z*0{YB?-c>FIDHlwN>8E_+ zT@&4WpJUsNIQUS zrsuzWZD|n(Wi!;Rqjwi0Tbf#`nre~2bN38KE%8ktB#M0%5<)ZkZ}1cpW)|Gmhe6hss19D}@V8uYzL~ zQh$(6DxZw772MdZ)7-c9?-4Y064G`sBILQ`gzu4;22u9ilXqSb{J_5^th`^Tww7A= zxW1JVz9dWI1HwOnlT*;o*)g92Jx~j9^y_N4#|b!ixEBYC>%9?crYoz4_?Mt=xL}O6 z&;?nNC6_F2fUs=2-Wz&9i(T41AxaKeK^h0HeLS5wDay&>uIUEfA1Gg#O1pN&c3q{k zEw;l!0$xUBVe!|I<}n-jJw?}GoNwudr?+iS40OTPhGC=kOcMZ=B+xcz@I8r9w63a> z)revKk8Uju??^o$Jdt&sqmI^5C!fmg@m^`#>i2u?XNSY-roX=nz4;cb{w(ts@Ma_J z_s?Ecz4%Yc0FTyA$$yWvz9hq@b5jUd2gHu7MO?Y-+=?wi&GScQJ zqzLYB8UvmeC$R2E%>G*#?jnUejL^Lv+af;?2?abK%Z0hFZG(KXH*O26My$PNs4-i7 zD`8tL^26s}l3$YYNiX4`DsJua=e+x1a~`5Wp8}S9opI}?`292-|6{*Br7M2u1FAdL zG%E-;U4qN>0*!sYU*dkOYP+Ng>Q3UaSl?D@fRAE@yc-0y$Mtt#!25dRX&;})HpyA& zWVUJ%zi0gurIzON+N$x!h&HPoOCe&)<>*z=SM_3=(?5=)QdS&_8}}brc$9Ig!@qvU zvHE%9=S7iwFSqyOic;vbx?KwOq;HX7Mon&&||_?WU|&c=&^Len~ic>GNUIJ?BcQxj&D6y^$v z<2@^KC9;?AHzfF8K5BezE>QEP71J>wOUm zRZj7DIex}K1LH)$n-BVTio zCHg*5$K&r#Gg7w74wR36t5k%*EiIn?pzV>$i(L87AX4Z{#K3o&J-H)Lt`~GDLKv@# z$|WE7*$J+^4Zf7ig$L>LEZny}Ciyd%trnGOas<4)|1|26Q%+cU`8Z}5v0SiS?c=Ud zICSTl7e}%f;S-ViT|q?W+Z2fsTKp9}rBG}^P0C;_$TYVkm0di)EUg7st0&Zu`~o6> zMJO(eW!{KT|2>x`oGtjK8ypaFJ}S>ANcCq=hp)oc(3Q+GrKgACi&4-;)`k~Ne5!xa zTG%9NaH0aGf=4HA2Erm}%37|mKQ`W29J8+y`TL&Ie>%?(-(u!S{?IYyH8ALuiAwz_ z`?E&NqW4*fE%d@q()jn#qh~B(<|?`D4t+Y%X3zx>1+G6CgMWI1Dz(QevgVjRp`7B3 zdj9-xmYBs}|EofMEj+U{+_O7^t*hN$mjr+fj8gMi>ewRobkzr0h1&_N6n{6@mSGD9 z;T%whb$&~2um`dQDZ|3Do6oVS^DS7{WwM<0n}J>?anKjps;`~Tocx&I-sg9OHlqj- z{XOX65YhQDV+VQ=b>F+dj1JMG)R;N%0tH~a&*O-1&OA~6LG0zIuEt>$eU1O6yifN0 zkp5c^Rp@|x)!kGd4IXbTY~9NQNo%s?0}4Lv=fnFSZg@~qsEJxYDY73$k9E%3Q|8XY z;pG5!#C}&E_uW`*KUBrr*){Kdk9I!lv+NV(-AYzSA6p*PFEf{*a3@lOcOX<@=Yr}z z6;+q{_yL4hx2^4sz5fR}LB_s-mxl9sf#*)6uZAtMyTwvU2(}Jz05A8kfIULOmt`k* zanZ|yr;(7}T<~Z&h?3zt=W+h#$s$F`cVkp_8Ly-3^5fHp5|g^HJWb7uNB|X zaT3Ek402=o8Cgy#5>2|@D$S0S=9snIa#Qw76&Rzm)~M@>1hT4hEYaY{z{X#DkgUk; zQcdf!$+@VtO9jbiT2mQ6S?32drCB;ym*h*UIzu;ATol)oXR6~t=}7l!Thz7LxFFIF z-552jZ93PsWI$Dudn{V2wrBe;d$YtwYYvw zx^>hsa6L4P>Ev{odw4NN_!2OlPhO%Ry#oOncn^_e@CaiZLRwSSE{NOEz2G$zyVC3+8kF zQc9ka5ZM*F^@D_iIwzcaM>h`1rvcI4bHRwbqz3J8AN(F;`C11*FBeH>2%gwg5_Q27 z4$%#Mq0B9PT)g570q>JNQ=ZpP33n>w=RSI;1z|rpuE$g?e9YzK;kQ6)E%e~^H}C2+ z@c28Ls_^Tk4;6dv%|XoiV-Cib0S-d;f|v321u5wzKPrBuB9z_=@M6S@WHIxdgre$y zp1?E%>5liqSpGg`Eml)1CJOjpKVOehHaD*wta( zI5@n%v)(d>I4=B@-21f;(=;{e@`SoP(elK>Stl0r&*5-L|B^}}%Sj-EZjJc$=!jp{ zz-QJVUmAecWC>S2l4#b%g;gp-_&MlXk@;Z;!xqbp)*5Zw7}r{4MFx{nH_Qz{2W@Va zhru9>0PR3YVrWkO>M01z@~HEDvt+Ps-8N5$`3lf9H6UbE@RIqSO#ZBypLLAbnaLX8 zPeOXn4Nihz4nX(jgQ4p>vV&FtG5*wO{VaFbH^t8jymTGC0}&=+EHIBS#0WH?TT;T? zra@EJsH+NfRiY|O>Z=o0Uj1#h9(C;q2^U6c61*lu9K(ud?=0{n6yp@oT*l^FNOE@Rrd| z!dhsBcVFzQ#k*rzLGU^#m*N8LT$hiTiE z-Y?IOsH+OPrC!m8aAF7!n;KFnm7t5l_y9YjK0g?7Dl#5u z^lij*(piy_s2LON`)crWLk|0^&S8JL6@m@j5+;P6&Ur!k@ zTU>fDgPb)<6f!eg+*)fdLuDMnX<7yu61>7-154*D-!1VN!w@PPJczV5TX?p0XYSY5 zCEChtZuKoX4OeO_J0crC zH_S1#O;wB>mVz`dobK6>%e2%Ce~MM1Kuh_2FI0HH?a()ur0QWG3iOi%g1RkI{!|G z-mZAb;6<9`So>=pdmQ{SKmNejG)QZ^8>2$33XYbscWj++EEv^x~$hjK{ zU9^TJhXEY^=UTt;i1+S)}GMgPU z%|(=kWgy-@{>y?@iK&gyK(!t`ot|R_^+Sg_A3}&xE3fiQqE~f3ljv2Ibl!+w)TfP* zk&qK^I(tdf_3{VZY>X9p0N!SdydpW%6IzX{+n=$CA51tp0dJ;YimkrIZ6Pho|Av3R@CVDk!C(RA$7Gaq)}Cq+xE60K9N+ zc$X3IVEp?3;Gg|lgE%w*NJT5tvcl|G$P#fP>dy?r@MV_5?D$C5M>$kpAS?ErzjIaW z$RD~>hi-a$kd`^f@?^uf2W6I{INV`(`wrRe*!v>uE{~PKKyxdy3b4Ct{{Pwg&#qgN z>^uy7A~TPB-8JRAs@glk2oMBHf+&&_jR;Vb2#N$GQKCj%qggW_X02KCWoE5eGW3KX zQ9nq42#OIEaqwOSNm zeS`J#8k^;{8s55Dp{h2v*PD%~u2F5)*sO1m`KwKuajSq(q?aYUR71GRH75YdpDCCj zyt+WKta;?$FGqno50e?!Y^x$ww zAfo>$1Snm?vdQM)~#)kF1V zMJjgMh%|Kp&C@6E_MoM4DT(O8)*Upb^T4m1r67uGNI#j{MT|Ia%V%4R7=FQqW#9w*xM+7L0uex4L!|6rn%^ z>K+t3f~zA$=9jIAtt<=4uc9bWObX6j?D1 zvwMvt0ffC5vGe{6w?{9LX%(&`K8KlxD`TCkz1=_y`@EJ*ifu4AD3j7vN`4rn*+ko_2!2QiNG;vY6_XB~5R!wiLo@m^uXY z39?e3sTAk0g9>(4x3R!Tl;dBGjYpWdLm`6E~F| zc7151G;NEf<4DWkQVPNnU#_>8N)t?q0!3aR&wS!bbRxdmEq-kzg`xD#mJj`>4Vy=Oie%(sIOYMA3>M&==lV-JfTU=w_|^sx!; z;_n}cd@{xK=nS)yyC~+z$R{)8(>aRS5hn8!Ocy68=10h93*?iTA_ucPAo0{a!rWyT z*k^Ww4g7C361xZY{EzD>rQ(t5sPzCm`=WL$*+|nzt&e*SY2FT`Qka2=P$6jyukYU3Y*muLeF`XBENX}^^PLbX_x5h z--}CUrBT|s#j6ss+@RX5^$@-?IQmge;<~?0Xy<>TceC;Bnr%duqnIu*S)8JnEp*Q* zM}EPQUkPZ3vW5H#Z4!3&{AKE>p?V}{YQFlca8q~XYE@CyS<75I%7?B-;v3P}NNXcR zhI}$rLtOPRSQ}9gn%c+|X`wS)*3@%vE9NR_$DnJHNR}HlfqkXAzbWD?B)oD>c-e8b z+;>`3R+!>;^@XXFux9*69x3Yq*t*)o>k1NTHH>m9B-NM9l@N4S3WM3Z0VSU&g2uNy^vRhzZ?9%s&t^mh$Y zs7(sZofCG2xDE<5#yDO;eYYF(t1cD!Rju{B;+2{*s;)~wR_^7@bLBk7zSB0IU1a0i zb+wT|T?1yypvXo`j34dG7YdQ7MG+0b6sYxm$IBH#>id)ZmSkYRmzuvf-8Yr$fTiZG zp9S#=vzUjlsd5t;Z>I_R3=q! zJ~BlXRd)Py(D+_qO(||mU)YqG91{99LZr(HvQmXhYH86j4mk3$Ys9hj4In1G%%p){ z(p_r9H111TU#PM1`$L{@^8(NUdf0T@Gz_I=%ykO?qgt1UzgV<2Xh}2)W0VBV!KHS{ zh8|2>$c6P%qs!^!ar94#&|pIu`*Sz%&HFIqTlBQEjC z_i-JK@yj%=PEfUU{k8)wU~K;}XlXWa=Os-EbTm5{Bww(01lm3{wPO$0&S215aq0GP zs4XcaP}OmZ4Q)BF)N|LuRokN)ZZh6msIXINccX!1)(9|`viirx0Hadv8`T2!Km3t}Nj}JeG@~pbuL1aLdLx@~4 zjk)TEC-k^kS*hheyCSlbda}cox*P3xKX^zqUD52n70F&+YO>*27m{9m(R`yDA5~pp z6Rd8!TdY@0ESJ|*oW_9W5JKSdZ{PJK1DtUn7tf?f{c7YeMg(PDpsII3FcK75g-nd_ z($|74i(4hjD&$#(+)QFWSz$I^Vm`aUVt$Rq{2H^_64U7llgV23@XA{zvmb~yj~_j} zYP+2cg2+!HvSTWC7+7{uOi&aPDsDh?fsuBXjnnvC9EQt_r&M&%$V7&tqlWWjOVrf{ z>zi{b9*nDXg-S2uy%m_Od7i0WoSnfqc?oeems`De421+x*8*iJur3AG8-e9I!}Utw zYAJAaqhw>E8gZ(GlX)@Pj~la-*QsbLY|0JR>;1i(b-~H$Ju2!23H8C$mkf}gU!$f6 znEKa}UHn&D5>-{I$@8g#k)%*=*0{d8q~cyEW^)wtITiPU82S|KT;-JEuwVH_CLoG% zR8<;b4CQ)-YITF<#WP$!{uIwY`5~VE=zDnl!ME`2qYrTL@MBy(dxYi1bF6Q!)O1AT zeIzdkq0s}!$7fh9wtMDgnOdl3d!&xX?(og8eL-z_&1LxmimhyjkciSYx|de%Iuyye za*G2-_XoQ4r{ZapN-c^ImO#skT?kE*L1bFa93O#X&thT9)uYK$b{4k$*v<@X15Vq?{;olxaUb?+8JAj{OfKZB_#Jsv$E;Sa+!j<^)&vB_sSMXm_1tboWT zs+(OgLpGU1Oy&@i8ALHv1Xy0E<<_!XH>j$ItTsV;Y*{4HP}M`NqT@P!HO5F2b;pN7z&+a7Xc|=nyXa+95WT4^ip&C`KNU!Bu z5nbn30?#ipJb97f(X$LsUI;wD6u7unWY}^IY)Um+Wj7eF!mS@4w*mIO_pm`vN1Oa- zLIVDKxal}x-o>RQz~WwC+d@JG#y`orWBVVoU3pu-hkGG!=^+8y9^17|KlnAEWlEH* z8!RuL4Ws&u?Q zT(@t*A&ZJ_d+3K_gk$NQ5^9q3gyhw%OSKYDK`+W)x((MzvY0`Q^$rWW7TcLnmI77!ewZPY8UkuLP?2Tob@ax@E_`~RO+HHV4|Z^Splv|Yp78uq5nm4t z@pYjHF-3d{tV=aS@>VcrJB)Sf9`Su@pRW|{P$wQe4Q*Lfp{EFYjIpQnfqywl2 zoAkyQ?``R!lu@ba`fwk-V6xCO1gx)qj-%|`z;jS8Z?HU9y}n+2^aDKk{4De?|%y~KK=o&9)F7E#dDOaCH1yF23)#%a*nZf^daR{Q@Q`Twmd!5-Euk5yitBn z=*JjXdYRoO^`_?iGE+_|Qi|Geemo(d39?*q9(keKSgXQ320j!%k zm)%K)p6_ciLoqu>K08J}U05zAGvpV!{=HBv)O==z%ImLoX<)0sw7oHrQY~({S)r~r zYA$!LJYsE=vI(aGQ$(9yTtQF$CF@d;h$O8Pgd>ru2(9-D7G9_oaqA4kwOpb1+%o4R0E?Y%3%BY`$AO$Pu8V7<9T;%krC_RNkC z+qRx!_@7|=0j&*lLQ*kN1F8x1Xdsfz^djn8K)qk5oOA>AU{m9B!|ik~HS*z->XpPO zdO-M#_iX2a2ldy}H_bv*Y@L9Y$^XEvsuESTL0PSF{`g}&{Pu6-=?CA&`NtpP>d6DF zE?%Hqk4S!{(3j9A4Y6&HF^RZr<&yc&ez*H=N%N7^bR7^-weKSm+Ncsvf?XnnavJtB zTB|v~^t@lP+PFE`Eh*(+XU31)b(^7$5Si||HBsNYe0C3BI~yCRhi8^+wdg?5iwt4U zFK-lHR!kxCDMU6=BlYqEqL?C^%=9Qg`ZZ@Fa)sMtXdo0Pw3}XJ^tfp9tJJ-}sc zdU&egNK_k{I7uB$d7e$i*(d`|>UhLXrI!q@stRRQp{i;KVJmnXNCTnv zH2DWbLd`3te;o;Jd?ryfXjN`dm21?SHEP2s>eV$3izj+fNYDhVFLcK!8|7VfjK@=il3t+!4O|HL{>rM zB}B1uq}RkJy{>@5C%wuf=|yAbApNtR=Hb$9g2v*do%a|Eh%qLBDD}lQdHNxUu<503 z+bRHz6PiBbV5>;mfFwo~rQV6veMa}l9zthKkzbo~g|b|utTt|81oJ)DYuMwsh|XEs5Ht~_SEY=zQa5Tf%{2Ly zD$}6xJ*oxPl;(?k5TPe;B*?TvN@#vyZ7063HTmUw7&$LNc1udB#RwY-GOy{PAYdlQ z_g0WJ@rB+rykp_nsCuZ_Au?o>nI@@JhaLngKYBU+<0=#;MTPmyUKkFb zNk7$#jI4@jVDd=+>V|3yL*|)bp3-z)()F|R;d^ah&Nb^Rj5x4qu*-PDt5UMMMqSmY zYpEuY)IpewBg=A2B>3*7-$*2JafrM~=52OdtFCsnVh*eIQvIvD&?&;pb)!=&XzEGt z%*~G6Y=xe)3(QS8D&AM{t-z#M!lp>TBm%0Y{6LGg6>DV03fW|dY_ih(YlwUUk(Gd`9O=tr-C{1e!($bx+eP42Kx4!%oxvf_kTkSogjkQ-3sd0L?QvAn}w>ACEA6Vma0IOP1O8ldW4=O@`UT8WQn$7#t+xju+1S6$7gIj zJ5K^AVk{=SLa%=EAkI4`qsd z6JxvXF%}#SDdS_b)v=LF5MPxv+S1^`bS?r^+TM4`lG1>Xcn4U(aC6Q&~PLg-oHnPh5eB430af(zHKnV z57e}IhJ*vChOa9_eyy-s-C%Wdjpg+vZmut|yt%@9b%V`jiLzV=L#wudT@COyFz_2F z`CVfVMEosml*3AH0zDJxSrN+Wy25I;#MRXWUc7jUCr>`brw@LJAN}Zi`1s==;L)Rx z@$A`STwJ^$<%DjN6qy#-VSrg-zdc=c(>{Ji1wV4g8qy52tkv9K#Dc`+{7b`s$V&Nv zehEou_YlS>0Z1uPZ&oO8E>Nzn-E>o4NU^U_A*H$phzdtU5OC!SXLf8%( z2$wpdhv^vDCoz`a#vEf?f*w6CQTujK4`K4pc?clOYUITRlgSFR*$w9NOB^jO6!A6D z#FtNcX-mk6}tTpAJ7HBDn<=n>jwY=?}Y?Pf6Q zyHxbT+YvO|7A|%L8jeleC&V6N9zx_8L_Nl~fY|lBLj>KpQV}AC{93PWu)4Xj|E-z7+E6-=} zPw0nJ=4!(Jte65qcP3)(4;gqzA^wpO9 zb!7)g^%#pnV^Uv)zgqCg_bsv-d0t{NSz$W6!F+y&tSr#Lx! zfuqF*=Cdokg5ydNUt2}l2mB4N9bCPeu6xx7&QJRQEt5-qFlLW28i$HSoy$~C)3#t< zVYUE`X4}XVnWcvA_$l*}&?`Enh%Z_`mqrG4PZJAj#HH@wuCYru6wySHJN21}KzK`PoTV;xoYU3Ul zV+i2*@8DkJ>Uo2za)WZCdwwmivAns$&CMlN%WJIHOKdi4Jw(k+blw5}G2HqZQg~T= zjHwkVhnz>-mz^%x{b*?3m$EF=+(L$`D)HjQQ(RqLV6|EfASK;9JrR4Mwb|(Tw!C?= z+-b!!J{GPRGtAOW;;+arMdsFq|1dWp;xh=>mw0wACSqqv3ukACSzfERBRrY?Rd6ct)-lnIkhf1o_N4nB{J@h5UTaLJiu5{KT;RlzUT2SScJdS_$Io%JxWHm|h3WJL zMX^Sfmk=Tyw;0$HtSk5)V>BY4@Ny48nwsF>cy|W<5a=4yHs~|Q7>$J{9?Z+dnCRr3 zMoLo}q1JzK(x?`U)Ptoxw#6+ud*^z;?TO&{iv#O@~}+}e2hUb-Ufy)DAxV^i=20mjpSFx zzDp@o14h#D$KSpC2MFx^F9ZS!0D7LRT+Ov*;x)B(H%gkB7Q@>`AzPnLVK$R?PD0&B zcE+YI*C>~lC|6ggtF@Bql^+cO=1*Z|d$h3~n!IA7Duz)t+r+*?gm%=Yb)N06Hn;a+%gkTwYG>46%A$z6DEiCuMqR*HT02rtF{8PY3P zNNV5L~ejwV!%ts zMV>{=B8-fF=W=f(+Kz+N=Bd;yU_Gw585C< zhK-{L`Yl1*OblDy&PUv%hX)N|q~b>cjcEVT(XS5spIH#CV_ekArZIl7%G8gL)n<+L z^(AgzJjLbXPx0cD5ApoN@8HRIe+N%L_&vP%==->Q_z`ZNJ;Lhp1MH5uJXtw?DY z%<xRnYaVOL^`;s_`19DY4MLY0K^lw^ZzSpp6_SAr#fpl*WV_lfNJMlkW?Jq}ObE zjm7K|M~3t|cBGe^(@T?H`3700m*Y(!tr-aBU~JcGj5?x;5wXK5M}SvGFl5ueld{Qo z5+e%V)~qFCS5U`Z8gq^@Aod@>W{eBpy9CqpUTP18X`mn-9%zJz5-E*`CLU?cZGy(W z%P4p0`=tVH@Q#gtTd!REM&tK9Z7-ViKed#oWj#voAp>*2r$y3qyP(m~v>Q;*{?|wF zpLu8C5)hr_)P$OI*siCO=}4eDNId)SJ9zxv-@(%#dI_VZkgfmHjoqw5d-66XEMBW3lzd#UPsKzKXq$(5~khV&S7aNql$ zNY$yTP;b^K*Ed)%FR{M4!20GAo7D}<^%B)akzd?=cFKkJZ2U>7dXZIT1xmke=EYPC z2%Ok|flb+X5_0d5QmXsBCh98Ps|{vYVV0`}1^k|SCU4;1bDAhFv?Dg!E>LiGz6mW; z*C*hF%8gp2v0S1q*MO8Bp{K~NI7Z*Mx0&Y3?*4aiaDL# z3Zt<%{<^MFS)$9VzOYdzpSSv?CB5p(o{&Bt~RYpE!n&f(mIJ_^I=&4&s^~xRX|89wK3vvoIz3cAP^gU?A*P+QmLwJ z&o%WUh(4BejcT)2gkQPw?ggY`Bs8Z<*s(UDT^xSGCL+MraYrbR4}xBBv0PuriwAhY zk3Vmmu7@|+tgf+H-C(m`s_usywVDX@ zWciSFKrGP|fGAbBK;4UoX5U@B(RD;cMzI6l@1v+RxXW$ArFOZ(DfIV zcF^{SQ(4u>vTA1&*82}Rdr!2=4rxmW_!BZ}N7Of$5};--k#i$9h*M9PEYuB`27x-G zi4oD%gs8_D%}i5ow7)nDeLZKC_{wwSd7+kF&ef{NBGdCynD_VSq281Z4>UrX%(ag<+Y%KW|ejFJ>g`#~}CcR>4 z@-4X%e!LO1(g@8nq>TmCGgkEyY$m^&zF*SBT6c&ni%+HDZuf?lX&7am=a|hGI6k?9 zyZ7F}>B-$@@~h!EaQ6#(2qhBlFr0Bm^zSj|3fZi#u)2DV)#Y=nug|erUZGs+USM@a zLLqxns*XGB8@1}9nOMFhe#;nW;s#Rn(ygjW^)%GikaOeN5=cN@lUX=NIz(>o|Aqi_ zge~vSwu-LTW_5$oYX{FF$`ncyHc^qWojcbI0amKX`&$Sw^$csc18SeuW`)i20_E~j z^&}$|@D53s*+|T0mg`}e-l~*-CiU^6XYkK*)OC$=vqHIEVzauz+7Mprl{e;gqbH?P zT?wPghz>m#B>Yx%$wsb|@NTjZVtYm6nK8plY*yD;FRxHlrL&5&@ri}6q#3w09>#cR z`Jj=ievYQsR?G+GT_JQvaUpjwNfJzd}4+S)On-Y()L^WGL zGdDY+mNeZSXe2as#1>g1(4uMT0h*PjA7`|@{q;uleEZBoqAW|4l_I}_kD|U1mS#(& z?%1mQmmIXUY@+x05zwW54f&O48S*?wQ52XI6HF%)OeO`2B3FJI$gij_B#lv_egC)} zVPNsw4M!ajr2Voi!*n{w(eWwn+KJPs9FemY&dnHxtC8}}_DfKip ze32GPr47tK9+_pXX$gHy?V^V{GP_8ink(JDC+netS(c-i%uq~b!8dAD5BmXVg+>Dj z)7wh%IferXEyCTO;n)Sd=po1R;Ad=lWz<5-DpvAKBUwcQ;p9U0+~% z`5ZSFPgU2+%V$_$zrg0^66NX|vZ~bZ(72@t!U*{PjEhD`w+`BtQH|^cMU$5S!yhsf zaZFy4fS^5HMub@{MSaMtkNBdP&?uNR4w{Iu=rEAfH;kU<7PRJEqA+ueQ9CXTLDXYx z3($C?w5xf{_KbXo*AW0f)?RNfvl5Yizo0GK6LO0@BZ5Zn&JXW;(`yqlvx*8!&mpjLq=9(yTPS!Ye3@c{U`@>ur#_Mz%rci}>XNy{4tEYWf}@ z38>30q5PQl(O#)QChHplVl zU7VfW$Nksd!kcfuk9Xhu3f_DFYk2#eFW~jpKZiSaUdQqA8D`UkB}}>>UwSr#IfdB$ z56>Y~L3L&3OWwZlteBvfA0eO4;>904m!bE#ELl}{xMf{;8)m6gnjJ9acK$C3h+L6h zW}!f`QlfJm7a~N4yqID#og>TL6j#PFsEc_?@?h<{4ztvv;C)LsH7>ver zsjJmVRjzKZx;|H=*ZET{FP^IL!q?~6EEVZhZPes!vaVd5euGFLpDnzGP>KI9w2B0Q za(vJtXll0e{$pS>YLT||(SFpZzplQiZJ4M3P)ZM^Xw!qNn9kKi>pr|< z!wBL!$XZRrlVc)$2;}($lj#C^p;lQm zi0WcqraV~R!7xixHyyXEHNoW#e+&q)crN&;6z_wUx6x3+1iTB2z%FS8bm&D^uWwK> zDPkN_>CsSm3VH@8b1S;TC5)yynkNg}JHiEj2QY2u~$fQ>v&`^S8u7#%55wy1<^bNa} z^eTMPOAX=5MCMkp0GOa;Fj?h3(9~;eOwd!J=V9oDY^zl%`$K|s^=8sg$T6JwAOYHI zr88&^Y2u)+mEEJ^xYICcYD2$93P6jpX~g?foROwia8NfR+Cr~d>obh_F+K=CF6T)6 z`a`c2m;8?kE-}t}!}=R=KW+z&Jg7x0Xbu;1!~H%I1j^yi9RvdMD>u^&sKsS6+tb=G zIXq}|sYpBbbfQjzM7{RMwm)t=42_|=JyS4EPao`!*nvUd85POrFL|)O2XbRXvtk8p!VJJ z4Vipjnm?o%k>@C;a}=|%rxg&|hgrjz)kug;eSg~PLhG3_eb~FR{t%N=qN+C7tZz`3 zYd4>n%fQ6N7m{TKis=kRG3_?Y(u06H&O!)FlGU4)CcykDvfNNm2hV2^Cj-weX#?Xx z*)~#N+DVsQWLYr<0MzAL4Ub(f6;bBG4l?M;x*|EMjUvSuZBlBWZtUt8k1SVX+%4&4 z2``WIsuekA2p+>e`jB-ES(QYp8^%UtwrC2GPv@~oZ012XysXvG&AL)uDm80t4vO!B zx{gvLU{VJ}=jmRcR;r2O?HPL$OfN%oE)|;eDvAjv#RP@!?bVm`ic^fd(;Q>tVPC|U z!kA^zwsdJ%iwRKdvo;+E3#vU;h{I{ujQ1x8L~!?!WdnPEYS* zHd}PQ9-BdKE36x43=zr>})C(1=iSeV%p1&Z!Zzpx# zim951jPxwj%shndb*eg)Xr3m^?DQw$k0&Nh_rk`MtijvGaCT{58WKPo@dagPrU6rF z7NjsQDb;_rX#_OBk*n@~{18eZgqkQWFOU^_Ub4vylj$6j=>pT)0+Z<+#Z(=bS}$9w zPWG0{H9%HO@3r9Nx|`>GGE;MlS?ETWHKeR8>1D>vR;5a2;y8cuxL^?go%C^xB&m+m!3V=*^-b4>Q~a=Po|PCg7t9i!9>G&4=FFdkmD z=Z_!8JLcng+7|TQK<*PG21ws_T0z4JGOK3*6{nsVO@$`J9;lNRheKg15|y>XG86FM zT~kk88l4H>RbhC{wfUiH2u6rQ&7U*?HiW3fNJ@ZAmDM3f0DmaubUMfJ$sOFg|0dpg z`+dCk`LE*3U->C~_3J-_FMRQvc<0?O;`P_x!P(h;%;(3*vtrnLYU4TGwFb?g9!(lT z+_gnU%aTx49nxFu|N0mI18=XLAS6ax<^F=acvo zLLkc(xug!YRx;%pD3vzQ|I~Gba6K$hubCpf3QcNAUo^a|!o@JTQKSF;W`Uy*qy@opR0?~1w)?6b$1 zyD|7}nM!`f4#~sbdW>~BcZNXMO~T#l6IC7oDdNj3pQJv)=V(K6Zd11dBs^U1)Qf)ae_;L!M=r<`W!EW;mT4;f;H5;)`GY34HyV z|02Hl<==;Q-}^G&c;j8%x$`=X7N=^#uEcTd0vhiCS24Wr@>B|tRCI^QO3RUGKmP~K zFBU-$OU@hzAk4~-#RO{cLB$K?(>X*|C=#``{)Qm)-beL$ZhBuSGFB@a{3(^DdyKi6 zhitu6bG^F{Hy}Hpo&%$AlRTZv^>B=R0rar`mlpcNzu{K(2 zKUS=Su|r_Tm+3(&dkLvJGHE_Xt#nEA#okCrtX;NQEwNtSsEOCsONdOZc;HAcOE)77 zdWHYdX4S~@$WmGF8@ExWBfeTmuTdU|{U2;Ypz5_ha%@xXm`w1`VeXpq4N@rqYG%^T zi7{Q!;1wfj;4~Stq2&aK2{7~a;@y%U6R~WI&qj~2CeQ|>>9d8Gxn|z`*(>~*f?l0{ z&Sxos0UZmN5^35F!*cTw=H+_?=fmHlR1oR|YhW;KpofH}14s1y?in}z7`CAPSl>!8 z%H;d0IC>!2kzfnZDznw^fJ|hV<^>j$8BV4P+?gNawWBkv|y zFrO{dykD(_(TJQem9)Cj7@_(3GH4J?FiqcYG@DJ4Anl*Swmrrq0EoWec3yIx2hBr<=(x4f8=8(5r$6Zt|36>O*8Vg!Mm?ZLKDCv_9)H8B@}S^89W7bM7{ zMF8yS+6zKx(!^x;)2N`%xirp$t1reRy}DqZWdT6G$KjOg0X@d(*}$dH-n-#(1_acU zrWCTF1W8bkM_dyEyRjbv4VFtCphM^ZN_f%4qhA^QF%~gKn=nW_s)Q>eD$z@yEzsJz zHrD5g+1OE=4}%vQmj)fLs6})d=lp(!-N8RvZK!KtQv%BsaCIYaaV7BlLg2{@fhR9A zT;9<4IUn@gplLf$FEkxII=x5HTE#US?LJT4$3?ZGr}+VbR@|!*6$KTgirA>j+*s`h z3hfUwjAS69>UV&EK#}E`O{O@W&T(gcjQdBYc;omk-Z;L4dy7+?&5m$9onu~1QDk{U z9;-6_l4)Cq?M@}z#2sQ-?kJF60VNiGwBr!_DziKx5rreSkp6tre4P6;%C%R+7^vH#-fW|h5f1K;t``-7ya9pTBRva^P(H|^3bHZs5yOXe1ME2~9<-TmB zbPg$cU>Mr*Wxj?I)iVZ{4yBI_gs?@B|KN2T1G0*H_W$%m$p=~0>8%j$1l}n{wBm-Z{t%3l=)eHcq3XaKM{Eygl&-`51e#^>IzKrklNE=NAM_ z7`G;ovRV=h>$9oF)m1A!vSmnrgbD9jy+gRHJ2WY=6stw-Jzgs+lIOaVS}q};HeuFm z6CSWUVj@+7LU=KMDLe`>kh)B=Xk(+izHhCYTU%+Ro|r>bQ1tQ)AD61! zteo2c+wd_KJsQ6>oU2(tASb?Km7k^T;VWpM_=9DNrIO--&sIKcirAsW{^pzaQ#0iJcARNKhNu$Ayma zDUPR$J@G33!NIpOtCM%XLgj|$&vTZ8yJ{L&KQ5KS_q`zxp4k$+^?hXUVYJN!2NGV>hK!(=V*ormK6&4YEAeqL%eZBNVCmf$OK86^sP={ zGwl&@V8Q~qu2wzdmo({MjEx8>I@;xB_Qb|txmYZCbD5pEg@LAvcR{i_m{X{pJrU>3 znPbYGQ7|liQ+Xac1Lb@E_e+cd2BU9&;}8?ctMa0aOr@&chJhTQ%L=WmL=f=*fQ%#d z4Z>l`_1M!60^41;<_+%Q{8tJI=S+(#hGB;Bi*dGImH$h=RJD0VW{WVx9ptt8d+oP# z_DPzJ*Oo_v!57MDFG$@9R5SaJ?3@+;0pnC_{^D(WPRgok348B^kspPg)R{btTwelw z*vWWUN_eIA5U4arvrZ8ty*!h;%VnqUC?61c%YolH>jf?AddS(}Am(cXdaXb((yg_b0JGnl9JTe9+ha@|o^uXc}dJ}E<8WK?<<@{ZQrh@noA65By1 zB+78wn`O>-aC-CSf~3#LuRut?$IP;cb#3jb5a_e{SrAbRwJ=YZWfR$un^*C3PAy^6 zm~VYj*y|_=6Rv|3y-ZKo^_;6&aLxvFK3|~4NmW;i(elM=fIGwTZ})C#^VbU~h3}#T z4=~Y0oQL^@#p2-s61nmUH0V(o10w~XW#<_0QZ9pT_1%w*fgFs8B#MY-iHD>6KZ0d6 znaw;Gfn=WU5eXZG8kaGC_eF~GvqGYqSZ|-mP^JR~CI9dsZpT)L*S(`<&BTmM4&F0~ zwkLKVYl${{Plw!{ACC}AZ%qj&vD1|;(vSG+`15bAl_&q{XXnq=rs1lZF3&9-Ory?~ z@q^wD{->(rVrI_W1;jWWS6k9g({WwlByU@*fCdZY>S%h%YafuhF!>}v;DW_q1V)@1m_H1Vfwx}Vk#Lu<(pqrGe=Rav2WjK;493J<;q11DgBHZ8wiliU{mNOZa z-%mF*O(g6Yog_x|gNdZ7y-K18Nu4J|hZbU`Vu=syrgr{I%DQ5RzGSD+5r~?C)193M z29C8DRov1#X$W=|c>io7E11vfhP$e_Figjecho3Jtszy?IP0hW`3w!Dd!v=APP;ti zp{<&2NWT#Y6G;eWv;;|ExQZ*{w2p&ss% z_W0X>c1ulK!tak`_s}3}^mb|I5N@@AVnwbvYV1OS%|@-j5a4OOwhL?=gu5X5y&W_A z>alw#1QdJk^3DLdk)#1)7kr;*zZFscOM{h)Yp^ynQ-k<*f_~OJ?9u9unj9eJ`EF>q z^Y%tZEc}7_+vkQ%=d;Kd{pA!X`Vl0;HK24f z!S5AGvps2huzFk>Zh-fGu0W>aRnZbb!9w~g z6Ke)@yz)UT*xdVWw=h%;1i=_EwY^B@>X~*qSW%F z!@lH%{b^J=7y?*=1PnQmag1gIsWyAkA6$W5anx~QW!G&sp>l#2Jd;?#Uo9NjIF7sG zirTqnMzcG}uIE49%#4)an1P2OGE+9 z_VU~K)cGp!&=MG|U|gkafXaZj;Pim@+G-`%-I|da(+FgCIVb8IQJRhlMJDIb8vbrS z(?J75^mV%?xkD~5;(VBo~s_&@^IG`#$ce{>COMIT3}^{)(& z$>R4h?%$d#S#i~5seV7HB`v_2`Nh#+1R=zLej$tVrTtZ=7i`oNN$&$-Fr0+7IqNKTV3+2n<-M1@b{u8@6<>X zT{$tDW#n`X5M*%=LY}Z50~jYIAnotflIQ3+lRH7NS1=*BXU>ZkbSCNaE00M^9e&NX zaHIZQ3sAw^l z1NnKh-BncJW3cnz9ZL36ge_zH=n2vNqBDYL!;9py>yyjpnn5_U)_3>tDwO3NQs{9* z+v#&dPeS30w#v>H>!~|1!BagMxH!=bbEe3?t{&yvr)`)JbzCAJw9GWA4}_}9#*>35 zp`(h$O%r1^Ii)>(P5xnK!dRnNN{t*H6sPrr!}@Mp)NET`*MBC8g{~nFB2!9a-88ly zmynVG}j}W}`h(acy^q)`Toi_~va6r(uIy`GdyM<_M7v=xPS+jA(+Q6s zvf;}=M+rUQUcC{0ZGKYP1d*h7pZ0U-bk>v{^4P*e?sx(1L%+H878?7|=y=b+;q+`%{4LAyX;sV2mRv9LeQ^34tw zdgkNU2*=({YH`B^el_{(N1yQg42mxclBgqlGWJ9<=L27I0}Gp!t*AQVbz+87ynJBX z_OQgdn9p^d7U#sU5pY(k+E9YXZ4+0f$8C7=4{-~PXXn7tkp^(@rPZZF4#5Q@{<^Gy zMK}zk$roaE;!I%|TGPby-*!-0Rl9FMc!N~~w^Y%_*?~U1VW+=To0gbO7oz+sfpSRh zXCJJWs?KZ%go;yA)o!mMwLOnJTRh5`gw1ZBz%)FYhdI@do|2!s?|2QGG@0t+r6Xvt7e7&#k& zgp`5tajY8V$?Lae3IVStwp;hLx8DYKWa3e!gF=?h7qCu##I${1O~LZbqU}y#<#ubaV4KGX3*&1Q zPzVXYv&c}6H#hV1AiJY{@|vFzt6rl!`zi)&p3!(2t?b?Dqpq%cP{Q}(Lydnu3}6Ine6 znakH=G1Cn40$gEwTO3~oWjJVVk>j1sj*#o=#&;*@YUu#?P(jjJx-Ua~1N%VdY}q(& z9&;-vrlL5VweI&7Dl1*iXI#$Y28_0Mu}&^GFNn&t(Gr{zW2>KXaoO@=AMlCpijrRw zky6Q@WzAW<5vIJN^=MAmt{fb(G{n`V?^u10*$(<^wo{pYNcxS(UYIyPPy;ZB z^E>*$J#IWhUv$2^W_Nx_X0Q3;M9uQB>aSgISX$e??-2f#h67Te8T;!mZ@%_5*W-}* z=F5dJ<;PAR9}{(4gAT7I_zio!FMXjLyWc%KK3@1+ydSv;Nq!r1>yb`A^8CKgGCINe zO>=Cz}i^5P;+ONU47e;7YEN(1JI$jZ^5jE(@* zEUH?s$M5sC2JO9{&n$0|LINj4H(m0t?3VDuJXkL$LGUp6JI@?=^2%VEWxj`S;m8vwECytj zS2AjFswhSvDnGUC1MDYJa>+ya=jm9bbh{Nlcg@k zx6rLAFit)2NpKyUWW(;qvdx*pVu*vvr*7bge~4RMhp3TGH>TOmD!4gMiKk_3kk4Bu zhg!}wfs?f`wfrS_H{(~YY+|=52wM0MFm1|c1?&vQa-^M$feTtWp|^KiZy&A>XH|!Qsu0~Wrug07DdNQ3ZJ92#(^!@M~$VKI}#p4U$K^n7d=W5vXu;(&t$BW z=Mv7L0#%7`{DeIp%ag~ZJRh?kwf5vkvi_`dJ3C1*4PwBQp&iSYE7n0TlIbZD&6{X( zfmNwLOTq<6#noNbm2prvg-T+S{Hl1SupXgBW{f=avSrzj4imw_K>^k#j~(JiEv3N? z#F(2el56%E57J5*JzFg_Oc3t^>!0+`bQAZX#O%$cPX6Z35I?xodt}pdXnbzPoES&A zzu(__jo5RxpPn#*Arlxj-v~E+FQcAj(z;@6{ohNk_gVZgF1sJiJMI_STl_DPva{EE z?Y!Fev@zyjzAAg)G zjERUW?hh#~UD3Ylw}9z&Q9F;msBLlcO5<^J1fDB&eelty_0wO|o}&ICEOv4xSey`7 zKEA%bvP12VjaxUrRPP3ebZY$-=@KM@wajOX!~e;+P%x~ukhxdB;Pqswqb(ejtj45f z6o%)ZRkkQUN6;BmTGhdxk!Q7R@3vv--~rgy^23%~aV^Tv=1k&0=5!r4yg3HcPov6- zWoa?lEOO$XF#D#!@@nK6Ov&CIJ$P!hEy8#XygW?VG|gc29Q+|GrKx@B>r2mUhD5{! zht2fMHB!nL1UGn`37R9kX=gcM=kU^y!8xg!=>X{Zb7{6VHGW{uFofnw5*XB2jn2-& zyq>Z(XK^>iA1#>LktSB}BNP7iBFq5+ds;EcDXHjbj(^2-m6dl5TsiIS;4vX3+Dq^h z+&O~yAj_eCig8xT^)H20K#o>~qV9jnM$OO)HIm|XXu--v%{;kG2RP2?FR;g2dDJ}G zg54WFr$0R|J6U$*4PT(Uu48@!Q|BF0$KyuY)k4{7F7YgI|)fpD>% zd4#ZHqZXdwGilKiVa>hi&REonr3QrkTuN1EmL?w3ZjZt+wNW8Lb87pez;o8hzY7dL zw}ZrfE@iiS@58Aqa{U{JuAGng_I|wsl?xnILvccy48mPkT7GL)nzgy&(ud-xf4m&+ z(niU;s0Qno77yB_iX$wANvOKVI2Gy{Xkaz;R{6+mhn^IEt=9;v`u_>6qQ9?I4oG3( z!c?!_!s8;R6IT5ZrQgTBq_7%lP?iH|=MLC!J*X7};QUV*VO`(8uvkpq?x*ySj=_U9 z&};4<&qI^m!N-1>J#4`3LvS#l!b&^M{rQHTLKhy|KCM z6WsQ#@TP73d9+WgA_XN8MKQ@OC2$ z-PNubbna}my*bn63y*J9JnvA8zP+n`*TUjXeXCH>Od(38?0lwv0Oxiw94;2@`<;*& zCaO;3!Y%MUJ>@+%R>{c?SnG5?aBp~>0{RBP7Cy-GA=L4Dp?$TWcext_NEZX z5ND4S4oj*R+MyhwIA`?Y(xGRPUxK;_RQ+SRu&#^4c-$zv(eum%nA-SwU@|$*^V?H( z)Kq8CG^vp&R8E=syt}U@V#O~tHH|wBfR8=HPfNq`xZc6b74(j_oFv{IeCGIWV6b&? z@a^%#=2+rpCXic6?=&3tXXxksbyAQo4Qz43C8KsnC~8IlyF?8vD*^`D$TBIchAjWi zYy`zBuq}GZwU;L9*G?wT$fEjp&-L#f>ty_!GjmCT%=5?eFVv+_DxOue?J~FAYL(9J zv9)WZqz62kH3N%KKOxtWC1xudb8zt=`@@kLSz`vHXBA&!l9t2!_Cf*)b^MXR=~C;E zPHbdY%DuejT@j8owIhccQJSHf$_%m7XG0W?O}UG%>n@2+U$X-Y6}u*bn`zS=U^pXL z&H0bmu+wJ1ImK^Azdl$|x=t=KoFtU!2c_?pbgltp(Fg)81*4S+tFNacNz%Y>AC8&XVC&@ty%MmO{0MII zll6nVfLdW)j|&(@`$)SR{1w*I!C$7t&j-k+b1k{88L;v-zDsD<%m)Sac8<>lg)9Q- zCgfm9RfGg!$oCr_85osVrUUD&I+*m4v++2sMe{pksV_Xzj6s%`+!?g5t5AP&l$VTf z=mij)M*Xjq-*ybqb&(Tr=&>;FYmc}0?{CyP2O<8d*6Wkz(_CK8>LJ!)*XMjw1ZS1I z1zduvqXjnT3Ucf1@*JfVr8u)zt0EAFUZ1W$SN%g8Kb@?q>fzUFuEL6AwNY=?>>2^Pkj-+6xUn8(uFZ{)u<5e!-SG}h?gV75WD=G#`zMFP_GimJr0oFBu@Nsr^ zjorV&2Lc@TErKg%Hltb4!kX})-6f3VEF~~kQ=k2xh2JZDOJ3-_HfP@5JYeN{dk4@5 z3m?jxWT*1rAro+?9?1mJ0Y~=eKZ5*)cN~3htSqr24Z`SYsrw>ut~Hn)>ex`|+?M>% z2Q!>Yyo9IAkJWB-JuWK)a?M>$KDEC69U?p{VHKF-8tz`Cq;Zox_Hui&@8)OCd>Q>P znuW@|-Royxfk2RtiOo;JisdgaO^2{n9V1PJY=~02S_HtgsjLNS0c*DrE)H;HMG5*k zb$uQ{3g6yS&~Lz%U<4MhCcRvMt(-SxZ!gaaD$RrEn%kD(L-<_IE>sC#O>`3FBKTJD zgDD#@UZ117FH3>4gPSOy-2PCCFqJWBrplWi|v0*7B$XC@?q7N-tS@?q(3rXU! zL9e&vt6*pFautd71{CnB{sAsKxJwA6Q)`tohf^89B-+~#-*lZZ%2=G;dGAg%-tLp1 zA1LCf=CqM?)Jb%aCIz24ChQrclUcak*C!p0cd^;yJ@8+?8vs`7AHtYa2~H`fjxju& zALLkEA}I!dWhsk`dmn$_B4*qonBV=PkhbM#q4$88+1p#wx_({_!}rbaYRVh-#Qd~g3&&i+zBYK=xvdDXy2Kz-RAYzvOnI4pcmt2fFL}elMhI1boEw5^Az_T4lE|QJaqpq_EaE48n?Wt-~ISh~X zF`vGj9hZ81_y`MrZgd%L9s2L2N5b^vHlb0^A|@4V_izPXhlhCRD_-y22w~ZJ@U@I} zs(gVnu~X=9eSCiC7w5M)wQA!g5wkEp-?w*i_TImSC^gu+4zfZsVD>MqqXISFjOGDI`oHNqLtN!?FZpk@SL zSfg<6@H!{xq_E_u>ziol=;*Pjj;If*4Dq1(6~U(IrK!1Ow?Hc|>GLds`*{8Fu=-p1 zLFNKJ|4^SesDjyfc3*m{1-?-1J~MyDk99zYeXd9>zd>9*OLYU#GSooAcK&DrZtL1Pq8VCE_23%E-?x<+4Hn3r3O%WQvFwy*z>WlLaFwb zlEJ9IHOsG{3xVfQUti^V;%euaLcsSWAksZ(apK2YU$>LkAW|KTg`)yB9yP{APw_j| zKn!gq9I^h!Ci71g8L%(mt}Z=U?m+S|dbeM!#!$i11PH4#s>NAcmIq&;$BrP%4w8QVo(r_a^I>oQwbsw(i~C|VU3&DY zMF9}lhUXzd&S9$gDYK^Xpx=PbS$PHh8Y34QcI6{9+1T%Mn_berxGLyuZx_%;e4#IJlpi-s#$-Ei7;Jg zD|8S`2TIm07i~7+r?|<-oFENob*efn#6Ym8V4>KsVM}hb_JkjVHrw zR|L7m|5q;qn>Pozw>7j372FI55T*?h{LpeODMSnbUlYKFZFbYGtv|1HeXLd;+;SMf zFTaaYur2g1rv5^n)jB#2;cIn+j);oF(P-iLuAj5J9gI@$0VuPeK8`LQBkGNR7lEj>&>SVc2c94bW9vvj%AUt^Si+r2z<^SIhOvUGDZ zT+AkEZ%bjdgBC1%iGe4$`PEr71;Z<0eF7ONGyaG5D`-b&k~4#LCpN%p)*T zqa%VCKDnp(U(CXacC?)QJ|Jw}emt!P4BY?7hBDvqeU!hD_Zp=JP^+``R(GiTwxM#p z!IqAjgzlPSBV#?na$mc8F|%97zYvuMSuU1c9jQW~^u4`czR$~(Eff~J5^gzmDJjXNQfg&5(Zh`%@zL>XmbM?MBf3mp zjV24bE9|$aQk-R#plE4rz2XNu`?w~?oMj9EiPS$)k3OndIZt|@A)h}rSN=Y)XjmxWI0Jh}rQiuKQ|s6jU}WrsL^0B& zvkOUTOq+`Prg_)e4S^n4&IoMH;&!uYG&H3;XOXxBZQqD{8BD5R@W-N-iN@kK3U>|^ zSirrce~-m$5E2>y*pFs5CEOSJ|>g^zOoG%Z1rjst@s2>TiH%gblvD zbu-+y1J{r{kS=O)L~M2^7`b1X9U|;&N~Roee9Fu1D4I={NC_n@1&NpE6>siYb}K3& z%O7I$cVww~DdO|M@$EjZ7UNAmtkVrW%_jKV!wrm6u{g~AMXDs_9*QY?tlb7(sJLo9 zUV-86Q`U@=v~#e|)PxZ)rpaF_#Jyojk>=EW_tJE9_vFN6^kU98Z|8fh_S2E{X8u28 zE2|*kXP5~iKTK;@f@lGZ^zpFH7T3X2mW`0)u^4NO;dM0AjX%Dhd+3cLvBJ>lUnYMw zgG#Edx<5Ct2Xx{{BMX0rpsxKhP(0G=aU0O#*_?W8^m}Z&_+@Y;HNYHEuipe3xrW1b zah*oHx=V5#n!E}0kc>uSEnud#aAy;KA;jv&JksC)uSSadZgD2>D*Q}MUYqfPaWTmI z4~3*@t}o*lC*z%yv>$uCIzcOp4y^bue;s9_x%Sd*nCoWlUT(DfqQ4TJ!7{h8D!Gw6 zlOWBDU9HcO=xO3F=7y zS{Mk78w3q8Of^u)h}KA=W=C*l#j(N3(L_*G!<@Z`XufI-Zn2M3&2YO()=KBdxl@9} ziI*c1lw-@){4Tw}ZxOv<%c#~AkRg=!Y$;5}9O@S_OmWU}X^q>7G(t@hf~{%Scjf=# zH_+z@1PjefR*#su&JN4*cJ058ibq6B0eEg3!C@|%d94P?d?*-s6MGzlu?V;vuA-z56V1|lr6 zpyZ&$V!_I^xi+yisTw(bzzxP7Z6LhtxP_v35dHp}ktP1xa937^CF>sk)V2HTF-`FL zB@Q^sz47_OX&Z7xZAH`SYd|HDeLW{5+k&8cKyEmDz$bIBJy!wnVI-M3Z-d=eBunRY zxe)Pxa=(fB5-@Ph;$C1hsIpX|Yqo-$jjvk6zS1n!vA$HLle17qKIKd0h6wxB3o(=^ z5e2$JaN3|BW%qK}kq_HhlCJlUU!F_blYt4AX6Q04$e8LyUYKR7HAb6*UD7TQ`4O`_ zQifOE3;8?1NS<)R9R|xo?sH{4Ievf)8#jVYme@1o+bi{(c6-qcOGYc7Q^Y>y;VXF< zq;;tN+i@x^$4u#sz3p?Sglb11e`w1gg;zm5X1jbA(BxrSz|=Hn|I zgrBzDA#{cBMz0*-<_bQ!nbhZGf zm8tzJ7lVdPm|Bwl zpQ?FOna1whY5XR)^^;6ai~y0vSH{C4Uq5z|1Q-r3Rd^)eUr&6_em-r+MX&@FZN!_> ziOEOZrCF5ClG9+7RmM;cKm9}a?*Yhr@nN6u>>_9QgVk;|X9@MLsvYP$8=`MERTOWd z;Xus$-^4B=nqZ$Ih-ti9l0dy720880bYF`j9qY;NU)gI}#x6L_J`)rL$ zIM1Pui@x8a0v)LxPKfp-5t8b3W}K`qwHkFj8ojywhzT03dl1c(XbmaoLiMjQAb{30 zC^R#`^=Xotwb{A~M)8AbFus{$yN2;QfOJBFp{0F;t?~fAZDh z7$w4rwwS(h_sUNm@6gFCjUx;!)e(xx)G zH+vxuxVs5=X&OBfwXFo{IC%S;G+iz4LLPU=FnS07K})oIbcDNQLkQQl`yA{aTVdxX zbT_zP0UG~`r6IQw?TczE2J2Sf-S|7KV%F=qg@@~~YB!!6_j-2WZ-*gP->!h4=*{`RwdV`;saISDP=~+=CwPKg@L-#$%sDB@R5~t~1meYwHeE3M5!SfK}NJtpOu}Tn>VV@0V z)HzS~;26+xvT4AnuMr`gNxD0=e^lLWYsG5B=)3_NC$QJyT-MA=!2s!kGtVTir*;ko zF{k;l4Qx8T3x*M{lFdPFIJupHy;6fxM+vHUm{>$9!fyLfx{CpJq^J8WX~<*O;O~Z} zUaxK1U;@5(j$K7j0ZFdGdVhu83+!nCa=i>EV(oc+H-Zw*BCkGWs>-FV)QV5hDUWIZ zXJ>KlaG&up~VtoRUJXt#-xJMXQ1uHC_4L5mk>2^ z^BpcfCjhu<{jbS{{3Rkb?h9vvD1ZpdOIKhs_VRNj>(1;!Gd*ve!A-(FC6ZXAprV3v z`w!f3ZKhJ>gb|{N!hDNfXP{q6HEv;}NF-mr(XJB8Gk%cpCqpDy6gdJO7;M?d_-)74 zuTa{wL>=eG4RqQWq|={#G8^22;_=seY2T*x$nJVch-(L`@9MZ)J!7fQGpDl4bx-pf z^HFA$Mu@%$`ZU*oXoh*wtDv%#$wKf;l#nx5PsQVb2-=KB;NtJ!uMtMk+4ucSkc`1% zm?qK{>CV|0ThYx`Q%s6M74*x?i^}e_LW4p0DgIh#*Nka|`P{eJ&_tm^oz6Gq5>i~4 zk`7-`c7D*uzw#c88F$vT(4DpC;M*uFAIDk(z5^Ur za)T+sy~OJKnAICh{b%38-L3@FsrEoRXnLA0R*C|&cJ1}C#s8bnM8OP?dJvEtpBVlz z+$%qnd?CDuyuU%y;?ZNAOArAr-tI_=c!`l|@HsYQ#Z(=Pa25~C-pVw!FmXWTfyh<& zm+fMCHje!K)Nubw3cU@D@83XEy-#<6tI2Wg)mNx!M?S6Canlw`{(CVdG>NABjdl)c ziecKhODq-r{%rW{&S)&rb@Kep^OC%`CgYWvZH&jq{oiRJ$bpP$Sg^u|C9?_aEnrupEFq)1OCG=A&brC-Q*y`SZrxP)Rw;k z+4ehdlEeombnmw%Q}k;9)kdr zUq7rEhEemOwnIeSm7p9?K$U8mEsrwosAK$-NpOz^zo5}-{E_<4cyK~+5TXA}s)ddr ze_|lF6|M{S1GW(|HbaXXaNchFZc#U4Z`o0fZ>cu!Cp=dp15ONE^~0oxIQB z%+Sgu!Wc)%{LWcE)5a2ZDW!02P2l2{v4`O;9LU-+4s9AL8UC&@B+Z+2nuL8tGgNbr z8~brkqU_VYUIYQAvRE9YT*%M1ppu{a3-?GhK2}-qHnDmyUgJ(&*TJcgrT`v{Sm+6L zQTtG%1H)$*;iu1i=bWN@6E!5**rD!aN>X$0^Eh3N7SpXFm*F>}d;^HTqpL_!$MBD_ zEM*=pGJGIs*}ntA&l4EmSz7s)L85H05E6cA|ATiV_TneJ5F9r(h!S*^@o_Xu0{I#a zhjTlRJ&ukH zq(fPmtcdRtjKXFx!n zHU5>fyQ1PulHHXGq=sz*X;Ov2)}($Gf_rK}_UZ8+`gyf!>SN7`Y6`E0W|o-;W{C%j z{%1jqjD0>>fn@VMg6)qb|KgG+7?)~dIh|gzaW>1+EmRn3r2+~C38keS>XKb4j2(fL z*Sa3vs28e{{S{opLG<`HlpG|wr)V))Sbj@=58wn2@_$p*T`c2faI|3r(SjGp`o{60 zWIX-pelwiv$0IWA!3p~|p=AaYnel>)d>hG1g!?y6S#G^zwcSeOtf_+jyJ4jP|7*{#G|BeO4j$Geq@kaCn4@34 z`O>yb`Z)XE9yL4lSVH@E;@uyfVl`>{c^5x;a6_KWVqR(5X=K|mOjqY0fBRn2G1s)C z%pOJgya+Yy2w}yA4eoesA$Y5|4|WULhqpwxrCy7%$Z}?nNAFAri<5!Uw{RJ;hj6Gj$z1!{E#8V-dLb;Xcz)*M3W=lPKNaf&K;$!Mzohi1~` zO^2blk?nGQ+xdV_dtqTA2H>l=z?qc-42*M5LtL^9cH9JJIbQLc{g;x>iYWuQz{H7s ziAFApdXD-z-Ti4^aWhqQHq6KJU(GVh**LW*&d>EINm(; z1PfcoGljL?WfCJ@u^f&a50L>GsqjZYPnds>?d%uU%OH#4TvQt}n4Dg-LW;pKk(4Bc z#Atf;BRiR1%e`X!K2#6ShHaDbRMgO^M;Q6|Wp~q!TykFc+-g*ajNyVe2OiHEu$3AD zwp0%}NjLn#GaW9%KeA73iC;5EWqk=Xvi`J>cM zEH20q_nmu|&WZ4qpzZTnWq&!WJjK`6Zom9vdi5XOaQ(&xKziBDHK^?Gx>eU7o36;Q z=h?rW52YWsHh%(pxH#scUTCUd68*@*!0mDF@^>J;EqTm&dlxry^ZkRPqXqxcSSdky zQ&Ou#X|OOq2bW;R!S`3a-~PaW&Q7#>==c%|TeGASBK9o>A&EPY+%nNCDd@(;#M>_v zatYHj^@WzWbp0V>eq6jNZCCKMq;Zi|zvEu5SrRy4Z%n^lY7^KoNte}-gTnZ}3JDFa zw>zphe|frr7gU2*xdeee8LrI>g&=8*l^Af1Jw}=Jvp{CQ$sJuN zM)ILHSOH5EMKjxm?>HCQ{bJ!(8G~=4yJ)`Dcdn%SI`_`-i+h`&9JI8mvjYcOws^*T z*0}e|k3Ee!xyIU$f~@NU5(!^e+6)-&xJf9%$_Xl`uAz*w=~UH>^Knh{Q^7SYIYWl8 zviuK8!os{o9^=}arxc=#_g2MSIX0R2ws!|_r9B?*zyU}dySaNOeH;H*rAi!_NCQhc z(iaw;J-3w{^c&zW=%&7QSk#^oJQD^g*Q`gZFVc;IUH8F<9&T*Ro?8^ZJA&vq?=(Q}K2TP= z*qX>${MDql<*HxExVU6D_b*NeuNkQYrLC*%sKa!=5VqoMq=pbHh zsszn)ulS6gS^M0-Ed3Wz4IcE?&%C)Kn)CUiVMVlqqOZ669TCLisbYLRq%8bc%MSuM z`h~KvjlnX5c8p;gin_u427Ovrs{tdz@EPlh3-K5Kr<$q$@Ad*}UI=g=o^MR}@(e(w zHmJ5+4MN+1=@|bEgg&7tTdP{@U^HMHu@jOxQ~O+zry*{Vb4#Ne!7;~Ucl`0)@SdRi zx!c3LJsgsBt2U7vQDK}&fJ$)NEhZ`|VI%??(9I7f4Uwo{D_yPRKz#mFjuGzo)o(_w zg4u82m6@*;zwZ@msckyOGw;ED!XM-~YuAkwS=E>2o~!Q6;exv>J&W|cb@O=}LBNyk zO`JT`=LWk$HoP?ij3EE+qs)J}n>aR3i62G#IL`P{8NV|013WN`(i8EH29%g^0d@O~ zrsR-;J9-1xU=k_tyUbt@Nbson*!Sb>KIbMt(6?p#%Es-FH2Z9fZmPdpwAo>pu*HF( zH>+21gFCQv{J#vc!W}Sxk@H$hCP?<09|A)41wWq*0^V7Z4==sQ(3>ogMcYi$AwKWFN40IY&FVHPV3>85 z&PAL3$dY(dwa3NdXW7@-L zJnL+{_4a)Z(cZLuembJWtzm~&fE3#l&+3sHg%>|d!#zcv>gow$H)M4BvF87aYnQ$U zK`dJLW|X26SilPWh5*vbVW|7Pp21G{G3Yn&XP*H<>noxr0f_<^g-p2+XZ!f8XT(7M5TFwdyITQtDXZt)GBU#@aWk>Fax&Z4zt}Ww)gHGM*yWB*T9c^>DmTGXZa%8y>R${v|Q) zm4Iaf;XWxvm+tdHJYwXgdCA5Rlb{^n$rX(dHE2eYK(%Bn(Hl!*N{R~sCj#rLi-*qW z8so~yG78Mp&Wm10MM?7Fz&G&0$;z5Mv#W~hqv;eFd`9+&AvWT44C~wUb^=N2Z!3l$ zEM_uZeEp;dt50Lq@qfe}_2BZp*AgC^*z?Dmz@Cq9`aWQbE1N_gAWfAa=3gM3Tyb02 zYCQAuuW#GymT!gyv^(I9v zO5LXQk(yMATcL}j%69l3(rKO(s(K{kkqABQ5u)UtgeoL1m7uzAjzlh!QD1UCyx<2F z4#H6QMwzEjzc3L9E3x6mmty&hwc!hySuwfQaVJs5s;GZ zlJ4$z`~BVf-nH((uxHJD_A~RufbJOIY;EDf{N0T3rF?fsjc-7-8yn{r>Ys%Sl-$DQ z7N!@_wm^N$#VZd6KP}wJrupK8P^1d|M)sk}SuMig@QYBvR)^Ww{1c#53!z9Yw!j)W@Eo9y{~woQm2 zI>3vz;zSGa`NCzi3*2oWM*&*!V5F!|tA@zP{;Q2LW-{**G*<-r{)&Xxes6T=Iwg$N z6NWYox{6+d21b$15hgFdGqAZ_#+8@s6&q@+Xq^`$oqI8wn+q#Sls0{yi=kGe%^U_7 zZTkvdbXR`Xx{5wpco^&Qvv5p;0a2>dzXB&h>euP_=EgQaqjN!qJ zK3r%!YI)AB&rWty{%!(UL?G=zh=#TG(=WEy@NJzilvfE9gKlW1&x4_OJc@$SyGY0; z^OW`G2nNlT6B69tD7t{OO55>XO-)kY0H2LvcpBddNj6x?AhqHMfHi7pEQ<@B;F}4w zNr;NYMGSy=)0+Kjo6p}#q--TjW6k;E~evg9#;S6igfI0vMykia)%yyayY_dd;7xu*2o@O+D~<1?!34Kgd4a z0{9tFr&cD3y*uD(< zybvWClNl(6h1HfwolQ)RiplvSv$ZOmx!7t8#QTvte@KUULX=aB_QXwuds0n9D zsAHt_^>TrXfk7{<)>fW}r0vc$AhxUlA zv?4R#*(_u3$Jy%XN;|we9?(KIf6R^eUzT%U@KygTMlO{>Gw-ei8uF_zj~|rF>*6+& zg{U_psq$|bPPP%qDno5io|zT-O=_1E@& zqZ0bow-f9HGsNKeH9J8Zrggov4p#ahx5EtxbAH!Va}z zf6yq>x)xze)SkOr^1W@Y(nBeU`oz9%)TF1N_de(ii8GR1bGOz`K-hIcud)8|{ch~)mP;~`ufDS!A8!mAiAQPqm{v1xdn~8fQyiIMsu9s`k zM2CMPd+?x3ruKbUy2g;qtv`6spNvMY|K6jJBI9acz;&4o<3M$!cy!wQWk1K(YFzr% z0)G`l?266|E5pN z6P|>eO9g6*%$DB*W*bF3Id@5*j%Phk+-@S3lnSjVp|L_^zBO{WxnwsMfo+CIoD0kr zmsBJlB5Xdu3;6L}h0fJC& zxBBh{WU6lYl_==#+d!Pw2oF4wSd97!_m{!fd!3I>3^kp)Fba|bqSKKg+TzL4DX_DL z1hdw+)PFKQlNN=sJ=()jdYySPGS^=W+nrZGU%`EiAvWv4*VgF~L-D`=jnaaHt>5Oa zZRXvx1osFUSmp7IkzJLt`%-DeP>95SPx@Xma&X-K>{;n|S(HQnFmcc0X*UcB#YIq7X|vFjF*iIe(2hSjoGEMEyN6Oe)bwz;0M(OJd7 zgvT{ml2OmY`ktiv4&Qjl_ZUBZJFp0{8+|k;>HZ$3pHlHFVtF-isPMTJi}ohYP zKU2%~J&34e)Q<|fXu;^ggWvfw_xkQtpoD=2XC=c_O)9$A>_08qHOSv;36%8jS5P3A z3cXduiXBVuJskC7W$M_amHSPzc+@oyyp$hj5ThiO32Rdiz)zp*bO&r=K$)~%O?{!l zPrI7cKW~+-rCV8jUQcz_ulYys(K!DeVuEVs@xeD|{fDIow!&u(NnWnxpKM5=*=RZTBc=0e|D?!b! zjUBtfj+#cnAuCD~O!Vm7`NSaZKUToqCR^p5 z_Vx13)u9(hNKM*&N&V_c5F}q8=3z<9TZssd<;Hq4{_ddsYcKQIxk-n$Ofj{f7^&7_ zj&RQCc3qH6$xAUpc#SWdY|C89E_XnC>l8xzx3ELWivgrrDU?TwCnsx1p9ctC{@UE@@%QywFbs-KSx@(`O z37J==4FjL(!c>Zhu{vvMn3`mbq7`0w;Y6+IV8GB%BWheS!Zc^9!YFs%rP}u1eW5^I zKYeMzfgWL+5aIx?)9NFclVQ~mFTiZVp`Mew?EQQPtIv(KbK9kM1kn-&CpD~LEs@*h ze%Rn{wbAEjgKs!M`<>)wK_TaFeey7uh&kHm9-G^%yj^=QM+iEedv{d@DEi2Z9|)+) zs#T`<$u5bH!4L{pm)GquaFd#*(FY3QyKcyW9p>~thIzA0)U{p3f2ZHzvdM#o&o(6C zU~wPQ1A{~pEYw%&)Ny@MuI||zstWHoQOto29H`ktn({0*26%Ql*n@%cMo2=V__5yi zA@xs)$G&Ukn<)MM&xmZ?e?yPnWMwq(7d4aCDwcjF4OwQVOATC!=Q%`hylPW+Es4Bxje1)86%Bc>J3WN&<$0jO>1vf=U<|qyd6klrDpXNp*QWH=qA#s4j1Ta z-C1DUD4?P)^R2x3fY$-3JqCNDp@>|#O|isIY;hA3@T=J3ytq7y@THeSFM&5yE=g50 zDO2sr5npsSz8aV_RB5Ctj1}c*75Wl0>|Pi9*bXj|yCx(R9Uz|zd1tSes$-d=4qWoF zYqxXqt>J#bO8Mr1!|zm+PI@rQkn?nw{3?Q68ujzg9~)ww4n#QO{@ zC{0YEQ?9r-f60_D8!9BMYaAu$rSe=WSfEvCv?l=j3Tw!hy?JznMGzaYs+jeUh0(C5 zLL(j(9F)4CZjvTW7@NzwC;uSgSmS?;5GomkY3mshwjU1ao3DQP)%gu#f+_nA2N%$| z7N6Oa3Z<#$+!a{Ng!)nkmCw_w^0pJt&S?6emvQCjpGusCXgr`Opn}ajTX?6&v&|ie zjjorjCVx|Ti&eS>l$(U?;jQT}mzVe0A@8Ia72l9T{+ugE@c1BeeM{dLl{#*F%4ft; z_Flq~Pt)yrUg4l1(l8y zsu!GWUVneKO3kzMzP-OCa&fpPF!MdrTkhE&{Fyqb{W05qv87C#X3;1nV+UP!)~$&| zqDVIN7z}xUAkAWbBMp4EJDMzmqd1wfv+G;)yI()?-yto=h#JTMs95ReH>zVwit+C! z#*M_*1fqd0T`z(I#+0}L#6$$(rZf^`g%IxLZSP{(?5KhMoiU`&OIYEu8%7-bu>HBx z26FNxz+>JB4A6Whan^E;Yx3*FC^>XB%}kzn@Ss(SALIX5m(MhItJQV7`6*Z0dt28# zp;gDC>W@@`i_8k>x|AqjdfaG&)qjtt&(8QWahGo(Zg);_r93xmn>oIY>z_>CdXnD; zyCK(8B+lmTE2y>zSIF+=8j9w|*3uqsMIWm?H!VL)M(o*}wA*$hTKd?JuQ}o|+f9e^ zdo`V3#WhOD@%BW%ruHxoezip9uF50WQpT>Tl-3>GRb4mMm;(1wqWAOSU(_WDfUCN%jyUwTT zM0D}}_UQpD<I3)C=)MNj3U7zst z3;sI_T;9GTQq@v+F;C!V16*`em(gvAR94D4ykF%OZK5ePj9Kg&_Dw?S>+Sk9vwkA} zW2?(Y3UMX4RE1Y_=swqe*B^T%upz_4;wWvWUVzhfY!|>#!BAe~z{LF;2;xNQ8cn>~ zeK}&|SDN(Xb!V`j2))!{vb3=cTDdCwF=#lZi7m1|u#k3&RmLF25CSXaT_f5T#Cet! zJy;q&Pg36OAW`}7@#Zg#{GTx@8~u_OTMwT?(IeM^sfx?2o2<*Do*K@K>+iRkXzvmo zGBMif#nV73iBz8ptkfq;sz*|ovU@U+oYZL%f`;xtxr&f|MxK9^vI?H;z}i6Ja5-vn zSf`2CdzxD%gFZbAsNUu{P!5RjImzcnr!0inT~W?A)! z8{1DUEn>m+??OfPU3HaOabyi-CE-VnrhjsH$JENaO;^2(Yx&Vp)RVojUk}8{|F`i! z?d0uN^7#QhE&phnJYbUo8lU-;cr$*-)5+U^9dWoZUESq+*jF7_G)EYWBSQb?zF3C6 zS*bRylD$xz30l7t9K%2`Yo)i*+}SK&z#W+8lZfUCBH-r)yZ-Sff_m2g{dM3ifTh~K zg$Fe9sCWUmFaP()_|8(s%I4Svmiw9)%HJ=Ek*B|b#H=19%A@6ZLF6*Qk7P$UC{SFuk^&}(E)`m;&|}Mi5)Q79-?d735uu#t5!LWk`>w*8 z_=Zb#{*rN0#|gc(38VTlzh>8C?)Ez7m;vie{BA~W%IYx^|AL}!v= zln1webPy2t$X`EkAfzR@g!XyWb+=i(7Mtx(%tTo)#VBfRPghvjZE{@R#O~H2=!glT_gRvCTJbgmfLcc;2di#haCaDJ?V_ z{wO{2bv+E+&WynE0a>eueyG|Nb<;ZU{an<_&3p!xb%bc*?6S)OVx_g9>?=fE)cy0M zR1|N1&;e^nQ;^(4<%K7Mq#d?JBGDjD^mP!p0YVN^Rq0!+E$-5KT(yKTh_s`v9T zy)g^Bsqs7>tmr~e-1uSefCXu?cQ?PzsxIC9({cQTE08UNP4N`>Px*7QefPY!ywbNR zRPuQaYLnXX?-X9VC*y@KLv^Njvfh*mI zix}*`x)l{UqJ1e~bZFoyHpcFiv!x$sy;pChH$7bYcIWw);V{-Qtk%)kvbQL0^XT_V z$ba?nw(1{yRGXnIKOnd#u>0SDq**|d?Z3IJ#08jzPy4<)xQ5#660TZ8y~0yeUoykb*MH-dyX+@q>Y>Fvsdx|BvTJ*y7?45 zA<1pb6@DL163uxZA|%ywPSb1!?%8=AkW!BdpD$Wj8ZY01s?fS|PLEb!hQaUE!n)CaM%qQVrnNN#US~1cMNP`xh z#-n-6q5}{4DtcN3<_ZG$d)rFlV%VO4J@T~gqK`)0!?txT$vLdUI`30o<-M=VGu;nT za(3`t-qs?8x5dK<+7eLrl*LwwP9Z{-BwQLl`c7Cl7O2Dcbv_F}V-ZB7NgB6$147@u zqOfl1rJ{MHLcV%UR(s{d$T9=jl`4%2(kDPGQ4EN>EK)YGpKTs%dLduRR!pebnHI+r zZP!yfbpd~=he|HSYZh=&Dgw)WaT6)XpM|?mGx8Wl;R0_^2M5|tePG%~{?dIaIIjpE z*graiS(d*`8@ePLlqL_GWyQVnTMc-!61(8#z`^T+%10fSM1jxi@S)z?ElX_%-U2?Z zfStQ|UpG>d2CWXLj3~khXe?) z>S+mT;m>a`b^P_x%kPPLh? zhBGdjQS;B65Eyav@_K7A7?|;;QHL(G+hfm}hQZL;qh}Bs+ePgck)%*}Hh-vMRPAxL z*f;l15BI0huGt5w3g0-<6}0&j!(gbPz~D+)?faeUN4J8z&z)D&*~riN@{?NjU&S&R z2UGgepG%+}d%Z+%?LqD-!R`5)Zpkt2mU}#z*O+hrfn!+v0#_Mr9hF;)-a~@zc!a;% z`QMFWM?by+F)>tq<+p{zQ~aXO@l{~n%VA4U7WBN@zL^^RQH&4KDK#OdR7?wh|S50GB{2X(K)2K2h#Nk09dcjS;4X zUA-|pBS-gDuirvcCn)~}BNQo&8qMSXZro?h97LSD;Nru9!fAnJnQXtykfTmatAnVs z9_C4C_1JGDR5dcUt3?JNpO_T^}Eh)x6cGToqU$`9TP`|=uPwk9wtl|XoDEwCIXKn zetKFz-=}d(Bm7Y{33e(7s)#}-Tv$v+h4vR_&Jm|94C;Y9@Xs@B{@nrRfbfc&AU`eAJu&Bq@*$S+B`2Sifo3{zTDWIK62Dn(^YkA+GM$Ar~ zrK@<_n-;o#g1ljAV`HD63<}N}Ka!WP_+Z<3?ud?Zk=hpxuN{OkfU3o>UQwg1`Rg*S zTBUZoiW4hSUY`Mcr-Qfl=ltqM_r@l}cbxeS%ON5*ItHg!szhyDi-p<=JQ3H3gyiQ&_-9JHi~ zrS0n%9C;8&EXs%Lzg_bDh0?D1_WX6<`Pw6I9aioFVFV0Ph~x=u8Ej23lh}bqgAZwq zK)|ZJ4HC3oVw8KgY`42=yowe0Zz9(3Y1LU@(G1*>Eu+i>(YQ8zcu*SEQ_rpaz|wCAJS)WsO#cH^IV>th^mI zZrsfEIt8mA9{VKAKHN~17{DQLYv`vgj}1wLBqs8!DoiN&AX14fLZik4=_T>;zT&FS zVe{(HP;r0Nwj zb86WU;y`U)cu_qaO6+`Y#w#C~+URw2sJQF#-5G!*VkVu_EgEB4G0ckm?66piUUPzN;PP3LrUz%Z`@DU zQ=cLw*W=9Otx9M3nBl&{*R5M=xA*Pv+?+MRf_9)O!yy-?$Slv6P(fz9Kd7-dObGOU zn`zFpRX(>#vB6J>{ov2jSm&cssnf2qb5y$cc>k>vv|bBZf9}Jy>_`A?^G@@v$Xj`_ zUM9xLjKHU&nq2w$dUd*n5Sks%dG1n@PjkdM1}AnO8R6q?>(PqEQ?uOFw~_$*3`b1V z05xec+UwDyl0&^*?l`$FrHSttC-rfC%J)aRVtN?-8Y3Kuv@oS zka=c+iW`cQ-2eXHm?IeiZYp#j;IZl#MQ-N)-(!`{OA!R>OG7wgc%7$I8IKQ1Mmqiw z0;3lxkL>A4G|6_;fz@)TVBx^|N&C6bcJox-W%}+5D|LKpR&1$0DJxl`BM+>+MFlu4EOUt* z^*#hi5k#~{T1!&6g(8e8apdYQ?9rz}i=(0!=cJw2zCi(kc_Z78Y##uhm}{#?!h(*w zv(Q%o+D+FmgS#@CEb?0(pYZ7)m|94qW*fZ@@*2@`D(egVaryQuR1)H`webfjsNwbZ z1i+eP*ex*v(h}AA7--(oX1RySk7In{PIU;;$O+V+lwQ*q6P#JmX-tNBiymTOYm+Kv z3Um3ii1-JcB>4vMbp5>ddxeTCfmzG+9sEicU1NSC+-M|~bq>of_pGSxT-T7?~dS|~&x z0;iS;wf+u?vZ>E@YA~tCI(l;+lCmsbDMK(nVV&V(EkrqaUSqq8JJ$3r%3MQZlem;K zH{uRF1vr{qKp8BdLkt^F&`J8S9f^-ywx;PM`up*AMZYGos=o%v99_dW(`tSRcRPE! zyRN_Vh%Y3&2RU-?73*OpQy^370ob~5m+FH!i}&5NEH8#l7*#M9J(A^gLka#DSNWKD zP+pEK{30ui$P=c0445)RvN5V&=$;II%u67yne{+345R-~=GPDsw=fUC>sl_uJ};Bn z(i?_9)7zp!rR-dBPw8iFAcm|f$( z&i->JZi8$KID(>2VG4#2_3;KI859BjHEeJbASD*0qH;6`Q-D*VAY~Tf%~5L)XT-m& zzsg3nBb#8jn+~zPA_w<*bD_eLjq$Fn9IPVUEI{yDACIkeYY4!zDhiPv*4yqeo~Xu^ z_UXr$KG)ZG3;qqhSh&cf^Q-YT;YG%bu7BN5+56JUCfS}Ref8}3cTwFdgMQXV6SqpR zBp57yq&(6>z#EXJwWMheaB9;x@KG{f;|%We60<9?(!|cnrj*vMhG+_A#hQ5+_B&A8 zdVHy|oF<+6<@)~elx4~wmt?F$%0{3~lIbmr2#td!Ur}nylQ}Y3OoaX&WsW>it=!u@zIC4oi)r~H? zM5Ux5zBI{c$%M^prERbS8(WBT!7aBB2$hn_oxgAGuKGn-Wi~?ZCR8xO_`t4(WEq6H zzTn*C4tCLF=7q=faGn!;J3N&@U3Esf0_j)?(RSz}&&HA1c6DD`yW)uo+cK%pdO$6eN-G3G1!GrEnSBt%& ze&!;$=@Au;a7|V;WsA#)_8g;*G9eMw_-49b74;%VaNwxTKn>vj*I)XqNU>tUhZ;Nw zV%b$2>I4wP1ZVSgay@kmpIxdVASk8o9mX!q=wz*8=%Cqbnrl!Qtu~8$(>fae>^+>} zdcSgh)lAcnNNEc(+dTCfIx`BkqOqMW(IBm)_$^)EF)21zuT}kG*<@KN`;$UjjWi%A zLUGKg+kgR0 zc*!OY_!9YI5IxbWOnUx3*x`Z~H+0eQ<6-OfX2Pnp=inlm zM=S~P+VdV_j=qgBXG^(Xozv^Xk_udP=Q%};QY#+i^Pz`kpXS#sy#$_EO4_j6?Bo`~ z3xVF1pVf#QOxE1n@!7YB6IQjt^BI&j_+&PQp3-%62@(18>03I|5isIctm3&tBv*l< z3vxDa?39CcrC7nq5r*T`aqL3Is4&l4ZG7LiJ^L@acU>T|f_VqCHZUmuQCB(6e2<}Q zgVsdq*t>;V)sRJ-gnvjNGbAJGZ|@#!Jbd-H#8=FN7WP#gsxP00%O&(uy(j`d?uOLi zPcWx0ZX_$bSK5YzXRkJ@0Mr6}`Rdh`U9Gk#4`ex}|45AdFku+}UJ3zvSRdK#+Cvx&Ij7NZt}ylLmUwe= zanpJJ^#zn1gI1z?Eh4{0ECsIt5h0MRfCW~{tCZlIe`kR6O;o_*LDkm=T{gVh*C&Rp z^8@B+O`*DO6hJpO_HuNOXpITAEjeoL?g*;|9>YFA*%tzm3+~b;*xi#rrQhdwl9$UY zWcz9n=o38H)dJw4^go5A-&%9q zUe+0gej7yLneVbg9G;bV7h-H4V^1E4!Y(C&n`t5YkU4P@ERJ3_dqgXL<{B3Lx>A6k zPT(1saAD+Wae`VhF*cwcev|XrYEJ0m!9?lYXsk%9G>PuO!0wYpdw0h5L2gj=j3@sa z3`hFw^1&NZnjyI=c*h$2MVUWps6}t155=NTuLqkywGT$LV79FknXhz2G$>2N9qiyI z;n;&+Fq;Yrl0@P^hCjd?6~$x2+d{9XKld^V2Gp=((LiX(k+OAY#?*6$o?(Hi( zu)((8sjP_jD2u?>dA^PviVp2Z<~`fX}L#Hcg>&Cj$nRXM5aa&k-ECJF9Qf6e={!-KnSw{ z{ss_&JwfN$rEppEpHL@#h4k1OH#WM0Fhyfj1~FQ!z&dgCA4>gw&O`fwg6Oc1LEWWLiz1pktLk=^tp&^<}o}`5Nb+@9TXHt7_5^tF?Vl>5RZ~i zZjHMa-X#*56;cbvaR{Q!PN|^b38>8Pd)u;`&xP(t-|kV!-Xz6LxjlIhc7WevcNOVc_wQwQ~EMiv>XMXo+)|+#%n7VVEyKy z=Y{1(p{U*l5 znwCJk_QN1DY%Ywvs7nXVP^6_Bo02(ff)({nG|SXM110Q-)0EpEOkweCSgvBEzT;jp zPJE#{2dq--VX&rDehwZaE9f8P$||xQ-f%_|*ZsXR{*P4lP3%hZoXhtn`}#<+kJIK}W4j(9FiJpx1chsFOOJ0|d#s$3aT z6@rj#PI%8g0YPmCJ-$JuKMn}WkrdBD%8xz}H491Oa0!2Ep!A)kp1}9_f6I$miz}jL zr`m3<=!NZfe)5~fI1T|i6!z!GFYJ{a931HV7c45;VC@R|RhYof;wUCs{*`A!VWebI z(MyIuGgpn_sJR7~h$x58jCEXUTk^9z@4xzHX7KbaAol_)iW7LrsRP4WUHyt;9hx(j zjbd^t|HzSDx4SdxoKa!tfqwp5^rz9em{K?X1_Yi=a~$_x#R58C4c%2TBfXnU?kZxh zlD737k$3VeQFNe>X55TU&+@97j@W>_`aA7+&JCAhS$1(hz3LW&Q9o_7(ppmBX**f= z#s}%HL)c zqbO-oJL}JmOHk`yNg!I%nYth#RB$O%Y7`rCHzf|L7tjzK5)hmIn-89-f_V30o%W*6 z+j!`6&miUKZTEI*lsYft7>FW|hdk}`V7iflIJSci(g$bz@g=Bn46-EiVw?BAFDe{z zSCAS^qtO?jl!v}2H_ML6M@P`bu4@`iA;Q0xxK6pS`?9Z-amZ3H_rH>jPH_Z;N@t}=uQi=mp z_IkZ}q&8V8Bg_IGPvEge{5Btk!ExWqvF!vaz`by z`s^Rp^Awy9$YB^l`QnPr~8ko<51RIvSY$*!wO@op=J zAc?miUFX!X$!o$BmcTwi!2{5&lS2q$9JUiHkczBJ6 z?Rv9enYY>EoV7*ha{wH90#EJuM&h`yiAYiBMtD=K?bWm+9hp;i@CqLF44KIkQ`7$L zU)n9zji|Iz7;vjiJX-%aQS#vu{e>|DC=#cqA6s4@eyR$f710k|AOQ>`cp_Y6CVahK z;!nPAIiB~{+<+fIp)#!+uKjL{*8vUF zM1VOEuaUW8*{!$0QS4#I!=~!;s!dRU*&92RKec!P$8E5sd(9( z8^9sE#LHz5r5`sFKH9jTZt&y*RDi zkmxr_$fA`*ON1=P@hD_X>i5ut{@N~Hg_FbP0g3^cAlwo5FWA485-};w!_M^a#k(9( z@as5Ars@_1K=%2=l%;CY?Tb7JLSbE0XnMA`>T~K-QKfOT7|1hUPGzmdWXjfhuHjH( z?t&|h4PF3wfGH#$#7tj~8wewDwvPTgd;3y3*P<;=@(Op#gkQ=Y%;*VaF4l$+;K1U( z?M@LzV3MKARRGm_jRU)q34kh*N&wW(bUzz?D$c-byc)zf!u1bjsxITN81v-p+yx46 z;X-xtbY#1}WPsROS5=w<5gh6>jDBo})f(kps|pU3e$gdU)JWSN6)c5^m{!SDXX4F` zIILFB3@~)MdMOl%1asDMz8Pe=J$oPpa&^ob$h+^qh^9QwT8zxYLYLX5;wI(O#8oCy zkNf7?U)lI=jDp@j|7bBD~pKygXv03KTqA6>Kwwg@q@5Q`FR~S)NXol*+?cd<+kLa0L(FFg5B50Yk5d`HFbske7T+*gy z?3};2oSkF_x#9ahcRq}p3Z+BZuo)$bVi1rpxCl_mG*2;aygefqu*pX7JY2hl9amAj zk3q@`YD#U6;kEApo66x_)Ru?VUZz_8_qEz=1i0#7trO{kD0bX=DEaazhMxz_VFj)9gilkz|e` zneI=S)l0oMv0f0y`hWg;e-hNN_WZZCqeOT)qkIT9T+0pO^J=Bd;X7IIf}XAW6Iqd}HjK;8oSn1DrJb8uP+c77cP<^PkF+>}KT3>)9!tJ(l7P z&5B}Ytca$f_2J1qB0+{8nv9f|G~Z6l@J9vBcKA|YR&TTEx}W$$Zq9?25mi3WwHSA25k>mDB(+{VWf9I#2a~p6z=lleC zH*w?AZ}_%UuW|#U#JAINOb)WENl|AJoKy`izOZ zXQVrAs=J$ngeF=}IlybIVF*B|YpcQDcmY)VuaGu@zO;%8{#3 zV+_`L`oJjGudc2Dk_ggYB%Ap8miv(n=lbS1_ukldTuT}bonvx@=$ip7+Ve%&R$Qp< z1LvYQGvkG|B1(;-)7_o%>`V8p7VISt4?Ecxhvop2NLm7@;kVz|a7i%ML6yBfBKZW& zj1x6gk`Ep34DhxCgHwEa`c%lq^&uo&J+#Fi3Ss5?5p^ z2se5iur-v>^4?7TIgbo$!Q|4@;;?KZLT;&XL6fO=m?PH$yiF)TJqkJ_mxHE!^@{LB&AzE-K7lxoF;BGNZdfqTSomDL>lp3{@1I92Fcd_ z2P#v{L%n@nprKVzD8w;^)ty$=9_)=f2#9oEaPv|G$=yPtkg9iVbPnvYgAfiQfRNrD zMV=hqtBG*~QlXbS&q@@6h~*RomZ0EotZX0#eEyOn_Pen4{JL zdifE#G3mV5D%0T5*y^+MKxQi;4k^By@RGQBRxl(tcYW+@heSU(;0~{w1EAN>3g&!Q zZsy%>W|3F);DsB#LOP5bCjmG0(`>wTIDcd5mI(B$UMt zMRlT%Rw?PHVzpG7L@}e`;wxC=p!?YG2}tobjc z6tNyJA1uH9vn1;833g4;ZQppER;znJvit2?KJXZM9IbJ36s7S#DcHD%a zmLV-^&oa)*zf(WEkQCy@r~}$HDCf)CI=9cEFZR`Amrpo&j{d}FYW2_>1u*meUd;wL z^4?t~Qs!08sxD&+Ry>FL-n_XazGR*q8glj@j&tIhwf;=d(jru_=?J>seiRG?=RTF2 zB9^^Y9m=UiJ6>-uT-1bt=?5Ty6tkgg)=*$LlIx_9!2VEId!qJph~1s3EE< zJdfWwK1Cg%uF*%UE8ML2HL}GUTI>V5OB`lcw#SPplpV14!}6#^lr};}uPu6%VtVQ- zPU6hsU+zeb<0`a~0!9QO88)$R0*yP1l|k z{S2X|)vQB+9V!=7Yu!kWkB-IaBg#7p`mu}Po|e@V9o7|UPE!Zx{weNK#s$-)JKe5-HTxbdvgYpXdvm?R^Pn zM0dWO3Hsl4bg|s~LU}&>_tBl=o>9jXfHRUldYmhF-MKKM_+7ucX?R72vr-+r8={cc zm3ZanZI(r)NTItqp9h3*(m!e5W7LtQ{U-TET=vm4dF$yRE#k3|E{7!%N6W%QraBKf z4b(HSov0z;SvwFbw7>YyK0A>yT53>prDZ@nt{;)>*05IcWJp=bK*0fi4 zrv%rhbHYP}%FEHzh+qBOG7*TTjQwba_!_J$g1KaLO1MZ^h1|+QYJ8X92iuE>s^c|y z%QI?>L4;bL7`J;OpV7M6*xzc>FIEo^RD}^Uid#5lDpqQ&1=`)23t%K64SL)Lx%?1S zvvcDQ6zWS`Xy~QF{}BK|X)YaV9*$(X7?!{_oVX2Qw3i7|W}Sgo-qvL2oS)+pr82WA zEiHe_sX?(Vt(9Dq+M74k6VGtpdiqSIbvpEkWu|xhGW;-UtG7vn+K!;B9PbAt&+*c;w)IQdB1rWQ?MZAd@5l0~vJIhmC5MLt_6U9@Roi9Q`Wi!}L6gN~t zV6sRoYA5#C@>W(fLnny;I{irb()s#lgp*8x77K6aN?ztGPb|msj0@^5?-%#^M$o=L z<3VfB&Q7Fq3uXdhh}+X0lqL1&2~*M8qwgB{BsUtY%EIGLWAeiSV1$4^q4<^mKHn_g zlFPK@mL=*zX9RsJNNJ?&^P|s|mBeFvKYMppNR9&)Wn5aF`Y8%m%06)459LVT$o|?X z1*|7H(v3E+hgPtjYV8^B#^UgvGd65P!=5|c&M|=HWx?hrho!zW0MHU6Q?6I}*%GMp zymdWzGMos7**XP1@Qa!Zc|PHEd2Gr=N^u0e4sGC+BhbS9ay>a6=e$8SnMLAi8GuTX9hx7R!%Hf)PqNmGKBn+^${~+3_ z*UbUEMi!*`OQM6MdeSQ8Oa*eWZt}C4WezNA9PyxBh4^^$5L?*y_}7xqVBQi6(YO5~ zmlpaGuhvav1Td;E%c+9h_e&&V4t;4$TsjANXe)W|5IJnMQc0zwxY}+R)#~O^npbpK zcuF&NiX_rb-(@NU7$qSs;XsE`648)f2nkN_5^m5<$&9*tz~&3ZQ#1aO#83Or$acK_7V{ki=1O?&Z%n&< zyW=VTSTSlA3E@{Dc<%gaU;G^f;v@9{-|D74?*FYky{mqgXjd+b!E9qjVF=apd0spY zsl&Er5}kXlRe)Bp@+rgwTMcgL30q$=XiuL(WwvyL;PKw zvtYnUtvpF7xTefahei!t+RkoJgL~RIpXQ!IT~m}A>gQ=_qZ0JRYJd4-UZZFk79FL!y(yRgh+$FT*^Oly?dId){5%~v#T0S%|4{XoQEfj!vv6?N zV8t!C777%1_u>wLmg4SKJh;0ThaxRrG&mG@DK5p`?alu_&%NioUpV;`PFQC1+nw2& zr|18c&&vOWhh(lDt#54lb0r{8bf|YyJg=q`bDr-EBdEPc)s^P){^R1ry#9$JWfuvyFOQS8-l>gm6+`@<#) zl?-$N*oi$Nk7Y(gH`NsuJ+JpChqNCjj8HK==+D{wKc+prYms+?O9^XWgNoNpuoM}0 zX(8&tEK5BEKQgEl-JO$OW!#ft02bB){R6fdM^FiUhrsY^9beDg+n+0txRCAzO<5Zg z`>blwbT8f=SwvA0Sim2U`HAAZ19XkPtO(nm*!~)#&StN1vkMvGfDuGt`ra^|9?j5_ z-IrR^M46lTUyT%;(tO(5pyMV)te-qf53=_bt-#?R^`mOl?JFN_t45AqzA7Hy%ddSUqu2hOgwLMZ?p~(`#1@n)h zuRpw^N_mmhKUI0B_hsO|TYH15sb5&bVq!`m-UOJ%FF*yuo|n2Q#CcY__V(2@5^xUQ zHD~};GI)M4s)!l_&xG8#Z)rZzXw+yB45KU&!!a*f|_ z2uEk(i3m`TtHy){&<+lbdp9J#mW5=^L9KAXy6 z02bNa-i}`mX6%)+CL=^z=hx0Y?(1kzs7&z23MTXnmZ-}At7>06 zy>lM82N%00?wv&2JuQw8e)hcGbLM~F-|&yW|4l!zwdV@xx?OnTjJy<3E#namr37F4 zM>8GED#k$YWD3V4r~=-JzCBE+JNKA%!!vX5%?z&mF*NOo$8;WxgnnshD+u^0(IuL1b~^e|ca#s&2mrA$+dTT;K^@O2e?*YD*{>)uxNY^xA%> zn~H$S|7hLo7oEx3yx|j~QR?j~;!0Ia!8OuDr zr7sYicyAH5T9v@rurY94KE|7GCMeR)o9rt_1vK~R{2nLM9MWqtc6`5|T0k@#emIBt zj@1_P@FeFugxgzNOS9*;)i+unjVqBC9ZRg){hN$p%RBdPup|Xnr+^1ajn7$-`Z$?~ za*YKzX{#6LH{Ywxh_l{GEPa8Dh1xDm(|c&%8s)a%LbGtUA0e6W%RN@I z>FAz0NTJR>x%utq2C!_v#Inc-Im{JsS|FUSGyl`;{>z&%=4JWHg!#V4 z^iJ#x)=bAn1&G)uYvTOe$#+Z7022k;uk(Jj=V;*!7Fclil|?i(9Y>h^_SR_<{h6ew z=AE`Pq9@j?&c)06ouNmrQYMNBBX8t98HLUg>h~&JmE+ba*EmAvbLKi_5B9)$5(!$Hw+lFKKjl_Zgv{)g?^toxT zjO9;Dcu5+jFV#K+YB2@l+`JPe6Z(I;yzZa1Iw92V@LDNnF;kGXcApC#ejuS!Sn)0bjWH9)B z4F@nk#J)_>y++s|{fkR3kdq)btIrE^uV?x}eu4#GB4H|w%hnuwXI99^*VE>tsB~u3 zsT;Zefpk<;v5_V))9(|bTyoE*+-``%=@}fjlVCSXX<2DXHLel@slTREYCihJeaj1ZS5Au@{?fF|-2>5z*_5a0=znhNxxCJj zGYiK5-Y4nob1~vK!l2UmrZM$P_{nRnZ!w#n3VLJV1{6g!$}1bC^Mm<)d}BF-^85cq zd*$zvIP>=+NIyc}Ck6t}=@;{M())j^_H$Pkun0N>c!^zYVOAID$a zm>Xxh1D?;zZ~6gAdg2o}qW;%B6O3LDMXE6n8fo+FJQEUMud6+&`(2@2sXR{ZCfAYx zq=Nqo^ZARFfTON&vEJq!q*zmxGyJp$;G=v+8K)7v_q?@zsNiw{GzUDkX^d1!sGr9h zT7y8ugO-6zRc`u#+m^MV+p@jz1nO2M$5x77|NWw6w1^bltaH2J)cBBa3>mJw)(kS+ zF(P?iVlQUi;WiIAVl`S(>eDm#29X2oR?v@bxL2QsJrbakh0Eu9?o}mj?sK8L9))F2q(!yJwF{Cn3=Umwo<+y=`6SVHvcYzoFwmOjWbmS$kN)+E z{`N&JC7AY^J4Y$W|J8_7?OA*IbBpX(iG$L2s@JmYIg{t{5rNn7Z(mEg7;SR3`!$3e zEsifPJ{aY>OhEmw=kD5!Hh<+m=)>@B`ZWCRwYlp6sMQ`_c7*Imsq1ys0L?Bdx$lJj zv^(!ue^I#KVLX-{$E!X<%sw;u`{V=`8MwVvdmA(jv+vjs4)W0#h=RG?k#`H{ZyI)< zER^->2_T(@3XNZ(nY5#du(UpYZWy=`aNnh*GVT2$_QXLya9XD+CL3uhM?g9J7sIQn z8!;mWp*y?#GF(d#Ttt(a6*({02LW0r@fXAG^->dUmSNBlS)UPpSnIx=+#$JAgfG=_ z#&tNaQETlOB4TIgre19nF@=xuQ)sDK1E*vFepT#wgtR0<{iWrDy$Q7JkLOj~m363> zCY?652JY!VtPNo^JMg^EKHktmu!a_W_XxdS!=RX~w>ja1z=W1y`n+fZamH_N zd8GRG>ykj^ReYGMh9dg@BWum$^l?K)Co{IjF*x{7OF)@_djE(zS(kks2P`gGMUi4i zlpxwFO6HIG6LZ`R%RwF7s+uv0MdtWXOi!QQN56{*S>64Nlvc-iN07 ztl&jhq~lweoO!3fz=^v-Ghx8N%o~t!Jxr}VXQTO*Q%s?sB|beC)UkEfc;OO!_E4kN zy%4}++IQODCb-D=pyf$_`j0%n?&$ef;DwAHk#EP^xc|Z&I?p{BJ{b1-ul&Lvt^u&0 zGY4>cGw;?jkOBKwA#2v3QCXMF@}l|{$0mQ?l#RciHQm3s!1BBO1>@`@>NvUQP48-X zXFq&riQA~@Sr@F{A&&eaPV0ODJEi)7`y(RGH`JT=5DGI+n%u1plr8rv9j=!(R%By6 zrXffMr&(eBQVu@v_tmRa130UK_M^JcQx%(%OArmx;W;W2n@w9DzHi|{U0}MEnR(Ue4FeQZC~ogeeL~H?O2p;k_rZq12=^2 zT=mF5$HF|Rq32yKoIziD`HpCJ1a9{B_&9E-4Igq0?^B3wLMx*kT0) zT0Z*~GY$xEJQO~X6=*Cog-K7XKjXYg&Exk5I}1AqN(>@=2>606NO$Xb!tT+brAC9E zDtW+;ONebI*u^$qcU;fN%^>%aK(4+kXkR(Tm_zOSe$V~h-M95KBF=eq*F9(XHHUBx z#q;gkO&QA)Sl+86z+m$N@67_b&Y{d_zA_>a99lJL5Odr+dHF1`*Ep#tGjf{K2Kd)9%Ope%7nn$i$H(j^^U}8a4mn z&xFPW%|A%}%F&CntdUUBx%{a~w_(2?yz<9d>n$gqN}9G0=bgqU~wRpkIM+2=26rzK|Nz}GZnax~%)~r678;EPkyjT$2GU+t@xJWqR zIO1gROUlVk+t}(tZ#7bQxg+oXdx&;wV)Y;@_IQ8aSGu@ps@=L~C%a-_B_1pt;Apcj zLAJ}Al>fKOkkll^MywMneTihZuMdUy?CGf!?rv1(^GpW~7nI2zWQJ6$Wdw6d#_G>~ z&AQ>m)tXc?el1vrS!uDG37yP*7UVcvWNeMax(cHMwMsrc@R}sk+NK(8$(B3h%2%y| zcMG3goEY$f!7g?zS~Nr|K~p*Kkbb)K*`vZR1i&5D>#W+t`-@aHEqtag1`I=y5H<;d zRzpW_z%jdQ`WWVy6dk5j;gIanZ2Y-s(4dwQ49a)Rp+C0CG@64^^wL<{yuWeL~NHPbH{`zWsCeMA`~zbD?q$_VDW>^OXJ z^A4VPp7sw1clm9o-F7O^HyjoLn&By^_>E;j4fsj>7dr6`HObZ;>MSO8RtPR|F|bACwu+#_N3KwPaUAln6qt zrs-WK>a+G0f^O{9m?%B4q~Wn#WT4l$Lk)o`oW2Zy#_+j$8 zj{-on9^)1h0jIBV%08(ZCc1&@4ETHXC)C+UAD*d!4*$%18`-H+ngGzLYJ_GP>;{Q#4B{?Cs7! zLy1(PErWVZogA74=4W={*6olU6WLP5$k9l6&Bvc-U z@NYSf2;0eew;1aO!F;V*$wu$9>AhrG3a)KgttEQdR2DtVNDF}K+VTU+o#UU;T$eZ9 zY(dE-tip6?nq$0ZBzd1-yjgqWo&3Cx-oNzLXzYyvk*YWLq)Al)U3^sh>$Ov1~ zMP?KXmOhp)rfe-zuIl-o#kWaP%dj6|m&EQYMwo2Y7;TV7OZgK|TG=T@g|FP1-tXlO$a#KC zsoB-^+WYhpHM_6A6#j{EVAhtLB_j*XMvtYhuIq~$(?$3jME9XLcg)7l_WbJRS>E-they>;g;bnsYW%|XUtFlR^Xyz|DfAuVsQK$O( z{r)2O-8FadpRT)=V{vhN*cC}v22aWg5a0m1&JS=lluU`nbt7ocEII`A=6XhyUUrk`kuBeH0QvCD2!r$4Jv=H3rLdQGGJrEe4nh@$F4CO?x360bNb zP4VVOl|3QF-h8)xf8;{w(|+>%9kcTcdAKpN0zBmZ)$<>OCQgxCo;&Pl4Anh#(Beac z4$-F*fJ%@|gF6G3^XDhz=y^FOvK7hDN{)L3U(tbPRH6^n_+}Z;74pA3OyX0#Sk3pK zqMWEK8a`-f3bG(NqM(0E@$@hZted>U7tXkj8sZ&*=3U^A^eR?Z*#^&vbo*0y!&%2zO zoA!N`Lc&-ZG60;qiNM$Njhl!wsbdQf?QG`GUQ7e(6b;)m|er|1$#})g_ry^O3en<7-#~ zX;WkI+YBaAX?>FQXfx2|bd|%zs1_pfas59DWE*9#xY71*Cf2l8L#QqWUB-g$< z*wkL1MGx1jQh28q@k4$y+%%s~H4y;wu&eWj-LQ{`J$<)VInp!eVS~rBKKiMwIr|%> zdC&@sFZuTf4ZPqXtjaFGergBi9I5960H~FVCN?4TnN5FHAoW4(e2Zxq6A{vC{hUeo zh2~<}r2@k9Jxv@tunz3X)O3hx5M0gAtdL+4+>tNYyF5ipI>V=oj=!+5;5K(#=&OJ9>#T{p1XiM#)_7Wj4&I}Kpe9b8+TLl zpNZ#7+xt|`A*>Ata#bHHpvlG4!L__?=Uv_EbMMpjlgC0s6xES0cA5iCHds zR-DZN9f`|Cw6u~CE*de+{!kVNhn3KqDZyH8nh*F=2@O7r-~_D!1~$&o)Dc+aL_Q!c@Rc2~HW2{wQl+jF!dz#?SWQ6`?j%9~xf zNee+SD zo%kR#&CT*%pJ_F^wk3;2a9XTJSg-wvqX4ASBB;kQSSKy5FaR-}zY z26lDPk$sxBjz40rL%e0a*uoL8+U=(sPfqQF>uLu&oqvz|GZpKW9K*)ERWxxEpTlm}%l)r(TR-6gF1fh;W8eBgIQKgqPP{qA=xvev zA9t`r2Q8_7u*m5YSu%N{adNoe)DWWm68z5;b&}1{zpc&U6-QAecuC-n-pi|APvzh# zl*XFM?2rey%89$`pXL;woH0=9-2TWJ_S@U@ga~2>%nsMy^Z!$P3KmY8l)c_hEti*K zUFz(y|1Cg^9W4T$$1=Mk&G06v|c^K_*FGwoKxu$WlR)dVls-1VI(F}Spzbv$bMm)Pnu zPxAHIGuSsb)rQ?s2AuA{A`ueLUW^^FY_{TqZS1xB@%|fh#_j^w9W`!cR6j_U6>oA> zAyrVbOwCDuCv%yT%LIIKI(XJ+7_`o{A*hc;5v<1VI6~A*ysoom%VqGu;?fJ)xmLDr=9Y<-yW~-}-O4in~f|*V_vfqhpD30m;g)s9S55FU*(| zIZQ2G#4`W?AiH@NepEYydIeL#<*wh5ZvWGc(HNZnrxmaFDbSyVh)zU2Vn zCT>z%{00YrEeJ8drS`Y;ry)3A&~!VypBe3kwdvFL*QcmTlroxS1}Q~W}e#K;)RgAFvvRwm?9_UvKQj5$Ms3KT z9f31wh})uw?k*)|Ja^4;0}NA~M^7mBA*y6^wNIyW7F&9N2I&W=cwkw=G$p0 z?dp|S8*|htK4e&zr2s1y!1hA9;{qu9Aa*nyg{U3k6-G%Tl*x3GUPN`lEf(Ws%h}wm zN}N*@YuHMnMYQuXu{zODzeA$68ja6stWnyq#Uod4w{Px7mUVrIV>?_~2X-g4o=jm{rpNn5b3iw{f@{zE+ zTZIqW6gI1+!Fp1xGG_tiq-{tDH|BL#v`~{^rIS`p?7J;|wEem=>&8xyE)G2&L$<~y zfuN6N>OW95Mo-*gAKFrd{i8M{bqF@w#_W&Sl%Izp`?zDkDL%J_+H$|@jItn#@ZpY! z;5LJPv3hs*k)$XUF3wsk#X&;(c+vsY3mCW5tld`W)jX*>b^W(eBo^-i25l=cP`{gj zCQVdh3Wp-FvazQvGjCMT^ErHnME_Fu57PuV93`z`e{$#KNHVRLm~Nz(dA9=ltG0A! z-q2SX0>L&4m9*2m0x3GZC2f-!v4tkW0HeIMZtY=dsS_w`~!- z4oE%43MLRt5qp!{?(+aK-jAX5*>YGR!Z&+>anbAZ4`-Bm5bk=u|6MJPI=)e?r*|%3 zwLPc)1!%0u4|Wcn8|Gd+giij~o((F+g>;Vn#qpFAi`Cg#lv&e7mFc5%gi#H?YDoEB zZKnWcKwbf>IkCJv$DR8EIp43|D9 zBGK`Q-XJzCFK(L8@6`ybm*- zZC+0l{$g>=?|-(?-Mh3VaOgp@p^p#7X56?7!1oQXe?{Clv0_iGJZi?OL17pue!ms= z=5;w-4HJE&E>7^mHYktyvA!)|EUN9C*hf=A-8BoN#=e0kn;q$#J1R{7^IYB705rRO zJy-zoXLufu7Rg0!HovACXbr>ql^Y33x5CvPR*(CP8&rz@FI zX)O^&_U*!4!ii+?9$4AaC-RF6ZFxZzp1S^ms2q*^odT=TN6;s%ajz618~5>rCS%jv)r3;wZK?~=aQei=(C0aP4;c@SezE0FkZabpTh zKLndm+vEDAGr)I995)8Hq71h??zjidXzK*OeME+2jk2~M>_hBZi@#Phz|IeyE!R_$ z%?GmIGn)Hnf&`vn(Jc2fy}wrss};=ojN;Ze9y1vK^1UFXHsgbXMaoA1(e-~tQ$TR9 z(31JwD%$hufxrQWVprUY{bAyz{e$g&zf13|mb$D5k)zigwtDJeGf z-Y8Z1=6|7qVj&Sc%4O*rFM8WfmP;LXP93ONL?MayfK6I%FLEnE#Vf!Hi*fOtgi=l^ znyROAOo!iv$zAq{f!#_PzFGZ(?(>_*_3QFz6|qlk{fd|8e2+-W2RMdJ$tSq|k5d|S zo;hTPAGLzycqF;BZ3?zc&vbd*Acg1zM5+pLXc^ANk6d33=tHL8i^j5>$`US%O2+d8 z3=)hg*+9Ho|65dbFeQp_*Wy!4s1ns2v8-q97fECLkD{t0RCiJzUd*I&EK=-SClyn~ zw4_-L26#hUPhN1lqVTl;O)Ad$iYL;~5bW9R@~QmacAP}S;m>tIvew&XBJ~BQQhHY8 z7w)#MMY>Nsx74L}B$ae!Y;WQ4_?U8u53?A3eYWbx-qu(Knlpk+VggCD*{PJ^m%>yn zDi-xV8MTYYtpmUj0q`R;o-7^Ox9?08*>gLebF_L(|1WsAG$}bjL-K}9@t3Ul=BW~o z2H3hT6-C9@hw!B3dZUN zaKYZYvQPK9^Zp$l&BF&3pl}XVIf;19G)F_4?&zxCGOSa}Lma^tcKT^4 z_bk4_Q){MYn(wQ3Zu=I0x30<+sszPfm4!YiAuCY2v%dF_#-Z*XlI*RG`1cLcJcrq% zMGqJL7OdUMwe}10s?R11OUjh1&#pFsLoCrSnQo#UMF|=V8SJux|0Ae+*$Hn`0UL+j zIpc6>c!dj`knB#@W%;Bw(BSFp{hYC#Q5>3gb6;z`oFa+qsSj0SKu=q8(KcTP{hqOs zPv!g+W0;YtfQP_25#oj3HjZ-=-wUjCo@0R6lk1z`-KP;eaxa0_xX^VtzX{I(_|Cmg zLdhfuRg;P_KLRT8&6F;TrI|gm7zD(IAoVY^Vcs}Sc=%v269%pVq(0mjM-i2syEFrb zTLoK{F$eXEvfb+f{qtsczpv@_b5uw7Ij8Tt=wL5@AC!MeF&){X9`pwAe=M>ls_}G^ zcvB$`rd!Px_X7YnAM3@`St&MjAD|hLjbi~+4XrSeXS|1CUzx>{eVJ(FGOSP65gs#< z>|wm0AIXDuPA-*%oU-hdn*bp)1cyJQ?gWyOKs;rhU9C7vt}bg<&qzdzWUh($;c;L)G2-L;Mhxq2#0}}9BoYdjP6SR zJ~#k&E!&-IA-b}9^yrb|g-E+L-_0q31sW}bSy50L_2}(oTd;Zdxl-LWtumlA(W+w5 zqR!1LS1-L~oK;PA!6Q^ljQA9<-_@cTUL|HTAZH&5b!%4K`U5bbZsV)W?m8vlnFUh~ zP3(8Fw)!K1m_f`V!EI;8B$ZWopjNAk@y6TRVV8d%r5qLLa3;@~ z{}gc5ks^VxDu+9sbBK%~~d5K)|Y!4-S`El8A!l~(xZdoC2rRVED2(a<(3p$;gYE;nwu?kScUaux?h(T|>68S3iA9wE`s#JxucRp~CX5j&RZV zfo%=>`-qvid2=fN5k~ufmuYg#SvJN2m>}o;ae6TUUC5_z5Gm|jjPGaBpCxX>$yKm zCt271L4Mfi57#Vr7Y|1V1O5)b!RGd0$HzyokG{84odcs@6R?_0)vGJ~Y!tmtp~C~) zNP3@KI78%19P{x(g>XCt@Yetws#H=u+hHDrd!IbVlYXGG|7wxW&6rq^==pbeSEoYb^F-9eOIBhO}Z_)tYh-BH?M;!*6kenrHS2p@9V<=;#i< zB+UKUH>@*mCWeL9R8+b!N{I@;GFXGHNt_0=W3b77PLobB>SI)InZQS}+gJ4U`#tPZ zcP|r?&iZG9({zMCY#0M}=jP}gs;&z<>~JMvP>Fw_Op{LHB-71hNnZhpR;wL&_#O_* z?-dTvG%NV2sFf1_+_Z(S0Ugm=77u{Uni@X^zyTWavMvz_Qp5lX4!aWkk&VmV-3$Vp z?q3AH@9iTYA|k`_a!E@vq1h&8YJV@;K}We(zhbwi>3W~tipQII zIrc_aCW#QTa?D@Xl|I+AmwP54csJ{6B@1Xu^UxUDMLO4S7gWP8TdQ$~O10m&xQ3YV zZ*y9Xzk=qIIRgy%aILRTVWS2E>1WfjR zt-K+DY~*RE-kSWPG*9#66l#)mPvi^*T~VJPZ5)QkOHb`=0S1lbO|Nf$M0QCZ@!|IR zvp#iSQbttsmP}vv3?({0O2Yc24*I(y-0oQbL#81_Wa!Xtt`29Ce^WMVtx`fGBxP~C z4euTlik8)KO;gB1BG-3es7$IJOHpLIGC&UKbG7Z|jI@b0Lt)C>=V2IvI(`=KV&+R) zY<<2}EJZOB3bsb*{{Z#%^CEn8I3g^V`a~)VTSGF41pyDo5sL^lBWFC6f!7g*h4#8l zHMGiyPX9dep3?PqtWrXE7#n-MZ{>skl*Aj*Yp|g-I%DrsyJC00%*MY&4l>#-W;oS& zy_C2W5dI&1#>eVrl46epV>1Qw(sW>Qpfl2*+QJ-P!->yNy7oYX5$17{6SXRoYtvh>feCQFwfh1D zr2B(PFWs2{)~s8!I6(KDRA2NE@9mu##cij=-i;HJWI2i*n?DDhHZvPRQrj zV1z6@_Qll1%b#^UPx+4!chxxVqbBj<2A8Xf-1A}r zxbrF#2TFsAm48{~n7Qwug625Y{k5O9GB>sW5ju)jq;L(Ap0m`szS_~!dVUImq2!E3 zEG$W>HZ?3P4FaN={p+DOCfT>C-!ngek)|SZU4hDFzs_kvyp`?xOfa+ORp~txW%Q1; zuh?}ds2E)e-XbEPPewY!NrK#ImNS2Rl`x!VdF)#$Be5t<6wGbQjHM0Au*tE7($`|h z$o2d-%Rc}5q3eey)BZ}f@>4c2h|qcb+tYB@Yx)dPKlgP%cCr0YF)cEduibfKwAtmm zmVV4|3ku$%Obn_`_(U>Rs11vxDQCP4xbeGk8UY5hmSNx&dW5sS|1_U_{~x)u7Wfve zZgXp&-A6n(q2ViY1NQ{i{i zPx#>5_fO}aGwoNpBhtYsy;SkE>j3xnTGt5|hP}U2NLF~@M6D_5o+QMtBTqt*MWk4& zm<~{4Dag>x9g1hEah~!I%f1_UaFAW=eXXC4mBi`E5AB)6rf!_LL{K`mD$e~S`iPjJ zm|^)bZ$b_{fU+PuUP$P;2rs~^aF&Z9jxi=CdjzFW@9q-`{a7jN&sz0Lr*T4d;5!+{ zx#(Jbyu?0ORIVevnd3sqbnKuv^VPcKATwph3$hOR%YFlwuyt@2oLx1d{w*$_ zUV#a5BVLt|C5naq%i&LEpe3TiyRVD`fCAMRZAasz@h?agq)NCld5z6_q?h`u0+3$u zT~nudBaQ>TVB-k+0&2eA(V;n zY~1rEHTEk`$8SyH(j)<#zJOKNmvTtGRFp71YHvu_QR}@uY#bg%t4kUYZ(bE9w>!jcq1|9UIQVm}Z z%?zV_aU!T%a2C<(9*^P#OWfH|g$j>44(v%2N|t!I1F5TJk+gf{(~6>*EVXnhqbud5 zF{tp74Kq-xBvE^1jA&^y&}j8p@}TMh6Z@4B=^X*;llD9+Gzy>Sq3A;Wsc3zd?I|$E z@TVTAXS}Xry!uem}j% zwAciDcsvyrU*Z#urYJ#h;k3SHF}~TNWB*;g=a;;?B)dtPl5>*Au~MZV{-!xBB_S6L z{lIKF#DE1)2%Isaks>47`Jk@a?oq&&IFjCVjdTyK4Tys+mybEPB+gt~6OMi0t_}(n zgG-#BNwLjHO@P~8UGIi7G_D^lEbPqQW~3_o{P4k#@4e2BwRRvjM@aH>Z67O)C5qwVQ-G_*N0w?}6Jm#-=sg=@eTH^aoeZhqXk3QgpkW?7#zRQEOb3v>476U|j$oZHvW zWj~1aVMFre1L-B5u2!O4;nCViH8OA;J6t_w(0QJ1o*wK!z*I2J6iPdB&a;K7pS{38 z2#$I_F4)nv{_j_0MYR^Oc4C3^h%J^%WjZ?^Wu}sJWaep!Elb}g!!%_ecCFj)&U2#z zh@?paF<71;W0x>_RhPTMSVo8&xrc>eNYSuxZ>T`U_)Zh#zy;8;TH=V(RP((B#0Z4t z3llU)<*Hn7M#hHho0GdKr@ASC(<{$#MD6g*o98dc62%U`F^weZC6<7gaxI#i+c z7XNijE!D9f%BcM37a13ehcO+svftq*ABU8}`Te;SW;mo8aS1uD-I!Chbf=c~$^{bs z+MH3;_iYC&0RY|LC&^BeqWFLB&ge9M&N|?d?(Mrf`irl37lm=)r(=vCeKuH_$NGVEk8ZzT1J<8kn${m3wYq#6g^}0X(BK(9 zX#5a5Qm6HanPpzHb~sj-XS4;BI5!K44>*BHPwj!))D`SOVWO=~#Hd(cJH8 zh7)3k?`wUJ^}P3O96@I*2f@>4(Vt_eO7nIw4{YUvd185l{HJ0Lo_ScI){ETxtThny z@1MVRxokRSb3C7ABsGgPjrin-NWPkvF)Uj-<(ExoY5Dx@r5xI#zY{-VV53sc_CdQaddJYJ z8#idc!ihi}hN3z*iqsc%eh*b+7WEi1h%y=K(YzUM$$vfyTvEG|YAQm(mS|VNl}`Nb z8@-u-4CINo0Y$dFF5R}8P}L_&5t3HK1=nqKJrBN_K0~$dzPpl9!I`WdX8Y9ZY3NP! z0suiU(J03PBa3K)QT*T_|9R%bvtP;IkZcBl{BbA6H>wRc!QO|Q^~o)`A%T14^{j*5 z6UCU=<-xv;+v4@l#SK>vaC_g1H5D8`j!ODy-3Z2sr%7SiX zRaL6S_3Wdk<(ua}AVmzCizOA4-%d?vpw)4`Ee!0#DJ8fZ%0M?I|3n65FE%Cq%Sz}9 zB`jQ(|Ek4*Cd0{Pv#?l$tLVX#FJ@CG`=MtpY&ns+*zz8tnF~A@GR!9oj-~ydN{8wRfFK^6C{t1~sm_2!qF%xz z{NeU?0A7^NpKy$lhe2AlB9|Xq(+T7VeoqWSrpOV?YSnD1^GWB_^v2(%URu-!USg?U zY(=%povEYv(Sw<`3g--!AZj_&yTWww_q4KFSHf3$BoYl>h|*j ztfvDIq{4dP;LA#rXTfhxSkAX2Isd$>ZqsNwq-peVas_Ro@uJ;ORJokO_&-n+4l91pB_vEuJuG6u=fyT;6tOR+ zjWj8$skksN4(V9eMf}y|z5)*zYq3%d-t??QNx@JcXp6H|FNmz7YEmIWtwG$3IgE0R zs~by}JNRdm@r6B47uu?hIxgLPLQplLst1)8A)qi%yA0p0a|Q#?q0rNs9iUH>0fZ`l@C8>|cB4h@aFyAufR?(S}RaVHR58+VuB?hxFa5D4y0 z;|{?sOlO}xGuL&#tUpkz6^$rb)+_CXB9mYlE`;bel`ip%lTk&n_V(JkWx+z_MD+e0a9fB`@ zyS)XAk~0da@Q-~NxkZ5rzE>}iTLSYfyPj)@vlx)~xMOko*|O-R4i)bqrs zY;Jj~22O3@kVT8XR2( zvC#6fTj8OyIVW7sSL7R#*C^=Kqy1&$f>Amh?cj(d&BkDi=-3qY@iq4E^QRa&q0@Du zNtsbHk=nmoXs;qGMoM9274&KC0tPbHq>v$pZ&XihRf?^pME|%C)7AL`28VLRRAQ0G zWTRI2@TIT-(=&z+0Z7E+QIf;=ssj-Vj+DZQzaUHw3J`gXWiV#Wby^a^{MW8M{bhIv zUnatI5hR2I@NRsa%ji|3?Q_!C`4LV2W0(M{-*eVCmUQH#M2HcQ&w+5+Gt|@8IVbOS z0}muR+R^uG`-;nA=uFIs|I%RN$E8M(?*lee5IM~_`*@7(5l~*Lkj{0^g$Xfov}jc7 zjv(rO5}5Q=}Xqsf&KsX(~4LtfIibqV}hekuC8MjWKH>W zU@&~-c|z6B=^WvlvQVK5d+Wr-U6UN98~=dfQ!Ir=%>j9>>=V;&Zk4#W-%K{*4do{P z&GHEr|61MSH4N^$?B$z{=>W&bXaHFPoJqWvL}>1zk{Le7gj7}V38@6trs%u|!xh|c zb(T?Ot}eAKg#t9;c}~|Nv(+B@zN$6=H-laT@VDLcCMpXGRbZqi;nFf!q1fp0t%aca z5w;>|Oa-QKK1a#aP?%Bee2vz&&gkPhI<000THU`SPV8v(c3W$3i24<%(aW#3CMBmN zy+Y>RO~Xm$ox>j{$l|%uAwavE*4k0S1eB`I#ceI2e$l5B$g&{b%2?Oi?-m;Oit6&e zn@$jZ$C?agX68~EFb`sM#}BB}&Vq%M#YY0c-}ITP7o$t8sZovX(|XUdxBR&9KlOeApFz3Fe^x$)d!ma*_C*v0to|o1i8$$&y2bJ zO%qj?j|roI_;Ej(>=-QLmo3UpCRiIYvtxp@j7Vs3g7Q7KQi+Cn(MX#n6COL2cNJw= z7O7ByFg)wR+#b7bV@iA`wEaV#FS9K3tx%3jiW`3b`Ir)I;M1lSEmNiemX^gASf~-# ze(bXQccYC*PAsiTm_bfjr2oySgZfGRr|6W8a^#m{9R^U;Ac^f%hma{z3yP?{Z9*Ic zR&}^L*&G}pn-(9GlE z#5)`Eih51VFunL2fY|C7%3Hr(Zjq)pv7-0zRLpJL4}sqMwbr`Nq8f2H{q&c8avz;y zF>h@_n)f<&kX%Gh59bB7Ix0$%Pvn^{O1*!d$?5Ql^IbM|av&WtJ~PpJ^_qp#+aW8R zuvbh(DU!4QSy176Qmm{LG}5*z?waHnW>Wzho(3+6#0~L$vaBW7SCEql_f$ZE`Aqd= zR3=)RLJ^)x@^XY0L8j*2Rc)sYU1#@VA>uo|jav;;bw+_bgHv9kqac!L>C^D{O>a2K zdxT1O*P(p<_W$%s?I;my)9?WyrgKf>h2M!zwC_;; zQP|gQmEA;?AfV;5by*lk<`fLmOR1I8E$mkeT*QP6Bkk|$#z7t%=B}{0G-)Cd zDW*5R5*|Za^qWH}lw-TQ?Ils|sxI;XHvfgW+^4~u$4oTyG888_4t>X0849g4ncBSI zv~nUDZJHObnBsWz8+yQkL?OoyVFy;R&nFFNRudjI+_tj#D)~DbI6y0E7hn3Aw0C-9 z6gEOlFl6i*?R8DB_UcB|Z))kcHULUI+(FM?`H8%w2wv=p5}_4y|&JK~Krq%>YA z2I0u-ex6>Q|W!gMp#H+8;=wVHYSrR`AY$PjDmVelqe4Qb@71+si33G@V7*~org&iw(Z zJtFI`No@H`Q~CyHMv+iaTzSrijdL!@foSV$o~rXdTiF^=*e8-7#nCtUriFE!Jm*WHqdtZ6 zl7#qR;z@;OLQvxez3TW8mUNH@IPVvX7#F3l4hsR#0oSp{C33Jp;hCX&xKl&6FG3{)tEbgpys6n{l zS+m1>->4N*%!U1)UP4`f6L;SpG%guR-+K3lSH#1a%o{Fh836nIKuagL>+5T^@g>jd zWRn|qj6gp@TiXBfP;U&(IBj}|pzDcXk22J|ANR)Vok(&`x`*qHW45dpke!iiT(ljO zV1uwhsC3Zt6*lQxXHmAlW$E;oRianK;(5vFE$I8X_1v1=_SM^m`y*RKRanic@Ft<* zm5dtL@IA>-gX=+^&5j)~+@N=jd|)^K@18y|2}@FzO6E2yqec(qX`zc_y=%xA{_j-o z9@4x^m+D=7fJ+-3L6Fn_2Hfq*q_Yx_kJF5R>q)45gxPrGm&nE*>*yYQ9vp2}omeqq zB6?pvc@A`5Wj+)}WChj{EjLGRM)>a=h7J30DHsz$POB+!6PV%KX2xN!K3F^qVhbpA zzy0NC)^+nF2zbAzcAQB#&o2-=$kr>A{yk>^o@!Ikj#9BriGEp?lc;d?b@-z?&>B6` zH=Exg)B4FVBvR4W0y%j~&oYX05t!r~gG;#U?Sk+PqZ|%zxLD-hvmx?Q_#~j&4P%G= zZTYK(Qd|WSQKX=>40<(_L&>n-rrhE`Ugdob03he)u~a;Nj>N(FS#PI+Kg|CRBvO1> z@9GEF#V&@rE8U1kMrm+e2M8y{;EuD&sb^NuWJIjs&QV6s+vWDNe@j1X&GMMfd(Pst z!hDUHh;R@pw(wP18^_M_2e6Kbc+T6cf=K&>`EfywwMEaOo-;;Imq`|s>NHzh_$5B+RjJWok$>u zGXmD_A){l#z=~Jv{01=bSs`(Z9>#Z~oomOdra-}E6z2vH(zwRckA=)#6G`;OMoC~p zwl#I!{CH~4sXRFDMX&4tLp z*m@8h5bUPW5$!ZS#pC)t$^|}yV!gHBpeIfDhm_IF@z7Spso2S~+8c7evNtP|d_&$@ z2pXOd?iCc>T$fj@3pZ0QhSB9N!%D@N8|9J%2Y)+MQ0R$Aaymw(#f`I;mVKmgf-)u7 zg%q(kl@rl`jACpQuUtq4jkV!Wa29T>ev{uk-o!<3JRv2P)M?w*L`jf98+G-~_bN6lwMw4E3+QoaF{NbPg<51$y4j1T(r( zoEx&-v+wi&rFJH-x1!UHwqG3jd*536omu`R=4Y~nu|U6*Jdt}aZTI8=i)}z_X63+E zc!-Vz-pI0{s8f0FnH`ZXrS$zEe>?JrN@@e0U%o#o&UwGUub$eXYV?rvF&q<5+W`=kdP$9>0ONVgg`_~`X(-&^rsMFdv14m>Nf_!_VZt~s z{%Mpxyg*dxm3_>NLfte6y%SmDBAil7 z!!qF_wL1Wp=)LZe& z-dT=(f(8p5ZdX&DRDnztfGIRZ>32*c7)A;qj?7b~WFK@nwxIbKT^E4}EOc6JmcMb) zcIb`RmN%x(&ZRqQ}JA}H$xEgamR4>ZbTzDY`9G7EViXlYaMaTItuagdJ0D}F`~dlWNssH^h93;9paA1X|pxm7;MRn zcte+Z>l?81dJAar)`rGhdY_3K#yGr<+30Vqp0_l+{z~7^^0_q7+C&Kos%2kZN?dDM zZz2IZ!#MRasIBQ?ETk$x(iMyv6{Hg+y9t>pQ>I z&|}Eyu2qIwyYZcMX!KYLBxYd_A)K!$s)acF_d`7qwDG}+BP~=r7JUV^IJI}=$kFvHm1bm!OrjKZ-bv_Wka==xk# zCgEEhwOObuzN^sl33rD)YYBC;lHBT28elFGSQ- zjPFaM?Dz?)A*6ZPxE1?J38!~6@9u!T4oZ{hv_cc)EillIUoQTeFU!`vIRjlCj1gdK zFX6h&DqGOx%OHvjH1=bEu2W1)t^e(q&dpHg0F54rPv|zGlf@WUwY^~h7<_Hd`m7Vy zX|7D^6$zmSLhdKv-=r>ThuCQ`Yki8gWnh1%nS3p4fz|laEYwOgyibrY4#zaE;hL0e zxvJ%wtfo{;X|0ZfEvU_NS3By-N;ly0 z9ny^zjOd-R8_R7wlCv*cf~_yb71@H1vuKP;xjK+ZIvC}J`{!D6a{)OwKZ3WHa%+xG z&Gp<)4|mfDJ&xA7OkPR(R$6&z`mRSf)?34@tKZM7tZLn%AeKf`>|3bve6vib@ahT1 zwYz6(iEdHtMjJATT=J$CvHA;Pk{Quhnhs33Nd<8FLf{mTLs*KO9p8KlYZwt@IgYTi z#pI8;{HUJZ=qpU(F^2Vs(D{=R-|A?8qk7eA8l!7vj5=61hZ%@vW9>z;N-QZ>Bb|yz zps@?g8{brPxK#q49n=oA}P@Guf@7D%T|B;uik?lEh}T_JPq^+PeEll~26B%d%Ll+HZ!cLT$q=+q|2&!lach z#&h;fd5&7CqXsXtv71~fhC=QUw{OL#QaGB9_GW*J&e4sxEIDMM^h*>9+q{StC>`vZ zxHUIJRqt@aX*Vboy0-`AN*lHd67^1+@kx)ya)vQb*3z*#QlI*FnU2!YM2S5-Fs??* zpK*YNuPJ74x?hazjRDFE!f}g zSbHkTs@j1j(&zkN@pgn84>FzrK_=uJc5yAL7b!U0XgK)h;j%eQ9&|YMd5WZwkYGvy z5l%WBy#A75n4??C*)wL*T5*pLf4)q?uJ2d$%g+$MwUZO&Quy{E3))M(b}C2aDn0@T zUr#6ckt{tC$`F6!2z*7|zjnVk8_Y4)H{Ak@wy?-RTp~gvnQSnm)+3y$nD`Xh_lVee z&J@;`7Zn*SO=;PYDE|cblC8=ylEczMpgkMToNReYmV;9zEj|CM6p+#ie<^-z^E12ORsfc~#vs0dW&D;45P3G6tu)zuB;d&ZhMy4u>zm?E_p zi#c*6=EUb#XB`}e`4OE&cJUlKT|za0(<8Pbmkrwv#H3L}gk59{qw}#nW8NB){aO;% zn0?=_%#G{Mi8f^`QiiTL3Go7~t20Zu&&JN^s2JW`!zm;D2#1SxF zUx@3@7H~3lneJ@r_B8vlEl7cqM|6BW-tf0Wioj4J1=Dbi(4VomQbtS}tCnMq1$DMr z1gO=*jHUTFv-B4Kf9*ca_ZMmT*SX`1{G&K2&CJ$6LvR$M`iwi#zgw-iD&>ezOU~~q zr(YSGzm`vJp*Y%DO*OGxKRsnfU&(c;w1J`5#*>DwIUwHBOOTyBy0c$wR0AwXROTxy zyX$z5$m3jHs7KOSDQVBjgYl>{y@%o7f$c}w=drkn1L%Ihq$j6QF5*i1#Pz%s0mB48 zVmV^&ar1J7xxh>3vfi5Y>%(SQnj$%!V~otEh9$u8vxQ|#iN-{0>B4JXn;8P2#g#|F zD1AMO_pB{9Md4IA$ueH`As=381J>Qn>6-+<6i#1##@JL|nU8!LD6_+sOi8912Ehqq zS2-#T`n_sc`88%@C}ps9q|oHq+h)`bYon;`k!*>!7rr-s)i}g9Qei$!gUDCtXeW+A z^^4dsrMHi_`ldL>#dmZ~#9eRflmhf4u_ms`(*2bwR;p|iD(znsUy^mZWaFzUIHyMZ z1YIUHLM~eW=9SyD1_Q3@&&ED~9YM?~pZQvg=A+aY@xG|16RSZxFsN`Pj{%)3X(V{| zg^7CACg!$$R{A)42wBkx*Ja=or4gIO^qAUj@n*Y z$QdXGPLOKw>F_dSNyYLI@Okjs4L$RbeiR`@gGg8lMExn^A!WENZTm5_k2E)@(?@j$ zX~Gope#@P6CT98FfhrjuR;3fh|H&wuMJFJnJwj);mNM26m7PQ7n@Hjm`kJO~oYi>W&(xH6Se`NRI3xj@CB59l{-7rc%DeNz zFBQn+jqQJFn5Fc(**5$%Orj}J2+G2T66T*NH+!snM?O8&R3@8mw5G1yQV@nwczT%N z(T%ZDy3Pc3A!aMGX|md=WFK0|d{btOm8YEI&zxpoW0$efigy|T3Y4f)f15CeX#z&* zgjC^UDRo3DY8`jh2IBq9E_C0%?jXf3bQMhP^(H$}4WV>9$t0P7v(ArHBo~s6k{k1Kn3fTWuc_cxw(>8v1x&su#D*&;JBIyVN!^Z{AxCAC zwut%u{sHb|4p?NF(71a+8LvMu==tgg*uEj{>+SdvYUC-U{quTw#ViOK0ue0Nixz+d zxmsDuJSF*a#q5&zMml9-fJlVbV#Dz2GYPjpJc zUl3GOJa#cVvM&N+ho&#-OJ{9b&07oJ2zJ*bFloj<{ORQCpaCQ8vDndJQnQC;4ppL5dCQD8%g`Wz~VLo^xg1P21D#G@OA9(Mmj{ap0j~NkKtzh<0-T3wbJ>2-4bJCXwX{g=4EK7;5Vzra7U6aq!)v zBF*R`VLCy(cZF%N>RR?fHP=1?Qb05drI1IHZ|=UMr3tQc-z>8sF7pWeu_RF53GDM# z+{TSoE4YIPa9Ju3oH0770YlH2rLFly`cd%aJ$tUPx1}AngJgE7r1xrYoZy!Ji-y&s zYdChfHC}!U6?T)slU?mG*YbMi8vAFLYCiTZWV)N$X(6(Du8ijM=;2HkOq3$vEIn0) z8Vv(g2vZCkt&8jXZNUF2-fYqz2_Hv+hUi`_DP|gyPe{EN>%Cn*nk5F&RRorKM}O)0 zc)>jp08zjE=&Q)?WUIzcPI_-vNB6H^)X3pa~%By=TvJ{lKdn$Z$L1p{ygMoK@oFX8E^o>EhX zm;^I6K<9H?l9}$Yk8?y!!2}t?THV`bJwmug!-IN^QdrfKNBA7ykF73X)zLH&+rRG@ zPTuj#Hpz`2FwLShDBSXMSusj-U`s(84?iA|>6YE%3-2zY`>u+96)To}^n@FCOLHBB9Nr`$x^pR=)Fd`ql8|BgOKS4Fmv0fFcjLwuUIx!JOEfTCX;=qfJiht%-LiA2CuZ zSZ4A%#&8I~6Tsgdx{80z=mLApHc|q+(%vAK;1BPB@$ZUM-grg6fO0sO29x~LeSBXZ z?f$9>IIkh5lf&IqH6q+4&Tr5`maB1WPN8OCUMpup$u6SXLntM-<*+Q5H`pmAGUf%O!ZGA1;Z0*6uFz7l6 z3Q$fe&!G*zHFS#L00Yw=$=+nh6CYn6Iewd8HtslpIMVvj!1a!XP&VK$!fI*PMHdMD zn22-&v2&ocuEEhhKn>!Tn00`a+OEbj-f1$Vh*p#v_yerh-Y!ZgFG8q+TK&eM8I)1?SUKKoP{&!{BUwHU9xoO5Lf~85-)Si~)81X;0Q7F3dwHf_*!Gfn?rmC5 znPtoU`!m2xJ|DudxZp5)9qZ@5!A=&web?#;(JgFue}byExJ_RBA-MyRwjzi~Aq|-$ zZn1NfGLlDLLLC(flP)UHgIIba2C?wJC~1X&a2adophu7w`G z`o`v0yjNF+ppn~wpXlkRDUAwa;dHnaXdU<&+#F!}#u}5zj%AD!WSw01l1wP|;I)IB zp@%o`;O?x2pHw|PbOsfa8xU1My?At5vKi5HDH4wzT$vfnsE_|(AxlzgOi-iN)PM&Q z-GuWU3^VK^1Rki$vjlejS75mvJ;Y?KsJ|A1*9D5IxBX+!ja;_d6LJ5-aH)w431^&b zp1DY$lFBQ!>+RjAd!-IxkDR-nlyvsr?GMBckWXv`kq?%$fX|@KOlLx`O$)OHOXJ zNv`zZN4@{Z|3-9dm(BCXg{g6ZTc3i1=M$veQ7B8H6o z-65HPzE*qdKllv2n;YvKiw>ap#z4ke42D2I^~lm8aWgh9F8y@(gx28&Qq*?`zIsssVrOE4}GGZ249!l~#2HFcmSwf9CMM z#DTJ|SBJ!RIaXWxn^>MoDE!z}b=qo%)K9l0uh^zD2)fvXqZ&p3AO?8dcU@rJ>@1@% z4e)o$WF2=bKc^k32*XMsJkC z$h)webX0BC>j6-!HPfBbC}G4qD_uZd>$jX{b0j+)4QF|v8g7yq=3#k>W9$A_Y_U3@ z55RD*eWxJsTo|AHxZ%C2I$-rDH*cEoQDQGmCIa1SD&?3#jSIUe?cgv!t2($0Iij#r zJ|U~NQm=etXG*aaZ7!cNsoIhYrW?TjNAqNWmr><#55 zu!mjDVj%=MM5CGiBJh-5|BS%oM6uWnI4ZMi3Pk4VtSYb?g0PqyHlFE3XN^Unu6Xs9 zXdj^zqZ&$?XMWI)3aIp7!H|y)L->Lde2ze_)3*1cVXe~C* zCI!eNxI%zX)X5G;G)_j_bPDVZ8y0*z#;Ky-C*^9Yc>Wr$Q48p-ez+7gJ()3`pWI67 z7f}6s#1U}^$7OmuRo+JuT&c~wVFDI$e`M3pu+Iw_T(eJe+($MRw2&Gn3)7O!HrPrX zlgu(Gvfqjz*yhEz$Cm5% z=2q(~j5j1*YH~wV74Cj-XsInJrNbQ6__QAWJhn0f(@R>(4(@*+HhmRcl+~H#zz1|B z$UAf5j93-SNU{;91@4Oh$;<+7Oj_z_rhVy0ZL;#8hRb)(`Yv;#aNs5^U8YvCons`T zM25=Cd0o=B$h-hyOd}<_Sx*Mb(%;s;XoB)>U|-{Z;;(yQBJSZ=w1sg&FKrQl!V8&B zlw-AbK@Zr7%)j`y`!FS#IlPKxNQW4MZ2nY>LYhLe6>{iOiMY8Lpf=Vjg6ZoIieX>C z`k~|%gOZV1NNP7!Idh%{espE5$0!WVa*{yElSl;r);PbIPmz*(bO#Du_X8&NlDaFEA0koj0S|<#xlhcnM$khaDg) z+4V${npu+&;rY@z}dk#IVoC$S&79PsrnZ%KX#ch{u zfM9F9>PWAXOz=bGzrD|28yxvqIQyUqaLW_s7Jq-5bicY*c+ODZ=yLR?4f!4{5z-)s zBeUT*c&6zJW!uO#3eCzf62_*j1y^fcQYCT4eG~lMKs%d2aeHfV%i>M92=mo(q^?f5 zK`0p5Hw@c8FL|#+^xK|>vuuQe67q!a4s!l`=v*J}1p*YVwa^$F)v3D7<~?A9q->5M zU+o3@Q6od;=^c+tSv~?0$G%t|QS@dL28HwoU`AE=_G^dH`7tQLB@T((! z0Xrip*C}>{L{05dcajF!rb)lx2Jyx-A&c0P<8aP!=4LdaLe3H!F7>2+#5pf=nJ_)m zJHYIUHO{M4{^c!s@MnE&9|bp3LfYUHgw3nsA<{sm3Vo1SLr<5^!q=+JIqUl$@y~y5 zBGcAGUPG1m%9v7B#4%09IgE3L*@c%%YH#m zF<+-^=3#8d+hnBqDb)$Eo3DW!JbL3HLBpk725g&+lds+ASy-S2DpWgUlb0|wH4-vX zRLEKLg?KOgXV}ulff-`@Nu<=BfEFo=^Y@fh|A~jdKwH3>m-Y^)DsPL%M9>ke% z-g@V^>sHFX?%%Cnql!_S>q7;*Pm9AVB6*hIrEOr&ZT5dtDPp604!_oB_XX|V6o1N% zbjP0j?*PVEaR+#0mOUL2o^l-!dVj)$OD<-!0nH}+=4i=MSr~o2o0_y?XR}xUFX9Qe z1VCv?!mzD4qC#S23_p;5^3DGcVxwRD7&1cF}tMby$IcLJ>K7Rw#droFHOZ>vyDBbSZ*1E*hgwK=Jorb*b89^tOAHvn_Q*+peFD)K34- z1lbol=1_cT#lM`_blu44WE=L6rT#6r6v*U6e0Tt1cln&Zo`d>Ve%R>s#PJTcPI)Spw(r{t?rBnwVSHk~q0XsC+}cJp;G*R!xJ z32R3Xi1EOnKibamP8(@yCNs&h=7a`qKl{`SWU>X;B45}!+VqCuK-|!;Tt8}sU%{!z zV-2to%Y#o1I^3+-mbN|PyrMpz4K}=>lUKBu{;|Q@@sJVJVtTe?bD&`+uo!L_okHeg zRJEvn--;3)bCw|xnq`yty|#S_Fp%pi=;QRKC1r-9?jkv4w4QjZ zAqlmPdBO=y4^|)J)-%ga@d?Lxk*hx-l7eHbuhjmfvNJ>x80Kd?4@6ROLcC93EFu8q!QYx*aoUoVa6$52-!u{w z_3b!+OHXqK`@w48A$@W=ksQ*}!O2meWUeaAsS?&E1mPeyu*SSg#A0H6pbfM2?`LvJ z<%BgW&a`M~$V+WbbKBYb+E|y=!*z^(LaeV4knA1(I|I(dVduN002mJDZFcjpKkd-;t$dR%zeX={Z~y3>w! zKmKE-nDqS(x`#>0V<8`4x=;)~D@SzL@#EqAtS}u=cOx6{0Z>bd-1@BtsyAUX_sHD% z)nt^dI_+egEeK-uD5?eCLcHg(lu?Zu98n#X;xxmyVyj<^H7ck?l6yg^66d>1V!3;i ziASA3+4~B6JkRnBxNc9Bwxq%^(0NG@ZFtLoZ2lhNtjlMb{+gFi&M1R%=45nf!mq6o zqY-Vv>cb50gD6M8cvD(0q$7zpi?)2P4L1T`eS&cV?FyqK4t$cZrK^~AUF3iJ1*p~C zu&NSfh@h;-0?;+UipTeClq0_?P?D@_J1e7Ox92<-0cvfQ*0OKm{*{WZdzhn{(5<2?sp71kkKH~>(hk7wEv0G3 zOaev36T=NdwDzjMl~1@901+WdT?fSwdEFibq5ii&*xFZQ^Ygw>34fQi3+G5POSSyY z+TIQLaE+<7Rkb-sg)*E$?cY6(cYXXr&h7{Q?!ChZXI_r63Qx%-ssh`BbC!iFw!Zm1 zbcr(2^vmcB*;qKRcdHm_%&KX&{<)|W@uxu;ic*@-Jv6T1qw?M-1Zl!}JNS8%CrjRh z)NUjK=1jdtG_VvQ$5t(-Tm8)j?O=k0-qay1nTPd%(o$Pt4i-IE1~ZGFuXq8f_Db%TKe`Xq#8>9} zY`=m%C6Ut_L+78(bzh}LtfUI%|EL*j!xxjH8vKIOSB9G5uW1Uyq0KN-d~Y4(;^K*b z*%k@!=g$nopP%W>gwvcDQel#2@oyJJ8zcF9gPyPS!v=I-5SQn2VhL#3TbWT{c+2NU z21&po&I`eYZCREv-Vum#*<}+UV33HIF{PM?>%5#U!}}r;yNVmi;)OrA)|pq)o(Sb9 zDI#g;XJwWlA3g^Q4QparAQy=(L6DrY`Lmp(!8k2zJj6d90!NfD-x0m@wJ9FRu$LCq za>M+DRGmJoq?yygU;S3~@+|F|!5TB55G){?9)OP|PM z;K?6t2()zTG&JwOGp4xo3cLfnQD_qqFpH~oJk#WpGlpEb_s7rzg~SJ1YoCVC@xljphBk&oh6qE^ zj8pmldkvX4ABUeu-XH z*p_p)+Z}`(llTM$HmX=^4ork)fS*;6t!V#rjo# zY7Q&Jb|9R~Cr^sJM=){cZ=@m(92husj9q40pl6ZVT1Nl%=yNc_)DR_R!WeCmqhSn9 zQ^@63OZW!&EVC?Y+AqOggWSw^_z ziIr@ck(wr&oB(km{N^W*mfeT?)+l<{RawzffbLl`&jL9V*BWv7Oas25-i|%v%}RCL zb8a}fJ^wFTb%h|3#29J^8atx9a<>QZYB}{uVOww+mn3(;xY^!ZkANv|>Avwhls)fP z8M!0`OO;#OkDNq(^%wTg29vD|Gb?{ms434G&TA3=9}h68+Px&fhLC`4@pO9_pW4mxSI;q$C6h} zzdaBdGW!Ms_bVx8m0AoO>`(BKO056IasaH~pA=Ks5(QGk>#d=CpJ3|_osatEH=XjM zoxMx~*yTo}Y4wEv4ii2Kx8KoX78wc)K^(ENr3ZaET+h$>oYh+<3Utxbbly z!s%!b(crun61MV>{bf-7k9dzTY;$>$sGb2Y3;c5Xi98Nlay0|QC$&h0$D~2I_7{0=DNs)ZNoy`Sjtm?T|7jco@{TY?YjJ%w^DLQIM;xRf2YDxM1qVS^m8AIfBE zBJH$T(qLUQR|Q#ZD+&PCyrvoUH*~$<4J+2z_!3aIFd=T;L+KW{%oQjyf_TlT|B5bW z8dS9OswMrSkCPaTyepP5wtjuWkR}Es_5-+17|wy%9#kHp_n9oi5u)C;#mk;YMww5h zThmXR3xi)9mc?V%8eedoN*W_HDv!&RLiF!`&+81;!CPLUNH37yfP3Emc52lxhlLBi|Odef13}Gm(md>Y{2U zuvt`{Uv4SkEj%EjAfX7~!XMe$&OTm((Gr(&s5JK;(XRZb>cH{PIitVrcX*-KzZ~h{ z`dj9Y-#s$~@QVIL^HkFm(e#$bRCQ#t<_u=}0A->@Dd@yKFmBUf8^eSq{QUvLAyin& z$vm6hRriJOdhDZN0k+1>r33M|ms+~oBglr5mPjg6-{Cl9Zm0+_#7?u^y4mP^<08;k zGH86A{Ur)=Y-i~JMwQp(1*~2qzR`!*hZ?@?5aF@|Eg%#F2{4BkCRt3BS zGbu*Nm*sA)6JDY>x*y39np(MUjCgId`-s_IF`w&PN)E72KaYa!=G*1)itm*_O7GvZ zzNlzsh$bz8UCD1`yBI(9pVYf>)$*M6DB)vwTT+^LrejL*H&y5%^7~*Q$$D!E>c^JP z=bK(1rmyvGUv5~9#voJ0#C>KPL>y_af9F{biIZIn?bjcDNgDwIheAqg+*(vze?fgd zPn>kasmU7HFs6^2VQ>Ta7W*Rq0yXMg+xB)4mrYJqW?$PLBy|d90mEkUX_09HMc)8( z!gCZof8+2nO6A%+fU*8V8_9^55jx$e;{T!Qt>dDOo2bzxq`RfNrKG#NyCs!wknZk~ zkOpDtZloIl>0V+%x*GxU{(PS2eeb>h?BDy@*_rRmnKS2{x&23ihI-u4Qwtxh(FPDY z2pt&+#~}Cn?T1*x-|bXJ=y+fhOn z1)C{)-$#}fUe(EntJg-~Z+AV#O+F2rSL#yq<)xan6ozh|tTVyE40f^ho{H#3v%sgo zd|=D$Q zIf#c-H>H6uDU_mwP@Wt0U?alWTGyukr$!QsFCe(;xB#eO8<7*Jkq;z4;k0;Czg)w+ zHYJ9xR9Y5ei2+-ly@`iylHMyL(0~!XWl~)({0W8D#-JXqWm~dk8~s+0(Iak9IBlO- zZGN5;LLRozlp;hyKK?A)G6XqrZ=|KEn*6Om*AaUE<7BJL_LEJ??-%*e&2Pq{~Iz9t2oDw@L9&j&CnV`S$VMP`^{C`>~6P*rLKd0!YJ zp(*V`*QmOM?3b1dm#c)I=6S12boXxQ)E5EmiF>VFpP@L|{mNJsb141NSZ_R3LbIAh zJWxqZ-)@;!tlOHwqD||}L$cis0=ej-pDJ>V{LD!ncFh^B>4ZDmi2l=nQpQ;}vb-i( z9uB7!BD$o7br84GtVkra+ZIM=BTVNL4U$B@XI=i;=HXS0fqf$<(r~o98Pnhm1 zsIkS8o854Fvfz=XH#3&FIg^vqOtGV1r-%&upvCsgov7@s%6s)q%Cc{7P#BNTz_O(~ za>Ha&SbmI&LyF|98KqgMHt-@}5lXlbLBJO0_BeOjyghu@+>N_IUNDy{HKVqp;6bC! z+9{67S12m&^1Co+AV8v&qTDg|UMGAlJ`Vhse7|>ndL!K5HlPDC148-HTXU|f@f>F2 zDp6b72HSIpDH&4s0l8zww(N+%^y$Ej)CSpXU@i@VuWVo(@kX=I_$`-Ox%7c$r1=H< z&RvO20Oal9*n+GbeubD$H$=(gXO5-Qzzg?jPCA0a55;+7HTkBt2L|Ewm?NQy3IjTD zX4fpQ!&U*0IVvE~g}~E3uPmbOJNo2)Dvx)&ezg7941b6#Qq6`xIK`&gitZt1K*}xn z|6om$wa@q|3$d?Hz<0I}IFsCy&(}TjgvL;!9A?9FHUKB!AijT}I->>4Wy|%#-4*HZ znbE&EN(WBTg>UM41UmIAP3*>?(Agx0j4#g-1AOBfAI58af)TFP5hg6Qno0Y)3oyh)Z+JL9{N0}q z>&YQ&AJ3Th20>VXu^m(&=a^iF4hl0y)kOS3>pH0O%!KtQHn^W!)Wm|_^EUj25q&bn ziP|PO;CNO3&|2fKN@S2D9y1&l_wLohz(|92Jy+LBa2ykbmI zIk6_)ur+>VP5QI&VIxTV{e+tlp+1`$BoY}!dHZpQoIq>kv$PaI!3cG6El3%t}^)a;l^f34s3vdmxe_kGr9!J zt>+rCwZz?pV^KGj1&@00j_kKI)4vq_d=`^y7jPNP%6VViJuH7c@r-VUskv6iQxp;hO?cAceD{ikrOxcBLfMVh=b2~>h4T2;z1N} zrru{~UZ{V6Qv8(yVMUz|lVp%hG!B;jl6~kC|6)475=SjkG1-gT-Qd+Y%wQI_2N)P( z=4>J4+1=#kmgC~j$sqYo^P0%!?mgi-IlUK>s^AAyHrXPJ(D0Ipn{=pIHuws$3b{J~**v|3l z5-ui+Cu$L&6VCZ-e?~obgoH5qg*euS| z$ESOpV|JcQYs}Nf3D9PaVeZjgLH3F=O#6;fEZDbB?0os(V(+Dr-EX{DV}5%?c5pWH znh(|J3~`9I69u}{ac8o`x~xah`n%R(8^Z##1mU+=h58oIlnfO&YveIPrA)T2M3*RH zctD;KLIrHJ+&YoNMk`I@P}Z6e+ONC8oO5`I)BeG`BMn_m6x^3JD4fmy{?|#);z!(L zhr4~K>>;FwD80eu;IhL5n}wqIm-7?qwss@Cb_;xL*;I6j8}05G0tb?OZ2LTqg4L`K`~?~$2-^5dxy56tTE{VZrmC3PS=?q<~1{<7tbDKrs@BHEOl5<97|}c z|BT-1IUKW!DIeN#t3iXlg*R!JjgaCH?Oe^u@UiT}Jys%Z)be{I1x_#j4Q+&^gQCwi z){!Gfl4(6f=}3n7t+7T9H#*}SvoGzQhoH1Sr+bpJ%C$Q)5KC|JZcZ3n8ueaa=DauV z9$va5HuYI6ymZWvx&r)}qZJ;0v#Y?T>+>b&E59-XJ&0i*hXLLRORsJ&WRFuX|IZgDIuBjQe; zwD9{8hWSj;lKgh_0OiK^2WDp43fiatO#`^XrlNJD`8}J?{)~+vmK0>h7K!s&Y^39l zM8Tp}McyfqE&c^7A*cAf5`62OeU&0zhly$EJcN7&W~ruZ3&V10@ZZF6H>=#si{rK# zqYe4Fnz_c~)Sh^N^N-kGNVEG_p>h+SKOcGNu3eN-=jcn)*zwrf;kj$N^B!8XCj zn>!VBk{x0i*<0ecm?%Fuc;I;y3*S6*qTuH4F7%$amQcLhERVKdI>S^zc zj66^EKX62Jsk1!v3An2l|FlP(?g8Corp*D zsG!`C)`#pC8Ul{C%L%}rVc1#LCT)h6D0+Vnfoab&+LP`BUH!(@%&Zri`lJ=7;)bxE zvs^+e`6UeC#VORzmj%c}!L-Nx`;6pOD>TPnK(7j2n|ru`)46hvH9`=8Mj+ZBW;>tqrykQN#Ea1E$jBSD z@!>k}7exKD)9#>neSb}xDz$PVWcSDLC+A1=QLWV@`dM7XZjEl#srPbVTgq*qC;xQ8 zz|wKH4`v3qIM_PzLsRNjjsa{i;n(3=0oypxz>GG+cWJBG-p ztzQjKF4uq^_Hugt&(zMLx8t-4)X~@-1JAP4CA#n$;}MJX-62n3qbDYUJaHia_rs$o zU(l*TI*(LJZ2bGF&IkH_S|fyRgBF{ttaVSbg4(VKbwG%R(jYusPcby2mw*)^ykv1L z`*uV7havT($f&fvD#uAP1`wx!j{nA~ohIP`@Xno}v2C)3BbO)~9P4-sb|)Q4!f5v! zzL-vimx505yFd+Vj6ac-+v}CD|02D=tWCYYGR1~EMTE0_ht{?Ydzv#Ny5?)q<+Em# zrd$&nVk9hdd#L6$JtcD37Wc$~g9SykJruM@8esRu_09Y#vF2Ok z{^P9XaF}x}wfhWUK6|{(@0DooNr`VHqr=C*2sc+v2nH@>urK#j-v%zAEpl%YFd=7b z&8!K2UR^_Sa&ZV6IR={)xQ0D0&*B zm+a(9_A@6V>N+iFtG^xZO4kr8VPJs{bk zJkxi9ELDbv<<5^=5&yZy0bV6T$NzQrefd*bhQp@r=4>ro72EZMqCu_*r5bkX_Wx9` zyZu)+crlD9_~f)RBogED2J6X=Uq_N&qec3pHH!2#LaWzWTY|i0pwvX*NqJkt#ltIetb|F#{h(xUN^)Zq*{QB<8((85U~_`C6X6EzN`MkPko%-q7f0C zo(FmzHmMB5*k?eU|F?c|3_GDUg<}A=DGVEOdF;AATau2AF%NBn)*(~(qQya&=_rgA zU`q0no%yQ|8T%1;9BbxiSKy8yYS0Zs2=dp$0Rexz%s|wwNG9W5y$pZs!MK6&8X33) zZ_RM31+}L|6_?#j7ti?G5ZJzbE zR-Q32{D-28>%0QR6*d+GexaHHG=_N~?XICuO(K0n;M8u#g1$lQ_hZkVh92GW!uz{Q z>98lT@q=8odXN35`On+(IHp~}^L@MXmusoU`Gd6DPOq48e~%T}&k93~30%@Q8sT@@ zS`KXqU1vrOCq@4Y+nb6)4<{7oaj>I(e-`zBfJX%+`cTF~dz_(?v)TG~CQ}i;cddUC zWR2GdkBnSMN{_$Sz#3wr*Re98pz{0-?GDEhnDbT!#>K#Exu6o8P$WiXfP66G7O=yI zjuX*qkT{f(b}mKNir#uWo?)Ss{6L2JcYN!QpY|iC)Z6(WhP9aF-984@>&8F7fe6Na zB<(fbW2j&bpwrXsIoFvbk=m1e81v3Lg@W^kR>*%Dj%zA$B5Y8qA zXnO?yYTPDdj?PL=yWsxz$g7jSkhrk;_zj_hJt2=c31>d*k)$Ku#2onwRfak~i0Z1h zhU`pQ2o2P&K;J&zk4Hg$YmsHQPVivQRn#nDz39R8 z74=`{={S|2^Wc@-%QdQ$O%fdr|A&k$f`(h!d#abqYBy(fa3)niX}R$8M1IfI4JYpQ z_3X&t5D~M1#hGaQ2ZlA8cul37IuR*;A7s~c4Ii<_6K@F6->(w$)()i(H-3@$cP)e3 zrvj+^qN?Y3=;KyFP~-0q(y;D(HA9yvu4k)xK$TfKNfKP^^7vtK|_(l@`AOk`B z+u5^(j~ z=s3H@`y5!eT?+*hHVNl_U6n zmr%(PA@PO8W3h}=Y4sCcDxo9~`>9R~!Xd1VMeO;E4m%(-1Gc-CT5LN#sr85)Kj;W- zA6t{|+sF`G(T0xhEJEBbS&G4C(2v(6Yntmwv+9KWm+Lz1$a6G+I8cb$oT6A}BJk*y z#)&KpT({pgAf9Id^Od;Qc}yFdo_^e{fG-Yf>-aqt-RMd~yO@7}g93*$s3{Cy4mWP+(Wtwl_&s`|Nl=Y9@BPA;v;m~l+rgF zgDf-&(LZbn(kAYrX`0ij5nYqdsmR(bWs71ap!w{at!#w)eol%gTOS2Nt}Xbd7*fe} zUUDqf`<~N<7qw53uf1Lr<>SrWZadoLEKa9ih5pJh!-9g3ZVU74mHnR%VWVd7PdLuw z4BU{8Nh!L+f9cstheyijs8RSi#ox7Sb3%O7@CNz&ShKdpD+#@RWqOzMXYOZe)@TpA zYv>gkQ>>`+k%b~EGIff6eCYUt zRr(B89;zdtVzIK7&HkiFm(NyVob2K1(RIkw88<+0D10Hpx*XTO+emUjjz>s%K%#Zq zXN)ctGvJ>+EfY#TA@C2aVua5kZKBBK2*SVm2?M%C^o;E&igtn1i=X6YMh2%u!g~&W zqeIq1PtJ3WIRG3#PVko(@s?Kez3kqIJsA^aKsL$$XqS>=;Y!_(-frfcR4#>o=Pk74vmSE#+=URvLg>8&FT-a&%WQ}_+FdLT$Iu_UoP(VrkZ!`QIs0EmW|xe|I!DOyjCr*4v$UQ z!e9@%?djaOG0Evs5$Yz9&IJU`Y`wN)z2>7*avK>+FOX9NUFBC~Jy8^|^KP)pLvYGg zwFQ)-xsDw+LK;Cazr0fl-v;HmiB_#}9Ge`N@5mOJlQkSiH@^dca=*nibg%4j*3io1 zD)<>A)-Xs@lZn`a7TOyZG=&*F=_Z-KDt>(p@cZzBgi&_Nco50u?;GJe-J>2F!5c@9 zz%2kKKPr~Q)8!AQK3Z?pV=}(cBgf2?Gem_DXfsK0WP{&}u}2oPXuF)tI9&FtaN4H7 zuauc4XQ}b z3m2VBBUf%Nu|%^U7e%5usVmMIJrAf;KY{fU$&!iyv4pF(8klH|e>j!Z0rRBUF;xmn5NVwAPf5|W21CE$!Z~yqowLIJ?*b|pH+f@kezuZwaC%UG zeH%Bjg@xaWA;@X&-bNqqIMTXsP;r%eWxev0HCX+-c_qlZxdS}|tMSl# zC3#6felsdSIrd~uZp4{IbzX;D?$~W?F7=Z_e9cLV{iM*2W?1zJvNYqgl((D41_w%d z2)XM-U)r7qka!)K5dd?LOj&t>=;gBD)l!=~dQ|FnAyj$iT*C~gjg+GU3a_Xpih;wH zTrWK-zD`M&$r(rmHi~Kr=hCxqtaSb1XCrj)8b`S)nxZdSacsGQIW? zY9K#;0kiNig%!Zw0b3m2*j;4@eVWO!*X`U(up%lB*K2&)??-~EM?PX@r%(g$ zWCUSaY80AIuGWY<>4;8TI^tvalkuP1DT>G{p|%HNU0>fjWpFE7mvF@L8N5+g$5)~e z(lbW@oR{m@7=!L|qC7je*S1(;sZl)F(yr6oSm!Z@czmTM*Y57K8jX@O*2_7Yx#mdf z2p5N;6NE114!NIISLHy}@^1kwAAiNL(njXTG0~$&i=npNp|>>{VLN7I-f>D<}f!xDyIJ_;6f9_Ss)s@ zn!yk}^RtJ+RcMb^zm%>Qo!FC%qLV|{U$TpHuVjYCT7HnS6clR1E}C}|>*#Lw5-^6J zT$-`7iG)lZvR-vyzMiNMEjU&K_oBt;O`0c#>4i5p-kNb^H|GvF+KiRXXeC08y8fbr zHY4Y9cS{uapYgjFb6OS|OB-pQTyjSr^1=d{ZWJ)T;LgzyF3?ZE;8$#8~!08h8`dOwG zq5)oV9f~6?PoO1K&c5gpcvD`idsRB1yfZVKi)7jMU4&Ca^-~zK7y%4+#Gj$^j)Rr| zJ!*U-cn{$u7H-Q8SyyLSg`JSr(`;1WrkExy(&kMiMR?$1L{UUBpv`hJ31;qQsu)F|uIYWYtYGv{O?4 zIrvg4!=SG61i9_of>#eMx*HaVhw7C2We}v+6yFB>3&w|mP7J~3ZIB4CdYTL)>c#+ z_}*FGc(}<>_lcc^zEdV5xPtJkOBSksL8x66-c z0~MVL<~h{&jS)`kB`!7J_`6^d)jmy8Ta~iX!P7uwW217NXU>FXvW@&K=rQLPwRPi% zZUAz)FAQc62OpV0q)!F2Gm4T4Ff;ECDu(_e(<$E|@27daFO~zTu%N*By-7y=99t3G zsYO5c1f!goj=o`(W`=_Sf(Y+UeDY`tT^sYDQVh_iqZ87lnjE0TPz;4B_cY8v{rP8} zOb%fqf>MGT0;d(6PKC!Oc}C7+h#Zw{vOXFw>#^R&?z?3q0M*9|{WnxtV>#+A?C)!1i8aW#}h`V9*=j9;{qRFvBdn|0E#EjxZe9(lK* zz;Z5NX;-{~;g@3=g9yc@BzEs$Yk$zw!|O%M{3x2&`!#XHrXUH0K!w)PBDqoch^0Qq zZ*uhBNm5MTj}ncw$dVr3d`IKUkLKR?{DniL5D%zjeZf6pJY#f>lkeo%lKw9Iu^)aq z!4yV=2DzI%SCh+O2HMCxNOS#0m|@_4*EK8U8s3S*A6h(QByv79j1_^baY7tJn_y<@ zx60{V{AJxeMtl${ifx;dCFjQ+fzOBH=mGk1B~Lwk>ND>d%^m5Tr9eH4@JgLVs?C{E zfJ+ytu>Wr$qP{tTcx%>4V@J?gF~voF7CaLoS4vnO$8Wvm)d+k|p8eK&+dn?Y%u;cs zRA`G;i@#V8KGp7c7~*pI8Im(LvwWVVm`6+6)8O{&Y?4STnl)NcHr28^UiOq=C*MU% zd9@{A(q_f!ailvRIDymcx>k#E$Jn2jYRH49iTy8-2;%#fdMKWQT0nW5!z${u5 z*T8B#n@(hj%--3g9TW}%c%bSQ)z_#Ahj!!X`YH{MGeYr=%D(1p4#G1WC&nxIqCpRU zJD_!pe^fhzp@p(xSP*pjwPGjJiZghpHaf~>KG(@hT9c|ReLo7<(r?8;&N|2mXNytt zEy^5XKE6$DP0->33T16w3^SAKw0%vs{$XPa>MT@h9cJpR9V6?8gStZ9aJojA^rf>e_vqcF zi6RV_qQSKN{=ylDZ&4=8*#d60R4F$+9ErubiorT{npkL&*tM_{GooTvY6M{xL=Gp^ z^x1nnlySbvsg^r9r}3DRcjTO?$a)?{-`|cFKO7IeWTRRPX=kZ@%4+!~5Mv$H+5&RLXzpy|&a42>vUW1oyc#!FFeBm78?2dtn+HRByql)z?HbJ%<{AZAv zNm3v|vXn{%Jrg5LzIM9x9W)_5{9HeGjpqf$IY5PPpKl0pKhRJ4+}B8X!;$|zEC>qC z&PH3+(;J7VywClKc{)I|`tjd_`u|P2yE}v`EVdzK9CBrF$$jnATs_A3=~kw+o2I+D z=w*Nst%S)GVV*)N@$-0?DN0Y)_-O_1vj@~SBN9y9PVv`1Xmu2of-9>SW#sYGSQ8fo zbIbK$9E~=i9G$L~1BrKU|MhL>F*1VbO=_vO@hhoXJd?G@;OBh5tAoF%1%=ckma}M! z3Gs3xd}0P_kNjRtGLnLH6(^>VJe9=>4eXnQtjK8r1IVUS-Wr@B@t%rWr}~@Mvt<^s z(Xk?ou&9GnlW>l%%<4DnB%kYEN?7R!Y<6Z;-cKgbLISou*|1xRlX2OTO=hyJ8(Wkk zV@6)y)j^7*T9;?mNm;xd*qAN_IF}&LsS@2k=RVJ7*a1vxcs=qEC6}+&bkm{`BMFX@ z_3={7SVjlUYPUB!RC9@l@2q94Z99<_FU&hc@z)jVXVw1~QOD`E0RiR2yJ{PqZ_Ly- z98(>c_||$j$|>7$yDX90AM;$~Z1I6osx*@&hg%;%x#>cg3Fw~!auI5eGM$zvcT^7R zC?`KtkUWhwW7Tb*6Vgc=;v2B=8&7(|@yoBMcU^hhDSVU81oEFI-A&ZW5WC7gdPv({ zAcVKd*v^^1(~r2X;oQ=eToLP#W>Br638&&lGyJZa+be=5BW*PQEeWeQo;%O9&p(i< zmZV`4dWIi;uzU_pr|T-Ag;sKKdn$Z~Yw;9&)%&aI**oS$ZUpcC@_ySWT><`GEEgH* ztMNkgxAMjnUVS!aGap~6me@?z(w*zFd?GE2jrjUe$XLPOrfX6&M9NHe~(s(irC} z{S$#{!b}s-=H=te1ka%%zl)2nx5O|$-1k3uwt9V0NxF3mpf1~*hxe8rwD|1;qwiCZ zo!z@gJZh&pJwwz8#MVsBvZZMlls+$2+D0Q_lxzm5e8SEYfIz z#$DO~b6tEc>BNXi8(5-*Lsmy~pssLnsiUw2gp1p00S3fguHLlo;3WoTNVCKPW z^O~K-+fESU%yZZImias>f1+mnM30P9SoTu7tWTa??D%T zWof7TxAXBHQN@&T%skBT1g8W$I1LB8ix2?J<;ARSaOQ9_rjCEIm7z0u2ON#LGjezw zc#-f6{>VJFmUN`^BOaZj{S}ykf~?->A({#1*#IoPPjrH6RG(|zz!!ZdHk$_OWFAW3RLaa zNXBz2{M|E~0n{eLg()_~k@UA)x72I_Hd#Mnf6RHjPmg)^p0T7fEHS@?+WKVY8gdZ) zlTxAtx0cmd!{5x=XRCI7a(Z9wK&kXj2AOXs6;|n})Scq9JWlQL{+OxmHT%$@{D7KV z?oCv5JtB$;*nw8M+?E*N40RgMDcLUI5MNo4z@(W!ZS-_z;6IbM+b6ro5O(JD7!x>V z_Ou7C*FWg%DIX@1#DE`{ejxG+bIf6^{^wO(*G=$VN%K^}9H+}MucZ844#r*8i+98k zkfmnTI)U0FX~;G1xPgD8%?~OGvujx6_7AR@u6KsturA^OU#`RjFH*0Q;x9`O)1OW{ z2_DEX+ho*_nwJ4mHJv)-|5R3ob=XY6)cQYZXkm9}9MhoBc24}1e@7VDo(n3FwC@c| z#3G{)gAg@%d|sL2jyY<-yZxi<6kpWNvJ++_H_GrsDL{)X4QC)vIkh{mfDx6*p&!@TVD-{oUpGmp#iP;xDyR0@c6V z04*;pq^guU6}BVE1jNebm^Dh7iU&XXwf%!CY2mg~5*a#MgJg>eiK5c#b|c~YFo52g zs-qm5zO0FIpMO~_R%}l+v~b_t5^uJ-%QN*UOU<90Lpt&Q22JZNm2Al;?>VpGx$?Z- zy6*1kM|M~p-YA`=LLp>HOXd=&fwqJ#@t3iKYU_>#%)fNs#FhQiMFzNscxrO^QcM=p z{BYMDKS0274L!7q_COJJ9XVdJ6f7W*ch^*)F)VV@M-Z%z{7lyzFLe}2^=4d7BZ0@? zWHgcGOwg5lXyGT`a>6#hC1EYwJ z2_}LF=G7gR>X=B{d02I&Oel=iRdBU_pXa)9vt~O0 zyzB>WK-@o4>Na2GBNSXqh>T_YG{cb|Z{^te^?wP4Y!?y5^i|ai)Fp5$Y4rwRC<1tf zEXT!7YR&%qTZ%`NG4hP!a1vLAkc#*P*=!|pa2H}JS}BKUJaSgUPHff>Sj_FVYinbq z&NRwyPJ9UWu1`14l9;Ej)0TUeXGbFw8>#pe2=}7<|HQ^QuIhUQA$r<>V&hw5B*miS zYYBV#q&kmw^SdZ|7P|(R$DNGON5dlNM6)vM?m~Wa-|*w~?SB4v!t-rh!`jAvXCnXQ zeh_ZIoNT=XeO(oA4Wq^%B6{aOOL!KWUJ|o z+N7*^GZpbU`kks%yj?pTA;s2 z(CAXY)N@6u2v(vX2B)S}tMF+VXc%NWfw?4h_lA}eX^EJ)UT;O|N8!WmP>NxVCXn_6 zOapX5-WS{jqc%4LZD;vaqThcG0h8p0AaG*I?lvujY=jWQBbtalpX0&i34j!U-&3h0Ft~pgAKKen7 zEswTugW_=^bW{D}*GPHncj_KwUTM25O?_>9nzrbu0E%q# zG*%*jyag^wK1CeXrhnR%NP=nO=Rh8@&?{Ve76B}*TB)<{{XBpbE!R)S!`!f=TQhn( zE=Z&j3V=WI+I4cH1K2l5I1>;TlLp2se!6a6`!v;XL0f)dXQz$sx7_lM>7gf44Gzej zg6I>`n^EBsbLn`!f|g2SwL2lR5ofLJPV=QFL{qm$h!c@vaKTf%sOg=D)pZ|v3VuR2 zNoG&&h;_evl|@=_9ZPAdRT(9k+X{Fed7L-=oPxos^~5Su5h$#6n{8Ye5Fm`yTVp@^ zfn@FB#D3wLINIK;cmM8F`spDh?a2M6@peH#&!cBS9pX`>Y|J7a3qrEaKZ2_%d4=xP zms0I&{r(_3+EK=!tEeX&Gdk;zdH;`@x;3T&ko`O&q`GG4-QEI!+=`;{qoYN8Rh5vx-i}xOkN{PPWuU=XGYk{&mw~Fh64n8 zw!>Z%?2aI`GMpUgDQo3NbKJo{qOYkLFJ6<_D9J<|4+dO11i7{ zp2#Q_J5(XcT4K<5nZ8csr8SynPpUo5 z^rbi};UM1_wr@BVKRB7_IZo_$v}%h-w}hbf#}k8BI0UNclEVku;45KRG*=TUEXPrf zPuTQF5ImW)T^fg(jmL^SmUW6Jb@Kha-hg1E4f7!Ma?*z0dV$9<8+Wg}5TAJ#9E;1sW|%AXn|$-F%b7B*KmE1{ zdsl34I3sHWuO}9yE*a-mn{NkN_OX@V{QtjAG6|*7Gl@G*d`-8d z0i*?`PtmGPz^k<6;#}?=EVoGj9Lt?i7t^18{>{#FNpAN2nj9=A9ydtE*S(SXJo9sE z9`MPchgv*XGI;FJx@Owz5 zJV2U$xt#NNVW$~lTQVRG2~&`+DDyu1@CQdy2?D%F?r`NKyHc;|6q|*^F+5)-6tt>| z#C1&yM8od}{DQ{v8=LV865v-fN_M^+2fIqNaKa{XV96>5jw8pIdI{-zTQk}%kPX75 z2ugZnp}B}R%SJ~US{t!%{N(=4(>YzUEC&q_pa3I6TgE>#KhdVQ#L2!1I5eT-@Hjh^ zByL<76c-7tP{aMM)I$qH&`Xi1-KuQ8dZEi>#oySB2o$&@qPzACOG)KM{N$gzpt&#T zynhlnw7woDA&MY?7LNOV_k|b08~v+n!i_otTPx+xxL5nTE42FIk+x!E)nvD0A^-jD z5oQ^i_g)B6&C~qRP^iC#bn>E8+pJit#yPnHsY1phJ80anHLQWOeS2f)=Hyuh8%o;g3%U6C}F8ti} zC;4-1RhFD@h?kzdXo8In$Z<2R^;GN@_EJhkR)BzTxPrD-KV?nV#n0+Uo@(M9m?a`} zE@4fLu;Sp}a%K=IB|PuQu}A#AOiMB^z z$8uN1yI$>3c@SQ%2r+*j(GUN)HXcSR46fKC@{s%FSFlY27CDH)ffapFFZ+d9R1Aha z$SD7p4~$p16KCFsOQ8x8kA*XjK&s6b&vp#=llnoxDvwNr;+&!P3M-Zz=P@q}wpRc9 z{`Bysp*-qhRJ&-Q@-Ojr-CKtKW)e}zjqsD=xu0-X|!0}2f(#6 z!k|EIoq1|+%;uSXfg~y07A38lZ`QFB0(0QppA)xMbhHUPI5sm7O5&@bss~Zq20eOu z#wVh3`+3UHNRxdNSb3J#yus`s}ym*WR`R z_W-fnX*_iOj-45$BwNo{QK8-cCsHxx_X`TR>Do->$-BTWw1S;(;!S;VRw1EB{JC=w z0JW#(Zxc7*=@6_VocKoATN0J>z~c;fwb~MUIGp7Zz1bkPmQ zFPcbWBJmSh%osz18S|(B@ZoJz>$_zRh4*OppeA&>nh$Ine0h)p`F4q64__=|nlFO# zG*&XJlm+`8bt%%=D0tHN$Mu65yBI^zFERqpaYHvoxp>RZ=n(FHh~MiQBK82Q(* z5-svHGtOD;?^AwV;r%6|A<~g)X0aXa!|J@l2*8y}y7hdGZQr}B;2lsG=Y<7y3vJOH zhJzTlv!>Xf`5shX6L4S(@;GH>Qa7@6tNwC0d!H+)1pe*7Altd~>6^q2LVrDJs8Xug z0{0(f1+gE1I1~al_bJx}7c9>{fm8W#Y2gTn>Mb^oxnHVT;Sl;*%V}_Xb7~;=_Yx=^ zW?!s9PYO5v0IQ!&(>wogb^6D#+L%bg!frNVyEniYd6MIY5F$W@4NSGd-*;yAbA8QJ z8)jXqToExcOKBm?cN2u*a8h#UY&DMvRrj%MnoeWG46?%_(yg<@GaL(JwRm?Wr9Vi!cA!_#9AL=p ztlQQ6^&D1>ZNPCtmTG<7+5T#%p1TV$4X>!jK?!jOIgyhInG6(v(%hlvW~J((Qt3mI zddtDXPp_z!g^@-DoItiFjzG@L>I$#X!{xMUb8NH6bK{;B)XE061{y;Iexe(3kis1& zJR^xLmXj0Q^1Il;Rv)iw?|@X-(wYXbeze$_79>j8%R~2yOg}fkFlWJqhfCXymFuFQ zyRYHxvK!jMGafome*FR8WC0s%zP)^$YopKGf*)a9pjV*7ZExV`*u!}Tmip$HpkVlF zX7OPAz8{WX@78J0F2sS`W|NZ07ZWtxp(?O-2gtlEv^oQwAvN5@7B}OO@Gd_Ru8-1L zBE)hfS8Hm3LoVIC(7gQ%bMN9!FtJm43%ay+=1LsXUCE$*h#jVx%mh5HzmMkQtc!j5 zn>AN-9XLxm@1()W?m8SZKDvJH+`%XXXtwPd7xB^v_3;Y%z)r=&U<@KD&%e^weK=9V ztel#8zwA%Gv0Gx zee7G<{+Dp9O`aX1>*42tMqkEXFZ#Gwag9;#*hzkI!t8^0eo;RLvxz2mhWB`81vph~ zap%=6NrxczE{c53?lz6F6D_!z@+f*wEesb{is(M2WR%W%ln&q+xwI<+%cndDGZ>ZJ zgLcM5g3f(iUkibzAPfH=Z4ERGd!SyVKs&Bk#Bp|W+yr|US@g#DNQ#-~NipsIRgO0ULS!PFjE<=sI?i~5=Q&EM{|c5+_|*A>LlHCT;tPD(tKkw6oAEH+ zN?fGrw+FIzu+lMlhF?U;(Klc}tiZ$!$ZR7yp|72ME7G0W&9D$w9^@e$=ui}lNk{T! zv)u(71eF)qNG}o2_uXR=s9B?GVLWn=>Ws+@1-Rn5`m|fYXNuBlN5qif0ygHrQfT^f z+8hm0CBM#)mp7cpN2)AwFgvF%4`h8Gf5?BV0K!4abM!j@{DG1lVxFz$Q+!mouUn|- zr?F0uN8*CH2+^1PP16h!@e8>7BkyUeQ;8}B=&`l$Ba31A_AZRGV@mvRU=pT+#9=vL z!kHr|laOM?gzGO4XFVE!niOx|c-NM2pCw|2DA1w25Usur34yt(QW84^}&EmjIUAw2`SJC3U zYA!5eRN=@W+T8oC#eDIx{Qt~HR;UVx6FwKjc(0m_ss;Gbe5fL0rry0fW+z!?Ll(b! z5ThXX{4P1_8&36qLJpGH+Sq8uBCoPGcrWXrp3k$S}#tVJZJa^gdVaZOTOvlXwD zx@jHi5By8*R*0@TLlsE5_Hs*v4Ixk-toM00{>qW#C+u_YM@y;+A~wc2X~3GprI_ei z$XKl{IkA?RDVFs%${etQO<2k^z&$S7-{vWnN`x2DtwSBP&JT7-63TwT3YSQX0)U6@ z`wh3K{NP$2d-VcdFRu3Jb>G=@8e|jMsNMNdqGOi@4^HYWXA6g%4c#@z&6p4lI55H) z<9g@7+9I4nFHHo{;C#A@I+T||YREmTXJU#vva_c37Maq#1BA)U4nF;3Sg$Lk`IjTuXpZ8Ye zJ>$Yez-pPcF=eIcd-N=R?K}#CleV2zT^4-R0TD`T&nDr!$*D?BAr)M*?4hucmjw0=mvvFKpRbo$=yTDavh7^@VsSSN$)Z zNK`%7nCOrDBC6`Oq@S`$hVtEIk~nPgDIDGfJN!HSsmZ5oVzCF} zB5n6RLmOmv2BQpE?kMq&CA$Z3qB|s|+;|IbIj)b?1?4R$$kuo@HWLPX)s_K#BLV)^ zn7e9+T$cVgtEC}55lo%|5c~Hv6D$ zNR~DQi0pQzbKj@p0Z*VvN}&9F=~vHw=LwYeqPrx3HW$kq$01zxnft3XVjh(eFeUxN zAJE?0V1T@D+J?@r{9w_b=H0@YP}k(5H)TjO;e(Y$ALPdl! z4X&k{)3`lWNgD6H3>qldz3NG&jp{7Jo3ipg5*(V<(!EBoU=??OHMpqGGo$vUv|Twk zVZ(XsifmiN+}(yQqUJ(0Ncck@!gOz|>t|NX`r&-DA8^6l+qK5`MCUbM;(L@U2WWl1 zo`V|&ohI^ghZG;d$i5wN${^1=Pe87_a9HeLjI_6Q;-p9lL?10|ImvOK2!M*mA$D1$ zz`Q6}JT|wB&F2~ziqe3+x?Im>%O2tY73mq?#d1lZ3R1Vlo@Xhi1$L(A4cQua{WN69DZoW&&71(=T@)Yv&AE*vcGZXeh)YtC zW{KN)$a8ssBU7jGOHtOig#k+NP1Td*)C0-U%5Z@8LpYc~ocG`94?%E_4f$S|Wwr{* zA8CWwhChvUd|7xOu;{XvXMXrBrzA%|ynlj2SE*&oj^5H;$#^r6{@Lsgy7+Ngnq_wj zT1I6@B}ap$q|)2VqN5#{zCrGSh$AsK(#ALlNHC5{+MNAIAPW*Aj%Djtc_`QEho>j> z+N3%q$2ZyMNoqjZLsN_RY_{ollpPpegXG=Fgll&6J^cS6>Yd-~?4#x39ox3;G}vj> zuyJE!hmG0TJGPC+cGB2v+}Ji6HrBhJbIyBxf4TpGxz?=DT5IkZYLOx@sq`O#uVtJq zQW!0sknA@MNn-B$T8o!XLc#uXN2bAD zrjl{lQ-b9$vOKJUeE0wlax3ADfhdo6l&8!&wco~9{jIbvpL-}VAR*)EuCjgG@ZWf>kTareRrfGkcOqZ47obR4~J@$yFe4y;>yZvFO$rK zM;z&x9FoxNklw+DR8r5rsu#glD{hme!Q;RKrQIuhAX)O19VX$G&2Y2`an#mJfP}cG z9I;y0k*KB)VEE{nm*-u5j?|Vm&J`wA2^1D*b4dt=sUVTY{$Cn2DG66pEa16*YPl%? zAH5lM6I+?=8jarZ05k8uvqWkokIRFWGtJ-Ea0#-Xzt_8dB9_fZ+ym4dr8|4HyjJs=+z@5hA!uS>OKyL=*t;XR1KrRV?rZ0 zf~6_Nz=Ot&vkZ9Tu?Xcg%mKEDK|3m+)m>a;S(j+D!s z)&GoRhth;6Dd+mGX6UZ3@|S@oT4yVSY%OK({^I9X$viSc^PguT9K%zbY%OO8ifhN1 z{aKq=7q#T7e`MWxg~^+b9`QH2e&8=#Ey{jv0tWJ}XSUf3wy@#efBqbBo8i#XwPVd` zl|=G|oTOmR#~TR()oGSZm6MFwFS~RctY$I^&NymYj^TX59TM`{JIt?0*jkJwy^Bh> zsF?KZ_-v5iPx~*t06=fx0|_fZXTBo4K{xSw zTlASemp=yo-#i5{ZQfnivUyzd z%0K~R8~I`%syR`B1`({Dyg2pEQdrFyEgG~_xnVzvse^2w%y7gcE%pABQTuAjP272@ zY~VSG?l1TApYOKa9xnIprS+Joen)JM{cLkWsxUX2P2;Yobwvf$T&=Zu>%RZ!a*I@w z6hGg_g+(8D=JdUTHojBAT@4BFL}hr6N3SBqC9%s5(f9AHDyrPW(-VrV>=xAhB-Hp8 z4afAJpqPnhUpQJ}XJCxd>Dl~QH-&KY6)uN#E(_K#zT{ab^fgom?X&j?Z}hW@}knb(Q4zbfr%zch9gSM5)h0O(@oSjIbk5uYa}> zHIN5_(a3ua>J^;+T=>!snBF=15@&s9tt1JB_D<9&4ySkMrp)>3mE7!KhWkhJJRv1QDZ=Jz+&C56Fq`6J+0$j>xTou8a+VF#zbJ2D>NB- zIgJi}!K+3c2`KY$KFdZgl2+RzUqZS{Mf5sw=tN9rcmtOxp!Se5t9{Lb-B+6j%~8hJ zi&5^E4BilGIm^)#BuYM?vyWpU2uWJGxsCDsYsBYV!mPvFZQ2s3eBAOKB^~y-{H!8z zLCFw}68Ql}l!`m$e!2k<Z|!IdsV-V6Y!#QOFCjd~04hDbb3t?vu!cE|!>}@IS2YoNyEl)Q$$q z$8)}6n3#Mi-=G|kJVBF~G@&UEUgaTjTaGfoTu_>eMnl1}Ml%V?Q+9wIkF(*RG+A!vQOndFH5?DpzdT-23wX(9a6r3u+BQ+%dA6PA+3?z z>Lo)5b5ID$K)4|KS8UyVJ#(wzy)1+`H-1=lA)gTschWJn6&D8jQ1T z!e+?i;WuRCukfdS1UZ=!VQFfj8Y!{_b~TuC)Y%za2ddu_2YZWjod=5g_A9SMquF28kASky z&{7!-8MV>gXVc62Hqw&M_@Q~WE-K4$*u1}rueMA>xEe1F$M9*G$b4Q^dXqyi$GeqkUS#R~mmvpP4D#xbXBbt^Ol&rfM`X$A4a>*DBEg{&>E+3%Y;@Q5n*MrDC}7@dK{)IkbKWx+dQJ z5~TGLF%bqF{pY-J@dPXD>Tx$#0vyns+58$*0LFvR;;%ddL!?G_*lVgnA=`z*KMzjdsa6BB&*nScH~( zZ7-__AHYhYcuI`Vl9A%d{O!}g^72cOts}z&`t-bhxVu{@Chh^j@N}M%nlX2m8)3Xz zC%R`BEB+mV3kDfjJJ@X)+c80Tw9^+W)7--AVt^uh>|L%X50U6PtGx<^em~imgLWvp ze_1Cc7S5L`MAL4HI0WkpB_r=}?`2!k#Q_o@m!kFZ2QVIB`%p5vi~u%7a5wO^|PTb(=y9$TeRJq z0}7|YshyD#;CFGe(u*vA{LY-xkYM&UYeY6=lFg!Ig}r(|HVnSG7oOdd8|k|*V_B$9 z${)`chsKl0cBta|^b+s5O}f8%&ZNEHJA{W}y6wRHvp|Ta61Prl5G|~@NEMq93jscS zB!((6Zd(+gue}FT(Q%5?W$f}8oz#cKf|>uIFCMjAvrpa8uEpgj=|D6 zE(fR&fsE%W)KOOx3L>C5QN@eMbA_bdU&Ua|5*KjICHwM%z@S1EzsR;ga# zTOGdtcz;zs!^`Yg@kxtOnz+3AiowE@bdgqGQ?RQ_84Yi$7x{CzaNvcmTN~Z?6th4P zmN&iC9z$RKt7I8hy|`eN7DAgHgRAp#wQXR%4DeoGmRoC;jk5+Cc3ISa@KqO1+F-ci zoK&d$ZB^ctd5edH`D6yh^etc9;{?gxCAo|&v>8E*7nU2Lr;2|mxIqvG7V$+*ZHDaC zw!I))F0@OK6i|fHfezmI=3;0#VKU{Tq!;3ZN7;M*I{0MXxfCWQhdTeVzaVs}<=_cV z;7vZso#3ANFf6cM=sRH3zYxs)1=-s0_a*5q5h|N_?~(3Zo|}E(-?ucwx!vl%ioffY zo8l;o>xYNLg|g}e{bipD!n4Ie>SWuucCt$z^Tz6M(U}@BenLlP;O81TUrYtBgb-mI zFDv7FmDnq3d#5_#ZlrQNi4aMZeTAuMet3W!W|bO?QSs&$QCBCL1f1V#fVvzsO~WqW z>T_9h%my}lTtGDv6QZmSoT%73={hW`DFQ$lD$%Gb7OjGek z4ax&gdY)_XSYsI9G)8wQkE}e##DSClGy;Yv?Ba<1j=WKvFJN7RyN{6qMP|d1YB7k*l!qwA^jJuSih?+B-^ObyPn-CNMjfw1~0S zQFg;~pP8S>j1iabn!BMUQf!q-o_m*BZ&!FHGEi2bM9T zGUcE#_D%o$BZjWL(pMGTTWi77ZNjv#etaWZXD79JN<|yfd1QhEu4aWEeF7u@+6Bdw z_l7!?Da(*dc#FlhHc(At4F6x%>O8=Y`|JEei?15YPaz#F-A`c%28e8KX;j!{kLM4u zJ#vR%a8sv;wb?(^asVsZEwVOkNU$bIfz1!;Dd(D3TMQ7BS{*0j1pOs?#*rArAG6SG zfoE1Su)-2>0ZKM2`Sd9sh^$rbjQuzunWLXmR6@ zq}3d_5keFUAwXgq+jrajwnsk7H#RhptTd_=lJaCLRr|yA>^;7(5%mN0!$Qq8fBtG* ztapNy5yePn)C4RsqaW&7S^R6~F{k^uyg;^#YXK-1a=n$reyI;sm&+7_=SBoU0@OU; zT0}x`183ylA$D-A=HF8{AH*sfHNMOmk|~ zmj;1c900_E-IGh+>PF9R<`vM;`os!jM2f0U1ylU?q=QDJD8^~qq>lu40*0{+VEZG9 zO$3c)MqrE#j#J8=d3Rz!a1}|L6CnDa?-~nDQHD#!JW~5qK>})S#V&V=MGCETm)iW!p=3_#va6Z zzY4OJM!63DE7-=~y^WKrzj$}r^~BF-7f=}{VmO=@k^F8VE+P0@w~T2+olZp*2CR<8 zH-&PssM4hSf$kl5GW`$#y23+@vMLOA7+WfQD>NxfOZHJ?hAe@8gTKR4{wxo+M>S2m z1<}-{L+JT$H|z=noE

-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 f1u|Np^IrZRE&q;> ENCHANTMENT_ENERGY_MULTIPLIER_OVERRIDES = BUILDER + .comment("Optional per-enchantment overrides in the form namespace:id=multiplier, for example minecraft:efficiency=0.5") + .defineListAllowEmpty("enchantmentEnergyMultiplierOverrides", List.of(), value -> value instanceof String); + + public static final ModConfigSpec SPEC = BUILDER.build(); + + private BatteriesConfig() { + } + + public static int machineChargeRange() { + return MACHINE_CHARGE_RANGE.get(); + } + + public static boolean chargerGeneratesCreativePower() { + return CHARGER_GENERATES_CREATIVE_POWER.get(); + } + + public static int generatorEnergyPerTick() { + return GENERATOR_ENERGY_PER_TICK.get(); + } + + public static boolean poweredArmorEnabled() { + return ENABLE_POWERED_ARMOR.get(); + } + + public static boolean poweredToolsEnabled() { + return ENABLE_POWERED_TOOLS.get(); + } + + public static boolean poweredWeaponsEnabled() { + return ENABLE_POWERED_WEAPONS.get(); + } + + public static int armorEnergyPerDamage() { return ARMOR_ENERGY_PER_DAMAGE.get(); } + + public static int axeEnergyPerBlock() { return AXE_ENERGY_PER_BLOCK.get(); } + + public static float bowFullyChargedShotCost() { return BOW_FULLY_CHARGED_SHOT_COST.get(); } + + public static int hoeEnergyPerBlock() { return HOE_ENERGY_PER_BLOCK.get(); } + + public static int pickaxeEnergyPerBlock() { return PICKAXE_ENERGY_PER_BLOCK.get(); } + + public static double poweredItemEnchantmentMultiplier(String enchantmentId) { + for (String entry : ENCHANTMENT_ENERGY_MULTIPLIER_OVERRIDES.get()) { + int separator = entry.indexOf('='); + if (separator <= 0) { + continue; + } + + String configuredId = entry.substring(0, separator).trim(); + if (!configuredId.equals(enchantmentId)) { + continue; + } + + try { + return Double.parseDouble(entry.substring(separator + 1).trim()); + } catch (NumberFormatException ignored) { + return ENCHANTMENT_ENERGY_MULTIPLIER.get(); + } + } + + return ENCHANTMENT_ENERGY_MULTIPLIER.get(); + } + + public static int shovelEnergyPerBlock() { return SHOVEL_ENERGY_PER_BLOCK.get(); } + + public static int shieldEnergyPerBlock() { return SHIELD_ENERGY_PER_BLOCK.get(); } + + public static int swordEnergyPerHit() { return SWORD_ENERGY_PER_HIT.get(); } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/PoweredItemEvents.java b/common/src/main/java/com/trunksbomb/batteries/PoweredItemEvents.java new file mode 100644 index 0000000..b70ee4c --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/PoweredItemEvents.java @@ -0,0 +1,49 @@ +package com.trunksbomb.batteries; + +import com.trunksbomb.batteries.item.PoweredItem; +import com.trunksbomb.batteries.item.PoweredItemEnergy; +import net.minecraft.core.Holder; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.ItemEnchantments; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.event.AnvilUpdateEvent; + +@EventBusSubscriber(modid = Batteries.MODID) +public final class PoweredItemEvents { + private PoweredItemEvents() { + } + + @SubscribeEvent + public static void onAnvilUpdate(AnvilUpdateEvent event) { + ItemStack left = event.getLeft(); + if (!(left.getItem() instanceof PoweredItem)) { + return; + } + + if (addsMending(left, event.getRight()) || addsMending(left, event.getOutput())) { + event.setCanceled(true); + } + } + + private static boolean addsMending(ItemStack original, ItemStack updated) { + if (updated.isEmpty()) { + return false; + } + + int originalLevel = getMendingLevel(original); + int updatedLevel = getMendingLevel(updated); + return updatedLevel > originalLevel; + } + + private static int getMendingLevel(ItemStack stack) { + ItemEnchantments enchantments = stack.getTagEnchantments(); + for (Holder enchantment : enchantments.keySet()) { + if (PoweredItemEnergy.isMendingEnchantment(enchantment)) { + return enchantments.getLevel(enchantment); + } + } + return 0; + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/block/BatteryBlockData.java b/common/src/main/java/com/trunksbomb/batteries/block/BatteryBlockData.java new file mode 100644 index 0000000..0280023 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/block/BatteryBlockData.java @@ -0,0 +1,48 @@ +package com.trunksbomb.batteries.block; + +import net.minecraft.core.Direction; + +public final class BatteryBlockData { + public static final Direction[] MENU_DIRECTIONS = new Direction[] { + Direction.UP, Direction.DOWN, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST + }; + + private BatteryBlockData() { + } + + public static Direction directionForIndex(int index) { + return MENU_DIRECTIONS[index]; + } + + public static int chargeStage(int energy, int capacity) { + if (capacity <= 0 || energy <= 0) { + return 0; + } + + float ratio = energy / (float) capacity; + if (ratio >= 0.99F) { + return 4; + } + if (ratio >= 0.74F) { + return 3; + } + if (ratio >= 0.49F) { + return 2; + } + if (ratio >= 0.24F) { + return 1; + } + return 0; + } + + public enum SideMode { + INPUT, + OUTPUT, + BOTH, + NONE; + + public SideMode next() { + return values()[(this.ordinal() + 1) % values().length]; + } + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/block/ChargerBlockData.java b/common/src/main/java/com/trunksbomb/batteries/block/ChargerBlockData.java new file mode 100644 index 0000000..22439f2 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/block/ChargerBlockData.java @@ -0,0 +1,49 @@ +package com.trunksbomb.batteries.block; + +import com.trunksbomb.batteries.item.BatteryItemData.Tier; +import net.minecraft.util.StringRepresentable; +import org.jspecify.annotations.NonNull; + +public final class ChargerBlockData { + private ChargerBlockData() { + } + + public static boolean canAcceptBattery(boolean enderCharger, Tier tier) { + if (enderCharger) { + return tier == Tier.ENDER; + } + return tier != Tier.ENDER; + } + + public enum BatteryState implements StringRepresentable { + NONE("none"), + BASIC("basic"), + ADVANCED("advanced"), + ELITE("elite"), + ULTIMATE("ultimate"), + CREATIVE("creative"), + ENDER("ender"); + + private final String name; + + BatteryState(String name) { + this.name = name; + } + + public static BatteryState fromTier(Tier tier) { + return switch (tier) { + case BASIC -> BASIC; + case ADVANCED -> ADVANCED; + case ELITE -> ELITE; + case ULTIMATE -> ULTIMATE; + case CREATIVE -> CREATIVE; + case ENDER -> ENDER; + }; + } + + @Override + public @NonNull String getSerializedName() { + return this.name; + } + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/command/BatteryDebugCommands.java b/common/src/main/java/com/trunksbomb/batteries/command/BatteryDebugCommands.java new file mode 100644 index 0000000..be62698 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/command/BatteryDebugCommands.java @@ -0,0 +1,250 @@ +package com.trunksbomb.batteries.command; + +import com.mojang.brigadier.CommandDispatcher; +import com.mojang.brigadier.arguments.IntegerArgumentType; +import com.mojang.brigadier.builder.ArgumentBuilder; +import com.mojang.brigadier.builder.LiteralArgumentBuilder; +import com.trunksbomb.batteries.item.BatteryItemData; +import java.util.ArrayList; +import java.util.List; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.commands.CommandSourceStack; +import net.minecraft.commands.Commands; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.level.block.Blocks; +import net.minecraft.world.level.block.ChestBlock; +import net.minecraft.world.level.block.entity.ChestBlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import org.jspecify.annotations.Nullable; + +public final class BatteryDebugCommands { + private BatteryDebugCommands() { + } + + public static void register(CommandDispatcher dispatcher, EnergyAdapter adapter) { + dispatcher.register(Commands.literal("batteries") + .then(Commands.literal("kit") + .executes(context -> placeKitChest(context.getSource()))) + .then(buildAction("charge", Operation.CHARGE, adapter)) + .then(buildAction("drain", Operation.DRAIN, adapter))); + } + + private static ArgumentBuilder buildAction(String name, Operation operation, EnergyAdapter adapter) { + LiteralArgumentBuilder action = Commands.literal(name); + for (Scope scope : Scope.values()) { + action.then(Commands.literal(scope.argumentName) + .executes(context -> execute(context.getSource(), operation, scope, null, adapter)) + .then(Commands.argument("amount", IntegerArgumentType.integer(0)) + .executes(context -> execute( + context.getSource(), + operation, + scope, + IntegerArgumentType.getInteger(context, "amount"), + adapter)))); + } + return action; + } + + private static int execute(CommandSourceStack source, Operation operation, Scope scope, @Nullable Integer amount, EnergyAdapter adapter) throws com.mojang.brigadier.exceptions.CommandSyntaxException { + ServerPlayer player = source.getPlayerOrException(); + Summary summary = apply(player, operation, scope, amount, adapter); + source.sendSuccess(() -> summary.message(operation, scope, amount), true); + return summary.totalChangedEnergy; + } + + private static Summary apply(ServerPlayer player, Operation operation, Scope scope, @Nullable Integer amount, EnergyAdapter adapter) { + Summary summary = new Summary(); + for (ItemStack stack : scope.stacks(player)) { + if (stack.isEmpty()) { + continue; + } + + H handler = adapter.resolve(stack); + if (handler == null) { + continue; + } + + int capacity = Math.max(0, adapter.capacity(handler)); + if (capacity <= 0) { + continue; + } + + summary.chargeableItems++; + + int stored = Math.max(0, Math.min(adapter.stored(handler), capacity)); + int changed = switch (operation) { + case CHARGE -> { + int requested = amount == null ? capacity - stored : Math.min(Math.max(0, amount), capacity - stored); + yield requested <= 0 ? 0 : Math.max(0, adapter.charge(handler, requested)); + } + case DRAIN -> { + int requested = amount == null ? stored : Math.min(Math.max(0, amount), stored); + yield requested <= 0 ? 0 : Math.max(0, adapter.drain(handler, requested)); + } + }; + + if (changed > 0) { + summary.changedItems++; + summary.totalChangedEnergy += changed; + } + } + + return summary; + } + + private static int placeKitChest(CommandSourceStack source) throws com.mojang.brigadier.exceptions.CommandSyntaxException { + ServerPlayer player = source.getPlayerOrException(); + Direction direction = player.getDirection(); + BlockPos chestPos = player.blockPosition().relative(direction); + BlockState chestState = Blocks.CHEST.defaultBlockState() + .setValue(ChestBlock.FACING, direction.getOpposite()); + + player.level().setBlockAndUpdate(chestPos, chestState); + if (!(player.level().getBlockEntity(chestPos) instanceof ChestBlockEntity chest)) { + source.sendFailure(Component.literal("Couldn't create the kit chest.")); + return 0; + } + + chest.clearContent(); + List kit = List.of( + new ItemStack(Items.REDSTONE, 64), + new ItemStack(Items.REDSTONE_BLOCK, 64), + new ItemStack(Items.GOLD_INGOT, 64), + new ItemStack(Items.GOLD_BLOCK, 32), + new ItemStack(Items.IRON_INGOT, 64), + new ItemStack(Items.IRON_BLOCK, 16), + new ItemStack(Items.WHITE_CONCRETE, 64), + new ItemStack(Items.OAK_LOG, 64), + new ItemStack(Items.FURNACE, 16), + new ItemStack(Items.DIAMOND, 64), + new ItemStack(Items.DIAMOND_BLOCK, 16), + new ItemStack(Items.END_STONE, 32), + new ItemStack(Items.ENDER_PEARL, 32), + new ItemStack(Items.DIAMOND_PICKAXE), + new ItemStack(Items.DIAMOND_AXE), + new ItemStack(Items.DIAMOND_SHOVEL), + new ItemStack(Items.DIAMOND_HOE), + new ItemStack(Items.DIAMOND_SWORD), + new ItemStack(Items.DIAMOND_HELMET), + new ItemStack(Items.DIAMOND_CHESTPLATE), + new ItemStack(Items.DIAMOND_LEGGINGS), + new ItemStack(Items.DIAMOND_BOOTS), + new ItemStack(Items.SHIELD), + new ItemStack(Items.BOW) + ); + + for (int i = 0; i < kit.size() && i < chest.getContainerSize(); i++) { + chest.setItem(i, kit.get(i).copy()); + } + chest.setChanged(); + + source.sendSuccess(() -> Component.literal("Placed a Batteries kit chest at " + + chestPos.getX() + ", " + chestPos.getY() + ", " + chestPos.getZ() + "."), true); + return 1; + } + + private enum Operation { + CHARGE("Charged"), + DRAIN("Drained"); + + private final String pastTense; + + Operation(String pastTense) { + this.pastTense = pastTense; + } + } + + private enum Scope { + HELD("held") { + @Override + List stacks(ServerPlayer player) { + List stacks = new ArrayList<>(2); + stacks.add(player.getMainHandItem()); + stacks.add(player.getOffhandItem()); + return stacks; + } + }, + HOTBAR("hotbar") { + @Override + List stacks(ServerPlayer player) { + List stacks = new ArrayList<>(9); + for (int i = 0; i < 9; i++) { + stacks.add(player.getInventory().getItem(i)); + } + return stacks; + } + }, + INVENTORY("inventory") { + @Override + List stacks(ServerPlayer player) { + List stacks = new ArrayList<>(27); + for (int i = 9; i < 36; i++) { + stacks.add(player.getInventory().getItem(i)); + } + return stacks; + } + }, + ALL("all") { + @Override + List stacks(ServerPlayer player) { + List stacks = new ArrayList<>(player.getInventory().getContainerSize()); + for (int i = 0; i < player.getInventory().getContainerSize(); i++) { + stacks.add(player.getInventory().getItem(i)); + } + return stacks; + } + }; + + private final String argumentName; + + Scope(String argumentName) { + this.argumentName = argumentName; + } + + abstract List stacks(ServerPlayer player); + } + + private static final class Summary { + private int chargeableItems; + private int changedItems; + private int totalChangedEnergy; + + private Component message(Operation operation, Scope scope, @Nullable Integer amount) { + if (this.chargeableItems == 0) { + return Component.literal("No chargeable items found in " + scope.argumentName + "."); + } + + String amountText = amount == null + ? (operation == Operation.CHARGE ? "to full" : "to empty") + : "by " + BatteryItemData.formatCompactAmount(amount) + " E"; + return Component.literal(operation.pastTense + + " " + + this.changedItems + + " of " + + this.chargeableItems + + " chargeable item(s) in " + + scope.argumentName + + " " + + amountText + + " (" + + BatteryItemData.formatCompactAmount(this.totalChangedEnergy) + + " E total)."); + } + } + + public interface EnergyAdapter { + @Nullable H resolve(ItemStack stack); + + int stored(H handler); + + int capacity(H handler); + + int charge(H handler, int amount); + + int drain(H handler, int amount); + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/BatteryItemData.java b/common/src/main/java/com/trunksbomb/batteries/item/BatteryItemData.java new file mode 100644 index 0000000..9e50ead --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/BatteryItemData.java @@ -0,0 +1,97 @@ +package com.trunksbomb.batteries.item; + +import net.minecraft.core.component.DataComponents; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; +import java.lang.reflect.Method; +import java.util.Optional; + +public final class BatteryItemData { + private static final String ENERGY_KEY = "energy"; + + private BatteryItemData() { + } + + public static int getStoredEnergy(ItemStack stack, Tier tier) { + if (tier == Tier.CREATIVE) { + return getEnergyCapacity(tier); + } + + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + return Math.max(0, readInt(tag, ENERGY_KEY)); + } + + public static void setStoredEnergy(ItemStack stack, int energy) { + net.minecraft.world.item.component.CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> tag.putInt(ENERGY_KEY, Math.max(0, energy))); + } + + public static int getEnergyCapacity(Tier tier) { + return switch (tier) { + case BASIC -> 100_000; + case ADVANCED -> 750_000; + case ELITE -> 2_000_000; + case ULTIMATE, ENDER -> 10_000_000; + case CREATIVE -> Integer.MAX_VALUE; + }; + } + + public static int getMaxTransfer(Tier tier) { + return tier == Tier.CREATIVE ? Integer.MAX_VALUE : EnergyTierHelper.transferRateForCapacity(getEnergyCapacity(tier)); + } + + public static String formatWithCommas(int amount) { + return String.format("%,d", amount); + } + + public static String formatCompactAmount(int amount) { + if (amount < 10_000) { + return formatWithCommas(amount); + } + if (amount < 1_000_000) { + return abbreviateRounded(amount, 1_000, "K"); + } + if (amount < 1_000_000_000) { + return abbreviateRounded(amount, 1_000_000, "M"); + } + return formatWithCommas(amount); + } + + private static String abbreviateRounded(int amount, int divisor, String suffix) { + return Math.round(amount / (float) divisor) + suffix; + } + + @SuppressWarnings("unchecked") + private static int readInt(CompoundTag tag, String key) { + try { + Method getIntMethod = CompoundTag.class.getMethod("getInt", String.class); + Object value = getIntMethod.invoke(tag, key); + if (value instanceof Integer intValue) { + return intValue; + } + if (value instanceof Optional optionalValue && optionalValue.orElse(null) instanceof Integer intValue) { + return intValue; + } + } catch (ReflectiveOperationException ignored) { + } + + try { + Method getIntOrMethod = CompoundTag.class.getMethod("getIntOr", String.class, int.class); + Object value = getIntOrMethod.invoke(tag, key, 0); + if (value instanceof Integer intValue) { + return intValue; + } + } catch (ReflectiveOperationException ignored) { + } + + return 0; + } + + public enum Tier { + BASIC, + ADVANCED, + ELITE, + ULTIMATE, + ENDER, + CREATIVE + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredArmorItem.java b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredArmorItem.java new file mode 100644 index 0000000..412d609 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredArmorItem.java @@ -0,0 +1,86 @@ +package com.trunksbomb.batteries.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.function.Consumer; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.equipment.ArmorMaterial; +import net.minecraft.world.item.equipment.ArmorType; +import net.minecraft.world.item.enchantment.Enchantment; +import org.jspecify.annotations.Nullable; + +public class BatteryPoweredArmorItem extends Item implements PoweredItem { + private final ArmorType armorType; + + public BatteryPoweredArmorItem(ArmorMaterial material, ArmorType armorType, Properties properties) { + super(properties.humanoidArmor(material, armorType).stacksTo(1)); + this.armorType = armorType; + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, net.minecraft.world.item.component.TooltipDisplay tooltipDisplay, Consumer tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder, flag); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(switch (this.armorType) { + case HELMET -> Items.DIAMOND_HELMET; + case CHESTPLATE -> Items.DIAMOND_CHESTPLATE; + case LEGGINGS -> Items.DIAMOND_LEGGINGS; + case BOOTS -> Items.DIAMOND_BOOTS; + default -> Items.DIAMOND_CHESTPLATE; + }); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { + int energyCost = this.getAdjustedEnergyCost(stack, amount * BatteriesConfig.armorEnergyPerDamage()); + return PoweredItemEnergy.consumeEnergy(stack, energyCost) ? 0 : amount; + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredAxeItem.java b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredAxeItem.java new file mode 100644 index 0000000..e8ccea7 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredAxeItem.java @@ -0,0 +1,11 @@ +package com.trunksbomb.batteries.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ToolMaterial; + +public class BatteryPoweredAxeItem extends BatteryPoweredMiningToolItem { + public BatteryPoweredAxeItem(Properties properties) { + super(Items.DIAMOND_AXE, properties.axe(ToolMaterial.DIAMOND, 5.0F, -3.0F), BatteriesConfig::axeEnergyPerBlock); + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredBowItem.java b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredBowItem.java new file mode 100644 index 0000000..0242c50 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredBowItem.java @@ -0,0 +1,143 @@ +package com.trunksbomb.batteries.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.List; +import java.util.function.Consumer; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.sounds.SoundEvents; +import net.minecraft.sounds.SoundSource; +import net.minecraft.stats.Stats; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BowItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.level.Level; +import org.jspecify.annotations.Nullable; + +public class BatteryPoweredBowItem extends BowItem implements PoweredItem { + public BatteryPoweredBowItem(Properties properties) { + super(properties.stacksTo(1)); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, net.minecraft.world.item.component.TooltipDisplay tooltipDisplay, Consumer tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder, flag); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(Items.BOW); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public InteractionResult use(Level level, Player player, InteractionHand usedHand) { + ItemStack stack = player.getItemInHand(usedHand); + if (!PoweredItemEnergy.hasEnergy(stack, 1)) { + return InteractionResult.FAIL; + } + return super.use(level, player, usedHand); + } + + @Override + public boolean releaseUsing(ItemStack stack, Level level, LivingEntity livingEntity, int timeLeft) { + if (!(livingEntity instanceof Player player)) { + return false; + } + + ItemStack projectile = player.getProjectile(stack); + if (projectile.isEmpty()) { + return false; + } + + int charge = this.getUseDuration(stack, livingEntity) - timeLeft; + charge = net.neoforged.neoforge.event.EventHooks.onArrowLoose(stack, level, player, charge, !projectile.isEmpty()); + if (charge < 0) { + return false; + } + + float power = BowItem.getPowerForTime(charge); + if (power < 0.1F) { + return false; + } + + int baseEnergyCost = Math.max(1, Math.round(BatteriesConfig.bowFullyChargedShotCost() * power)); + int energyCost = this.getAdjustedEnergyCost(stack, baseEnergyCost); + if (!PoweredItemEnergy.hasEnergy(stack, energyCost)) { + return false; + } + + List projectiles = draw(stack, projectile, player); + if (level instanceof ServerLevel serverLevel && !projectiles.isEmpty()) { + if (!PoweredItemEnergy.consumeEnergy(stack, energyCost)) { + return false; + } + this.shoot(serverLevel, player, player.getUsedItemHand(), stack, projectiles, power * 3.0F, 1.0F, power == 1.0F, null); + } + + level.playSound( + null, + player.getX(), + player.getY(), + player.getZ(), + SoundEvents.ARROW_SHOOT, + SoundSource.PLAYERS, + 1.0F, + 1.0F / (level.getRandom().nextFloat() * 0.4F + 1.2F) + power * 0.5F + ); + player.awardStat(Stats.ITEM_USED.get(this)); + return true; + } + + @Override + public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { + return 0; + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredHoeItem.java b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredHoeItem.java new file mode 100644 index 0000000..a1d87f3 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredHoeItem.java @@ -0,0 +1,11 @@ +package com.trunksbomb.batteries.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ToolMaterial; + +public class BatteryPoweredHoeItem extends BatteryPoweredMiningToolItem { + public BatteryPoweredHoeItem(Properties properties) { + super(Items.DIAMOND_HOE, properties.hoe(ToolMaterial.DIAMOND, -3.0F, 0.0F), BatteriesConfig::hoeEnergyPerBlock); + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredMiningToolItem.java b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredMiningToolItem.java new file mode 100644 index 0000000..c79eff8 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredMiningToolItem.java @@ -0,0 +1,108 @@ +package com.trunksbomb.batteries.item; + +import java.util.function.Consumer; +import java.util.function.IntSupplier; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import org.jspecify.annotations.Nullable; + +public abstract class BatteryPoweredMiningToolItem extends Item implements PoweredItem { + private final Item enchantingReferenceItem; + private final IntSupplier baseEnergyCostSupplier; + + protected BatteryPoweredMiningToolItem(Item enchantingReferenceItem, Properties properties, IntSupplier baseEnergyCostSupplier) { + super(properties.stacksTo(1)); + this.enchantingReferenceItem = enchantingReferenceItem; + this.baseEnergyCostSupplier = baseEnergyCostSupplier; + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, net.minecraft.world.item.component.TooltipDisplay tooltipDisplay, Consumer tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder, flag); + } + + @Override + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(this.enchantingReferenceItem); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public boolean shouldCauseBlockBreakReset(ItemStack oldStack, ItemStack newStack) { + return this.shouldCauseEnergyBlockBreakReset(oldStack, newStack); + } + + @Override + public float getDestroySpeed(ItemStack stack, BlockState state) { + return PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)) ? super.getDestroySpeed(stack, state) : 1.0F; + } + + @Override + public boolean isCorrectToolForDrops(ItemStack stack, BlockState state) { + return PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)) && super.isCorrectToolForDrops(stack, state); + } + + @Override + public boolean mineBlock(ItemStack stack, Level level, BlockState state, BlockPos pos, LivingEntity miningEntity) { + if (!level.isClientSide() && !state.isAir()) { + PoweredItemEnergy.consumeEnergy(stack, this.energyCost(stack)); + } + return true; + } + + @Override + public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { + return 0; + } + + protected int energyCost(ItemStack stack) { + return this.getAdjustedEnergyCost(stack, this.baseEnergyCostSupplier.getAsInt()); + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredPickaxeItem.java b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredPickaxeItem.java new file mode 100644 index 0000000..c92b466 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredPickaxeItem.java @@ -0,0 +1,11 @@ +package com.trunksbomb.batteries.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ToolMaterial; + +public class BatteryPoweredPickaxeItem extends BatteryPoweredMiningToolItem { + public BatteryPoweredPickaxeItem(Properties properties) { + super(Items.DIAMOND_PICKAXE, properties.pickaxe(ToolMaterial.DIAMOND, 1.0F, -2.8F), BatteriesConfig::pickaxeEnergyPerBlock); + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredShieldItem.java b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredShieldItem.java new file mode 100644 index 0000000..a63143f --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredShieldItem.java @@ -0,0 +1,76 @@ +package com.trunksbomb.batteries.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.function.Consumer; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ShieldItem; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.enchantment.Enchantment; +import org.jspecify.annotations.Nullable; + +public class BatteryPoweredShieldItem extends ShieldItem implements PoweredItem { + public BatteryPoweredShieldItem(Properties properties) { + super(properties.stacksTo(1)); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, net.minecraft.world.item.component.TooltipDisplay tooltipDisplay, Consumer tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder, flag); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(Items.SHIELD); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { + int energyCost = this.getAdjustedEnergyCost(stack, amount * BatteriesConfig.shieldEnergyPerBlock()); + return PoweredItemEnergy.consumeEnergy(stack, energyCost) ? 0 : amount; + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredShovelItem.java b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredShovelItem.java new file mode 100644 index 0000000..a397b7e --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredShovelItem.java @@ -0,0 +1,11 @@ +package com.trunksbomb.batteries.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ToolMaterial; + +public class BatteryPoweredShovelItem extends BatteryPoweredMiningToolItem { + public BatteryPoweredShovelItem(Properties properties) { + super(Items.DIAMOND_SHOVEL, properties.shovel(ToolMaterial.DIAMOND, 1.5F, -3.0F), BatteriesConfig::shovelEnergyPerBlock); + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredSwordItem.java b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredSwordItem.java new file mode 100644 index 0000000..4e896d5 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/BatteryPoweredSwordItem.java @@ -0,0 +1,93 @@ +package com.trunksbomb.batteries.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.function.Consumer; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ToolMaterial; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.enchantment.Enchantment; +import org.jspecify.annotations.Nullable; + +public class BatteryPoweredSwordItem extends Item implements PoweredItem { + public BatteryPoweredSwordItem(Properties properties) { + super(properties.sword(ToolMaterial.DIAMOND, 3.0F, -2.4F).stacksTo(1)); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, TooltipContext context, net.minecraft.world.item.component.TooltipDisplay tooltipDisplay, Consumer tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder, flag); + } + + @Override + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(Items.DIAMOND_SWORD); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public boolean onLeftClickEntity(ItemStack stack, Player player, Entity entity) { + return !PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)); + } + + @Override + public void hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { + if (!attacker.level().isClientSide()) { + PoweredItemEnergy.consumeEnergy(stack, this.energyCost(stack)); + } + } + + @Override + public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { + return 0; + } + + private int energyCost(ItemStack stack) { + return this.getAdjustedEnergyCost(stack, BatteriesConfig.swordEnergyPerHit()); + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/EnergyTierHelper.java b/common/src/main/java/com/trunksbomb/batteries/item/EnergyTierHelper.java new file mode 100644 index 0000000..d28d049 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/EnergyTierHelper.java @@ -0,0 +1,22 @@ +package com.trunksbomb.batteries.item; + +public final class EnergyTierHelper { + private EnergyTierHelper() { + } + + public static int transferRateForCapacity(int capacity) { + if (capacity >= 10_000_000) { + return 5_000; + } + if (capacity >= 2_000_000) { + return 1_000; + } + if (capacity >= 750_000) { + return 300; + } + if (capacity >= 100_000) { + return 100; + } + return 50; + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/PoweredEnergyHandler.java b/common/src/main/java/com/trunksbomb/batteries/item/PoweredEnergyHandler.java new file mode 100644 index 0000000..d4579c4 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/PoweredEnergyHandler.java @@ -0,0 +1,18 @@ +package com.trunksbomb.batteries.item; + +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.transfer.energy.SimpleEnergyHandler; + +final class PoweredEnergyHandler extends SimpleEnergyHandler { + private final ItemStack stack; + + PoweredEnergyHandler(ItemStack stack, int capacity, int maxTransfer, int energy) { + super(capacity, maxTransfer, maxTransfer, energy); + this.stack = stack; + } + + @Override + protected void onEnergyChanged(int previousAmount) { + PoweredItemEnergy.setStoredEnergy(this.stack, this.energy); + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/PoweredItem.java b/common/src/main/java/com/trunksbomb/batteries/item/PoweredItem.java new file mode 100644 index 0000000..b7790e2 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/PoweredItem.java @@ -0,0 +1,86 @@ +package com.trunksbomb.batteries.item; + +import java.util.Optional; +import java.util.function.Consumer; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderSet; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.enchantment.Enchantment; +import net.neoforged.neoforge.transfer.energy.EnergyHandler; + +public interface PoweredItem { + default EnergyHandler createEnergyHandler(ItemStack stack) { + return PoweredItemEnergy.createEnergyHandler(stack, this.getMaxTransfer(stack)); + } + + default int getMaxTransfer(ItemStack stack) { + return EnergyTierHelper.transferRateForCapacity(PoweredItemEnergy.getEnergyCapacity(stack)); + } + + default boolean isEnergyBarVisible(ItemStack stack) { + return PoweredItemEnergy.getEnergyCapacity(stack) > 0; + } + + default int getEnergyBarWidth(ItemStack stack) { + return PoweredItemEnergy.getBarWidth(stack); + } + + default int getEnergyBarColor(ItemStack stack) { + return 0x55CC55; + } + + default void addEnergyTooltip(ItemStack stack, Consumer tooltipAdder, TooltipFlag flag) { + PoweredItemEnergy.addEnergyTooltip(stack, tooltipAdder); + } + + default ItemStack getEnchantingBaseStack(ItemStack stack) { + return stack; + } + + default int getAdjustedEnergyCost(ItemStack stack, int baseCost) { + return PoweredItemEnergy.adjustEnergyCostForEnchantments(stack, baseCost); + } + + default int getPoweredEnchantmentLevel(ItemStack stack, Holder enchantment) { + if (PoweredItemEnergy.isDisabledPoweredItemEnchantment(enchantment)) { + return 0; + } + + return stack.getTagEnchantments().getLevel(enchantment); + } + + default float getPoweredXpRepairRatio(ItemStack stack) { + return 0.0F; + } + + default boolean supportsPoweredEnchantment(ItemStack stack, Holder enchantment) { + if (PoweredItemEnergy.isMendingEnchantment(enchantment)) { + return false; + } + + ItemStack baseStack = this.getEnchantingBaseStack(stack); + return baseStack.is(Items.ENCHANTED_BOOK) || enchantment.value().isSupportedItem(baseStack); + } + + default boolean isPrimaryPoweredItemFor(ItemStack stack, Holder enchantment) { + ItemStack baseStack = this.getEnchantingBaseStack(stack); + if (baseStack.getItem() == Items.BOOK) { + return true; + } + + Optional> primaryItems = enchantment.value().definition().primaryItems(); + return this.supportsPoweredEnchantment(stack, enchantment) && (primaryItems.isEmpty() || baseStack.is(primaryItems.get())); + } + + default boolean shouldCauseEnergyReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return slotChanged || !newStack.is(oldStack.getItem()); + } + + default boolean shouldCauseEnergyBlockBreakReset(ItemStack oldStack, ItemStack newStack) { + return !newStack.is(oldStack.getItem()); + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/item/PoweredItemEnergy.java b/common/src/main/java/com/trunksbomb/batteries/item/PoweredItemEnergy.java new file mode 100644 index 0000000..d8b9843 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/item/PoweredItemEnergy.java @@ -0,0 +1,171 @@ +package com.trunksbomb.batteries.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.function.Consumer; +import net.minecraft.ChatFormatting; +import net.minecraft.core.Holder; +import net.minecraft.core.component.DataComponents; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.ItemEnchantments; +import net.neoforged.neoforge.transfer.energy.EnergyHandler; + +public final class PoweredItemEnergy { + private static final String ENERGY_KEY = "energy"; + private static final String CAPACITY_KEY = "capacity"; + public static final int DEFAULT_CAPACITY = 50_000; + + private PoweredItemEnergy() { + } + + public static EnergyHandler createEnergyHandler(ItemStack stack, int maxTransfer) { + if (!(stack.getItem() instanceof PoweredItem)) { + return null; + } + + int capacity = getEnergyCapacity(stack); + return new PoweredEnergyHandler(stack, capacity, Math.max(1, maxTransfer), getStoredEnergy(stack)); + } + + public static int getStoredEnergy(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + return Math.max(0, tag.getIntOr(ENERGY_KEY, 0)); + } + + public static void setStoredEnergy(ItemStack stack, int energy) { + int capacity = getEnergyCapacity(stack); + int clamped = Math.max(0, Math.min(energy, capacity)); + net.minecraft.world.item.component.CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> tag.putInt(ENERGY_KEY, clamped)); + } + + public static int getEnergyCapacity(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + int storedCapacity = Math.max(0, tag.getIntOr(CAPACITY_KEY, 0)); + if (storedCapacity > 0) { + return storedCapacity; + } + + return stack.getItem() instanceof PoweredItem ? DEFAULT_CAPACITY : 0; + } + + public static void setEnergyCapacity(ItemStack stack, int capacity) { + int clampedCapacity = Math.max(0, capacity); + net.minecraft.world.item.component.CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> { + tag.putInt(CAPACITY_KEY, clampedCapacity); + tag.putInt(ENERGY_KEY, Math.max(0, Math.min(tag.getIntOr(ENERGY_KEY, 0), clampedCapacity))); + }); + } + + public static boolean hasEnergy(ItemStack stack, int amount) { + return amount <= 0 || getStoredEnergy(stack) >= amount; + } + + public static boolean consumeEnergy(ItemStack stack, int amount) { + if (amount <= 0) { + return true; + } + + int stored = getStoredEnergy(stack); + if (stored < amount) { + return false; + } + + setStoredEnergy(stack, stored - amount); + return true; + } + + public static int getBarWidth(ItemStack stack) { + int capacity = getEnergyCapacity(stack); + if (capacity <= 0) { + return 0; + } + + return Math.round(13.0F * getStoredEnergy(stack) / (float) capacity); + } + + public static void addEnergyTooltip(ItemStack stack, Consumer tooltipAdder) { + tooltipAdder.accept(Component.translatable("batteries.tooltip.energy", formatWithCommas(getStoredEnergy(stack)), abbreviateAmount(getEnergyCapacity(stack))) + .withStyle(ChatFormatting.GREEN)); + } + + public static int adjustEnergyCostForEnchantments(ItemStack stack, int baseCost) { + if (baseCost <= 0) { + return 0; + } + + ItemEnchantments enchantments = stack.getTagEnchantments(); + if (enchantments.keySet().isEmpty()) { + return baseCost; + } + + double totalMultiplier = 1.0D; + for (Holder enchantment : enchantments.keySet()) { + int level = enchantments.getLevel(enchantment); + if (level <= 0) { + continue; + } + + int maxLevel = Math.max(1, enchantment.value().getMaxLevel()); + double scaledLevel = Math.min(level, maxLevel) / (double) maxLevel; + String enchantmentId = enchantment.unwrapKey() + .map(key -> key.identifier().toString()) + .orElse(""); + totalMultiplier += BatteriesConfig.poweredItemEnchantmentMultiplier(enchantmentId) * scaledLevel; + } + + return clampToInt(Math.max(1L, Math.round(baseCost * totalMultiplier))); + } + + public static int clampToInt(long value) { + return (int) Math.max(0L, Math.min(Integer.MAX_VALUE, value)); + } + + public static boolean isMendingEnchantment(Holder enchantment) { + return hasEnchantmentId(enchantment, "minecraft:mending"); + } + + public static boolean isDisabledPoweredItemEnchantment(Holder enchantment) { + return hasEnchantmentId(enchantment, "minecraft:mending") + || hasEnchantmentId(enchantment, "minecraft:unbreaking"); + } + + private static boolean hasEnchantmentId(Holder enchantment, String id) { + return enchantment.unwrapKey() + .map(key -> id.equals(key.identifier().toString())) + .orElse(false); + } + + public static String formatWithCommas(int amount) { + return String.format("%,d", amount); + } + + public static String abbreviateAmount(int amount) { + if (amount >= 1_000_000_000) { + return abbreviate(amount, 1_000_000_000, "G"); + } + if (amount >= 1_000_000) { + return abbreviate(amount, 1_000_000, "M"); + } + if (amount >= 1_000) { + return abbreviate(amount, 1_000, "k"); + } + return formatWithCommas(amount); + } + + private static String abbreviate(int amount, int divisor, String suffix) { + int whole = amount / divisor; + int remainder = amount % divisor; + if (remainder == 0) { + return whole + suffix; + } + + int decimal = (remainder * 10) / divisor; + if (decimal == 0) { + return whole + suffix; + } + + return whole + "." + decimal + suffix; + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/shared/BatteryBlockData.java b/common/src/main/java/com/trunksbomb/batteries/shared/BatteryBlockData.java new file mode 100644 index 0000000..9929e10 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/shared/BatteryBlockData.java @@ -0,0 +1,48 @@ +package com.trunksbomb.batteries.shared; + +import net.minecraft.core.Direction; + +public final class BatteryBlockData { + public static final Direction[] MENU_DIRECTIONS = new Direction[] { + Direction.UP, Direction.DOWN, Direction.NORTH, Direction.SOUTH, Direction.WEST, Direction.EAST + }; + + private BatteryBlockData() { + } + + public static Direction directionForIndex(int index) { + return MENU_DIRECTIONS[index]; + } + + public static int chargeStage(int energy, int capacity) { + if (capacity <= 0 || energy <= 0) { + return 0; + } + + float ratio = energy / (float) capacity; + if (ratio >= 0.99F) { + return 4; + } + if (ratio >= 0.74F) { + return 3; + } + if (ratio >= 0.49F) { + return 2; + } + if (ratio >= 0.24F) { + return 1; + } + return 0; + } + + public enum SideMode { + INPUT, + OUTPUT, + BOTH, + NONE; + + public SideMode next() { + return values()[(this.ordinal() + 1) % values().length]; + } + } +} diff --git a/common/src/main/java/com/trunksbomb/batteries/shared/ChargerBlockData.java b/common/src/main/java/com/trunksbomb/batteries/shared/ChargerBlockData.java new file mode 100644 index 0000000..85755c1 --- /dev/null +++ b/common/src/main/java/com/trunksbomb/batteries/shared/ChargerBlockData.java @@ -0,0 +1,49 @@ +package com.trunksbomb.batteries.shared; + +import com.trunksbomb.batteries.item.BatteryItemData.Tier; +import net.minecraft.util.StringRepresentable; +import org.jspecify.annotations.NonNull; + +public final class ChargerBlockData { + private ChargerBlockData() { + } + + public static boolean canAcceptBattery(boolean enderCharger, Tier tier) { + if (enderCharger) { + return tier == Tier.ENDER; + } + return tier != Tier.ENDER; + } + + public enum BatteryState implements StringRepresentable { + NONE("none"), + BASIC("basic"), + ADVANCED("advanced"), + ELITE("elite"), + ULTIMATE("ultimate"), + CREATIVE("creative"), + ENDER("ender"); + + private final String name; + + BatteryState(String name) { + this.name = name; + } + + public static BatteryState fromTier(Tier tier) { + return switch (tier) { + case BASIC -> BASIC; + case ADVANCED -> ADVANCED; + case ELITE -> ELITE; + case ULTIMATE -> ULTIMATE; + case CREATIVE -> CREATIVE; + case ENDER -> ENDER; + }; + } + + @Override + public @NonNull String getSerializedName() { + return this.name; + } + } +} diff --git a/common/src/main/resources/.gitkeep b/common/src/main/resources/.gitkeep new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/common/src/main/resources/.gitkeep @@ -0,0 +1 @@ + diff --git a/common/src/main/resources/assets/batteries/blockstates/battery_block.json b/common/src/main/resources/assets/batteries/blockstates/battery_block.json new file mode 100644 index 0000000..8c53e05 --- /dev/null +++ b/common/src/main/resources/assets/batteries/blockstates/battery_block.json @@ -0,0 +1,24 @@ +{ + "variants": { + "charge=0,facing=north": { "model": "batteries:block/battery_block_0" }, + "charge=0,facing=east": { "model": "batteries:block/battery_block_0", "y": 90 }, + "charge=0,facing=south": { "model": "batteries:block/battery_block_0", "y": 180 }, + "charge=0,facing=west": { "model": "batteries:block/battery_block_0", "y": 270 }, + "charge=1,facing=north": { "model": "batteries:block/battery_block_1" }, + "charge=1,facing=east": { "model": "batteries:block/battery_block_1", "y": 90 }, + "charge=1,facing=south": { "model": "batteries:block/battery_block_1", "y": 180 }, + "charge=1,facing=west": { "model": "batteries:block/battery_block_1", "y": 270 }, + "charge=2,facing=north": { "model": "batteries:block/battery_block_2" }, + "charge=2,facing=east": { "model": "batteries:block/battery_block_2", "y": 90 }, + "charge=2,facing=south": { "model": "batteries:block/battery_block_2", "y": 180 }, + "charge=2,facing=west": { "model": "batteries:block/battery_block_2", "y": 270 }, + "charge=3,facing=north": { "model": "batteries:block/battery_block_3" }, + "charge=3,facing=east": { "model": "batteries:block/battery_block_3", "y": 90 }, + "charge=3,facing=south": { "model": "batteries:block/battery_block_3", "y": 180 }, + "charge=3,facing=west": { "model": "batteries:block/battery_block_3", "y": 270 }, + "charge=4,facing=north": { "model": "batteries:block/battery_block_4" }, + "charge=4,facing=east": { "model": "batteries:block/battery_block_4", "y": 90 }, + "charge=4,facing=south": { "model": "batteries:block/battery_block_4", "y": 180 }, + "charge=4,facing=west": { "model": "batteries:block/battery_block_4", "y": 270 } + } +} diff --git a/common/src/main/resources/assets/batteries/blockstates/charger.json b/common/src/main/resources/assets/batteries/blockstates/charger.json new file mode 100644 index 0000000..6ffc113 --- /dev/null +++ b/common/src/main/resources/assets/batteries/blockstates/charger.json @@ -0,0 +1,109 @@ +{ + "variants": { + "battery=none,facing=north": { + "model": "batteries:block/charger/charger_none" + }, + "battery=basic,facing=north": { + "model": "batteries:block/charger/charger_basic" + }, + "battery=advanced,facing=north": { + "model": "batteries:block/charger/charger_advanced" + }, + "battery=elite,facing=north": { + "model": "batteries:block/charger/charger_elite" + }, + "battery=ultimate,facing=north": { + "model": "batteries:block/charger/charger_ultimate" + }, + "battery=creative,facing=north": { + "model": "batteries:block/charger/charger_creative" + }, + "battery=ender,facing=north": { + "model": "batteries:block/charger/charger_ender" + }, + "battery=none,facing=south": { + "model": "batteries:block/charger/charger_none", + "y": 180 + }, + "battery=basic,facing=south": { + "model": "batteries:block/charger/charger_basic", + "y": 180 + }, + "battery=advanced,facing=south": { + "model": "batteries:block/charger/charger_advanced", + "y": 180 + }, + "battery=elite,facing=south": { + "model": "batteries:block/charger/charger_elite", + "y": 180 + }, + "battery=ultimate,facing=south": { + "model": "batteries:block/charger/charger_ultimate", + "y": 180 + }, + "battery=creative,facing=south": { + "model": "batteries:block/charger/charger_creative", + "y": 180 + }, + "battery=ender,facing=south": { + "model": "batteries:block/charger/charger_ender", + "y": 180 + }, + "battery=none,facing=west": { + "model": "batteries:block/charger/charger_none", + "y": 270 + }, + "battery=basic,facing=west": { + "model": "batteries:block/charger/charger_basic", + "y": 270 + }, + "battery=advanced,facing=west": { + "model": "batteries:block/charger/charger_advanced", + "y": 270 + }, + "battery=elite,facing=west": { + "model": "batteries:block/charger/charger_elite", + "y": 270 + }, + "battery=ultimate,facing=west": { + "model": "batteries:block/charger/charger_ultimate", + "y": 270 + }, + "battery=creative,facing=west": { + "model": "batteries:block/charger/charger_creative", + "y": 270 + }, + "battery=ender,facing=west": { + "model": "batteries:block/charger/charger_ender", + "y": 270 + }, + "battery=none,facing=east": { + "model": "batteries:block/charger/charger_none", + "y": 90 + }, + "battery=basic,facing=east": { + "model": "batteries:block/charger/charger_basic", + "y": 90 + }, + "battery=advanced,facing=east": { + "model": "batteries:block/charger/charger_advanced", + "y": 90 + }, + "battery=elite,facing=east": { + "model": "batteries:block/charger/charger_elite", + "y": 90 + }, + "battery=ultimate,facing=east": { + "model": "batteries:block/charger/charger_ultimate", + "y": 90 + }, + "battery=creative,facing=east": { + "model": "batteries:block/charger/charger_creative", + "y": 90 + }, + "battery=ender,facing=east": { + "model": "batteries:block/charger/charger_ender", + "y": 90 + } + } +} diff --git a/common/src/main/resources/assets/batteries/blockstates/coal_generator.json b/common/src/main/resources/assets/batteries/blockstates/coal_generator.json new file mode 100644 index 0000000..1a60db6 --- /dev/null +++ b/common/src/main/resources/assets/batteries/blockstates/coal_generator.json @@ -0,0 +1,12 @@ +{ + "variants": { + "facing=north,lit=false": { "model": "batteries:block/coal_generator" }, + "facing=east,lit=false": { "model": "batteries:block/coal_generator", "y": 90 }, + "facing=south,lit=false": { "model": "batteries:block/coal_generator", "y": 180 }, + "facing=west,lit=false": { "model": "batteries:block/coal_generator", "y": 270 }, + "facing=north,lit=true": { "model": "batteries:block/coal_generator_lit" }, + "facing=east,lit=true": { "model": "batteries:block/coal_generator_lit", "y": 90 }, + "facing=south,lit=true": { "model": "batteries:block/coal_generator_lit", "y": 180 }, + "facing=west,lit=true": { "model": "batteries:block/coal_generator_lit", "y": 270 } + } +} diff --git a/common/src/main/resources/assets/batteries/blockstates/ender_charger.json b/common/src/main/resources/assets/batteries/blockstates/ender_charger.json new file mode 100644 index 0000000..1d9e298 --- /dev/null +++ b/common/src/main/resources/assets/batteries/blockstates/ender_charger.json @@ -0,0 +1,109 @@ +{ + "variants": { + "battery=none,facing=north": { + "model": "batteries:block/charger/ender_charger" + }, + "battery=basic,facing=north": { + "model": "batteries:block/charger/ender_charger_full" + }, + "battery=advanced,facing=north": { + "model": "batteries:block/charger/ender_charger_full" + }, + "battery=elite,facing=north": { + "model": "batteries:block/charger/ender_charger_full" + }, + "battery=ultimate,facing=north": { + "model": "batteries:block/charger/ender_charger_full" + }, + "battery=creative,facing=north": { + "model": "batteries:block/charger/ender_charger_full" + }, + "battery=ender,facing=north": { + "model": "batteries:block/charger/ender_charger_full" + }, + "battery=none,facing=south": { + "model": "batteries:block/charger/ender_charger", + "y": 180 + }, + "battery=basic,facing=south": { + "model": "batteries:block/charger/ender_charger_full", + "y": 180 + }, + "battery=advanced,facing=south": { + "model": "batteries:block/charger/ender_charger_full", + "y": 180 + }, + "battery=elite,facing=south": { + "model": "batteries:block/charger/ender_charger_full", + "y": 180 + }, + "battery=ultimate,facing=south": { + "model": "batteries:block/charger/ender_charger_full", + "y": 180 + }, + "battery=creative,facing=south": { + "model": "batteries:block/charger/ender_charger_full", + "y": 180 + }, + "battery=ender,facing=south": { + "model": "batteries:block/charger/ender_charger_full", + "y": 180 + }, + "battery=none,facing=west": { + "model": "batteries:block/charger/ender_charger", + "y": 270 + }, + "battery=basic,facing=west": { + "model": "batteries:block/charger/ender_charger_full", + "y": 270 + }, + "battery=advanced,facing=west": { + "model": "batteries:block/charger/ender_charger_full", + "y": 270 + }, + "battery=elite,facing=west": { + "model": "batteries:block/charger/ender_charger_full", + "y": 270 + }, + "battery=ultimate,facing=west": { + "model": "batteries:block/charger/ender_charger_full", + "y": 270 + }, + "battery=creative,facing=west": { + "model": "batteries:block/charger/ender_charger_full", + "y": 270 + }, + "battery=ender,facing=west": { + "model": "batteries:block/charger/ender_charger_full", + "y": 270 + }, + "battery=none,facing=east": { + "model": "batteries:block/charger/ender_charger", + "y": 90 + }, + "battery=basic,facing=east": { + "model": "batteries:block/charger/ender_charger_full", + "y": 90 + }, + "battery=advanced,facing=east": { + "model": "batteries:block/charger/ender_charger_full", + "y": 90 + }, + "battery=elite,facing=east": { + "model": "batteries:block/charger/ender_charger_full", + "y": 90 + }, + "battery=ultimate,facing=east": { + "model": "batteries:block/charger/ender_charger_full", + "y": 90 + }, + "battery=creative,facing=east": { + "model": "batteries:block/charger/ender_charger_full", + "y": 90 + }, + "battery=ender,facing=east": { + "model": "batteries:block/charger/ender_charger_full", + "y": 90 + } + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery.json b/common/src/main/resources/assets/batteries/items/battery.json new file mode 100644 index 0000000..e7c2661 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery1.json b/common/src/main/resources/assets/batteries/items/battery1.json new file mode 100644 index 0000000..5fd5582 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery1.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery1" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery2.json b/common/src/main/resources/assets/batteries/items/battery2.json new file mode 100644 index 0000000..d3b7ee2 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery2.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery2" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery3.json b/common/src/main/resources/assets/batteries/items/battery3.json new file mode 100644 index 0000000..c0bd744 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery3.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery3" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_axe.json b/common/src/main/resources/assets/batteries/items/battery_axe.json new file mode 100644 index 0000000..0a47f04 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_axe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_axe" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_block.json b/common/src/main/resources/assets/batteries/items/battery_block.json new file mode 100644 index 0000000..3b1f8d7 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_block.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:block/battery_block_4" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_boots.json b/common/src/main/resources/assets/batteries/items/battery_boots.json new file mode 100644 index 0000000..91bac9c --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_boots.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_boots" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_bow.json b/common/src/main/resources/assets/batteries/items/battery_bow.json new file mode 100644 index 0000000..93839ae --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_bow.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_bow" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_chestplate.json b/common/src/main/resources/assets/batteries/items/battery_chestplate.json new file mode 100644 index 0000000..557eb1a --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_chestplate.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_chestplate" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_creative.json b/common/src/main/resources/assets/batteries/items/battery_creative.json new file mode 100644 index 0000000..c5d0069 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_creative.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_creative" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_ender.json b/common/src/main/resources/assets/batteries/items/battery_ender.json new file mode 100644 index 0000000..8bc9c6e --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_ender.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_ender" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_helmet.json b/common/src/main/resources/assets/batteries/items/battery_helmet.json new file mode 100644 index 0000000..4bfebcf --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_helmet.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_helmet" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_hoe.json b/common/src/main/resources/assets/batteries/items/battery_hoe.json new file mode 100644 index 0000000..e9a074c --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_hoe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_hoe" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_leggings.json b/common/src/main/resources/assets/batteries/items/battery_leggings.json new file mode 100644 index 0000000..a4f7684 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_leggings.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_leggings" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_pickaxe.json b/common/src/main/resources/assets/batteries/items/battery_pickaxe.json new file mode 100644 index 0000000..7ddb770 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_pickaxe.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_pickaxe" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_shield.json b/common/src/main/resources/assets/batteries/items/battery_shield.json new file mode 100644 index 0000000..578d4ab --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_shield.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_shield" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_shovel.json b/common/src/main/resources/assets/batteries/items/battery_shovel.json new file mode 100644 index 0000000..cd7415d --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_shovel.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_shovel" + } +} diff --git a/common/src/main/resources/assets/batteries/items/battery_sword.json b/common/src/main/resources/assets/batteries/items/battery_sword.json new file mode 100644 index 0000000..ad63e96 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/battery_sword.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:item/battery_sword" + } +} diff --git a/common/src/main/resources/assets/batteries/items/charger.json b/common/src/main/resources/assets/batteries/items/charger.json new file mode 100644 index 0000000..22c1713 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/charger.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:block/charger/charger_none" + } +} diff --git a/common/src/main/resources/assets/batteries/items/coal_generator.json b/common/src/main/resources/assets/batteries/items/coal_generator.json new file mode 100644 index 0000000..be69253 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/coal_generator.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:block/coal_generator" + } +} diff --git a/common/src/main/resources/assets/batteries/items/ender_charger.json b/common/src/main/resources/assets/batteries/items/ender_charger.json new file mode 100644 index 0000000..eac7160 --- /dev/null +++ b/common/src/main/resources/assets/batteries/items/ender_charger.json @@ -0,0 +1,6 @@ +{ + "model": { + "type": "minecraft:model", + "model": "batteries:block/charger/ender_charger" + } +} diff --git a/common/src/main/resources/assets/batteries/lang/en_us.json b/common/src/main/resources/assets/batteries/lang/en_us.json new file mode 100644 index 0000000..28b6c89 --- /dev/null +++ b/common/src/main/resources/assets/batteries/lang/en_us.json @@ -0,0 +1,35 @@ +{ + "itemGroup.batteries": "Batteries", + "item.batteries.battery": "Basic Battery", + "item.batteries.battery1": "Advanced Battery", + "item.batteries.battery2": "Elite Battery", + "item.batteries.battery3": "Ultimate Battery", + "item.batteries.battery_ender": "Ender Battery", + "item.batteries.battery_creative": "Creative Battery", + "item.batteries.battery_pickaxe": "Battery-powered Pickaxe", + "item.batteries.battery_axe": "Battery-powered Axe", + "item.batteries.battery_shovel": "Battery-powered Shovel", + "item.batteries.battery_hoe": "Battery-powered Hoe", + "item.batteries.battery_sword": "Battery-powered Sword", + "item.batteries.battery_helmet": "Battery-powered Helmet", + "item.batteries.battery_chestplate": "Battery-powered Chestplate", + "item.batteries.battery_leggings": "Battery-powered Leggings", + "item.batteries.battery_boots": "Battery-powered Boots", + "item.batteries.battery_shield": "Battery-powered Shield", + "item.batteries.battery_bow": "Battery-powered Bow", + "item.batteries.battery_block": "Battery Block", + "block.batteries.coal_generator": "Coal Generator", + "block.batteries.battery_block": "Battery Block", + "block.batteries.charger": "Battery Charger", + "block.batteries.ender_charger": "Ender Battery Uplink", + "batteries.gui.button.whitelist": "Whitelist", + "batteries.gui.button.blacklist": "Blacklist", + "batteries.gui.button.charge_hotbar": "Charge Items on Hotbar", + "batteries.gui.button.charge_inventory": "Charge Items in Inventory", + "batteries.gui.button.charge_armor": "Charge Worn Items", + "batteries.gui.button.charge_fairly": "Charge items fairly", + "batteries.gui.button.charge_machine": "Charge nearby machines", + "container.batteries.battery_block": "Battery Block", + "container.batteries.coal_generator": "Coal Generator", + "batteries.tooltip.energy": "Energy: %s / %s" +} diff --git a/common/src/main/resources/assets/batteries/models/block/battery_block_0.json b/common/src/main/resources/assets/batteries/models/block/battery_block_0.json new file mode 100644 index 0000000..e538d33 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/battery_block_0.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/battery_block_side", + "up": "batteries:block/battery_block_top", + "down": "batteries:block/battery_block_bottom", + "north": "batteries:block/battery_block_front_0", + "south": "batteries:block/battery_block_front_0", + "east": "batteries:block/battery_block_side", + "west": "batteries:block/battery_block_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/battery_block_1.json b/common/src/main/resources/assets/batteries/models/block/battery_block_1.json new file mode 100644 index 0000000..c0af1a2 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/battery_block_1.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/battery_block_side", + "up": "batteries:block/battery_block_top", + "down": "batteries:block/battery_block_bottom", + "north": "batteries:block/battery_block_front_1", + "south": "batteries:block/battery_block_front_1", + "east": "batteries:block/battery_block_side", + "west": "batteries:block/battery_block_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/battery_block_2.json b/common/src/main/resources/assets/batteries/models/block/battery_block_2.json new file mode 100644 index 0000000..60ab0dc --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/battery_block_2.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/battery_block_side", + "up": "batteries:block/battery_block_top", + "down": "batteries:block/battery_block_bottom", + "north": "batteries:block/battery_block_front_2", + "south": "batteries:block/battery_block_front_2", + "east": "batteries:block/battery_block_side", + "west": "batteries:block/battery_block_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/battery_block_3.json b/common/src/main/resources/assets/batteries/models/block/battery_block_3.json new file mode 100644 index 0000000..076a93f --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/battery_block_3.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/battery_block_side", + "up": "batteries:block/battery_block_top", + "down": "batteries:block/battery_block_bottom", + "north": "batteries:block/battery_block_front_3", + "south": "batteries:block/battery_block_front_3", + "east": "batteries:block/battery_block_side", + "west": "batteries:block/battery_block_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/battery_block_4.json b/common/src/main/resources/assets/batteries/models/block/battery_block_4.json new file mode 100644 index 0000000..c6b716a --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/battery_block_4.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/battery_block_side", + "up": "batteries:block/battery_block_top", + "down": "batteries:block/battery_block_bottom", + "north": "batteries:block/battery_block_front_4", + "south": "batteries:block/battery_block_front_4", + "east": "batteries:block/battery_block_side", + "west": "batteries:block/battery_block_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/charger.json b/common/src/main/resources/assets/batteries/models/block/charger.json new file mode 100644 index 0000000..48fb09f --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/charger.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/charger/charger_top", + "down": "batteries:block/charger/charger_top", + "up": "batteries:block/charger/charger_top", + "north": "batteries:block/charger/charger_front", + "south": "batteries:block/charger/charger_front", + "west": "batteries:block/charger/charger_side", + "east": "batteries:block/charger/charger_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/charger/charger_advanced.json b/common/src/main/resources/assets/batteries/models/block/charger/charger_advanced.json new file mode 100644 index 0000000..72da662 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/charger/charger_advanced.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/charger/charger_top", + "down": "batteries:block/charger/charger_top", + "up": "batteries:block/charger/charger_top", + "north": "batteries:block/charger/charger_advanced", + "south": "batteries:block/charger/charger_advanced", + "west": "batteries:block/charger/charger_side", + "east": "batteries:block/charger/charger_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/charger/charger_basic.json b/common/src/main/resources/assets/batteries/models/block/charger/charger_basic.json new file mode 100644 index 0000000..2129477 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/charger/charger_basic.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/charger/charger_top", + "down": "batteries:block/charger/charger_top", + "up": "batteries:block/charger/charger_top", + "north": "batteries:block/charger/charger_basic", + "south": "batteries:block/charger/charger_basic", + "west": "batteries:block/charger/charger_side", + "east": "batteries:block/charger/charger_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/charger/charger_creative.json b/common/src/main/resources/assets/batteries/models/block/charger/charger_creative.json new file mode 100644 index 0000000..d5a6c6d --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/charger/charger_creative.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/charger/charger_top", + "down": "batteries:block/charger/charger_top", + "up": "batteries:block/charger/charger_top", + "north": "batteries:block/charger/charger_creative", + "south": "batteries:block/charger/charger_creative", + "west": "batteries:block/charger/charger_side", + "east": "batteries:block/charger/charger_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/charger/charger_elite.json b/common/src/main/resources/assets/batteries/models/block/charger/charger_elite.json new file mode 100644 index 0000000..c1a0a8e --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/charger/charger_elite.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/charger/charger_top", + "down": "batteries:block/charger/charger_top", + "up": "batteries:block/charger/charger_top", + "north": "batteries:block/charger/charger_elite", + "south": "batteries:block/charger/charger_elite", + "west": "batteries:block/charger/charger_side", + "east": "batteries:block/charger/charger_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/charger/charger_ender.json b/common/src/main/resources/assets/batteries/models/block/charger/charger_ender.json new file mode 100644 index 0000000..cb9506a --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/charger/charger_ender.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/charger/charger_top", + "down": "batteries:block/charger/charger_top", + "up": "batteries:block/charger/charger_top", + "north": "batteries:block/charger/charger_ender", + "south": "batteries:block/charger/charger_ender", + "west": "batteries:block/charger/charger_side", + "east": "batteries:block/charger/charger_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/charger/charger_none.json b/common/src/main/resources/assets/batteries/models/block/charger/charger_none.json new file mode 100644 index 0000000..48fb09f --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/charger/charger_none.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/charger/charger_top", + "down": "batteries:block/charger/charger_top", + "up": "batteries:block/charger/charger_top", + "north": "batteries:block/charger/charger_front", + "south": "batteries:block/charger/charger_front", + "west": "batteries:block/charger/charger_side", + "east": "batteries:block/charger/charger_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/charger/charger_ultimate.json b/common/src/main/resources/assets/batteries/models/block/charger/charger_ultimate.json new file mode 100644 index 0000000..498f08d --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/charger/charger_ultimate.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/charger/charger_top", + "down": "batteries:block/charger/charger_top", + "up": "batteries:block/charger/charger_top", + "north": "batteries:block/charger/charger_ultimate", + "south": "batteries:block/charger/charger_ultimate", + "west": "batteries:block/charger/charger_side", + "east": "batteries:block/charger/charger_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/charger/ender_charger.json b/common/src/main/resources/assets/batteries/models/block/charger/ender_charger.json new file mode 100644 index 0000000..373219c --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/charger/ender_charger.json @@ -0,0 +1,9 @@ +{ + "parent": "batteries:block/charger/charger_none", + "textures": { + "north": "batteries:block/charger/charger_front", + "south": "batteries:block/charger/charger_front", + "up": "batteries:block/charger/ender_charger_top", + "down": "batteries:block/charger/ender_charger_top" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/charger/ender_charger_full.json b/common/src/main/resources/assets/batteries/models/block/charger/ender_charger_full.json new file mode 100644 index 0000000..fa61c19 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/charger/ender_charger_full.json @@ -0,0 +1,7 @@ +{ + "parent": "batteries:block/charger/ender_charger", + "textures": { + "north": "batteries:block/charger/charger_ender", + "south": "batteries:block/charger/charger_ender" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/coal_generator.json b/common/src/main/resources/assets/batteries/models/block/coal_generator.json new file mode 100644 index 0000000..a6beeff --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/coal_generator.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/battery_block_side", + "up": "batteries:block/battery_block_top", + "down": "batteries:block/battery_block_bottom", + "north": "minecraft:block/furnace_front", + "south": "minecraft:block/furnace_front", + "east": "batteries:block/battery_block_side", + "west": "batteries:block/battery_block_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/coal_generator_lit.json b/common/src/main/resources/assets/batteries/models/block/coal_generator_lit.json new file mode 100644 index 0000000..1729cce --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/coal_generator_lit.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/battery_block_side", + "up": "batteries:block/battery_block_top", + "down": "batteries:block/battery_block_bottom", + "north": "minecraft:block/furnace_front_on", + "south": "minecraft:block/furnace_front_on", + "east": "batteries:block/battery_block_side", + "west": "batteries:block/battery_block_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/block/ender_charger.json b/common/src/main/resources/assets/batteries/models/block/ender_charger.json new file mode 100644 index 0000000..1cfa0d5 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/block/ender_charger.json @@ -0,0 +1,12 @@ +{ + "parent": "minecraft:block/cube", + "textures": { + "particle": "batteries:block/charger/ender_charger_top", + "down": "batteries:block/charger/ender_charger_top", + "up": "batteries:block/charger/ender_charger_top", + "north": "batteries:block/charger/charger_front", + "south": "batteries:block/charger/charger_front", + "west": "batteries:block/charger/charger_side", + "east": "batteries:block/charger/charger_side" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery.json b/common/src/main/resources/assets/batteries/models/item/battery.json new file mode 100644 index 0000000..e6a2d30 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery1.json b/common/src/main/resources/assets/batteries/models/item/battery1.json new file mode 100644 index 0000000..c48fd24 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery1.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery1" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery2.json b/common/src/main/resources/assets/batteries/models/item/battery2.json new file mode 100644 index 0000000..0fb997a --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery2.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery2" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery3.json b/common/src/main/resources/assets/batteries/models/item/battery3.json new file mode 100644 index 0000000..d84d652 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery3.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery3" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_axe.json b/common/src/main/resources/assets/batteries/models/item/battery_axe.json new file mode 100644 index 0000000..d0901cb --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_axe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "batteries:item/battery_axe" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_block.json b/common/src/main/resources/assets/batteries/models/item/battery_block.json new file mode 100644 index 0000000..5f9e8b6 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_block.json @@ -0,0 +1,3 @@ +{ + "parent": "batteries:block/battery_block_4" +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_boots.json b/common/src/main/resources/assets/batteries/models/item/battery_boots.json new file mode 100644 index 0000000..b013258 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_boots.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery_boots" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_bow.json b/common/src/main/resources/assets/batteries/models/item/battery_bow.json new file mode 100644 index 0000000..4219dfc --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_bow.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery_bow" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_chestplate.json b/common/src/main/resources/assets/batteries/models/item/battery_chestplate.json new file mode 100644 index 0000000..2c87401 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_chestplate.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery_chestplate" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_creative.json b/common/src/main/resources/assets/batteries/models/item/battery_creative.json new file mode 100644 index 0000000..7e6050b --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_creative.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery_creative" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_ender.json b/common/src/main/resources/assets/batteries/models/item/battery_ender.json new file mode 100644 index 0000000..2b9c088 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_ender.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery_ender" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_helmet.json b/common/src/main/resources/assets/batteries/models/item/battery_helmet.json new file mode 100644 index 0000000..5cf862b --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_helmet.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery_helmet" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_hoe.json b/common/src/main/resources/assets/batteries/models/item/battery_hoe.json new file mode 100644 index 0000000..94306a2 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_hoe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "batteries:item/battery_hoe" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_leggings.json b/common/src/main/resources/assets/batteries/models/item/battery_leggings.json new file mode 100644 index 0000000..1f64481 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_leggings.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery_leggings" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_pickaxe.json b/common/src/main/resources/assets/batteries/models/item/battery_pickaxe.json new file mode 100644 index 0000000..affb964 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_pickaxe.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "batteries:item/battery_pickaxe" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_shield.json b/common/src/main/resources/assets/batteries/models/item/battery_shield.json new file mode 100644 index 0000000..8e4110c --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_shield.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/generated", + "textures": { + "layer0": "batteries:item/battery_shield" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_shovel.json b/common/src/main/resources/assets/batteries/models/item/battery_shovel.json new file mode 100644 index 0000000..840bb54 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_shovel.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "batteries:item/battery_shovel" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/battery_sword.json b/common/src/main/resources/assets/batteries/models/item/battery_sword.json new file mode 100644 index 0000000..46c6b07 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/battery_sword.json @@ -0,0 +1,6 @@ +{ + "parent": "minecraft:item/handheld", + "textures": { + "layer0": "batteries:item/battery_sword" + } +} diff --git a/common/src/main/resources/assets/batteries/models/item/charger.json b/common/src/main/resources/assets/batteries/models/item/charger.json new file mode 100644 index 0000000..a9e64e7 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/charger.json @@ -0,0 +1,3 @@ +{ + "parent": "batteries:block/charger/charger_none" +} diff --git a/common/src/main/resources/assets/batteries/models/item/coal_generator.json b/common/src/main/resources/assets/batteries/models/item/coal_generator.json new file mode 100644 index 0000000..ca7e1a2 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/coal_generator.json @@ -0,0 +1,3 @@ +{ + "parent": "batteries:block/coal_generator" +} diff --git a/common/src/main/resources/assets/batteries/models/item/ender_charger.json b/common/src/main/resources/assets/batteries/models/item/ender_charger.json new file mode 100644 index 0000000..7722d44 --- /dev/null +++ b/common/src/main/resources/assets/batteries/models/item/ender_charger.json @@ -0,0 +1,3 @@ +{ + "parent": "batteries:block/charger/ender_charger" +} diff --git a/common/src/main/resources/assets/batteries/textures/battery_block_gui.png b/common/src/main/resources/assets/batteries/textures/battery_block_gui.png new file mode 100644 index 0000000000000000000000000000000000000000..7d8a08736db3ff900cc7b0d4211e7163727f94e1 GIT binary patch literal 756 zcmeAS@N?(olHy`uVBq!ia0vp^8-RET2Q!dl&D+c(4xB}__|NkF5b}TeBw6d~t?%cWN=H}hq-3kf{4<0-K%1&c8Y5-E) zB|(0{K$TFy;N{Qw2`J22;1OBOz`%D1gc(IOyg+ItOI#yLg7ec#$`gxH83GbB^Gfvm zTtgI0^$hh44ZAqR&H)weNR9AJ^YqkW-~e)18Kf9l85n^qFCdnNvO!+bU}Of1GXdF# zj7$uIKspMDGuv6f;yFMz2z)AIWOxDeIgCcPm4N{$If0#l1*q1*$k>2!0mNL8ovaHW zW=#XKL4XNpG80&3kfjBX1=VF}U;vVhd7Jo)^Tn#&z|f8Hba4!+hQ zYK5Er|38>9neFaU*$V$znG^C#x450i`!J*UOXfMtXBNLqu6=wKvGev1_WQd^<|Q{4 zubZ7bWx_t{GyDwZQYi49WnX%{Wla_5hwq}YSH%u~QJN9Qa=AO9O3+8Y z>7}c|-V*lspW%G&TUGrnb{GBlGU>rvp^#{Vilw?go^O}@@uuw1+kHY!E0_5DI z+Y`=o{dYf$E8e3k2O7w+O#I-NOR{_JKMap%x}$usWbVPA6MntgY1;l>kMmxg+bUhK zyC&#_nhna>}V@ZTI1 N=AN#8F6*2UngDRh1?m6* literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/battery_gui.png b/common/src/main/resources/assets/batteries/textures/battery_gui.png new file mode 100644 index 0000000000000000000000000000000000000000..a36db76063013ae9feb0023766fdbc548dfd01b1 GIT binary patch literal 5621 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 I&MBb@0O61_MF0Q* literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/battery_block_front_0.png b/common/src/main/resources/assets/batteries/textures/block/battery_block_front_0.png new file mode 100644 index 0000000000000000000000000000000000000000..2cf1f33df83056607391d149189b002def952d3c GIT binary patch literal 437 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPFpvg>Nl|hykKo(S&p@9KNHs)>O zFU}XMb_1CXo-U3d5|@(`4zM&OFr;wI+|gp8%_Nzm;HEU=Ay*QGEXsBDDbw|*Ow)u!L|P*n`55dv_*MOX-0cRL>*?y}vd$@?2>{aZT!H`q literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/battery_block_front_1.png b/common/src/main/resources/assets/batteries/textures/block/battery_block_front_1.png new file mode 100644 index 0000000000000000000000000000000000000000..f65e5cb6425c3c92a1e01af92c27db3f082aa6fb GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF zFr%o3R|8N`vcxr_Bsf2>N!KL4Mt|LI1`X<$jHPX2&AKcIJ2DvES>{ogTSXUMurza zpTTH!TNxODk`ve&Sb%B`jEoH!7eLGf*~z*9V%9Vu8w8kuCNqIm23cAFSx{Yu1_mJ6 zn74_)IA5&V4P-ibx;TbNTux3nz|xe!kis!@M~j6vlVp;Do6?MjT!|cw5&|nPTuA7c y!rj7nMU?BZDA(1eK}=VlzGIpuBqGut(a6W({Egr9;5M5wkjb8|elF{r5}E+CTVLS- literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/battery_block_front_2.png b/common/src/main/resources/assets/batteries/textures/block/battery_block_front_2.png new file mode 100644 index 0000000000000000000000000000000000000000..190d11da7ecaaabd2acd407ebcb4421546833f85 GIT binary patch literal 442 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF zFr%o3R|8N`vcxr_Bsf2>N!KL4Mt|LI1`X<$jHPX2&AKcIJ2DvES>{ogTSXUMurza zpTTH!TNxODk`ve&Sb%B`jEoH!7eLGf*~z*9V%9Vu8w8kuCNqIm23cAFSx{Yu1_mJ6 zn74_)IA5&V4P-ibx;TbNTux3nz|xe!kis!@M~j6vlVp;Do6?MjT!|cw5&|nPTuA7c y!rj7nC6w=SDBsnmK}=VlzGIpuBqGut(a6UTq{H7E%pt1{GTGDB&t;ucLK6U~_FilN literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/battery_block_front_3.png b/common/src/main/resources/assets/batteries/textures/block/battery_block_front_3.png new file mode 100644 index 0000000000000000000000000000000000000000..502313fa5cca03028f6a051e69f2c9f86464d2ba GIT binary patch literal 443 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!73?$#)eFPF zFr%o3R|8N`vcxr_Bsf2>N!KL4Mt|LI1`X<$jHPX2&AKcIJ2DvES>{ogTSXUMurza zpTTH!TNxODk`ve&Sb%B`jEoH!7eLGf*~z*9V%9Vu8w8kuCNqIm23cAFSx{Yu1_mJ6 zn74_)IA5&V4P-idx;TbNTux3nz|xe!kis!@M~j6vlVp;Do6?MjT!}#bbcdyF8WQV0J5OE3=IrGvN3NH ze{sH8wHwHE@N{tuk+__kaDb&Lfgy!s=8hH%Z6?Vi1vjM`54jRK8YKi)Ubv9ZF@?K@ t@ro$dWl^rHPnoViWtt`=BGMYs$j4yU!LRE7<8C*|Tu)a&mvv4FO#ljGULpVh literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/battery_block_side.png b/common/src/main/resources/assets/batteries/textures/block/battery_block_side.png new file mode 100644 index 0000000000000000000000000000000000000000..ffe878798b6bf6d510c710b306d83a69399530b4 GIT binary patch literal 211 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1quc!3<9q#}EturRNm+8Vm$nF3Pnr7qE#4IR>cQ zS-5DIROh?cm8&IwO^(%?C;8F%q0P2(mkS41v(B^LUBZ0bXlBBKBUf3NGw1snEC}ah z`=WKQAx>4|!fF=gs;LPM>xFn;gf=nu`#)I!(1A53RqDH@OV%BroeZ9?elF{r5}E*G CszkB? literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/battery_block_top.png b/common/src/main/resources/assets/batteries/textures/block/battery_block_top.png new file mode 100644 index 0000000000000000000000000000000000000000..005c46b6637bc6600cf85852cf45d172e6d2fd2d GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCij$3p^r=85sBugD~Uq{1qucK^spO#}EtuFVdQ I&MBb@0H%a6zW@LL literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/charger/charger_advanced.png b/common/src/main/resources/assets/batteries/textures/block/charger/charger_advanced.png new file mode 100644 index 0000000000000000000000000000000000000000..dc2ef6b049b101d1c496f5c87d083bf90033afb8 GIT binary patch literal 708 zcmV;#0z3VQP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0$E8!K~y+TEs{-7 z6G0fq=WS=(-EEgvum=ljL=pH1N;sGp45K zJU;p!#bYicV+=(hX5;Y~UdYpF``};= zQ;FtGtghY<>o*HfN>ISz4&j9WD~@A^7q;RlrNbGgmefq&x6}6Z$GJjg;w;u#TFQVS z;8nIn9VRGWn!k5jG`#j=W#;J@IW{CdOgd?%pg|*;c=5&Tkq-xhwp)K02CIMN$+fUO zI(X6wV(q*MW-2owYNIri3=!-Q1)lF4wJ_@4`u#Ofe?-(* z|3h1l6dz_OBW4h`@FO7*P#i0yoO58Xa$eXIcvYm37%nW~3UP5EuGUq6w($flLzJfJ zy z=Io1_hq~p3C~oWK=BDrar`;|HgybsK(PY|c%_h@`I5M6jo?l(KF%O2ly}jbL!U0`j qP-qOk#TgS)B4RR#!3oHMmePO84LEVpLb{g#0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0$E8!K~y+TEt1Pm z)Ic1^=h05P-InemuY~L-3z!v6d_+u8v*F-P4(kz@%U-?u-*7jO{Rbp5@rD=^qlv%) zBG2dn1H#g--M(i0cDs|dGn3!*^X-o=EiFY+)NZ#mO-qtQ*Y!A#$zTZ~V4{>NrEu+Z zI%%5HMx)VcwM^68+udVQY6XKx<$Jw?V=74)7h%-rgwNltBi;J?I$c{^L#BSee{yvA zesePt)ERMppZ;QuEj)h~1y?^l@2-N^( z&VDQ-t_j2=DV&+-d8mbZ_|F$YS1Qsuvq#F7BW_KW3bt+;g}C3BQsywsvMj`*f|86% znkMPO{l|_|gH4f))f6V-nFCf31PmKO@kM$=7;s`ln#p-}aybklRQ7x?iNf3s7!XE+ zA=67|=xuT4Uezi;t<1c9u=1ob->5&bgce3IOo)Nv8eV9Rd-wWU$@tCk#KhRm;h*ZX z`|icV3iA3_rdx868>!*Ra6%|fwpFA=)hdT`wSB|sa_8*M+(CWzV0`>KNh1)Uiwqjx zLufTXA&4T3sS9t45Loe0{8qSf&Vi9JU_*>;6_~CMLnKY);GC~aEs|qEhKw}~!;6c* z38pBe7>E&ZGv)d!VI-l9(ICuJG7JO2Ls?POb!|oYtGC}iemOrm{r>Z8XR-BZadrE{ z7PTD(aXyo)ChyPRCcS=6)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0%J);K~y+TEmA#i z6G0Tb-M!m8-<@^D7z~6Ugb7igKs0ob8xRzc+`9^W3Vs1KKY%7ZvSlekL=+Ts6etZ1 zBFIFE9So685;=)%-{;;gvp6f=?bmxVZ)P8<)oN*)uC1+^rYVH5EGx@0%Zs&PUR#sLTjfUemJKuMhQrs)3Tuvupq3Gm7GG-@POe9&pzXZ5uvq?5KHh>hz z@j-Y0-PU`-*`1}u{$96Ko?CwSpug8U`F-^K$A{H`C(-`Do z6pA#Ng+T@d7c^+UEGk5v3VGcBIsUb0n-!7SbCn9AW|C&eL=GG`@xgoS&(F@T^ZE7a z%g2va6_cPMlHo~SeRvjJ3V;o0L{hAfik0trrXazg?RUuW=*RH%o7>4tyWB|#h#?nM zXwiti5UsQn98KwYN~c9JXGx8P(($Y~XN+O3HDE%H?-q!5gSaAaWDwh7Zsvf{mgvqf zW-{O#w2CB2PEJNL&ncl(|2%aK3m`HzL{)C zpTE9+v3+m#i#sU(@ry2SXAPmdwO+4#p4aX5P=LuHq)$07*qoM6N<$g0;Lr A2><{9 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/charger/charger_elite.png b/common/src/main/resources/assets/batteries/textures/block/charger/charger_elite.png new file mode 100644 index 0000000000000000000000000000000000000000..2d4b2e58de8085a912c81e4ff6aa964d6df9842d GIT binary patch literal 687 zcmV;g0#N;lP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0z^qfK~y+TJyOeV z(?ArRhdp-us1p>ZL{v7VLX;Ikq8ma$d_Wdm5fBPrkOg1BAF#~|35i5ee*%_BT~fL! z4XaA1r6h{u$Jn0XOkFXu$9FvUp2wY`y==%}ZTKElJsdbz*Lboav=T2T^RMGpp_W(DUOz3z#22z$~zfONn z4i5Zw*lKMo|1PprChOD|b{;3gS8ulO?$m?~O7H=r6NGL{Vs;;>q)NdyfzW6sQlqpvW?%RBeWNo`*WKr++fN^t`txY-J(6Z0KIXDO4uqiN=0)$ZUM?0?$**ePk)4Ohmmlt6!nFEhwO7$L7n%uV z@H97FLdT4013@WBqbT5xe=^#MUVl0xl1qI)eSkf8qaF0#0=K>p=C=0xec$&_=W~!- zf){xiuanKqc9z7%7U??k{KlQm7CcO+Q*&Fv099xdgn<|SfK*#VXAr|DOd7Y8{sTb< VC$2JnU3dTh002ovPDHLkV1in6E%5*V literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/charger/charger_ender.png b/common/src/main/resources/assets/batteries/textures/block/charger/charger_ender.png new file mode 100644 index 0000000000000000000000000000000000000000..bf7f24ab776664631186fe0a65365646d1cd944b GIT binary patch literal 697 zcmV;q0!ICbP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TDJa(uh(;3_w3u5W33E4TbfxEdri00#&J|uq}0&$jb|7)7!2tC{yrw9X?l77V{m*N zw43wubCc0HP4ak_2r05C?!Vo8@^q~RWMF~~h^ogxBE&a=7s2S&tLAo zE0>nC<;UM|-gkEQxPl*_vb;bIh`@1%4-wiX<1r;VXwGS0#iL0yyuG^_j(%NpVZ#R@ zW&;Gb#QsMOKR|HD%;m{xdigUSPi&G9t&N5eIppHjD$ywVC)!q0{(L z+U<6OAUMCcfCes|BGb_Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0su)wK~y+TJyJ_< z6G0H|>fiiqnMI^55NrS;xP#>*c<+_(5X310dtbno??aX(93VnLwr8gQyz(GM_H@;B z_4`yctyU}V{dT+6TE`fTF(CwTeXO>zkjEgv!)WVgmKI{ zPiAD>wm8QXSqec2q~y2a?d*eZ>jo5zA;d5YD1u0?u+~@&-6{i`8A@v#tbIR3@1`=? zkl=y`?w64vhE$TcGT>A{4hXc=&IiawjE+nEAqmI+yu1KaC8~8T6n6O`DFLx~wE#9! zOiBKaW^IQci8A^@Bw{-xbZuZXCXY8%uxS+iGhK)iK~`Z!qTwS94qq`=lq!Wr5PQIa zGqbiaU8f{@%z=c}q_1WQrovqilMM_&B67|>KmT@@OOY(UGS;~eb0MCk9vpY6swy^( z2n--yEM|yHW*8TOsSE<-ZClUgEpVp`!MAn2UUyyh`1Aw?+N$8<`O@Fs-i-ZO7&~0X zwrk$LeghAO!+~!r7@!J`f-vyHACM-C=nP``oLWyre*rJ7C=)v7Y&ie`002ovPDHLk FV1mG921Nh> literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/charger/charger_side.png b/common/src/main/resources/assets/batteries/textures/block/charger/charger_side.png new file mode 100644 index 0000000000000000000000000000000000000000..740954bfac00cdcb70b1f81240dace7ebc244a9e GIT binary patch literal 389 zcmV;00eb$4P)Px#1ZP1_K>z@;j|==^1poj5T~JI^ML$13IXO9*nVFrPot~bapP!$anwmmFLOne_ zmzS5EoSc@HmYbWKl$4a1n3$lTpp})CkdTm*larE?lA@xbp`oFqq@<3Hj*pLzLqkJ8 zK0Z1+Iyg8uK|w)4KtL$cqGtdA010qNS#tmY4#NNd4#NS*Z>VGd006N`L_t(2Qx%U{ za>GCfL`gFuW*I~zJBt$M{>L=)0Yy>WuYu?di~(SS0PjRM-OM?3vZyeKu&F4Z5YK2C zanCzOwy9dk^ifdBBOKn_G-^^*W^N-@kOzq@`dQs{`6#D*M2XBs7bYD!MPx#1ZP1_K>z@;j|==^1poj5a!^cEML$13IXO9*nVFrPot~bapP!$anwmmFLOne_ zmzS5EoSc@HmYbWKl$4a1n3$lTpp})CkdTm*laqFKc6xexbaZrZaBz~6l74=Ed3kxF zqM~wga-pH2eSLj+czC3wq>he`kB^T-Lqk43K9P};KtMn+z`nNt000SaNLh0L01m?d z01m?e$8V@)0002ENkl`ymJf{kBC6Tgk z`xIRC=uvj}xK5G2l?9#F>@Bx|$?c^@5lHxc)d;-4Wla+dYU}oX`%wQp9Lk*FPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0zyedK~y+TJ(62) z6EPHq?PHHUm!wm1QK3~M6%e93;3Y(?Ag?G0)b+4~ZlG0Pct8k=9k2i@BpzB-2oXV3 za+%DGJ!6}H2*Oc((fr5f|BeqIjYihmqoX4!W!tt<6g5r5{tl%SK5@=N2soadojK?D za5$VyCUG2}e?Au>s4NN2uZuG2$FB84Xw%f(^CyRop*}e|;m60vxT&hDtILbG@89`| zZ{ON-tt*y=wM_`FEt^*_ULHJnh)a=>-~R#UmN90&=krGK?XSt3O#RV5q2_fpb zhL~2X6|CcI%7QqhNj4Z9?B0JQMJzj^N>tp`H83_Xl%^@-kRf;?Mv??4j#CI8rZJ?5 znCJu;a86hdidm^h$w>GR%C)d{CX`}A5m{5W)@)>;mEL<;A|f7xY*J+jv_Vy8TdV1P*D>A?p3I$`x3qIVmK}2P+2PYsqTF(Cf$&^Qc Ta_0j200000NkvXXu0mjfn8_x7 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/block/charger/ender_charger_top.png b/common/src/main/resources/assets/batteries/textures/block/charger/ender_charger_top.png new file mode 100644 index 0000000000000000000000000000000000000000..ef7f503680168d98d08cdda47ace279575afd57c GIT binary patch literal 806 zcmV+>1KIqEP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TK~y+TT~bR= z6HyqwkC}ElLuWdrh%IfQ6=G7vq(m1QD-no@q{QeJg_RqB5nFbZjS_bxCZHi!V+gh& z0R$~Vp%2>WW7?U{!>?N>XEFEQ@B8jK=N>#UF`?`F($W&cFot2UEc+?Db6P4QguJ3S zH5SJh+qMnMR4QefCJl$f3kwTQr&DdWKksFJ7cR1DHHVC%ZIs$gv)(+p$cuvD=7m@+ zmdRxB^7697;V4xr2bcK|hgl0DPi%zsNV=-3SC!V$ADI1Ua3mg%1p2N47a+pa8jbz@ z+1k&Y;LL>JcGnv9(n+qFFHk4z8NUS$>*;N+)q2RVUP+>plauMg{q@{oU^>yLDl>Dl z`k?>fJg*)cTbd4at*RmoM@~*pm9zZq;Sq-Cd5{H6VD{tLCqJ}W_U&5b%eK)_F+*+C zm0L$xtJN&o1?|)~a$~nurI7*C!NBZH>V0W5-N_g1wr1-(LKstOn+9fCwWF(5h024$ zoTUpxq4Mb&FuB_N+O5_*$h44UW0oPD)72|efv+oyUaF9ergtu%7!S;DMk3x761SM literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/coal_generator_gui.png b/common/src/main/resources/assets/batteries/textures/coal_generator_gui.png new file mode 100644 index 0000000000000000000000000000000000000000..5dfd24e42fcdcb0d07bc306d3382d49aecfb251e GIT binary patch literal 816 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 V(!r2xu5SPU002ovPDHLkV1jSssQ3T? literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/item/battery3.png b/common/src/main/resources/assets/batteries/textures/item/battery3.png new file mode 100644 index 0000000000000000000000000000000000000000..22012095411808fb065929d0b61ce42225fd08ec GIT binary patch literal 1467 zcmV;s1w{IZP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1yD&uK~z{rtyfuW zRAm(Y?lybdX)P^C0RgqNDO);KP-J^B(GZIU619OB9*k*>iN0zi@y+<=lNuj1(L^N} zUkDnW2qq;B1W8F3+Ekb_Q)W6#XTNio-}B!)r7g}b-|e~g&cA+V`OmopW2~x-jEpc* z5}6G?$6FZR%G10GmT6- zYmMpX?7*4#Mi7bQ(CU|=W|#5D#Vfe^*9{B~4q|+KT(Aa~K~)0h&ws|g{^mO{r-(f- z>_cn2AMJi0(y0tW!63Avid;@bA*bQlzMUxK4JZ!4G<1aSg)wty20m(tClbvO*gY`7 zW*36kx??MxZUu&>W8>y-OY=f53qcg1YX;KEEDXc2M3f|uo8b03kx8Xsqzy!(k>&^l z1_LaqrO@JU#bWS*)n*zd%@QDz$ch44wm0N%S5?h=mn0EBzXzFQ5}BxmSbV8D0z-iz zwh+6ImX1~w3o6>l*QRMw4AOe^_h>GE@Fv~q9*w79aZ9a2r8iW0Ts+)6EC6LKvpwT8= zJ8pW1(}m+N9mT*aec1T)F}NICXq2&Pi4yp4iCm)JWvB``HTB?NX4A$T`v1stsm zS&~cdd}>wY>Oxfl9R3zRvMD>_Ic#lh*F1s!YZI`7&WiH25K+{Y=-B1y{r|D3NuV4A zK|(G+XOUp6WEsmUHsMB4lfdHv#x>3hPRfeMDF#}}qtmBOvkMn5pnH24blt$_o-OEC!dOh}$jHyYbabJp<`4=^!emA3lyG-= zylxb-1+W|tU5Zu=l$r!i4xeQArYCUj-M6UN6yR_uFtY{(ojN5GOr|HTq4HoAZG-YP zJ#H6nO-$j!m1|f|C7UNOeByPMXiMUYFF&N>lD8J;7j13z^Rz7T`?*5;*tC5yYUDS{W461!qA*-mSq9iqy8chYSftWN__P5VHsW zL?T~0DrHbJ2zmZVLc=x8<2F&?aswe0|MsBe7Y~yE$QWnAM}1swB7#YlBDZ)@@=8V2 zbqctN71BzfCwDm)G68g-iQelz9KJC~4MnSeMJQp@Ro%KAH3_VEh(B!a(`8ZwQqAXn zkH-_Zdp}%uA=|wbt#6?&3#&SXEOn{LIvO{U;Jub@o4Bhi?^vrkB_Knqm71T$dqy!Hu`;uW6 z4J#KIGKpl^1J;2i(dm1l7FY>Fov9G%Q(dAnCQ#Cm=u4RQHiHHU@SA{_ukJ_Jqy$4@ zh*R~OnG4Y&Eu-m^hyh*!R~F%Sft!`wEo-E?CgCYxJGOOq@h?MbOrxmJ0+e|qQ-jFQ zKLz2v-Y6ylK}_ynz~q52V$a7x#vm)`>x8?hmIdl4Mz66;!cFXYXFCM116$tMMB1+E z%d?$kDp>e-8nSma7YLGo$YciiY95hft|E(?1V%?k+0Q?HPahlx9R5AncD)B;fuf#I zvwebm+J(8jzd~@+KZYgnZvHRKbNzcUHa1q-3|4tNS%G}r0G|+7K08yR7bn#>%+NZz%EMIjKLZDcs=~2j$JFJx8yXt6Gq6ov%8>3W z*Pf;h)N#nn=@O9QFA4Gs{*M9}uH2ci5Gci2;1OBOz`%D1gc(IOyc&Rlk|nMYCBgY= zCFO}lsSE*$nRz98ey$-3rh0~YhK5}nV&{O0cBDplrg?g5F>nAmtPE0&tPG4mmKP99 zL)joNYA`Z`#hHL?Lq;YBK_DFk#F_0ZVDTIv8w5U;F*3XWh6Id8x0QhbC^>kOkFcXkY-6jd`2+i}S^*-9ToXr;B5V zMsV!;NWKFK94r9=Vu81R%WppzruekGl8dw8Ki8t_+sq9+e(^ReO=Hku?O-<*v%T!KYC?wjM}Fyy8OxbXZr|9f9ly`MAuXl-&%Omu=dAntijlXO`{MJhHgiC> Ndb;|#taD0e0svP{hok@i literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/item/battery_boots.png b/common/src/main/resources/assets/batteries/textures/item/battery_boots.png new file mode 100644 index 0000000000000000000000000000000000000000..73a4b2f542b82606405a41fc0734a771fd4bcff4 GIT binary patch literal 506 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}@0G|+7K0DJtfBww>@svYV!SmI%{|p?*jvZ@gXizx3c{>A})QY83mjabC zc-)S>3Z!^Tg8YL2BLN267fNkF3C;qK$YKTtzC$3)D5~Mr02Gugag8Vm&QB{TPb^Ah z2uRG#E79|F4N)-FGt@IQ?BWnR2UN5pHNrE^(^HFq1IS@zkYZ$IU<9(ffLI#J26;_` zkr^z`1Y{dBGBF4O=_nx1Y-a(B=K$Ft@TrWE;RP@RU^Kd|3=BZY3G56kK(z)&#s-WF zAm)PXWL*F;YZ{OZ0!%=YnZPQ8EG>X6s4hbT1CVUY+r(d-FIMdaGNU|Q978mMd(V0D zH5hQPUdWfcUG)F6RFrS9Z;y_IoQ{JH(|?8oQ`H`5lsxB5b$G~nvq`)ml{xUH-hw2~ zbMsUeT+J%W<=7Rbyof{TyIbRnX~}F)nFRm-{iQzVydI~RSleVZkd2NS%G}@0G|+74^z?hH1%{}IdwU1K0DL@3>?Rf9dmYeZfI!WP*vE@z&3R$P$|QX z%Dxvsink=lFZe$aV6c6m)CQE`EbxddW?8eR=RLCF%=h?3y^w370~qEv=} z#LT=BJwMkF1yemkJwwAT4zY7UMLSX>JkvZqwHP>n999M?Mpgz!Aj=DgrJ-z)*EATJ z!QxCnwjm=EgCLNO0^-be7O;2@kPQN#$`~1507C#qqua{B0F<1-&cFgxYhYw-z_imtTM>b0?2~uGBhv%$;P}*{KffV)ovg&%G1R$L?bx%jH6hC z0*C8GevX-&{(miV@jW&1{h|Z)>_7P)Ffb&kMFuSJQBr!{I;-zP_FIi*U%$O*NLst? zD)X+b<#G-4tQvm5WSI5ayr!DL`xWQP@6&nyW!5wN7v|g;+GA!5veDDk&t;ucLK6T} ClY>G4 literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/item/battery_chestplate.png b/common/src/main/resources/assets/batteries/textures/item/battery_chestplate.png new file mode 100644 index 0000000000000000000000000000000000000000..8df55e2490f582cfe5c70ecbab39e9d836d3bcb3 GIT binary patch literal 520 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}@0G|+7K0DL@3>?Rf9sBd=PeVfkhpNK-A5T4BUE9vUrf_)k)TInkE0zM) zPR?mj2U5HxL4LvikpP433#B%o1ZROqWHAE+-yslY6xHx*018T$xJHx&=ckpFCl;kL z1SDqWmFW4ohA5co8R{7tc5#TE11j2)8sVAd>8ZuQ0pzeUNHMZ9FalX#Kr9VqgS@7} z$P5-|0Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1ye~xK~z{rtyf!Y zR8b~;Swao@*%?j1^j>CCjU+TDBS%s%_9{W$xaf-zQ6 zy1KfUD2YrE1SX2!69O1eT{=5D$V7R&cSPWSD&g4CW32o4U-8`jJ=nCR1>;voAS*Ji z3|>ZVKJV((H`L?kdtFE-3y4Hz==s|?+x-VF{MCoHwl?(k_6n|I8B`>2;>73dn{U4d zQ$=ilb_XJ{C}Pnt=Ce6WCK50W9fg7ptzcsF)=kigHWVM=*cK+orZ6%%f-nuF=jK*M zU|VY|yE>7;hK(Db1{Bz)g|+L~xSnf;JOojIW!jj}^GRUP&%%*2n zMxZ_3&L(EZQCA;B`eUl6lk(c6o5DuuYEfdVSOM<`GuZqD>i;whQMq5j~;^G_?3FLA) zn6wD@j)&f-`f=d-eQ14gE7m@`AAVmGY1wxpQ3C%gQEE(s=2k&P0>hVwh4{91B(5af zf+Ne2CAsv@r&e^XCR8NA5v_|NpYp@E(yj;k#VEq5nc|e61cy>xW`37rLK5@dcZ0a^(p9Piu5cZ2FxbY(5XZ6 zqE&rrY0lE9DFWO_-gx*aBq}OCnEeFnCcnV$t)Jn;H&ZygcM3ia1W{;Mn?`GVW+!KW6cw*VOciTH#VU~nZoqEg`E629N%gfdI6J@LvWbk z?h>AkU?>1BuYnbS)J$s0La9oiv!jy@jE~}tx8H@PYjoK7U^9(oT5zDa+mT1c(G7}{ z7f^1~9}Hl)zaM}8(v92M%*qLL9DJ48=@{Ps=u0ZRtZST45lhqD8YEe~Q}~t@9R>fK zJAHfF?g8CNhaNeDOESfp(5~%5b7mi;8oVusWfS1*MC=BHSdfa5!3t6b zY@oqAky-@a4<0;6?!~eR@ZR5)Z%3omNFN-GhHoIlEN}kBLU9~?hF^1#B`|a z$ZLhFO|WU--3LD7p-13O5t(gISfXI$a@7d z=_IB{u7N!mgohIW-scyL(1Xz~a0CaIXu_6EgkoVtA6r9d@KlzInj#?6k1jbdMDI$z zZmb#2*W=i9eJ7qC+l7YNr(h`z21Q}9xM`{qff^2@SD1EI#{MmDAtHpZyXkc>?rmur z?{=!`;MBx-2*@FCkRZ{mX)-y4lg3v_W(rHPs7m1Y@#E~&Pe0Iw!-g-q9Y1dP4MkC- zqnJ_nyi1C&IFG}9tq=nAk6{ViDv#HbEzh8*r)TLfc*kq)!lx`2UKTAI*U?wy^(za* Yf2!2up=pcODF6Tf07*qoM6N<$g0&v5ng9R* literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/item/battery_ender.png b/common/src/main/resources/assets/batteries/textures/item/battery_ender.png new file mode 100644 index 0000000000000000000000000000000000000000..7f4dfc3b53540fd2760df21a361ea46f3c79d7b9 GIT binary patch literal 1585 zcmV-12G043P)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!TRaAIrq{xU*o0YN3r|a2`t{2hZ<0^Fgu58 zrRJ?k52bPTooVQL9f_n0qgKMVm%hiZKV8A(CJ*z(& zfvL$Uw`i6TPbRRMx$Vt4w!^n1$Q)`Q099=Z6mB;R)4Nv`8L?yp)nXCVtchHH{m}>< znL6Sw7ZDohFy z+6mJKwGd9c@;VM2+mF#Fjw2Kt=PLWIB{m?Q6}rZ3@m(MEByfH1x-@n02r>&9FW|T{ zR7Ksm7q9kIt}pZ?AdrkFQ7gA2UZAaQ+cl3tzCQsk=)5Su7cyGrI@7Mf`>nC?CC~|y zq@dpT+auw+8c@FlQ0z=XyPNn=$!!5T1(hOq*}%yOMYVn9yM!(fFJL8}F| zjd!}EFAE4AMd1-$NDgRtH}^iqmOsMF`#->YZ)b7()fEJ>580J<42`Ctam~KN`|!)P z89`#R2KT|Y8J#(O#=UsyB1U#@gJs#+{^U3&0xMXpSg5K`!wGIf%cx^{`7bzb%gYks zjz~0&W~~Xg4rJG}T?56Jz^Rj`+}Ua#$KHGcHVaKVzgsLq7R*Ky77LSr=mWt>7)p@c zh+u)ntv{||_PZZYDi^yF@Q(qzh1BQ>hK7eRzGEDF_U^?~d-q^y_f8CsjUts8Kzd*R z+Xe@DO(Mv0>Efs8y=o zsFq477YZon3&^jpL(+n@L~CQG&hRHd<7q6xv3ML!y6c~uj?B%QD9$dRa4SPU*HO;p z+4)KwWs)efJ(s+B;U3vXLSI=B2r=#02@z0`uTV%f2V-d!c8R@$aS#iK;V>>FT0~;{ zNun0;YHhU_2#6T18cpc+DhhfQ^&5*YbefkzCovEkB$Qv%MHJHC797sGUNK@WaIT%i z-O-l?8Z>7?94=_;mYzdBSKwUD6BG`HXc*Pg*b~TWyD0M1@IVQF5PcCa7*x&0WtfFB zpO}httRgF(AfA}nrrW7^9~eApIOI#BF9J6GY?mr3f-_I5xmTDz%q5UuXK|nENu%|KeF@JOqc?khYIP zjz+d_0j~p!qqopbR25-zPiqRJkHb8yCcPS=Lgn#Y8yRM+P9YhMLG9$4P3X%4La;;< z!U94eo7%f1Se#qH?3Jsy`tuAHe*Y7$B;uz#eB1H)^XJ{KzWjm*4z}Cm zAw2ii3;aam_W;u`7>^;qZw8^|j~{;mDSWpch+V}e%$|woF*7sM-3)@j!wm7ty@NZu j6T8OvQ|I-)hl~FJeWexDa*vMQ00000NkvXXu0mjfanjWT literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/item/battery_helmet.png b/common/src/main/resources/assets/batteries/textures/item/battery_helmet.png new file mode 100644 index 0000000000000000000000000000000000000000..00e1943c334a066169d355bfae49ec1de94743b8 GIT binary patch literal 499 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G|&0G|+7K0DL@3>?Rf9cyT4;80cYe05D~#nSBzZ1aCSRXDtP>QbOOhL%kw zc0h`!B*-uLKLRia-9L8@D9%~n5n0T@z;_6Q8AUa`8i0b5C9V-A!TD(=<%vb93;~Im zc_n&&t|1DhdWL$2hFu(DAe}o>BRtbQJ+&A(fE-o^DMnTXMj*=zh^3)ykhe4#nZe>r zK(-+x6N4a-jsoJ$b{4RB4v-B3pUM~+UI2X$qtR_;U;s)^U}se&Heg%;F&AVf z>jH>b(|~LcU;>)V1XdYjX#r$Gbr~8MfMjFdCjR1lv1&Jv8Sd%g7@`q8_pCQxgMt9_ zg>(EeRsVlW37ANPmt8kMDN@6FpWzhSBBq499xGNS%G}r0G|+7K08yR7bmrjuHsNtP~R}a!&EfgSMEOphq@g1v17*?8XC4UuuWac z(4M9a)S;YzQwB)!mjw9*|3?7~SMJPM2$bS1@Q5sCVBk9h!i=ICUJXD&$r9IylHmNb zlJdl&REB`W%)AmkKi3ciQ$0gHL&Gi(v2#F0J5nP&(>y)37&w3&Rt70XRt82O%L|C5 zp=^*BH5i$};!HrcAtMumAdrp%;>>myuy_uT4FaFa7#UswLjp#l+seQIl$^lMzyefj zU}S8-xBy}<$WGP;5VNKM*&x6KG?@vkGRV>b$b#xJG%x_k#=K4Z#ra~@ZV=Pc#W6%9 zIJPfP=zswWtErO5r91z3%vI`LDW5-GGT|>*S-Z#X*rgSBq&v1UY*oJIv_dCxL(x$c zhn>m$7A@xIJ{R16*51+Bg2i;^IlULt9K^5i?N>VQ>+$SM<`rg(6dpOFQ?ECH?DTZ? Kb6Mw<&;$VF3WkCJ literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/item/battery_leggings.png b/common/src/main/resources/assets/batteries/textures/item/battery_leggings.png new file mode 100644 index 0000000000000000000000000000000000000000..0010c2e5e4a2597df1c2655f7724fb20d8b8980a GIT binary patch literal 508 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}@0G|+7K0DL@3>+M)3iE$F{qyI~v17+PUtN=0v9zI~LE-S`?F?*FmjabC zJQI1e1xWFh1o;L3M*-L1 z5RjOeSEA?V8lqsTXQ*dr*u^1s4yb5HYJ_K+r>7PJ2av zBQsc>3CK2NWMU8m(osO1+0FtM&jGSQ;8PhR!wX;tz-V+^85n?)6WAG8fNBklj13qU zK+FZ%$+`ey)-)g+1eky(Gl5kGSy}*DP+f)w1|Zp(w~4A&ZrO=6d9`D}PXxoP1~u39G783l~F*4(S3PB00TW$bQTQhlAht%QBe z9*I87*Ij%r;vE~Ex&?2lA7MS=*PxoB&%m^)-Y&eDVJ-*9<@6NS%G}r0G|+7K08yR7bmrju2SDH!^2ecKLZDcs=~2j$JFJx8yXt6Gq6ov%Fv#s zp6)9L)RFGFLI+6kmjw9*|3?7~SMJPM2$bS1@Q5sCVBk9h!i=ICUJXD&$r9IylHmNb zlJdl&REB`W%)AmkKi3ciQ$0gHL&Gi(v2#F0J5nP&(>y)37&w3&Rt70XRt82O%L|C5 zp=^*BH5i$};!HrcAtMumAdrp%;>>myuy_uT4FaFa7#UswLjp#l+seQIl$^lMzyefj zU}S8-xBy}<$WGP;5VNKM*&x6KG?@vkGRV>b$b#xJG%x_k#=K4Z#ra~@ZXh$>)5S4F zBe=BxHs1jS4(GsyT~`187mJ%OPdWX|sp^#KguO2I4Q(CD954}oruGa7zBJ^O6x%==2y?H5%1|ND*Qw-)z|Qs3%T PAZtBc{an^LB{Ts5WGjqm literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/item/battery_shield.png b/common/src/main/resources/assets/batteries/textures/item/battery_shield.png new file mode 100644 index 0000000000000000000000000000000000000000..11849c4297ee12cbe2e24824c2f1d5056bddbb4b GIT binary patch literal 718 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE3?yBabR7dyjKx9jP7LeL$-D$|SkfJR9T^xl z_H+M9WCim50(?ST^YTlpYZ@m`o}C(?AL*jvYb9r8Z5I_1;9wx;Vj^v$EgTab$Y*Ez zpMfJLEYQHfcOj!B9N4G0d60vaj4IwlWDNtFco1^>qd z7(|p9ZUI$s7I;J!GcfQS0%1l`4X*~Epk#?_L`iUdT1k0gQ7S_~VrE{6o}X)of~lUN zo}pnEhuArwq8+Ibo@t(*S_~XO4l9EcBP#F8WQV0J5OE3=IrGvN3NHe{sH8wHwI%<>}%WV&UI<>0r?z10I$D?zK{D6*Hw2 zc>n)jEW6X0IYhDgqho%KciGOjOYVeEJp6F!wIcRKLO=V%7Ocv65xMpNgNBHJro7|} znPtn^T9+KStHW`CH(>4C0-IfHzOp+^@RG=8bD83G)ndstUj~U4DQsI9vmJ~W-u@9+ zU}gQ_HRr)|Mbth7{8drE#u~##-p+RajMn!>}Lx;zb;Yh z(0y=qo#ArEJ^lYBwF6!<%2GANwMuH`@Qro-~yL^0bYRrdS)nD<;- literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/item/battery_shovel.png b/common/src/main/resources/assets/batteries/textures/item/battery_shovel.png new file mode 100644 index 0000000000000000000000000000000000000000..70dc8a664d218c237c6d26329eed5432e1d3aeaa GIT binary patch literal 509 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}r0G|+7K08wmRRyCLC)GF1&^o&6KLf|HW5*gA8n!dAO zo$f0K)S)6HqyVJ&OM?7@|DyngD|cor1WIuhctjR6Fz_7$VMb96uLhu?WQl7;NpOBz zNqJ&XDnmeGW?qS&pKFMMsh**pp-iXD}xjxD+42tab`OUSUd;F27ymyj0`V;ApxV&ZDn8pN={&BU;(N% zFfuk^TmUf_WGCwah*{HsY!F}qn#=@N8DwbzWI=Tq8W@0NW8NnI;(W1cH;@_X>Ealo z5nOxLk?(*4hs(u-TpG9T{okRsB&;N`?7yJMdBY#f4Q38r;;alt%NY_L?rGc*RKXmy z<-)I}ULXImhg~gh+8XzK?f1L)OANAC%O?Hyv`?JPXqm?&*tUDae~@LKu6{1-oD!M< D5w(QO literal 0 HcmV?d00001 diff --git a/common/src/main/resources/assets/batteries/textures/item/battery_sword.png b/common/src/main/resources/assets/batteries/textures/item/battery_sword.png new file mode 100644 index 0000000000000000000000000000000000000000..1b9cced269afe704b0beee68bcd00f8d35479484 GIT binary patch literal 532 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!63?wyl`GbKJV{wqX6T`Z5GB1G~mUKs7M+SzC z{oH>NS%G}x0G|+7K0DJzzut1FDrg;DW%T0Ye+G_Y$Bv06g)}rY$aR!$XJDJUl)=MP zG~HLOJxyI*jvJ_NQQn0IKuWMA$S?Rm8emXeJ2MF=$ywkLSj7GPWfdMEv zft`T`sMf&9*nn{X#9WY_tP3D!O#`w)fC*?a6If-Cr3H`$)n#a40FsS)oA`_K#j4#v zW{RhaV~9p@Xb&e}g8>H%`z@jV~Xqv|o0Mx4<^_g5oy8^-jN6 ZUFG($=V6nMs{9AC+tbz0Wt~$(699@ck7ED; literal 0 HcmV?d00001 diff --git a/common/src/main/resources/data/batteries/loot_table/blocks/battery_block.json b/common/src/main/resources/data/batteries/loot_table/blocks/battery_block.json new file mode 100644 index 0000000..7b59ea1 --- /dev/null +++ b/common/src/main/resources/data/batteries/loot_table/blocks/battery_block.json @@ -0,0 +1,4 @@ +{ + "type": "minecraft:block", + "pools": [] +} diff --git a/common/src/main/resources/data/batteries/loot_table/blocks/charger.json b/common/src/main/resources/data/batteries/loot_table/blocks/charger.json new file mode 100644 index 0000000..0796530 --- /dev/null +++ b/common/src/main/resources/data/batteries/loot_table/blocks/charger.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "batteries:charger" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/batteries/loot_table/blocks/ender_charger.json b/common/src/main/resources/data/batteries/loot_table/blocks/ender_charger.json new file mode 100644 index 0000000..d381cf8 --- /dev/null +++ b/common/src/main/resources/data/batteries/loot_table/blocks/ender_charger.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:block", + "pools": [ + { + "rolls": 1.0, + "entries": [ + { + "type": "minecraft:item", + "name": "batteries:ender_charger" + } + ], + "conditions": [ + { + "condition": "minecraft:survives_explosion" + } + ] + } + ] +} diff --git a/common/src/main/resources/data/batteries/recipe/powered_gear_upgrade.json b/common/src/main/resources/data/batteries/recipe/powered_gear_upgrade.json new file mode 100644 index 0000000..f83b322 --- /dev/null +++ b/common/src/main/resources/data/batteries/recipe/powered_gear_upgrade.json @@ -0,0 +1,3 @@ +{ + "type": "batteries:powered_gear_upgrade" +} diff --git a/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json b/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json new file mode 100644 index 0000000..2768238 --- /dev/null +++ b/common/src/main/resources/data/minecraft/tags/block/mineable/pickaxe.json @@ -0,0 +1,9 @@ +{ + "replace": false, + "values": [ + "batteries:battery_block", + "batteries:charger", + "batteries:ender_charger", + "batteries:coal_generator" + ] +} diff --git a/gradle.properties b/gradle.properties new file mode 100644 index 0000000..4ffd2e7 --- /dev/null +++ b/gradle.properties @@ -0,0 +1,47 @@ +# Shared Gradle defaults +org.gradle.jvmargs=-Xmx1G +org.gradle.daemon=false +org.gradle.parallel=true +org.gradle.caching=true +org.gradle.configuration-cache=true + +# Shared mod metadata +mod_id=batteries +mod_name=Batteries +mod_license=All Rights Reserved +mod_version=1.0.0 +mod_group_id=com.trunksbomb.batteries + +# Shared version defaults +parchment_minecraft_version=1.21.11 +parchment_mappings_version=2025.12.20 +minecraft_version=1.21.11 +minecraft_version_range=[1.21.11] +neo_version=21.11.38-beta +jei_compile_dependency= +jade_runtime_dependency= +jei_runtime_dependency= +power_test_runtime_dependency= +data_run_method=clientData + +# Version-specific properties +neoforge_1_21_11_parchment_minecraft_version=1.21.11 +neoforge_1_21_11_parchment_mappings_version=2025.12.20 +neoforge_1_21_11_minecraft_version=1.21.11 +neoforge_1_21_11_minecraft_version_range=[1.21.11] +neoforge_1_21_11_neo_version=21.11.38-beta +neoforge_1_21_11_jei_compile_dependency=maven.modrinth:jei:T1xI390V +neoforge_1_21_11_jade_runtime_dependency=maven.modrinth:jade:21.1.3+neoforge +neoforge_1_21_11_jei_runtime_dependency=maven.modrinth:jei:T1xI390V +neoforge_1_21_11_power_test_runtime_dependency=maven.modrinth:energized-power:jayVqrAF + +neoforge_1_21_1_parchment_minecraft_version=1.21.1 +neoforge_1_21_1_parchment_mappings_version=2024.11.17 +neoforge_1_21_1_minecraft_version=1.21.1 +neoforge_1_21_1_minecraft_version_range=[1.21.1] +neoforge_1_21_1_neo_version=21.1.219 +neoforge_1_21_1_jei_compile_dependency=maven.modrinth:jei:FAXT7HOj +neoforge_1_21_1_jade_runtime_dependency=maven.modrinth:jade:43sRR8f6 +neoforge_1_21_1_jei_runtime_dependency=maven.modrinth:jei:FAXT7HOj +neoforge_1_21_1_power_test_runtime_dependency=maven.modrinth:energized-power:Pgq2Xdm4 +neoforge_1_21_1_data_run_method=data diff --git a/gradle/neoforge-module.gradle b/gradle/neoforge-module.gradle new file mode 100644 index 0000000..e9ad1ce --- /dev/null +++ b/gradle/neoforge-module.gradle @@ -0,0 +1,181 @@ +def versionKeyPrefix = project.name.replace('-', '_').replace('.', '_') +def versionProperty = { String suffix -> + providers.gradleProperty("${versionKeyPrefix}_${suffix}") + .orElse(providers.gradleProperty(suffix)) + .get() +} +def optionalVersionProperty = { String suffix -> + providers.gradleProperty("${versionKeyPrefix}_${suffix}") + .orElse(providers.gradleProperty(suffix).orElse('')) + .get() +} +def dataRunMethod = optionalVersionProperty('data_run_method') +if (!dataRunMethod) { + dataRunMethod = 'clientData' +} + +tasks.withType(Wrapper).configureEach { + distributionType = Wrapper.DistributionType.BIN +} + +version = providers.gradleProperty('mod_version').get() +group = providers.gradleProperty('mod_group_id').get() + +sourceSets.main.java.srcDir(rootProject.file('common/src/main/java')) + +sourceSets.main.resources { + srcDir(rootProject.file('common/src/main/resources')) + srcDir('src/generated/resources') + exclude("**/*.bbmodel") + exclude("src/generated/**/.cache") +} + +repositories { + exclusiveContent { + forRepository { + maven { + name = "Modrinth" + url = "https://api.modrinth.com/maven" + } + } + filter { + includeGroup "maven.modrinth" + } + } +} + +base { + archivesName = "${providers.gradleProperty('mod_id').get()}-${project.name}" +} + +java.toolchain.languageVersion = JavaLanguageVersion.of(21) + +neoForge { + version = versionProperty('neo_version') + + parchment { + mappingsVersion = versionProperty('parchment_mappings_version') + minecraftVersion = versionProperty('parchment_minecraft_version') + } + + runs { + client { + client() + systemProperty 'neoforge.enabledGameTestNamespaces', providers.gradleProperty('mod_id').get() + } + + server { + server() + programArgument '--nogui' + systemProperty 'neoforge.enabledGameTestNamespaces', providers.gradleProperty('mod_id').get() + } + + gameTestServer { + type = "gameTestServer" + systemProperty 'neoforge.enabledGameTestNamespaces', providers.gradleProperty('mod_id').get() + } + + data { + delegate."${dataRunMethod}"() + programArguments.addAll '--mod', providers.gradleProperty('mod_id').get(), '--all', '--output', file('src/generated/resources/').getAbsolutePath(), '--existing', file('src/main/resources/').getAbsolutePath() + } + + configureEach { + systemProperty 'forge.logging.markers', 'REGISTRIES' + logLevel = org.slf4j.event.Level.DEBUG + } + } + + mods { + "${providers.gradleProperty('mod_id').get()}" { + sourceSet(sourceSets.main) + } + } +} + +configurations { + runtimeClasspath.extendsFrom localRuntime +} + +dependencies { + def jeiCompile = optionalVersionProperty('jei_compile_dependency') + def jadeRuntime = optionalVersionProperty('jade_runtime_dependency') + def jeiRuntime = optionalVersionProperty('jei_runtime_dependency') + def powerRuntime = optionalVersionProperty('power_test_runtime_dependency') + + compileOnly "org.jspecify:jspecify:1.0.0" + + if (jeiCompile) { + compileOnly jeiCompile + } + if (jadeRuntime) { + localRuntime jadeRuntime + } + if (jeiRuntime) { + localRuntime jeiRuntime + } + if (powerRuntime) { + localRuntime powerRuntime + } +} + +var generateModMetadata = tasks.register("generateModMetadata", ProcessResources) { + var replaceProperties = [ + minecraft_version : versionProperty('minecraft_version'), + minecraft_version_range: versionProperty('minecraft_version_range'), + neo_version : versionProperty('neo_version'), + mod_id : providers.gradleProperty('mod_id').get(), + mod_name : providers.gradleProperty('mod_name').get(), + mod_license : providers.gradleProperty('mod_license').get(), + mod_version : providers.gradleProperty('mod_version').get(), + ] + inputs.properties replaceProperties + expand replaceProperties + from "src/main/templates" + into "build/generated/sources/modMetadata" +} + +sourceSets.main.resources.srcDir generateModMetadata +neoForge.ideSyncTask generateModMetadata + +if (versionProperty('minecraft_version') == '1.21.1') { + def syncModMetadataToClasses = tasks.register("syncModMetadataToClasses", Copy) { + dependsOn generateModMetadata + from(generateModMetadata) { + include 'META-INF/neoforge.mods.toml' + } + into layout.buildDirectory.dir('classes/java/main') + } + + tasks.named('classes').configure { + dependsOn syncModMetadataToClasses + } + + tasks.named('compileJava').configure { + finalizedBy syncModMetadataToClasses + } +} + +publishing { + publications { + register('mavenJava', MavenPublication) { + from components.java + } + } + repositories { + maven { + url "file://${project.projectDir}/repo" + } + } +} + +tasks.withType(JavaCompile).configureEach { + options.encoding = 'UTF-8' +} + +idea { + module { + downloadSources = true + downloadJavadoc = true + } +} diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar new file mode 100644 index 0000000000000000000000000000000000000000..8bdaf60c75ab801e22807dde59e12a8735a34077 GIT binary patch literal 45457 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 c82=K%QXLKFx%@O{wJjEi6Y56o#$)Bpeg literal 0 HcmV?d00001 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000..2a84e18 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,7 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-bin.zip +networkTimeout=10000 +validateDistributionUrl=true +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000..ef07e01 --- /dev/null +++ b/gradlew @@ -0,0 +1,251 @@ +#!/bin/sh + +# +# Copyright © 2015 the original authors. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# https://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# +# SPDX-License-Identifier: Apache-2.0 +# + +############################################################################## +# +# Gradle start up script for POSIX generated by Gradle. +# +# Important for running: +# +# (1) You need a POSIX-compliant shell to run this script. If your /bin/sh is +# noncompliant, but you have some other compliant shell such as ksh or +# bash, then to run this script, type that shell name before the whole +# command line, like: +# +# ksh Gradle +# +# Busybox and similar reduced shells will NOT work, because this script +# requires all of these POSIX shell features: +# * functions; +# * expansions «$var», «${var}», «${var:-default}», «${var+SET}», +# «${var#prefix}», «${var%suffix}», and «$( cmd )»; +# * compound commands having a testable exit status, especially «case»; +# * various built-in commands including «command», «set», and «ulimit». +# +# Important for patching: +# +# (2) This script targets any POSIX shell, so it avoids extensions provided +# by Bash, Ksh, etc; in particular arrays are avoided. +# +# The "traditional" practice of packing multiple parameters into a +# space-separated string is a well documented source of bugs and security +# problems, so this is (mostly) avoided, by progressively accumulating +# options in "$@", and eventually passing that to Java. +# +# Where the inherited environment variables (DEFAULT_JVM_OPTS, JAVA_OPTS, +# and GRADLE_OPTS) rely on word-splitting, this is performed explicitly; +# see the in-line comments for details. +# +# There are tweaks for specific operating systems such as AIX, CygWin, +# Darwin, MinGW, and NonStop. +# +# (3) This script is generated from the Groovy template +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# within the Gradle project. +# +# You can find Gradle at https://github.com/gradle/gradle/. +# +############################################################################## + +# Attempt to set APP_HOME + +# Resolve links: $0 may be a link +app_path=$0 + +# Need this for daisy-chained symlinks. +while + APP_HOME=${app_path%"${app_path##*/}"} # leaves a trailing /; empty if no leading path + [ -h "$app_path" ] +do + ls=$( ls -ld "$app_path" ) + link=${ls#*' -> '} + case $link in #( + /*) app_path=$link ;; #( + *) app_path=$APP_HOME$link ;; + esac +done + +# This is normally unused +# shellcheck disable=SC2034 +APP_BASE_NAME=${0##*/} +# Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s\n' "$PWD" ) || exit + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD=maximum + +warn () { + echo "$*" +} >&2 + +die () { + echo + echo "$*" + echo + exit 1 +} >&2 + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "$( uname )" in #( + CYGWIN* ) cygwin=true ;; #( + Darwin* ) darwin=true ;; #( + MSYS* | MINGW* ) msys=true ;; #( + NONSTOP* ) nonstop=true ;; +esac + +CLASSPATH="\\\"\\\"" + + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD=$JAVA_HOME/jre/sh/java + else + JAVACMD=$JAVA_HOME/bin/java + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD=java + if ! command -v java >/dev/null 2>&1 + then + die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +fi + +# Increase the maximum file descriptors if we can. +if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then + case $MAX_FD in #( + max*) + # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + MAX_FD=$( ulimit -H -n ) || + warn "Could not query maximum file descriptor limit" + esac + case $MAX_FD in #( + '' | soft) :;; #( + *) + # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. + # shellcheck disable=SC2039,SC3045 + ulimit -n "$MAX_FD" || + warn "Could not set maximum file descriptor limit to $MAX_FD" + esac +fi + +# Collect all arguments for the java command, stacking in reverse order: +# * args from the command line +# * the main class name +# * -classpath +# * -D...appname settings +# * --module-path (only if needed) +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and GRADLE_OPTS environment variables. + +# For Cygwin or MSYS, switch paths to Windows format before running java +if "$cygwin" || "$msys" ; then + APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) + CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) + + JAVACMD=$( cygpath --unix "$JAVACMD" ) + + # Now convert the arguments - kludge to limit ourselves to /bin/sh + for arg do + if + case $arg in #( + -*) false ;; # don't mess with options #( + /?*) t=${arg#/} t=/${t%%/*} # looks like a POSIX filepath + [ -e "$t" ] ;; #( + *) false ;; + esac + then + arg=$( cygpath --path --ignore --mixed "$arg" ) + fi + # Roll the args list around exactly as many times as the number of + # args, so each arg winds up back in the position where it started, but + # possibly modified. + # + # NB: a `for` loop captures its iteration list before it begins, so + # changing the positional parameters here affects neither the number of + # iterations, nor the values presented in `arg`. + shift # remove old arg + set -- "$@" "$arg" # push replacement arg + done +fi + + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' + +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. + +set -- \ + "-Dorg.gradle.appname=$APP_BASE_NAME" \ + -classpath "$CLASSPATH" \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ + "$@" + +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + +# Use "xargs" to parse quoted args. +# +# With -n1 it outputs one arg per line, with the quotes and backslashes removed. +# +# In Bash we could simply go: +# +# readarray ARGS < <( xargs -n1 <<<"$var" ) && +# set -- "${ARGS[@]}" "$@" +# +# but POSIX shell has neither arrays nor command substitution, so instead we +# post-process each arg (as a line of input to sed) to backslash-escape any +# character that might be a shell metacharacter, then use eval to reverse +# that process (while maintaining the separation between arguments), and wrap +# the whole thing up as a single "set" statement. +# +# This will of course break if any of these variables contains a newline or +# an unmatched quote. +# + +eval "set -- $( + printf '%s\n' "$DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS" | + xargs -n1 | + sed ' s~[^-[:alnum:]+,./:=@_]~\\&~g; ' | + tr '\n' ' ' + )" '"$@"' + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000..db3a6ac --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,94 @@ +@rem +@rem Copyright 2015 the original author or authors. +@rem +@rem Licensed under the Apache License, Version 2.0 (the "License"); +@rem you may not use this file except in compliance with the License. +@rem You may obtain a copy of the License at +@rem +@rem https://www.apache.org/licenses/LICENSE-2.0 +@rem +@rem Unless required by applicable law or agreed to in writing, software +@rem distributed under the License is distributed on an "AS IS" BASIS, +@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +@rem See the License for the specific language governing permissions and +@rem limitations under the License. +@rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem + +@if "%DEBUG%"=="" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%"=="" set DIRNAME=. +@rem This is normally unused +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m" + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if %ERRORLEVEL% equ 0 goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto execute + +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 + +goto fail + +:execute +@rem Setup the command line + +set CLASSPATH= + + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* + +:end +@rem End local scope for the variables with windows NT shell +if %ERRORLEVEL% equ 0 goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/neoforge-1.21.1/build.gradle b/neoforge-1.21.1/build.gradle new file mode 100644 index 0000000..d6b75e8 --- /dev/null +++ b/neoforge-1.21.1/build.gradle @@ -0,0 +1,25 @@ +plugins { + id 'java-library' + id 'maven-publish' + id 'net.neoforged.moddev' version '2.0.140' + id 'idea' +} + +apply from: rootProject.file('gradle/neoforge-module.gradle') + +sourceSets.main.java.srcDir(rootProject.file('neoforge-1.21.11/src/main/java')) +sourceSets.main.java.exclude( + 'com/trunksbomb/batteries/Batteries.java', + 'com/trunksbomb/batteries/BatteriesClient.java', + 'com/trunksbomb/batteries/PoweredItemEvents.java', + 'com/trunksbomb/batteries/block/**', + 'com/trunksbomb/batteries/client/**', + 'com/trunksbomb/batteries/integration/**', + 'com/trunksbomb/batteries/item/BatteryPowered*.java', + 'com/trunksbomb/batteries/item/BatteryBlockItem.java', + 'com/trunksbomb/batteries/item/BatteryEnergyHandler.java', + 'com/trunksbomb/batteries/item/BatteryItem.java', + 'com/trunksbomb/batteries/item/Powered*.java', + 'com/trunksbomb/batteries/menu/**', + 'com/trunksbomb/batteries/recipe/**' +) diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/BatteriesClientNeoForge121.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/BatteriesClientNeoForge121.java new file mode 100644 index 0000000..55c22a5 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/BatteriesClientNeoForge121.java @@ -0,0 +1,21 @@ +package com.trunksbomb.batteries; + +import com.trunksbomb.batteries.v21_1.client.screen.BatteryBlockScreen; +import com.trunksbomb.batteries.v21_1.client.screen.BatteriesScreen; +import com.trunksbomb.batteries.v21_1.client.screen.CoalGeneratorScreen; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.fml.common.Mod; +import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent; + +@Mod(value = BatteriesNeoForge121.MODID, dist = Dist.CLIENT) +@EventBusSubscriber(modid = BatteriesNeoForge121.MODID, value = Dist.CLIENT) +public class BatteriesClientNeoForge121 { + @SubscribeEvent + static void registerScreens(RegisterMenuScreensEvent event) { + event.register(BatteriesNeoForge121.BATTERIES_MENU.get(), BatteriesScreen::new); + event.register(BatteriesNeoForge121.BATTERY_BLOCK_MENU.get(), BatteryBlockScreen::new); + event.register(BatteriesNeoForge121.COAL_GENERATOR_MENU.get(), CoalGeneratorScreen::new); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/BatteriesNeoForge121.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/BatteriesNeoForge121.java new file mode 100644 index 0000000..2c61661 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/BatteriesNeoForge121.java @@ -0,0 +1,249 @@ +package com.trunksbomb.batteries; + +import com.mojang.logging.LogUtils; +import com.trunksbomb.batteries.command.BatteryDebugCommands; +import com.trunksbomb.batteries.item.BatteryItemData.Tier; +import com.trunksbomb.batteries.v21_1.block.BatteryBlock; +import com.trunksbomb.batteries.v21_1.block.ChargerBlock; +import com.trunksbomb.batteries.v21_1.block.CoalGeneratorBlock; +import com.trunksbomb.batteries.v21_1.block.entity.BatteryBlockEntity; +import com.trunksbomb.batteries.v21_1.block.entity.ChargerBlockEntity; +import com.trunksbomb.batteries.v21_1.block.entity.CoalGeneratorBlockEntity; +import com.trunksbomb.batteries.v21_1.item.BatteryBlockItem; +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import com.trunksbomb.batteries.v21_1.item.BatteryPoweredArmorItem; +import com.trunksbomb.batteries.v21_1.item.BatteryPoweredAxeItem; +import com.trunksbomb.batteries.v21_1.item.BatteryPoweredBowItem; +import com.trunksbomb.batteries.v21_1.item.BatteryPoweredHoeItem; +import com.trunksbomb.batteries.v21_1.item.BatteryPoweredPickaxeItem; +import com.trunksbomb.batteries.v21_1.item.BatteryPoweredShieldItem; +import com.trunksbomb.batteries.v21_1.item.BatteryPoweredShovelItem; +import com.trunksbomb.batteries.v21_1.item.BatteryPoweredSwordItem; +import com.trunksbomb.batteries.v21_1.item.PoweredItem; +import com.trunksbomb.batteries.v21_1.menu.BatteriesMenu; +import com.trunksbomb.batteries.v21_1.menu.BatteryBlockMenu; +import com.trunksbomb.batteries.v21_1.menu.CoalGeneratorMenu; +import com.trunksbomb.batteries.v21_1.recipe.BatteryBlockUpgradeRecipe; +import com.trunksbomb.batteries.v21_1.recipe.BatteryTierUpgradeRecipe; +import com.trunksbomb.batteries.v21_1.recipe.PoweredGearUpgradeRecipe; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ArmorMaterials; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.CreativeModeTabs; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.item.crafting.SimpleCraftingRecipeSerializer; +import net.minecraft.world.inventory.MenuType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.config.ModConfig; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; +import net.neoforged.neoforge.common.NeoForge; +import net.neoforged.neoforge.common.extensions.IMenuTypeExtension; +import net.neoforged.neoforge.event.BuildCreativeModeTabContentsEvent; +import net.neoforged.neoforge.event.RegisterCommandsEvent; +import net.neoforged.neoforge.registries.DeferredBlock; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredItem; +import net.neoforged.neoforge.registries.DeferredRegister; +import org.slf4j.Logger; + +@Mod(BatteriesNeoForge121.MODID) +public class BatteriesNeoForge121 { + public static final String MODID = "batteries"; + public static final Logger LOGGER = LogUtils.getLogger(); + public static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(MODID); + public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(MODID); + public static final DeferredRegister> BLOCK_ENTITY_TYPES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, MODID); + public static final DeferredRegister> MENU_TYPES = DeferredRegister.create(Registries.MENU, MODID); + public static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID); + public static final DeferredRegister> RECIPE_SERIALIZERS = DeferredRegister.create(Registries.RECIPE_SERIALIZER, MODID); + + public static final DeferredItem BATTERY = registerBattery("battery", Tier.BASIC); + public static final DeferredItem BATTERY1 = registerBattery("battery1", Tier.ADVANCED); + public static final DeferredItem BATTERY2 = registerBattery("battery2", Tier.ELITE); + public static final DeferredItem BATTERY3 = registerBattery("battery3", Tier.ULTIMATE); + public static final DeferredItem BATTERY_ENDER = registerBattery("battery_ender", Tier.ENDER); + public static final DeferredItem BATTERY_CREATIVE = registerBattery("battery_creative", Tier.CREATIVE); + public static final DeferredItem BATTERY_PICKAXE = ITEMS.registerItem("battery_pickaxe", BatteryPoweredPickaxeItem::new, new Item.Properties().stacksTo(1)); + public static final DeferredItem BATTERY_AXE = ITEMS.registerItem("battery_axe", BatteryPoweredAxeItem::new, new Item.Properties().stacksTo(1)); + public static final DeferredItem BATTERY_SHOVEL = ITEMS.registerItem("battery_shovel", BatteryPoweredShovelItem::new, new Item.Properties().stacksTo(1)); + public static final DeferredItem BATTERY_HOE = ITEMS.registerItem("battery_hoe", BatteryPoweredHoeItem::new, new Item.Properties().stacksTo(1)); + public static final DeferredItem BATTERY_SWORD = ITEMS.registerItem("battery_sword", BatteryPoweredSwordItem::new, new Item.Properties().stacksTo(1)); + public static final DeferredItem BATTERY_HELMET = ITEMS.registerItem("battery_helmet", + properties -> new BatteryPoweredArmorItem(ArmorMaterials.DIAMOND, ArmorItem.Type.HELMET, properties), new Item.Properties().stacksTo(1)); + public static final DeferredItem BATTERY_CHESTPLATE = ITEMS.registerItem("battery_chestplate", + properties -> new BatteryPoweredArmorItem(ArmorMaterials.DIAMOND, ArmorItem.Type.CHESTPLATE, properties), new Item.Properties().stacksTo(1)); + public static final DeferredItem BATTERY_LEGGINGS = ITEMS.registerItem("battery_leggings", + properties -> new BatteryPoweredArmorItem(ArmorMaterials.DIAMOND, ArmorItem.Type.LEGGINGS, properties), new Item.Properties().stacksTo(1)); + public static final DeferredItem BATTERY_BOOTS = ITEMS.registerItem("battery_boots", + properties -> new BatteryPoweredArmorItem(ArmorMaterials.DIAMOND, ArmorItem.Type.BOOTS, properties), new Item.Properties().stacksTo(1)); + public static final DeferredItem BATTERY_SHIELD = ITEMS.registerItem("battery_shield", BatteryPoweredShieldItem::new, new Item.Properties().stacksTo(1)); + public static final DeferredItem BATTERY_BOW = ITEMS.registerItem("battery_bow", BatteryPoweredBowItem::new, new Item.Properties().stacksTo(1)); + public static final DeferredBlock BATTERY_BLOCK = BLOCKS.register("battery_block", id -> new BatteryBlock(BatteryBlock.batteryBlockProperties())); + public static final DeferredBlock COAL_GENERATOR = BLOCKS.register("coal_generator", id -> new CoalGeneratorBlock(CoalGeneratorBlock.generatorProperties())); + public static final DeferredBlock CHARGER = BLOCKS.register("charger", id -> new ChargerBlock(ChargerBlock.chargerProperties())); + public static final DeferredBlock ENDER_CHARGER = BLOCKS.register("ender_charger", id -> new ChargerBlock(ChargerBlock.chargerProperties())); + public static final DeferredItem BATTERY_BLOCK_ITEM = ITEMS.register("battery_block", + id -> new BatteryBlockItem(BATTERY_BLOCK.get(), new Item.Properties())); + public static final DeferredItem COAL_GENERATOR_ITEM = ITEMS.registerSimpleBlockItem("coal_generator", COAL_GENERATOR); + public static final DeferredItem CHARGER_ITEM = ITEMS.registerSimpleBlockItem("charger", CHARGER); + public static final DeferredItem ENDER_CHARGER_ITEM = ITEMS.registerSimpleBlockItem("ender_charger", ENDER_CHARGER); + public static final DeferredHolder, BlockEntityType> BATTERY_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("battery_block", + id -> BlockEntityType.Builder.of(BatteryBlockEntity::new, BATTERY_BLOCK.get()).build(null)); + public static final DeferredHolder, BlockEntityType> COAL_GENERATOR_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("coal_generator", + id -> BlockEntityType.Builder.of(CoalGeneratorBlockEntity::new, COAL_GENERATOR.get()).build(null)); + public static final DeferredHolder, BlockEntityType> CHARGER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("charger", + id -> BlockEntityType.Builder.of(ChargerBlockEntity::new, CHARGER.get(), ENDER_CHARGER.get()).build(null)); + public static final DeferredHolder, MenuType> BATTERIES_MENU = + MENU_TYPES.register("batteries_menu", () -> IMenuTypeExtension.create(BatteriesMenu::new)); + public static final DeferredHolder, MenuType> BATTERY_BLOCK_MENU = + MENU_TYPES.register("battery_block_menu", () -> IMenuTypeExtension.create(BatteryBlockMenu::new)); + public static final DeferredHolder, MenuType> COAL_GENERATOR_MENU = + MENU_TYPES.register("coal_generator_menu", () -> IMenuTypeExtension.create(CoalGeneratorMenu::new)); + public static final DeferredHolder, RecipeSerializer> BATTERY_BLOCK_UPGRADE_RECIPE = + RECIPE_SERIALIZERS.register("battery_block_upgrade", () -> new SimpleCraftingRecipeSerializer<>(BatteryBlockUpgradeRecipe::new)); + public static final DeferredHolder, RecipeSerializer> BATTERY_TIER_UPGRADE_RECIPE = + RECIPE_SERIALIZERS.register("battery_tier_upgrade", () -> new SimpleCraftingRecipeSerializer<>(BatteryTierUpgradeRecipe::new)); + public static final DeferredHolder, RecipeSerializer> POWERED_GEAR_UPGRADE_RECIPE = + RECIPE_SERIALIZERS.register("powered_gear_upgrade", () -> new SimpleCraftingRecipeSerializer<>(PoweredGearUpgradeRecipe::new)); + + @SuppressWarnings("unused") + public static final DeferredHolder BATTERIES_TAB = CREATIVE_MODE_TABS.register("main", () -> CreativeModeTab.builder() + .title(Component.translatable("itemGroup.batteries")) + .withTabsBefore(CreativeModeTabs.REDSTONE_BLOCKS) + .icon(() -> new ItemStack(BATTERY.get())) + .displayItems((parameters, output) -> { + output.accept(new ItemStack(BATTERY.get())); + output.accept(new ItemStack(BATTERY1.get())); + output.accept(new ItemStack(BATTERY2.get())); + output.accept(new ItemStack(BATTERY3.get())); + output.accept(new ItemStack(BATTERY_ENDER.get())); + output.accept(new ItemStack(BATTERY_CREATIVE.get())); + if (BatteriesConfig.poweredToolsEnabled()) { + output.accept(new ItemStack(BATTERY_PICKAXE.get())); + output.accept(new ItemStack(BATTERY_AXE.get())); + output.accept(new ItemStack(BATTERY_SHOVEL.get())); + output.accept(new ItemStack(BATTERY_HOE.get())); + } + if (BatteriesConfig.poweredWeaponsEnabled()) { + output.accept(new ItemStack(BATTERY_SWORD.get())); + output.accept(new ItemStack(BATTERY_SHIELD.get())); + output.accept(new ItemStack(BATTERY_BOW.get())); + } + if (BatteriesConfig.poweredArmorEnabled()) { + output.accept(new ItemStack(BATTERY_HELMET.get())); + output.accept(new ItemStack(BATTERY_CHESTPLATE.get())); + output.accept(new ItemStack(BATTERY_LEGGINGS.get())); + output.accept(new ItemStack(BATTERY_BOOTS.get())); + } + output.accept(new ItemStack(BATTERY_BLOCK_ITEM.get())); + output.accept(new ItemStack(COAL_GENERATOR_ITEM.get())); + output.accept(new ItemStack(CHARGER_ITEM.get())); + output.accept(new ItemStack(ENDER_CHARGER_ITEM.get())); + }) + .build()); + + public BatteriesNeoForge121(IEventBus modEventBus, ModContainer modContainer) { + BLOCKS.register(modEventBus); + ITEMS.register(modEventBus); + BLOCK_ENTITY_TYPES.register(modEventBus); + MENU_TYPES.register(modEventBus); + CREATIVE_MODE_TABS.register(modEventBus); + RECIPE_SERIALIZERS.register(modEventBus); + modEventBus.addListener(BatteriesNeoForge121::registerCapabilities); + modEventBus.addListener(BatteriesNeoForge121::buildCreativeTabContents); + NeoForge.EVENT_BUS.addListener(BatteriesNeoForge121::registerCommands); + modContainer.registerConfig(ModConfig.Type.SERVER, BatteriesConfig.SPEC); + LOGGER.info("Loading Batteries MVP for Minecraft 1.21.1"); + } + + private static void registerCapabilities(RegisterCapabilitiesEvent event) { + event.registerItem(Capabilities.EnergyStorage.ITEM, (stack, context) -> BatteryItem.createEnergyHandler(stack), + BATTERY.get(), BATTERY1.get(), BATTERY2.get(), BATTERY3.get(), BATTERY_ENDER.get(), BATTERY_CREATIVE.get()); + event.registerItem(Capabilities.EnergyStorage.ITEM, (stack, context) -> stack.getItem() instanceof PoweredItem poweredItem ? poweredItem.createEnergyHandler(stack) : null, + BATTERY_PICKAXE.get(), BATTERY_AXE.get(), BATTERY_SHOVEL.get(), BATTERY_HOE.get(), BATTERY_SWORD.get(), + BATTERY_HELMET.get(), BATTERY_CHESTPLATE.get(), BATTERY_LEGGINGS.get(), BATTERY_BOOTS.get(), BATTERY_SHIELD.get(), BATTERY_BOW.get()); + event.registerItem(Capabilities.EnergyStorage.ITEM, (stack, context) -> BatteryBlockItem.createEnergyHandler(stack), BATTERY_BLOCK_ITEM.get()); + event.registerBlockEntity(Capabilities.EnergyStorage.BLOCK, BATTERY_BLOCK_ENTITY.get(), BatteryBlockEntity::getEnergyStorage); + event.registerBlockEntity(Capabilities.EnergyStorage.BLOCK, COAL_GENERATOR_BLOCK_ENTITY.get(), CoalGeneratorBlockEntity::getEnergyStorage); + event.registerBlockEntity(Capabilities.ItemHandler.BLOCK, COAL_GENERATOR_BLOCK_ENTITY.get(), CoalGeneratorBlockEntity::getItemHandler); + event.registerBlockEntity(Capabilities.EnergyStorage.BLOCK, CHARGER_BLOCK_ENTITY.get(), ChargerBlockEntity::getEnergyStorage); + } + + private static void registerCommands(RegisterCommandsEvent event) { + BatteryDebugCommands.register(event.getDispatcher(), new BatteryDebugCommands.EnergyAdapter() { + @Override + public net.neoforged.neoforge.energy.IEnergyStorage resolve(ItemStack stack) { + return stack.getCapability(Capabilities.EnergyStorage.ITEM); + } + + @Override + public int stored(net.neoforged.neoforge.energy.IEnergyStorage handler) { + return handler.getEnergyStored(); + } + + @Override + public int capacity(net.neoforged.neoforge.energy.IEnergyStorage handler) { + return handler.getMaxEnergyStored(); + } + + @Override + public int charge(net.neoforged.neoforge.energy.IEnergyStorage handler, int amount) { + return handler.receiveEnergy(amount, false); + } + + @Override + public int drain(net.neoforged.neoforge.energy.IEnergyStorage handler, int amount) { + return handler.extractEnergy(amount, false); + } + }); + } + + private static void buildCreativeTabContents(BuildCreativeModeTabContentsEvent event) { + if (!event.getTabKey().equals(CreativeModeTabs.INGREDIENTS)) { + return; + } + + event.accept(new ItemStack(BATTERY.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY1.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY2.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY3.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY_ENDER.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY_CREATIVE.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + if (BatteriesConfig.poweredToolsEnabled()) { + event.accept(new ItemStack(BATTERY_PICKAXE.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY_AXE.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY_SHOVEL.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY_HOE.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + } + if (BatteriesConfig.poweredWeaponsEnabled()) { + event.accept(new ItemStack(BATTERY_SWORD.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY_SHIELD.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY_BOW.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + } + if (BatteriesConfig.poweredArmorEnabled()) { + event.accept(new ItemStack(BATTERY_HELMET.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY_CHESTPLATE.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY_LEGGINGS.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(BATTERY_BOOTS.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + } + event.accept(new ItemStack(BATTERY_BLOCK_ITEM.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(COAL_GENERATOR_ITEM.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(CHARGER_ITEM.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + event.accept(new ItemStack(ENDER_CHARGER_ITEM.get()), CreativeModeTab.TabVisibility.PARENT_AND_SEARCH_TABS); + } + + private static DeferredItem registerBattery(String name, Tier tier) { + return ITEMS.registerItem(name, properties -> new BatteryItem(tier, properties), new Item.Properties().stacksTo(1)); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/PoweredItemEvents.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/PoweredItemEvents.java new file mode 100644 index 0000000..993ad6e --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/PoweredItemEvents.java @@ -0,0 +1,49 @@ +package com.trunksbomb.batteries; + +import com.trunksbomb.batteries.v21_1.item.PoweredItem; +import com.trunksbomb.batteries.v21_1.item.PoweredItemEnergy; +import net.minecraft.core.Holder; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.ItemEnchantments; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.event.AnvilUpdateEvent; + +@EventBusSubscriber(modid = BatteriesNeoForge121.MODID) +public final class PoweredItemEvents { + private PoweredItemEvents() { + } + + @SubscribeEvent + public static void onAnvilUpdate(AnvilUpdateEvent event) { + ItemStack left = event.getLeft(); + if (!(left.getItem() instanceof PoweredItem)) { + return; + } + + if (addsMending(left, event.getRight()) || addsMending(left, event.getOutput())) { + event.setCanceled(true); + } + } + + private static boolean addsMending(ItemStack original, ItemStack updated) { + if (updated.isEmpty()) { + return false; + } + + int originalLevel = getMendingLevel(original); + int updatedLevel = getMendingLevel(updated); + return updatedLevel > originalLevel; + } + + private static int getMendingLevel(ItemStack stack) { + ItemEnchantments enchantments = stack.getTagEnchantments(); + for (Holder enchantment : enchantments.keySet()) { + if (PoweredItemEnergy.isMendingEnchantment(enchantment)) { + return enchantments.getLevel(enchantment); + } + } + return 0; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/PoweredItemNeoForgeEvents.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/PoweredItemNeoForgeEvents.java new file mode 100644 index 0000000..38bc93f --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/PoweredItemNeoForgeEvents.java @@ -0,0 +1,49 @@ +package com.trunksbomb.batteries; + +import com.trunksbomb.batteries.v21_1.item.PoweredItem; +import com.trunksbomb.batteries.v21_1.item.PoweredItemEnergy; +import net.minecraft.core.Holder; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.ItemEnchantments; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.neoforge.event.AnvilUpdateEvent; + +@EventBusSubscriber(modid = BatteriesNeoForge121.MODID) +public final class PoweredItemNeoForgeEvents { + private PoweredItemNeoForgeEvents() { + } + + @SubscribeEvent + public static void onAnvilUpdate(AnvilUpdateEvent event) { + ItemStack left = event.getLeft(); + if (!(left.getItem() instanceof PoweredItem)) { + return; + } + + if (addsMending(left, event.getRight()) || addsMending(left, event.getOutput())) { + event.setCanceled(true); + } + } + + private static boolean addsMending(ItemStack original, ItemStack updated) { + if (updated.isEmpty()) { + return false; + } + + int originalLevel = getMendingLevel(original); + int updatedLevel = getMendingLevel(updated); + return updatedLevel > originalLevel; + } + + private static int getMendingLevel(ItemStack stack) { + ItemEnchantments enchantments = stack.getTagEnchantments(); + for (Holder enchantment : enchantments.keySet()) { + if (PoweredItemEnergy.isMendingEnchantment(enchantment)) { + return enchantments.getLevel(enchantment); + } + } + return 0; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/BatteryBlock.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/BatteryBlock.java new file mode 100644 index 0000000..b0a4190 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/BatteryBlock.java @@ -0,0 +1,136 @@ +package com.trunksbomb.batteries.v21_1.block; + +import com.mojang.serialization.MapCodec; +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.v21_1.block.entity.BatteryBlockEntity; +import com.trunksbomb.batteries.v21_1.item.BatteryBlockItem; +import com.trunksbomb.batteries.v21_1.menu.BatteryBlockMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.SimpleMenuProvider; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.jetbrains.annotations.Nullable; + +public class BatteryBlock extends BaseEntityBlock { + public static final MapCodec CODEC = simpleCodec(BatteryBlock::new); + public static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = HorizontalDirectionalBlock.FACING; + public static final IntegerProperty CHARGE = IntegerProperty.create("charge", 0, 4); + + public BatteryBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(CHARGE, 0)); + } + + @Override + protected MapCodec codec() { + return CODEC; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING, CHARGE); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite()); + } + + @Override + protected BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + protected BlockState mirror(BlockState state, Mirror mirror) { + return state.rotate(mirror.getRotation(state.getValue(FACING))); + } + + @Override + protected RenderShape getRenderShape(BlockState state) { + return RenderShape.MODEL; + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, net.minecraft.world.phys.BlockHitResult hitResult) { + return openMenu(level, pos, player); + } + + @Override + protected net.minecraft.world.ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, net.minecraft.world.phys.BlockHitResult hitResult) { + InteractionResult result = openMenu(level, pos, player); + return result.consumesAction() + ? net.minecraft.world.ItemInteractionResult.sidedSuccess(level.isClientSide()) + : net.minecraft.world.ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new BatteryBlockEntity(pos, state); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + return level.isClientSide() ? null : createTickerHelper(type, BatteriesNeoForge121.BATTERY_BLOCK_ENTITY.get(), BatteryBlockEntity::serverTick); + } + + @Override + public void setPlacedBy(Level level, BlockPos pos, BlockState state, @Nullable LivingEntity placer, ItemStack stack) { + super.setPlacedBy(level, pos, state, placer, stack); + if (level.getBlockEntity(pos) instanceof BatteryBlockEntity batteryBlockEntity) { + batteryBlockEntity.loadFromItem(stack); + } + } + + @Override + public void playerDestroy(Level level, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool) { + if (!level.isClientSide() && !player.isCreative() && blockEntity instanceof BatteryBlockEntity batteryBlockEntity) { + popResource(level, pos, batteryBlockEntity.createDropStack()); + } + super.playerDestroy(level, player, pos, state, blockEntity, tool); + } + + @Override + public void onPlace(BlockState state, Level level, BlockPos pos, BlockState oldState, boolean movedByPiston) { + super.onPlace(state, level, pos, oldState, movedByPiston); + level.invalidateCapabilities(pos); + } + + public static BlockBehaviour.Properties batteryBlockProperties() { + return BlockBehaviour.Properties.of().strength(2.0F).requiresCorrectToolForDrops(); + } + + private static InteractionResult openMenu(Level level, BlockPos pos, Player player) { + if (!level.isClientSide() && player instanceof ServerPlayer serverPlayer && level.getBlockEntity(pos) instanceof BatteryBlockEntity blockEntity) { + MenuProvider provider = new SimpleMenuProvider( + (containerId, inventory, menuPlayer) -> BatteryBlockMenu.forBlock(containerId, inventory, blockEntity), + Component.translatable("container.batteries.battery_block") + ); + serverPlayer.openMenu(provider, buffer -> BatteryBlockMenu.writeBlockPos(buffer, pos)); + } + return InteractionResult.SUCCESS; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/ChargerBlock.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/ChargerBlock.java new file mode 100644 index 0000000..268c4d0 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/ChargerBlock.java @@ -0,0 +1,165 @@ +package com.trunksbomb.batteries.v21_1.block; + +import com.mojang.serialization.MapCodec; +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.shared.ChargerBlockData; +import com.trunksbomb.batteries.shared.ChargerBlockData.BatteryState; +import com.trunksbomb.batteries.v21_1.block.entity.ChargerBlockEntity; +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import java.util.UUID; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.ItemInteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.material.MapColor; +import org.jetbrains.annotations.Nullable; + +public class ChargerBlock extends BaseEntityBlock { + public static final EnumProperty FACING = HorizontalDirectionalBlock.FACING; + public static final EnumProperty BATTERY = EnumProperty.create("battery", BatteryState.class); + public static final MapCodec CODEC = simpleCodec(ChargerBlock::new); + + public ChargerBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(BATTERY, BatteryState.NONE)); + } + + @Override + protected MapCodec codec() { + return CODEC; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING, BATTERY); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite()); + } + + @Override + protected BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + protected BlockState mirror(BlockState state, Mirror mirror) { + return this.rotate(state, mirror.getRotation(state.getValue(FACING))); + } + + @Override + protected RenderShape getRenderShape(BlockState state) { + return RenderShape.MODEL; + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, net.minecraft.world.phys.BlockHitResult hitResult) { + return tryRetrieveBattery(state, level, pos, player); + } + + @Override + protected ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, net.minecraft.world.phys.BlockHitResult hitResult) { + BlockEntity blockEntity = level.getBlockEntity(pos); + if (!(blockEntity instanceof ChargerBlockEntity chargerBlockEntity)) { + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + } + + if (chargerBlockEntity.hasBattery()) { + InteractionResult result = tryRetrieveBattery(state, level, pos, player); + return result.consumesAction() ? ItemInteractionResult.sidedSuccess(level.isClientSide()) : ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + } + + if (!(stack.getItem() instanceof BatteryItem batteryItem) || !canAcceptBattery(state, batteryItem.tier())) { + return ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + } + + if (!level.isClientSide()) { + if (state.is(BatteriesNeoForge121.ENDER_CHARGER.get())) { + UUID batteryUuid = BatteryItem.ensureBatteryId(stack); + chargerBlockEntity.linkBattery(batteryUuid, player.getUUID()); + updateBatteryState(level, pos, state, BatteryState.fromTier(batteryItem.tier())); + } else { + ItemStack remainingStack = chargerBlockEntity.insertBattery(stack); + player.setItemInHand(hand, remainingStack); + updateBatteryState(level, pos, state, BatteryState.fromTier(batteryItem.tier())); + } + } + + return ItemInteractionResult.sidedSuccess(level.isClientSide()); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new ChargerBlockEntity(pos, state); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + return level.isClientSide() ? null : createTickerHelper(type, BatteriesNeoForge121.CHARGER_BLOCK_ENTITY.get(), ChargerBlockEntity::serverTick); + } + + @Override + public void playerDestroy(Level level, Player player, BlockPos pos, BlockState state, @Nullable BlockEntity blockEntity, ItemStack tool) { + if (blockEntity instanceof ChargerBlockEntity chargerBlockEntity && chargerBlockEntity.hasStoredBattery() && level instanceof ServerLevel serverLevel) { + popResource(serverLevel, pos, chargerBlockEntity.extractBattery()); + } + super.playerDestroy(level, player, pos, state, blockEntity, tool); + } + + public static BlockBehaviour.Properties chargerProperties() { + return BlockBehaviour.Properties.of().mapColor(MapColor.METAL).strength(2.0F).requiresCorrectToolForDrops(); + } + + private static boolean canAcceptBattery(BlockState state, com.trunksbomb.batteries.item.BatteryItemData.Tier tier) { + return ChargerBlockData.canAcceptBattery(state.is(BatteriesNeoForge121.ENDER_CHARGER.get()), tier); + } + + private static void updateBatteryState(Level level, BlockPos pos, BlockState state, BatteryState batteryState) { + level.setBlock(pos, state.setValue(BATTERY, batteryState), Block.UPDATE_ALL); + } + + private static InteractionResult tryRetrieveBattery(BlockState state, Level level, BlockPos pos, Player player) { + BlockEntity blockEntity = level.getBlockEntity(pos); + if (!(blockEntity instanceof ChargerBlockEntity chargerBlockEntity) || !chargerBlockEntity.hasBattery()) { + return InteractionResult.PASS; + } + + if (!level.isClientSide()) { + if (state.is(BatteriesNeoForge121.ENDER_CHARGER.get())) { + chargerBlockEntity.clearLinkedBattery(); + updateBatteryState(level, pos, state, BatteryState.NONE); + } else { + ItemStack extractedBattery = chargerBlockEntity.extractBattery(); + updateBatteryState(level, pos, state, BatteryState.NONE); + if (!player.addItem(extractedBattery)) { + player.drop(extractedBattery, false); + } + } + } + + return InteractionResult.SUCCESS; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/CoalGeneratorBlock.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/CoalGeneratorBlock.java new file mode 100644 index 0000000..155d616 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/CoalGeneratorBlock.java @@ -0,0 +1,123 @@ +package com.trunksbomb.batteries.v21_1.block; + +import com.mojang.serialization.MapCodec; +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.v21_1.block.entity.CoalGeneratorBlockEntity; +import com.trunksbomb.batteries.v21_1.menu.CoalGeneratorMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.SimpleMenuProvider; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.material.MapColor; +import org.jetbrains.annotations.Nullable; + +public class CoalGeneratorBlock extends BaseEntityBlock { + public static final MapCodec CODEC = simpleCodec(CoalGeneratorBlock::new); + public static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = HorizontalDirectionalBlock.FACING; + public static final BooleanProperty LIT = BlockStateProperties.LIT; + + public CoalGeneratorBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(LIT, false)); + } + + @Override + protected MapCodec codec() { + return CODEC; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING, LIT); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite()); + } + + @Override + protected BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + protected BlockState mirror(BlockState state, Mirror mirror) { + return this.rotate(state, mirror.getRotation(state.getValue(FACING))); + } + + @Override + protected RenderShape getRenderShape(BlockState state) { + return RenderShape.MODEL; + } + + @Override + protected InteractionResult useWithoutItem(BlockState state, Level level, BlockPos pos, Player player, net.minecraft.world.phys.BlockHitResult hitResult) { + return openMenu(level, pos, player); + } + + @Override + protected net.minecraft.world.ItemInteractionResult useItemOn(ItemStack stack, BlockState state, Level level, BlockPos pos, Player player, InteractionHand hand, net.minecraft.world.phys.BlockHitResult hitResult) { + InteractionResult result = openMenu(level, pos, player); + return result.consumesAction() + ? net.minecraft.world.ItemInteractionResult.sidedSuccess(level.isClientSide()) + : net.minecraft.world.ItemInteractionResult.PASS_TO_DEFAULT_BLOCK_INTERACTION; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(BlockPos pos, BlockState state) { + return new CoalGeneratorBlockEntity(pos, state); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level level, BlockState state, BlockEntityType type) { + return level.isClientSide() ? null : createTickerHelper(type, BatteriesNeoForge121.COAL_GENERATOR_BLOCK_ENTITY.get(), CoalGeneratorBlockEntity::serverTick); + } + + public static BlockBehaviour.Properties generatorProperties() { + return BlockBehaviour.Properties.of() + .mapColor(MapColor.WOOD) + .strength(2.0F) + .requiresCorrectToolForDrops(); + } + + public static void setLit(Level level, BlockPos pos, BlockState state, boolean lit) { + if (state.hasProperty(LIT) && state.getValue(LIT) != lit) { + level.setBlock(pos, state.setValue(LIT, lit), net.minecraft.world.level.block.Block.UPDATE_CLIENTS); + } + } + + private static InteractionResult openMenu(Level level, BlockPos pos, Player player) { + if (!level.isClientSide() && player instanceof ServerPlayer serverPlayer && level.getBlockEntity(pos) instanceof CoalGeneratorBlockEntity blockEntity) { + MenuProvider provider = new SimpleMenuProvider( + (containerId, inventory, menuPlayer) -> CoalGeneratorMenu.forBlock(containerId, inventory, blockEntity), + Component.translatable("container.batteries.coal_generator") + ); + serverPlayer.openMenu(provider, buffer -> CoalGeneratorMenu.writeBlockPos(buffer, pos)); + } + return InteractionResult.SUCCESS; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockEnergyStorage.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockEnergyStorage.java new file mode 100644 index 0000000..ad6a378 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockEnergyStorage.java @@ -0,0 +1,57 @@ +package com.trunksbomb.batteries.v21_1.block.entity; + +import net.neoforged.neoforge.energy.IEnergyStorage; + +final class BatteryBlockEnergyStorage implements IEnergyStorage { + private final BatteryBlockEntity blockEntity; + + BatteryBlockEnergyStorage(BatteryBlockEntity blockEntity) { + this.blockEntity = blockEntity; + } + + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + if (maxReceive <= 0) { + return 0; + } + + int received = Math.min(maxReceive, Math.min(this.getMaxEnergyStored() - this.getEnergyStored(), this.blockEntity.getMaxTransfer())); + if (!simulate && received > 0) { + this.blockEntity.setStoredEnergyInternal(this.blockEntity.getStoredEnergy() + received); + } + return received; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + if (maxExtract <= 0) { + return 0; + } + + int extracted = Math.min(maxExtract, Math.min(this.getEnergyStored(), this.blockEntity.getMaxTransfer())); + if (!simulate && extracted > 0) { + this.blockEntity.setStoredEnergyInternal(this.blockEntity.getStoredEnergy() - extracted); + } + return extracted; + } + + @Override + public int getEnergyStored() { + return this.blockEntity.getStoredEnergy(); + } + + @Override + public int getMaxEnergyStored() { + return this.blockEntity.getEnergyCapacity(); + } + + @Override + public boolean canExtract() { + return true; + } + + @Override + public boolean canReceive() { + return true; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockEntity.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockEntity.java new file mode 100644 index 0000000..978c100 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockEntity.java @@ -0,0 +1,171 @@ +package com.trunksbomb.batteries.v21_1.block.entity; + +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.item.EnergyTierHelper; +import com.trunksbomb.batteries.shared.BatteryBlockData; +import com.trunksbomb.batteries.v21_1.block.BatteryBlock; +import com.trunksbomb.batteries.v21_1.item.BatteryBlockItem; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.energy.IEnergyStorage; + +public class BatteryBlockEntity extends BlockEntity { + private static final String ENERGY_KEY = "energy"; + private static final String CAPACITY_KEY = "capacity"; + + private int storedEnergy; + private int energyCapacity = BatteryBlockItem.BASE_CAPACITY; + private BatteryBlockEnergyStorage internalEnergyStorage; + private final BatteryBlockData.SideMode[] sideModes = new BatteryBlockData.SideMode[] { + BatteryBlockData.SideMode.BOTH, BatteryBlockData.SideMode.BOTH, BatteryBlockData.SideMode.BOTH, + BatteryBlockData.SideMode.BOTH, BatteryBlockData.SideMode.BOTH, BatteryBlockData.SideMode.BOTH + }; + + public BatteryBlockEntity(BlockPos pos, BlockState state) { + super(BatteriesNeoForge121.BATTERY_BLOCK_ENTITY.get(), pos, state); + } + + public static void serverTick(Level level, BlockPos pos, BlockState state, BatteryBlockEntity blockEntity) { + if (blockEntity.storedEnergy <= 0) { + return; + } + + int remainingTransfer = Math.min(blockEntity.storedEnergy, blockEntity.getMaxTransfer()); + for (Direction direction : Direction.values()) { + if (!blockEntity.canExtract(direction)) { + continue; + } + if (remainingTransfer <= 0) { + break; + } + + BlockPos targetPos = pos.relative(direction); + if (!level.isLoaded(targetPos)) { + continue; + } + + IEnergyStorage target = level.getCapability(Capabilities.EnergyStorage.BLOCK, targetPos, direction.getOpposite()); + if (target == null || !target.canReceive()) { + continue; + } + + int accepted = target.receiveEnergy(remainingTransfer, false); + if (accepted > 0) { + blockEntity.setStoredEnergyInternal(blockEntity.storedEnergy - accepted); + remainingTransfer -= accepted; + } + } + } + + public IEnergyStorage getEnergyStorage(Direction side) { + return new BatteryBlockSidedEnergyStorage(this.getInternalEnergyStorage(), side, this); + } + + private BatteryBlockEnergyStorage getInternalEnergyStorage() { + if (this.internalEnergyStorage == null) { + this.internalEnergyStorage = new BatteryBlockEnergyStorage(this); + } + return this.internalEnergyStorage; + } + + public int getStoredEnergy() { + return this.storedEnergy; + } + + public int getEnergyCapacity() { + return this.energyCapacity; + } + + public int getMaxTransfer() { + return EnergyTierHelper.transferRateForCapacity(this.energyCapacity); + } + + public BatteryBlockData.SideMode getSideMode(Direction direction) { + return this.sideModes[direction.ordinal()]; + } + + public void setSideMode(Direction direction, BatteryBlockData.SideMode mode) { + this.sideModes[direction.ordinal()] = mode; + this.setChanged(); + if (this.level != null) { + this.level.invalidateCapabilities(this.worldPosition); + } + } + + public boolean canInsert(Direction direction) { + BatteryBlockData.SideMode mode = this.getSideMode(direction); + return mode == BatteryBlockData.SideMode.INPUT || mode == BatteryBlockData.SideMode.BOTH; + } + + public boolean canExtract(Direction direction) { + BatteryBlockData.SideMode mode = this.getSideMode(direction); + return mode == BatteryBlockData.SideMode.OUTPUT || mode == BatteryBlockData.SideMode.BOTH; + } + + public static Direction directionForIndex(int index) { + return BatteryBlockData.directionForIndex(index); + } + + public void loadFromItem(ItemStack stack) { + BatteryBlockItem.initializeDefaults(stack); + this.energyCapacity = BatteryBlockItem.getEnergyCapacity(stack); + this.storedEnergy = Math.min(BatteryBlockItem.getStoredEnergy(stack), this.energyCapacity); + this.internalEnergyStorage = null; + this.refreshState(); + } + + public ItemStack createDropStack() { + ItemStack stack = new ItemStack(BatteriesNeoForge121.BATTERY_BLOCK_ITEM.get()); + BatteryBlockItem.setEnergyCapacity(stack, this.energyCapacity); + BatteryBlockItem.setStoredEnergy(stack, this.storedEnergy); + return stack; + } + + void setStoredEnergyInternal(int energy) { + this.storedEnergy = Math.max(0, Math.min(energy, this.energyCapacity)); + this.refreshState(); + } + + @Override + protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { + super.loadAdditional(tag, registries); + this.energyCapacity = Math.max(BatteryBlockItem.BASE_CAPACITY, tag.contains(CAPACITY_KEY) ? tag.getInt(CAPACITY_KEY) : BatteryBlockItem.BASE_CAPACITY); + this.storedEnergy = Math.max(0, Math.min(tag.contains(ENERGY_KEY) ? tag.getInt(ENERGY_KEY) : 0, this.energyCapacity)); + for (Direction direction : Direction.values()) { + int ordinal = tag.contains("side_" + direction.getSerializedName()) ? tag.getInt("side_" + direction.getSerializedName()) : BatteryBlockData.SideMode.BOTH.ordinal(); + this.sideModes[direction.ordinal()] = BatteryBlockData.SideMode.values()[Math.max(0, Math.min(BatteryBlockData.SideMode.values().length - 1, ordinal))]; + } + this.internalEnergyStorage = null; + } + + @Override + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { + super.saveAdditional(tag, registries); + tag.putInt(CAPACITY_KEY, this.energyCapacity); + tag.putInt(ENERGY_KEY, this.storedEnergy); + for (Direction direction : Direction.values()) { + tag.putInt("side_" + direction.getSerializedName(), this.sideModes[direction.ordinal()].ordinal()); + } + } + + private void refreshState() { + this.setChanged(); + if (this.level == null) { + return; + } + + BlockState state = this.getBlockState(); + int targetCharge = BatteryBlockData.chargeStage(this.storedEnergy, this.energyCapacity); + if (state.hasProperty(BatteryBlock.CHARGE) && state.getValue(BatteryBlock.CHARGE) != targetCharge) { + this.level.setBlock(this.worldPosition, state.setValue(BatteryBlock.CHARGE, targetCharge), net.minecraft.world.level.block.Block.UPDATE_CLIENTS); + } + this.level.invalidateCapabilities(this.worldPosition); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockSidedEnergyStorage.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockSidedEnergyStorage.java new file mode 100644 index 0000000..4e1d299 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/BatteryBlockSidedEnergyStorage.java @@ -0,0 +1,58 @@ +package com.trunksbomb.batteries.v21_1.block.entity; + +import net.minecraft.core.Direction; +import net.neoforged.neoforge.energy.IEnergyStorage; + +final class BatteryBlockSidedEnergyStorage implements IEnergyStorage { + private final IEnergyStorage delegate; + private final Direction side; + private final BatteryBlockEntity blockEntity; + + BatteryBlockSidedEnergyStorage(IEnergyStorage delegate, Direction side, BatteryBlockEntity blockEntity) { + this.delegate = delegate; + this.side = side; + this.blockEntity = blockEntity; + } + + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + if (maxReceive <= 0) { + return 0; + } + if (this.side != null && !this.blockEntity.canInsert(this.side)) { + return 0; + } + return this.delegate.receiveEnergy(maxReceive, simulate); + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + if (maxExtract <= 0) { + return 0; + } + if (this.side != null && !this.blockEntity.canExtract(this.side)) { + return 0; + } + return this.delegate.extractEnergy(maxExtract, simulate); + } + + @Override + public int getEnergyStored() { + return this.delegate.getEnergyStored(); + } + + @Override + public int getMaxEnergyStored() { + return this.delegate.getMaxEnergyStored(); + } + + @Override + public boolean canExtract() { + return this.side == null || this.blockEntity.canExtract(this.side); + } + + @Override + public boolean canReceive() { + return this.side == null || this.blockEntity.canInsert(this.side); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/ChargerBlockEntity.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/ChargerBlockEntity.java new file mode 100644 index 0000000..6a62680 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/ChargerBlockEntity.java @@ -0,0 +1,149 @@ +package com.trunksbomb.batteries.v21_1.block.entity; + +import com.trunksbomb.batteries.BatteriesConfig; +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import java.util.UUID; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.neoforged.neoforge.energy.IEnergyStorage; + +public class ChargerBlockEntity extends BlockEntity { + public static final UUID DEFAULT_UUID = new UUID(0L, 0L); + private ItemStack battery = ItemStack.EMPTY; + private UUID linkedBatteryUuid = DEFAULT_UUID; + private UUID linkedPlayerUuid = DEFAULT_UUID; + private ChargerEnergyStorage energyStorage; + + public ChargerBlockEntity(BlockPos pos, BlockState state) { + super(BatteriesNeoForge121.CHARGER_BLOCK_ENTITY.get(), pos, state); + } + + public static void serverTick(Level level, BlockPos pos, BlockState state, ChargerBlockEntity blockEntity) { + if (!BatteriesConfig.chargerGeneratesCreativePower()) { + return; + } + + ItemStack battery = blockEntity.getChargeTarget(); + if (battery.isEmpty()) { + return; + } + + IEnergyStorage batteryStorage = BatteryItem.createEnergyHandler(battery); + if (batteryStorage == null) { + return; + } + + int inserted = batteryStorage.receiveEnergy(com.trunksbomb.batteries.item.BatteryItemData.getMaxTransfer(((BatteryItem) battery.getItem()).tier()), false); + if (inserted > 0) { + blockEntity.onBatteryChanged(); + } + } + + public boolean hasBattery() { + return this.hasStoredBattery() || this.hasLinkedBattery(); + } + + public boolean hasStoredBattery() { + return !this.battery.isEmpty(); + } + + public boolean hasLinkedBattery() { + return !DEFAULT_UUID.equals(this.linkedBatteryUuid) && !DEFAULT_UUID.equals(this.linkedPlayerUuid); + } + + public ItemStack insertBattery(ItemStack stack) { + if (this.hasBattery() || !(stack.getItem() instanceof BatteryItem)) { + return stack; + } + + this.battery = stack.copyWithCount(1); + stack.shrink(1); + this.onBatteryChanged(); + return stack; + } + + public ItemStack extractBattery() { + if (this.battery.isEmpty()) { + return ItemStack.EMPTY; + } + + ItemStack extracted = this.battery; + this.battery = ItemStack.EMPTY; + this.onBatteryChanged(); + return extracted; + } + + public void linkBattery(UUID batteryUuid, UUID playerUuid) { + this.linkedBatteryUuid = batteryUuid; + this.linkedPlayerUuid = playerUuid; + this.onBatteryChanged(); + } + + public void clearLinkedBattery() { + this.linkedBatteryUuid = DEFAULT_UUID; + this.linkedPlayerUuid = DEFAULT_UUID; + this.onBatteryChanged(); + } + + public IEnergyStorage getEnergyStorage(Direction side) { + if (this.energyStorage == null) { + this.energyStorage = new ChargerEnergyStorage(this); + } + return this.energyStorage; + } + + ItemStack getChargeTarget() { + if (this.hasStoredBattery()) { + return this.battery; + } + + if (this.level instanceof net.minecraft.server.level.ServerLevel serverLevel && this.hasLinkedBattery()) { + ServerPlayer player = serverLevel.getServer().getPlayerList().getPlayer(this.linkedPlayerUuid); + if (player != null) { + return BatteryItem.findLinkedEnderBattery(player, this.linkedBatteryUuid); + } + } + + return ItemStack.EMPTY; + } + + @Override + protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { + super.loadAdditional(tag, registries); + this.battery = tag.contains("battery") ? ItemStack.parseOptional(registries, tag.getCompound("battery")) : ItemStack.EMPTY; + this.linkedBatteryUuid = parseUuid(tag.getString("linked_battery_uuid")); + this.linkedPlayerUuid = parseUuid(tag.getString("linked_player_uuid")); + this.energyStorage = null; + } + + @Override + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { + super.saveAdditional(tag, registries); + if (!this.battery.isEmpty()) { + tag.put("battery", this.battery.saveOptional(registries)); + } + if (this.hasLinkedBattery()) { + tag.putString("linked_battery_uuid", this.linkedBatteryUuid.toString()); + tag.putString("linked_player_uuid", this.linkedPlayerUuid.toString()); + } + } + + private void onBatteryChanged() { + this.setChanged(); + if (this.level != null) { + this.level.invalidateCapabilities(this.worldPosition); + } + } + + private static UUID parseUuid(String value) { + return value == null || value.isBlank() ? DEFAULT_UUID : UUID.fromString(value); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/ChargerEnergyStorage.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/ChargerEnergyStorage.java new file mode 100644 index 0000000..52ab9d9 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/ChargerEnergyStorage.java @@ -0,0 +1,60 @@ +package com.trunksbomb.batteries.v21_1.block.entity; + +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.energy.IEnergyStorage; + +final class ChargerEnergyStorage implements IEnergyStorage { + private final ChargerBlockEntity blockEntity; + + ChargerEnergyStorage(ChargerBlockEntity blockEntity) { + this.blockEntity = blockEntity; + } + + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + ItemStack battery = this.blockEntity.getChargeTarget(); + if (battery.isEmpty()) { + return 0; + } + + IEnergyStorage storage = BatteryItem.createEnergyHandler(battery); + if (storage == null || !storage.canReceive()) { + return 0; + } + + int received = storage.receiveEnergy(maxReceive, simulate); + if (!simulate && received > 0) { + this.blockEntity.setChanged(); + } + return received; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + return 0; + } + + @Override + public int getEnergyStored() { + ItemStack battery = this.blockEntity.getChargeTarget(); + return battery.isEmpty() ? 0 : BatteryItem.getStoredEnergy(battery); + } + + @Override + public int getMaxEnergyStored() { + ItemStack battery = this.blockEntity.getChargeTarget(); + return battery.isEmpty() ? 0 : BatteryItem.getEnergyCapacity(battery); + } + + @Override + public boolean canExtract() { + return false; + } + + @Override + public boolean canReceive() { + ItemStack battery = this.blockEntity.getChargeTarget(); + return !battery.isEmpty() && BatteryItem.getStoredEnergy(battery) < BatteryItem.getEnergyCapacity(battery); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorBlockEntity.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorBlockEntity.java new file mode 100644 index 0000000..7a1a0ad --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorBlockEntity.java @@ -0,0 +1,280 @@ +package com.trunksbomb.batteries.v21_1.block.entity; + +import com.trunksbomb.batteries.BatteriesConfig; +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.item.EnergyTierHelper; +import com.trunksbomb.batteries.v21_1.block.CoalGeneratorBlock; +import com.trunksbomb.batteries.v21_1.item.BatteryBlockItem; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.HolderLookup; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.WorldlyContainer; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.entity.AbstractFurnaceBlockEntity; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.energy.IEnergyStorage; +import net.neoforged.neoforge.items.IItemHandler; + +public class CoalGeneratorBlockEntity extends BlockEntity implements WorldlyContainer { + private static final int[] ACCESSIBLE_SLOTS = new int[] {0}; + private static final String ENERGY_KEY = "energy"; + private static final String BURN_TIME_KEY = "burn_time"; + private static final String MAX_BURN_TIME_KEY = "max_burn_time"; + + private final SimpleContainer fuelSlot = new SimpleContainer(1) { + @Override + public void setChanged() { + super.setChanged(); + CoalGeneratorBlockEntity.this.setChanged(); + } + }; + + private int storedEnergy; + private int burnTimeRemaining; + private int maxBurnTime; + private CoalGeneratorEnergyStorage internalEnergyStorage; + private GeneratorOutputEnergyStorage outputEnergyStorage; + private CoalGeneratorItemHandler itemHandler; + + public CoalGeneratorBlockEntity(BlockPos pos, BlockState state) { + super(BatteriesNeoForge121.COAL_GENERATOR_BLOCK_ENTITY.get(), pos, state); + } + + public static void serverTick(Level level, BlockPos pos, BlockState state, CoalGeneratorBlockEntity blockEntity) { + boolean wasBurning = blockEntity.isBurning(); + blockEntity.tickGeneration(level); + if (wasBurning != blockEntity.isBurning()) { + CoalGeneratorBlock.setLit(level, pos, state, blockEntity.isBurning()); + } + blockEntity.tickOutput(level, pos); + } + + public SimpleContainer fuelSlot() { + return this.fuelSlot; + } + + public IEnergyStorage getEnergyStorage(Direction side) { + if (this.outputEnergyStorage == null) { + this.outputEnergyStorage = new GeneratorOutputEnergyStorage(this.getInternalEnergyStorage()); + } + return this.outputEnergyStorage; + } + + public IItemHandler getItemHandler(Direction side) { + if (this.itemHandler == null) { + this.itemHandler = new CoalGeneratorItemHandler(this); + } + return this.itemHandler; + } + + public int getStoredEnergy() { + return this.storedEnergy; + } + + public int getEnergyCapacity() { + return BatteryBlockItem.BASE_CAPACITY; + } + + public int getBurnTimeRemaining() { + return this.burnTimeRemaining; + } + + public int getMaxBurnTime() { + return this.maxBurnTime; + } + + public boolean isBurning() { + return this.burnTimeRemaining > 0; + } + + public int getMaxTransfer() { + return EnergyTierHelper.transferRateForCapacity(this.getEnergyCapacity()); + } + + private CoalGeneratorEnergyStorage getInternalEnergyStorage() { + if (this.internalEnergyStorage == null) { + this.internalEnergyStorage = new CoalGeneratorEnergyStorage(this); + } + return this.internalEnergyStorage; + } + + private void tickGeneration(Level level) { + if (this.burnTimeRemaining <= 0 && this.storedEnergy < this.getEnergyCapacity()) { + ItemStack fuel = this.fuelSlot.getItem(0); + int burnTime = getFuelBurnTime(level, fuel); + if (burnTime > 0) { + this.burnTimeRemaining = burnTime; + this.maxBurnTime = burnTime; + fuel.shrink(1); + if (fuel.isEmpty()) { + this.fuelSlot.setItem(0, ItemStack.EMPTY); + } + this.setChanged(); + } + } + + if (this.burnTimeRemaining > 0 && this.storedEnergy < this.getEnergyCapacity()) { + this.getInternalEnergyStorage().set(Math.min(this.getEnergyCapacity(), this.storedEnergy + BatteriesConfig.generatorEnergyPerTick())); + this.burnTimeRemaining--; + this.setChanged(); + } + } + + private void tickOutput(Level level, BlockPos pos) { + if (this.storedEnergy <= 0) { + return; + } + + int remainingTransfer = Math.min(this.storedEnergy, this.getMaxTransfer()); + IEnergyStorage source = this.getInternalEnergyStorage(); + + for (Direction direction : Direction.values()) { + if (remainingTransfer <= 0) { + break; + } + + BlockPos targetPos = pos.relative(direction); + if (!level.isLoaded(targetPos)) { + continue; + } + + IEnergyStorage target = level.getCapability(Capabilities.EnergyStorage.BLOCK, targetPos, direction.getOpposite()); + if (target == null || !target.canReceive()) { + continue; + } + + int accepted = target.receiveEnergy(remainingTransfer, false); + if (accepted <= 0) { + continue; + } + + int extracted = source.extractEnergy(accepted, false); + if (extracted > 0) { + remainingTransfer -= extracted; + } + } + } + + @Override + protected void loadAdditional(CompoundTag tag, HolderLookup.Provider registries) { + super.loadAdditional(tag, registries); + this.storedEnergy = Math.max(0, Math.min(tag.contains(ENERGY_KEY) ? tag.getInt(ENERGY_KEY) : 0, this.getEnergyCapacity())); + this.burnTimeRemaining = Math.max(0, tag.contains(BURN_TIME_KEY) ? tag.getInt(BURN_TIME_KEY) : 0); + this.maxBurnTime = Math.max(0, tag.contains(MAX_BURN_TIME_KEY) ? tag.getInt(MAX_BURN_TIME_KEY) : 0); + if (tag.contains("fuel")) { + this.fuelSlot.setItem(0, ItemStack.parseOptional(registries, tag.getCompound("fuel"))); + } else { + this.fuelSlot.setItem(0, ItemStack.EMPTY); + } + this.internalEnergyStorage = null; + this.outputEnergyStorage = null; + this.itemHandler = null; + } + + @Override + protected void saveAdditional(CompoundTag tag, HolderLookup.Provider registries) { + super.saveAdditional(tag, registries); + tag.putInt(ENERGY_KEY, this.storedEnergy); + tag.putInt(BURN_TIME_KEY, this.burnTimeRemaining); + tag.putInt(MAX_BURN_TIME_KEY, this.maxBurnTime); + if (!this.fuelSlot.getItem(0).isEmpty()) { + tag.put("fuel", this.fuelSlot.getItem(0).saveOptional(registries)); + } + } + + void setStoredEnergyInternal(int energy) { + this.storedEnergy = Math.max(0, Math.min(energy, this.getEnergyCapacity())); + this.setChanged(); + if (this.level != null) { + this.level.invalidateCapabilities(this.worldPosition); + } + } + + private static int getFuelBurnTime(Level level, ItemStack stack) { + if (!isFuel(level, stack)) { + return 0; + } + return AbstractFurnaceBlockEntity.getFuel().getOrDefault(stack.getItem(), 0); + } + + public static boolean isFuel(Level level, ItemStack stack) { + return !stack.isEmpty() && AbstractFurnaceBlockEntity.isFuel(stack); + } + + @Override + public int[] getSlotsForFace(Direction side) { + return ACCESSIBLE_SLOTS; + } + + @Override + public boolean canPlaceItemThroughFace(int index, ItemStack stack, Direction direction) { + return index == 0 && this.level != null && isFuel(this.level, stack); + } + + @Override + public boolean canTakeItemThroughFace(int index, ItemStack stack, Direction direction) { + return false; + } + + @Override + public int getContainerSize() { + return 1; + } + + @Override + public boolean isEmpty() { + return this.fuelSlot.getItem(0).isEmpty(); + } + + @Override + public ItemStack getItem(int slot) { + return slot == 0 ? this.fuelSlot.getItem(0) : ItemStack.EMPTY; + } + + @Override + public ItemStack removeItem(int slot, int amount) { + if (slot != 0) { + return ItemStack.EMPTY; + } + ItemStack removed = this.fuelSlot.removeItem(slot, amount); + if (!removed.isEmpty()) { + this.setChanged(); + } + return removed; + } + + @Override + public ItemStack removeItemNoUpdate(int slot) { + return slot == 0 ? this.fuelSlot.removeItemNoUpdate(0) : ItemStack.EMPTY; + } + + @Override + public void setItem(int slot, ItemStack stack) { + if (slot == 0) { + this.fuelSlot.setItem(0, stack); + } + } + + @Override + public boolean stillValid(Player player) { + return this.level != null + && this.level.getBlockEntity(this.worldPosition) == this + && player.distanceToSqr(this.worldPosition.getX() + 0.5D, this.worldPosition.getY() + 0.5D, this.worldPosition.getZ() + 0.5D) <= 64.0D; + } + + @Override + public boolean canPlaceItem(int slot, ItemStack stack) { + return slot == 0 && this.level != null && isFuel(this.level, stack); + } + + @Override + public void clearContent() { + this.fuelSlot.setItem(0, ItemStack.EMPTY); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorEnergyStorage.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorEnergyStorage.java new file mode 100644 index 0000000..cfe69b6 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorEnergyStorage.java @@ -0,0 +1,53 @@ +package com.trunksbomb.batteries.v21_1.block.entity; + +import net.neoforged.neoforge.energy.IEnergyStorage; + +final class CoalGeneratorEnergyStorage implements IEnergyStorage { + private final CoalGeneratorBlockEntity blockEntity; + + CoalGeneratorEnergyStorage(CoalGeneratorBlockEntity blockEntity) { + this.blockEntity = blockEntity; + } + + void set(int energy) { + this.blockEntity.setStoredEnergyInternal(energy); + } + + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + return 0; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + if (maxExtract <= 0) { + return 0; + } + + int extracted = Math.min(maxExtract, Math.min(this.getEnergyStored(), this.blockEntity.getMaxTransfer())); + if (!simulate && extracted > 0) { + this.blockEntity.setStoredEnergyInternal(this.blockEntity.getStoredEnergy() - extracted); + } + return extracted; + } + + @Override + public int getEnergyStored() { + return this.blockEntity.getStoredEnergy(); + } + + @Override + public int getMaxEnergyStored() { + return this.blockEntity.getEnergyCapacity(); + } + + @Override + public boolean canExtract() { + return true; + } + + @Override + public boolean canReceive() { + return false; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorItemHandler.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorItemHandler.java new file mode 100644 index 0000000..a5a07c5 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/CoalGeneratorItemHandler.java @@ -0,0 +1,87 @@ +package com.trunksbomb.batteries.v21_1.block.entity; + +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.items.IItemHandler; + +public class CoalGeneratorItemHandler implements IItemHandler { + private final CoalGeneratorBlockEntity blockEntity; + + public CoalGeneratorItemHandler(CoalGeneratorBlockEntity blockEntity) { + this.blockEntity = blockEntity; + } + + @Override + public int getSlots() { + return 1; + } + + @Override + public ItemStack getStackInSlot(int slot) { + validateSlot(slot); + return this.blockEntity.fuelSlot().getItem(0); + } + + @Override + public ItemStack insertItem(int slot, ItemStack stack, boolean simulate) { + validateSlot(slot); + if (stack.isEmpty() || this.blockEntity.getLevel() == null || !CoalGeneratorBlockEntity.isFuel(this.blockEntity.getLevel(), stack)) { + return stack; + } + + ItemStack current = this.blockEntity.fuelSlot().getItem(0); + if (!current.isEmpty() && !ItemStack.isSameItemSameComponents(current, stack)) { + return stack; + } + + int inserted = Math.min(stack.getCount(), this.getSlotLimit(slot) - current.getCount()); + if (inserted <= 0) { + return stack; + } + + if (!simulate) { + if (current.isEmpty()) { + this.blockEntity.fuelSlot().setItem(0, stack.copyWithCount(inserted)); + } else { + current.grow(inserted); + this.blockEntity.fuelSlot().setItem(0, current); + } + this.blockEntity.setChanged(); + if (this.blockEntity.getLevel() != null) { + this.blockEntity.getLevel().invalidateCapabilities(this.blockEntity.getBlockPos()); + } + } + + if (inserted == stack.getCount()) { + return ItemStack.EMPTY; + } + + ItemStack remainder = stack.copy(); + remainder.shrink(inserted); + return remainder; + } + + @Override + public ItemStack extractItem(int slot, int amount, boolean simulate) { + validateSlot(slot); + return ItemStack.EMPTY; + } + + @Override + public int getSlotLimit(int slot) { + validateSlot(slot); + ItemStack current = this.blockEntity.fuelSlot().getItem(0); + return current.isEmpty() ? 64 : current.getMaxStackSize(); + } + + @Override + public boolean isItemValid(int slot, ItemStack stack) { + validateSlot(slot); + return this.blockEntity.getLevel() != null && CoalGeneratorBlockEntity.isFuel(this.blockEntity.getLevel(), stack); + } + + private static void validateSlot(int slot) { + if (slot != 0) { + throw new IndexOutOfBoundsException("Coal generator only has one slot"); + } + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/GeneratorOutputEnergyStorage.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/GeneratorOutputEnergyStorage.java new file mode 100644 index 0000000..c407d8b --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/block/entity/GeneratorOutputEnergyStorage.java @@ -0,0 +1,41 @@ +package com.trunksbomb.batteries.v21_1.block.entity; + +import net.neoforged.neoforge.energy.IEnergyStorage; + +final class GeneratorOutputEnergyStorage implements IEnergyStorage { + private final IEnergyStorage delegate; + + GeneratorOutputEnergyStorage(IEnergyStorage delegate) { + this.delegate = delegate; + } + + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + return 0; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + return this.delegate.extractEnergy(maxExtract, simulate); + } + + @Override + public int getEnergyStored() { + return this.delegate.getEnergyStored(); + } + + @Override + public int getMaxEnergyStored() { + return this.delegate.getMaxEnergyStored(); + } + + @Override + public boolean canExtract() { + return true; + } + + @Override + public boolean canReceive() { + return false; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/BatteriesScreen.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/BatteriesScreen.java new file mode 100644 index 0000000..e0b35f4 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/BatteriesScreen.java @@ -0,0 +1,237 @@ +package com.trunksbomb.batteries.v21_1.client.screen; + +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import com.trunksbomb.batteries.v21_1.menu.BatteriesMenu; +import java.util.List; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.item.ItemStack; + +public class BatteriesScreen extends AbstractContainerScreen { + private static final ResourceLocation TEXTURE = ResourceLocation.fromNamespaceAndPath(BatteriesNeoForge121.MODID, "textures/battery_gui.png"); + + private static final int WIDTH = 200; + private static final int HEIGHT = 164; + private static final int BUTTON_WIDTH = 20; + private static final int BUTTON_HEIGHT = 18; + private static final int BUTTON_SCREEN_GAP_X = 7; + private static final int BUTTON_SCREEN_GAP_Y = 3; + private static final int BUTTON_START_X = 48; + private static final int BUTTON_START_Y = 39; + private static final int INVENTORY_START_X = 32; + private static final int INVENTORY_START_Y = 19; + private static final int ARMOR_START_X = 7; + private static final int ARMOR_START_Y = 19; + private static final int BUTTON_TEXTURE_GAP = 1; + private static final int BUTTON_TEXTURE_START_X = 201; + private static final int BUTTON_TEXTURE_START_Y = 0; + private static final int ARMOR_TEXTURE_X = 42; + private static final int ARMOR_TEXTURE_Y = 170; + private static final int CHECK_TEXTURE_X = 25; + private static final int CHECK_TEXTURE_Y = 170; + private static final int PLUS_TEXTURE_X = 144; + private static final int PLUS_TEXTURE_Y = 170; + + public BatteriesScreen(BatteriesMenu menu, Inventory playerInventory, Component title) { + super(menu, playerInventory, title); + this.imageWidth = WIDTH; + this.imageHeight = HEIGHT; + } + + @Override + protected void renderBg(GuiGraphics guiGraphics, float partialTick, int mouseX, int mouseY) { + guiGraphics.blit(TEXTURE, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, 256, 256); + drawButtons(guiGraphics, mouseX, mouseY); + drawOverlays(guiGraphics); + } + + @Override + protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { + renderTitle(guiGraphics); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + this.renderBackground(guiGraphics, mouseX, mouseY, partialTick); + super.render(guiGraphics, mouseX, mouseY, partialTick); + this.renderTooltip(guiGraphics, mouseX, mouseY); + renderCustomTooltip(guiGraphics, mouseX, mouseY); + } + + @Override + public boolean mouseClicked(double mouseX, double mouseY, int button) { + for (int index = 0; index < this.menu.buttonCount(); index++) { + if (isBatteryModeToggle(index)) { + if (buttonBounds(0, 1).contains(mouseX, mouseY)) { + pressMenuButton(0); + return true; + } + continue; + } + + Bounds bounds = buttonBounds(indexToRow(index), indexToColumn(index)); + if (bounds.contains(mouseX, mouseY)) { + pressMenuButton(index); + return true; + } + } + + return super.mouseClicked(mouseX, mouseY, button); + } + + private void drawButtons(GuiGraphics guiGraphics, int mouseX, int mouseY) { + drawBatteryModeButton(guiGraphics, mouseX, mouseY); + + for (int index = 2; index < this.menu.buttonCount(); index++) { + Bounds bounds = buttonBounds(indexToRow(index), indexToColumn(index)); + drawButton(guiGraphics, bounds, index, bounds.contains(mouseX, mouseY)); + } + } + + private void drawBatteryModeButton(GuiGraphics guiGraphics, int mouseX, int mouseY) { + Bounds bounds = buttonBounds(0, 1); + boolean hovering = bounds.contains(mouseX, mouseY); + int textureIndex = this.menu.isButtonEnabled(0) ? 0 : 1; + int offset = hovering ? BUTTON_WIDTH + BUTTON_TEXTURE_GAP : 0; + guiGraphics.blit(TEXTURE, bounds.x, bounds.y, + BUTTON_TEXTURE_START_X + offset, + BUTTON_TEXTURE_START_Y + textureIndex * (BUTTON_HEIGHT + BUTTON_TEXTURE_GAP), + BUTTON_WIDTH, BUTTON_HEIGHT, 256, 256); + } + + private void drawButton(GuiGraphics guiGraphics, Bounds bounds, int index, boolean hovering) { + int offset = hovering ? BUTTON_WIDTH + BUTTON_TEXTURE_GAP : 0; + guiGraphics.blit(TEXTURE, bounds.x, bounds.y, + BUTTON_TEXTURE_START_X + offset, + BUTTON_TEXTURE_START_Y + index * (BUTTON_HEIGHT + BUTTON_TEXTURE_GAP), + BUTTON_WIDTH, BUTTON_HEIGHT, 256, 256); + } + + private void drawOverlays(GuiGraphics guiGraphics) { + for (int index = 2; index < this.menu.buttonCount(); index++) { + if (!this.menu.isButtonEnabled(index)) { + continue; + } + + Bounds bounds = buttonBounds(indexToRow(index), indexToColumn(index)); + guiGraphics.blit(TEXTURE, bounds.x + 4, bounds.y + 4, CHECK_TEXTURE_X, CHECK_TEXTURE_Y, 16, 16, 256, 256); + } + + for (int slot = 0; slot < BatteriesMenu.FILTER_SLOT_COUNT; slot++) { + if (this.menu.isFilterSlotEmpty(slot)) { + guiGraphics.blit(TEXTURE, this.leftPos + INVENTORY_START_X + 18 * slot, this.topPos + INVENTORY_START_Y, + PLUS_TEXTURE_X, PLUS_TEXTURE_Y, 16, 16, 256, 256); + } + } + + for (int armorIndex = 0; armorIndex < 4; armorIndex++) { + int slot = 39 - armorIndex; + ItemStack stack = this.menu.playerInventoryItem(slot); + if (stack.isEmpty()) { + guiGraphics.blit(TEXTURE, this.leftPos + ARMOR_START_X, this.topPos + ARMOR_START_Y + armorIndex * 18, + ARMOR_TEXTURE_X + armorIndex * 17, ARMOR_TEXTURE_Y, 16, 16, 256, 256); + } + } + + if (this.menu.playerInventoryItem(40).isEmpty()) { + guiGraphics.blit(TEXTURE, this.leftPos + ARMOR_START_X, this.topPos + 91, 110, 170, 16, 16, 256, 256); + } + } + + private void renderCustomTooltip(GuiGraphics guiGraphics, int mouseX, int mouseY) { + String hoverKey = hoveredButtonTranslationKey(mouseX, mouseY); + if (hoverKey != null) { + guiGraphics.renderTooltip(this.font, Component.translatable(hoverKey), mouseX, mouseY); + } + } + + private String hoveredButtonTranslationKey(int mouseX, int mouseY) { + if (buttonBounds(0, 1).contains(mouseX, mouseY)) { + return this.menu.isButtonEnabled(0) + ? "batteries.gui.button.whitelist" + : "batteries.gui.button.blacklist"; + } + + for (int index = 2; index < this.menu.buttonCount(); index++) { + Bounds bounds = buttonBounds(indexToRow(index), indexToColumn(index)); + if (bounds.contains(mouseX, mouseY)) { + return BatteriesMenu.buttonTranslationKey(index); + } + } + + return null; + } + + private void pressMenuButton(int index) { + if (this.minecraft.gameMode == null) { + return; + } + + this.minecraft.gameMode.handleInventoryButtonClick(this.menu.containerId, index); + this.menu.toggleClientPreview(index); + } + + private Component titleText() { + ItemStack battery = this.menu.batteryStack(); + if (!(battery.getItem() instanceof BatteryItem)) { + return this.title; + } + + return Component.literal(battery.getHoverName().getString() + + " - " + + BatteryItem.formatCompactAmount(BatteryItem.getStoredEnergy(battery)) + + " / " + + BatteryItem.formatCompactAmount(BatteryItem.getEnergyCapacity(battery)) + + " E"); + } + + private void renderTitle(GuiGraphics guiGraphics) { + Component title = titleText(); + int leftAlignedX = INVENTORY_START_X; + int titleY = 8; + int maxWidth = this.imageWidth - INVENTORY_START_X - 8; + int textWidth = this.font.width(title); + float scale = textWidth > maxWidth ? maxWidth / (float) textWidth : 1.0F; + + guiGraphics.pose().pushPose(); + guiGraphics.pose().scale(scale, scale, 1.0F); + guiGraphics.drawString(this.font, title, Math.round(leftAlignedX / scale), Math.round(titleY / scale), 0xFF202020, false); + guiGraphics.pose().popPose(); + } + + private Bounds buttonBounds(int rowIndex, int colIndex) { + return new Bounds( + this.leftPos + BUTTON_START_X + colIndex * (BUTTON_WIDTH + BUTTON_SCREEN_GAP_X), + this.topPos + BUTTON_START_Y + rowIndex * (BUTTON_HEIGHT + BUTTON_SCREEN_GAP_Y), + BUTTON_WIDTH, + BUTTON_HEIGHT + ); + } + + private static boolean isBatteryModeToggle(int index) { + return index == 0; + } + + private static int indexToRow(int index) { + return index <= 3 ? 0 : 1; + } + + private static int indexToColumn(int index) { + return switch (index) { + case 0, 1, 4 -> 1; + case 2, 5 -> 2; + case 3, 6 -> 3; + default -> 1; + }; + } + + private record Bounds(int x, int y, int width, int height) { + private boolean contains(double mouseX, double mouseY) { + return mouseX >= this.x && mouseX < this.x + this.width && mouseY >= this.y && mouseY < this.y + this.height; + } + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/BatteryBlockScreen.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/BatteryBlockScreen.java new file mode 100644 index 0000000..666e59d --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/BatteryBlockScreen.java @@ -0,0 +1,147 @@ +package com.trunksbomb.batteries.v21_1.client.screen; + +import com.trunksbomb.batteries.shared.BatteryBlockData; +import com.trunksbomb.batteries.v21_1.block.entity.BatteryBlockEntity; +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import com.trunksbomb.batteries.v21_1.menu.BatteryBlockMenu; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.Tooltip; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; + +public class BatteryBlockScreen extends AbstractContainerScreen { + private static final ResourceLocation TEXTURE = ResourceLocation.fromNamespaceAndPath("batteries", "textures/battery_block_gui.png"); + private static final int TEXTURE_WIDTH = 176; + private static final int TEXTURE_HEIGHT = 164; + private static final int BUTTON_WIDTH = 50; + private static final int BUTTON_HEIGHT = 20; + private static final int BUTTON_START_X = 8; + private static final int BUTTON_START_Y = 18; + private static final int BUTTON_GAP_X = 5; + private static final int BUTTON_GAP_Y = 4; + + public BatteryBlockScreen(BatteryBlockMenu menu, Inventory playerInventory, Component title) { + super(menu, playerInventory, title); + this.imageWidth = TEXTURE_WIDTH; + this.imageHeight = TEXTURE_HEIGHT; + this.inventoryLabelY = this.imageHeight - 94; + } + + @Override + protected void init() { + super.init(); + for (int index = 0; index < BatteryBlockMenu.SIDE_BUTTON_COUNT; index++) { + int buttonIndex = index; + this.addRenderableWidget(Button.builder(buttonLabel(index), button -> pressButton(buttonIndex)) + .bounds(this.leftPos + buttonX(index), this.topPos + buttonY(index), BUTTON_WIDTH, BUTTON_HEIGHT) + .tooltip(buttonTooltip(index)) + .build()); + } + } + + @Override + public void containerTick() { + super.containerTick(); + int widgetIndex = 0; + for (AbstractWidget widget : this.renderables.stream().filter(AbstractWidget.class::isInstance).map(AbstractWidget.class::cast).toList()) { + if (widgetIndex >= BatteryBlockMenu.SIDE_BUTTON_COUNT) { + break; + } + widget.setMessage(buttonLabel(widgetIndex)); + widget.setTooltip(buttonTooltip(widgetIndex)); + widgetIndex++; + } + } + + @Override + protected void renderBg(GuiGraphics guiGraphics, float partialTick, int mouseX, int mouseY) { + guiGraphics.blit(TEXTURE, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, TEXTURE_WIDTH, TEXTURE_HEIGHT); + } + + @Override + protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { + Component title = Component.literal(this.title.getString() + + " - " + + BatteryItem.formatCompactAmount(this.menu.storedEnergy()) + + " / " + + BatteryItem.formatCompactAmount(this.menu.energyCapacity()) + + " E"); + guiGraphics.drawString(this.font, title, 8, 6, 0xFF404040, false); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + this.renderBackground(guiGraphics, mouseX, mouseY, partialTick); + super.render(guiGraphics, mouseX, mouseY, partialTick); + this.renderTooltip(guiGraphics, mouseX, mouseY); + } + + private void pressButton(int index) { + if (this.minecraft.gameMode == null) { + return; + } + + this.minecraft.gameMode.handleInventoryButtonClick(this.menu.containerId, index); + this.menu.cycleClientPreview(index); + } + + private Component buttonLabel(int index) { + return Component.literal(shortDirection(index) + ": " + shortMode(this.menu.sideMode(index))); + } + + private Tooltip buttonTooltip(int index) { + return Tooltip.create(Component.literal(fullDirection(index) + ": " + fullMode(this.menu.sideMode(index)))); + } + + private static int buttonX(int index) { + return BUTTON_START_X + (index % 3) * (BUTTON_WIDTH + BUTTON_GAP_X); + } + + private static int buttonY(int index) { + return BUTTON_START_Y + (index / 3) * (BUTTON_HEIGHT + BUTTON_GAP_Y); + } + + private static String shortDirection(int index) { + return switch (BatteryBlockEntity.directionForIndex(index)) { + case UP -> "U"; + case DOWN -> "D"; + case NORTH -> "N"; + case SOUTH -> "S"; + case WEST -> "W"; + case EAST -> "E"; + }; + } + + private static String fullDirection(int index) { + return switch (BatteryBlockEntity.directionForIndex(index)) { + case UP -> "Up"; + case DOWN -> "Down"; + case NORTH -> "North"; + case SOUTH -> "South"; + case WEST -> "West"; + case EAST -> "East"; + }; + } + + private static String shortMode(BatteryBlockData.SideMode mode) { + return switch (mode) { + case INPUT -> "In"; + case OUTPUT -> "Out"; + case BOTH -> "Both"; + case NONE -> "None"; + }; + } + + private static String fullMode(BatteryBlockData.SideMode mode) { + return switch (mode) { + case INPUT -> "Input"; + case OUTPUT -> "Output"; + case BOTH -> "Both"; + case NONE -> "None"; + }; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/CoalGeneratorScreen.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/CoalGeneratorScreen.java new file mode 100644 index 0000000..52709b7 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/client/screen/CoalGeneratorScreen.java @@ -0,0 +1,71 @@ +package com.trunksbomb.batteries.v21_1.client.screen; + +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import com.trunksbomb.batteries.v21_1.menu.CoalGeneratorMenu; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.entity.player.Inventory; + +public class CoalGeneratorScreen extends AbstractContainerScreen { + private static final ResourceLocation TEXTURE = ResourceLocation.fromNamespaceAndPath("batteries", "textures/coal_generator_gui.png"); + private static final int FLAME_X = 81; + private static final int FLAME_Y = 61; + private static final int FLAME_WIDTH = 14; + private static final int FLAME_HEIGHT = 14; + private static final int FLAME_BORDER = 0xFF3A2A17; + private static final int FLAME_BG = 0xFF5B4A2C; + private static final int FLAME_FILL = 0xFFFFB347; + private static final int FLAME_CORE = 0xFFFFE08A; + + public CoalGeneratorScreen(CoalGeneratorMenu menu, Inventory playerInventory, Component title) { + super(menu, playerInventory, title); + this.imageWidth = 176; + this.imageHeight = 164; + this.inventoryLabelY = this.imageHeight - 94; + } + + @Override + protected void renderBg(GuiGraphics guiGraphics, float partialTick, int mouseX, int mouseY) { + guiGraphics.blit(TEXTURE, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, this.imageWidth, this.imageHeight); + this.renderFlame(guiGraphics); + } + + @Override + protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { + Component title = Component.literal(this.title.getString() + + " - " + + BatteryItem.formatCompactAmount(this.menu.storedEnergy()) + + " / " + + BatteryItem.formatCompactAmount(this.menu.energyCapacity()) + + " E"); + guiGraphics.drawString(this.font, title, 8, 6, 0xFF404040, false); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + this.renderBackground(guiGraphics, mouseX, mouseY, partialTick); + super.render(guiGraphics, mouseX, mouseY, partialTick); + this.renderTooltip(guiGraphics, mouseX, mouseY); + } + + private void renderFlame(GuiGraphics guiGraphics) { + int maxBurn = this.menu.maxBurnTime(); + int burn = this.menu.burnTimeRemaining(); + int x = this.leftPos + FLAME_X; + int y = this.topPos + FLAME_Y; + + guiGraphics.fill(x, y, x + FLAME_WIDTH, y + FLAME_HEIGHT, FLAME_BORDER); + guiGraphics.fill(x + 1, y + 1, x + FLAME_WIDTH - 1, y + FLAME_HEIGHT - 1, FLAME_BG); + + if (maxBurn <= 0 || burn <= 0) { + return; + } + + int flameHeight = Math.max(1, burn * (FLAME_HEIGHT - 2) / maxBurn); + int top = y + FLAME_HEIGHT - 1 - flameHeight; + guiGraphics.fill(x + 2, top, x + FLAME_WIDTH - 2, y + FLAME_HEIGHT - 2, FLAME_FILL); + guiGraphics.fill(x + 4, Math.max(y + 2, top + 2), x + FLAME_WIDTH - 4, y + FLAME_HEIGHT - 4, FLAME_CORE); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/integration/jei/BatteriesJeiPlugin.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/integration/jei/BatteriesJeiPlugin.java new file mode 100644 index 0000000..e212bba --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/integration/jei/BatteriesJeiPlugin.java @@ -0,0 +1,76 @@ +package com.trunksbomb.batteries.v21_1.integration.jei; + +import com.trunksbomb.batteries.BatteriesNeoForge121; +import java.util.List; +import mezz.jei.api.IModPlugin; +import mezz.jei.api.JeiPlugin; +import mezz.jei.api.constants.RecipeTypes; +import mezz.jei.api.recipe.vanilla.IVanillaRecipeFactory; +import mezz.jei.api.registration.IRecipeRegistration; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingRecipe; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.level.ItemLike; +import org.jspecify.annotations.NonNull; + +@JeiPlugin +public class BatteriesJeiPlugin implements IModPlugin { + private static final ResourceLocation PLUGIN_UID = ResourceLocation.fromNamespaceAndPath(BatteriesNeoForge121.MODID, "jei_plugin"); + + @Override + public @NonNull ResourceLocation getPluginUid() { + return PLUGIN_UID; + } + + @Override + public void registerRecipes(IRecipeRegistration registration) { + IVanillaRecipeFactory recipeFactory = registration.getVanillaRecipeFactory(); + registration.addRecipes(RecipeTypes.CRAFTING, List.of( + twoItemRecipe("battery_pickaxe", recipeFactory, BatteriesNeoForge121.BATTERY_PICKAXE.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_PICKAXE, BatteriesNeoForge121.BATTERY.get()), + twoItemRecipe("battery_axe", recipeFactory, BatteriesNeoForge121.BATTERY_AXE.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_AXE, BatteriesNeoForge121.BATTERY.get()), + twoItemRecipe("battery_shovel", recipeFactory, BatteriesNeoForge121.BATTERY_SHOVEL.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_SHOVEL, BatteriesNeoForge121.BATTERY.get()), + twoItemRecipe("battery_hoe", recipeFactory, BatteriesNeoForge121.BATTERY_HOE.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_HOE, BatteriesNeoForge121.BATTERY.get()), + twoItemRecipe("battery_sword", recipeFactory, BatteriesNeoForge121.BATTERY_SWORD.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_SWORD, BatteriesNeoForge121.BATTERY.get()), + twoItemRecipe("battery_helmet", recipeFactory, BatteriesNeoForge121.BATTERY_HELMET.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_HELMET, BatteriesNeoForge121.BATTERY.get()), + twoItemRecipe("battery_chestplate", recipeFactory, BatteriesNeoForge121.BATTERY_CHESTPLATE.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_CHESTPLATE, BatteriesNeoForge121.BATTERY.get()), + twoItemRecipe("battery_leggings", recipeFactory, BatteriesNeoForge121.BATTERY_LEGGINGS.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_LEGGINGS, BatteriesNeoForge121.BATTERY.get()), + twoItemRecipe("battery_boots", recipeFactory, BatteriesNeoForge121.BATTERY_BOOTS.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_BOOTS, BatteriesNeoForge121.BATTERY.get()), + twoItemRecipe("battery_shield", recipeFactory, BatteriesNeoForge121.BATTERY_SHIELD.get(), CraftingBookCategory.EQUIPMENT, Items.SHIELD, BatteriesNeoForge121.BATTERY.get()), + twoItemRecipe("battery_bow", recipeFactory, BatteriesNeoForge121.BATTERY_BOW.get(), CraftingBookCategory.EQUIPMENT, Items.BOW, BatteriesNeoForge121.BATTERY.get()), + recipe("battery1_upgrade", recipeFactory, BatteriesNeoForge121.BATTERY1.get(), Items.REDSTONE, Items.GOLD_BLOCK, BatteriesNeoForge121.BATTERY.get(), Items.REDSTONE_BLOCK), + recipe("battery2_upgrade", recipeFactory, BatteriesNeoForge121.BATTERY2.get(), Items.REDSTONE, Items.DIAMOND, BatteriesNeoForge121.BATTERY1.get(), Items.REDSTONE_BLOCK), + recipe("battery3_upgrade", recipeFactory, BatteriesNeoForge121.BATTERY3.get(), Items.REDSTONE, Items.DIAMOND_BLOCK, BatteriesNeoForge121.BATTERY2.get(), Items.REDSTONE_BLOCK), + recipe("battery_ender_upgrade", recipeFactory, BatteriesNeoForge121.BATTERY_ENDER.get(), Items.END_STONE, Items.DIAMOND_BLOCK, BatteriesNeoForge121.BATTERY3.get(), Items.ENDER_PEARL) + )); + } + + private static RecipeHolder recipe(String name, IVanillaRecipeFactory recipeFactory, ItemLike result, + ItemLike corner, ItemLike topBottom, ItemLike center, ItemLike middleSide) { + CraftingRecipe recipe = recipeFactory.createShapedRecipeBuilder(CraftingBookCategory.REDSTONE, List.of(new ItemStack(result))) + .define('r', Ingredient.of(corner)) + .define('g', Ingredient.of(topBottom)) + .define('i', Ingredient.of(center)) + .define('b', Ingredient.of(middleSide)) + .pattern("rgr") + .pattern("bib") + .pattern("rgr") + .build(); + ResourceLocation recipeId = ResourceLocation.fromNamespaceAndPath(BatteriesNeoForge121.MODID, "jei/" + name); + return new RecipeHolder<>(recipeId, recipe); + } + + private static RecipeHolder twoItemRecipe(String name, IVanillaRecipeFactory recipeFactory, ItemLike result, + CraftingBookCategory category, ItemLike first, ItemLike second) { + CraftingRecipe recipe = recipeFactory.createShapedRecipeBuilder(category, List.of(new ItemStack(result))) + .define('a', Ingredient.of(first)) + .define('b', Ingredient.of(second)) + .pattern("ab") + .build(); + ResourceLocation recipeId = ResourceLocation.fromNamespaceAndPath(BatteriesNeoForge121.MODID, "jei/" + name); + return new RecipeHolder<>(recipeId, recipe); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryBlockItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryBlockItem.java new file mode 100644 index 0000000..e371a70 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryBlockItem.java @@ -0,0 +1,102 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.item.BatteryItemData; +import java.util.List; +import net.minecraft.ChatFormatting; +import net.minecraft.core.component.DataComponents; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.block.Block; +import net.neoforged.neoforge.energy.IEnergyStorage; +import org.jspecify.annotations.Nullable; + +public class BatteryBlockItem extends BlockItem { + public static final int BASE_CAPACITY = 50_000; + private static final String ENERGY_KEY = "energy"; + private static final String CAPACITY_KEY = "capacity"; + + public BatteryBlockItem(Block block, Item.Properties properties) { + super(block, properties.stacksTo(1)); + } + + @Nullable + public static IEnergyStorage createEnergyHandler(ItemStack stack) { + initializeDefaults(stack); + return new BatteryBlockItemEnergyStorage(stack); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return getEnergyCapacity(stack) > 0; + } + + @Override + public int getBarWidth(ItemStack stack) { + int capacity = getEnergyCapacity(stack); + return capacity <= 0 ? 0 : Math.round(13.0F * getStoredEnergy(stack) / (float) capacity); + } + + @Override + public int getBarColor(ItemStack stack) { + return 0x55CC55; + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltip, TooltipFlag flag) { + tooltip.add(Component.translatable( + "batteries.tooltip.energy", + BatteryItemData.formatCompactAmount(getStoredEnergy(stack)), + BatteryItemData.formatCompactAmount(getEnergyCapacity(stack))) + .withStyle(ChatFormatting.GREEN)); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return slotChanged || !newStack.is(oldStack.getItem()); + } + + public static void initializeDefaults(ItemStack stack) { + if (getRawCapacity(stack) <= 0) { + setEnergyCapacity(stack, BASE_CAPACITY); + setStoredEnergy(stack, 0); + } + } + + public static int getEnergyCapacity(ItemStack stack) { + int capacity = getRawCapacity(stack); + return capacity > 0 ? capacity : BASE_CAPACITY; + } + + public static int getStoredEnergy(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + int energy = tag.contains(ENERGY_KEY) ? tag.getInt(ENERGY_KEY) : 0; + return Math.max(0, Math.min(energy, getEnergyCapacity(stack))); + } + + public static void setStoredEnergy(ItemStack stack, int energy) { + int clamped = Math.max(0, Math.min(energy, getEnergyCapacity(stack))); + net.minecraft.world.item.component.CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> tag.putInt(ENERGY_KEY, clamped)); + } + + public static void setEnergyCapacity(ItemStack stack, int capacity) { + int clampedCapacity = Math.max(BASE_CAPACITY, capacity); + net.minecraft.world.item.component.CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> { + tag.putInt(CAPACITY_KEY, clampedCapacity); + int existing = tag.contains(ENERGY_KEY) ? tag.getInt(ENERGY_KEY) : 0; + tag.putInt(ENERGY_KEY, Math.max(0, Math.min(existing, clampedCapacity))); + }); + } + + public static int getMaxTransfer(ItemStack stack) { + return com.trunksbomb.batteries.item.EnergyTierHelper.transferRateForCapacity(getEnergyCapacity(stack)); + } + + private static int getRawCapacity(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + return tag.contains(CAPACITY_KEY) ? tag.getInt(CAPACITY_KEY) : 0; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryBlockItemEnergyStorage.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryBlockItemEnergyStorage.java new file mode 100644 index 0000000..5121f11 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryBlockItemEnergyStorage.java @@ -0,0 +1,31 @@ +package com.trunksbomb.batteries.v21_1.item; + +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.energy.EnergyStorage; + +final class BatteryBlockItemEnergyStorage extends EnergyStorage { + private final ItemStack stack; + + BatteryBlockItemEnergyStorage(ItemStack stack) { + super(BatteryBlockItem.getEnergyCapacity(stack), BatteryBlockItem.getMaxTransfer(stack), BatteryBlockItem.getMaxTransfer(stack), BatteryBlockItem.getStoredEnergy(stack)); + this.stack = stack; + } + + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + int received = super.receiveEnergy(maxReceive, simulate); + if (!simulate && received > 0) { + BatteryBlockItem.setStoredEnergy(this.stack, this.energy); + } + return received; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + int extracted = super.extractEnergy(maxExtract, simulate); + if (!simulate && extracted > 0) { + BatteryBlockItem.setStoredEnergy(this.stack, this.energy); + } + return extracted; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryEnergyHandler.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryEnergyHandler.java new file mode 100644 index 0000000..52e5241 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryEnergyHandler.java @@ -0,0 +1,46 @@ +package com.trunksbomb.batteries.v21_1.item; + +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.energy.EnergyStorage; + +final class BatteryEnergyHandler extends EnergyStorage { + private final ItemStack stack; + private final boolean creative; + + BatteryEnergyHandler(ItemStack stack, int capacity, int maxTransfer, int energy, boolean creative) { + super(capacity, maxTransfer, maxTransfer, creative ? capacity : energy); + this.stack = stack; + this.creative = creative; + } + + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + if (this.creative) { + return maxReceive; + } + + int received = super.receiveEnergy(maxReceive, simulate); + if (!simulate && received > 0) { + BatteryItem.setStoredEnergy(this.stack, this.energy); + } + return received; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + if (this.creative) { + return maxExtract; + } + + int extracted = super.extractEnergy(maxExtract, simulate); + if (!simulate && extracted > 0) { + BatteryItem.setStoredEnergy(this.stack, this.energy); + } + return extracted; + } + + @Override + public int getEnergyStored() { + return this.creative ? this.capacity : super.getEnergyStored(); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryItem.java new file mode 100644 index 0000000..95fd23f --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryItem.java @@ -0,0 +1,374 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import com.trunksbomb.batteries.item.BatteryItemData; +import com.trunksbomb.batteries.item.BatteryItemData.Tier; +import com.trunksbomb.batteries.v21_1.menu.BatteriesMenu; +import java.util.List; +import java.util.UUID; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.SimpleMenuProvider; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.item.component.CustomData; +import net.minecraft.world.level.Level; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.energy.IEnergyStorage; +import org.jspecify.annotations.Nullable; + +public class BatteryItem extends Item { + private static final String BATTERY_UUID_KEY = "battery_uuid"; + private static final String WHITELIST_KEY = "whitelist"; + private static final String CHARGE_HOTBAR_KEY = "charge_hotbar"; + private static final String CHARGE_INVENTORY_KEY = "charge_inventory"; + private static final String CHARGE_ARMOR_KEY = "charge_armor"; + private static final String CHARGE_FAIRLY_KEY = "charge_fairly"; + private static final String CHARGE_MACHINE_KEY = "charge_machine"; + private static final String FILTER_SLOT_KEY_PREFIX = "filter_slot_"; + + private final Tier tier; + + public BatteryItem(Tier tier, Properties properties) { + super(properties.stacksTo(1)); + this.tier = tier; + } + + public Tier tier() { + return this.tier; + } + + @Override + public InteractionResult useOn(UseOnContext context) { + return InteractionResult.PASS; + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand usedHand) { + if (player instanceof ServerPlayer serverPlayer) { + ItemStack stack = player.getItemInHand(usedHand); + MenuProvider provider = new SimpleMenuProvider( + (containerId, inventory, menuPlayer) -> BatteriesMenu.forBattery(containerId, inventory, usedHand), + stack.getHoverName() + ); + serverPlayer.openMenu(provider, buffer -> BatteriesMenu.writeBatteryMenu(buffer, usedHand)); + } + + return InteractionResultHolder.success(player.getItemInHand(usedHand)); + } + + @Override + public void inventoryTick(ItemStack stack, Level level, Entity entity, int slotId, boolean isSelected) { + if (!(level instanceof ServerLevel serverLevel) || !(entity instanceof ServerPlayer player) || !(stack.getItem() instanceof BatteryItem batteryItem)) { + return; + } + + if (batteryItem.tier != Tier.CREATIVE && getStoredEnergy(stack) <= 0) { + return; + } + + if (isChargeHotbarEnabled(stack)) { + for (int i = 0; i < 9; i++) { + chargeItemIfValid(stack, player.getInventory().getItem(i)); + } + } + + if (isChargeInventoryEnabled(stack)) { + for (int i = 9; i < 36; i++) { + chargeItemIfValid(stack, player.getInventory().getItem(i)); + } + } + + if (isChargeWornEnabled(stack)) { + for (int i = 36; i <= 40; i++) { + chargeItemIfValid(stack, player.getInventory().getItem(i)); + } + } + + if (isChargeMachineEnabled(stack)) { + chargeNearbyMachines(stack, player, serverLevel); + } + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return slotChanged || !newStack.is(oldStack.getItem()); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return true; + } + + @Override + public int getBarWidth(ItemStack stack) { + int capacity = getEnergyCapacity(stack); + if (capacity <= 0) { + return 0; + } + + return Math.round(13.0F * getStoredEnergy(stack) / (float) capacity); + } + + @Override + public int getBarColor(ItemStack stack) { + return 0x55CC55; + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipAdder, TooltipFlag flag) { + tooltipAdder.add(Component.translatable( + "batteries.tooltip.energy", + formatCompactAmount(getStoredEnergy(stack)), + formatCompactAmount(getEnergyCapacity(stack))) + .withStyle(ChatFormatting.GREEN)); + } + + @Nullable + public static IEnergyStorage createEnergyHandler(ItemStack stack) { + if (!(stack.getItem() instanceof BatteryItem batteryItem)) { + return null; + } + + int capacity = BatteryItemData.getEnergyCapacity(batteryItem.tier); + int maxTransfer = BatteryItemData.getMaxTransfer(batteryItem.tier); + return new BatteryEnergyHandler(stack, capacity, maxTransfer, getStoredEnergy(stack), batteryItem.tier == Tier.CREATIVE); + } + + public static int getStoredEnergy(ItemStack stack) { + if (stack.getItem() instanceof BatteryItem batteryItem) { + return BatteryItemData.getStoredEnergy(stack, batteryItem.tier); + } + return 0; + } + + static void setStoredEnergy(ItemStack stack, int energy) { + BatteryItemData.setStoredEnergy(stack, energy); + } + + public static int getEnergyCapacity(ItemStack stack) { + if (stack.getItem() instanceof BatteryItem batteryItem) { + return BatteryItemData.getEnergyCapacity(batteryItem.tier); + } + return 0; + } + + public static int getMaxTransfer(ItemStack stack) { + if (stack.getItem() instanceof BatteryItem batteryItem) { + return BatteryItemData.getMaxTransfer(batteryItem.tier); + } + return 0; + } + + public static UUID ensureBatteryId(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, CustomData.EMPTY).copyTag(); + String existingUuid = tag.getString(BATTERY_UUID_KEY); + if (!existingUuid.isBlank()) { + return UUID.fromString(existingUuid); + } + + UUID uuid = UUID.randomUUID(); + CustomData.update(DataComponents.CUSTOM_DATA, stack, data -> data.putString(BATTERY_UUID_KEY, uuid.toString())); + return uuid; + } + + @Nullable + public static UUID getBatteryId(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, CustomData.EMPTY).copyTag(); + String uuid = tag.getString(BATTERY_UUID_KEY); + return uuid.isBlank() ? null : UUID.fromString(uuid); + } + + public static ItemStack findLinkedEnderBattery(Player player, UUID batteryId) { + if (batteryId == null) { + return ItemStack.EMPTY; + } + + for (int slot = 0; slot < player.getInventory().getContainerSize(); slot++) { + ItemStack stack = player.getInventory().getItem(slot); + if (!(stack.getItem() instanceof BatteryItem batteryItem) || batteryItem.tier() != Tier.ENDER) { + continue; + } + + UUID stackId = getBatteryId(stack); + if (batteryId.equals(stackId)) { + return stack; + } + } + + return ItemStack.EMPTY; + } + + private static void chargeItemIfValid(ItemStack battery, ItemStack receivingStack) { + if (receivingStack.isEmpty() || receivingStack == battery || receivingStack.getItem() instanceof BatteryItem || !matchesFilter(battery, receivingStack)) { + return; + } + + IEnergyStorage receivingEnergy = receivingStack.getCapability(Capabilities.EnergyStorage.ITEM); + if (receivingEnergy == null) { + return; + } + + transferEnergyToTarget(battery, receivingEnergy, isFairChargingEnabled(battery)); + } + + private static void chargeNearbyMachines(ItemStack battery, ServerPlayer player, ServerLevel level) { + int range = BatteriesConfig.machineChargeRange(); + BlockPos center = player.blockPosition(); + boolean fairCharging = isFairChargingEnabled(battery); + + for (BlockPos pos : BlockPos.betweenClosed(center.offset(-range, -range, -range), center.offset(range, range, range))) { + if (!level.isLoaded(pos)) { + continue; + } + + Direction side = getFacingFromBlockToPlayer(player, pos); + IEnergyStorage energyHandler = level.getCapability(Capabilities.EnergyStorage.BLOCK, pos.immutable(), side); + if (energyHandler == null || !energyHandler.canReceive()) { + continue; + } + + transferEnergyToTarget(battery, energyHandler, fairCharging); + if (((BatteryItem) battery.getItem()).tier != Tier.CREATIVE && getStoredEnergy(battery) <= 0) { + return; + } + } + } + + private static Direction getFacingFromBlockToPlayer(Player player, BlockPos pos) { + double dx = player.getX() - (pos.getX() + 0.5D); + double dy = player.getEyeY() - (pos.getY() + 0.5D); + double dz = player.getZ() - (pos.getZ() + 0.5D); + double absX = Math.abs(dx); + double absY = Math.abs(dy); + double absZ = Math.abs(dz); + if (absY >= absX && absY >= absZ) { + return dy >= 0.0D ? Direction.UP : Direction.DOWN; + } + if (absX >= absZ) { + return dx >= 0.0D ? Direction.EAST : Direction.WEST; + } + return dz >= 0.0D ? Direction.SOUTH : Direction.NORTH; + } + + private static void transferEnergyToTarget(ItemStack battery, IEnergyStorage target, boolean fairCharging) { + IEnergyStorage batteryEnergy = createEnergyHandler(battery); + if (batteryEnergy == null) { + return; + } + + int targetStored = target.getEnergyStored(); + int targetCapacity = target.getMaxEnergyStored(); + if (targetCapacity <= targetStored) { + return; + } + + int batteryStored = getStoredEnergy(battery); + if (fairCharging && batteryStored <= targetStored) { + return; + } + + int transferLimit = Math.min(getMaxTransfer(battery), targetCapacity - targetStored); + if (transferLimit <= 0) { + return; + } + + if (((BatteryItem) battery.getItem()).tier == Tier.CREATIVE) { + target.receiveEnergy(transferLimit, false); + return; + } + + int accepted = target.receiveEnergy(transferLimit, true); + if (accepted <= 0) { + return; + } + + int extracted = batteryEnergy.extractEnergy(accepted, false); + if (extracted <= 0) { + return; + } + + target.receiveEnergy(extracted, false); + } + + private static boolean matchesFilter(ItemStack battery, ItemStack candidate) { + CompoundTag tag = battery.getOrDefault(DataComponents.CUSTOM_DATA, CustomData.EMPTY).copyTag(); + boolean whitelist = tag.getBoolean(WHITELIST_KEY); + boolean hasFilterEntries = false; + boolean matched = false; + + for (int i = 0; i < BatteriesMenu.FILTER_SLOT_COUNT; i++) { + String itemId = tag.getString(filterSlotKey(i)); + if (itemId.isBlank()) { + continue; + } + + hasFilterEntries = true; + Item item = BuiltInRegistries.ITEM.get(ResourceLocation.parse(itemId)); + if (candidate.is(item)) { + matched = true; + break; + } + } + + if (!hasFilterEntries) { + return !whitelist; + } + + return whitelist == matched; + } + + private static boolean isChargeHotbarEnabled(ItemStack stack) { + return getToggle(stack, CHARGE_HOTBAR_KEY); + } + + private static boolean isChargeInventoryEnabled(ItemStack stack) { + return getToggle(stack, CHARGE_INVENTORY_KEY); + } + + private static boolean isChargeWornEnabled(ItemStack stack) { + return getToggle(stack, CHARGE_ARMOR_KEY); + } + + private static boolean isFairChargingEnabled(ItemStack stack) { + return getToggle(stack, CHARGE_FAIRLY_KEY); + } + + private static boolean isChargeMachineEnabled(ItemStack stack) { + return getToggle(stack, CHARGE_MACHINE_KEY); + } + + private static boolean getToggle(ItemStack stack, String key) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, CustomData.EMPTY).copyTag(); + return tag.getBoolean(key); + } + + private static String filterSlotKey(int index) { + return FILTER_SLOT_KEY_PREFIX + index; + } + + public static String formatWithCommas(int amount) { + return BatteryItemData.formatWithCommas(amount); + } + + public static String formatCompactAmount(int amount) { + return BatteryItemData.formatCompactAmount(amount); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredArmorItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredArmorItem.java new file mode 100644 index 0000000..9f41204 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredArmorItem.java @@ -0,0 +1,86 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.List; +import java.util.function.Consumer; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.ArmorItem; +import net.minecraft.world.item.ArmorMaterial; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.enchantment.Enchantment; +import org.jspecify.annotations.Nullable; + +public class BatteryPoweredArmorItem extends ArmorItem implements PoweredItem { + private final ArmorItem.Type armorType; + + public BatteryPoweredArmorItem(Holder material, ArmorItem.Type armorType, Item.Properties properties) { + super(material, armorType, properties.stacksTo(1)); + this.armorType = armorType; + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder::add, flag); + } + + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(switch (this.armorType) { + case HELMET -> Items.DIAMOND_HELMET; + case CHESTPLATE -> Items.DIAMOND_CHESTPLATE; + case LEGGINGS -> Items.DIAMOND_LEGGINGS; + case BOOTS -> Items.DIAMOND_BOOTS; + default -> Items.DIAMOND_CHESTPLATE; + }); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { + int energyCost = this.getAdjustedEnergyCost(stack, amount * BatteriesConfig.armorEnergyPerDamage()); + return PoweredItemEnergy.consumeEnergy(stack, energyCost) ? 0 : amount; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredAxeItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredAxeItem.java new file mode 100644 index 0000000..527a292 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredAxeItem.java @@ -0,0 +1,103 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.List; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.AxeItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.Tiers; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +public class BatteryPoweredAxeItem extends AxeItem implements PoweredItem { + public BatteryPoweredAxeItem(Item.Properties properties) { + super(Tiers.DIAMOND, properties.stacksTo(1)); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder::add, flag); + } + + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(Items.DIAMOND_AXE); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public boolean shouldCauseBlockBreakReset(ItemStack oldStack, ItemStack newStack) { + return this.shouldCauseEnergyBlockBreakReset(oldStack, newStack); + } + + @Override + public float getDestroySpeed(ItemStack stack, BlockState state) { + return PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)) ? super.getDestroySpeed(stack, state) : 1.0F; + } + + @Override + public boolean isCorrectToolForDrops(ItemStack stack, BlockState state) { + return PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)) && super.isCorrectToolForDrops(stack, state); + } + + @Override + public boolean mineBlock(ItemStack stack, Level level, BlockState state, net.minecraft.core.BlockPos pos, LivingEntity miningEntity) { + if (!level.isClientSide() && !state.isAir()) { + PoweredItemEnergy.consumeEnergy(stack, this.energyCost(stack)); + } + return true; + } + + @Override + public int damageItem(ItemStack stack, int amount, T entity, java.util.function.Consumer onBroken) { + return 0; + } + + private int energyCost(ItemStack stack) { + return this.getAdjustedEnergyCost(stack, BatteriesConfig.axeEnergyPerBlock()); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredBowItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredBowItem.java new file mode 100644 index 0000000..e6515d2 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredBowItem.java @@ -0,0 +1,120 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.List; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.InteractionResultHolder; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.BowItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.level.Level; + +public class BatteryPoweredBowItem extends BowItem implements PoweredItem { + public BatteryPoweredBowItem(Item.Properties properties) { + super(properties.stacksTo(1)); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder::add, flag); + } + + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(Items.BOW); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public InteractionResultHolder use(Level level, Player player, InteractionHand usedHand) { + ItemStack stack = player.getItemInHand(usedHand); + if (!PoweredItemEnergy.hasEnergy(stack, 1)) { + return InteractionResultHolder.fail(stack); + } + return super.use(level, player, usedHand); + } + + @Override + public void releaseUsing(ItemStack stack, Level level, LivingEntity livingEntity, int timeLeft) { + if (!(livingEntity instanceof Player player)) { + return; + } + + ItemStack projectile = player.getProjectile(stack); + if (projectile.isEmpty()) { + return; + } + + int charge = this.getUseDuration(stack, livingEntity) - timeLeft; + charge = net.neoforged.neoforge.event.EventHooks.onArrowLoose(stack, level, player, charge, !projectile.isEmpty()); + if (charge < 0) { + return; + } + + float power = BowItem.getPowerForTime(charge); + if (power < 0.1F) { + return; + } + + int baseEnergyCost = Math.max(1, Math.round(BatteriesConfig.bowFullyChargedShotCost() * power)); + int energyCost = this.getAdjustedEnergyCost(stack, baseEnergyCost); + if (!PoweredItemEnergy.hasEnergy(stack, energyCost)) { + return; + } + + super.releaseUsing(stack, level, livingEntity, timeLeft); + if (!level.isClientSide()) { + PoweredItemEnergy.consumeEnergy(stack, energyCost); + } + } + + @Override + public int damageItem(ItemStack stack, int amount, T entity, java.util.function.Consumer onBroken) { + return 0; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredHoeItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredHoeItem.java new file mode 100644 index 0000000..5efb78c --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredHoeItem.java @@ -0,0 +1,103 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.List; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.HoeItem; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.Tiers; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +public class BatteryPoweredHoeItem extends HoeItem implements PoweredItem { + public BatteryPoweredHoeItem(Item.Properties properties) { + super(Tiers.DIAMOND, properties.stacksTo(1)); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder::add, flag); + } + + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(Items.DIAMOND_HOE); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public boolean shouldCauseBlockBreakReset(ItemStack oldStack, ItemStack newStack) { + return this.shouldCauseEnergyBlockBreakReset(oldStack, newStack); + } + + @Override + public float getDestroySpeed(ItemStack stack, BlockState state) { + return PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)) ? super.getDestroySpeed(stack, state) : 1.0F; + } + + @Override + public boolean isCorrectToolForDrops(ItemStack stack, BlockState state) { + return PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)) && super.isCorrectToolForDrops(stack, state); + } + + @Override + public boolean mineBlock(ItemStack stack, Level level, BlockState state, net.minecraft.core.BlockPos pos, LivingEntity miningEntity) { + if (!level.isClientSide() && !state.isAir()) { + PoweredItemEnergy.consumeEnergy(stack, this.energyCost(stack)); + } + return true; + } + + @Override + public int damageItem(ItemStack stack, int amount, T entity, java.util.function.Consumer onBroken) { + return 0; + } + + private int energyCost(ItemStack stack) { + return this.getAdjustedEnergyCost(stack, BatteriesConfig.hoeEnergyPerBlock()); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredPickaxeItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredPickaxeItem.java new file mode 100644 index 0000000..c036edb --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredPickaxeItem.java @@ -0,0 +1,103 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.List; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.PickaxeItem; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.Tiers; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +public class BatteryPoweredPickaxeItem extends PickaxeItem implements PoweredItem { + public BatteryPoweredPickaxeItem(Item.Properties properties) { + super(Tiers.DIAMOND, properties.stacksTo(1)); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder::add, flag); + } + + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(Items.DIAMOND_PICKAXE); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public boolean shouldCauseBlockBreakReset(ItemStack oldStack, ItemStack newStack) { + return this.shouldCauseEnergyBlockBreakReset(oldStack, newStack); + } + + @Override + public float getDestroySpeed(ItemStack stack, BlockState state) { + return PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)) ? super.getDestroySpeed(stack, state) : 1.0F; + } + + @Override + public boolean isCorrectToolForDrops(ItemStack stack, BlockState state) { + return PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)) && super.isCorrectToolForDrops(stack, state); + } + + @Override + public boolean mineBlock(ItemStack stack, Level level, BlockState state, net.minecraft.core.BlockPos pos, LivingEntity miningEntity) { + if (!level.isClientSide() && !state.isAir()) { + PoweredItemEnergy.consumeEnergy(stack, this.energyCost(stack)); + } + return true; + } + + @Override + public int damageItem(ItemStack stack, int amount, T entity, java.util.function.Consumer onBroken) { + return 0; + } + + private int energyCost(ItemStack stack) { + return this.getAdjustedEnergyCost(stack, BatteriesConfig.pickaxeEnergyPerBlock()); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredShieldItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredShieldItem.java new file mode 100644 index 0000000..ebd907c --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredShieldItem.java @@ -0,0 +1,76 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.List; +import java.util.function.Consumer; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ShieldItem; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.enchantment.Enchantment; +import org.jspecify.annotations.Nullable; + +public class BatteryPoweredShieldItem extends ShieldItem implements PoweredItem { + public BatteryPoweredShieldItem(Item.Properties properties) { + super(properties.stacksTo(1)); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder::add, flag); + } + + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(Items.SHIELD); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { + int energyCost = this.getAdjustedEnergyCost(stack, amount * BatteriesConfig.shieldEnergyPerBlock()); + return PoweredItemEnergy.consumeEnergy(stack, energyCost) ? 0 : amount; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredShovelItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredShovelItem.java new file mode 100644 index 0000000..fd9e4b4 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredShovelItem.java @@ -0,0 +1,103 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.List; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.ShovelItem; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.Tiers; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; + +public class BatteryPoweredShovelItem extends ShovelItem implements PoweredItem { + public BatteryPoweredShovelItem(Item.Properties properties) { + super(Tiers.DIAMOND, properties.stacksTo(1)); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder::add, flag); + } + + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(Items.DIAMOND_SHOVEL); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public boolean shouldCauseBlockBreakReset(ItemStack oldStack, ItemStack newStack) { + return this.shouldCauseEnergyBlockBreakReset(oldStack, newStack); + } + + @Override + public float getDestroySpeed(ItemStack stack, BlockState state) { + return PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)) ? super.getDestroySpeed(stack, state) : 1.0F; + } + + @Override + public boolean isCorrectToolForDrops(ItemStack stack, BlockState state) { + return PoweredItemEnergy.hasEnergy(stack, this.energyCost(stack)) && super.isCorrectToolForDrops(stack, state); + } + + @Override + public boolean mineBlock(ItemStack stack, Level level, BlockState state, net.minecraft.core.BlockPos pos, LivingEntity miningEntity) { + if (!level.isClientSide() && !state.isAir()) { + PoweredItemEnergy.consumeEnergy(stack, this.energyCost(stack)); + } + return true; + } + + @Override + public int damageItem(ItemStack stack, int amount, T entity, java.util.function.Consumer onBroken) { + return 0; + } + + private int energyCost(ItemStack stack) { + return this.getAdjustedEnergyCost(stack, BatteriesConfig.shovelEnergyPerBlock()); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredSwordItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredSwordItem.java new file mode 100644 index 0000000..9081b9e --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/BatteryPoweredSwordItem.java @@ -0,0 +1,92 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.List; +import java.util.function.Consumer; +import net.minecraft.core.Holder; +import net.minecraft.network.chat.Component; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.SwordItem; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.Tiers; +import net.minecraft.world.item.enchantment.Enchantment; +import org.jspecify.annotations.Nullable; + +public class BatteryPoweredSwordItem extends SwordItem implements PoweredItem { + public BatteryPoweredSwordItem(Item.Properties properties) { + super(Tiers.DIAMOND, properties.stacksTo(1)); + } + + @Override + public boolean isBarVisible(ItemStack stack) { + return this.isEnergyBarVisible(stack); + } + + @Override + public int getBarWidth(ItemStack stack) { + return this.getEnergyBarWidth(stack); + } + + @Override + public int getBarColor(ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(ItemStack stack, Item.TooltipContext context, List tooltipAdder, TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder::add, flag); + } + + public ItemStack getEnchantingBaseStack(ItemStack stack) { + return new ItemStack(Items.DIAMOND_SWORD); + } + + @Override + public boolean supportsEnchantment(ItemStack stack, Holder enchantment) { + return this.supportsPoweredEnchantment(stack, enchantment); + } + + @Override + public boolean isPrimaryItemFor(ItemStack stack, Holder enchantment) { + return this.isPrimaryPoweredItemFor(stack, enchantment); + } + + @Override + public int getEnchantmentLevel(ItemStack stack, Holder enchantment) { + return this.getPoweredEnchantmentLevel(stack, enchantment); + } + + @Override + public float getXpRepairRatio(ItemStack stack) { + return this.getPoweredXpRepairRatio(stack); + } + + @Override + public boolean shouldCauseReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + @Override + public boolean hurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { + if (!attacker.level().isClientSide()) { + PoweredItemEnergy.consumeEnergy(stack, this.energyCost(stack)); + } + return true; + } + + @Override + public void postHurtEnemy(ItemStack stack, LivingEntity target, LivingEntity attacker) { + } + + @Override + public int damageItem(ItemStack stack, int amount, @Nullable T entity, Consumer onBroken) { + return 0; + } + + private int energyCost(ItemStack stack) { + return this.getAdjustedEnergyCost(stack, BatteriesConfig.swordEnergyPerHit()); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredEnergyHandler.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredEnergyHandler.java new file mode 100644 index 0000000..823159c --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredEnergyHandler.java @@ -0,0 +1,31 @@ +package com.trunksbomb.batteries.v21_1.item; + +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.energy.EnergyStorage; + +final class PoweredEnergyHandler extends EnergyStorage { + private final ItemStack stack; + + PoweredEnergyHandler(ItemStack stack, int capacity, int maxTransfer, int energy) { + super(capacity, maxTransfer, maxTransfer, energy); + this.stack = stack; + } + + @Override + public int receiveEnergy(int maxReceive, boolean simulate) { + int received = super.receiveEnergy(maxReceive, simulate); + if (!simulate && received > 0) { + PoweredItemEnergy.setStoredEnergy(this.stack, this.energy); + } + return received; + } + + @Override + public int extractEnergy(int maxExtract, boolean simulate) { + int extracted = super.extractEnergy(maxExtract, simulate); + if (!simulate && extracted > 0) { + PoweredItemEnergy.setStoredEnergy(this.stack, this.energy); + } + return extracted; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredItem.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredItem.java new file mode 100644 index 0000000..7baccce --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredItem.java @@ -0,0 +1,86 @@ +package com.trunksbomb.batteries.v21_1.item; + +import java.util.Optional; +import java.util.function.Consumer; +import net.minecraft.core.Holder; +import net.minecraft.core.HolderSet; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.enchantment.Enchantment; +import net.neoforged.neoforge.energy.IEnergyStorage; + +public interface PoweredItem { + default IEnergyStorage createEnergyHandler(ItemStack stack) { + return PoweredItemEnergy.createEnergyHandler(stack, this.getMaxTransfer(stack)); + } + + default int getMaxTransfer(ItemStack stack) { + return com.trunksbomb.batteries.item.EnergyTierHelper.transferRateForCapacity(PoweredItemEnergy.getEnergyCapacity(stack)); + } + + default boolean isEnergyBarVisible(ItemStack stack) { + return PoweredItemEnergy.getEnergyCapacity(stack) > 0; + } + + default int getEnergyBarWidth(ItemStack stack) { + return PoweredItemEnergy.getBarWidth(stack); + } + + default int getEnergyBarColor(ItemStack stack) { + return 0x55CC55; + } + + default void addEnergyTooltip(ItemStack stack, Consumer tooltipAdder, TooltipFlag flag) { + PoweredItemEnergy.addEnergyTooltip(stack, tooltipAdder); + } + + default ItemStack getEnchantingBaseStack(ItemStack stack) { + return stack; + } + + default int getAdjustedEnergyCost(ItemStack stack, int baseCost) { + return PoweredItemEnergy.adjustEnergyCostForEnchantments(stack, baseCost); + } + + default int getPoweredEnchantmentLevel(ItemStack stack, Holder enchantment) { + if (PoweredItemEnergy.isDisabledPoweredItemEnchantment(enchantment)) { + return 0; + } + + return stack.getTagEnchantments().getLevel(enchantment); + } + + default float getPoweredXpRepairRatio(ItemStack stack) { + return 0.0F; + } + + default boolean supportsPoweredEnchantment(ItemStack stack, Holder enchantment) { + if (PoweredItemEnergy.isMendingEnchantment(enchantment)) { + return false; + } + + ItemStack baseStack = this.getEnchantingBaseStack(stack); + return baseStack.is(Items.ENCHANTED_BOOK) || enchantment.value().isSupportedItem(baseStack); + } + + default boolean isPrimaryPoweredItemFor(ItemStack stack, Holder enchantment) { + ItemStack baseStack = this.getEnchantingBaseStack(stack); + if (baseStack.getItem() == Items.BOOK) { + return true; + } + + Optional> primaryItems = enchantment.value().definition().primaryItems(); + return this.supportsPoweredEnchantment(stack, enchantment) && (primaryItems.isEmpty() || baseStack.is(primaryItems.get())); + } + + default boolean shouldCauseEnergyReequipAnimation(ItemStack oldStack, ItemStack newStack, boolean slotChanged) { + return slotChanged || !newStack.is(oldStack.getItem()); + } + + default boolean shouldCauseEnergyBlockBreakReset(ItemStack oldStack, ItemStack newStack) { + return !newStack.is(oldStack.getItem()); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredItemEnergy.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredItemEnergy.java new file mode 100644 index 0000000..f93dff9 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/item/PoweredItemEnergy.java @@ -0,0 +1,172 @@ +package com.trunksbomb.batteries.v21_1.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import java.util.function.Consumer; +import net.minecraft.ChatFormatting; +import net.minecraft.core.Holder; +import net.minecraft.core.component.DataComponents; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.enchantment.Enchantment; +import net.minecraft.world.item.enchantment.ItemEnchantments; +import net.neoforged.neoforge.energy.IEnergyStorage; + +public final class PoweredItemEnergy { + private static final String ENERGY_KEY = "energy"; + private static final String CAPACITY_KEY = "capacity"; + public static final int DEFAULT_CAPACITY = 50_000; + + private PoweredItemEnergy() { + } + + public static IEnergyStorage createEnergyHandler(ItemStack stack, int maxTransfer) { + if (!(stack.getItem() instanceof PoweredItem)) { + return null; + } + + int capacity = getEnergyCapacity(stack); + return new PoweredEnergyHandler(stack, capacity, Math.max(1, maxTransfer), getStoredEnergy(stack)); + } + + public static int getStoredEnergy(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + int energy = tag.contains(ENERGY_KEY) ? tag.getInt(ENERGY_KEY) : 0; + return Math.max(0, Math.min(energy, getEnergyCapacity(stack))); + } + + public static void setStoredEnergy(ItemStack stack, int energy) { + int capacity = getEnergyCapacity(stack); + int clamped = Math.max(0, Math.min(energy, capacity)); + net.minecraft.world.item.component.CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> tag.putInt(ENERGY_KEY, clamped)); + } + + public static int getEnergyCapacity(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + int storedCapacity = tag.contains(CAPACITY_KEY) ? Math.max(0, tag.getInt(CAPACITY_KEY)) : 0; + if (storedCapacity > 0) { + return storedCapacity; + } + + return stack.getItem() instanceof PoweredItem ? DEFAULT_CAPACITY : 0; + } + + public static void setEnergyCapacity(ItemStack stack, int capacity) { + int clampedCapacity = Math.max(0, capacity); + net.minecraft.world.item.component.CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> { + tag.putInt(CAPACITY_KEY, clampedCapacity); + int existing = tag.contains(ENERGY_KEY) ? tag.getInt(ENERGY_KEY) : 0; + tag.putInt(ENERGY_KEY, Math.max(0, Math.min(existing, clampedCapacity))); + }); + } + + public static boolean hasEnergy(ItemStack stack, int amount) { + return amount <= 0 || getStoredEnergy(stack) >= amount; + } + + public static boolean consumeEnergy(ItemStack stack, int amount) { + if (amount <= 0) { + return true; + } + + int stored = getStoredEnergy(stack); + if (stored < amount) { + return false; + } + + setStoredEnergy(stack, stored - amount); + return true; + } + + public static int getBarWidth(ItemStack stack) { + int capacity = getEnergyCapacity(stack); + return capacity <= 0 ? 0 : Math.round(13.0F * getStoredEnergy(stack) / (float) capacity); + } + + public static void addEnergyTooltip(ItemStack stack, Consumer tooltipAdder) { + tooltipAdder.accept(Component.translatable( + "batteries.tooltip.energy", + formatWithCommas(getStoredEnergy(stack)), + abbreviateAmount(getEnergyCapacity(stack))) + .withStyle(ChatFormatting.GREEN)); + } + + public static int adjustEnergyCostForEnchantments(ItemStack stack, int baseCost) { + if (baseCost <= 0) { + return 0; + } + + ItemEnchantments enchantments = stack.getTagEnchantments(); + if (enchantments.keySet().isEmpty()) { + return baseCost; + } + + double totalMultiplier = 1.0D; + for (Holder enchantment : enchantments.keySet()) { + int level = enchantments.getLevel(enchantment); + if (level <= 0) { + continue; + } + + int maxLevel = Math.max(1, enchantment.value().getMaxLevel()); + double scaledLevel = Math.min(level, maxLevel) / (double) maxLevel; + String enchantmentId = enchantment.unwrapKey() + .map(key -> key.location().toString()) + .orElse(""); + totalMultiplier += BatteriesConfig.poweredItemEnchantmentMultiplier(enchantmentId) * scaledLevel; + } + + return clampToInt(Math.max(1L, Math.round(baseCost * totalMultiplier))); + } + + public static int clampToInt(long value) { + return (int) Math.max(0L, Math.min(Integer.MAX_VALUE, value)); + } + + public static boolean isMendingEnchantment(Holder enchantment) { + return hasEnchantmentId(enchantment, "minecraft:mending"); + } + + public static boolean isDisabledPoweredItemEnchantment(Holder enchantment) { + return hasEnchantmentId(enchantment, "minecraft:mending") + || hasEnchantmentId(enchantment, "minecraft:unbreaking"); + } + + private static boolean hasEnchantmentId(Holder enchantment, String id) { + return enchantment.unwrapKey() + .map(key -> id.equals(key.location().toString())) + .orElse(false); + } + + public static String formatWithCommas(int amount) { + return String.format("%,d", amount); + } + + public static String abbreviateAmount(int amount) { + if (amount >= 1_000_000_000) { + return abbreviate(amount, 1_000_000_000, "G"); + } + if (amount >= 1_000_000) { + return abbreviate(amount, 1_000_000, "M"); + } + if (amount >= 1_000) { + return abbreviate(amount, 1_000, "k"); + } + return formatWithCommas(amount); + } + + private static String abbreviate(int amount, int divisor, String suffix) { + int whole = amount / divisor; + int remainder = amount % divisor; + if (remainder == 0) { + return whole + suffix; + } + + int decimal = (remainder * 10) / divisor; + if (decimal == 0) { + return whole + suffix; + } + + return whole + "." + decimal + suffix; + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/BatteriesMenu.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/BatteriesMenu.java new file mode 100644 index 0000000..42e010d --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/BatteriesMenu.java @@ -0,0 +1,253 @@ +package com.trunksbomb.batteries.v21_1.menu; + +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.resources.ResourceLocation; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ClickType; +import net.minecraft.world.inventory.ContainerData; +import net.minecraft.world.inventory.SimpleContainerData; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.CustomData; + +public class BatteriesMenu extends AbstractContainerMenu { + public static final int BATTERY_BUTTON_COUNT = 7; + public static final int FILTER_SLOT_COUNT = 9; + + private static final String BATTERY_WHITELIST_KEY = "whitelist"; + private static final String FILTER_SLOT_KEY_PREFIX = "filter_slot_"; + private static final String[] BATTERY_BUTTON_KEYS = new String[] { + "whitelist", + "blacklist", + "charge_hotbar", + "charge_inventory", + "charge_armor", + "charge_fairly", + "charge_machine" + }; + + private final InteractionHand hand; + private final ContainerData toggleData; + private final SimpleContainer filterSlots; + private final Inventory playerInventory; + + public BatteriesMenu(int containerId, Inventory inventory, RegistryFriendlyByteBuf buffer) { + this(containerId, inventory, readHand(buffer), new SimpleContainerData(BATTERY_BUTTON_COUNT)); + } + + private BatteriesMenu(int containerId, Inventory inventory, InteractionHand hand, ContainerData toggleData) { + super(BatteriesNeoForge121.BATTERIES_MENU.get(), containerId); + this.hand = hand; + this.toggleData = toggleData; + this.playerInventory = inventory; + this.filterSlots = new SimpleContainer(FILTER_SLOT_COUNT); + this.addDataSlots(toggleData); + addSlots(inventory); + } + + public static BatteriesMenu forBattery(int containerId, Inventory inventory, InteractionHand hand) { + SimpleContainerData data = new SimpleContainerData(BATTERY_BUTTON_COUNT); + ItemStack stack = inventory.player.getItemInHand(hand); + for (int i = 0; i < BATTERY_BUTTON_COUNT; i++) { + data.set(i, getBatteryToggle(stack, resolveStateIndex(i)) ? 1 : 0); + } + BatteriesMenu menu = new BatteriesMenu(containerId, inventory, hand, data); + menu.loadFilterSlots(stack); + return menu; + } + + @Override + public boolean clickMenuButton(Player player, int buttonId) { + if (buttonId < 0 || buttonId >= this.toggleData.getCount()) { + return false; + } + + int stateIndex = resolveStateIndex(buttonId); + int newValue = this.toggleData.get(stateIndex) == 0 ? 1 : 0; + this.toggleData.set(stateIndex, newValue); + + if (!player.level().isClientSide() && this.hand != null) { + setBatteryToggle(player.getItemInHand(this.hand), stateIndex, newValue == 1); + } + + return true; + } + + @Override + public void clicked(int slotId, int button, ClickType clickType, Player player) { + if (slotId >= 0 && slotId < FILTER_SLOT_COUNT) { + Slot slot = this.slots.get(slotId); + ItemStack carried = this.getCarried(); + if (!carried.isEmpty() && slot.mayPlace(carried)) { + ItemStack ghostStack = carried.copy(); + ghostStack.setCount(1); + slot.set(ghostStack); + } else { + slot.set(ItemStack.EMPTY); + } + if (!player.level().isClientSide() && this.hand != null) { + saveFilterSlots(player.getItemInHand(this.hand)); + } + this.broadcastChanges(); + return; + } + + super.clicked(slotId, button, clickType, player); + } + + @Override + public ItemStack quickMoveStack(Player player, int index) { + return ItemStack.EMPTY; + } + + @Override + public boolean stillValid(Player player) { + return true; + } + + public int buttonCount() { + return BATTERY_BUTTON_COUNT; + } + + public boolean isButtonEnabled(int index) { + return this.toggleData.get(resolveStateIndex(index)) == 1; + } + + public void toggleClientPreview(int index) { + if (index < 0 || index >= this.buttonCount()) { + return; + } + int stateIndex = resolveStateIndex(index); + this.toggleData.set(stateIndex, this.toggleData.get(stateIndex) == 0 ? 1 : 0); + } + + public static String buttonTranslationKey(int index) { + return "batteries.gui.button." + BATTERY_BUTTON_KEYS[index]; + } + + public boolean isFilterSlotEmpty(int index) { + return this.filterSlots.getItem(index).isEmpty(); + } + + public ItemStack playerInventoryItem(int index) { + return this.playerInventory.getItem(index); + } + + public ItemStack batteryStack() { + return this.hand == null ? ItemStack.EMPTY : this.playerInventory.player.getItemInHand(this.hand); + } + + public static void writeBatteryMenu(RegistryFriendlyByteBuf buffer, InteractionHand hand) { + buffer.writeEnum(hand); + } + + private static InteractionHand readHand(RegistryFriendlyByteBuf buffer) { + return buffer.readEnum(InteractionHand.class); + } + + private static boolean getBatteryToggle(ItemStack stack, int index) { + CustomData customData = stack.getOrDefault(DataComponents.CUSTOM_DATA, CustomData.EMPTY); + return customData.copyTag().getBoolean(stateKey(index)); + } + + private static void setBatteryToggle(ItemStack stack, int index, boolean enabled) { + CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> tag.putBoolean(stateKey(index), enabled)); + } + + private void addSlots(Inventory inventory) { + for (int i = 0; i < FILTER_SLOT_COUNT; i++) { + this.addSlot(new BatteryFilterSlot(this.filterSlots, i, 32 + i * 18, 19)); + } + + for (int row = 0; row < 3; row++) { + for (int col = 0; col < 9; col++) { + this.addSlot(new Slot(inventory, col + row * 9 + 9, 32 + col * 18, 82 + row * 18)); + } + } + + for (int col = 0; col < 9; col++) { + this.addSlot(new Slot(inventory, col, 32 + col * 18, 140)); + } + + for (int slotIndex = 39; slotIndex >= 36; slotIndex--) { + int armorOffset = -slotIndex + 39; + this.addSlot(new Slot(inventory, slotIndex, 7, 19 + armorOffset * 18)); + } + + this.addSlot(new Slot(inventory, 40, 7, 91)); + } + + private void loadFilterSlots(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, CustomData.EMPTY).copyTag(); + for (int i = 0; i < FILTER_SLOT_COUNT; i++) { + this.filterSlots.setItem(i, decodeFilterStack(tag.getString(filterSlotKey(i)))); + } + } + + private void saveFilterSlots(ItemStack stack) { + CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> { + for (int i = 0; i < FILTER_SLOT_COUNT; i++) { + ItemStack filterStack = this.filterSlots.getItem(i); + if (filterStack.isEmpty()) { + tag.remove(filterSlotKey(i)); + } else { + tag.putString(filterSlotKey(i), BuiltInRegistries.ITEM.getKey(filterStack.getItem()).toString()); + } + } + }); + } + + private static ItemStack decodeFilterStack(String itemId) { + if (itemId == null || itemId.isBlank()) { + return ItemStack.EMPTY; + } + + ItemStack stack = new ItemStack(BuiltInRegistries.ITEM.get(ResourceLocation.parse(itemId))); + return stack.isEmpty() ? ItemStack.EMPTY : stack; + } + + private static int resolveStateIndex(int buttonId) { + return buttonId == 1 ? 0 : buttonId; + } + + private static String stateKey(int index) { + return switch (index) { + case 0 -> BATTERY_WHITELIST_KEY; + case 2 -> "charge_hotbar"; + case 3 -> "charge_inventory"; + case 4 -> "charge_armor"; + case 5 -> "charge_fairly"; + case 6 -> "charge_machine"; + default -> throw new IllegalArgumentException("Unexpected battery state index: " + index); + }; + } + + private static String filterSlotKey(int index) { + return FILTER_SLOT_KEY_PREFIX + index; + } + + private static class BatteryFilterSlot extends Slot { + public BatteryFilterSlot(SimpleContainer container, int slot, int x, int y) { + super(container, slot, x, y); + } + + @Override + public boolean mayPlace(ItemStack stack) { + return !(stack.getItem() instanceof BatteryItem); + } + + @Override + public int getMaxStackSize() { + return 1; + } + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/BatteryBlockMenu.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/BatteryBlockMenu.java new file mode 100644 index 0000000..43a134a --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/BatteryBlockMenu.java @@ -0,0 +1,125 @@ +package com.trunksbomb.batteries.v21_1.menu; + +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.shared.BatteryBlockData; +import com.trunksbomb.batteries.v21_1.block.entity.BatteryBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ContainerData; +import net.minecraft.world.inventory.ContainerLevelAccess; +import net.minecraft.world.inventory.SimpleContainerData; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; + +public class BatteryBlockMenu extends AbstractContainerMenu { + public static final int SIDE_BUTTON_COUNT = 6; + private static final int ENERGY_INDEX = 6; + private static final int CAPACITY_INDEX = 7; + + private final ContainerLevelAccess access; + private final ContainerData data; + + public BatteryBlockMenu(int containerId, Inventory inventory, RegistryFriendlyByteBuf buffer) { + this(containerId, inventory, buffer.readBlockPos(), createPlaceholderData()); + } + + private BatteryBlockMenu(int containerId, Inventory inventory, BlockPos blockPos, ContainerData data) { + super(BatteriesNeoForge121.BATTERY_BLOCK_MENU.get(), containerId); + this.access = ContainerLevelAccess.create(inventory.player.level(), blockPos); + this.data = data; + this.addDataSlots(data); + this.addPlayerSlots(inventory); + } + + public static BatteryBlockMenu forBlock(int containerId, Inventory inventory, BatteryBlockEntity blockEntity) { + return new BatteryBlockMenu(containerId, inventory, blockEntity.getBlockPos(), new ContainerData() { + @Override + public int get(int index) { + if (index >= 0 && index < SIDE_BUTTON_COUNT) { + return blockEntity.getSideMode(BatteryBlockEntity.directionForIndex(index)).ordinal(); + } + if (index == ENERGY_INDEX) { + return blockEntity.getStoredEnergy(); + } + if (index == CAPACITY_INDEX) { + return blockEntity.getEnergyCapacity(); + } + return 0; + } + + @Override + public void set(int index, int value) { + if (index >= 0 && index < SIDE_BUTTON_COUNT) { + BatteryBlockData.SideMode[] modes = BatteryBlockData.SideMode.values(); + blockEntity.setSideMode(BatteryBlockEntity.directionForIndex(index), modes[Math.max(0, Math.min(modes.length - 1, value))]); + } + } + + @Override + public int getCount() { + return 8; + } + }); + } + + @Override + public boolean clickMenuButton(Player player, int buttonId) { + if (buttonId < 0 || buttonId >= SIDE_BUTTON_COUNT) { + return false; + } + + this.data.set(buttonId, (this.data.get(buttonId) + 1) % BatteryBlockData.SideMode.values().length); + return true; + } + + @Override + public ItemStack quickMoveStack(Player player, int index) { + return ItemStack.EMPTY; + } + + @Override + public boolean stillValid(Player player) { + return stillValid(this.access, player, BatteriesNeoForge121.BATTERY_BLOCK.get()); + } + + public BatteryBlockData.SideMode sideMode(int index) { + return BatteryBlockData.SideMode.values()[this.data.get(index)]; + } + + public int storedEnergy() { + return this.data.get(ENERGY_INDEX); + } + + public int energyCapacity() { + return this.data.get(CAPACITY_INDEX); + } + + public void cycleClientPreview(int index) { + if (index >= 0 && index < SIDE_BUTTON_COUNT) { + this.data.set(index, (this.data.get(index) + 1) % BatteryBlockData.SideMode.values().length); + } + } + + public static void writeBlockPos(RegistryFriendlyByteBuf buffer, BlockPos blockPos) { + buffer.writeBlockPos(blockPos); + } + + private void addPlayerSlots(Inventory inventory) { + for (int row = 0; row < 3; row++) { + for (int col = 0; col < 9; col++) { + this.addSlot(new Slot(inventory, col + row * 9 + 9, 8 + col * 18, 82 + row * 18)); + } + } + + for (int col = 0; col < 9; col++) { + this.addSlot(new Slot(inventory, col, 8 + col * 18, 140)); + } + } + + private static ContainerData createPlaceholderData() { + return new SimpleContainerData(8); + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/CoalGeneratorMenu.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/CoalGeneratorMenu.java new file mode 100644 index 0000000..3f40827 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/menu/CoalGeneratorMenu.java @@ -0,0 +1,120 @@ +package com.trunksbomb.batteries.v21_1.menu; + +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.v21_1.block.entity.CoalGeneratorBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.world.Container; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ContainerData; +import net.minecraft.world.inventory.ContainerLevelAccess; +import net.minecraft.world.inventory.SimpleContainerData; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; + +public class CoalGeneratorMenu extends AbstractContainerMenu { + private static final int ENERGY_INDEX = 0; + private static final int CAPACITY_INDEX = 1; + private static final int BURN_TIME_INDEX = 2; + private static final int MAX_BURN_TIME_INDEX = 3; + + private final ContainerLevelAccess access; + private final ContainerData data; + + public CoalGeneratorMenu(int containerId, Inventory inventory, RegistryFriendlyByteBuf buffer) { + this(containerId, inventory, buffer.readBlockPos(), createPlaceholderData(), new SimpleContainer(1)); + } + + private CoalGeneratorMenu(int containerId, Inventory inventory, BlockPos blockPos, ContainerData data, Container fuelContainer) { + super(BatteriesNeoForge121.COAL_GENERATOR_MENU.get(), containerId); + this.access = ContainerLevelAccess.create(inventory.player.level(), blockPos); + this.data = data; + this.addDataSlots(data); + this.addSlot(new FuelSlot(fuelContainer, 0, 80, 42)); + this.addPlayerSlots(inventory); + } + + public static CoalGeneratorMenu forBlock(int containerId, Inventory inventory, CoalGeneratorBlockEntity blockEntity) { + ContainerData data = new ContainerData() { + @Override + public int get(int index) { + return switch (index) { + case ENERGY_INDEX -> blockEntity.getStoredEnergy(); + case CAPACITY_INDEX -> blockEntity.getEnergyCapacity(); + case BURN_TIME_INDEX -> blockEntity.getBurnTimeRemaining(); + case MAX_BURN_TIME_INDEX -> blockEntity.getMaxBurnTime(); + default -> 0; + }; + } + + @Override + public void set(int index, int value) { + } + + @Override + public int getCount() { + return 4; + } + }; + return new CoalGeneratorMenu(containerId, inventory, blockEntity.getBlockPos(), data, blockEntity.fuelSlot()); + } + + @Override + public ItemStack quickMoveStack(Player player, int index) { + return ItemStack.EMPTY; + } + + @Override + public boolean stillValid(Player player) { + return stillValid(this.access, player, BatteriesNeoForge121.COAL_GENERATOR.get()); + } + + public int storedEnergy() { + return this.data.get(ENERGY_INDEX); + } + + public int energyCapacity() { + return this.data.get(CAPACITY_INDEX); + } + + public int burnTimeRemaining() { + return this.data.get(BURN_TIME_INDEX); + } + + public int maxBurnTime() { + return this.data.get(MAX_BURN_TIME_INDEX); + } + + public static void writeBlockPos(RegistryFriendlyByteBuf buffer, BlockPos blockPos) { + buffer.writeBlockPos(blockPos); + } + + private void addPlayerSlots(Inventory inventory) { + for (int row = 0; row < 3; row++) { + for (int col = 0; col < 9; col++) { + this.addSlot(new Slot(inventory, col + row * 9 + 9, 8 + col * 18, 82 + row * 18)); + } + } + for (int col = 0; col < 9; col++) { + this.addSlot(new Slot(inventory, col, 8 + col * 18, 140)); + } + } + + private static ContainerData createPlaceholderData() { + return new SimpleContainerData(4); + } + + private final class FuelSlot extends Slot { + private FuelSlot(Container container, int slot, int x, int y) { + super(container, slot, x, y); + } + + @Override + public boolean mayPlace(ItemStack stack) { + return CoalGeneratorMenu.this.access.evaluate((level, pos) -> CoalGeneratorBlockEntity.isFuel(level, stack), false); + } + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/BatteryBlockUpgradeRecipe.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/BatteryBlockUpgradeRecipe.java new file mode 100644 index 0000000..ab10be2 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/BatteryBlockUpgradeRecipe.java @@ -0,0 +1,106 @@ +package com.trunksbomb.batteries.v21_1.recipe; + +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.v21_1.item.BatteryBlockItem; +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import net.minecraft.core.HolderLookup; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingInput; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.Level; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +public class BatteryBlockUpgradeRecipe extends CustomRecipe { + public BatteryBlockUpgradeRecipe(CraftingBookCategory category) { + super(category); + } + + @Override + public boolean matches(CraftingInput input, @NonNull Level level) { + return this.findMatch(input) != null; + } + + @Override + public @NonNull ItemStack assemble(CraftingInput input, HolderLookup.@NonNull Provider registries) { + Match match = this.findMatch(input); + if (match == null) { + return ItemStack.EMPTY; + } + + ItemStack result = new ItemStack(BatteriesNeoForge121.BATTERY_BLOCK_ITEM.get()); + int newCapacity = clampToInt((long) match.baseCapacity() + match.addedCapacity()); + int newEnergy = clampToInt((long) match.baseEnergy() + match.addedEnergy()); + BatteryBlockItem.setEnergyCapacity(result, newCapacity); + BatteryBlockItem.setStoredEnergy(result, Math.min(newCapacity, newEnergy)); + return result; + } + + @Override + public @NonNull RecipeSerializer getSerializer() { + return BatteriesNeoForge121.BATTERY_BLOCK_UPGRADE_RECIPE.get(); + } + + @Override + public boolean canCraftInDimensions(int width, int height) { + return width * height >= 2; + } + + @Override + public @NonNull ItemStack getResultItem(HolderLookup.@NonNull Provider registries) { + ItemStack result = new ItemStack(BatteriesNeoForge121.BATTERY_BLOCK_ITEM.get()); + BatteryBlockItem.initializeDefaults(result); + return result; + } + + @Nullable + private Match findMatch(CraftingInput input) { + ItemStack baseStack = ItemStack.EMPTY; + long addedCapacity = 0L; + long addedEnergy = 0L; + + for (ItemStack stack : input.items()) { + if (stack.isEmpty()) { + continue; + } + + if (stack.getItem() instanceof BatteryBlockItem) { + if (baseStack.isEmpty()) { + baseStack = stack; + } else { + addedCapacity += BatteryBlockItem.getEnergyCapacity(stack); + addedEnergy += BatteryBlockItem.getStoredEnergy(stack); + } + continue; + } + + if (stack.getItem() instanceof BatteryItem) { + addedCapacity += BatteryItem.getEnergyCapacity(stack); + addedEnergy += BatteryItem.getStoredEnergy(stack); + continue; + } + + return null; + } + + if (baseStack.isEmpty() || addedCapacity <= 0L) { + return null; + } + + return new Match( + BatteryBlockItem.getEnergyCapacity(baseStack), + BatteryBlockItem.getStoredEnergy(baseStack), + clampToInt(addedCapacity), + clampToInt(addedEnergy) + ); + } + + private static int clampToInt(long value) { + return (int) Math.max(0L, Math.min(Integer.MAX_VALUE, value)); + } + + private record Match(int baseCapacity, int baseEnergy, int addedCapacity, int addedEnergy) { + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/BatteryTierUpgradeRecipe.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/BatteryTierUpgradeRecipe.java new file mode 100644 index 0000000..8fbc564 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/BatteryTierUpgradeRecipe.java @@ -0,0 +1,92 @@ +package com.trunksbomb.batteries.v21_1.recipe; + +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.item.BatteryItemData; +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import net.minecraft.core.HolderLookup; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingInput; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.Level; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +public class BatteryTierUpgradeRecipe extends CustomRecipe { + public BatteryTierUpgradeRecipe(CraftingBookCategory category) { + super(category); + } + + @Override + public boolean matches(CraftingInput input, @NonNull Level level) { + return this.findMatch(input) != null; + } + + @Override + public @NonNull ItemStack assemble(CraftingInput input, HolderLookup.@NonNull Provider registries) { + Match match = this.findMatch(input); + if (match == null) { + return ItemStack.EMPTY; + } + + ItemStack result = new ItemStack(match.resultItem()); + BatteryItem.createEnergyHandler(result); + BatteryItemData.setStoredEnergy(result, Math.min(BatteryItem.getStoredEnergy(match.baseStack()), BatteryItem.getEnergyCapacity(result))); + return result; + } + + @Override + public @NonNull RecipeSerializer getSerializer() { + return BatteriesNeoForge121.BATTERY_TIER_UPGRADE_RECIPE.get(); + } + + @Override + public boolean canCraftInDimensions(int width, int height) { + return width >= 3 && height >= 3; + } + + @Override + public @NonNull ItemStack getResultItem(HolderLookup.@NonNull Provider registries) { + return new ItemStack(BatteriesNeoForge121.BATTERY1.get()); + } + + @Nullable + private Match findMatch(CraftingInput input) { + if (input.width() != 3 || input.height() != 3) { + return null; + } + + if (matchesPattern(input, Items.REDSTONE, Items.GOLD_BLOCK, BatteriesNeoForge121.BATTERY.get(), Items.REDSTONE_BLOCK)) { + return new Match(input.getItem(4), BatteriesNeoForge121.BATTERY1.get()); + } + if (matchesPattern(input, Items.REDSTONE, Items.DIAMOND, BatteriesNeoForge121.BATTERY1.get(), Items.REDSTONE_BLOCK)) { + return new Match(input.getItem(4), BatteriesNeoForge121.BATTERY2.get()); + } + if (matchesPattern(input, Items.REDSTONE, Items.DIAMOND_BLOCK, BatteriesNeoForge121.BATTERY2.get(), Items.REDSTONE_BLOCK)) { + return new Match(input.getItem(4), BatteriesNeoForge121.BATTERY3.get()); + } + if (matchesPattern(input, Items.END_STONE, Items.DIAMOND_BLOCK, BatteriesNeoForge121.BATTERY3.get(), Items.ENDER_PEARL)) { + return new Match(input.getItem(4), BatteriesNeoForge121.BATTERY_ENDER.get()); + } + + return null; + } + + private static boolean matchesPattern(CraftingInput input, Item cornerItem, Item topBottomItem, Item centerItem, Item middleSideItem) { + return input.getItem(0).is(cornerItem) + && input.getItem(1).is(topBottomItem) + && input.getItem(2).is(cornerItem) + && input.getItem(3).is(middleSideItem) + && input.getItem(4).is(centerItem) + && input.getItem(5).is(middleSideItem) + && input.getItem(6).is(cornerItem) + && input.getItem(7).is(topBottomItem) + && input.getItem(8).is(cornerItem); + } + + private record Match(ItemStack baseStack, Item resultItem) { + } +} diff --git a/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/PoweredGearUpgradeRecipe.java b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/PoweredGearUpgradeRecipe.java new file mode 100644 index 0000000..3b7c9a3 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/com/trunksbomb/batteries/v21_1/recipe/PoweredGearUpgradeRecipe.java @@ -0,0 +1,161 @@ +package com.trunksbomb.batteries.v21_1.recipe; + +import com.trunksbomb.batteries.BatteriesConfig; +import com.trunksbomb.batteries.BatteriesNeoForge121; +import com.trunksbomb.batteries.v21_1.item.BatteryItem; +import com.trunksbomb.batteries.v21_1.item.PoweredItem; +import com.trunksbomb.batteries.v21_1.item.PoweredItemEnergy; +import net.minecraft.core.HolderLookup; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingInput; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.Level; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +public class PoweredGearUpgradeRecipe extends CustomRecipe { + public PoweredGearUpgradeRecipe(CraftingBookCategory category) { + super(category); + } + + @Override + public boolean matches(CraftingInput input, @NonNull Level level) { + return this.findMatch(input) != null; + } + + @Override + public @NonNull ItemStack assemble(CraftingInput input, HolderLookup.@NonNull Provider registries) { + Match match = this.findMatch(input); + if (match == null) { + return ItemStack.EMPTY; + } + + ItemStack result = new ItemStack(match.resultItem()); + int baseCapacity = match.basePowered() ? PoweredItemEnergy.getEnergyCapacity(match.baseStack()) : 0; + int baseEnergy = match.basePowered() ? PoweredItemEnergy.getStoredEnergy(match.baseStack()) : 0; + int newCapacity = PoweredItemEnergy.clampToInt((long) baseCapacity + match.addedCapacity()); + int newEnergy = PoweredItemEnergy.clampToInt((long) baseEnergy + match.addedEnergy()); + PoweredItemEnergy.setEnergyCapacity(result, newCapacity); + PoweredItemEnergy.setStoredEnergy(result, Math.min(newCapacity, newEnergy)); + return result; + } + + @Override + public @NonNull RecipeSerializer getSerializer() { + return BatteriesNeoForge121.POWERED_GEAR_UPGRADE_RECIPE.get(); + } + + @Override + public boolean canCraftInDimensions(int width, int height) { + return width * height >= 2; + } + + @Override + public @NonNull ItemStack getResultItem(HolderLookup.@NonNull Provider registries) { + return new ItemStack(BatteriesNeoForge121.BATTERY_PICKAXE.get()); + } + + @Nullable + private Match findMatch(CraftingInput input) { + ItemStack baseStack = ItemStack.EMPTY; + Item resultItem = null; + boolean basePowered = false; + long addedCapacity = 0L; + long addedEnergy = 0L; + int batteries = 0; + + for (ItemStack stack : input.items()) { + if (stack.isEmpty()) { + continue; + } + + if (stack.getItem() instanceof BatteryItem) { + batteries++; + addedCapacity += BatteryItem.getEnergyCapacity(stack); + addedEnergy += BatteryItem.getStoredEnergy(stack); + continue; + } + + if (!baseStack.isEmpty()) { + return null; + } + + resultItem = this.toPoweredResult(stack); + if (resultItem == null) { + return null; + } + + baseStack = stack; + basePowered = stack.getItem() instanceof PoweredItem; + } + + if (baseStack.isEmpty() || resultItem == null || batteries == 0) { + return null; + } + + return new Match(baseStack, resultItem, basePowered, PoweredItemEnergy.clampToInt(addedCapacity), PoweredItemEnergy.clampToInt(addedEnergy)); + } + + @Nullable + private Item toPoweredResult(ItemStack stack) { + Item item = stack.getItem(); + if (BatteriesConfig.poweredToolsEnabled() && item == Items.DIAMOND_PICKAXE) { + return BatteriesNeoForge121.BATTERY_PICKAXE.get(); + } + if (BatteriesConfig.poweredToolsEnabled() && item == Items.DIAMOND_AXE) { + return BatteriesNeoForge121.BATTERY_AXE.get(); + } + if (BatteriesConfig.poweredToolsEnabled() && item == Items.DIAMOND_SHOVEL) { + return BatteriesNeoForge121.BATTERY_SHOVEL.get(); + } + if (BatteriesConfig.poweredToolsEnabled() && item == Items.DIAMOND_HOE) { + return BatteriesNeoForge121.BATTERY_HOE.get(); + } + if (BatteriesConfig.poweredWeaponsEnabled() && item == Items.DIAMOND_SWORD) { + return BatteriesNeoForge121.BATTERY_SWORD.get(); + } + if (BatteriesConfig.poweredArmorEnabled() && item == Items.DIAMOND_HELMET) { + return BatteriesNeoForge121.BATTERY_HELMET.get(); + } + if (BatteriesConfig.poweredArmorEnabled() && item == Items.DIAMOND_CHESTPLATE) { + return BatteriesNeoForge121.BATTERY_CHESTPLATE.get(); + } + if (BatteriesConfig.poweredArmorEnabled() && item == Items.DIAMOND_LEGGINGS) { + return BatteriesNeoForge121.BATTERY_LEGGINGS.get(); + } + if (BatteriesConfig.poweredArmorEnabled() && item == Items.DIAMOND_BOOTS) { + return BatteriesNeoForge121.BATTERY_BOOTS.get(); + } + if (BatteriesConfig.poweredWeaponsEnabled() && item == Items.SHIELD) { + return BatteriesNeoForge121.BATTERY_SHIELD.get(); + } + if (BatteriesConfig.poweredWeaponsEnabled() && item == Items.BOW) { + return BatteriesNeoForge121.BATTERY_BOW.get(); + } + if (BatteriesConfig.poweredToolsEnabled() && (item == BatteriesNeoForge121.BATTERY_PICKAXE.get() + || item == BatteriesNeoForge121.BATTERY_AXE.get() + || item == BatteriesNeoForge121.BATTERY_SHOVEL.get() + || item == BatteriesNeoForge121.BATTERY_HOE.get())) { + return item; + } + if (BatteriesConfig.poweredWeaponsEnabled() && (item == BatteriesNeoForge121.BATTERY_SWORD.get() + || item == BatteriesNeoForge121.BATTERY_SHIELD.get() + || item == BatteriesNeoForge121.BATTERY_BOW.get())) { + return item; + } + if (BatteriesConfig.poweredArmorEnabled() && (item == BatteriesNeoForge121.BATTERY_HELMET.get() + || item == BatteriesNeoForge121.BATTERY_CHESTPLATE.get() + || item == BatteriesNeoForge121.BATTERY_LEGGINGS.get() + || item == BatteriesNeoForge121.BATTERY_BOOTS.get())) { + return item; + } + return null; + } + + private record Match(ItemStack baseStack, Item resultItem, boolean basePowered, int addedCapacity, int addedEnergy) { + } +} diff --git a/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/ResourceHandler.java b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/ResourceHandler.java new file mode 100644 index 0000000..cac0c36 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/ResourceHandler.java @@ -0,0 +1,48 @@ +package net.neoforged.neoforge.transfer; + +import net.neoforged.neoforge.transfer.transaction.TransactionContext; + +public interface ResourceHandler { + int size(); + + T getResource(int index); + + long getAmountAsLong(int index); + + long getCapacityAsLong(int index, T resource); + + boolean isValid(int index, T resource); + + int insert(int index, T resource, int amount, TransactionContext transaction); + + default int insert(T resource, int amount, TransactionContext transaction) { + TransferPreconditions.checkNonEmptyNonNegative((net.neoforged.neoforge.transfer.item.ItemResource) resource, amount); + int inserted = 0; + for (int index = 0; index < size(); index++) { + inserted += insert(index, resource, amount - inserted, transaction); + if (inserted >= amount) { + break; + } + } + return inserted; + } + + int extract(int index, T resource, int amount, TransactionContext transaction); + + default int extract(T resource, int amount, TransactionContext transaction) { + TransferPreconditions.checkNonEmptyNonNegative((net.neoforged.neoforge.transfer.item.ItemResource) resource, amount); + int extracted = 0; + for (int index = 0; index < size(); index++) { + extracted += extract(index, resource, amount - extracted, transaction); + if (extracted >= amount) { + break; + } + } + return extracted; + } + + @SuppressWarnings("unchecked") + static Class> asClass() { + return (Class>) (Object) ResourceHandler.class; + } +} diff --git a/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/TransferPreconditions.java b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/TransferPreconditions.java new file mode 100644 index 0000000..832295b --- /dev/null +++ b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/TransferPreconditions.java @@ -0,0 +1,25 @@ +package net.neoforged.neoforge.transfer; + +import net.neoforged.neoforge.transfer.item.ItemResource; + +public final class TransferPreconditions { + private TransferPreconditions() { + } + + public static void checkNonNegative(int amount) { + if (amount < 0) { + throw new IllegalArgumentException("Amount must be non-negative"); + } + } + + public static void checkNonEmpty(ItemResource resource) { + if (resource == null || resource.isEmpty()) { + throw new IllegalArgumentException("Resource must be non-empty"); + } + } + + public static void checkNonEmptyNonNegative(ItemResource resource, int amount) { + checkNonEmpty(resource); + checkNonNegative(amount); + } +} diff --git a/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/energy/EnergyHandler.java b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/energy/EnergyHandler.java new file mode 100644 index 0000000..dbc89ad --- /dev/null +++ b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/energy/EnergyHandler.java @@ -0,0 +1,19 @@ +package net.neoforged.neoforge.transfer.energy; + +import net.neoforged.neoforge.transfer.transaction.TransactionContext; + +public interface EnergyHandler { + long getAmountAsLong(); + + int getEnergyStored(); + + int getMaxEnergyStored(); + + boolean canExtract(); + + boolean canInsert(); + + int insert(int maxAmount, TransactionContext transaction); + + int extract(int maxAmount, TransactionContext transaction); +} diff --git a/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/energy/SimpleEnergyHandler.java b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/energy/SimpleEnergyHandler.java new file mode 100644 index 0000000..b870b53 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/energy/SimpleEnergyHandler.java @@ -0,0 +1,90 @@ +package net.neoforged.neoforge.transfer.energy; + +import net.neoforged.neoforge.transfer.transaction.Transaction; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; + +public class SimpleEnergyHandler implements EnergyHandler { + protected final int capacity; + protected final int maxInsert; + protected final int maxExtract; + protected int energy; + + public SimpleEnergyHandler(int capacity, int maxInsert, int maxExtract, int energy) { + this.capacity = capacity; + this.maxInsert = maxInsert; + this.maxExtract = maxExtract; + this.energy = Math.max(0, Math.min(capacity, energy)); + } + + @Override + public long getAmountAsLong() { + return this.energy; + } + + @Override + public int getEnergyStored() { + return this.energy; + } + + @Override + public int getMaxEnergyStored() { + return this.capacity; + } + + @Override + public boolean canExtract() { + return this.maxExtract > 0; + } + + @Override + public boolean canInsert() { + return this.maxInsert > 0; + } + + @Override + public int insert(int maxAmount, TransactionContext transaction) { + if (!canInsert() || maxAmount <= 0) { + return 0; + } + int inserted = Math.min(Math.min(this.capacity - this.energy, this.maxInsert), maxAmount); + if (inserted <= 0) { + return 0; + } + int previous = this.energy; + this.energy += inserted; + if (transaction instanceof Transaction tx) { + tx.addRollbackAction(() -> this.energy = previous); + } + onEnergyChanged(previous); + return inserted; + } + + @Override + public int extract(int maxAmount, TransactionContext transaction) { + if (!canExtract() || maxAmount <= 0) { + return 0; + } + int extracted = Math.min(Math.min(this.energy, this.maxExtract), maxAmount); + if (extracted <= 0) { + return 0; + } + int previous = this.energy; + this.energy -= extracted; + if (transaction instanceof Transaction tx) { + tx.addRollbackAction(() -> this.energy = previous); + } + onEnergyChanged(previous); + return extracted; + } + + public void set(int energy) { + int previous = this.energy; + this.energy = Math.max(0, Math.min(this.capacity, energy)); + if (previous != this.energy) { + onEnergyChanged(previous); + } + } + + protected void onEnergyChanged(int previousAmount) { + } +} diff --git a/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/item/ItemResource.java b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/item/ItemResource.java new file mode 100644 index 0000000..e076dde --- /dev/null +++ b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/item/ItemResource.java @@ -0,0 +1,42 @@ +package net.neoforged.neoforge.transfer.item; + +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.transfer.TransferPreconditions; + +public final class ItemResource { + public static final ItemResource EMPTY = new ItemResource(ItemStack.EMPTY); + + private final ItemStack stack; + + private ItemResource(ItemStack stack) { + this.stack = stack; + } + + public static ItemResource of(ItemStack stack) { + if (stack.isEmpty()) { + return EMPTY; + } + return new ItemResource(stack.copyWithCount(1)); + } + + public boolean isEmpty() { + return this.stack.isEmpty(); + } + + public boolean matches(ItemStack other) { + return ItemStack.isSameItemSameComponents(this.stack, other); + } + + public int getMaxStackSize() { + return this.stack.getMaxStackSize(); + } + + public ItemStack toStack(int count) { + TransferPreconditions.checkNonNegative(count); + return count <= 0 ? ItemStack.EMPTY : this.stack.copyWithCount(count); + } + + public ItemStack toStack() { + return toStack(1); + } +} diff --git a/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/SnapshotJournal.java b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/SnapshotJournal.java new file mode 100644 index 0000000..84e1395 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/SnapshotJournal.java @@ -0,0 +1,36 @@ +package net.neoforged.neoforge.transfer.transaction; + +import java.util.IdentityHashMap; +import java.util.Map; + +public abstract class SnapshotJournal { + private final Map snapshots = new IdentityHashMap<>(); + + protected abstract T createSnapshot(); + + protected abstract void revertToSnapshot(T snapshot); + + protected void onRootCommit(T snapshot) { + } + + public void updateSnapshots(TransactionContext transaction) { + if (!(transaction instanceof Transaction tx) || this.snapshots.containsKey(tx)) { + return; + } + + T snapshot = createSnapshot(); + this.snapshots.put(tx, snapshot); + tx.addRollbackAction(() -> { + T previous = this.snapshots.remove(tx); + if (previous != null) { + revertToSnapshot(previous); + } + }); + tx.addCommitAction(() -> { + T previous = this.snapshots.remove(tx); + if (previous != null) { + onRootCommit(previous); + } + }); + } +} diff --git a/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/Transaction.java b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/Transaction.java new file mode 100644 index 0000000..e29a037 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/Transaction.java @@ -0,0 +1,42 @@ +package net.neoforged.neoforge.transfer.transaction; + +import java.util.ArrayList; +import java.util.List; + +public class Transaction implements TransactionContext, AutoCloseable { + private final List rollbackActions = new ArrayList<>(); + private final List commitActions = new ArrayList<>(); + private boolean committed; + + public static Transaction openRoot() { + return new Transaction(); + } + + public static Transaction open(TransactionContext context) { + return new Transaction(); + } + + public void commit() { + this.committed = true; + for (Runnable action : this.commitActions) { + action.run(); + } + } + + public void addRollbackAction(Runnable action) { + this.rollbackActions.add(action); + } + + public void addCommitAction(Runnable action) { + this.commitActions.add(action); + } + + @Override + public void close() { + if (!this.committed) { + for (int i = this.rollbackActions.size() - 1; i >= 0; i--) { + this.rollbackActions.get(i).run(); + } + } + } +} diff --git a/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/TransactionContext.java b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/TransactionContext.java new file mode 100644 index 0000000..422dad0 --- /dev/null +++ b/neoforge-1.21.1/src/main/java/net/neoforged/neoforge/transfer/transaction/TransactionContext.java @@ -0,0 +1,4 @@ +package net.neoforged.neoforge.transfer.transaction; + +public interface TransactionContext { +} diff --git a/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery.json b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery.json new file mode 100644 index 0000000..68d1e37 --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "rgr", + "bib", + "rgr" + ], + "key": { + "r": { "item": "minecraft:redstone" }, + "g": { "item": "minecraft:gold_ingot" }, + "i": { "item": "minecraft:iron_ingot" }, + "b": { "item": "minecraft:redstone_block" } + }, + "result": { + "id": "batteries:battery", + "count": 1 + } +} diff --git a/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery1.json b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery1.json new file mode 100644 index 0000000..2aeecef --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery1.json @@ -0,0 +1,4 @@ +{ + "type": "batteries:battery_tier_upgrade", + "category": "redstone" +} diff --git a/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery2.json b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery2.json new file mode 100644 index 0000000..2aeecef --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery2.json @@ -0,0 +1,4 @@ +{ + "type": "batteries:battery_tier_upgrade", + "category": "redstone" +} diff --git a/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery3.json b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery3.json new file mode 100644 index 0000000..2aeecef --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery3.json @@ -0,0 +1,4 @@ +{ + "type": "batteries:battery_tier_upgrade", + "category": "redstone" +} diff --git a/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_block.json b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_block.json new file mode 100644 index 0000000..ead114c --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "RGR", + "LIL", + "RGR" + ], + "key": { + "R": { "item": "minecraft:redstone_block" }, + "L": { "tag": "minecraft:logs" }, + "G": { "item": "minecraft:gold_ingot" }, + "I": { "item": "minecraft:iron_block" } + }, + "result": { + "id": "batteries:battery_block" + } +} diff --git a/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_block_upgrade.json b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_block_upgrade.json new file mode 100644 index 0000000..8844138 --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_block_upgrade.json @@ -0,0 +1,4 @@ +{ + "type": "batteries:battery_block_upgrade", + "category": "redstone" +} diff --git a/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_ender.json b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_ender.json new file mode 100644 index 0000000..2aeecef --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/battery_ender.json @@ -0,0 +1,4 @@ +{ + "type": "batteries:battery_tier_upgrade", + "category": "redstone" +} diff --git a/neoforge-1.21.1/src/main/resources/data/batteries/recipe/charger.json b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/charger.json new file mode 100644 index 0000000..46c897c --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/charger.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "rgr", + "bib", + "rgr" + ], + "key": { + "r": { "item": "minecraft:white_concrete" }, + "g": { "item": "minecraft:gold_ingot" }, + "i": { "item": "minecraft:iron_ingot" }, + "b": { "item": "minecraft:redstone_block" } + }, + "result": { + "id": "batteries:charger", + "count": 1 + } +} diff --git a/neoforge-1.21.1/src/main/resources/data/batteries/recipe/coal_generator.json b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/coal_generator.json new file mode 100644 index 0000000..0909ccc --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/coal_generator.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "RGR", + "LFL", + "RGR" + ], + "key": { + "R": { "item": "minecraft:redstone_block" }, + "G": { "item": "minecraft:gold_ingot" }, + "L": { "tag": "minecraft:logs" }, + "F": { "item": "minecraft:furnace" } + }, + "result": { + "id": "batteries:coal_generator" + } +} diff --git a/neoforge-1.21.1/src/main/resources/data/batteries/recipe/ender_charger.json b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/ender_charger.json new file mode 100644 index 0000000..badc223 --- /dev/null +++ b/neoforge-1.21.1/src/main/resources/data/batteries/recipe/ender_charger.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "ede", + "ece", + "ede" + ], + "key": { + "e": { "item": "minecraft:ender_pearl" }, + "d": { "item": "minecraft:diamond" }, + "c": { "item": "batteries:charger" } + }, + "result": { + "id": "batteries:ender_charger", + "count": 1 + } +} diff --git a/neoforge-1.21.1/src/main/templates/META-INF/neoforge.mods.toml b/neoforge-1.21.1/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 0000000..a5dbada --- /dev/null +++ b/neoforge-1.21.1/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,32 @@ +# This is an example neoforge.mods.toml file. It contains the data relating to the loading mods. +# There are several mandatory fields (#mandatory), and many more that are optional (#optional). +# The overall format is standard TOML format, v0.5.0. +# Note that there are a couple of TOML lists in this file. +# Find more information on toml format here: https://github.com/toml-lang/toml + +modLoader="javafml" +loaderVersion="[1,)" +license="${mod_license}" + +[[mods]] +modId="${mod_id}" +version="${mod_version}" +displayName="${mod_name}" +authors="trunksbomb" +description=''' +Adds portable batteries and chargers for NeoForge. +''' + +[[dependencies.${mod_id}]] + modId="neoforge" + type="required" + versionRange="[${neo_version},)" + ordering="NONE" + side="BOTH" + +[[dependencies.${mod_id}]] + modId="minecraft" + type="required" + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" diff --git a/neoforge-1.21.11/build.gradle b/neoforge-1.21.11/build.gradle new file mode 100644 index 0000000..5d71fbc --- /dev/null +++ b/neoforge-1.21.11/build.gradle @@ -0,0 +1,8 @@ +plugins { + id 'java-library' + id 'maven-publish' + id 'net.neoforged.moddev' version '2.0.140' + id 'idea' +} + +apply from: rootProject.file('gradle/neoforge-module.gradle') diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/Batteries.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/Batteries.java new file mode 100644 index 0000000..2ef2945 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/Batteries.java @@ -0,0 +1,245 @@ +package com.trunksbomb.batteries; + +import com.mojang.logging.LogUtils; +import com.trunksbomb.batteries.block.BatteryBlock; +import com.trunksbomb.batteries.block.ChargerBlock; +import com.trunksbomb.batteries.block.CoalGeneratorBlock; +import com.trunksbomb.batteries.block.entity.BatteryBlockEntity; +import com.trunksbomb.batteries.block.entity.CoalGeneratorBlockEntity; +import com.trunksbomb.batteries.block.entity.ChargerBlockEntity; +import com.trunksbomb.batteries.command.BatteryDebugCommands; +import com.trunksbomb.batteries.item.BatteryBlockItem; +import com.trunksbomb.batteries.item.BatteryPoweredAxeItem; +import com.trunksbomb.batteries.item.BatteryPoweredArmorItem; +import com.trunksbomb.batteries.item.BatteryPoweredBowItem; +import com.trunksbomb.batteries.item.BatteryPoweredHoeItem; +import com.trunksbomb.batteries.item.BatteryPoweredPickaxeItem; +import com.trunksbomb.batteries.item.BatteryPoweredShovelItem; +import com.trunksbomb.batteries.item.BatteryPoweredShieldItem; +import com.trunksbomb.batteries.item.BatteryPoweredSwordItem; +import com.trunksbomb.batteries.item.BatteryItem; +import com.trunksbomb.batteries.item.BatteryItemData.Tier; +import com.trunksbomb.batteries.item.PoweredItem; +import com.trunksbomb.batteries.menu.BatteriesMenu; +import com.trunksbomb.batteries.menu.BatteryBlockMenu; +import com.trunksbomb.batteries.menu.CoalGeneratorMenu; +import com.trunksbomb.batteries.recipe.BatteryBlockUpgradeRecipe; +import com.trunksbomb.batteries.recipe.BatteryTierUpgradeRecipe; +import com.trunksbomb.batteries.recipe.PoweredGearUpgradeRecipe; +import net.minecraft.core.registries.Registries; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.CreativeModeTab; +import net.minecraft.world.item.CreativeModeTabs; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.item.equipment.ArmorMaterials; +import net.minecraft.world.item.equipment.ArmorType; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.inventory.MenuType; +import net.neoforged.bus.api.IEventBus; +import net.neoforged.fml.ModContainer; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.config.ModConfig; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.capabilities.RegisterCapabilitiesEvent; +import net.neoforged.neoforge.common.NeoForge; +import net.neoforged.neoforge.common.extensions.IMenuTypeExtension; +import net.neoforged.neoforge.event.RegisterCommandsEvent; +import net.neoforged.neoforge.transfer.access.ItemAccess; +import net.neoforged.neoforge.transfer.energy.EnergyHandler; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import net.neoforged.neoforge.registries.DeferredBlock; +import net.neoforged.neoforge.registries.DeferredHolder; +import net.neoforged.neoforge.registries.DeferredItem; +import net.neoforged.neoforge.registries.DeferredRegister; +import org.slf4j.Logger; + +@Mod(Batteries.MODID) +public class Batteries { + public static final String MODID = "batteries"; + public static final Logger LOGGER = LogUtils.getLogger(); + + public static final DeferredRegister.Blocks BLOCKS = DeferredRegister.createBlocks(MODID); + public static final DeferredRegister.Items ITEMS = DeferredRegister.createItems(MODID); + public static final DeferredRegister> BLOCK_ENTITY_TYPES = DeferredRegister.create(Registries.BLOCK_ENTITY_TYPE, MODID); + public static final DeferredRegister> MENU_TYPES = DeferredRegister.create(Registries.MENU, MODID); + public static final DeferredRegister CREATIVE_MODE_TABS = DeferredRegister.create(Registries.CREATIVE_MODE_TAB, MODID); + public static final DeferredRegister> RECIPE_SERIALIZERS = DeferredRegister.create(Registries.RECIPE_SERIALIZER, MODID); + + public static final DeferredItem BATTERY = registerBattery("battery", Tier.BASIC); + public static final DeferredItem BATTERY1 = registerBattery("battery1", Tier.ADVANCED); + public static final DeferredItem BATTERY2 = registerBattery("battery2", Tier.ELITE); + public static final DeferredItem BATTERY3 = registerBattery("battery3", Tier.ULTIMATE); + public static final DeferredItem BATTERY_ENDER = registerBattery("battery_ender", Tier.ENDER); + public static final DeferredItem BATTERY_CREATIVE = registerBattery("battery_creative", Tier.CREATIVE); + public static final DeferredItem BATTERY_PICKAXE = ITEMS.register("battery_pickaxe", + id -> new BatteryPoweredPickaxeItem(new Item.Properties().setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem BATTERY_AXE = ITEMS.register("battery_axe", + id -> new BatteryPoweredAxeItem(new Item.Properties().setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem BATTERY_SHOVEL = ITEMS.register("battery_shovel", + id -> new BatteryPoweredShovelItem(new Item.Properties().setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem BATTERY_HOE = ITEMS.register("battery_hoe", + id -> new BatteryPoweredHoeItem(new Item.Properties().setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem BATTERY_SWORD = ITEMS.register("battery_sword", + id -> new BatteryPoweredSwordItem(new Item.Properties().setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem BATTERY_HELMET = ITEMS.register("battery_helmet", + id -> new BatteryPoweredArmorItem(ArmorMaterials.DIAMOND, ArmorType.HELMET, new Item.Properties().setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem BATTERY_CHESTPLATE = ITEMS.register("battery_chestplate", + id -> new BatteryPoweredArmorItem(ArmorMaterials.DIAMOND, ArmorType.CHESTPLATE, new Item.Properties().setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem BATTERY_LEGGINGS = ITEMS.register("battery_leggings", + id -> new BatteryPoweredArmorItem(ArmorMaterials.DIAMOND, ArmorType.LEGGINGS, new Item.Properties().setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem BATTERY_BOOTS = ITEMS.register("battery_boots", + id -> new BatteryPoweredArmorItem(ArmorMaterials.DIAMOND, ArmorType.BOOTS, new Item.Properties().setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem BATTERY_SHIELD = ITEMS.register("battery_shield", + id -> new BatteryPoweredShieldItem(new Item.Properties().durability(336).setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem BATTERY_BOW = ITEMS.register("battery_bow", + id -> new BatteryPoweredBowItem(new Item.Properties().durability(384).setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredBlock BATTERY_BLOCK = BLOCKS.register("battery_block", id -> new BatteryBlock(BatteryBlock.batteryBlockProperties() + .setId(ResourceKey.create(Registries.BLOCK, id)))); + public static final DeferredBlock COAL_GENERATOR = BLOCKS.register("coal_generator", id -> new CoalGeneratorBlock(CoalGeneratorBlock.generatorProperties() + .setId(ResourceKey.create(Registries.BLOCK, id)))); + + public static final DeferredBlock CHARGER = BLOCKS.register("charger", id -> new ChargerBlock(ChargerBlock.chargerProperties() + .setId(ResourceKey.create(Registries.BLOCK, id)))); + public static final DeferredBlock ENDER_CHARGER = BLOCKS.register("ender_charger", id -> new ChargerBlock(ChargerBlock.chargerProperties() + .setId(ResourceKey.create(Registries.BLOCK, id)))); + public static final DeferredItem BATTERY_BLOCK_ITEM = ITEMS.register("battery_block", + id -> new BatteryBlockItem(BATTERY_BLOCK.get(), new Item.Properties().setId(ResourceKey.create(Registries.ITEM, id)))); + public static final DeferredItem COAL_GENERATOR_ITEM = ITEMS.registerSimpleBlockItem("coal_generator", COAL_GENERATOR); + public static final DeferredItem CHARGER_ITEM = ITEMS.registerSimpleBlockItem("charger", CHARGER); + public static final DeferredItem ENDER_CHARGER_ITEM = ITEMS.registerSimpleBlockItem("ender_charger", ENDER_CHARGER); + public static final DeferredHolder, BlockEntityType> BATTERY_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("battery_block", + id -> new BlockEntityType<>(BatteryBlockEntity::new, BATTERY_BLOCK.get())); + public static final DeferredHolder, BlockEntityType> COAL_GENERATOR_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("coal_generator", + id -> new BlockEntityType<>(CoalGeneratorBlockEntity::new, COAL_GENERATOR.get())); + public static final DeferredHolder, BlockEntityType> CHARGER_BLOCK_ENTITY = BLOCK_ENTITY_TYPES.register("charger", + id -> new BlockEntityType<>(ChargerBlockEntity::new, CHARGER.get(), ENDER_CHARGER.get())); + public static final DeferredHolder, MenuType> BATTERIES_MENU = MENU_TYPES.register("batteries_menu", + () -> IMenuTypeExtension.create(BatteriesMenu::new)); + public static final DeferredHolder, MenuType> BATTERY_BLOCK_MENU = MENU_TYPES.register("battery_block_menu", + () -> IMenuTypeExtension.create(BatteryBlockMenu::new)); + public static final DeferredHolder, MenuType> COAL_GENERATOR_MENU = MENU_TYPES.register("coal_generator_menu", + () -> IMenuTypeExtension.create(CoalGeneratorMenu::new)); + public static final DeferredHolder, RecipeSerializer> POWERED_GEAR_UPGRADE_RECIPE = + RECIPE_SERIALIZERS.register("powered_gear_upgrade", () -> new CustomRecipe.Serializer<>(PoweredGearUpgradeRecipe::new)); + public static final DeferredHolder, RecipeSerializer> BATTERY_BLOCK_UPGRADE_RECIPE = + RECIPE_SERIALIZERS.register("battery_block_upgrade", () -> new CustomRecipe.Serializer<>(BatteryBlockUpgradeRecipe::new)); + public static final DeferredHolder, RecipeSerializer> BATTERY_TIER_UPGRADE_RECIPE = + RECIPE_SERIALIZERS.register("battery_tier_upgrade", () -> new CustomRecipe.Serializer<>(BatteryTierUpgradeRecipe::new)); + + @SuppressWarnings("unused") + public static final DeferredHolder BATTERIES_TAB = CREATIVE_MODE_TABS.register("main", () -> CreativeModeTab.builder() + .title(Component.translatable("itemGroup.batteries")) + .withTabsBefore(CreativeModeTabs.REDSTONE_BLOCKS) + .icon(() -> BATTERY.get().getDefaultInstance()) + .displayItems((parameters, output) -> { + output.accept(BATTERY.get()); + output.accept(BATTERY1.get()); + output.accept(BATTERY2.get()); + output.accept(BATTERY3.get()); + output.accept(BATTERY_ENDER.get()); + output.accept(BATTERY_CREATIVE.get()); + if (BatteriesConfig.poweredToolsEnabled()) { + output.accept(BATTERY_PICKAXE.get()); + output.accept(BATTERY_AXE.get()); + output.accept(BATTERY_SHOVEL.get()); + output.accept(BATTERY_HOE.get()); + } + if (BatteriesConfig.poweredWeaponsEnabled()) { + output.accept(BATTERY_SWORD.get()); + output.accept(BATTERY_SHIELD.get()); + output.accept(BATTERY_BOW.get()); + } + if (BatteriesConfig.poweredArmorEnabled()) { + output.accept(BATTERY_HELMET.get()); + output.accept(BATTERY_CHESTPLATE.get()); + output.accept(BATTERY_LEGGINGS.get()); + output.accept(BATTERY_BOOTS.get()); + } + output.accept(BATTERY_BLOCK_ITEM.get()); + output.accept(COAL_GENERATOR_ITEM.get()); + output.accept(CHARGER_ITEM.get()); + output.accept(ENDER_CHARGER_ITEM.get()); + }) + .build()); + + public Batteries(IEventBus modEventBus, ModContainer modContainer) { + BLOCKS.register(modEventBus); + ITEMS.register(modEventBus); + BLOCK_ENTITY_TYPES.register(modEventBus); + MENU_TYPES.register(modEventBus); + CREATIVE_MODE_TABS.register(modEventBus); + RECIPE_SERIALIZERS.register(modEventBus); + modEventBus.addListener(Batteries::registerCapabilities); + NeoForge.EVENT_BUS.addListener(Batteries::registerCommands); + modContainer.registerConfig(ModConfig.Type.SERVER, BatteriesConfig.SPEC); + + LOGGER.info("Loading Batteries MVP for Minecraft 1.21"); + } + + private static void registerCapabilities(RegisterCapabilitiesEvent event) { + event.registerItem(Capabilities.Energy.ITEM, (stack, context) -> BatteryItem.createEnergyHandler(stack), + BATTERY.get(), BATTERY1.get(), BATTERY2.get(), BATTERY3.get(), BATTERY_ENDER.get(), BATTERY_CREATIVE.get()); + event.registerItem(Capabilities.Energy.ITEM, (stack, context) -> stack.getItem() instanceof PoweredItem poweredItem ? poweredItem.createEnergyHandler(stack) : null, + BATTERY_PICKAXE.get(), BATTERY_AXE.get(), BATTERY_SHOVEL.get(), BATTERY_HOE.get(), BATTERY_SWORD.get(), + BATTERY_HELMET.get(), BATTERY_CHESTPLATE.get(), BATTERY_LEGGINGS.get(), BATTERY_BOOTS.get(), BATTERY_SHIELD.get(), BATTERY_BOW.get()); + event.registerItem(Capabilities.Energy.ITEM, (stack, context) -> stack.getItem() instanceof BatteryBlockItem batteryBlockItem ? batteryBlockItem.createEnergyHandler(stack) : null, + BATTERY_BLOCK_ITEM.get()); + event.registerBlockEntity(Capabilities.Energy.BLOCK, BATTERY_BLOCK_ENTITY.get(), BatteryBlockEntity::getEnergyHandler); + event.registerBlockEntity(Capabilities.Energy.BLOCK, COAL_GENERATOR_BLOCK_ENTITY.get(), CoalGeneratorBlockEntity::getEnergyHandler); + event.registerBlockEntity(Capabilities.Item.BLOCK, COAL_GENERATOR_BLOCK_ENTITY.get(), CoalGeneratorBlockEntity::getItemHandler); + event.registerBlockEntity(Capabilities.Energy.BLOCK, CHARGER_BLOCK_ENTITY.get(), ChargerBlockEntity::getEnergyHandler); + } + + private static void registerCommands(RegisterCommandsEvent event) { + BatteryDebugCommands.register(event.getDispatcher(), new BatteryDebugCommands.EnergyAdapter() { + @Override + public EnergyHandler resolve(ItemStack stack) { + return stack.getCapability(Capabilities.Energy.ITEM, ItemAccess.forStack(stack)); + } + + @Override + public int stored(EnergyHandler handler) { + return handler.getAmountAsInt(); + } + + @Override + public int capacity(EnergyHandler handler) { + return handler.getCapacityAsInt(); + } + + @Override + public int charge(EnergyHandler handler, int amount) { + try (Transaction transaction = Transaction.openRoot()) { + int accepted = handler.insert(amount, transaction); + if (accepted > 0) { + transaction.commit(); + } + return accepted; + } + } + + @Override + public int drain(EnergyHandler handler, int amount) { + try (Transaction transaction = Transaction.openRoot()) { + int extracted = handler.extract(amount, transaction); + if (extracted > 0) { + transaction.commit(); + } + return extracted; + } + } + }); + } + + private static DeferredItem registerBattery(String name, Tier tier) { + return ITEMS.register(name, id -> new BatteryItem(tier, new Item.Properties() + .stacksTo(1) + .setId(ResourceKey.create(Registries.ITEM, id)))); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/BatteriesClient.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/BatteriesClient.java new file mode 100644 index 0000000..e4799da --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/BatteriesClient.java @@ -0,0 +1,32 @@ +package com.trunksbomb.batteries; + +import com.trunksbomb.batteries.client.screen.BatteryBlockScreen; +import com.trunksbomb.batteries.client.screen.BatteriesScreen; +import com.trunksbomb.batteries.client.screen.CoalGeneratorScreen; +import net.neoforged.api.distmarker.Dist; +import net.neoforged.bus.api.SubscribeEvent; +import net.neoforged.fml.common.EventBusSubscriber; +import net.neoforged.fml.common.Mod; +import net.neoforged.fml.event.lifecycle.FMLClientSetupEvent; +import net.neoforged.neoforge.client.event.RegisterMenuScreensEvent; + +// This class will not load on dedicated servers. Accessing client side code from here is safe. +@Mod(value = Batteries.MODID, dist = Dist.CLIENT) +@EventBusSubscriber(modid = Batteries.MODID, value = Dist.CLIENT) +public class BatteriesClient { + public BatteriesClient() { + // TODO: Register battery screens, renderers, and client-only behavior here. + } + + @SubscribeEvent + static void onClientSetup(FMLClientSetupEvent event) { + Batteries.LOGGER.info("Batteries client setup complete"); + } + + @SubscribeEvent + static void registerScreens(RegisterMenuScreensEvent event) { + event.register(Batteries.BATTERIES_MENU.get(), BatteriesScreen::new); + event.register(Batteries.BATTERY_BLOCK_MENU.get(), BatteryBlockScreen::new); + event.register(Batteries.COAL_GENERATOR_MENU.get(), CoalGeneratorScreen::new); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/BatteryBlock.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/BatteryBlock.java new file mode 100644 index 0000000..f4aaa74 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/BatteryBlock.java @@ -0,0 +1,135 @@ +package com.trunksbomb.batteries.block; + +import com.mojang.serialization.MapCodec; +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.block.entity.BatteryBlockEntity; +import com.trunksbomb.batteries.menu.BatteryBlockMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.SimpleMenuProvider; +import net.minecraft.world.entity.LivingEntity; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.IntegerProperty; +import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; + +public class BatteryBlock extends BaseEntityBlock { + public static final MapCodec CODEC = simpleCodec(BatteryBlock::new); + public static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = HorizontalDirectionalBlock.FACING; + public static final IntegerProperty CHARGE = IntegerProperty.create("charge", 0, 4); + + public BatteryBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(CHARGE, 0)); + } + + @Override + protected @NonNull MapCodec codec() { + return CODEC; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING, CHARGE); + } + + @Override + public BlockState getStateForPlacement(BlockPlaceContext context) { + return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite()); + } + + @Override + protected @NonNull BlockState rotate(BlockState state, Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + protected @NonNull BlockState mirror(BlockState state, Mirror mirror) { + return state.rotate(mirror.getRotation(state.getValue(FACING))); + } + + @Override + protected @NonNull RenderShape getRenderShape(@NonNull BlockState state) { + return RenderShape.MODEL; + } + + @Override + protected @NonNull InteractionResult useWithoutItem(@NonNull BlockState state, @NonNull Level level, @NonNull BlockPos pos, @NonNull Player player, net.minecraft.world.phys.@NonNull BlockHitResult hitResult) { + return openMenu(level, pos, player); + } + + @Override + protected @NonNull InteractionResult useItemOn(@NonNull ItemStack stack, @NonNull BlockState state, @NonNull Level level, @NonNull BlockPos pos, @NonNull Player player, @NonNull InteractionHand hand, net.minecraft.world.phys.@NonNull BlockHitResult hitResult) { + return openMenu(level, pos, player); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(@NonNull BlockPos pos, @NonNull BlockState state) { + return new BatteryBlockEntity(pos, state); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(Level level, @NonNull BlockState state, @NonNull BlockEntityType blockEntityType) { + return level.isClientSide() ? null : createTickerHelper(blockEntityType, Batteries.BATTERY_BLOCK_ENTITY.get(), BatteryBlockEntity::serverTick); + } + + @Override + public void setPlacedBy(@NonNull Level level, @NonNull BlockPos pos, @NonNull BlockState state, @Nullable LivingEntity placer, @NonNull ItemStack stack) { + super.setPlacedBy(level, pos, state, placer, stack); + if (level.getBlockEntity(pos) instanceof BatteryBlockEntity batteryBlockEntity) { + batteryBlockEntity.loadFromItem(stack); + } + } + + @Override + public void playerDestroy(Level level, @NonNull Player player, @NonNull BlockPos pos, @NonNull BlockState state, @Nullable BlockEntity blockEntity, @NonNull ItemStack tool) { + if (!level.isClientSide() && !player.isCreative() && blockEntity instanceof BatteryBlockEntity batteryBlockEntity) { + popResource(level, pos, batteryBlockEntity.createDropStack()); + } + super.playerDestroy(level, player, pos, state, blockEntity, tool); + } + + @Override + public void onPlace(@NonNull BlockState state, @NonNull Level level, @NonNull BlockPos pos, @NonNull BlockState oldState, boolean movedByPiston) { + super.onPlace(state, level, pos, oldState, movedByPiston); + level.invalidateCapabilities(pos); + } + + public static BlockBehaviour.Properties batteryBlockProperties() { + return BlockBehaviour.Properties.of() + .strength(2.0F) + .requiresCorrectToolForDrops(); + } + + private static InteractionResult openMenu(Level level, BlockPos pos, Player player) { + if (!level.isClientSide() && player instanceof ServerPlayer serverPlayer && level.getBlockEntity(pos) instanceof BatteryBlockEntity blockEntity) { + MenuProvider provider = new SimpleMenuProvider( + (containerId, inventory, menuPlayer) -> BatteryBlockMenu.forBlock(containerId, inventory, blockEntity), + Component.translatable("container.batteries.battery_block") + ); + serverPlayer.openMenu(provider, buffer -> BatteryBlockMenu.writeBlockPos(buffer, pos)); + } + return InteractionResult.SUCCESS; + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/ChargerBlock.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/ChargerBlock.java new file mode 100644 index 0000000..6f61373 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/ChargerBlock.java @@ -0,0 +1,166 @@ +package com.trunksbomb.batteries.block; + +import com.mojang.serialization.MapCodec; +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.block.ChargerBlockData.BatteryState; +import com.trunksbomb.batteries.block.entity.ChargerBlockEntity; +import com.trunksbomb.batteries.item.BatteryItem; +import java.util.UUID; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.Block; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.EnumProperty; +import net.minecraft.world.level.material.MapColor; +import org.jspecify.annotations.NonNull; +import org.jetbrains.annotations.Nullable; + +public class ChargerBlock extends BaseEntityBlock { + public static final EnumProperty FACING = HorizontalDirectionalBlock.FACING; + public static final EnumProperty BATTERY = EnumProperty.create("battery", BatteryState.class); + public static final MapCodec CODEC = simpleCodec(ChargerBlock::new); + + public ChargerBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(BATTERY, BatteryState.NONE)); + } + + @Override + protected @NonNull MapCodec codec() { + return CODEC; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING, BATTERY); + } + + @Override + public @NonNull BlockState getStateForPlacement(@NonNull BlockPlaceContext context) { + return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite()); + } + + @Override + protected @NonNull BlockState rotate(@NonNull BlockState state, @NonNull Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + protected @NonNull BlockState mirror(@NonNull BlockState state, @NonNull Mirror mirror) { + return this.rotate(state, mirror.getRotation(state.getValue(FACING))); + } + + @Override + protected @NonNull RenderShape getRenderShape(@NonNull BlockState state) { + return RenderShape.MODEL; + } + + @Override + protected @NonNull InteractionResult useWithoutItem(@NonNull BlockState state, @NonNull Level level, @NonNull BlockPos pos, @NonNull Player player, net.minecraft.world.phys.@NonNull BlockHitResult hitResult) { + return tryRetrieveBattery(state, level, pos, player); + } + + @Override + protected @NonNull InteractionResult useItemOn(@NonNull ItemStack stack, @NonNull BlockState state, @NonNull Level level, @NonNull BlockPos pos, @NonNull Player player, @NonNull InteractionHand hand, net.minecraft.world.phys.@NonNull BlockHitResult hitResult) { + BlockEntity blockEntity = level.getBlockEntity(pos); + if (!(blockEntity instanceof ChargerBlockEntity chargerBlockEntity)) { + return InteractionResult.PASS; + } + + if (chargerBlockEntity.hasBattery()) { + return tryRetrieveBattery(state, level, pos, player); + } + + if (!(stack.getItem() instanceof BatteryItem batteryItem) || !canAcceptBattery(state, batteryItem)) { + return InteractionResult.PASS; + } + + if (!level.isClientSide()) { + if (state.is(Batteries.ENDER_CHARGER.get())) { + UUID batteryUuid = BatteryItem.ensureBatteryId(stack); + chargerBlockEntity.linkBattery(batteryUuid, player.getUUID()); + updateBatteryState(level, pos, state, BatteryState.fromTier(batteryItem.tier())); + } else { + ItemStack remainingStack = chargerBlockEntity.insertBattery(stack); + player.setItemInHand(hand, remainingStack); + updateBatteryState(level, pos, state, BatteryState.fromTier(batteryItem.tier())); + } + } + + return InteractionResult.SUCCESS; + } + + @Nullable + @Override + public BlockEntity newBlockEntity(@NonNull BlockPos pos, @NonNull BlockState state) { + return new ChargerBlockEntity(pos, state); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(@NonNull Level level, @NonNull BlockState state, @NonNull BlockEntityType blockEntityType) { + return level.isClientSide() ? null : createTickerHelper(blockEntityType, Batteries.CHARGER_BLOCK_ENTITY.get(), ChargerBlockEntity::serverTick); + } + + @Override + public void playerDestroy(@NonNull Level level, @NonNull Player player, @NonNull BlockPos pos, @NonNull BlockState state, @Nullable BlockEntity blockEntity, @NonNull ItemStack tool) { + if (blockEntity instanceof ChargerBlockEntity chargerBlockEntity && chargerBlockEntity.hasStoredBattery() && level instanceof ServerLevel serverLevel) { + popResource(serverLevel, pos, chargerBlockEntity.extractBattery()); + } + super.playerDestroy(level, player, pos, state, blockEntity, tool); + } + + public static BlockBehaviour.Properties chargerProperties() { + return BlockBehaviour.Properties.of() + .mapColor(MapColor.METAL) + .strength(2.0F) + .requiresCorrectToolForDrops(); + } + + private static boolean canAcceptBattery(BlockState state, BatteryItem batteryItem) { + return ChargerBlockData.canAcceptBattery(state.is(Batteries.ENDER_CHARGER.get()), batteryItem.tier()); + } + + private static void updateBatteryState(Level level, BlockPos pos, BlockState state, BatteryState batteryState) { + level.setBlock(pos, state.setValue(BATTERY, batteryState), Block.UPDATE_ALL); + } + + private static InteractionResult tryRetrieveBattery(BlockState state, Level level, BlockPos pos, Player player) { + BlockEntity blockEntity = level.getBlockEntity(pos); + if (!(blockEntity instanceof ChargerBlockEntity chargerBlockEntity) || !chargerBlockEntity.hasBattery()) { + return InteractionResult.PASS; + } + + if (!level.isClientSide()) { + if (state.is(Batteries.ENDER_CHARGER.get())) { + chargerBlockEntity.clearLinkedBattery(); + updateBatteryState(level, pos, state, BatteryState.NONE); + } else { + ItemStack extractedBattery = chargerBlockEntity.extractBattery(); + updateBatteryState(level, pos, state, BatteryState.NONE); + if (!player.addItem(extractedBattery)) { + player.drop(extractedBattery, false); + } + } + } + + return InteractionResult.SUCCESS; + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/CoalGeneratorBlock.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/CoalGeneratorBlock.java new file mode 100644 index 0000000..79a326c --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/CoalGeneratorBlock.java @@ -0,0 +1,121 @@ +package com.trunksbomb.batteries.block; + +import com.mojang.serialization.MapCodec; +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.block.entity.CoalGeneratorBlockEntity; +import com.trunksbomb.batteries.menu.CoalGeneratorMenu; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.network.chat.Component; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.SimpleMenuProvider; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.context.BlockPlaceContext; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.BaseEntityBlock; +import net.minecraft.world.level.block.HorizontalDirectionalBlock; +import net.minecraft.world.level.block.Mirror; +import net.minecraft.world.level.block.RenderShape; +import net.minecraft.world.level.block.Rotation; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.entity.BlockEntityTicker; +import net.minecraft.world.level.block.entity.BlockEntityType; +import net.minecraft.world.level.block.state.BlockBehaviour; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.block.state.StateDefinition; +import net.minecraft.world.level.block.state.properties.BlockStateProperties; +import net.minecraft.world.level.block.state.properties.BooleanProperty; +import net.minecraft.world.level.material.MapColor; +import org.jetbrains.annotations.Nullable; +import org.jspecify.annotations.NonNull; + +public class CoalGeneratorBlock extends BaseEntityBlock { + public static final MapCodec CODEC = simpleCodec(CoalGeneratorBlock::new); + public static final net.minecraft.world.level.block.state.properties.EnumProperty FACING = HorizontalDirectionalBlock.FACING; + public static final BooleanProperty LIT = BlockStateProperties.LIT; + + public CoalGeneratorBlock(BlockBehaviour.Properties properties) { + super(properties); + this.registerDefaultState(this.stateDefinition.any().setValue(FACING, Direction.NORTH).setValue(LIT, false)); + } + + @Override + protected @NonNull MapCodec codec() { + return CODEC; + } + + @Override + protected void createBlockStateDefinition(StateDefinition.Builder builder) { + builder.add(FACING, LIT); + } + + @Override + public @NonNull BlockState getStateForPlacement(@NonNull BlockPlaceContext context) { + return this.defaultBlockState().setValue(FACING, context.getHorizontalDirection().getOpposite()); + } + + @Override + protected @NonNull BlockState rotate(@NonNull BlockState state, @NonNull Rotation rotation) { + return state.setValue(FACING, rotation.rotate(state.getValue(FACING))); + } + + @Override + protected @NonNull BlockState mirror(@NonNull BlockState state, @NonNull Mirror mirror) { + return this.rotate(state, mirror.getRotation(state.getValue(FACING))); + } + + @Override + protected @NonNull RenderShape getRenderShape(@NonNull BlockState state) { + return RenderShape.MODEL; + } + + @Override + protected @NonNull InteractionResult useWithoutItem(@NonNull BlockState state, @NonNull Level level, @NonNull BlockPos pos, @NonNull Player player, net.minecraft.world.phys.@NonNull BlockHitResult hitResult) { + return openMenu(level, pos, player); + } + + @Override + protected @NonNull InteractionResult useItemOn(@NonNull ItemStack stack, @NonNull BlockState state, @NonNull Level level, @NonNull BlockPos pos, @NonNull Player player, @NonNull InteractionHand hand, net.minecraft.world.phys.@NonNull BlockHitResult hitResult) { + return openMenu(level, pos, player); + } + + @Nullable + @Override + public BlockEntity newBlockEntity(@NonNull BlockPos pos, @NonNull BlockState state) { + return new CoalGeneratorBlockEntity(pos, state); + } + + @Nullable + @Override + public BlockEntityTicker getTicker(@NonNull Level level, @NonNull BlockState state, @NonNull BlockEntityType blockEntityType) { + return level.isClientSide() ? null : createTickerHelper(blockEntityType, Batteries.COAL_GENERATOR_BLOCK_ENTITY.get(), CoalGeneratorBlockEntity::serverTick); + } + + public static BlockBehaviour.Properties generatorProperties() { + return BlockBehaviour.Properties.of() + .mapColor(MapColor.WOOD) + .strength(2.0F) + .requiresCorrectToolForDrops(); + } + + public static void setLit(Level level, BlockPos pos, BlockState state, boolean lit) { + if (state.hasProperty(LIT) && state.getValue(LIT) != lit) { + level.setBlock(pos, state.setValue(LIT, lit), net.minecraft.world.level.block.Block.UPDATE_CLIENTS); + } + } + + private static InteractionResult openMenu(Level level, BlockPos pos, Player player) { + if (!level.isClientSide() && player instanceof ServerPlayer serverPlayer && level.getBlockEntity(pos) instanceof CoalGeneratorBlockEntity blockEntity) { + MenuProvider provider = new SimpleMenuProvider( + (containerId, inventory, menuPlayer) -> CoalGeneratorMenu.forBlock(containerId, inventory, blockEntity), + Component.translatable("container.batteries.coal_generator") + ); + serverPlayer.openMenu(provider, buffer -> CoalGeneratorMenu.writeBlockPos(buffer, pos)); + } + return InteractionResult.SUCCESS; + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockEnergyHandler.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockEnergyHandler.java new file mode 100644 index 0000000..6995b4c --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockEnergyHandler.java @@ -0,0 +1,17 @@ +package com.trunksbomb.batteries.block.entity; + +import net.neoforged.neoforge.transfer.energy.SimpleEnergyHandler; + +final class BatteryBlockEnergyHandler extends SimpleEnergyHandler { + private final BatteryBlockEntity blockEntity; + + BatteryBlockEnergyHandler(BatteryBlockEntity blockEntity) { + super(blockEntity.getEnergyCapacity(), blockEntity.getMaxTransfer(), blockEntity.getMaxTransfer(), blockEntity.getStoredEnergy()); + this.blockEntity = blockEntity; + } + + @Override + protected void onEnergyChanged(int previousAmount) { + this.blockEntity.setStoredEnergyInternal(this.energy); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockEntity.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockEntity.java new file mode 100644 index 0000000..5cb5d61 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockEntity.java @@ -0,0 +1,191 @@ +package com.trunksbomb.batteries.block.entity; + +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.block.BatteryBlock; +import com.trunksbomb.batteries.block.BatteryBlockData; +import com.trunksbomb.batteries.item.BatteryBlockItem; +import com.trunksbomb.batteries.item.EnergyTierHelper; +import com.trunksbomb.batteries.item.PoweredItemEnergy; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.transfer.energy.EnergyHandler; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jspecify.annotations.NonNull; + +public class BatteryBlockEntity extends net.minecraft.world.level.block.entity.BlockEntity { + private static final String ENERGY_KEY = "energy"; + private static final String CAPACITY_KEY = "capacity"; + private int storedEnergy; + private int energyCapacity = BatteryBlockItem.BASE_CAPACITY; + private BatteryBlockEnergyHandler internalEnergyHandler; + private final BatteryBlockData.SideMode[] sideModes = new BatteryBlockData.SideMode[] { + BatteryBlockData.SideMode.BOTH, BatteryBlockData.SideMode.BOTH, BatteryBlockData.SideMode.BOTH, + BatteryBlockData.SideMode.BOTH, BatteryBlockData.SideMode.BOTH, BatteryBlockData.SideMode.BOTH + }; + + public BatteryBlockEntity(BlockPos pos, BlockState blockState) { + super(Batteries.BATTERY_BLOCK_ENTITY.get(), pos, blockState); + } + + public static void serverTick(Level level, BlockPos pos, BlockState state, BatteryBlockEntity blockEntity) { + if (blockEntity.storedEnergy <= 0) { + return; + } + + int remainingTransfer = Math.min(blockEntity.storedEnergy, blockEntity.getMaxTransfer()); + if (remainingTransfer <= 0) { + return; + } + + EnergyHandler source = blockEntity.getInternalEnergyHandler(); + for (Direction direction : Direction.values()) { + if (!blockEntity.canExtract(direction)) { + continue; + } + if (remainingTransfer <= 0) { + break; + } + + BlockPos targetPos = pos.relative(direction); + if (!level.isLoaded(targetPos)) { + continue; + } + + EnergyHandler target = level.getCapability(Capabilities.Energy.BLOCK, targetPos, direction.getOpposite()); + if (target == null) { + continue; + } + + try (Transaction transaction = Transaction.openRoot()) { + int accepted = target.insert(remainingTransfer, transaction); + if (accepted <= 0) { + continue; + } + + int extracted = source.extract(accepted, transaction); + if (extracted != accepted) { + continue; + } + + transaction.commit(); + remainingTransfer -= accepted; + } + } + } + + public EnergyHandler getEnergyHandler(@org.jspecify.annotations.Nullable Direction side) { + return new BatteryBlockSidedEnergyHandler(this.getInternalEnergyHandler(), side, this); + } + + private BatteryBlockEnergyHandler getInternalEnergyHandler() { + if (this.internalEnergyHandler == null) { + this.internalEnergyHandler = new BatteryBlockEnergyHandler(this); + } + return this.internalEnergyHandler; + } + + public int getStoredEnergy() { + return this.storedEnergy; + } + + public int getEnergyCapacity() { + return this.energyCapacity; + } + + public int getMaxTransfer() { + return EnergyTierHelper.transferRateForCapacity(this.energyCapacity); + } + + public BatteryBlockData.SideMode getSideMode(Direction direction) { + return this.sideModes[direction.ordinal()]; + } + + public void setSideMode(Direction direction, BatteryBlockData.SideMode mode) { + this.sideModes[direction.ordinal()] = mode; + this.setChanged(); + if (this.level != null) { + this.level.invalidateCapabilities(this.worldPosition); + } + } + + public void cycleSideMode(Direction direction) { + this.setSideMode(direction, this.getSideMode(direction).next()); + } + + public boolean canInsert(Direction direction) { + BatteryBlockData.SideMode mode = this.getSideMode(direction); + return mode == BatteryBlockData.SideMode.INPUT || mode == BatteryBlockData.SideMode.BOTH; + } + + public boolean canExtract(Direction direction) { + BatteryBlockData.SideMode mode = this.getSideMode(direction); + return mode == BatteryBlockData.SideMode.OUTPUT || mode == BatteryBlockData.SideMode.BOTH; + } + + public static Direction directionForIndex(int index) { + return BatteryBlockData.directionForIndex(index); + } + + public void loadFromItem(ItemStack stack) { + BatteryBlockItem.initializeDefaults(stack); + this.energyCapacity = BatteryBlockItem.getEnergyCapacity(stack); + this.storedEnergy = Math.min(BatteryBlockItem.getStoredEnergy(stack), this.energyCapacity); + this.internalEnergyHandler = null; + this.refreshState(); + } + + public ItemStack createDropStack() { + ItemStack stack = new ItemStack(Batteries.BATTERY_BLOCK_ITEM.get()); + PoweredItemEnergy.setEnergyCapacity(stack, this.energyCapacity); + PoweredItemEnergy.setStoredEnergy(stack, this.storedEnergy); + return stack; + } + + void setStoredEnergyInternal(int energy) { + this.storedEnergy = Math.max(0, Math.min(energy, this.energyCapacity)); + this.refreshState(); + } + + private void refreshState() { + this.setChanged(); + if (this.level == null) { + return; + } + + BlockState state = this.getBlockState(); + int targetCharge = BatteryBlockData.chargeStage(this.storedEnergy, this.energyCapacity); + if (state.hasProperty(BatteryBlock.CHARGE) && state.getValue(BatteryBlock.CHARGE) != targetCharge) { + this.level.setBlock(this.worldPosition, state.setValue(BatteryBlock.CHARGE, targetCharge), net.minecraft.world.level.block.Block.UPDATE_CLIENTS); + } + this.level.invalidateCapabilities(this.worldPosition); + } + + @Override + protected void loadAdditional(@NonNull ValueInput input) { + super.loadAdditional(input); + this.energyCapacity = Math.max(BatteryBlockItem.BASE_CAPACITY, input.getIntOr(CAPACITY_KEY, BatteryBlockItem.BASE_CAPACITY)); + this.storedEnergy = Math.max(0, Math.min(input.getIntOr(ENERGY_KEY, 0), this.energyCapacity)); + for (Direction direction : Direction.values()) { + int ordinal = input.getIntOr("side_" + direction.getSerializedName(), BatteryBlockData.SideMode.BOTH.ordinal()); + this.sideModes[direction.ordinal()] = BatteryBlockData.SideMode.values()[Math.max(0, Math.min(BatteryBlockData.SideMode.values().length - 1, ordinal))]; + } + this.internalEnergyHandler = null; + } + + @Override + protected void saveAdditional(@NonNull ValueOutput output) { + super.saveAdditional(output); + output.putInt(CAPACITY_KEY, this.energyCapacity); + output.putInt(ENERGY_KEY, this.storedEnergy); + for (Direction direction : Direction.values()) { + output.putInt("side_" + direction.getSerializedName(), this.sideModes[direction.ordinal()].ordinal()); + } + } + +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockSidedEnergyHandler.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockSidedEnergyHandler.java new file mode 100644 index 0000000..a1add33 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/BatteryBlockSidedEnergyHandler.java @@ -0,0 +1,54 @@ +package com.trunksbomb.batteries.block.entity; + +import net.minecraft.core.Direction; +import net.neoforged.neoforge.transfer.energy.EnergyHandler; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +final class BatteryBlockSidedEnergyHandler implements EnergyHandler { + private final EnergyHandler delegate; + @Nullable + private final Direction side; + private final BatteryBlockEntity blockEntity; + + BatteryBlockSidedEnergyHandler(EnergyHandler delegate, @Nullable Direction side, BatteryBlockEntity blockEntity) { + this.delegate = delegate; + this.side = side; + this.blockEntity = blockEntity; + } + + @Override + public long getAmountAsLong() { + return this.delegate.getAmountAsLong(); + } + + @Override + public long getCapacityAsLong() { + return this.delegate.getCapacityAsLong(); + } + + @Override + public int insert(int maxAmount, @NonNull TransactionContext transaction) { + if (maxAmount <= 0) { + return 0; + } + if (this.side != null && !this.blockEntity.canInsert(this.side)) { + return 0; + } + + return this.delegate.insert(maxAmount, transaction); + } + + @Override + public int extract(int maxAmount, @NonNull TransactionContext transaction) { + if (maxAmount <= 0) { + return 0; + } + if (this.side != null && !this.blockEntity.canExtract(this.side)) { + return 0; + } + + return this.delegate.extract(maxAmount, transaction); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/ChargerBlockEntity.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/ChargerBlockEntity.java new file mode 100644 index 0000000..5235cf1 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/ChargerBlockEntity.java @@ -0,0 +1,172 @@ +package com.trunksbomb.batteries.block.entity; + +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.BatteriesConfig; +import com.trunksbomb.batteries.item.BatteryItem; +import java.util.UUID; +import net.minecraft.core.Direction; +import net.minecraft.core.BlockPos; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.level.block.entity.BlockEntity; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jspecify.annotations.NonNull; + +public class ChargerBlockEntity extends BlockEntity { + public static final UUID DEFAULT_UUID = new UUID(0L, 0L); + private ItemStack battery = ItemStack.EMPTY; + private UUID linkedBatteryUuid = DEFAULT_UUID; + private UUID linkedPlayerUuid = DEFAULT_UUID; + private ChargerEnergyHandler energyHandler; + + public ChargerBlockEntity(BlockPos pos, BlockState blockState) { + super(Batteries.CHARGER_BLOCK_ENTITY.get(), pos, blockState); + } + + public boolean hasBattery() { + return this.hasStoredBattery() || this.hasLinkedBattery(); + } + + public boolean hasStoredBattery() { + return !this.battery.isEmpty(); + } + + public boolean hasLinkedBattery() { + return !DEFAULT_UUID.equals(this.linkedBatteryUuid) && !DEFAULT_UUID.equals(this.linkedPlayerUuid); + } + + public ItemStack getBattery() { + return this.battery.copy(); + } + + public net.neoforged.neoforge.transfer.energy.EnergyHandler getEnergyHandler(Direction side) { + if (this.energyHandler == null) { + this.energyHandler = new ChargerEnergyHandler(this); + } + return this.energyHandler; + } + + public ItemStack getChargeTarget() { + if (this.hasStoredBattery()) { + return this.battery; + } + + if (this.level instanceof net.minecraft.server.level.ServerLevel serverLevel && this.hasLinkedBattery()) { + ServerPlayer player = serverLevel.getServer().getPlayerList().getPlayer(this.linkedPlayerUuid); + if (player != null) { + return BatteryItem.findLinkedEnderBattery(player, this.linkedBatteryUuid); + } + } + + return ItemStack.EMPTY; + } + + public boolean canInsert(ItemStack stack) { + return !this.hasBattery() && stack.getItem() instanceof BatteryItem; + } + + public ItemStack insertBattery(ItemStack stack) { + if (!canInsert(stack)) { + return stack; + } + + this.battery = stack.copyWithCount(1); + stack.shrink(1); + this.onBatteryStateChanged(); + return stack; + } + + public ItemStack extractBattery() { + if (this.battery.isEmpty()) { + return ItemStack.EMPTY; + } + + ItemStack extracted = this.battery; + this.battery = ItemStack.EMPTY; + this.onBatteryStateChanged(); + return extracted; + } + + public void linkBattery(UUID batteryUuid, UUID playerUuid) { + this.linkedBatteryUuid = batteryUuid; + this.linkedPlayerUuid = playerUuid; + this.onBatteryStateChanged(); + } + + public void clearLinkedBattery() { + this.linkedBatteryUuid = DEFAULT_UUID; + this.linkedPlayerUuid = DEFAULT_UUID; + this.onBatteryStateChanged(); + } + + @SuppressWarnings("unused") + public static void serverTick(net.minecraft.world.level.Level level, BlockPos pos, BlockState state, ChargerBlockEntity blockEntity) { + if (!BatteriesConfig.chargerGeneratesCreativePower()) { + return; + } + + ItemStack chargeTarget = blockEntity.getChargeTarget(); + if (!chargeTarget.isEmpty()) { + chargeBattery(chargeTarget, blockEntity); + } + } + + private static void chargeBattery(ItemStack battery, ChargerBlockEntity blockEntity) { + var energyHandler = BatteryItem.getEnergyHandler(battery); + if (energyHandler == null) { + return; + } + + try (var transaction = Transaction.openRoot()) { + int charged = energyHandler.insert(BatteryItem.getMaxTransfer(battery), transaction); + if (charged > 0) { + transaction.commit(); + blockEntity.onBatteryChargeChanged(); + } + } + } + + @Override + protected void loadAdditional(@NonNull ValueInput input) { + super.loadAdditional(input); + this.battery = input.read("battery", ItemStack.CODEC).orElse(ItemStack.EMPTY); + this.linkedBatteryUuid = parseUuid(input.getStringOr("linked_battery_uuid", "")); + this.linkedPlayerUuid = parseUuid(input.getStringOr("linked_player_uuid", "")); + this.energyHandler = null; + } + + @Override + protected void saveAdditional(@NonNull ValueOutput output) { + super.saveAdditional(output); + if (!this.battery.isEmpty()) { + output.store("battery", ItemStack.CODEC, this.battery); + } + if (this.hasLinkedBattery()) { + output.putString("linked_battery_uuid", this.linkedBatteryUuid.toString()); + output.putString("linked_player_uuid", this.linkedPlayerUuid.toString()); + } + } + + private void onBatteryStateChanged() { + this.setChanged(); + this.invalidateEnergyCapability(); + } + + private void onBatteryChargeChanged() { + this.setChanged(); + this.invalidateEnergyCapability(); + } + + private void invalidateEnergyCapability() { + if (this.level != null) { + this.level.invalidateCapabilities(this.worldPosition); + } + } + + private static UUID parseUuid(String value) { + return value.isBlank() ? DEFAULT_UUID : UUID.fromString(value); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/ChargerEnergyHandler.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/ChargerEnergyHandler.java new file mode 100644 index 0000000..a3b7576 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/ChargerEnergyHandler.java @@ -0,0 +1,47 @@ +package com.trunksbomb.batteries.block.entity; + +import com.trunksbomb.batteries.item.BatteryItem; +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.transfer.energy.EnergyHandler; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; +import org.jspecify.annotations.NonNull; + +final class ChargerEnergyHandler implements EnergyHandler { + private final ChargerBlockEntity blockEntity; + + ChargerEnergyHandler(ChargerBlockEntity blockEntity) { + this.blockEntity = blockEntity; + } + + @Override + public long getAmountAsLong() { + ItemStack battery = this.blockEntity.getChargeTarget(); + return battery.isEmpty() ? 0L : BatteryItem.getStoredEnergy(battery); + } + + @Override + public long getCapacityAsLong() { + ItemStack battery = this.blockEntity.getChargeTarget(); + return battery.isEmpty() ? 0L : BatteryItem.getEnergyCapacity(battery); + } + + @Override + public int insert(int maxAmount, @NonNull TransactionContext transaction) { + ItemStack battery = this.blockEntity.getChargeTarget(); + if (battery.isEmpty()) { + return 0; + } + + EnergyHandler batteryHandler = BatteryItem.getEnergyHandler(battery); + if (batteryHandler == null || batteryHandler.getAmountAsInt() >= batteryHandler.getCapacityAsInt()) { + return 0; + } + + return batteryHandler.insert(maxAmount, transaction); + } + + @Override + public int extract(int maxAmount, @NonNull TransactionContext transaction) { + return 0; + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorBlockEntity.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorBlockEntity.java new file mode 100644 index 0000000..e6d42e6 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorBlockEntity.java @@ -0,0 +1,210 @@ +package com.trunksbomb.batteries.block.entity; + +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.BatteriesConfig; +import com.trunksbomb.batteries.block.CoalGeneratorBlock; +import com.trunksbomb.batteries.item.BatteryBlockItem; +import com.trunksbomb.batteries.item.EnergyTierHelper; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.RecipeType; +import net.minecraft.world.level.Level; +import net.minecraft.world.level.block.state.BlockState; +import net.minecraft.world.level.storage.ValueInput; +import net.minecraft.world.level.storage.ValueOutput; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.transfer.energy.EnergyHandler; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +public class CoalGeneratorBlockEntity extends net.minecraft.world.level.block.entity.BlockEntity { + private static final String ENERGY_KEY = "energy"; + private static final String BURN_TIME_KEY = "burn_time"; + private static final String MAX_BURN_TIME_KEY = "max_burn_time"; + + private final SimpleContainer fuelSlot = new SimpleContainer(1) { + @Override + public void setChanged() { + super.setChanged(); + CoalGeneratorBlockEntity.this.setChanged(); + } + }; + + private int storedEnergy; + private int burnTimeRemaining; + private int maxBurnTime; + private CoalGeneratorEnergyHandler internalEnergyHandler; + private GeneratorOutputEnergyHandler outputEnergyHandler; + private CoalGeneratorItemHandler itemHandler; + + public CoalGeneratorBlockEntity(BlockPos pos, BlockState blockState) { + super(Batteries.COAL_GENERATOR_BLOCK_ENTITY.get(), pos, blockState); + } + + public static void serverTick(Level level, BlockPos pos, BlockState state, CoalGeneratorBlockEntity blockEntity) { + boolean wasBurning = blockEntity.isBurning(); + blockEntity.tickGeneration(level); + if (wasBurning != blockEntity.isBurning()) { + CoalGeneratorBlock.setLit(level, pos, state, blockEntity.isBurning()); + } + blockEntity.tickOutput(level, pos); + } + + public SimpleContainer fuelSlot() { + return this.fuelSlot; + } + + public EnergyHandler getEnergyHandler(@Nullable Direction side) { + if (this.outputEnergyHandler == null) { + this.outputEnergyHandler = new GeneratorOutputEnergyHandler(this.getInternalEnergyHandler()); + } + return this.outputEnergyHandler; + } + + public ResourceHandler getItemHandler(@Nullable Direction side) { + if (this.itemHandler == null) { + this.itemHandler = new CoalGeneratorItemHandler(this); + } + return this.itemHandler; + } + + public int getStoredEnergy() { + return this.storedEnergy; + } + + public int getEnergyCapacity() { + return BatteryBlockItem.BASE_CAPACITY; + } + + public int getBurnTimeRemaining() { + return this.burnTimeRemaining; + } + + public int getMaxBurnTime() { + return this.maxBurnTime; + } + + public boolean isBurning() { + return this.burnTimeRemaining > 0; + } + + private CoalGeneratorEnergyHandler getInternalEnergyHandler() { + if (this.internalEnergyHandler == null) { + this.internalEnergyHandler = new CoalGeneratorEnergyHandler(this); + } + return this.internalEnergyHandler; + } + + private void tickGeneration(Level level) { + if (this.burnTimeRemaining <= 0 && this.storedEnergy < this.getEnergyCapacity()) { + ItemStack fuel = this.fuelSlot.getItem(0); + int burnTime = getFuelBurnTime(level, fuel); + if (burnTime > 0) { + this.burnTimeRemaining = burnTime; + this.maxBurnTime = burnTime; + fuel.shrink(1); + if (fuel.isEmpty()) { + this.fuelSlot.setItem(0, ItemStack.EMPTY); + } + this.setChanged(); + } + } + + if (this.burnTimeRemaining > 0 && this.storedEnergy < this.getEnergyCapacity()) { + this.getInternalEnergyHandler().set(Math.min(this.getEnergyCapacity(), this.storedEnergy + BatteriesConfig.generatorEnergyPerTick())); + this.burnTimeRemaining--; + this.setChanged(); + } + } + + private void tickOutput(Level level, BlockPos pos) { + if (this.storedEnergy <= 0) { + return; + } + + int remainingTransfer = Math.min(this.storedEnergy, this.getMaxTransfer()); + EnergyHandler source = this.getInternalEnergyHandler(); + + for (Direction direction : Direction.values()) { + if (remainingTransfer <= 0) { + break; + } + + BlockPos targetPos = pos.relative(direction); + if (!level.isLoaded(targetPos)) { + continue; + } + + EnergyHandler target = level.getCapability(Capabilities.Energy.BLOCK, targetPos, direction.getOpposite()); + if (target == null) { + continue; + } + + try (Transaction transaction = Transaction.openRoot()) { + int accepted = target.insert(remainingTransfer, transaction); + if (accepted <= 0) { + continue; + } + + int extracted = source.extract(accepted, transaction); + if (extracted != accepted) { + continue; + } + + transaction.commit(); + remainingTransfer -= accepted; + } + } + } + + public int getMaxTransfer() { + return EnergyTierHelper.transferRateForCapacity(this.getEnergyCapacity()); + } + + @Override + protected void loadAdditional(@NonNull ValueInput input) { + super.loadAdditional(input); + this.storedEnergy = Math.max(0, Math.min(input.getIntOr(ENERGY_KEY, 0), this.getEnergyCapacity())); + this.burnTimeRemaining = Math.max(0, input.getIntOr(BURN_TIME_KEY, 0)); + this.maxBurnTime = Math.max(0, input.getIntOr(MAX_BURN_TIME_KEY, 0)); + this.fuelSlot.setItem(0, input.read("fuel", ItemStack.CODEC).orElse(ItemStack.EMPTY)); + this.internalEnergyHandler = null; + this.outputEnergyHandler = null; + this.itemHandler = null; + } + + @Override + protected void saveAdditional(@NonNull ValueOutput output) { + super.saveAdditional(output); + output.putInt(ENERGY_KEY, this.storedEnergy); + output.putInt(BURN_TIME_KEY, this.burnTimeRemaining); + output.putInt(MAX_BURN_TIME_KEY, this.maxBurnTime); + if (!this.fuelSlot.getItem(0).isEmpty()) { + output.store("fuel", ItemStack.CODEC, this.fuelSlot.getItem(0)); + } + } + + void setStoredEnergyInternal(int energy) { + this.storedEnergy = Math.max(0, Math.min(energy, this.getEnergyCapacity())); + this.setChanged(); + if (this.level != null) { + this.level.invalidateCapabilities(this.worldPosition); + } + } + + private static int getFuelBurnTime(Level level, ItemStack stack) { + if (!isFuel(level, stack)) { + return 0; + } + return level.fuelValues().burnDuration(stack); + } + + public static boolean isFuel(Level level, ItemStack stack) { + return !stack.isEmpty() && level.fuelValues() != null && level.fuelValues().isFuel(stack); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorEnergyHandler.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorEnergyHandler.java new file mode 100644 index 0000000..a44b227 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorEnergyHandler.java @@ -0,0 +1,17 @@ +package com.trunksbomb.batteries.block.entity; + +import net.neoforged.neoforge.transfer.energy.SimpleEnergyHandler; + +final class CoalGeneratorEnergyHandler extends SimpleEnergyHandler { + private final CoalGeneratorBlockEntity blockEntity; + + CoalGeneratorEnergyHandler(CoalGeneratorBlockEntity blockEntity) { + super(blockEntity.getEnergyCapacity(), blockEntity.getMaxTransfer(), blockEntity.getMaxTransfer(), blockEntity.getStoredEnergy()); + this.blockEntity = blockEntity; + } + + @Override + protected void onEnergyChanged(int previousAmount) { + this.blockEntity.setStoredEnergyInternal(this.energy); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorItemHandler.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorItemHandler.java new file mode 100644 index 0000000..d695156 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/CoalGeneratorItemHandler.java @@ -0,0 +1,112 @@ +package com.trunksbomb.batteries.block.entity; + +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.transfer.ResourceHandler; +import net.neoforged.neoforge.transfer.TransferPreconditions; +import net.neoforged.neoforge.transfer.item.ItemResource; +import net.neoforged.neoforge.transfer.transaction.SnapshotJournal; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; + +public class CoalGeneratorItemHandler extends SnapshotJournal implements ResourceHandler { + private final CoalGeneratorBlockEntity blockEntity; + + public CoalGeneratorItemHandler(CoalGeneratorBlockEntity blockEntity) { + this.blockEntity = blockEntity; + } + + @Override + public int size() { + return 1; + } + + @Override + public ItemResource getResource(int index) { + validateIndex(index); + return ItemResource.of(this.blockEntity.fuelSlot().getItem(index)); + } + + @Override + public long getAmountAsLong(int index) { + validateIndex(index); + return this.blockEntity.fuelSlot().getItem(index).getCount(); + } + + @Override + public long getCapacityAsLong(int index, ItemResource resource) { + validateIndex(index); + ItemStack current = this.blockEntity.fuelSlot().getItem(index); + if (resource.isEmpty()) { + return current.isEmpty() ? 64 : current.getMaxStackSize(); + } + return isValid(index, resource) ? resource.getMaxStackSize() : 0; + } + + @Override + public boolean isValid(int index, ItemResource resource) { + validateIndex(index); + if (resource.isEmpty() || this.blockEntity.getLevel() == null) { + return false; + } + return CoalGeneratorBlockEntity.isFuel(this.blockEntity.getLevel(), resource.toStack()); + } + + @Override + public int insert(int index, ItemResource resource, int amount, TransactionContext transaction) { + validateIndex(index); + TransferPreconditions.checkNonEmptyNonNegative(resource, amount); + if (amount == 0 || !this.isValid(index, resource)) { + return 0; + } + + ItemStack current = this.blockEntity.fuelSlot().getItem(index); + if (!current.isEmpty() && !resource.matches(current)) { + return 0; + } + + int maxStackSize = resource.getMaxStackSize(); + int inserted = Math.min(amount, maxStackSize - current.getCount()); + if (inserted <= 0) { + return 0; + } + + this.updateSnapshots(transaction); + if (current.isEmpty()) { + this.blockEntity.fuelSlot().setItem(index, resource.toStack(inserted)); + } else { + current.grow(inserted); + this.blockEntity.fuelSlot().setItem(index, current); + } + return inserted; + } + + @Override + public int extract(int index, ItemResource resource, int amount, TransactionContext transaction) { + validateIndex(index); + TransferPreconditions.checkNonEmptyNonNegative(resource, amount); + return 0; + } + + @Override + protected ItemStack createSnapshot() { + return this.blockEntity.fuelSlot().getItem(0).copy(); + } + + @Override + protected void revertToSnapshot(ItemStack snapshot) { + this.blockEntity.fuelSlot().setItem(0, snapshot); + } + + @Override + protected void onRootCommit(ItemStack originalState) { + this.blockEntity.setChanged(); + if (this.blockEntity.getLevel() != null) { + this.blockEntity.getLevel().invalidateCapabilities(this.blockEntity.getBlockPos()); + } + } + + private static void validateIndex(int index) { + if (index != 0) { + throw new IndexOutOfBoundsException("Coal generator only has one slot"); + } + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/GeneratorOutputEnergyHandler.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/GeneratorOutputEnergyHandler.java new file mode 100644 index 0000000..c64c4e5 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/block/entity/GeneratorOutputEnergyHandler.java @@ -0,0 +1,32 @@ +package com.trunksbomb.batteries.block.entity; + +import net.neoforged.neoforge.transfer.energy.EnergyHandler; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; + +final class GeneratorOutputEnergyHandler implements EnergyHandler { + private final EnergyHandler delegate; + + GeneratorOutputEnergyHandler(EnergyHandler delegate) { + this.delegate = delegate; + } + + @Override + public long getAmountAsLong() { + return this.delegate.getAmountAsLong(); + } + + @Override + public long getCapacityAsLong() { + return this.delegate.getCapacityAsLong(); + } + + @Override + public int insert(int maxAmount, TransactionContext transaction) { + return 0; + } + + @Override + public int extract(int maxAmount, TransactionContext transaction) { + return this.delegate.extract(maxAmount, transaction); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/BatteriesScreen.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/BatteriesScreen.java new file mode 100644 index 0000000..87f90d2 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/BatteriesScreen.java @@ -0,0 +1,263 @@ +package com.trunksbomb.batteries.client.screen; + +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.item.BatteryItem; +import com.trunksbomb.batteries.menu.BatteriesMenu; +import java.util.ArrayList; +import java.util.List; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.input.MouseButtonEvent; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.renderer.RenderPipelines; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.entity.player.Inventory; + +public class BatteriesScreen extends AbstractContainerScreen { + private static final Identifier TEXTURE = Identifier.fromNamespaceAndPath(Batteries.MODID, "textures/battery_gui.png"); + + private static final int WIDTH = 200; + private static final int HEIGHT = 164; + private static final int BUTTON_WIDTH = 20; + private static final int BUTTON_HEIGHT = 18; + private static final int BUTTON_SCREEN_GAP_X = 7; + private static final int BUTTON_SCREEN_GAP_Y = 3; + private static final int BUTTON_START_X = 48; + private static final int BUTTON_START_Y = 39; + private static final int INVENTORY_START_X = 32; + private static final int INVENTORY_START_Y = 19; + private static final int PLAYER_INVENTORY_START_Y = 82; + private static final int ARMOR_START_X = 7; + private static final int ARMOR_START_Y = 19; + private static final int BUTTON_TEXTURE_GAP = 1; + private static final int BUTTON_TEXTURE_START_X = 201; + private static final int BUTTON_TEXTURE_START_Y = 0; + private static final int ARMOR_TEXTURE_X = 42; + private static final int ARMOR_TEXTURE_Y = 170; + private static final int CHECK_TEXTURE_X = 25; + private static final int CHECK_TEXTURE_Y = 170; + private static final int PLUS_TEXTURE_X = 144; + private static final int PLUS_TEXTURE_Y = 170; + + public BatteriesScreen(BatteriesMenu menu, Inventory playerInventory, Component title) { + super(menu, playerInventory, title); + this.imageWidth = WIDTH; + this.imageHeight = HEIGHT; + this.inventoryLabelX = INVENTORY_START_X; + this.inventoryLabelY = PLAYER_INVENTORY_START_Y - 11; + } + + @Override + protected void init() { + super.init(); + } + + @Override + protected void renderBg(GuiGraphics guiGraphics, float partialTick, int mouseX, int mouseY) { + guiGraphics.blit(RenderPipelines.GUI_TEXTURED, TEXTURE, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, 256, 256); + drawButtons(guiGraphics, mouseX, mouseY); + drawOverlays(guiGraphics); + } + + @Override + protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { + renderTitle(guiGraphics); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + this.renderBackground(guiGraphics, mouseX, mouseY, partialTick); + super.render(guiGraphics, mouseX, mouseY, partialTick); + this.renderTooltip(guiGraphics, mouseX, mouseY); + renderCustomTooltip(guiGraphics, mouseX, mouseY); + } + + @Override + public boolean mouseClicked(MouseButtonEvent event, boolean doubleClick) { + double mouseX = event.x(); + double mouseY = event.y(); + for (int index = 0; index < this.menu.buttonCount(); index++) { + if (isBatteryModeToggle(index)) { + if (buttonBounds(0, 1).contains(mouseX, mouseY)) { + pressMenuButton(0); + return true; + } + continue; + } + + Bounds bounds = buttonBounds(indexToRow(index), indexToColumn(index)); + if (bounds.contains(mouseX, mouseY)) { + pressMenuButton(index); + return true; + } + } + + return super.mouseClicked(event, doubleClick); + } + + private void drawButtons(GuiGraphics guiGraphics, int mouseX, int mouseY) { + drawBatteryModeButton(guiGraphics, mouseX, mouseY); + + for (int index = 2; index < this.menu.buttonCount(); index++) { + Bounds bounds = buttonBounds(indexToRow(index), indexToColumn(index)); + drawButton(guiGraphics, bounds, index, bounds.contains(mouseX, mouseY)); + } + } + + private void drawBatteryModeButton(GuiGraphics guiGraphics, int mouseX, int mouseY) { + Bounds bounds = buttonBounds(0, 1); + boolean hovering = bounds.contains(mouseX, mouseY); + int textureIndex = this.menu.isButtonEnabled(0) ? 0 : 1; + int offset = hovering ? BUTTON_WIDTH + BUTTON_TEXTURE_GAP : 0; + guiGraphics.blit(RenderPipelines.GUI_TEXTURED, TEXTURE, bounds.x, bounds.y, + BUTTON_TEXTURE_START_X + offset, + BUTTON_TEXTURE_START_Y + textureIndex * (BUTTON_HEIGHT + BUTTON_TEXTURE_GAP), + BUTTON_WIDTH, BUTTON_HEIGHT, 256, 256); + } + + private void drawButton(GuiGraphics guiGraphics, Bounds bounds, int index, boolean hovering) { + int textureIndex = index; + int offset = hovering ? BUTTON_WIDTH + BUTTON_TEXTURE_GAP : 0; + guiGraphics.blit(RenderPipelines.GUI_TEXTURED, TEXTURE, bounds.x, bounds.y, + BUTTON_TEXTURE_START_X + offset, + BUTTON_TEXTURE_START_Y + textureIndex * (BUTTON_HEIGHT + BUTTON_TEXTURE_GAP), + BUTTON_WIDTH, BUTTON_HEIGHT, 256, 256); + } + + private void drawOverlays(GuiGraphics guiGraphics) { + for (int index = 2; index < this.menu.buttonCount(); index++) { + if (!this.menu.isButtonEnabled(index)) { + continue; + } + + Bounds bounds = buttonBounds(indexToRow(index), indexToColumn(index)); + guiGraphics.blit(RenderPipelines.GUI_TEXTURED, TEXTURE, bounds.x + 4, bounds.y + 4, + CHECK_TEXTURE_X, CHECK_TEXTURE_Y, 16, 16, 256, 256); + } + + for (int slot = 0; slot < BatteriesMenu.FILTER_SLOT_COUNT; slot++) { + if (this.menu.isFilterSlotEmpty(slot)) { + guiGraphics.blit(RenderPipelines.GUI_TEXTURED, TEXTURE, + this.leftPos + INVENTORY_START_X + 18 * slot, + this.topPos + INVENTORY_START_Y, + PLUS_TEXTURE_X, PLUS_TEXTURE_Y, 16, 16, 256, 256); + } + } + + for (int armorIndex = 0; armorIndex < 4; armorIndex++) { + int slot = 39 - armorIndex; + ItemStack stack = this.menu.playerInventoryItem(slot); + if (stack.isEmpty()) { + guiGraphics.blit(RenderPipelines.GUI_TEXTURED, TEXTURE, + this.leftPos + ARMOR_START_X, + this.topPos + ARMOR_START_Y + armorIndex * 18, + ARMOR_TEXTURE_X + armorIndex * 17, + ARMOR_TEXTURE_Y, + 16, 16, 256, 256); + } + } + + if (this.menu.playerInventoryItem(40).isEmpty()) { + guiGraphics.blit(RenderPipelines.GUI_TEXTURED, TEXTURE, + this.leftPos + ARMOR_START_X, + this.topPos + 91, + 110, 170, 16, 16, 256, 256); + } + } + + private String hoveredButtonTranslationKey(int mouseX, int mouseY) { + if (buttonBounds(0, 1).contains(mouseX, mouseY)) { + return this.menu.isButtonEnabled(0) + ? "batteries.gui.button.whitelist" + : "batteries.gui.button.blacklist"; + } + + for (int index = 2; index < this.menu.buttonCount(); index++) { + Bounds bounds = buttonBounds(indexToRow(index), indexToColumn(index)); + if (bounds.contains(mouseX, mouseY)) { + return BatteriesMenu.buttonTranslationKey(index); + } + } + + return null; + } + + private void pressMenuButton(int index) { + if (this.minecraft.gameMode == null) { + return; + } + + this.minecraft.gameMode.handleInventoryButtonClick(this.menu.containerId, index); + this.menu.toggleClientPreview(index); + } + + private void renderCustomTooltip(GuiGraphics guiGraphics, int mouseX, int mouseY) { + String hoverKey = hoveredButtonTranslationKey(mouseX, mouseY); + if (hoverKey != null) { + List tooltip = new ArrayList<>(); + tooltip.add(Component.translatable(hoverKey)); + guiGraphics.setComponentTooltipForNextFrame(this.font, tooltip, mouseX, mouseY); + } + } + + private Component titleText() { + ItemStack battery = this.menu.batteryStack(); + if (!(battery.getItem() instanceof BatteryItem)) { + return this.title; + } + + return Component.literal(battery.getHoverName().getString() + + " - " + + BatteryItem.formatCompactAmount(BatteryItem.getStoredEnergy(battery)) + + " / " + + BatteryItem.formatCompactAmount(BatteryItem.getEnergyCapacity(battery)) + + " E"); + } + + private void renderTitle(GuiGraphics guiGraphics) { + Component title = titleText(); + int leftAlignedX = INVENTORY_START_X; + int titleY = 8; + int maxWidth = this.imageWidth - INVENTORY_START_X - 8; + int textWidth = this.font.width(title); + float scale = textWidth > maxWidth ? maxWidth / (float) textWidth : 1.0F; + + guiGraphics.pose().pushMatrix(); + guiGraphics.pose().scale(scale, scale); + guiGraphics.drawString(this.font, title, Math.round(leftAlignedX / scale), Math.round(titleY / scale), 0xFF202020, false); + guiGraphics.pose().popMatrix(); + } + + private Bounds buttonBounds(int rowIndex, int colIndex) { + return new Bounds( + this.leftPos + BUTTON_START_X + colIndex * (BUTTON_WIDTH + BUTTON_SCREEN_GAP_X), + this.topPos + BUTTON_START_Y + rowIndex * (BUTTON_HEIGHT + BUTTON_SCREEN_GAP_Y), + BUTTON_WIDTH, + BUTTON_HEIGHT + ); + } + + private static boolean isBatteryModeToggle(int index) { + return index == 0; + } + + private static int indexToRow(int index) { + return index <= 3 ? 0 : 1; + } + + private static int indexToColumn(int index) { + return switch (index) { + case 0, 1, 4 -> 1; + case 2, 5 -> 2; + case 3, 6 -> 3; + default -> 1; + }; + } + + private record Bounds(int x, int y, int width, int height) { + private boolean contains(double mouseX, double mouseY) { + return mouseX >= this.x && mouseX < this.x + this.width && mouseY >= this.y && mouseY < this.y + this.height; + } + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/BatteryBlockScreen.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/BatteryBlockScreen.java new file mode 100644 index 0000000..6ec792d --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/BatteryBlockScreen.java @@ -0,0 +1,150 @@ +package com.trunksbomb.batteries.client.screen; + +import com.trunksbomb.batteries.block.BatteryBlockData; +import com.trunksbomb.batteries.block.entity.BatteryBlockEntity; +import com.trunksbomb.batteries.item.BatteryItem; +import com.trunksbomb.batteries.menu.BatteryBlockMenu; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.components.AbstractWidget; +import net.minecraft.client.gui.components.Button; +import net.minecraft.client.gui.components.Tooltip; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.renderer.RenderPipelines; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; +import net.minecraft.world.entity.player.Inventory; +import org.jspecify.annotations.NonNull; + +public class BatteryBlockScreen extends AbstractContainerScreen { + private static final Identifier TEXTURE = Identifier.fromNamespaceAndPath("batteries", "textures/battery_block_gui.png"); + private static final int TEXTURE_WIDTH = 176; + private static final int TEXTURE_HEIGHT = 164; + private static final int BUTTON_WIDTH = 50; + private static final int BUTTON_HEIGHT = 20; + private static final int BUTTON_START_X = 8; + private static final int BUTTON_START_Y = 18; + private static final int BUTTON_GAP_X = 5; + private static final int BUTTON_GAP_Y = 4; + + public BatteryBlockScreen(BatteryBlockMenu menu, Inventory playerInventory, Component title) { + super(menu, playerInventory, title); + this.imageWidth = TEXTURE_WIDTH; + this.imageHeight = TEXTURE_HEIGHT; + this.inventoryLabelY = this.imageHeight - 94; + } + + @Override + protected void init() { + super.init(); + for (int index = 0; index < BatteryBlockMenu.SIDE_BUTTON_COUNT; index++) { + int buttonIndex = index; + this.addRenderableWidget(Button.builder(buttonLabel(index), button -> pressButton(buttonIndex)) + .bounds(this.leftPos + buttonX(index), this.topPos + buttonY(index), BUTTON_WIDTH, BUTTON_HEIGHT) + .tooltip(buttonTooltip(index)) + .build()); + } + } + + @Override + public void containerTick() { + super.containerTick(); + int widgetIndex = 0; + for (AbstractWidget widget : this.renderables.stream().filter(AbstractWidget.class::isInstance).map(AbstractWidget.class::cast).toList()) { + if (widgetIndex >= BatteryBlockMenu.SIDE_BUTTON_COUNT) { + break; + } + widget.setMessage(buttonLabel(widgetIndex)); + widget.setTooltip(buttonTooltip(widgetIndex)); + widgetIndex++; + } + } + + @Override + protected void renderBg(GuiGraphics guiGraphics, float partialTick, int mouseX, int mouseY) { + guiGraphics.blit(RenderPipelines.GUI_TEXTURED, TEXTURE, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, TEXTURE_WIDTH, TEXTURE_HEIGHT); + } + + @Override + protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { + Component title = Component.literal(this.title.getString() + + " - " + + BatteryItem.formatCompactAmount(this.menu.storedEnergy()) + + " / " + + BatteryItem.formatCompactAmount(this.menu.energyCapacity()) + + " E"); + guiGraphics.drawString(this.font, title, 8, 6, 0xFF404040, false); + guiGraphics.drawString(this.font, this.playerInventoryTitle, this.inventoryLabelX, this.inventoryLabelY, 0xFF404040, false); + } + + @Override + public void render(@NonNull GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + this.renderBackground(guiGraphics, mouseX, mouseY, partialTick); + super.render(guiGraphics, mouseX, mouseY, partialTick); + this.renderTooltip(guiGraphics, mouseX, mouseY); + } + + private void pressButton(int index) { + if (this.minecraft.gameMode == null) { + return; + } + + this.minecraft.gameMode.handleInventoryButtonClick(this.menu.containerId, index); + this.menu.cycleClientPreview(index); + } + + private Component buttonLabel(int index) { + return Component.literal(shortDirection(index) + ": " + shortMode(this.menu.sideMode(index))); + } + + private Tooltip buttonTooltip(int index) { + return Tooltip.create(Component.literal(fullDirection(index) + ": " + fullMode(this.menu.sideMode(index)))); + } + + private static int buttonX(int index) { + return BUTTON_START_X + (index % 3) * (BUTTON_WIDTH + BUTTON_GAP_X); + } + + private static int buttonY(int index) { + return BUTTON_START_Y + (index / 3) * (BUTTON_HEIGHT + BUTTON_GAP_Y); + } + + private static String shortDirection(int index) { + return switch (BatteryBlockEntity.directionForIndex(index)) { + case UP -> "U"; + case DOWN -> "D"; + case NORTH -> "N"; + case SOUTH -> "S"; + case WEST -> "W"; + case EAST -> "E"; + }; + } + + private static String fullDirection(int index) { + return switch (BatteryBlockEntity.directionForIndex(index)) { + case UP -> "Up"; + case DOWN -> "Down"; + case NORTH -> "North"; + case SOUTH -> "South"; + case WEST -> "West"; + case EAST -> "East"; + }; + } + + private static String shortMode(BatteryBlockData.SideMode mode) { + return switch (mode) { + case INPUT -> "In"; + case OUTPUT -> "Out"; + case BOTH -> "Both"; + case NONE -> "None"; + }; + } + + private static String fullMode(BatteryBlockData.SideMode mode) { + return switch (mode) { + case INPUT -> "Input"; + case OUTPUT -> "Output"; + case BOTH -> "Both"; + case NONE -> "None"; + }; + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/CoalGeneratorScreen.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/CoalGeneratorScreen.java new file mode 100644 index 0000000..142781d --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/client/screen/CoalGeneratorScreen.java @@ -0,0 +1,73 @@ +package com.trunksbomb.batteries.client.screen; + +import com.trunksbomb.batteries.item.BatteryItem; +import com.trunksbomb.batteries.menu.CoalGeneratorMenu; +import net.minecraft.client.gui.GuiGraphics; +import net.minecraft.client.gui.screens.inventory.AbstractContainerScreen; +import net.minecraft.client.renderer.RenderPipelines; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; +import net.minecraft.world.entity.player.Inventory; + +public class CoalGeneratorScreen extends AbstractContainerScreen { + private static final Identifier TEXTURE = Identifier.fromNamespaceAndPath("batteries", "textures/coal_generator_gui.png"); + private static final int FLAME_X = 81; + private static final int FLAME_Y = 61; + private static final int FLAME_WIDTH = 14; + private static final int FLAME_HEIGHT = 14; + private static final int FLAME_BORDER = 0xFF3A2A17; + private static final int FLAME_BG = 0xFF5B4A2C; + private static final int FLAME_FILL = 0xFFFFB347; + private static final int FLAME_CORE = 0xFFFFE08A; + + public CoalGeneratorScreen(CoalGeneratorMenu menu, Inventory playerInventory, Component title) { + super(menu, playerInventory, title); + this.imageWidth = 176; + this.imageHeight = 164; + this.inventoryLabelY = this.imageHeight - 94; + } + + @Override + protected void renderBg(GuiGraphics guiGraphics, float partialTick, int mouseX, int mouseY) { + guiGraphics.blit(RenderPipelines.GUI_TEXTURED, TEXTURE, this.leftPos, this.topPos, 0, 0, this.imageWidth, this.imageHeight, this.imageWidth, this.imageHeight); + renderFlame(guiGraphics); + } + + @Override + protected void renderLabels(GuiGraphics guiGraphics, int mouseX, int mouseY) { + Component title = Component.literal(this.title.getString() + + " - " + + BatteryItem.formatCompactAmount(this.menu.storedEnergy()) + + " / " + + BatteryItem.formatCompactAmount(this.menu.energyCapacity()) + + " E"); + guiGraphics.drawString(this.font, title, 8, 6, 0xFF404040, false); + guiGraphics.drawString(this.font, this.playerInventoryTitle, this.inventoryLabelX, this.inventoryLabelY, 0x404040, false); + } + + @Override + public void render(GuiGraphics guiGraphics, int mouseX, int mouseY, float partialTick) { + this.renderBackground(guiGraphics, mouseX, mouseY, partialTick); + super.render(guiGraphics, mouseX, mouseY, partialTick); + this.renderTooltip(guiGraphics, mouseX, mouseY); + } + + private void renderFlame(GuiGraphics guiGraphics) { + int maxBurn = this.menu.maxBurnTime(); + int burn = this.menu.burnTimeRemaining(); + int x = this.leftPos + FLAME_X; + int y = this.topPos + FLAME_Y; + + guiGraphics.fill(x, y, x + FLAME_WIDTH, y + FLAME_HEIGHT, FLAME_BORDER); + guiGraphics.fill(x + 1, y + 1, x + FLAME_WIDTH - 1, y + FLAME_HEIGHT - 1, FLAME_BG); + + if (maxBurn <= 0 || burn <= 0) { + return; + } + + int flameHeight = Math.max(1, burn * (FLAME_HEIGHT - 2) / maxBurn); + int top = y + FLAME_HEIGHT - 1 - flameHeight; + guiGraphics.fill(x + 2, top, x + FLAME_WIDTH - 2, y + FLAME_HEIGHT - 2, FLAME_FILL); + guiGraphics.fill(x + 4, Math.max(y + 2, top + 2), x + FLAME_WIDTH - 4, y + FLAME_HEIGHT - 4, FLAME_CORE); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/integration/jei/BatteriesJeiPlugin.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/integration/jei/BatteriesJeiPlugin.java new file mode 100644 index 0000000..60f9b01 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/integration/jei/BatteriesJeiPlugin.java @@ -0,0 +1,80 @@ +package com.trunksbomb.batteries.integration.jei; + +import com.trunksbomb.batteries.Batteries; +import java.util.List; +import mezz.jei.api.IModPlugin; +import mezz.jei.api.JeiPlugin; +import mezz.jei.api.constants.RecipeTypes; +import mezz.jei.api.recipe.vanilla.IVanillaRecipeFactory; +import mezz.jei.api.registration.IRecipeRegistration; +import net.minecraft.core.registries.Registries; +import net.minecraft.resources.Identifier; +import net.minecraft.resources.ResourceKey; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingRecipe; +import net.minecraft.world.item.crafting.Ingredient; +import net.minecraft.world.item.crafting.Recipe; +import net.minecraft.world.item.crafting.RecipeHolder; +import net.minecraft.world.item.crafting.display.SlotDisplay; +import net.minecraft.world.level.ItemLike; +import org.jspecify.annotations.NonNull; + +@JeiPlugin +public class BatteriesJeiPlugin implements IModPlugin { + private static final Identifier PLUGIN_UID = Identifier.parse(Batteries.MODID + ":jei_plugin"); + + @Override + public @NonNull Identifier getPluginUid() { + return PLUGIN_UID; + } + + @Override + public void registerRecipes(IRecipeRegistration registration) { + IVanillaRecipeFactory recipeFactory = registration.getVanillaRecipeFactory(); + registration.addRecipes(RecipeTypes.CRAFTING, List.of( + twoItemRecipe("battery_pickaxe", recipeFactory, Batteries.BATTERY_PICKAXE.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_PICKAXE, Batteries.BATTERY.get()), + twoItemRecipe("battery_axe", recipeFactory, Batteries.BATTERY_AXE.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_AXE, Batteries.BATTERY.get()), + twoItemRecipe("battery_shovel", recipeFactory, Batteries.BATTERY_SHOVEL.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_SHOVEL, Batteries.BATTERY.get()), + twoItemRecipe("battery_hoe", recipeFactory, Batteries.BATTERY_HOE.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_HOE, Batteries.BATTERY.get()), + twoItemRecipe("battery_sword", recipeFactory, Batteries.BATTERY_SWORD.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_SWORD, Batteries.BATTERY.get()), + twoItemRecipe("battery_helmet", recipeFactory, Batteries.BATTERY_HELMET.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_HELMET, Batteries.BATTERY.get()), + twoItemRecipe("battery_chestplate", recipeFactory, Batteries.BATTERY_CHESTPLATE.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_CHESTPLATE, Batteries.BATTERY.get()), + twoItemRecipe("battery_leggings", recipeFactory, Batteries.BATTERY_LEGGINGS.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_LEGGINGS, Batteries.BATTERY.get()), + twoItemRecipe("battery_boots", recipeFactory, Batteries.BATTERY_BOOTS.get(), CraftingBookCategory.EQUIPMENT, Items.DIAMOND_BOOTS, Batteries.BATTERY.get()), + twoItemRecipe("battery_shield", recipeFactory, Batteries.BATTERY_SHIELD.get(), CraftingBookCategory.EQUIPMENT, Items.SHIELD, Batteries.BATTERY.get()), + twoItemRecipe("battery_bow", recipeFactory, Batteries.BATTERY_BOW.get(), CraftingBookCategory.EQUIPMENT, Items.BOW, Batteries.BATTERY.get()), + recipe("battery1_upgrade", recipeFactory, Batteries.BATTERY1.get(), Items.REDSTONE, Items.GOLD_BLOCK, Batteries.BATTERY.get(), Items.REDSTONE_BLOCK), + recipe("battery2_upgrade", recipeFactory, Batteries.BATTERY2.get(), Items.REDSTONE, Items.DIAMOND, Batteries.BATTERY1.get(), Items.REDSTONE_BLOCK), + recipe("battery3_upgrade", recipeFactory, Batteries.BATTERY3.get(), Items.REDSTONE, Items.DIAMOND_BLOCK, Batteries.BATTERY2.get(), Items.REDSTONE_BLOCK), + recipe("battery_ender_upgrade", recipeFactory, Batteries.BATTERY_ENDER.get(), Items.END_STONE, Items.DIAMOND_BLOCK, Batteries.BATTERY3.get(), Items.ENDER_PEARL) + )); + } + + private static RecipeHolder recipe(String name, IVanillaRecipeFactory recipeFactory, ItemLike result, + ItemLike corner, ItemLike topBottom, ItemLike center, ItemLike middleSide) { + CraftingRecipe recipe = recipeFactory.createShapedRecipeBuilder(CraftingBookCategory.REDSTONE, new SlotDisplay.ItemStackSlotDisplay(new ItemStack(result))) + .define('r', Ingredient.of(corner)) + .define('g', Ingredient.of(topBottom)) + .define('i', Ingredient.of(center)) + .define('b', Ingredient.of(middleSide)) + .pattern("rgr") + .pattern("bib") + .pattern("rgr") + .build(); + ResourceKey> recipeId = ResourceKey.create(Registries.RECIPE, Identifier.parse(Batteries.MODID + ":jei/" + name)); + return new RecipeHolder<>(recipeId, recipe); + } + + private static RecipeHolder twoItemRecipe(String name, IVanillaRecipeFactory recipeFactory, ItemLike result, + CraftingBookCategory category, ItemLike first, ItemLike second) { + CraftingRecipe recipe = recipeFactory.createShapedRecipeBuilder(category, new SlotDisplay.ItemStackSlotDisplay(new ItemStack(result))) + .define('a', Ingredient.of(first)) + .define('b', Ingredient.of(second)) + .pattern("ab") + .build(); + ResourceKey> recipeId = ResourceKey.create(Registries.RECIPE, Identifier.parse(Batteries.MODID + ":jei/" + name)); + return new RecipeHolder<>(recipeId, recipe); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryBlockItem.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryBlockItem.java new file mode 100644 index 0000000..c72a64f --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryBlockItem.java @@ -0,0 +1,70 @@ +package com.trunksbomb.batteries.item; + +import java.util.function.Consumer; +import net.minecraft.network.chat.Component; +import net.minecraft.world.item.BlockItem; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.level.block.Block; +import net.neoforged.neoforge.transfer.energy.EnergyHandler; +import org.jspecify.annotations.NonNull; + +public class BatteryBlockItem extends BlockItem implements PoweredItem { + public static final int BASE_CAPACITY = 50_000; + + public BatteryBlockItem(Block block, Properties properties) { + super(block, properties.stacksTo(1)); + } + + @Override + public EnergyHandler createEnergyHandler(ItemStack stack) { + return new PoweredEnergyHandler(stack, getEnergyCapacity(stack), this.getMaxTransfer(stack), getStoredEnergy(stack)); + } + + @Override + public int getMaxTransfer(ItemStack stack) { + return EnergyTierHelper.transferRateForCapacity(getEnergyCapacity(stack)); + } + + @Override + public boolean isBarVisible(@NonNull ItemStack stack) { + return getEnergyCapacity(stack) > 0; + } + + @Override + public int getBarWidth(@NonNull ItemStack stack) { + int capacity = getEnergyCapacity(stack); + return capacity <= 0 ? 0 : Math.round(13.0F * getStoredEnergy(stack) / (float) capacity); + } + + @Override + public int getBarColor(@NonNull ItemStack stack) { + return this.getEnergyBarColor(stack); + } + + @Override + public void appendHoverText(@NonNull ItemStack stack, @NonNull TooltipContext context, net.minecraft.world.item.component.@NonNull TooltipDisplay tooltipDisplay, @NonNull Consumer tooltipAdder, @NonNull TooltipFlag flag) { + this.addEnergyTooltip(stack, tooltipAdder, flag); + } + + @Override + public boolean shouldCauseReequipAnimation(@NonNull ItemStack oldStack, @NonNull ItemStack newStack, boolean slotChanged) { + return this.shouldCauseEnergyReequipAnimation(oldStack, newStack, slotChanged); + } + + public static int getEnergyCapacity(ItemStack stack) { + int capacity = PoweredItemEnergy.getEnergyCapacity(stack); + return capacity > 0 ? capacity : BASE_CAPACITY; + } + + public static int getStoredEnergy(ItemStack stack) { + return Math.min(PoweredItemEnergy.getStoredEnergy(stack), getEnergyCapacity(stack)); + } + + public static void initializeDefaults(ItemStack stack) { + if (PoweredItemEnergy.getEnergyCapacity(stack) <= 0) { + PoweredItemEnergy.setEnergyCapacity(stack, BASE_CAPACITY); + PoweredItemEnergy.setStoredEnergy(stack, 0); + } + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryEnergyHandler.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryEnergyHandler.java new file mode 100644 index 0000000..945cd7e --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryEnergyHandler.java @@ -0,0 +1,45 @@ +package com.trunksbomb.batteries.item; + +import net.minecraft.world.item.ItemStack; +import net.neoforged.neoforge.transfer.energy.SimpleEnergyHandler; +import net.neoforged.neoforge.transfer.transaction.TransactionContext; +import org.jspecify.annotations.NonNull; + +final class BatteryEnergyHandler extends SimpleEnergyHandler { + private final ItemStack stack; + private final boolean creative; + + BatteryEnergyHandler(ItemStack stack, int capacity, int maxTransfer, int energy, boolean creative) { + super(capacity, maxTransfer, maxTransfer, creative ? capacity : energy); + this.stack = stack; + this.creative = creative; + } + + @Override + public long getAmountAsLong() { + return this.creative ? this.capacity : super.getAmountAsLong(); + } + + @Override + public int insert(int amount, @NonNull TransactionContext transaction) { + if (this.creative) { + return amount; + } + return super.insert(amount, transaction); + } + + @Override + public int extract(int amount, @NonNull TransactionContext transaction) { + if (this.creative) { + return amount; + } + return super.extract(amount, transaction); + } + + @Override + protected void onEnergyChanged(int previousAmount) { + if (!this.creative) { + BatteryItem.setStoredEnergy(this.stack, this.energy); + } + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryItem.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryItem.java new file mode 100644 index 0000000..1dd1c9c --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/item/BatteryItem.java @@ -0,0 +1,379 @@ +package com.trunksbomb.batteries.item; + +import com.trunksbomb.batteries.BatteriesConfig; +import com.trunksbomb.batteries.item.BatteryItemData.Tier; +import com.trunksbomb.batteries.menu.BatteriesMenu; +import java.util.UUID; +import java.util.function.Consumer; +import net.minecraft.ChatFormatting; +import net.minecraft.core.BlockPos; +import net.minecraft.core.Direction; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.chat.Component; +import net.minecraft.resources.Identifier; +import net.minecraft.server.level.ServerLevel; +import net.minecraft.server.level.ServerPlayer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.InteractionResult; +import net.minecraft.world.MenuProvider; +import net.minecraft.world.SimpleMenuProvider; +import net.minecraft.world.entity.Entity; +import net.minecraft.world.entity.EquipmentSlot; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.TooltipFlag; +import net.minecraft.world.item.context.UseOnContext; +import net.minecraft.world.level.Level; +import net.neoforged.neoforge.capabilities.Capabilities; +import net.neoforged.neoforge.transfer.access.ItemAccess; +import net.neoforged.neoforge.transfer.energy.EnergyHandler; +import net.neoforged.neoforge.transfer.transaction.Transaction; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +public class BatteryItem extends Item { + private static final String BATTERY_UUID_KEY = "battery_uuid"; + private static final String WHITELIST_KEY = "whitelist"; + private static final String CHARGE_HOTBAR_KEY = "charge_hotbar"; + private static final String CHARGE_INVENTORY_KEY = "charge_inventory"; + private static final String CHARGE_ARMOR_KEY = "charge_armor"; + private static final String CHARGE_FAIRLY_KEY = "charge_fairly"; + private static final String CHARGE_MACHINE_KEY = "charge_machine"; + private static final String FILTER_SLOT_KEY_PREFIX = "filter_slot_"; + private final Tier tier; + + public BatteryItem(Tier tier, Properties properties) { + super(properties.stacksTo(1)); + this.tier = tier; + } + + public Tier tier() { + return this.tier; + } + + @Override + public @NonNull InteractionResult useOn(@NonNull UseOnContext context) { + return InteractionResult.PASS; + } + + @Override + public @NonNull InteractionResult use(@NonNull Level level, @NonNull Player player, @NonNull InteractionHand usedHand) { + if (player instanceof ServerPlayer serverPlayer) { + ItemStack stack = player.getItemInHand(usedHand); + MenuProvider provider = new SimpleMenuProvider( + (containerId, inventory, menuPlayer) -> BatteriesMenu.forBattery(containerId, inventory, usedHand), + stack.getHoverName() + ); + serverPlayer.openMenu(provider, buffer -> BatteriesMenu.writeBatteryMenu(buffer, usedHand)); + } + + return InteractionResult.SUCCESS; + } + + @Override + public void inventoryTick(@NonNull ItemStack stack, @NonNull ServerLevel level, @NonNull Entity entity, @Nullable EquipmentSlot slot) { + if (!(entity instanceof ServerPlayer player) || !(stack.getItem() instanceof BatteryItem batteryItem)) { + return; + } + + if (batteryItem.tier != Tier.CREATIVE && getStoredEnergy(stack) <= 0) { + return; + } + + if (isChargeHotbarEnabled(stack)) { + for (int i = 0; i < 9; i++) { + chargeItemIfValid(stack, player.getInventory().getItem(i)); + } + } + + if (isChargeInventoryEnabled(stack)) { + for (int i = 9; i < 36; i++) { + chargeItemIfValid(stack, player.getInventory().getItem(i)); + } + } + + if (isChargeWornEnabled(stack)) { + for (int i = 36; i <= 40; i++) { + chargeItemIfValid(stack, player.getInventory().getItem(i)); + } + } + + if (isChargeMachineEnabled(stack)) { + chargeNearbyMachines(stack, player, level); + } + } + + @Override + public boolean shouldCauseReequipAnimation(@NonNull ItemStack oldStack, @NonNull ItemStack newStack, boolean slotChanged) { + return slotChanged || !newStack.is(oldStack.getItem()); + } + + @Override + public boolean isBarVisible(@NonNull ItemStack stack) { + return true; + } + + @Override + public int getBarWidth(@NonNull ItemStack stack) { + int capacity = getEnergyCapacity(stack); + if (capacity <= 0) { + return 0; + } + + return Math.round(13.0F * getStoredEnergy(stack) / (float) capacity); + } + + @Override + public int getBarColor(@NonNull ItemStack stack) { + return 0x55CC55; + } + + @Override + @SuppressWarnings("deprecation") + public void appendHoverText(@NonNull ItemStack stack, @NonNull TooltipContext context, net.minecraft.world.item.component.@NonNull TooltipDisplay tooltipDisplay, @NonNull Consumer tooltipAdder, @NonNull TooltipFlag flag) { + tooltipAdder.accept(Component.translatable("batteries.tooltip.energy", formatCompactAmount(getStoredEnergy(stack)), formatCompactAmount(getEnergyCapacity(stack))) + .withStyle(ChatFormatting.GREEN)); + } + + public static EnergyHandler createEnergyHandler(ItemStack stack) { + if (!(stack.getItem() instanceof BatteryItem batteryItem)) { + return null; + } + + int capacity = BatteryItemData.getEnergyCapacity(batteryItem.tier); + int maxTransfer = BatteryItemData.getMaxTransfer(batteryItem.tier); + return new BatteryEnergyHandler(stack, capacity, maxTransfer, getStoredEnergy(stack), batteryItem.tier == Tier.CREATIVE); + } + + public static int getStoredEnergy(ItemStack stack) { + if (stack.getItem() instanceof BatteryItem batteryItem) { + return BatteryItemData.getStoredEnergy(stack, batteryItem.tier); + } + return 0; + } + + static void setStoredEnergy(ItemStack stack, int energy) { + BatteryItemData.setStoredEnergy(stack, energy); + } + + public static int getEnergyCapacity(ItemStack stack) { + if (stack.getItem() instanceof BatteryItem batteryItem) { + return BatteryItemData.getEnergyCapacity(batteryItem.tier); + } + return 0; + } + + public static int getMaxTransfer(ItemStack stack) { + if (stack.getItem() instanceof BatteryItem batteryItem) { + return BatteryItemData.getMaxTransfer(batteryItem.tier); + } + return 0; + } + + public static EnergyHandler getEnergyHandler(ItemStack stack) { + return stack.getCapability(Capabilities.Energy.ITEM, ItemAccess.forStack(stack)); + } + + public static UUID ensureBatteryId(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + String existingUuid = tag.getStringOr(BATTERY_UUID_KEY, ""); + if (!existingUuid.isBlank()) { + return UUID.fromString(existingUuid); + } + + UUID uuid = UUID.randomUUID(); + net.minecraft.world.item.component.CustomData.update(DataComponents.CUSTOM_DATA, stack, data -> data.putString(BATTERY_UUID_KEY, uuid.toString())); + return uuid; + } + + public static UUID getBatteryId(ItemStack stack) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + String uuid = tag.getStringOr(BATTERY_UUID_KEY, ""); + return uuid.isBlank() ? null : UUID.fromString(uuid); + } + + public static ItemStack findLinkedEnderBattery(Player player, UUID batteryId) { + if (batteryId == null) { + return ItemStack.EMPTY; + } + + for (int slot = 0; slot < player.getInventory().getContainerSize(); slot++) { + ItemStack stack = player.getInventory().getItem(slot); + if (!(stack.getItem() instanceof BatteryItem batteryItem) || batteryItem.tier() != Tier.ENDER) { + continue; + } + + UUID stackId = getBatteryId(stack); + if (batteryId.equals(stackId)) { + return stack; + } + } + + return ItemStack.EMPTY; + } + + private static void chargeItemIfValid(ItemStack battery, ItemStack receivingStack) { + if (receivingStack.isEmpty() || receivingStack == battery || receivingStack.getItem() instanceof BatteryItem || !matchesFilter(battery, receivingStack)) { + return; + } + + EnergyHandler receivingEnergy = receivingStack.getCapability(Capabilities.Energy.ITEM, ItemAccess.forStack(receivingStack)); + if (receivingEnergy == null) { + return; + } + + transferEnergyToTarget(battery, receivingEnergy, isFairChargingEnabled(battery)); + } + + private static void chargeNearbyMachines(ItemStack battery, ServerPlayer player, ServerLevel level) { + int range = BatteriesConfig.machineChargeRange(); + BlockPos center = player.blockPosition(); + boolean fairCharging = isFairChargingEnabled(battery); + + for (BlockPos pos : BlockPos.betweenClosed(center.offset(-range, -range, -range), center.offset(range, range, range))) { + if (!level.isLoaded(pos)) { + continue; + } + + Direction side = getFacingFromBlockToPlayer(player, pos); + EnergyHandler energyHandler = level.getCapability(Capabilities.Energy.BLOCK, pos.immutable(), side); + if (energyHandler == null) { + continue; + } + + transferEnergyToTarget(battery, energyHandler, fairCharging); + if (((BatteryItem) battery.getItem()).tier != Tier.CREATIVE && getStoredEnergy(battery) <= 0) { + return; + } + } + } + + private static Direction getFacingFromBlockToPlayer(Player player, BlockPos pos) { + double dx = player.getX() - (pos.getX() + 0.5D); + double dy = player.getEyeY() - (pos.getY() + 0.5D); + double dz = player.getZ() - (pos.getZ() + 0.5D); + double absX = Math.abs(dx); + double absY = Math.abs(dy); + double absZ = Math.abs(dz); + if (absY >= absX && absY >= absZ) { + return dy >= 0.0D ? Direction.UP : Direction.DOWN; + } + if (absX >= absZ) { + return dx >= 0.0D ? Direction.EAST : Direction.WEST; + } + return dz >= 0.0D ? Direction.SOUTH : Direction.NORTH; + } + + private static void transferEnergyToTarget(ItemStack battery, EnergyHandler target, boolean fairCharging) { + EnergyHandler batteryEnergy = getEnergyHandler(battery); + if (batteryEnergy == null) { + return; + } + + int targetStored = target.getAmountAsInt(); + int targetCapacity = target.getCapacityAsInt(); + if (targetCapacity <= targetStored) { + return; + } + + int batteryStored = getStoredEnergy(battery); + if (fairCharging && batteryStored <= targetStored) { + return; + } + + int transferLimit = Math.min(getMaxTransfer(battery), targetCapacity - targetStored); + if (transferLimit <= 0) { + return; + } + + if (((BatteryItem) battery.getItem()).tier == Tier.CREATIVE) { + try (Transaction transaction = Transaction.openRoot()) { + if (target.insert(transferLimit, transaction) > 0) { + transaction.commit(); + } + } + return; + } + + try (Transaction transaction = Transaction.openRoot()) { + int accepted = target.insert(transferLimit, transaction); + if (accepted <= 0) { + return; + } + + int extracted = batteryEnergy.extract(accepted, transaction); + if (extracted != accepted) { + return; + } + + transaction.commit(); + } + } + + private static boolean matchesFilter(ItemStack battery, ItemStack candidate) { + CompoundTag tag = battery.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + boolean whitelist = tag.getBooleanOr(WHITELIST_KEY, false); + boolean hasFilterEntries = false; + boolean matched = false; + + for (int i = 0; i < BatteriesMenu.FILTER_SLOT_COUNT; i++) { + String itemId = tag.getStringOr(filterSlotKey(i), ""); + if (itemId.isBlank()) { + continue; + } + + hasFilterEntries = true; + Item item = BuiltInRegistries.ITEM.getValue(Identifier.parse(itemId)); + if (candidate.is(item)) { + matched = true; + break; + } + } + + if (!hasFilterEntries) { + return !whitelist; + } + + return whitelist == matched; + } + + private static boolean isChargeHotbarEnabled(ItemStack stack) { + return getToggle(stack, CHARGE_HOTBAR_KEY); + } + + private static boolean isChargeInventoryEnabled(ItemStack stack) { + return getToggle(stack, CHARGE_INVENTORY_KEY); + } + + private static boolean isChargeWornEnabled(ItemStack stack) { + return getToggle(stack, CHARGE_ARMOR_KEY); + } + + private static boolean isFairChargingEnabled(ItemStack stack) { + return getToggle(stack, CHARGE_FAIRLY_KEY); + } + + private static boolean isChargeMachineEnabled(ItemStack stack) { + return getToggle(stack, CHARGE_MACHINE_KEY); + } + + private static boolean getToggle(ItemStack stack, String key) { + CompoundTag tag = stack.getOrDefault(DataComponents.CUSTOM_DATA, net.minecraft.world.item.component.CustomData.EMPTY).copyTag(); + return tag.getBooleanOr(key, false); + } + + private static String filterSlotKey(int index) { + return FILTER_SLOT_KEY_PREFIX + index; + } + + public static String formatWithCommas(int amount) { + return BatteryItemData.formatWithCommas(amount); + } + + public static String formatCompactAmount(int amount) { + return BatteryItemData.formatCompactAmount(amount); + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/BatteriesMenu.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/BatteriesMenu.java new file mode 100644 index 0000000..08c6ad2 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/BatteriesMenu.java @@ -0,0 +1,272 @@ +package com.trunksbomb.batteries.menu; + +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.item.BatteryItem; +import net.minecraft.core.component.DataComponents; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.nbt.CompoundTag; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.resources.Identifier; +import net.minecraft.world.SimpleContainer; +import net.minecraft.world.InteractionHand; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ClickType; +import net.minecraft.world.inventory.ContainerData; +import net.minecraft.world.inventory.SimpleContainerData; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.component.CustomData; + +public class BatteriesMenu extends AbstractContainerMenu { + public static final int BATTERY_BUTTON_COUNT = 7; + public static final int FILTER_SLOT_COUNT = 9; + + private static final String BATTERY_WHITELIST_KEY = "whitelist"; + private static final String FILTER_SLOT_KEY_PREFIX = "filter_slot_"; + private static final String[] BATTERY_BUTTON_KEYS = new String[] { + "whitelist", + "blacklist", + "charge_hotbar", + "charge_inventory", + "charge_armor", + "charge_fairly", + "charge_machine" + }; + + private final InteractionHand hand; + private final ContainerData toggleData; + private final SimpleContainer filterSlots; + private final Inventory playerInventory; + + public BatteriesMenu(int containerId, Inventory inventory, RegistryFriendlyByteBuf buffer) { + this(containerId, inventory, readHand(buffer), new SimpleContainerData(BATTERY_BUTTON_COUNT)); + } + + private BatteriesMenu(int containerId, Inventory inventory, InteractionHand hand, ContainerData toggleData) { + super(Batteries.BATTERIES_MENU.get(), containerId); + this.hand = hand; + this.toggleData = toggleData; + this.playerInventory = inventory; + this.filterSlots = new SimpleContainer(FILTER_SLOT_COUNT); + this.addDataSlots(toggleData); + addSlots(inventory); + } + + public static BatteriesMenu forBattery(int containerId, Inventory inventory, InteractionHand hand) { + SimpleContainerData data = new SimpleContainerData(BATTERY_BUTTON_COUNT); + ItemStack stack = inventory.player.getItemInHand(hand); + for (int i = 0; i < BATTERY_BUTTON_COUNT; i++) { + data.set(i, getBatteryToggle(stack, resolveStateIndex(i)) ? 1 : 0); + } + BatteriesMenu menu = new BatteriesMenu(containerId, inventory, hand, data); + menu.loadFilterSlots(stack); + return menu; + } + + @Override + public boolean clickMenuButton(Player player, int buttonId) { + if (buttonId < 0 || buttonId >= this.toggleData.getCount()) { + return false; + } + + int stateIndex = resolveStateIndex(buttonId); + int newValue = this.toggleData.get(stateIndex) == 0 ? 1 : 0; + this.toggleData.set(stateIndex, newValue); + + if (!player.level().isClientSide() && this.hand != null) { + ItemStack stack = player.getItemInHand(this.hand); + setBatteryToggle(stack, stateIndex, newValue == 1); + } + + return true; + } + + @Override + public void clicked(int slotId, int button, ClickType clickType, Player player) { + if (slotId >= 0 && slotId < FILTER_SLOT_COUNT) { + Slot slot = this.slots.get(slotId); + ItemStack carried = this.getCarried(); + if (!carried.isEmpty() && slot.mayPlace(carried)) { + ItemStack ghostStack = carried.copy(); + ghostStack.setCount(1); + slot.set(ghostStack); + } else { + slot.set(ItemStack.EMPTY); + } + if (!player.level().isClientSide() && this.hand != null) { + saveFilterSlots(player.getItemInHand(this.hand)); + } + this.broadcastChanges(); + return; + } + + super.clicked(slotId, button, clickType, player); + } + + @Override + public ItemStack quickMoveStack(Player player, int index) { + return ItemStack.EMPTY; + } + + @Override + public boolean stillValid(Player player) { + return true; + } + + public int buttonCount() { + return BATTERY_BUTTON_COUNT; + } + + public boolean isButtonEnabled(int index) { + return this.toggleData.get(resolveStateIndex(index)) == 1; + } + + public void toggleClientPreview(int index) { + if (index < 0 || index >= this.buttonCount()) { + return; + } + int stateIndex = resolveStateIndex(index); + this.toggleData.set(stateIndex, this.toggleData.get(stateIndex) == 0 ? 1 : 0); + } + + public static String buttonTranslationKey(int index) { + return "batteries.gui.button." + BATTERY_BUTTON_KEYS[index]; + } + + private static InteractionHand readHand(RegistryFriendlyByteBuf buffer) { + return buffer.readEnum(InteractionHand.class); + } + + public static void writeBatteryMenu(RegistryFriendlyByteBuf buffer, InteractionHand hand) { + buffer.writeEnum(hand); + } + + private static boolean getBatteryToggle(ItemStack stack, int index) { + CustomData customData = stack.getOrDefault(DataComponents.CUSTOM_DATA, CustomData.EMPTY); + CompoundTag tag = customData.copyTag(); + return tag.getBooleanOr(stateKey(index), false); + } + + private static void setBatteryToggle(ItemStack stack, int index, boolean enabled) { + CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> tag.putBoolean(stateKey(index), enabled)); + } + + private void addSlots(Inventory inventory) { + for (int i = 0; i < FILTER_SLOT_COUNT; i++) { + this.addSlot(new BatteryFilterSlot(this.filterSlots, i, 32 + i * 18, 19)); + } + + for (int row = 0; row < 3; row++) { + for (int col = 0; col < 9; col++) { + int x = 32 + col * 18; + int y = 82 + row * 18; + int index = col + row * 9 + 9; + this.addSlot(new Slot(inventory, index, x, y)); + } + } + + for (int col = 0; col < 9; col++) { + int x = 32 + col * 18; + int y = 140; + this.addSlot(new Slot(inventory, col, x, y)); + } + + for (int slotIndex = 39; slotIndex >= 36; slotIndex--) { + int armorOffset = -slotIndex + 39; + this.addSlot(new Slot(inventory, slotIndex, 7, 19 + armorOffset * 18)); + } + + this.addSlot(new Slot(inventory, 40, 7, 91)); + } + + private static int resolveStateIndex(int buttonId) { + if (buttonId == 1) { + return 0; + } + return buttonId; + } + + private static String stateKey(int index) { + return switch (index) { + case 0 -> BATTERY_WHITELIST_KEY; + case 2 -> "charge_hotbar"; + case 3 -> "charge_inventory"; + case 4 -> "charge_armor"; + case 5 -> "charge_fairly"; + case 6 -> "charge_machine"; + default -> throw new IllegalArgumentException("Unexpected battery state index: " + index); + }; + } + + public boolean isFilterSlotEmpty(int index) { + return this.filterSlots != null && this.filterSlots.getItem(index).isEmpty(); + } + + public ItemStack playerInventoryItem(int index) { + return this.playerInventory.getItem(index); + } + + public ItemStack batteryStack() { + return this.hand == null ? ItemStack.EMPTY : this.playerInventory.player.getItemInHand(this.hand); + } + + private void loadFilterSlots(ItemStack stack) { + if (this.filterSlots == null) { + return; + } + + CustomData customData = stack.getOrDefault(DataComponents.CUSTOM_DATA, CustomData.EMPTY); + CompoundTag tag = customData.copyTag(); + for (int i = 0; i < FILTER_SLOT_COUNT; i++) { + this.filterSlots.setItem(i, decodeFilterStack(tag.getStringOr(filterSlotKey(i), ""))); + } + } + + private void saveFilterSlots(ItemStack stack) { + if (this.filterSlots == null) { + return; + } + + CustomData.update(DataComponents.CUSTOM_DATA, stack, tag -> { + for (int i = 0; i < FILTER_SLOT_COUNT; i++) { + ItemStack filterStack = this.filterSlots.getItem(i); + if (filterStack.isEmpty()) { + tag.remove(filterSlotKey(i)); + } else { + tag.putString(filterSlotKey(i), BuiltInRegistries.ITEM.getKey(filterStack.getItem()).toString()); + } + } + }); + } + + private static ItemStack decodeFilterStack(String itemId) { + if (itemId.isBlank()) { + return ItemStack.EMPTY; + } + + ItemStack stack = new ItemStack(BuiltInRegistries.ITEM.getValue(Identifier.parse(itemId))); + return stack.isEmpty() ? ItemStack.EMPTY : stack; + } + + private static String filterSlotKey(int index) { + return FILTER_SLOT_KEY_PREFIX + index; + } + + private static class BatteryFilterSlot extends Slot { + public BatteryFilterSlot(SimpleContainer container, int slot, int x, int y) { + super(container, slot, x, y); + } + + @Override + public boolean mayPlace(ItemStack stack) { + return !(stack.getItem() instanceof BatteryItem); + } + + @Override + public int getMaxStackSize() { + return 1; + } + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/BatteryBlockMenu.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/BatteryBlockMenu.java new file mode 100644 index 0000000..367753a --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/BatteryBlockMenu.java @@ -0,0 +1,141 @@ +package com.trunksbomb.batteries.menu; + +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.block.BatteryBlockData; +import com.trunksbomb.batteries.block.entity.BatteryBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ContainerData; +import net.minecraft.world.inventory.ContainerLevelAccess; +import net.minecraft.world.inventory.Slot; +import org.jspecify.annotations.NonNull; + +public class BatteryBlockMenu extends AbstractContainerMenu { + public static final int SIDE_BUTTON_COUNT = 6; + private static final int ENERGY_INDEX = 6; + private static final int CAPACITY_INDEX = 7; + + private final ContainerLevelAccess access; + private final ContainerData data; + + public BatteryBlockMenu(int containerId, Inventory inventory, RegistryFriendlyByteBuf buffer) { + this(containerId, inventory, buffer.readBlockPos(), createPlaceholderData()); + } + + private BatteryBlockMenu(int containerId, Inventory inventory, BlockPos blockPos, ContainerData data) { + super(Batteries.BATTERY_BLOCK_MENU.get(), containerId); + this.access = ContainerLevelAccess.create(inventory.player.level(), blockPos); + this.data = data; + this.addDataSlots(data); + this.addPlayerSlots(inventory); + } + + public static BatteryBlockMenu forBlock(int containerId, Inventory inventory, BatteryBlockEntity blockEntity) { + return new BatteryBlockMenu(containerId, inventory, blockEntity.getBlockPos(), new ContainerData() { + @Override + public int get(int index) { + if (index >= 0 && index < SIDE_BUTTON_COUNT) { + return blockEntity.getSideMode(BatteryBlockEntity.directionForIndex(index)).ordinal(); + } + if (index == ENERGY_INDEX) { + return blockEntity.getStoredEnergy(); + } + if (index == CAPACITY_INDEX) { + return blockEntity.getEnergyCapacity(); + } + return 0; + } + + @Override + public void set(int index, int value) { + if (index >= 0 && index < SIDE_BUTTON_COUNT) { + BatteryBlockData.SideMode[] modes = BatteryBlockData.SideMode.values(); + blockEntity.setSideMode(BatteryBlockEntity.directionForIndex(index), modes[Math.max(0, Math.min(modes.length - 1, value))]); + } + } + + @Override + public int getCount() { + return 8; + } + }); + } + + @Override + public boolean clickMenuButton(@NonNull Player player, int buttonId) { + if (buttonId < 0 || buttonId >= SIDE_BUTTON_COUNT) { + return false; + } + + this.data.set(buttonId, (this.data.get(buttonId) + 1) % BatteryBlockData.SideMode.values().length); + return true; + } + + @Override + public net.minecraft.world.item.@NonNull ItemStack quickMoveStack(@NonNull Player player, int index) { + return net.minecraft.world.item.ItemStack.EMPTY; + } + + @Override + public boolean stillValid(@NonNull Player player) { + return stillValid(this.access, player, Batteries.BATTERY_BLOCK.get()); + } + + public BatteryBlockData.SideMode sideMode(int index) { + return BatteryBlockData.SideMode.values()[this.data.get(index)]; + } + + public int storedEnergy() { + return this.data.get(ENERGY_INDEX); + } + + public int energyCapacity() { + return this.data.get(CAPACITY_INDEX); + } + + public void cycleClientPreview(int index) { + if (index >= 0 && index < SIDE_BUTTON_COUNT) { + this.data.set(index, (this.data.get(index) + 1) % BatteryBlockData.SideMode.values().length); + } + } + + public static void writeBlockPos(RegistryFriendlyByteBuf buffer, BlockPos blockPos) { + buffer.writeBlockPos(blockPos); + } + + private void addPlayerSlots(Inventory inventory) { + for (int row = 0; row < 3; row++) { + for (int col = 0; col < 9; col++) { + this.addSlot(new Slot(inventory, col + row * 9 + 9, 8 + col * 18, 82 + row * 18)); + } + } + + for (int col = 0; col < 9; col++) { + this.addSlot(new Slot(inventory, col, 8 + col * 18, 140)); + } + } + + private static ContainerData createPlaceholderData() { + return new ContainerData() { + private final int[] values = new int[8]; + + @Override + public int get(int index) { + return this.values[index]; + } + + @Override + public void set(int index, int value) { + this.values[index] = value; + } + + @Override + public int getCount() { + return this.values.length; + } + }; + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/CoalGeneratorMenu.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/CoalGeneratorMenu.java new file mode 100644 index 0000000..b35b575 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/menu/CoalGeneratorMenu.java @@ -0,0 +1,123 @@ +package com.trunksbomb.batteries.menu; + +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.block.entity.CoalGeneratorBlockEntity; +import net.minecraft.core.BlockPos; +import net.minecraft.network.RegistryFriendlyByteBuf; +import net.minecraft.world.entity.player.Inventory; +import net.minecraft.world.entity.player.Player; +import net.minecraft.world.inventory.AbstractContainerMenu; +import net.minecraft.world.inventory.ContainerData; +import net.minecraft.world.inventory.ContainerLevelAccess; +import net.minecraft.world.inventory.Slot; +import net.minecraft.world.item.ItemStack; + +public class CoalGeneratorMenu extends AbstractContainerMenu { + private static final int ENERGY_INDEX = 0; + private static final int CAPACITY_INDEX = 1; + private static final int BURN_TIME_INDEX = 2; + private static final int MAX_BURN_TIME_INDEX = 3; + private final ContainerLevelAccess access; + private final ContainerData data; + + public CoalGeneratorMenu(int containerId, Inventory inventory, RegistryFriendlyByteBuf buffer) { + this(containerId, inventory, buffer.readBlockPos(), createPlaceholderData(), new net.minecraft.world.SimpleContainer(1)); + } + + private CoalGeneratorMenu(int containerId, Inventory inventory, BlockPos blockPos, ContainerData data, net.minecraft.world.Container fuelContainer) { + super(Batteries.COAL_GENERATOR_MENU.get(), containerId); + this.access = ContainerLevelAccess.create(inventory.player.level(), blockPos); + this.data = data; + this.addDataSlots(data); + this.addSlot(new FuelSlot(fuelContainer, 0, 80, 42)); + addPlayerSlots(inventory); + } + + public static CoalGeneratorMenu forBlock(int containerId, Inventory inventory, CoalGeneratorBlockEntity blockEntity) { + ContainerData data = new ContainerData() { + @Override + public int get(int index) { + return switch (index) { + case ENERGY_INDEX -> blockEntity.getStoredEnergy(); + case CAPACITY_INDEX -> blockEntity.getEnergyCapacity(); + case BURN_TIME_INDEX -> blockEntity.getBurnTimeRemaining(); + case MAX_BURN_TIME_INDEX -> blockEntity.getMaxBurnTime(); + default -> 0; + }; + } + + @Override + public void set(int index, int value) { + } + + @Override + public int getCount() { + return 4; + } + }; + return new CoalGeneratorMenu(containerId, inventory, blockEntity.getBlockPos(), data, blockEntity.fuelSlot()); + } + + @Override + public ItemStack quickMoveStack(Player player, int index) { + return ItemStack.EMPTY; + } + + @Override + public boolean stillValid(Player player) { + return stillValid(this.access, player, Batteries.COAL_GENERATOR.get()); + } + + public int storedEnergy() { + return this.getData(ENERGY_INDEX); + } + + public int energyCapacity() { + return this.getData(CAPACITY_INDEX); + } + + public int burnTimeRemaining() { + return this.getData(BURN_TIME_INDEX); + } + + public int maxBurnTime() { + return this.getData(MAX_BURN_TIME_INDEX); + } + + private int getData(int index) { + return this.data.get(index); + } + + public static void writeBlockPos(RegistryFriendlyByteBuf buffer, BlockPos blockPos) { + buffer.writeBlockPos(blockPos); + } + + private void addPlayerSlots(Inventory inventory) { + for (int row = 0; row < 3; row++) { + for (int col = 0; col < 9; col++) { + this.addSlot(new Slot(inventory, col + row * 9 + 9, 8 + col * 18, 82 + row * 18)); + } + } + for (int col = 0; col < 9; col++) { + this.addSlot(new Slot(inventory, col, 8 + col * 18, 140)); + } + } + + private static ContainerData createPlaceholderData() { + return new net.minecraft.world.inventory.SimpleContainerData(4); + } + + private final class FuelSlot extends Slot { + private FuelSlot(net.minecraft.world.Container container, int slot, int x, int y) { + super(container, slot, x, y); + } + + @Override + public boolean mayPlace(ItemStack stack) { + return CoalGeneratorMenu.this.access.evaluate( + (level, pos) -> CoalGeneratorBlockEntity.isFuel(level, stack), + false + ); + } + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/BatteryBlockUpgradeRecipe.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/BatteryBlockUpgradeRecipe.java new file mode 100644 index 0000000..0322120 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/BatteryBlockUpgradeRecipe.java @@ -0,0 +1,97 @@ +package com.trunksbomb.batteries.recipe; + +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.item.BatteryBlockItem; +import com.trunksbomb.batteries.item.BatteryItem; +import com.trunksbomb.batteries.item.PoweredItemEnergy; +import net.minecraft.core.HolderLookup; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingInput; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.Level; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +public class BatteryBlockUpgradeRecipe extends CustomRecipe { + public BatteryBlockUpgradeRecipe(CraftingBookCategory category) { + super(category); + } + + @Override + public boolean matches(CraftingInput input, @NonNull Level level) { + return this.findMatch(input) != null; + } + + @Override + public @NonNull ItemStack assemble(CraftingInput input, HolderLookup.@NonNull Provider registries) { + Match match = this.findMatch(input); + if (match == null) { + return ItemStack.EMPTY; + } + + ItemStack result = new ItemStack(Batteries.BATTERY_BLOCK_ITEM.get()); + int newCapacity = PoweredItemEnergy.clampToInt((long) match.baseCapacity() + match.addedCapacity()); + int newEnergy = PoweredItemEnergy.clampToInt((long) match.baseEnergy() + match.addedEnergy()); + PoweredItemEnergy.setEnergyCapacity(result, newCapacity); + PoweredItemEnergy.setStoredEnergy(result, Math.min(newCapacity, newEnergy)); + return result; + } + + @Override + public @NonNull RecipeSerializer getSerializer() { + return Batteries.BATTERY_BLOCK_UPGRADE_RECIPE.get(); + } + + public ItemStack getResultItem(HolderLookup.Provider registries) { + ItemStack result = new ItemStack(Batteries.BATTERY_BLOCK_ITEM.get()); + BatteryBlockItem.initializeDefaults(result); + return result; + } + + @Nullable + private Match findMatch(CraftingInput input) { + ItemStack baseStack = ItemStack.EMPTY; + long addedCapacity = 0L; + long addedEnergy = 0L; + + for (ItemStack stack : input.items()) { + if (stack.isEmpty()) { + continue; + } + + if (stack.getItem() instanceof BatteryBlockItem) { + if (baseStack.isEmpty()) { + baseStack = stack; + } else { + addedCapacity += BatteryBlockItem.getEnergyCapacity(stack); + addedEnergy += BatteryBlockItem.getStoredEnergy(stack); + } + continue; + } + + if (stack.getItem() instanceof BatteryItem) { + addedCapacity += BatteryItem.getEnergyCapacity(stack); + addedEnergy += BatteryItem.getStoredEnergy(stack); + continue; + } + + return null; + } + + if (baseStack.isEmpty() || addedCapacity <= 0L) { + return null; + } + + return new Match( + BatteryBlockItem.getEnergyCapacity(baseStack), + BatteryBlockItem.getStoredEnergy(baseStack), + PoweredItemEnergy.clampToInt(addedCapacity), + PoweredItemEnergy.clampToInt(addedEnergy) + ); + } + + private record Match(int baseCapacity, int baseEnergy, int addedCapacity, int addedEnergy) { + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/BatteryTierUpgradeRecipe.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/BatteryTierUpgradeRecipe.java new file mode 100644 index 0000000..437efae --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/BatteryTierUpgradeRecipe.java @@ -0,0 +1,92 @@ +package com.trunksbomb.batteries.recipe; + +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.item.BatteryItem; +import net.minecraft.core.HolderLookup; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingInput; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.Level; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +public class BatteryTierUpgradeRecipe extends CustomRecipe { + public BatteryTierUpgradeRecipe(CraftingBookCategory category) { + super(category); + } + + @Override + public boolean matches(CraftingInput input, @NonNull Level level) { + return this.findMatch(input) != null; + } + + @Override + public @NonNull ItemStack assemble(CraftingInput input, HolderLookup.@NonNull Provider registries) { + Match match = this.findMatch(input); + if (match == null) { + return ItemStack.EMPTY; + } + + ItemStack result = match.baseStack().transmuteCopy(match.resultItem()); + int storedEnergy = BatteryItem.getStoredEnergy(match.baseStack()); + int capacity = BatteryItem.getEnergyCapacity(result); + BatteryItem.createEnergyHandler(result); + setStoredEnergy(result, Math.min(storedEnergy, capacity)); + return result; + } + + @Override + public RecipeSerializer getSerializer() { + return Batteries.BATTERY_TIER_UPGRADE_RECIPE.get(); + } + + public ItemStack getResultItem(HolderLookup.Provider registries) { + return new ItemStack(Batteries.BATTERY1.get()); + } + + @Nullable + private Match findMatch(CraftingInput input) { + if (input.width() != 3 || input.height() != 3) { + return null; + } + + if (matchesPattern(input, Items.REDSTONE, Items.GOLD_BLOCK, Batteries.BATTERY.get(), Items.REDSTONE_BLOCK)) { + return new Match(input.getItem(4), Batteries.BATTERY1.get()); + } + if (matchesPattern(input, Items.REDSTONE, Items.DIAMOND, Batteries.BATTERY1.get(), Items.REDSTONE_BLOCK)) { + return new Match(input.getItem(4), Batteries.BATTERY2.get()); + } + if (matchesPattern(input, Items.REDSTONE, Items.DIAMOND_BLOCK, Batteries.BATTERY2.get(), Items.REDSTONE_BLOCK)) { + return new Match(input.getItem(4), Batteries.BATTERY3.get()); + } + if (matchesPattern(input, Items.END_STONE, Items.DIAMOND_BLOCK, Batteries.BATTERY3.get(), Items.ENDER_PEARL)) { + return new Match(input.getItem(4), Batteries.BATTERY_ENDER.get()); + } + + return null; + } + + private static boolean matchesPattern(CraftingInput input, Item cornerItem, Item topBottomItem, Item centerItem, Item middleSideItem) { + return input.getItem(0).is(cornerItem) + && input.getItem(1).is(topBottomItem) + && input.getItem(2).is(cornerItem) + && input.getItem(3).is(middleSideItem) + && input.getItem(4).is(centerItem) + && input.getItem(5).is(middleSideItem) + && input.getItem(6).is(cornerItem) + && input.getItem(7).is(topBottomItem) + && input.getItem(8).is(cornerItem); + } + + private static void setStoredEnergy(ItemStack stack, int energy) { + net.minecraft.world.item.component.CustomData.update(net.minecraft.core.component.DataComponents.CUSTOM_DATA, stack, + tag -> tag.putInt("energy", Math.max(0, energy))); + } + + private record Match(ItemStack baseStack, Item resultItem) { + } +} diff --git a/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/PoweredGearUpgradeRecipe.java b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/PoweredGearUpgradeRecipe.java new file mode 100644 index 0000000..7ed2743 --- /dev/null +++ b/neoforge-1.21.11/src/main/java/com/trunksbomb/batteries/recipe/PoweredGearUpgradeRecipe.java @@ -0,0 +1,156 @@ +package com.trunksbomb.batteries.recipe; + +import com.trunksbomb.batteries.Batteries; +import com.trunksbomb.batteries.BatteriesConfig; +import com.trunksbomb.batteries.item.BatteryItem; +import com.trunksbomb.batteries.item.PoweredItem; +import com.trunksbomb.batteries.item.PoweredItemEnergy; +import net.minecraft.core.HolderLookup; +import net.minecraft.world.item.Item; +import net.minecraft.world.item.ItemStack; +import net.minecraft.world.item.Items; +import net.minecraft.world.item.crafting.CraftingBookCategory; +import net.minecraft.world.item.crafting.CraftingInput; +import net.minecraft.world.item.crafting.CustomRecipe; +import net.minecraft.world.item.crafting.RecipeSerializer; +import net.minecraft.world.level.Level; +import org.jspecify.annotations.NonNull; +import org.jspecify.annotations.Nullable; + +public class PoweredGearUpgradeRecipe extends CustomRecipe { + public PoweredGearUpgradeRecipe(CraftingBookCategory category) { + super(category); + } + + @Override + public boolean matches(CraftingInput input, @NonNull Level level) { + return this.findMatch(input) != null; + } + + @Override + public @NonNull ItemStack assemble(CraftingInput input, HolderLookup.@NonNull Provider registries) { + Match match = this.findMatch(input); + if (match == null) { + return ItemStack.EMPTY; + } + + ItemStack result = match.baseStack().transmuteCopy(match.resultItem()); + int baseCapacity = match.basePowered() ? PoweredItemEnergy.getEnergyCapacity(match.baseStack()) : 0; + int baseEnergy = match.basePowered() ? PoweredItemEnergy.getStoredEnergy(match.baseStack()) : 0; + int newCapacity = PoweredItemEnergy.clampToInt((long) baseCapacity + match.addedCapacity()); + int newEnergy = PoweredItemEnergy.clampToInt((long) baseEnergy + match.addedEnergy()); + + PoweredItemEnergy.setEnergyCapacity(result, newCapacity); + PoweredItemEnergy.setStoredEnergy(result, Math.min(newCapacity, newEnergy)); + return result; + } + + @Override + public @NonNull RecipeSerializer getSerializer() { + return Batteries.POWERED_GEAR_UPGRADE_RECIPE.get(); + } + + public ItemStack getResultItem(HolderLookup.Provider registries) { + return new ItemStack(Batteries.BATTERY_PICKAXE.get()); + } + + @Nullable + private Match findMatch(CraftingInput input) { + ItemStack baseStack = ItemStack.EMPTY; + Item resultItem = null; + boolean basePowered = false; + long addedCapacity = 0L; + long addedEnergy = 0L; + int batteries = 0; + + for (ItemStack stack : input.items()) { + if (stack.isEmpty()) { + continue; + } + + if (stack.getItem() instanceof BatteryItem) { + batteries++; + addedCapacity += BatteryItem.getEnergyCapacity(stack); + addedEnergy += BatteryItem.getStoredEnergy(stack); + continue; + } + + if (!baseStack.isEmpty()) { + return null; + } + + resultItem = this.toPoweredResult(stack); + if (resultItem == null) { + return null; + } + + baseStack = stack; + basePowered = stack.getItem() instanceof PoweredItem; + } + + if (baseStack.isEmpty() || resultItem == null || batteries == 0) { + return null; + } + + return new Match(baseStack, resultItem, basePowered, PoweredItemEnergy.clampToInt(addedCapacity), PoweredItemEnergy.clampToInt(addedEnergy)); + } + + @Nullable + private Item toPoweredResult(ItemStack stack) { + Item item = stack.getItem(); + if (BatteriesConfig.poweredToolsEnabled() && item == Items.DIAMOND_PICKAXE) { + return Batteries.BATTERY_PICKAXE.get(); + } + if (BatteriesConfig.poweredToolsEnabled() && item == Items.DIAMOND_AXE) { + return Batteries.BATTERY_AXE.get(); + } + if (BatteriesConfig.poweredToolsEnabled() && item == Items.DIAMOND_SHOVEL) { + return Batteries.BATTERY_SHOVEL.get(); + } + if (BatteriesConfig.poweredToolsEnabled() && item == Items.DIAMOND_HOE) { + return Batteries.BATTERY_HOE.get(); + } + if (BatteriesConfig.poweredWeaponsEnabled() && item == Items.DIAMOND_SWORD) { + return Batteries.BATTERY_SWORD.get(); + } + if (BatteriesConfig.poweredArmorEnabled() && item == Items.DIAMOND_HELMET) { + return Batteries.BATTERY_HELMET.get(); + } + if (BatteriesConfig.poweredArmorEnabled() && item == Items.DIAMOND_CHESTPLATE) { + return Batteries.BATTERY_CHESTPLATE.get(); + } + if (BatteriesConfig.poweredArmorEnabled() && item == Items.DIAMOND_LEGGINGS) { + return Batteries.BATTERY_LEGGINGS.get(); + } + if (BatteriesConfig.poweredArmorEnabled() && item == Items.DIAMOND_BOOTS) { + return Batteries.BATTERY_BOOTS.get(); + } + if (BatteriesConfig.poweredWeaponsEnabled() && item == Items.SHIELD) { + return Batteries.BATTERY_SHIELD.get(); + } + if (BatteriesConfig.poweredWeaponsEnabled() && item == Items.BOW) { + return Batteries.BATTERY_BOW.get(); + } + if (BatteriesConfig.poweredToolsEnabled() && (item == Batteries.BATTERY_PICKAXE.get() + || item == Batteries.BATTERY_AXE.get() + || item == Batteries.BATTERY_SHOVEL.get() + || item == Batteries.BATTERY_HOE.get())) { + return item; + } + if (BatteriesConfig.poweredWeaponsEnabled() && (item == Batteries.BATTERY_SWORD.get() + || item == Batteries.BATTERY_SHIELD.get() + || item == Batteries.BATTERY_BOW.get())) { + return item; + } + if (BatteriesConfig.poweredArmorEnabled() && (item == Batteries.BATTERY_HELMET.get() + || item == Batteries.BATTERY_CHESTPLATE.get() + || item == Batteries.BATTERY_LEGGINGS.get() + || item == Batteries.BATTERY_BOOTS.get())) { + return item; + } + return null; + } + + private record Match(ItemStack baseStack, Item resultItem, boolean basePowered, int addedCapacity, int addedEnergy) { + } +} diff --git a/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery.json b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery.json new file mode 100644 index 0000000..0173af7 --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "rgr", + "bib", + "rgr" + ], + "key": { + "r": "minecraft:redstone", + "g": "minecraft:gold_ingot", + "i": "minecraft:iron_ingot", + "b": "minecraft:redstone_block" + }, + "result": { + "id": "batteries:battery", + "count": 1 + } +} diff --git a/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery1.json b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery1.json new file mode 100644 index 0000000..2aeecef --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery1.json @@ -0,0 +1,4 @@ +{ + "type": "batteries:battery_tier_upgrade", + "category": "redstone" +} diff --git a/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery2.json b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery2.json new file mode 100644 index 0000000..2aeecef --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery2.json @@ -0,0 +1,4 @@ +{ + "type": "batteries:battery_tier_upgrade", + "category": "redstone" +} diff --git a/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery3.json b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery3.json new file mode 100644 index 0000000..2aeecef --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery3.json @@ -0,0 +1,4 @@ +{ + "type": "batteries:battery_tier_upgrade", + "category": "redstone" +} diff --git a/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_block.json b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_block.json new file mode 100644 index 0000000..45676a5 --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_block.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "RGR", + "LIL", + "RGR" + ], + "key": { + "R": "minecraft:redstone_block", + "L": "#minecraft:logs", + "G": "minecraft:gold_ingot", + "I": "minecraft:iron_block" + }, + "result": { + "id": "batteries:battery_block" + } +} diff --git a/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_block_upgrade.json b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_block_upgrade.json new file mode 100644 index 0000000..8844138 --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_block_upgrade.json @@ -0,0 +1,4 @@ +{ + "type": "batteries:battery_block_upgrade", + "category": "redstone" +} diff --git a/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_ender.json b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_ender.json new file mode 100644 index 0000000..2aeecef --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/battery_ender.json @@ -0,0 +1,4 @@ +{ + "type": "batteries:battery_tier_upgrade", + "category": "redstone" +} diff --git a/neoforge-1.21.11/src/main/resources/data/batteries/recipe/charger.json b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/charger.json new file mode 100644 index 0000000..3837b2c --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/charger.json @@ -0,0 +1,19 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "rgr", + "bib", + "rgr" + ], + "key": { + "r": "minecraft:white_concrete", + "g": "minecraft:gold_ingot", + "i": "minecraft:iron_ingot", + "b": "minecraft:redstone_block" + }, + "result": { + "id": "batteries:charger", + "count": 1 + } +} diff --git a/neoforge-1.21.11/src/main/resources/data/batteries/recipe/coal_generator.json b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/coal_generator.json new file mode 100644 index 0000000..b4b584c --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/coal_generator.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "RGR", + "LFL", + "RGR" + ], + "key": { + "R": "minecraft:redstone_block", + "G": "minecraft:gold_ingot", + "L": "#minecraft:logs", + "F": "minecraft:furnace" + }, + "result": { + "id": "batteries:coal_generator" + } +} diff --git a/neoforge-1.21.11/src/main/resources/data/batteries/recipe/ender_charger.json b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/ender_charger.json new file mode 100644 index 0000000..bbe86af --- /dev/null +++ b/neoforge-1.21.11/src/main/resources/data/batteries/recipe/ender_charger.json @@ -0,0 +1,18 @@ +{ + "type": "minecraft:crafting_shaped", + "category": "redstone", + "pattern": [ + "ede", + "ece", + "ede" + ], + "key": { + "e": "minecraft:ender_pearl", + "d": "minecraft:diamond", + "c": "batteries:charger" + }, + "result": { + "id": "batteries:ender_charger", + "count": 1 + } +} diff --git a/neoforge-1.21.11/src/main/templates/META-INF/neoforge.mods.toml b/neoforge-1.21.11/src/main/templates/META-INF/neoforge.mods.toml new file mode 100644 index 0000000..c0c2089 --- /dev/null +++ b/neoforge-1.21.11/src/main/templates/META-INF/neoforge.mods.toml @@ -0,0 +1,89 @@ +# This is an example neoforge.mods.toml file. It contains the data relating to the loading mods. +# There are several mandatory fields (#mandatory), and many more that are optional (#optional). +# The overall format is standard TOML format, v0.5.0. +# Note that there are a couple of TOML lists in this file. +# Find more information on toml format here: https://github.com/toml-lang/toml + +# The license for you mod. This is mandatory metadata and allows for easier comprehension of your redistributive properties. +# Review your options at https://choosealicense.com/. All rights reserved is the default copyright stance, and is thus the default here. +license="${mod_license}" + +# A URL to refer people to when problems occur with this mod +#issueTrackerURL="https://change.me.to.your.issue.tracker.example.invalid/" #optional + +# A list of mods - how many allowed here is determined by the individual mod loader +[[mods]] #mandatory + +# The modid of the mod +modId="${mod_id}" #mandatory + +# The version number of the mod +version="${mod_version}" #mandatory + +# A display name for the mod +displayName="${mod_name}" #mandatory + +# A URL to query for updates for this mod. See the JSON update specification https://docs.neoforged.net/docs/misc/updatechecker/ +#updateJSONURL="https://change.me.example.invalid/updates.json" #optional + +# A URL for the "homepage" for this mod, displayed in the mod UI +#displayURL="https://change.me.to.your.mods.homepage.example.invalid/" #optional + +# A file name (in the root of the mod JAR) containing a logo for display +#logoFile="examplemod.png" #optional + +# A text field displayed in the mod UI +#credits="" #optional + +# The authors of the mod, displayed in the mod UI (optional) +authors="trunksbomb" + +# The description text for the mod (multi line!) (#mandatory) +description=''' +Adds portable batteries and chargers for NeoForge. This 1.21 branch currently includes an MVP battery item and charger block while the gameplay systems are being ported. +''' + +# The [[mixins]] block allows you to declare your mixin config to FML so that it gets loaded. +#[[mixins]] +#config="${mod_id}.mixins.json" + +# The [[accessTransformers]] block allows you to declare where your AT file is. +# If this block is omitted, a fallback attempt will be made to load an AT from META-INF/accesstransformer.cfg +#[[accessTransformers]] +#file="META-INF/accesstransformer.cfg" + +# The coremods config file path is not configurable and is always loaded from META-INF/coremods.json + +# A dependency - use the . to indicate dependency for a specific modid. Dependencies are optional. +[[dependencies.${mod_id}]] #optional + # the modid of the dependency + modId="neoforge" #mandatory + # The type of the dependency. Can be one of "required", "optional", "incompatible" or "discouraged" (case insensitive). + # 'required' requires the mod to exist, 'optional' does not + # 'incompatible' will prevent the game from loading when the mod exists, and 'discouraged' will show a warning + type="required" #mandatory + # Optional field describing why the dependency is required or why it is incompatible + # reason="..." + # The version range of the dependency + versionRange="[${neo_version},)" #mandatory + # An ordering relationship for the dependency. + # BEFORE - This mod is loaded BEFORE the dependency + # AFTER - This mod is loaded AFTER the dependency + ordering="NONE" + # Side this dependency is applied on - BOTH, CLIENT, or SERVER + side="BOTH" + +# Here's another dependency +[[dependencies.${mod_id}]] + modId="minecraft" + type="required" + # This version range declares a minimum of the current minecraft version up to but not including the next major version + versionRange="${minecraft_version_range}" + ordering="NONE" + side="BOTH" + +# Features are specific properties of the game environment, that you may want to declare you require. This example declares +# that your mod requires GL version 3.2 or higher. Other features will be added. They are side aware so declaring this won't +# stop your mod loading on the server for example. +#[features.${mod_id}] +#openGLVersion="[3.2,)" diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000..4639829 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,15 @@ +pluginManagement { + repositories { + gradlePluginPortal() + } +} + +plugins { + id 'org.gradle.toolchains.foojay-resolver-convention' version '1.0.0' +} + +rootProject.name = 'minecraft-batteries' + +include 'common' +include 'neoforge-1.21.1' +include 'neoforge-1.21.11'