From 86592931c6c9ee16555c4a51269acb6584977cf4 Mon Sep 17 00:00:00 2001 From: Tnze Date: Wed, 9 Mar 2022 10:08:44 +0800 Subject: [PATCH 1/4] blocks codegen --- level/block/acacia_button.go | 11 ++ level/block/acacia_door.go | 13 +++ level/block/acacia_fence.go | 13 +++ level/block/acacia_fence_gate.go | 12 +++ level/block/acacia_leaves.go | 10 ++ level/block/acacia_log.go | 9 ++ level/block/acacia_planks.go | 8 ++ level/block/acacia_pressure_plate.go | 9 ++ level/block/acacia_sapling.go | 9 ++ level/block/acacia_sign.go | 10 ++ level/block/acacia_slab.go | 10 ++ level/block/acacia_stairs.go | 12 +++ level/block/acacia_trapdoor.go | 13 +++ level/block/acacia_wall_sign.go | 10 ++ level/block/acacia_wood.go | 9 ++ level/block/activator_rail.go | 11 ++ level/block/air.go | 8 ++ level/block/allium.go | 8 ++ level/block/amethyst_block.go | 8 ++ level/block/amethyst_cluster.go | 10 ++ level/block/ancient_debris.go | 8 ++ level/block/andesite.go | 8 ++ level/block/andesite_slab.go | 10 ++ level/block/andesite_stairs.go | 12 +++ level/block/andesite_wall.go | 14 +++ level/block/anvil.go | 9 ++ level/block/attached_melon_stem.go | 9 ++ level/block/attached_pumpkin_stem.go | 9 ++ level/block/azalea.go | 8 ++ level/block/azalea_leaves.go | 10 ++ level/block/azure_bluet.go | 8 ++ level/block/bamboo.go | 11 ++ level/block/bamboo_sapling.go | 8 ++ level/block/barrel.go | 10 ++ level/block/barrier.go | 8 ++ level/block/basalt.go | 9 ++ level/block/beacon.go | 8 ++ level/block/bedrock.go | 8 ++ level/block/bee_nest.go | 10 ++ level/block/beehive.go | 10 ++ level/block/beetroots.go | 9 ++ level/block/bell.go | 11 ++ level/block/big_dripleaf.go | 11 ++ level/block/big_dripleaf_stem.go | 10 ++ level/block/birch_button.go | 11 ++ level/block/birch_door.go | 13 +++ level/block/birch_fence.go | 13 +++ level/block/birch_fence_gate.go | 12 +++ level/block/birch_leaves.go | 10 ++ level/block/birch_log.go | 9 ++ level/block/birch_planks.go | 8 ++ level/block/birch_pressure_plate.go | 9 ++ level/block/birch_sapling.go | 9 ++ level/block/birch_sign.go | 10 ++ level/block/birch_slab.go | 10 ++ level/block/birch_stairs.go | 12 +++ level/block/birch_trapdoor.go | 13 +++ level/block/birch_wall_sign.go | 10 ++ level/block/birch_wood.go | 9 ++ level/block/black_banner.go | 9 ++ level/block/black_bed.go | 11 ++ level/block/black_candle.go | 11 ++ level/block/black_candle_cake.go | 9 ++ level/block/black_carpet.go | 8 ++ level/block/black_concrete.go | 8 ++ level/block/black_concrete_powder.go | 8 ++ level/block/black_glazed_terracotta.go | 9 ++ level/block/black_shulker_box.go | 9 ++ level/block/black_stained_glass.go | 8 ++ level/block/black_stained_glass_pane.go | 13 +++ level/block/black_terracotta.go | 8 ++ level/block/black_wall_banner.go | 9 ++ level/block/black_wool.go | 8 ++ level/block/blackstone.go | 8 ++ level/block/blackstone_slab.go | 10 ++ level/block/blackstone_stairs.go | 12 +++ level/block/blackstone_wall.go | 14 +++ level/block/blast_furnace.go | 10 ++ level/block/block.go | 28 +++++ level/block/block_states_test.go | 40 +++++++ level/block/blue_banner.go | 9 ++ level/block/blue_bed.go | 11 ++ level/block/blue_candle.go | 11 ++ level/block/blue_candle_cake.go | 9 ++ level/block/blue_carpet.go | 8 ++ level/block/blue_concrete.go | 8 ++ level/block/blue_concrete_powder.go | 8 ++ level/block/blue_glazed_terracotta.go | 9 ++ level/block/blue_ice.go | 8 ++ level/block/blue_orchid.go | 8 ++ level/block/blue_shulker_box.go | 9 ++ level/block/blue_stained_glass.go | 8 ++ level/block/blue_stained_glass_pane.go | 13 +++ level/block/blue_terracotta.go | 8 ++ level/block/blue_wall_banner.go | 9 ++ level/block/blue_wool.go | 8 ++ level/block/bone_block.go | 9 ++ level/block/bookshelf.go | 8 ++ level/block/brain_coral.go | 9 ++ level/block/brain_coral_block.go | 8 ++ level/block/brain_coral_fan.go | 9 ++ level/block/brain_coral_wall_fan.go | 10 ++ level/block/brewing_stand.go | 11 ++ level/block/brick_slab.go | 10 ++ level/block/brick_stairs.go | 12 +++ level/block/brick_wall.go | 14 +++ level/block/bricks.go | 8 ++ level/block/brown_banner.go | 9 ++ level/block/brown_bed.go | 11 ++ level/block/brown_candle.go | 11 ++ level/block/brown_candle_cake.go | 9 ++ level/block/brown_carpet.go | 8 ++ level/block/brown_concrete.go | 8 ++ level/block/brown_concrete_powder.go | 8 ++ level/block/brown_glazed_terracotta.go | 9 ++ level/block/brown_mushroom.go | 8 ++ level/block/brown_mushroom_block.go | 14 +++ level/block/brown_shulker_box.go | 9 ++ level/block/brown_stained_glass.go | 8 ++ level/block/brown_stained_glass_pane.go | 13 +++ level/block/brown_terracotta.go | 8 ++ level/block/brown_wall_banner.go | 9 ++ level/block/brown_wool.go | 8 ++ level/block/bubble_column.go | 9 ++ level/block/bubble_coral.go | 9 ++ level/block/bubble_coral_block.go | 8 ++ level/block/bubble_coral_fan.go | 9 ++ level/block/bubble_coral_wall_fan.go | 10 ++ level/block/budding_amethyst.go | 8 ++ level/block/cactus.go | 9 ++ level/block/cake.go | 9 ++ level/block/calcite.go | 8 ++ level/block/campfire.go | 12 +++ level/block/candle.go | 11 ++ level/block/candle_cake.go | 9 ++ level/block/carrots.go | 9 ++ level/block/cartography_table.go | 8 ++ level/block/carved_pumpkin.go | 9 ++ level/block/cauldron.go | 8 ++ level/block/cave_air.go | 8 ++ level/block/cave_vines.go | 10 ++ level/block/cave_vines_plant.go | 9 ++ level/block/chain.go | 10 ++ level/block/chain_command_block.go | 10 ++ level/block/chest.go | 11 ++ level/block/chipped_anvil.go | 9 ++ level/block/chiseled_deepslate.go | 8 ++ level/block/chiseled_nether_bricks.go | 8 ++ level/block/chiseled_polished_blackstone.go | 8 ++ level/block/chiseled_quartz_block.go | 8 ++ level/block/chiseled_red_sandstone.go | 8 ++ level/block/chiseled_sandstone.go | 8 ++ level/block/chiseled_stone_bricks.go | 8 ++ level/block/chorus_flower.go | 9 ++ level/block/chorus_plant.go | 14 +++ level/block/clay.go | 8 ++ level/block/coal_block.go | 8 ++ level/block/coal_ore.go | 8 ++ level/block/coarse_dirt.go | 8 ++ level/block/cobbled_deepslate.go | 8 ++ level/block/cobbled_deepslate_slab.go | 10 ++ level/block/cobbled_deepslate_stairs.go | 12 +++ level/block/cobbled_deepslate_wall.go | 14 +++ level/block/cobblestone.go | 8 ++ level/block/cobblestone_slab.go | 10 ++ level/block/cobblestone_stairs.go | 12 +++ level/block/cobblestone_wall.go | 14 +++ level/block/cobweb.go | 8 ++ level/block/cocoa.go | 10 ++ level/block/command_block.go | 10 ++ level/block/comparator.go | 11 ++ level/block/composter.go | 9 ++ level/block/conduit.go | 9 ++ level/block/copper_block.go | 8 ++ level/block/copper_ore.go | 8 ++ level/block/cornflower.go | 8 ++ level/block/cracked_deepslate_bricks.go | 8 ++ level/block/cracked_deepslate_tiles.go | 8 ++ level/block/cracked_nether_bricks.go | 8 ++ .../cracked_polished_blackstone_bricks.go | 8 ++ level/block/cracked_stone_bricks.go | 8 ++ level/block/crafting_table.go | 8 ++ level/block/creeper_head.go | 9 ++ level/block/creeper_wall_head.go | 9 ++ level/block/crimson_button.go | 11 ++ level/block/crimson_door.go | 13 +++ level/block/crimson_fence.go | 13 +++ level/block/crimson_fence_gate.go | 12 +++ level/block/crimson_fungus.go | 8 ++ level/block/crimson_hyphae.go | 9 ++ level/block/crimson_nylium.go | 8 ++ level/block/crimson_planks.go | 8 ++ level/block/crimson_pressure_plate.go | 9 ++ level/block/crimson_roots.go | 8 ++ level/block/crimson_sign.go | 10 ++ level/block/crimson_slab.go | 10 ++ level/block/crimson_stairs.go | 12 +++ level/block/crimson_stem.go | 9 ++ level/block/crimson_trapdoor.go | 13 +++ level/block/crimson_wall_sign.go | 10 ++ level/block/crying_obsidian.go | 8 ++ level/block/cut_copper.go | 8 ++ level/block/cut_copper_slab.go | 10 ++ level/block/cut_copper_stairs.go | 12 +++ level/block/cut_red_sandstone.go | 8 ++ level/block/cut_red_sandstone_slab.go | 10 ++ level/block/cut_sandstone.go | 8 ++ level/block/cut_sandstone_slab.go | 10 ++ level/block/cyan_banner.go | 9 ++ level/block/cyan_bed.go | 11 ++ level/block/cyan_candle.go | 11 ++ level/block/cyan_candle_cake.go | 9 ++ level/block/cyan_carpet.go | 8 ++ level/block/cyan_concrete.go | 8 ++ level/block/cyan_concrete_powder.go | 8 ++ level/block/cyan_glazed_terracotta.go | 9 ++ level/block/cyan_shulker_box.go | 9 ++ level/block/cyan_stained_glass.go | 8 ++ level/block/cyan_stained_glass_pane.go | 13 +++ level/block/cyan_terracotta.go | 8 ++ level/block/cyan_wall_banner.go | 9 ++ level/block/cyan_wool.go | 8 ++ level/block/damaged_anvil.go | 9 ++ level/block/dandelion.go | 8 ++ level/block/dark_oak_button.go | 11 ++ level/block/dark_oak_door.go | 13 +++ level/block/dark_oak_fence.go | 13 +++ level/block/dark_oak_fence_gate.go | 12 +++ level/block/dark_oak_leaves.go | 10 ++ level/block/dark_oak_log.go | 9 ++ level/block/dark_oak_planks.go | 8 ++ level/block/dark_oak_pressure_plate.go | 9 ++ level/block/dark_oak_sapling.go | 9 ++ level/block/dark_oak_sign.go | 10 ++ level/block/dark_oak_slab.go | 10 ++ level/block/dark_oak_stairs.go | 12 +++ level/block/dark_oak_trapdoor.go | 13 +++ level/block/dark_oak_wall_sign.go | 10 ++ level/block/dark_oak_wood.go | 9 ++ level/block/dark_prismarine.go | 8 ++ level/block/dark_prismarine_slab.go | 10 ++ level/block/dark_prismarine_stairs.go | 12 +++ level/block/daylight_detector.go | 10 ++ level/block/dead_brain_coral.go | 9 ++ level/block/dead_brain_coral_block.go | 8 ++ level/block/dead_brain_coral_fan.go | 9 ++ level/block/dead_brain_coral_wall_fan.go | 10 ++ level/block/dead_bubble_coral.go | 9 ++ level/block/dead_bubble_coral_block.go | 8 ++ level/block/dead_bubble_coral_fan.go | 9 ++ level/block/dead_bubble_coral_wall_fan.go | 10 ++ level/block/dead_bush.go | 8 ++ level/block/dead_fire_coral.go | 9 ++ level/block/dead_fire_coral_block.go | 8 ++ level/block/dead_fire_coral_fan.go | 9 ++ level/block/dead_fire_coral_wall_fan.go | 10 ++ level/block/dead_horn_coral.go | 9 ++ level/block/dead_horn_coral_block.go | 8 ++ level/block/dead_horn_coral_fan.go | 9 ++ level/block/dead_horn_coral_wall_fan.go | 10 ++ level/block/dead_tube_coral.go | 9 ++ level/block/dead_tube_coral_block.go | 8 ++ level/block/dead_tube_coral_fan.go | 9 ++ level/block/dead_tube_coral_wall_fan.go | 10 ++ level/block/deepslate.go | 9 ++ level/block/deepslate_brick_slab.go | 10 ++ level/block/deepslate_brick_stairs.go | 12 +++ level/block/deepslate_brick_wall.go | 14 +++ level/block/deepslate_bricks.go | 8 ++ level/block/deepslate_coal_ore.go | 8 ++ level/block/deepslate_copper_ore.go | 8 ++ level/block/deepslate_diamond_ore.go | 8 ++ level/block/deepslate_emerald_ore.go | 8 ++ level/block/deepslate_gold_ore.go | 8 ++ level/block/deepslate_iron_ore.go | 8 ++ level/block/deepslate_lapis_ore.go | 8 ++ level/block/deepslate_redstone_ore.go | 9 ++ level/block/deepslate_tile_slab.go | 10 ++ level/block/deepslate_tile_stairs.go | 12 +++ level/block/deepslate_tile_wall.go | 14 +++ level/block/deepslate_tiles.go | 8 ++ level/block/detector_rail.go | 11 ++ level/block/diamond_block.go | 8 ++ level/block/diamond_ore.go | 8 ++ level/block/diorite.go | 8 ++ level/block/diorite_slab.go | 10 ++ level/block/diorite_stairs.go | 12 +++ level/block/diorite_wall.go | 14 +++ level/block/dirt.go | 8 ++ level/block/dirt_path.go | 8 ++ level/block/dispenser.go | 10 ++ level/block/dragon_egg.go | 8 ++ level/block/dragon_head.go | 9 ++ level/block/dragon_wall_head.go | 9 ++ level/block/dried_kelp_block.go | 8 ++ level/block/dripstone_block.go | 8 ++ level/block/dropper.go | 10 ++ level/block/emerald_block.go | 8 ++ level/block/emerald_ore.go | 8 ++ level/block/enchanting_table.go | 8 ++ level/block/end_gateway.go | 8 ++ level/block/end_portal.go | 8 ++ level/block/end_portal_frame.go | 10 ++ level/block/end_rod.go | 9 ++ level/block/end_stone.go | 8 ++ level/block/end_stone_brick_slab.go | 10 ++ level/block/end_stone_brick_stairs.go | 12 +++ level/block/end_stone_brick_wall.go | 14 +++ level/block/end_stone_bricks.go | 8 ++ level/block/ender_chest.go | 10 ++ level/block/exposed_copper.go | 8 ++ level/block/exposed_cut_copper.go | 8 ++ level/block/exposed_cut_copper_slab.go | 10 ++ level/block/exposed_cut_copper_stairs.go | 12 +++ level/block/farmland.go | 9 ++ level/block/fern.go | 8 ++ level/block/fire.go | 14 +++ level/block/fire_coral.go | 9 ++ level/block/fire_coral_block.go | 8 ++ level/block/fire_coral_fan.go | 9 ++ level/block/fire_coral_wall_fan.go | 10 ++ level/block/fletching_table.go | 8 ++ level/block/flower_pot.go | 8 ++ level/block/flowering_azalea.go | 8 ++ level/block/flowering_azalea_leaves.go | 10 ++ level/block/frosted_ice.go | 9 ++ level/block/furnace.go | 10 ++ level/block/generator/main.go | 99 ++++++++++++++++++ level/block/gilded_blackstone.go | 8 ++ level/block/glass.go | 8 ++ level/block/glass_pane.go | 13 +++ level/block/glow_lichen.go | 15 +++ level/block/glowstone.go | 8 ++ level/block/gold_block.go | 8 ++ level/block/gold_ore.go | 8 ++ level/block/granite.go | 8 ++ level/block/granite_slab.go | 10 ++ level/block/granite_stairs.go | 12 +++ level/block/granite_wall.go | 14 +++ level/block/grass.go | 8 ++ level/block/grass_block.go | 9 ++ level/block/gravel.go | 8 ++ level/block/gray_banner.go | 9 ++ level/block/gray_bed.go | 11 ++ level/block/gray_candle.go | 11 ++ level/block/gray_candle_cake.go | 9 ++ level/block/gray_carpet.go | 8 ++ level/block/gray_concrete.go | 8 ++ level/block/gray_concrete_powder.go | 8 ++ level/block/gray_glazed_terracotta.go | 9 ++ level/block/gray_shulker_box.go | 9 ++ level/block/gray_stained_glass.go | 8 ++ level/block/gray_stained_glass_pane.go | 13 +++ level/block/gray_terracotta.go | 8 ++ level/block/gray_wall_banner.go | 9 ++ level/block/gray_wool.go | 8 ++ level/block/green_banner.go | 9 ++ level/block/green_bed.go | 11 ++ level/block/green_candle.go | 11 ++ level/block/green_candle_cake.go | 9 ++ level/block/green_carpet.go | 8 ++ level/block/green_concrete.go | 8 ++ level/block/green_concrete_powder.go | 8 ++ level/block/green_glazed_terracotta.go | 9 ++ level/block/green_shulker_box.go | 9 ++ level/block/green_stained_glass.go | 8 ++ level/block/green_stained_glass_pane.go | 13 +++ level/block/green_terracotta.go | 8 ++ level/block/green_wall_banner.go | 9 ++ level/block/green_wool.go | 8 ++ level/block/grindstone.go | 10 ++ level/block/hanging_roots.go | 9 ++ level/block/hay_block.go | 9 ++ level/block/heavy_weighted_pressure_plate.go | 9 ++ level/block/honey_block.go | 8 ++ level/block/honeycomb_block.go | 8 ++ level/block/hopper.go | 10 ++ level/block/horn_coral.go | 9 ++ level/block/horn_coral_block.go | 8 ++ level/block/horn_coral_fan.go | 9 ++ level/block/horn_coral_wall_fan.go | 10 ++ level/block/ice.go | 8 ++ level/block/infested_chiseled_stone_bricks.go | 8 ++ level/block/infested_cobblestone.go | 8 ++ level/block/infested_cracked_stone_bricks.go | 8 ++ level/block/infested_deepslate.go | 9 ++ level/block/infested_mossy_stone_bricks.go | 8 ++ level/block/infested_stone.go | 8 ++ level/block/infested_stone_bricks.go | 8 ++ level/block/iron_bars.go | 13 +++ level/block/iron_block.go | 8 ++ level/block/iron_door.go | 13 +++ level/block/iron_ore.go | 8 ++ level/block/iron_trapdoor.go | 13 +++ level/block/jack_o_lantern.go | 9 ++ level/block/jigsaw.go | 9 ++ level/block/jukebox.go | 9 ++ level/block/jungle_button.go | 11 ++ level/block/jungle_door.go | 13 +++ level/block/jungle_fence.go | 13 +++ level/block/jungle_fence_gate.go | 12 +++ level/block/jungle_leaves.go | 10 ++ level/block/jungle_log.go | 9 ++ level/block/jungle_planks.go | 8 ++ level/block/jungle_pressure_plate.go | 9 ++ level/block/jungle_sapling.go | 9 ++ level/block/jungle_sign.go | 10 ++ level/block/jungle_slab.go | 10 ++ level/block/jungle_stairs.go | 12 +++ level/block/jungle_trapdoor.go | 13 +++ level/block/jungle_wall_sign.go | 10 ++ level/block/jungle_wood.go | 9 ++ level/block/kelp.go | 9 ++ level/block/kelp_plant.go | 8 ++ level/block/ladder.go | 10 ++ level/block/lantern.go | 10 ++ level/block/lapis_block.go | 8 ++ level/block/lapis_ore.go | 8 ++ level/block/large_amethyst_bud.go | 10 ++ level/block/large_fern.go | 9 ++ level/block/lava.go | 9 ++ level/block/lava_cauldron.go | 8 ++ level/block/lectern.go | 11 ++ level/block/lever.go | 11 ++ level/block/light.go | 10 ++ level/block/light_blue_banner.go | 9 ++ level/block/light_blue_bed.go | 11 ++ level/block/light_blue_candle.go | 11 ++ level/block/light_blue_candle_cake.go | 9 ++ level/block/light_blue_carpet.go | 8 ++ level/block/light_blue_concrete.go | 8 ++ level/block/light_blue_concrete_powder.go | 8 ++ level/block/light_blue_glazed_terracotta.go | 9 ++ level/block/light_blue_shulker_box.go | 9 ++ level/block/light_blue_stained_glass.go | 8 ++ level/block/light_blue_stained_glass_pane.go | 13 +++ level/block/light_blue_terracotta.go | 8 ++ level/block/light_blue_wall_banner.go | 9 ++ level/block/light_blue_wool.go | 8 ++ level/block/light_gray_banner.go | 9 ++ level/block/light_gray_bed.go | 11 ++ level/block/light_gray_candle.go | 11 ++ level/block/light_gray_candle_cake.go | 9 ++ level/block/light_gray_carpet.go | 8 ++ level/block/light_gray_concrete.go | 8 ++ level/block/light_gray_concrete_powder.go | 8 ++ level/block/light_gray_glazed_terracotta.go | 9 ++ level/block/light_gray_shulker_box.go | 9 ++ level/block/light_gray_stained_glass.go | 8 ++ level/block/light_gray_stained_glass_pane.go | 13 +++ level/block/light_gray_terracotta.go | 8 ++ level/block/light_gray_wall_banner.go | 9 ++ level/block/light_gray_wool.go | 8 ++ level/block/light_weighted_pressure_plate.go | 9 ++ level/block/lightning_rod.go | 11 ++ level/block/lilac.go | 9 ++ level/block/lily_of_the_valley.go | 8 ++ level/block/lily_pad.go | 8 ++ level/block/lime_banner.go | 9 ++ level/block/lime_bed.go | 11 ++ level/block/lime_candle.go | 11 ++ level/block/lime_candle_cake.go | 9 ++ level/block/lime_carpet.go | 8 ++ level/block/lime_concrete.go | 8 ++ level/block/lime_concrete_powder.go | 8 ++ level/block/lime_glazed_terracotta.go | 9 ++ level/block/lime_shulker_box.go | 9 ++ level/block/lime_stained_glass.go | 8 ++ level/block/lime_stained_glass_pane.go | 13 +++ level/block/lime_terracotta.go | 8 ++ level/block/lime_wall_banner.go | 9 ++ level/block/lime_wool.go | 8 ++ level/block/lodestone.go | 8 ++ level/block/loom.go | 9 ++ level/block/magenta_banner.go | 9 ++ level/block/magenta_bed.go | 11 ++ level/block/magenta_candle.go | 11 ++ level/block/magenta_candle_cake.go | 9 ++ level/block/magenta_carpet.go | 8 ++ level/block/magenta_concrete.go | 8 ++ level/block/magenta_concrete_powder.go | 8 ++ level/block/magenta_glazed_terracotta.go | 9 ++ level/block/magenta_shulker_box.go | 9 ++ level/block/magenta_stained_glass.go | 8 ++ level/block/magenta_stained_glass_pane.go | 13 +++ level/block/magenta_terracotta.go | 8 ++ level/block/magenta_wall_banner.go | 9 ++ level/block/magenta_wool.go | 8 ++ level/block/magma_block.go | 8 ++ level/block/medium_amethyst_bud.go | 10 ++ level/block/melon.go | 8 ++ level/block/melon_stem.go | 9 ++ level/block/moss_block.go | 8 ++ level/block/moss_carpet.go | 8 ++ level/block/mossy_cobblestone.go | 8 ++ level/block/mossy_cobblestone_slab.go | 10 ++ level/block/mossy_cobblestone_stairs.go | 12 +++ level/block/mossy_cobblestone_wall.go | 14 +++ level/block/mossy_stone_brick_slab.go | 10 ++ level/block/mossy_stone_brick_stairs.go | 12 +++ level/block/mossy_stone_brick_wall.go | 14 +++ level/block/mossy_stone_bricks.go | 8 ++ level/block/moving_piston.go | 10 ++ level/block/mushroom_stem.go | 14 +++ level/block/mycelium.go | 9 ++ level/block/nether_brick_fence.go | 13 +++ level/block/nether_brick_slab.go | 10 ++ level/block/nether_brick_stairs.go | 12 +++ level/block/nether_brick_wall.go | 14 +++ level/block/nether_bricks.go | 8 ++ level/block/nether_gold_ore.go | 8 ++ level/block/nether_portal.go | 9 ++ level/block/nether_quartz_ore.go | 8 ++ level/block/nether_sprouts.go | 8 ++ level/block/nether_wart.go | 9 ++ level/block/nether_wart_block.go | 8 ++ level/block/netherite_block.go | 8 ++ level/block/netherrack.go | 8 ++ level/block/note_block.go | 11 ++ level/block/oak_button.go | 11 ++ level/block/oak_door.go | 13 +++ level/block/oak_fence.go | 13 +++ level/block/oak_fence_gate.go | 12 +++ level/block/oak_leaves.go | 10 ++ level/block/oak_log.go | 9 ++ level/block/oak_planks.go | 8 ++ level/block/oak_pressure_plate.go | 9 ++ level/block/oak_sapling.go | 9 ++ level/block/oak_sign.go | 10 ++ level/block/oak_slab.go | 10 ++ level/block/oak_stairs.go | 12 +++ level/block/oak_trapdoor.go | 13 +++ level/block/oak_wall_sign.go | 10 ++ level/block/oak_wood.go | 9 ++ level/block/observer.go | 10 ++ level/block/obsidian.go | 8 ++ level/block/orange_banner.go | 9 ++ level/block/orange_bed.go | 11 ++ level/block/orange_candle.go | 11 ++ level/block/orange_candle_cake.go | 9 ++ level/block/orange_carpet.go | 8 ++ level/block/orange_concrete.go | 8 ++ level/block/orange_concrete_powder.go | 8 ++ level/block/orange_glazed_terracotta.go | 9 ++ level/block/orange_shulker_box.go | 9 ++ level/block/orange_stained_glass.go | 8 ++ level/block/orange_stained_glass_pane.go | 13 +++ level/block/orange_terracotta.go | 8 ++ level/block/orange_tulip.go | 8 ++ level/block/orange_wall_banner.go | 9 ++ level/block/orange_wool.go | 8 ++ level/block/oxeye_daisy.go | 8 ++ level/block/oxidized_copper.go | 8 ++ level/block/oxidized_cut_copper.go | 8 ++ level/block/oxidized_cut_copper_slab.go | 10 ++ level/block/oxidized_cut_copper_stairs.go | 12 +++ level/block/packed_ice.go | 8 ++ level/block/peony.go | 9 ++ level/block/petrified_oak_slab.go | 10 ++ level/block/pink_banner.go | 9 ++ level/block/pink_bed.go | 11 ++ level/block/pink_candle.go | 11 ++ level/block/pink_candle_cake.go | 9 ++ level/block/pink_carpet.go | 8 ++ level/block/pink_concrete.go | 8 ++ level/block/pink_concrete_powder.go | 8 ++ level/block/pink_glazed_terracotta.go | 9 ++ level/block/pink_shulker_box.go | 9 ++ level/block/pink_stained_glass.go | 8 ++ level/block/pink_stained_glass_pane.go | 13 +++ level/block/pink_terracotta.go | 8 ++ level/block/pink_tulip.go | 8 ++ level/block/pink_wall_banner.go | 9 ++ level/block/pink_wool.go | 8 ++ level/block/piston.go | 10 ++ level/block/piston_head.go | 11 ++ level/block/player_head.go | 9 ++ level/block/player_wall_head.go | 9 ++ level/block/podzol.go | 9 ++ level/block/pointed_dripstone.go | 11 ++ level/block/polished_andesite.go | 8 ++ level/block/polished_andesite_slab.go | 10 ++ level/block/polished_andesite_stairs.go | 12 +++ level/block/polished_basalt.go | 9 ++ level/block/polished_blackstone.go | 8 ++ level/block/polished_blackstone_brick_slab.go | 10 ++ .../block/polished_blackstone_brick_stairs.go | 12 +++ level/block/polished_blackstone_brick_wall.go | 14 +++ level/block/polished_blackstone_bricks.go | 8 ++ level/block/polished_blackstone_button.go | 11 ++ .../polished_blackstone_pressure_plate.go | 9 ++ level/block/polished_blackstone_slab.go | 10 ++ level/block/polished_blackstone_stairs.go | 12 +++ level/block/polished_blackstone_wall.go | 14 +++ level/block/polished_deepslate.go | 8 ++ level/block/polished_deepslate_slab.go | 10 ++ level/block/polished_deepslate_stairs.go | 12 +++ level/block/polished_deepslate_wall.go | 14 +++ level/block/polished_diorite.go | 8 ++ level/block/polished_diorite_slab.go | 10 ++ level/block/polished_diorite_stairs.go | 12 +++ level/block/polished_granite.go | 8 ++ level/block/polished_granite_slab.go | 10 ++ level/block/polished_granite_stairs.go | 12 +++ level/block/poppy.go | 8 ++ level/block/potatoes.go | 9 ++ level/block/potted_acacia_sapling.go | 8 ++ level/block/potted_allium.go | 8 ++ level/block/potted_azalea_bush.go | 8 ++ level/block/potted_azure_bluet.go | 8 ++ level/block/potted_bamboo.go | 8 ++ level/block/potted_birch_sapling.go | 8 ++ level/block/potted_blue_orchid.go | 8 ++ level/block/potted_brown_mushroom.go | 8 ++ level/block/potted_cactus.go | 8 ++ level/block/potted_cornflower.go | 8 ++ level/block/potted_crimson_fungus.go | 8 ++ level/block/potted_crimson_roots.go | 8 ++ level/block/potted_dandelion.go | 8 ++ level/block/potted_dark_oak_sapling.go | 8 ++ level/block/potted_dead_bush.go | 8 ++ level/block/potted_fern.go | 8 ++ level/block/potted_flowering_azalea_bush.go | 8 ++ level/block/potted_jungle_sapling.go | 8 ++ level/block/potted_lily_of_the_valley.go | 8 ++ level/block/potted_oak_sapling.go | 8 ++ level/block/potted_orange_tulip.go | 8 ++ level/block/potted_oxeye_daisy.go | 8 ++ level/block/potted_pink_tulip.go | 8 ++ level/block/potted_poppy.go | 8 ++ level/block/potted_red_mushroom.go | 8 ++ level/block/potted_red_tulip.go | 8 ++ level/block/potted_spruce_sapling.go | 8 ++ level/block/potted_warped_fungus.go | 8 ++ level/block/potted_warped_roots.go | 8 ++ level/block/potted_white_tulip.go | 8 ++ level/block/potted_wither_rose.go | 8 ++ level/block/powder_snow.go | 8 ++ level/block/powder_snow_cauldron.go | 9 ++ level/block/powered_rail.go | 11 ++ level/block/prismarine.go | 8 ++ level/block/prismarine_brick_slab.go | 10 ++ level/block/prismarine_brick_stairs.go | 12 +++ level/block/prismarine_bricks.go | 8 ++ level/block/prismarine_slab.go | 10 ++ level/block/prismarine_stairs.go | 12 +++ level/block/prismarine_wall.go | 14 +++ level/block/pumpkin.go | 8 ++ level/block/pumpkin_stem.go | 9 ++ level/block/purple_banner.go | 9 ++ level/block/purple_bed.go | 11 ++ level/block/purple_candle.go | 11 ++ level/block/purple_candle_cake.go | 9 ++ level/block/purple_carpet.go | 8 ++ level/block/purple_concrete.go | 8 ++ level/block/purple_concrete_powder.go | 8 ++ level/block/purple_glazed_terracotta.go | 9 ++ level/block/purple_shulker_box.go | 9 ++ level/block/purple_stained_glass.go | 8 ++ level/block/purple_stained_glass_pane.go | 13 +++ level/block/purple_terracotta.go | 8 ++ level/block/purple_wall_banner.go | 9 ++ level/block/purple_wool.go | 8 ++ level/block/purpur_block.go | 8 ++ level/block/purpur_pillar.go | 9 ++ level/block/purpur_slab.go | 10 ++ level/block/purpur_stairs.go | 12 +++ level/block/quartz_block.go | 8 ++ level/block/quartz_bricks.go | 8 ++ level/block/quartz_pillar.go | 9 ++ level/block/quartz_slab.go | 10 ++ level/block/quartz_stairs.go | 12 +++ level/block/rail.go | 10 ++ level/block/raw_copper_block.go | 8 ++ level/block/raw_gold_block.go | 8 ++ level/block/raw_iron_block.go | 8 ++ level/block/red_banner.go | 9 ++ level/block/red_bed.go | 11 ++ level/block/red_candle.go | 11 ++ level/block/red_candle_cake.go | 9 ++ level/block/red_carpet.go | 8 ++ level/block/red_concrete.go | 8 ++ level/block/red_concrete_powder.go | 8 ++ level/block/red_glazed_terracotta.go | 9 ++ level/block/red_mushroom.go | 8 ++ level/block/red_mushroom_block.go | 14 +++ level/block/red_nether_brick_slab.go | 10 ++ level/block/red_nether_brick_stairs.go | 12 +++ level/block/red_nether_brick_wall.go | 14 +++ level/block/red_nether_bricks.go | 8 ++ level/block/red_sand.go | 8 ++ level/block/red_sandstone.go | 8 ++ level/block/red_sandstone_slab.go | 10 ++ level/block/red_sandstone_stairs.go | 12 +++ level/block/red_sandstone_wall.go | 14 +++ level/block/red_shulker_box.go | 9 ++ level/block/red_stained_glass.go | 8 ++ level/block/red_stained_glass_pane.go | 13 +++ level/block/red_terracotta.go | 8 ++ level/block/red_tulip.go | 8 ++ level/block/red_wall_banner.go | 9 ++ level/block/red_wool.go | 8 ++ level/block/redstone_block.go | 8 ++ level/block/redstone_lamp.go | 9 ++ level/block/redstone_ore.go | 9 ++ level/block/redstone_torch.go | 9 ++ level/block/redstone_wall_torch.go | 10 ++ level/block/redstone_wire.go | 13 +++ level/block/repeater.go | 12 +++ level/block/repeating_command_block.go | 10 ++ level/block/respawn_anchor.go | 9 ++ level/block/rooted_dirt.go | 8 ++ level/block/rose_bush.go | 9 ++ level/block/sand.go | 8 ++ level/block/sandstone.go | 8 ++ level/block/sandstone_slab.go | 10 ++ level/block/sandstone_stairs.go | 12 +++ level/block/sandstone_wall.go | 14 +++ level/block/scaffolding.go | 11 ++ level/block/sculk_sensor.go | 11 ++ level/block/sea_lantern.go | 8 ++ level/block/sea_pickle.go | 10 ++ level/block/seagrass.go | 8 ++ level/block/shroomlight.go | 8 ++ level/block/shulker_box.go | 9 ++ level/block/skeleton_skull.go | 9 ++ level/block/skeleton_wall_skull.go | 9 ++ level/block/slime_block.go | 8 ++ level/block/small_amethyst_bud.go | 10 ++ level/block/small_dripleaf.go | 11 ++ level/block/smithing_table.go | 8 ++ level/block/smoker.go | 10 ++ level/block/smooth_basalt.go | 8 ++ level/block/smooth_quartz.go | 8 ++ level/block/smooth_quartz_slab.go | 10 ++ level/block/smooth_quartz_stairs.go | 12 +++ level/block/smooth_red_sandstone.go | 8 ++ level/block/smooth_red_sandstone_slab.go | 10 ++ level/block/smooth_red_sandstone_stairs.go | 12 +++ level/block/smooth_sandstone.go | 8 ++ level/block/smooth_sandstone_slab.go | 10 ++ level/block/smooth_sandstone_stairs.go | 12 +++ level/block/smooth_stone.go | 8 ++ level/block/smooth_stone_slab.go | 10 ++ level/block/snow.go | 9 ++ level/block/snow_block.go | 8 ++ level/block/soul_campfire.go | 12 +++ level/block/soul_fire.go | 8 ++ level/block/soul_lantern.go | 10 ++ level/block/soul_sand.go | 8 ++ level/block/soul_soil.go | 8 ++ level/block/soul_torch.go | 8 ++ level/block/soul_wall_torch.go | 9 ++ level/block/spawner.go | 8 ++ level/block/sponge.go | 8 ++ level/block/spore_blossom.go | 8 ++ level/block/spruce_button.go | 11 ++ level/block/spruce_door.go | 13 +++ level/block/spruce_fence.go | 13 +++ level/block/spruce_fence_gate.go | 12 +++ level/block/spruce_leaves.go | 10 ++ level/block/spruce_log.go | 9 ++ level/block/spruce_planks.go | 8 ++ level/block/spruce_pressure_plate.go | 9 ++ level/block/spruce_sapling.go | 9 ++ level/block/spruce_sign.go | 10 ++ level/block/spruce_slab.go | 10 ++ level/block/spruce_stairs.go | 12 +++ level/block/spruce_trapdoor.go | 13 +++ level/block/spruce_wall_sign.go | 10 ++ level/block/spruce_wood.go | 9 ++ level/block/sticky_piston.go | 10 ++ level/block/stone.go | 8 ++ level/block/stone_brick_slab.go | 10 ++ level/block/stone_brick_stairs.go | 12 +++ level/block/stone_brick_wall.go | 14 +++ level/block/stone_bricks.go | 8 ++ level/block/stone_button.go | 11 ++ level/block/stone_pressure_plate.go | 9 ++ level/block/stone_slab.go | 10 ++ level/block/stone_stairs.go | 12 +++ level/block/stonecutter.go | 9 ++ level/block/stripped_acacia_log.go | 9 ++ level/block/stripped_acacia_wood.go | 9 ++ level/block/stripped_birch_log.go | 9 ++ level/block/stripped_birch_wood.go | 9 ++ level/block/stripped_crimson_hyphae.go | 9 ++ level/block/stripped_crimson_stem.go | 9 ++ level/block/stripped_dark_oak_log.go | 9 ++ level/block/stripped_dark_oak_wood.go | 9 ++ level/block/stripped_jungle_log.go | 9 ++ level/block/stripped_jungle_wood.go | 9 ++ level/block/stripped_oak_log.go | 9 ++ level/block/stripped_oak_wood.go | 9 ++ level/block/stripped_spruce_log.go | 9 ++ level/block/stripped_spruce_wood.go | 9 ++ level/block/stripped_warped_hyphae.go | 9 ++ level/block/stripped_warped_stem.go | 9 ++ level/block/structure_block.go | 9 ++ level/block/structure_void.go | 8 ++ level/block/sugar_cane.go | 9 ++ level/block/sunflower.go | 9 ++ level/block/sweet_berry_bush.go | 9 ++ level/block/tall_grass.go | 9 ++ level/block/tall_seagrass.go | 9 ++ level/block/target.go | 9 ++ level/block/terracotta.go | 8 ++ level/block/testdata/block_states.nbt | Bin 0 -> 2365168 bytes level/block/tinted_glass.go | 8 ++ level/block/tnt.go | 9 ++ level/block/torch.go | 8 ++ level/block/trapped_chest.go | 11 ++ level/block/tripwire.go | 15 +++ level/block/tripwire_hook.go | 11 ++ level/block/tube_coral.go | 9 ++ level/block/tube_coral_block.go | 8 ++ level/block/tube_coral_fan.go | 9 ++ level/block/tube_coral_wall_fan.go | 10 ++ level/block/tuff.go | 8 ++ level/block/turtle_egg.go | 10 ++ level/block/twisting_vines.go | 9 ++ level/block/twisting_vines_plant.go | 8 ++ level/block/vine.go | 13 +++ level/block/void_air.go | 8 ++ level/block/wall_torch.go | 9 ++ level/block/warped_button.go | 11 ++ level/block/warped_door.go | 13 +++ level/block/warped_fence.go | 13 +++ level/block/warped_fence_gate.go | 12 +++ level/block/warped_fungus.go | 8 ++ level/block/warped_hyphae.go | 9 ++ level/block/warped_nylium.go | 8 ++ level/block/warped_planks.go | 8 ++ level/block/warped_pressure_plate.go | 9 ++ level/block/warped_roots.go | 8 ++ level/block/warped_sign.go | 10 ++ level/block/warped_slab.go | 10 ++ level/block/warped_stairs.go | 12 +++ level/block/warped_stem.go | 9 ++ level/block/warped_trapdoor.go | 13 +++ level/block/warped_wall_sign.go | 10 ++ level/block/warped_wart_block.go | 8 ++ level/block/water.go | 9 ++ level/block/water_cauldron.go | 9 ++ level/block/waxed_copper_block.go | 8 ++ level/block/waxed_cut_copper.go | 8 ++ level/block/waxed_cut_copper_slab.go | 10 ++ level/block/waxed_cut_copper_stairs.go | 12 +++ level/block/waxed_exposed_copper.go | 8 ++ level/block/waxed_exposed_cut_copper.go | 8 ++ level/block/waxed_exposed_cut_copper_slab.go | 10 ++ .../block/waxed_exposed_cut_copper_stairs.go | 12 +++ level/block/waxed_oxidized_copper.go | 8 ++ level/block/waxed_oxidized_cut_copper.go | 8 ++ level/block/waxed_oxidized_cut_copper_slab.go | 10 ++ .../block/waxed_oxidized_cut_copper_stairs.go | 12 +++ level/block/waxed_weathered_copper.go | 8 ++ level/block/waxed_weathered_cut_copper.go | 8 ++ .../block/waxed_weathered_cut_copper_slab.go | 10 ++ .../waxed_weathered_cut_copper_stairs.go | 12 +++ level/block/weathered_copper.go | 8 ++ level/block/weathered_cut_copper.go | 8 ++ level/block/weathered_cut_copper_slab.go | 10 ++ level/block/weathered_cut_copper_stairs.go | 12 +++ level/block/weeping_vines.go | 9 ++ level/block/weeping_vines_plant.go | 8 ++ level/block/wet_sponge.go | 8 ++ level/block/wheat.go | 9 ++ level/block/white_banner.go | 9 ++ level/block/white_bed.go | 11 ++ level/block/white_candle.go | 11 ++ level/block/white_candle_cake.go | 9 ++ level/block/white_carpet.go | 8 ++ level/block/white_concrete.go | 8 ++ level/block/white_concrete_powder.go | 8 ++ level/block/white_glazed_terracotta.go | 9 ++ level/block/white_shulker_box.go | 9 ++ level/block/white_stained_glass.go | 8 ++ level/block/white_stained_glass_pane.go | 13 +++ level/block/white_terracotta.go | 8 ++ level/block/white_tulip.go | 8 ++ level/block/white_wall_banner.go | 9 ++ level/block/white_wool.go | 8 ++ level/block/wither_rose.go | 8 ++ level/block/wither_skeleton_skull.go | 9 ++ level/block/wither_skeleton_wall_skull.go | 9 ++ level/block/yellow_banner.go | 9 ++ level/block/yellow_bed.go | 11 ++ level/block/yellow_candle.go | 11 ++ level/block/yellow_candle_cake.go | 9 ++ level/block/yellow_carpet.go | 8 ++ level/block/yellow_concrete.go | 8 ++ level/block/yellow_concrete_powder.go | 8 ++ level/block/yellow_glazed_terracotta.go | 9 ++ level/block/yellow_shulker_box.go | 9 ++ level/block/yellow_stained_glass.go | 8 ++ level/block/yellow_stained_glass_pane.go | 13 +++ level/block/yellow_terracotta.go | 8 ++ level/block/yellow_wall_banner.go | 9 ++ level/block/yellow_wool.go | 8 ++ level/block/zombie_head.go | 9 ++ level/block/zombie_wall_head.go | 9 ++ 902 files changed, 8657 insertions(+) create mode 100644 level/block/acacia_button.go create mode 100644 level/block/acacia_door.go create mode 100644 level/block/acacia_fence.go create mode 100644 level/block/acacia_fence_gate.go create mode 100644 level/block/acacia_leaves.go create mode 100644 level/block/acacia_log.go create mode 100644 level/block/acacia_planks.go create mode 100644 level/block/acacia_pressure_plate.go create mode 100644 level/block/acacia_sapling.go create mode 100644 level/block/acacia_sign.go create mode 100644 level/block/acacia_slab.go create mode 100644 level/block/acacia_stairs.go create mode 100644 level/block/acacia_trapdoor.go create mode 100644 level/block/acacia_wall_sign.go create mode 100644 level/block/acacia_wood.go create mode 100644 level/block/activator_rail.go create mode 100644 level/block/air.go create mode 100644 level/block/allium.go create mode 100644 level/block/amethyst_block.go create mode 100644 level/block/amethyst_cluster.go create mode 100644 level/block/ancient_debris.go create mode 100644 level/block/andesite.go create mode 100644 level/block/andesite_slab.go create mode 100644 level/block/andesite_stairs.go create mode 100644 level/block/andesite_wall.go create mode 100644 level/block/anvil.go create mode 100644 level/block/attached_melon_stem.go create mode 100644 level/block/attached_pumpkin_stem.go create mode 100644 level/block/azalea.go create mode 100644 level/block/azalea_leaves.go create mode 100644 level/block/azure_bluet.go create mode 100644 level/block/bamboo.go create mode 100644 level/block/bamboo_sapling.go create mode 100644 level/block/barrel.go create mode 100644 level/block/barrier.go create mode 100644 level/block/basalt.go create mode 100644 level/block/beacon.go create mode 100644 level/block/bedrock.go create mode 100644 level/block/bee_nest.go create mode 100644 level/block/beehive.go create mode 100644 level/block/beetroots.go create mode 100644 level/block/bell.go create mode 100644 level/block/big_dripleaf.go create mode 100644 level/block/big_dripleaf_stem.go create mode 100644 level/block/birch_button.go create mode 100644 level/block/birch_door.go create mode 100644 level/block/birch_fence.go create mode 100644 level/block/birch_fence_gate.go create mode 100644 level/block/birch_leaves.go create mode 100644 level/block/birch_log.go create mode 100644 level/block/birch_planks.go create mode 100644 level/block/birch_pressure_plate.go create mode 100644 level/block/birch_sapling.go create mode 100644 level/block/birch_sign.go create mode 100644 level/block/birch_slab.go create mode 100644 level/block/birch_stairs.go create mode 100644 level/block/birch_trapdoor.go create mode 100644 level/block/birch_wall_sign.go create mode 100644 level/block/birch_wood.go create mode 100644 level/block/black_banner.go create mode 100644 level/block/black_bed.go create mode 100644 level/block/black_candle.go create mode 100644 level/block/black_candle_cake.go create mode 100644 level/block/black_carpet.go create mode 100644 level/block/black_concrete.go create mode 100644 level/block/black_concrete_powder.go create mode 100644 level/block/black_glazed_terracotta.go create mode 100644 level/block/black_shulker_box.go create mode 100644 level/block/black_stained_glass.go create mode 100644 level/block/black_stained_glass_pane.go create mode 100644 level/block/black_terracotta.go create mode 100644 level/block/black_wall_banner.go create mode 100644 level/block/black_wool.go create mode 100644 level/block/blackstone.go create mode 100644 level/block/blackstone_slab.go create mode 100644 level/block/blackstone_stairs.go create mode 100644 level/block/blackstone_wall.go create mode 100644 level/block/blast_furnace.go create mode 100644 level/block/block.go create mode 100644 level/block/block_states_test.go create mode 100644 level/block/blue_banner.go create mode 100644 level/block/blue_bed.go create mode 100644 level/block/blue_candle.go create mode 100644 level/block/blue_candle_cake.go create mode 100644 level/block/blue_carpet.go create mode 100644 level/block/blue_concrete.go create mode 100644 level/block/blue_concrete_powder.go create mode 100644 level/block/blue_glazed_terracotta.go create mode 100644 level/block/blue_ice.go create mode 100644 level/block/blue_orchid.go create mode 100644 level/block/blue_shulker_box.go create mode 100644 level/block/blue_stained_glass.go create mode 100644 level/block/blue_stained_glass_pane.go create mode 100644 level/block/blue_terracotta.go create mode 100644 level/block/blue_wall_banner.go create mode 100644 level/block/blue_wool.go create mode 100644 level/block/bone_block.go create mode 100644 level/block/bookshelf.go create mode 100644 level/block/brain_coral.go create mode 100644 level/block/brain_coral_block.go create mode 100644 level/block/brain_coral_fan.go create mode 100644 level/block/brain_coral_wall_fan.go create mode 100644 level/block/brewing_stand.go create mode 100644 level/block/brick_slab.go create mode 100644 level/block/brick_stairs.go create mode 100644 level/block/brick_wall.go create mode 100644 level/block/bricks.go create mode 100644 level/block/brown_banner.go create mode 100644 level/block/brown_bed.go create mode 100644 level/block/brown_candle.go create mode 100644 level/block/brown_candle_cake.go create mode 100644 level/block/brown_carpet.go create mode 100644 level/block/brown_concrete.go create mode 100644 level/block/brown_concrete_powder.go create mode 100644 level/block/brown_glazed_terracotta.go create mode 100644 level/block/brown_mushroom.go create mode 100644 level/block/brown_mushroom_block.go create mode 100644 level/block/brown_shulker_box.go create mode 100644 level/block/brown_stained_glass.go create mode 100644 level/block/brown_stained_glass_pane.go create mode 100644 level/block/brown_terracotta.go create mode 100644 level/block/brown_wall_banner.go create mode 100644 level/block/brown_wool.go create mode 100644 level/block/bubble_column.go create mode 100644 level/block/bubble_coral.go create mode 100644 level/block/bubble_coral_block.go create mode 100644 level/block/bubble_coral_fan.go create mode 100644 level/block/bubble_coral_wall_fan.go create mode 100644 level/block/budding_amethyst.go create mode 100644 level/block/cactus.go create mode 100644 level/block/cake.go create mode 100644 level/block/calcite.go create mode 100644 level/block/campfire.go create mode 100644 level/block/candle.go create mode 100644 level/block/candle_cake.go create mode 100644 level/block/carrots.go create mode 100644 level/block/cartography_table.go create mode 100644 level/block/carved_pumpkin.go create mode 100644 level/block/cauldron.go create mode 100644 level/block/cave_air.go create mode 100644 level/block/cave_vines.go create mode 100644 level/block/cave_vines_plant.go create mode 100644 level/block/chain.go create mode 100644 level/block/chain_command_block.go create mode 100644 level/block/chest.go create mode 100644 level/block/chipped_anvil.go create mode 100644 level/block/chiseled_deepslate.go create mode 100644 level/block/chiseled_nether_bricks.go create mode 100644 level/block/chiseled_polished_blackstone.go create mode 100644 level/block/chiseled_quartz_block.go create mode 100644 level/block/chiseled_red_sandstone.go create mode 100644 level/block/chiseled_sandstone.go create mode 100644 level/block/chiseled_stone_bricks.go create mode 100644 level/block/chorus_flower.go create mode 100644 level/block/chorus_plant.go create mode 100644 level/block/clay.go create mode 100644 level/block/coal_block.go create mode 100644 level/block/coal_ore.go create mode 100644 level/block/coarse_dirt.go create mode 100644 level/block/cobbled_deepslate.go create mode 100644 level/block/cobbled_deepslate_slab.go create mode 100644 level/block/cobbled_deepslate_stairs.go create mode 100644 level/block/cobbled_deepslate_wall.go create mode 100644 level/block/cobblestone.go create mode 100644 level/block/cobblestone_slab.go create mode 100644 level/block/cobblestone_stairs.go create mode 100644 level/block/cobblestone_wall.go create mode 100644 level/block/cobweb.go create mode 100644 level/block/cocoa.go create mode 100644 level/block/command_block.go create mode 100644 level/block/comparator.go create mode 100644 level/block/composter.go create mode 100644 level/block/conduit.go create mode 100644 level/block/copper_block.go create mode 100644 level/block/copper_ore.go create mode 100644 level/block/cornflower.go create mode 100644 level/block/cracked_deepslate_bricks.go create mode 100644 level/block/cracked_deepslate_tiles.go create mode 100644 level/block/cracked_nether_bricks.go create mode 100644 level/block/cracked_polished_blackstone_bricks.go create mode 100644 level/block/cracked_stone_bricks.go create mode 100644 level/block/crafting_table.go create mode 100644 level/block/creeper_head.go create mode 100644 level/block/creeper_wall_head.go create mode 100644 level/block/crimson_button.go create mode 100644 level/block/crimson_door.go create mode 100644 level/block/crimson_fence.go create mode 100644 level/block/crimson_fence_gate.go create mode 100644 level/block/crimson_fungus.go create mode 100644 level/block/crimson_hyphae.go create mode 100644 level/block/crimson_nylium.go create mode 100644 level/block/crimson_planks.go create mode 100644 level/block/crimson_pressure_plate.go create mode 100644 level/block/crimson_roots.go create mode 100644 level/block/crimson_sign.go create mode 100644 level/block/crimson_slab.go create mode 100644 level/block/crimson_stairs.go create mode 100644 level/block/crimson_stem.go create mode 100644 level/block/crimson_trapdoor.go create mode 100644 level/block/crimson_wall_sign.go create mode 100644 level/block/crying_obsidian.go create mode 100644 level/block/cut_copper.go create mode 100644 level/block/cut_copper_slab.go create mode 100644 level/block/cut_copper_stairs.go create mode 100644 level/block/cut_red_sandstone.go create mode 100644 level/block/cut_red_sandstone_slab.go create mode 100644 level/block/cut_sandstone.go create mode 100644 level/block/cut_sandstone_slab.go create mode 100644 level/block/cyan_banner.go create mode 100644 level/block/cyan_bed.go create mode 100644 level/block/cyan_candle.go create mode 100644 level/block/cyan_candle_cake.go create mode 100644 level/block/cyan_carpet.go create mode 100644 level/block/cyan_concrete.go create mode 100644 level/block/cyan_concrete_powder.go create mode 100644 level/block/cyan_glazed_terracotta.go create mode 100644 level/block/cyan_shulker_box.go create mode 100644 level/block/cyan_stained_glass.go create mode 100644 level/block/cyan_stained_glass_pane.go create mode 100644 level/block/cyan_terracotta.go create mode 100644 level/block/cyan_wall_banner.go create mode 100644 level/block/cyan_wool.go create mode 100644 level/block/damaged_anvil.go create mode 100644 level/block/dandelion.go create mode 100644 level/block/dark_oak_button.go create mode 100644 level/block/dark_oak_door.go create mode 100644 level/block/dark_oak_fence.go create mode 100644 level/block/dark_oak_fence_gate.go create mode 100644 level/block/dark_oak_leaves.go create mode 100644 level/block/dark_oak_log.go create mode 100644 level/block/dark_oak_planks.go create mode 100644 level/block/dark_oak_pressure_plate.go create mode 100644 level/block/dark_oak_sapling.go create mode 100644 level/block/dark_oak_sign.go create mode 100644 level/block/dark_oak_slab.go create mode 100644 level/block/dark_oak_stairs.go create mode 100644 level/block/dark_oak_trapdoor.go create mode 100644 level/block/dark_oak_wall_sign.go create mode 100644 level/block/dark_oak_wood.go create mode 100644 level/block/dark_prismarine.go create mode 100644 level/block/dark_prismarine_slab.go create mode 100644 level/block/dark_prismarine_stairs.go create mode 100644 level/block/daylight_detector.go create mode 100644 level/block/dead_brain_coral.go create mode 100644 level/block/dead_brain_coral_block.go create mode 100644 level/block/dead_brain_coral_fan.go create mode 100644 level/block/dead_brain_coral_wall_fan.go create mode 100644 level/block/dead_bubble_coral.go create mode 100644 level/block/dead_bubble_coral_block.go create mode 100644 level/block/dead_bubble_coral_fan.go create mode 100644 level/block/dead_bubble_coral_wall_fan.go create mode 100644 level/block/dead_bush.go create mode 100644 level/block/dead_fire_coral.go create mode 100644 level/block/dead_fire_coral_block.go create mode 100644 level/block/dead_fire_coral_fan.go create mode 100644 level/block/dead_fire_coral_wall_fan.go create mode 100644 level/block/dead_horn_coral.go create mode 100644 level/block/dead_horn_coral_block.go create mode 100644 level/block/dead_horn_coral_fan.go create mode 100644 level/block/dead_horn_coral_wall_fan.go create mode 100644 level/block/dead_tube_coral.go create mode 100644 level/block/dead_tube_coral_block.go create mode 100644 level/block/dead_tube_coral_fan.go create mode 100644 level/block/dead_tube_coral_wall_fan.go create mode 100644 level/block/deepslate.go create mode 100644 level/block/deepslate_brick_slab.go create mode 100644 level/block/deepslate_brick_stairs.go create mode 100644 level/block/deepslate_brick_wall.go create mode 100644 level/block/deepslate_bricks.go create mode 100644 level/block/deepslate_coal_ore.go create mode 100644 level/block/deepslate_copper_ore.go create mode 100644 level/block/deepslate_diamond_ore.go create mode 100644 level/block/deepslate_emerald_ore.go create mode 100644 level/block/deepslate_gold_ore.go create mode 100644 level/block/deepslate_iron_ore.go create mode 100644 level/block/deepslate_lapis_ore.go create mode 100644 level/block/deepslate_redstone_ore.go create mode 100644 level/block/deepslate_tile_slab.go create mode 100644 level/block/deepslate_tile_stairs.go create mode 100644 level/block/deepslate_tile_wall.go create mode 100644 level/block/deepslate_tiles.go create mode 100644 level/block/detector_rail.go create mode 100644 level/block/diamond_block.go create mode 100644 level/block/diamond_ore.go create mode 100644 level/block/diorite.go create mode 100644 level/block/diorite_slab.go create mode 100644 level/block/diorite_stairs.go create mode 100644 level/block/diorite_wall.go create mode 100644 level/block/dirt.go create mode 100644 level/block/dirt_path.go create mode 100644 level/block/dispenser.go create mode 100644 level/block/dragon_egg.go create mode 100644 level/block/dragon_head.go create mode 100644 level/block/dragon_wall_head.go create mode 100644 level/block/dried_kelp_block.go create mode 100644 level/block/dripstone_block.go create mode 100644 level/block/dropper.go create mode 100644 level/block/emerald_block.go create mode 100644 level/block/emerald_ore.go create mode 100644 level/block/enchanting_table.go create mode 100644 level/block/end_gateway.go create mode 100644 level/block/end_portal.go create mode 100644 level/block/end_portal_frame.go create mode 100644 level/block/end_rod.go create mode 100644 level/block/end_stone.go create mode 100644 level/block/end_stone_brick_slab.go create mode 100644 level/block/end_stone_brick_stairs.go create mode 100644 level/block/end_stone_brick_wall.go create mode 100644 level/block/end_stone_bricks.go create mode 100644 level/block/ender_chest.go create mode 100644 level/block/exposed_copper.go create mode 100644 level/block/exposed_cut_copper.go create mode 100644 level/block/exposed_cut_copper_slab.go create mode 100644 level/block/exposed_cut_copper_stairs.go create mode 100644 level/block/farmland.go create mode 100644 level/block/fern.go create mode 100644 level/block/fire.go create mode 100644 level/block/fire_coral.go create mode 100644 level/block/fire_coral_block.go create mode 100644 level/block/fire_coral_fan.go create mode 100644 level/block/fire_coral_wall_fan.go create mode 100644 level/block/fletching_table.go create mode 100644 level/block/flower_pot.go create mode 100644 level/block/flowering_azalea.go create mode 100644 level/block/flowering_azalea_leaves.go create mode 100644 level/block/frosted_ice.go create mode 100644 level/block/furnace.go create mode 100644 level/block/generator/main.go create mode 100644 level/block/gilded_blackstone.go create mode 100644 level/block/glass.go create mode 100644 level/block/glass_pane.go create mode 100644 level/block/glow_lichen.go create mode 100644 level/block/glowstone.go create mode 100644 level/block/gold_block.go create mode 100644 level/block/gold_ore.go create mode 100644 level/block/granite.go create mode 100644 level/block/granite_slab.go create mode 100644 level/block/granite_stairs.go create mode 100644 level/block/granite_wall.go create mode 100644 level/block/grass.go create mode 100644 level/block/grass_block.go create mode 100644 level/block/gravel.go create mode 100644 level/block/gray_banner.go create mode 100644 level/block/gray_bed.go create mode 100644 level/block/gray_candle.go create mode 100644 level/block/gray_candle_cake.go create mode 100644 level/block/gray_carpet.go create mode 100644 level/block/gray_concrete.go create mode 100644 level/block/gray_concrete_powder.go create mode 100644 level/block/gray_glazed_terracotta.go create mode 100644 level/block/gray_shulker_box.go create mode 100644 level/block/gray_stained_glass.go create mode 100644 level/block/gray_stained_glass_pane.go create mode 100644 level/block/gray_terracotta.go create mode 100644 level/block/gray_wall_banner.go create mode 100644 level/block/gray_wool.go create mode 100644 level/block/green_banner.go create mode 100644 level/block/green_bed.go create mode 100644 level/block/green_candle.go create mode 100644 level/block/green_candle_cake.go create mode 100644 level/block/green_carpet.go create mode 100644 level/block/green_concrete.go create mode 100644 level/block/green_concrete_powder.go create mode 100644 level/block/green_glazed_terracotta.go create mode 100644 level/block/green_shulker_box.go create mode 100644 level/block/green_stained_glass.go create mode 100644 level/block/green_stained_glass_pane.go create mode 100644 level/block/green_terracotta.go create mode 100644 level/block/green_wall_banner.go create mode 100644 level/block/green_wool.go create mode 100644 level/block/grindstone.go create mode 100644 level/block/hanging_roots.go create mode 100644 level/block/hay_block.go create mode 100644 level/block/heavy_weighted_pressure_plate.go create mode 100644 level/block/honey_block.go create mode 100644 level/block/honeycomb_block.go create mode 100644 level/block/hopper.go create mode 100644 level/block/horn_coral.go create mode 100644 level/block/horn_coral_block.go create mode 100644 level/block/horn_coral_fan.go create mode 100644 level/block/horn_coral_wall_fan.go create mode 100644 level/block/ice.go create mode 100644 level/block/infested_chiseled_stone_bricks.go create mode 100644 level/block/infested_cobblestone.go create mode 100644 level/block/infested_cracked_stone_bricks.go create mode 100644 level/block/infested_deepslate.go create mode 100644 level/block/infested_mossy_stone_bricks.go create mode 100644 level/block/infested_stone.go create mode 100644 level/block/infested_stone_bricks.go create mode 100644 level/block/iron_bars.go create mode 100644 level/block/iron_block.go create mode 100644 level/block/iron_door.go create mode 100644 level/block/iron_ore.go create mode 100644 level/block/iron_trapdoor.go create mode 100644 level/block/jack_o_lantern.go create mode 100644 level/block/jigsaw.go create mode 100644 level/block/jukebox.go create mode 100644 level/block/jungle_button.go create mode 100644 level/block/jungle_door.go create mode 100644 level/block/jungle_fence.go create mode 100644 level/block/jungle_fence_gate.go create mode 100644 level/block/jungle_leaves.go create mode 100644 level/block/jungle_log.go create mode 100644 level/block/jungle_planks.go create mode 100644 level/block/jungle_pressure_plate.go create mode 100644 level/block/jungle_sapling.go create mode 100644 level/block/jungle_sign.go create mode 100644 level/block/jungle_slab.go create mode 100644 level/block/jungle_stairs.go create mode 100644 level/block/jungle_trapdoor.go create mode 100644 level/block/jungle_wall_sign.go create mode 100644 level/block/jungle_wood.go create mode 100644 level/block/kelp.go create mode 100644 level/block/kelp_plant.go create mode 100644 level/block/ladder.go create mode 100644 level/block/lantern.go create mode 100644 level/block/lapis_block.go create mode 100644 level/block/lapis_ore.go create mode 100644 level/block/large_amethyst_bud.go create mode 100644 level/block/large_fern.go create mode 100644 level/block/lava.go create mode 100644 level/block/lava_cauldron.go create mode 100644 level/block/lectern.go create mode 100644 level/block/lever.go create mode 100644 level/block/light.go create mode 100644 level/block/light_blue_banner.go create mode 100644 level/block/light_blue_bed.go create mode 100644 level/block/light_blue_candle.go create mode 100644 level/block/light_blue_candle_cake.go create mode 100644 level/block/light_blue_carpet.go create mode 100644 level/block/light_blue_concrete.go create mode 100644 level/block/light_blue_concrete_powder.go create mode 100644 level/block/light_blue_glazed_terracotta.go create mode 100644 level/block/light_blue_shulker_box.go create mode 100644 level/block/light_blue_stained_glass.go create mode 100644 level/block/light_blue_stained_glass_pane.go create mode 100644 level/block/light_blue_terracotta.go create mode 100644 level/block/light_blue_wall_banner.go create mode 100644 level/block/light_blue_wool.go create mode 100644 level/block/light_gray_banner.go create mode 100644 level/block/light_gray_bed.go create mode 100644 level/block/light_gray_candle.go create mode 100644 level/block/light_gray_candle_cake.go create mode 100644 level/block/light_gray_carpet.go create mode 100644 level/block/light_gray_concrete.go create mode 100644 level/block/light_gray_concrete_powder.go create mode 100644 level/block/light_gray_glazed_terracotta.go create mode 100644 level/block/light_gray_shulker_box.go create mode 100644 level/block/light_gray_stained_glass.go create mode 100644 level/block/light_gray_stained_glass_pane.go create mode 100644 level/block/light_gray_terracotta.go create mode 100644 level/block/light_gray_wall_banner.go create mode 100644 level/block/light_gray_wool.go create mode 100644 level/block/light_weighted_pressure_plate.go create mode 100644 level/block/lightning_rod.go create mode 100644 level/block/lilac.go create mode 100644 level/block/lily_of_the_valley.go create mode 100644 level/block/lily_pad.go create mode 100644 level/block/lime_banner.go create mode 100644 level/block/lime_bed.go create mode 100644 level/block/lime_candle.go create mode 100644 level/block/lime_candle_cake.go create mode 100644 level/block/lime_carpet.go create mode 100644 level/block/lime_concrete.go create mode 100644 level/block/lime_concrete_powder.go create mode 100644 level/block/lime_glazed_terracotta.go create mode 100644 level/block/lime_shulker_box.go create mode 100644 level/block/lime_stained_glass.go create mode 100644 level/block/lime_stained_glass_pane.go create mode 100644 level/block/lime_terracotta.go create mode 100644 level/block/lime_wall_banner.go create mode 100644 level/block/lime_wool.go create mode 100644 level/block/lodestone.go create mode 100644 level/block/loom.go create mode 100644 level/block/magenta_banner.go create mode 100644 level/block/magenta_bed.go create mode 100644 level/block/magenta_candle.go create mode 100644 level/block/magenta_candle_cake.go create mode 100644 level/block/magenta_carpet.go create mode 100644 level/block/magenta_concrete.go create mode 100644 level/block/magenta_concrete_powder.go create mode 100644 level/block/magenta_glazed_terracotta.go create mode 100644 level/block/magenta_shulker_box.go create mode 100644 level/block/magenta_stained_glass.go create mode 100644 level/block/magenta_stained_glass_pane.go create mode 100644 level/block/magenta_terracotta.go create mode 100644 level/block/magenta_wall_banner.go create mode 100644 level/block/magenta_wool.go create mode 100644 level/block/magma_block.go create mode 100644 level/block/medium_amethyst_bud.go create mode 100644 level/block/melon.go create mode 100644 level/block/melon_stem.go create mode 100644 level/block/moss_block.go create mode 100644 level/block/moss_carpet.go create mode 100644 level/block/mossy_cobblestone.go create mode 100644 level/block/mossy_cobblestone_slab.go create mode 100644 level/block/mossy_cobblestone_stairs.go create mode 100644 level/block/mossy_cobblestone_wall.go create mode 100644 level/block/mossy_stone_brick_slab.go create mode 100644 level/block/mossy_stone_brick_stairs.go create mode 100644 level/block/mossy_stone_brick_wall.go create mode 100644 level/block/mossy_stone_bricks.go create mode 100644 level/block/moving_piston.go create mode 100644 level/block/mushroom_stem.go create mode 100644 level/block/mycelium.go create mode 100644 level/block/nether_brick_fence.go create mode 100644 level/block/nether_brick_slab.go create mode 100644 level/block/nether_brick_stairs.go create mode 100644 level/block/nether_brick_wall.go create mode 100644 level/block/nether_bricks.go create mode 100644 level/block/nether_gold_ore.go create mode 100644 level/block/nether_portal.go create mode 100644 level/block/nether_quartz_ore.go create mode 100644 level/block/nether_sprouts.go create mode 100644 level/block/nether_wart.go create mode 100644 level/block/nether_wart_block.go create mode 100644 level/block/netherite_block.go create mode 100644 level/block/netherrack.go create mode 100644 level/block/note_block.go create mode 100644 level/block/oak_button.go create mode 100644 level/block/oak_door.go create mode 100644 level/block/oak_fence.go create mode 100644 level/block/oak_fence_gate.go create mode 100644 level/block/oak_leaves.go create mode 100644 level/block/oak_log.go create mode 100644 level/block/oak_planks.go create mode 100644 level/block/oak_pressure_plate.go create mode 100644 level/block/oak_sapling.go create mode 100644 level/block/oak_sign.go create mode 100644 level/block/oak_slab.go create mode 100644 level/block/oak_stairs.go create mode 100644 level/block/oak_trapdoor.go create mode 100644 level/block/oak_wall_sign.go create mode 100644 level/block/oak_wood.go create mode 100644 level/block/observer.go create mode 100644 level/block/obsidian.go create mode 100644 level/block/orange_banner.go create mode 100644 level/block/orange_bed.go create mode 100644 level/block/orange_candle.go create mode 100644 level/block/orange_candle_cake.go create mode 100644 level/block/orange_carpet.go create mode 100644 level/block/orange_concrete.go create mode 100644 level/block/orange_concrete_powder.go create mode 100644 level/block/orange_glazed_terracotta.go create mode 100644 level/block/orange_shulker_box.go create mode 100644 level/block/orange_stained_glass.go create mode 100644 level/block/orange_stained_glass_pane.go create mode 100644 level/block/orange_terracotta.go create mode 100644 level/block/orange_tulip.go create mode 100644 level/block/orange_wall_banner.go create mode 100644 level/block/orange_wool.go create mode 100644 level/block/oxeye_daisy.go create mode 100644 level/block/oxidized_copper.go create mode 100644 level/block/oxidized_cut_copper.go create mode 100644 level/block/oxidized_cut_copper_slab.go create mode 100644 level/block/oxidized_cut_copper_stairs.go create mode 100644 level/block/packed_ice.go create mode 100644 level/block/peony.go create mode 100644 level/block/petrified_oak_slab.go create mode 100644 level/block/pink_banner.go create mode 100644 level/block/pink_bed.go create mode 100644 level/block/pink_candle.go create mode 100644 level/block/pink_candle_cake.go create mode 100644 level/block/pink_carpet.go create mode 100644 level/block/pink_concrete.go create mode 100644 level/block/pink_concrete_powder.go create mode 100644 level/block/pink_glazed_terracotta.go create mode 100644 level/block/pink_shulker_box.go create mode 100644 level/block/pink_stained_glass.go create mode 100644 level/block/pink_stained_glass_pane.go create mode 100644 level/block/pink_terracotta.go create mode 100644 level/block/pink_tulip.go create mode 100644 level/block/pink_wall_banner.go create mode 100644 level/block/pink_wool.go create mode 100644 level/block/piston.go create mode 100644 level/block/piston_head.go create mode 100644 level/block/player_head.go create mode 100644 level/block/player_wall_head.go create mode 100644 level/block/podzol.go create mode 100644 level/block/pointed_dripstone.go create mode 100644 level/block/polished_andesite.go create mode 100644 level/block/polished_andesite_slab.go create mode 100644 level/block/polished_andesite_stairs.go create mode 100644 level/block/polished_basalt.go create mode 100644 level/block/polished_blackstone.go create mode 100644 level/block/polished_blackstone_brick_slab.go create mode 100644 level/block/polished_blackstone_brick_stairs.go create mode 100644 level/block/polished_blackstone_brick_wall.go create mode 100644 level/block/polished_blackstone_bricks.go create mode 100644 level/block/polished_blackstone_button.go create mode 100644 level/block/polished_blackstone_pressure_plate.go create mode 100644 level/block/polished_blackstone_slab.go create mode 100644 level/block/polished_blackstone_stairs.go create mode 100644 level/block/polished_blackstone_wall.go create mode 100644 level/block/polished_deepslate.go create mode 100644 level/block/polished_deepslate_slab.go create mode 100644 level/block/polished_deepslate_stairs.go create mode 100644 level/block/polished_deepslate_wall.go create mode 100644 level/block/polished_diorite.go create mode 100644 level/block/polished_diorite_slab.go create mode 100644 level/block/polished_diorite_stairs.go create mode 100644 level/block/polished_granite.go create mode 100644 level/block/polished_granite_slab.go create mode 100644 level/block/polished_granite_stairs.go create mode 100644 level/block/poppy.go create mode 100644 level/block/potatoes.go create mode 100644 level/block/potted_acacia_sapling.go create mode 100644 level/block/potted_allium.go create mode 100644 level/block/potted_azalea_bush.go create mode 100644 level/block/potted_azure_bluet.go create mode 100644 level/block/potted_bamboo.go create mode 100644 level/block/potted_birch_sapling.go create mode 100644 level/block/potted_blue_orchid.go create mode 100644 level/block/potted_brown_mushroom.go create mode 100644 level/block/potted_cactus.go create mode 100644 level/block/potted_cornflower.go create mode 100644 level/block/potted_crimson_fungus.go create mode 100644 level/block/potted_crimson_roots.go create mode 100644 level/block/potted_dandelion.go create mode 100644 level/block/potted_dark_oak_sapling.go create mode 100644 level/block/potted_dead_bush.go create mode 100644 level/block/potted_fern.go create mode 100644 level/block/potted_flowering_azalea_bush.go create mode 100644 level/block/potted_jungle_sapling.go create mode 100644 level/block/potted_lily_of_the_valley.go create mode 100644 level/block/potted_oak_sapling.go create mode 100644 level/block/potted_orange_tulip.go create mode 100644 level/block/potted_oxeye_daisy.go create mode 100644 level/block/potted_pink_tulip.go create mode 100644 level/block/potted_poppy.go create mode 100644 level/block/potted_red_mushroom.go create mode 100644 level/block/potted_red_tulip.go create mode 100644 level/block/potted_spruce_sapling.go create mode 100644 level/block/potted_warped_fungus.go create mode 100644 level/block/potted_warped_roots.go create mode 100644 level/block/potted_white_tulip.go create mode 100644 level/block/potted_wither_rose.go create mode 100644 level/block/powder_snow.go create mode 100644 level/block/powder_snow_cauldron.go create mode 100644 level/block/powered_rail.go create mode 100644 level/block/prismarine.go create mode 100644 level/block/prismarine_brick_slab.go create mode 100644 level/block/prismarine_brick_stairs.go create mode 100644 level/block/prismarine_bricks.go create mode 100644 level/block/prismarine_slab.go create mode 100644 level/block/prismarine_stairs.go create mode 100644 level/block/prismarine_wall.go create mode 100644 level/block/pumpkin.go create mode 100644 level/block/pumpkin_stem.go create mode 100644 level/block/purple_banner.go create mode 100644 level/block/purple_bed.go create mode 100644 level/block/purple_candle.go create mode 100644 level/block/purple_candle_cake.go create mode 100644 level/block/purple_carpet.go create mode 100644 level/block/purple_concrete.go create mode 100644 level/block/purple_concrete_powder.go create mode 100644 level/block/purple_glazed_terracotta.go create mode 100644 level/block/purple_shulker_box.go create mode 100644 level/block/purple_stained_glass.go create mode 100644 level/block/purple_stained_glass_pane.go create mode 100644 level/block/purple_terracotta.go create mode 100644 level/block/purple_wall_banner.go create mode 100644 level/block/purple_wool.go create mode 100644 level/block/purpur_block.go create mode 100644 level/block/purpur_pillar.go create mode 100644 level/block/purpur_slab.go create mode 100644 level/block/purpur_stairs.go create mode 100644 level/block/quartz_block.go create mode 100644 level/block/quartz_bricks.go create mode 100644 level/block/quartz_pillar.go create mode 100644 level/block/quartz_slab.go create mode 100644 level/block/quartz_stairs.go create mode 100644 level/block/rail.go create mode 100644 level/block/raw_copper_block.go create mode 100644 level/block/raw_gold_block.go create mode 100644 level/block/raw_iron_block.go create mode 100644 level/block/red_banner.go create mode 100644 level/block/red_bed.go create mode 100644 level/block/red_candle.go create mode 100644 level/block/red_candle_cake.go create mode 100644 level/block/red_carpet.go create mode 100644 level/block/red_concrete.go create mode 100644 level/block/red_concrete_powder.go create mode 100644 level/block/red_glazed_terracotta.go create mode 100644 level/block/red_mushroom.go create mode 100644 level/block/red_mushroom_block.go create mode 100644 level/block/red_nether_brick_slab.go create mode 100644 level/block/red_nether_brick_stairs.go create mode 100644 level/block/red_nether_brick_wall.go create mode 100644 level/block/red_nether_bricks.go create mode 100644 level/block/red_sand.go create mode 100644 level/block/red_sandstone.go create mode 100644 level/block/red_sandstone_slab.go create mode 100644 level/block/red_sandstone_stairs.go create mode 100644 level/block/red_sandstone_wall.go create mode 100644 level/block/red_shulker_box.go create mode 100644 level/block/red_stained_glass.go create mode 100644 level/block/red_stained_glass_pane.go create mode 100644 level/block/red_terracotta.go create mode 100644 level/block/red_tulip.go create mode 100644 level/block/red_wall_banner.go create mode 100644 level/block/red_wool.go create mode 100644 level/block/redstone_block.go create mode 100644 level/block/redstone_lamp.go create mode 100644 level/block/redstone_ore.go create mode 100644 level/block/redstone_torch.go create mode 100644 level/block/redstone_wall_torch.go create mode 100644 level/block/redstone_wire.go create mode 100644 level/block/repeater.go create mode 100644 level/block/repeating_command_block.go create mode 100644 level/block/respawn_anchor.go create mode 100644 level/block/rooted_dirt.go create mode 100644 level/block/rose_bush.go create mode 100644 level/block/sand.go create mode 100644 level/block/sandstone.go create mode 100644 level/block/sandstone_slab.go create mode 100644 level/block/sandstone_stairs.go create mode 100644 level/block/sandstone_wall.go create mode 100644 level/block/scaffolding.go create mode 100644 level/block/sculk_sensor.go create mode 100644 level/block/sea_lantern.go create mode 100644 level/block/sea_pickle.go create mode 100644 level/block/seagrass.go create mode 100644 level/block/shroomlight.go create mode 100644 level/block/shulker_box.go create mode 100644 level/block/skeleton_skull.go create mode 100644 level/block/skeleton_wall_skull.go create mode 100644 level/block/slime_block.go create mode 100644 level/block/small_amethyst_bud.go create mode 100644 level/block/small_dripleaf.go create mode 100644 level/block/smithing_table.go create mode 100644 level/block/smoker.go create mode 100644 level/block/smooth_basalt.go create mode 100644 level/block/smooth_quartz.go create mode 100644 level/block/smooth_quartz_slab.go create mode 100644 level/block/smooth_quartz_stairs.go create mode 100644 level/block/smooth_red_sandstone.go create mode 100644 level/block/smooth_red_sandstone_slab.go create mode 100644 level/block/smooth_red_sandstone_stairs.go create mode 100644 level/block/smooth_sandstone.go create mode 100644 level/block/smooth_sandstone_slab.go create mode 100644 level/block/smooth_sandstone_stairs.go create mode 100644 level/block/smooth_stone.go create mode 100644 level/block/smooth_stone_slab.go create mode 100644 level/block/snow.go create mode 100644 level/block/snow_block.go create mode 100644 level/block/soul_campfire.go create mode 100644 level/block/soul_fire.go create mode 100644 level/block/soul_lantern.go create mode 100644 level/block/soul_sand.go create mode 100644 level/block/soul_soil.go create mode 100644 level/block/soul_torch.go create mode 100644 level/block/soul_wall_torch.go create mode 100644 level/block/spawner.go create mode 100644 level/block/sponge.go create mode 100644 level/block/spore_blossom.go create mode 100644 level/block/spruce_button.go create mode 100644 level/block/spruce_door.go create mode 100644 level/block/spruce_fence.go create mode 100644 level/block/spruce_fence_gate.go create mode 100644 level/block/spruce_leaves.go create mode 100644 level/block/spruce_log.go create mode 100644 level/block/spruce_planks.go create mode 100644 level/block/spruce_pressure_plate.go create mode 100644 level/block/spruce_sapling.go create mode 100644 level/block/spruce_sign.go create mode 100644 level/block/spruce_slab.go create mode 100644 level/block/spruce_stairs.go create mode 100644 level/block/spruce_trapdoor.go create mode 100644 level/block/spruce_wall_sign.go create mode 100644 level/block/spruce_wood.go create mode 100644 level/block/sticky_piston.go create mode 100644 level/block/stone.go create mode 100644 level/block/stone_brick_slab.go create mode 100644 level/block/stone_brick_stairs.go create mode 100644 level/block/stone_brick_wall.go create mode 100644 level/block/stone_bricks.go create mode 100644 level/block/stone_button.go create mode 100644 level/block/stone_pressure_plate.go create mode 100644 level/block/stone_slab.go create mode 100644 level/block/stone_stairs.go create mode 100644 level/block/stonecutter.go create mode 100644 level/block/stripped_acacia_log.go create mode 100644 level/block/stripped_acacia_wood.go create mode 100644 level/block/stripped_birch_log.go create mode 100644 level/block/stripped_birch_wood.go create mode 100644 level/block/stripped_crimson_hyphae.go create mode 100644 level/block/stripped_crimson_stem.go create mode 100644 level/block/stripped_dark_oak_log.go create mode 100644 level/block/stripped_dark_oak_wood.go create mode 100644 level/block/stripped_jungle_log.go create mode 100644 level/block/stripped_jungle_wood.go create mode 100644 level/block/stripped_oak_log.go create mode 100644 level/block/stripped_oak_wood.go create mode 100644 level/block/stripped_spruce_log.go create mode 100644 level/block/stripped_spruce_wood.go create mode 100644 level/block/stripped_warped_hyphae.go create mode 100644 level/block/stripped_warped_stem.go create mode 100644 level/block/structure_block.go create mode 100644 level/block/structure_void.go create mode 100644 level/block/sugar_cane.go create mode 100644 level/block/sunflower.go create mode 100644 level/block/sweet_berry_bush.go create mode 100644 level/block/tall_grass.go create mode 100644 level/block/tall_seagrass.go create mode 100644 level/block/target.go create mode 100644 level/block/terracotta.go create mode 100644 level/block/testdata/block_states.nbt create mode 100644 level/block/tinted_glass.go create mode 100644 level/block/tnt.go create mode 100644 level/block/torch.go create mode 100644 level/block/trapped_chest.go create mode 100644 level/block/tripwire.go create mode 100644 level/block/tripwire_hook.go create mode 100644 level/block/tube_coral.go create mode 100644 level/block/tube_coral_block.go create mode 100644 level/block/tube_coral_fan.go create mode 100644 level/block/tube_coral_wall_fan.go create mode 100644 level/block/tuff.go create mode 100644 level/block/turtle_egg.go create mode 100644 level/block/twisting_vines.go create mode 100644 level/block/twisting_vines_plant.go create mode 100644 level/block/vine.go create mode 100644 level/block/void_air.go create mode 100644 level/block/wall_torch.go create mode 100644 level/block/warped_button.go create mode 100644 level/block/warped_door.go create mode 100644 level/block/warped_fence.go create mode 100644 level/block/warped_fence_gate.go create mode 100644 level/block/warped_fungus.go create mode 100644 level/block/warped_hyphae.go create mode 100644 level/block/warped_nylium.go create mode 100644 level/block/warped_planks.go create mode 100644 level/block/warped_pressure_plate.go create mode 100644 level/block/warped_roots.go create mode 100644 level/block/warped_sign.go create mode 100644 level/block/warped_slab.go create mode 100644 level/block/warped_stairs.go create mode 100644 level/block/warped_stem.go create mode 100644 level/block/warped_trapdoor.go create mode 100644 level/block/warped_wall_sign.go create mode 100644 level/block/warped_wart_block.go create mode 100644 level/block/water.go create mode 100644 level/block/water_cauldron.go create mode 100644 level/block/waxed_copper_block.go create mode 100644 level/block/waxed_cut_copper.go create mode 100644 level/block/waxed_cut_copper_slab.go create mode 100644 level/block/waxed_cut_copper_stairs.go create mode 100644 level/block/waxed_exposed_copper.go create mode 100644 level/block/waxed_exposed_cut_copper.go create mode 100644 level/block/waxed_exposed_cut_copper_slab.go create mode 100644 level/block/waxed_exposed_cut_copper_stairs.go create mode 100644 level/block/waxed_oxidized_copper.go create mode 100644 level/block/waxed_oxidized_cut_copper.go create mode 100644 level/block/waxed_oxidized_cut_copper_slab.go create mode 100644 level/block/waxed_oxidized_cut_copper_stairs.go create mode 100644 level/block/waxed_weathered_copper.go create mode 100644 level/block/waxed_weathered_cut_copper.go create mode 100644 level/block/waxed_weathered_cut_copper_slab.go create mode 100644 level/block/waxed_weathered_cut_copper_stairs.go create mode 100644 level/block/weathered_copper.go create mode 100644 level/block/weathered_cut_copper.go create mode 100644 level/block/weathered_cut_copper_slab.go create mode 100644 level/block/weathered_cut_copper_stairs.go create mode 100644 level/block/weeping_vines.go create mode 100644 level/block/weeping_vines_plant.go create mode 100644 level/block/wet_sponge.go create mode 100644 level/block/wheat.go create mode 100644 level/block/white_banner.go create mode 100644 level/block/white_bed.go create mode 100644 level/block/white_candle.go create mode 100644 level/block/white_candle_cake.go create mode 100644 level/block/white_carpet.go create mode 100644 level/block/white_concrete.go create mode 100644 level/block/white_concrete_powder.go create mode 100644 level/block/white_glazed_terracotta.go create mode 100644 level/block/white_shulker_box.go create mode 100644 level/block/white_stained_glass.go create mode 100644 level/block/white_stained_glass_pane.go create mode 100644 level/block/white_terracotta.go create mode 100644 level/block/white_tulip.go create mode 100644 level/block/white_wall_banner.go create mode 100644 level/block/white_wool.go create mode 100644 level/block/wither_rose.go create mode 100644 level/block/wither_skeleton_skull.go create mode 100644 level/block/wither_skeleton_wall_skull.go create mode 100644 level/block/yellow_banner.go create mode 100644 level/block/yellow_bed.go create mode 100644 level/block/yellow_candle.go create mode 100644 level/block/yellow_candle_cake.go create mode 100644 level/block/yellow_carpet.go create mode 100644 level/block/yellow_concrete.go create mode 100644 level/block/yellow_concrete_powder.go create mode 100644 level/block/yellow_glazed_terracotta.go create mode 100644 level/block/yellow_shulker_box.go create mode 100644 level/block/yellow_stained_glass.go create mode 100644 level/block/yellow_stained_glass_pane.go create mode 100644 level/block/yellow_terracotta.go create mode 100644 level/block/yellow_wall_banner.go create mode 100644 level/block/yellow_wool.go create mode 100644 level/block/zombie_head.go create mode 100644 level/block/zombie_wall_head.go diff --git a/level/block/acacia_button.go b/level/block/acacia_button.go new file mode 100644 index 0000000..f6c0fbf --- /dev/null +++ b/level/block/acacia_button.go @@ -0,0 +1,11 @@ +package block + +type AcaciaButton struct { + Face string + Facing string + Powered string +} + +func (AcaciaButton) ID() string { + return "minecraft:acacia_button" +} diff --git a/level/block/acacia_door.go b/level/block/acacia_door.go new file mode 100644 index 0000000..3f001ae --- /dev/null +++ b/level/block/acacia_door.go @@ -0,0 +1,13 @@ +package block + +type AcaciaDoor struct { + Facing string + Half string + Hinge string + Open string + Powered string +} + +func (AcaciaDoor) ID() string { + return "minecraft:acacia_door" +} diff --git a/level/block/acacia_fence.go b/level/block/acacia_fence.go new file mode 100644 index 0000000..ce66ea6 --- /dev/null +++ b/level/block/acacia_fence.go @@ -0,0 +1,13 @@ +package block + +type AcaciaFence struct { + East string + North string + South string + Waterlogged string + West string +} + +func (AcaciaFence) ID() string { + return "minecraft:acacia_fence" +} diff --git a/level/block/acacia_fence_gate.go b/level/block/acacia_fence_gate.go new file mode 100644 index 0000000..e589e0a --- /dev/null +++ b/level/block/acacia_fence_gate.go @@ -0,0 +1,12 @@ +package block + +type AcaciaFenceGate struct { + Facing string + In_wall string + Open string + Powered string +} + +func (AcaciaFenceGate) ID() string { + return "minecraft:acacia_fence_gate" +} diff --git a/level/block/acacia_leaves.go b/level/block/acacia_leaves.go new file mode 100644 index 0000000..7387673 --- /dev/null +++ b/level/block/acacia_leaves.go @@ -0,0 +1,10 @@ +package block + +type AcaciaLeaves struct { + Distance string + Persistent string +} + +func (AcaciaLeaves) ID() string { + return "minecraft:acacia_leaves" +} diff --git a/level/block/acacia_log.go b/level/block/acacia_log.go new file mode 100644 index 0000000..3e33091 --- /dev/null +++ b/level/block/acacia_log.go @@ -0,0 +1,9 @@ +package block + +type AcaciaLog struct { + Axis string +} + +func (AcaciaLog) ID() string { + return "minecraft:acacia_log" +} diff --git a/level/block/acacia_planks.go b/level/block/acacia_planks.go new file mode 100644 index 0000000..1a98f8f --- /dev/null +++ b/level/block/acacia_planks.go @@ -0,0 +1,8 @@ +package block + +type AcaciaPlanks struct { +} + +func (AcaciaPlanks) ID() string { + return "minecraft:acacia_planks" +} diff --git a/level/block/acacia_pressure_plate.go b/level/block/acacia_pressure_plate.go new file mode 100644 index 0000000..4868342 --- /dev/null +++ b/level/block/acacia_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type AcaciaPressurePlate struct { + Powered string +} + +func (AcaciaPressurePlate) ID() string { + return "minecraft:acacia_pressure_plate" +} diff --git a/level/block/acacia_sapling.go b/level/block/acacia_sapling.go new file mode 100644 index 0000000..d45f88c --- /dev/null +++ b/level/block/acacia_sapling.go @@ -0,0 +1,9 @@ +package block + +type AcaciaSapling struct { + Stage string +} + +func (AcaciaSapling) ID() string { + return "minecraft:acacia_sapling" +} diff --git a/level/block/acacia_sign.go b/level/block/acacia_sign.go new file mode 100644 index 0000000..9c0ccb7 --- /dev/null +++ b/level/block/acacia_sign.go @@ -0,0 +1,10 @@ +package block + +type AcaciaSign struct { + Rotation string + Waterlogged string +} + +func (AcaciaSign) ID() string { + return "minecraft:acacia_sign" +} diff --git a/level/block/acacia_slab.go b/level/block/acacia_slab.go new file mode 100644 index 0000000..8eaa992 --- /dev/null +++ b/level/block/acacia_slab.go @@ -0,0 +1,10 @@ +package block + +type AcaciaSlab struct { + Type string + Waterlogged string +} + +func (AcaciaSlab) ID() string { + return "minecraft:acacia_slab" +} diff --git a/level/block/acacia_stairs.go b/level/block/acacia_stairs.go new file mode 100644 index 0000000..0f6bbfe --- /dev/null +++ b/level/block/acacia_stairs.go @@ -0,0 +1,12 @@ +package block + +type AcaciaStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (AcaciaStairs) ID() string { + return "minecraft:acacia_stairs" +} diff --git a/level/block/acacia_trapdoor.go b/level/block/acacia_trapdoor.go new file mode 100644 index 0000000..82f1ed6 --- /dev/null +++ b/level/block/acacia_trapdoor.go @@ -0,0 +1,13 @@ +package block + +type AcaciaTrapdoor struct { + Facing string + Half string + Open string + Powered string + Waterlogged string +} + +func (AcaciaTrapdoor) ID() string { + return "minecraft:acacia_trapdoor" +} diff --git a/level/block/acacia_wall_sign.go b/level/block/acacia_wall_sign.go new file mode 100644 index 0000000..c35a131 --- /dev/null +++ b/level/block/acacia_wall_sign.go @@ -0,0 +1,10 @@ +package block + +type AcaciaWallSign struct { + Facing string + Waterlogged string +} + +func (AcaciaWallSign) ID() string { + return "minecraft:acacia_wall_sign" +} diff --git a/level/block/acacia_wood.go b/level/block/acacia_wood.go new file mode 100644 index 0000000..e8bd2fa --- /dev/null +++ b/level/block/acacia_wood.go @@ -0,0 +1,9 @@ +package block + +type AcaciaWood struct { + Axis string +} + +func (AcaciaWood) ID() string { + return "minecraft:acacia_wood" +} diff --git a/level/block/activator_rail.go b/level/block/activator_rail.go new file mode 100644 index 0000000..4c1bbb6 --- /dev/null +++ b/level/block/activator_rail.go @@ -0,0 +1,11 @@ +package block + +type ActivatorRail struct { + Powered string + Shape string + Waterlogged string +} + +func (ActivatorRail) ID() string { + return "minecraft:activator_rail" +} diff --git a/level/block/air.go b/level/block/air.go new file mode 100644 index 0000000..50ea2dc --- /dev/null +++ b/level/block/air.go @@ -0,0 +1,8 @@ +package block + +type Air struct { +} + +func (Air) ID() string { + return "minecraft:air" +} diff --git a/level/block/allium.go b/level/block/allium.go new file mode 100644 index 0000000..d7ae313 --- /dev/null +++ b/level/block/allium.go @@ -0,0 +1,8 @@ +package block + +type Allium struct { +} + +func (Allium) ID() string { + return "minecraft:allium" +} diff --git a/level/block/amethyst_block.go b/level/block/amethyst_block.go new file mode 100644 index 0000000..d909594 --- /dev/null +++ b/level/block/amethyst_block.go @@ -0,0 +1,8 @@ +package block + +type AmethystBlock struct { +} + +func (AmethystBlock) ID() string { + return "minecraft:amethyst_block" +} diff --git a/level/block/amethyst_cluster.go b/level/block/amethyst_cluster.go new file mode 100644 index 0000000..dadc1a5 --- /dev/null +++ b/level/block/amethyst_cluster.go @@ -0,0 +1,10 @@ +package block + +type AmethystCluster struct { + Facing string + Waterlogged string +} + +func (AmethystCluster) ID() string { + return "minecraft:amethyst_cluster" +} diff --git a/level/block/ancient_debris.go b/level/block/ancient_debris.go new file mode 100644 index 0000000..6d463b7 --- /dev/null +++ b/level/block/ancient_debris.go @@ -0,0 +1,8 @@ +package block + +type AncientDebris struct { +} + +func (AncientDebris) ID() string { + return "minecraft:ancient_debris" +} diff --git a/level/block/andesite.go b/level/block/andesite.go new file mode 100644 index 0000000..5fccd53 --- /dev/null +++ b/level/block/andesite.go @@ -0,0 +1,8 @@ +package block + +type Andesite struct { +} + +func (Andesite) ID() string { + return "minecraft:andesite" +} diff --git a/level/block/andesite_slab.go b/level/block/andesite_slab.go new file mode 100644 index 0000000..233e432 --- /dev/null +++ b/level/block/andesite_slab.go @@ -0,0 +1,10 @@ +package block + +type AndesiteSlab struct { + Type string + Waterlogged string +} + +func (AndesiteSlab) ID() string { + return "minecraft:andesite_slab" +} diff --git a/level/block/andesite_stairs.go b/level/block/andesite_stairs.go new file mode 100644 index 0000000..6310478 --- /dev/null +++ b/level/block/andesite_stairs.go @@ -0,0 +1,12 @@ +package block + +type AndesiteStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (AndesiteStairs) ID() string { + return "minecraft:andesite_stairs" +} diff --git a/level/block/andesite_wall.go b/level/block/andesite_wall.go new file mode 100644 index 0000000..48dd2d9 --- /dev/null +++ b/level/block/andesite_wall.go @@ -0,0 +1,14 @@ +package block + +type AndesiteWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (AndesiteWall) ID() string { + return "minecraft:andesite_wall" +} diff --git a/level/block/anvil.go b/level/block/anvil.go new file mode 100644 index 0000000..d45f28b --- /dev/null +++ b/level/block/anvil.go @@ -0,0 +1,9 @@ +package block + +type Anvil struct { + Facing string +} + +func (Anvil) ID() string { + return "minecraft:anvil" +} diff --git a/level/block/attached_melon_stem.go b/level/block/attached_melon_stem.go new file mode 100644 index 0000000..1acfbd9 --- /dev/null +++ b/level/block/attached_melon_stem.go @@ -0,0 +1,9 @@ +package block + +type AttachedMelonStem struct { + Facing string +} + +func (AttachedMelonStem) ID() string { + return "minecraft:attached_melon_stem" +} diff --git a/level/block/attached_pumpkin_stem.go b/level/block/attached_pumpkin_stem.go new file mode 100644 index 0000000..460369d --- /dev/null +++ b/level/block/attached_pumpkin_stem.go @@ -0,0 +1,9 @@ +package block + +type AttachedPumpkinStem struct { + Facing string +} + +func (AttachedPumpkinStem) ID() string { + return "minecraft:attached_pumpkin_stem" +} diff --git a/level/block/azalea.go b/level/block/azalea.go new file mode 100644 index 0000000..8b8005b --- /dev/null +++ b/level/block/azalea.go @@ -0,0 +1,8 @@ +package block + +type Azalea struct { +} + +func (Azalea) ID() string { + return "minecraft:azalea" +} diff --git a/level/block/azalea_leaves.go b/level/block/azalea_leaves.go new file mode 100644 index 0000000..7aac872 --- /dev/null +++ b/level/block/azalea_leaves.go @@ -0,0 +1,10 @@ +package block + +type AzaleaLeaves struct { + Distance string + Persistent string +} + +func (AzaleaLeaves) ID() string { + return "minecraft:azalea_leaves" +} diff --git a/level/block/azure_bluet.go b/level/block/azure_bluet.go new file mode 100644 index 0000000..4b4fd3e --- /dev/null +++ b/level/block/azure_bluet.go @@ -0,0 +1,8 @@ +package block + +type AzureBluet struct { +} + +func (AzureBluet) ID() string { + return "minecraft:azure_bluet" +} diff --git a/level/block/bamboo.go b/level/block/bamboo.go new file mode 100644 index 0000000..f89c582 --- /dev/null +++ b/level/block/bamboo.go @@ -0,0 +1,11 @@ +package block + +type Bamboo struct { + Age string + Leaves string + Stage string +} + +func (Bamboo) ID() string { + return "minecraft:bamboo" +} diff --git a/level/block/bamboo_sapling.go b/level/block/bamboo_sapling.go new file mode 100644 index 0000000..d129cc5 --- /dev/null +++ b/level/block/bamboo_sapling.go @@ -0,0 +1,8 @@ +package block + +type BambooSapling struct { +} + +func (BambooSapling) ID() string { + return "minecraft:bamboo_sapling" +} diff --git a/level/block/barrel.go b/level/block/barrel.go new file mode 100644 index 0000000..d1cae61 --- /dev/null +++ b/level/block/barrel.go @@ -0,0 +1,10 @@ +package block + +type Barrel struct { + Facing string + Open string +} + +func (Barrel) ID() string { + return "minecraft:barrel" +} diff --git a/level/block/barrier.go b/level/block/barrier.go new file mode 100644 index 0000000..bee75c2 --- /dev/null +++ b/level/block/barrier.go @@ -0,0 +1,8 @@ +package block + +type Barrier struct { +} + +func (Barrier) ID() string { + return "minecraft:barrier" +} diff --git a/level/block/basalt.go b/level/block/basalt.go new file mode 100644 index 0000000..7b90109 --- /dev/null +++ b/level/block/basalt.go @@ -0,0 +1,9 @@ +package block + +type Basalt struct { + Axis string +} + +func (Basalt) ID() string { + return "minecraft:basalt" +} diff --git a/level/block/beacon.go b/level/block/beacon.go new file mode 100644 index 0000000..3f2af56 --- /dev/null +++ b/level/block/beacon.go @@ -0,0 +1,8 @@ +package block + +type Beacon struct { +} + +func (Beacon) ID() string { + return "minecraft:beacon" +} diff --git a/level/block/bedrock.go b/level/block/bedrock.go new file mode 100644 index 0000000..c39f29d --- /dev/null +++ b/level/block/bedrock.go @@ -0,0 +1,8 @@ +package block + +type Bedrock struct { +} + +func (Bedrock) ID() string { + return "minecraft:bedrock" +} diff --git a/level/block/bee_nest.go b/level/block/bee_nest.go new file mode 100644 index 0000000..746da66 --- /dev/null +++ b/level/block/bee_nest.go @@ -0,0 +1,10 @@ +package block + +type BeeNest struct { + Facing string + Honey_level string +} + +func (BeeNest) ID() string { + return "minecraft:bee_nest" +} diff --git a/level/block/beehive.go b/level/block/beehive.go new file mode 100644 index 0000000..39a8a79 --- /dev/null +++ b/level/block/beehive.go @@ -0,0 +1,10 @@ +package block + +type Beehive struct { + Facing string + Honey_level string +} + +func (Beehive) ID() string { + return "minecraft:beehive" +} diff --git a/level/block/beetroots.go b/level/block/beetroots.go new file mode 100644 index 0000000..a53875c --- /dev/null +++ b/level/block/beetroots.go @@ -0,0 +1,9 @@ +package block + +type Beetroots struct { + Age string +} + +func (Beetroots) ID() string { + return "minecraft:beetroots" +} diff --git a/level/block/bell.go b/level/block/bell.go new file mode 100644 index 0000000..64a3478 --- /dev/null +++ b/level/block/bell.go @@ -0,0 +1,11 @@ +package block + +type Bell struct { + Attachment string + Facing string + Powered string +} + +func (Bell) ID() string { + return "minecraft:bell" +} diff --git a/level/block/big_dripleaf.go b/level/block/big_dripleaf.go new file mode 100644 index 0000000..efef598 --- /dev/null +++ b/level/block/big_dripleaf.go @@ -0,0 +1,11 @@ +package block + +type BigDripleaf struct { + Facing string + Tilt string + Waterlogged string +} + +func (BigDripleaf) ID() string { + return "minecraft:big_dripleaf" +} diff --git a/level/block/big_dripleaf_stem.go b/level/block/big_dripleaf_stem.go new file mode 100644 index 0000000..f55e4fb --- /dev/null +++ b/level/block/big_dripleaf_stem.go @@ -0,0 +1,10 @@ +package block + +type BigDripleafStem struct { + Facing string + Waterlogged string +} + +func (BigDripleafStem) ID() string { + return "minecraft:big_dripleaf_stem" +} diff --git a/level/block/birch_button.go b/level/block/birch_button.go new file mode 100644 index 0000000..cdfb364 --- /dev/null +++ b/level/block/birch_button.go @@ -0,0 +1,11 @@ +package block + +type BirchButton struct { + Face string + Facing string + Powered string +} + +func (BirchButton) ID() string { + return "minecraft:birch_button" +} diff --git a/level/block/birch_door.go b/level/block/birch_door.go new file mode 100644 index 0000000..d9480f0 --- /dev/null +++ b/level/block/birch_door.go @@ -0,0 +1,13 @@ +package block + +type BirchDoor struct { + Facing string + Half string + Hinge string + Open string + Powered string +} + +func (BirchDoor) ID() string { + return "minecraft:birch_door" +} diff --git a/level/block/birch_fence.go b/level/block/birch_fence.go new file mode 100644 index 0000000..91988e3 --- /dev/null +++ b/level/block/birch_fence.go @@ -0,0 +1,13 @@ +package block + +type BirchFence struct { + East string + North string + South string + Waterlogged string + West string +} + +func (BirchFence) ID() string { + return "minecraft:birch_fence" +} diff --git a/level/block/birch_fence_gate.go b/level/block/birch_fence_gate.go new file mode 100644 index 0000000..588ff67 --- /dev/null +++ b/level/block/birch_fence_gate.go @@ -0,0 +1,12 @@ +package block + +type BirchFenceGate struct { + Facing string + In_wall string + Open string + Powered string +} + +func (BirchFenceGate) ID() string { + return "minecraft:birch_fence_gate" +} diff --git a/level/block/birch_leaves.go b/level/block/birch_leaves.go new file mode 100644 index 0000000..64e5f61 --- /dev/null +++ b/level/block/birch_leaves.go @@ -0,0 +1,10 @@ +package block + +type BirchLeaves struct { + Distance string + Persistent string +} + +func (BirchLeaves) ID() string { + return "minecraft:birch_leaves" +} diff --git a/level/block/birch_log.go b/level/block/birch_log.go new file mode 100644 index 0000000..98efc5d --- /dev/null +++ b/level/block/birch_log.go @@ -0,0 +1,9 @@ +package block + +type BirchLog struct { + Axis string +} + +func (BirchLog) ID() string { + return "minecraft:birch_log" +} diff --git a/level/block/birch_planks.go b/level/block/birch_planks.go new file mode 100644 index 0000000..0f43274 --- /dev/null +++ b/level/block/birch_planks.go @@ -0,0 +1,8 @@ +package block + +type BirchPlanks struct { +} + +func (BirchPlanks) ID() string { + return "minecraft:birch_planks" +} diff --git a/level/block/birch_pressure_plate.go b/level/block/birch_pressure_plate.go new file mode 100644 index 0000000..1a58b33 --- /dev/null +++ b/level/block/birch_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type BirchPressurePlate struct { + Powered string +} + +func (BirchPressurePlate) ID() string { + return "minecraft:birch_pressure_plate" +} diff --git a/level/block/birch_sapling.go b/level/block/birch_sapling.go new file mode 100644 index 0000000..297ba9a --- /dev/null +++ b/level/block/birch_sapling.go @@ -0,0 +1,9 @@ +package block + +type BirchSapling struct { + Stage string +} + +func (BirchSapling) ID() string { + return "minecraft:birch_sapling" +} diff --git a/level/block/birch_sign.go b/level/block/birch_sign.go new file mode 100644 index 0000000..7a8be7b --- /dev/null +++ b/level/block/birch_sign.go @@ -0,0 +1,10 @@ +package block + +type BirchSign struct { + Rotation string + Waterlogged string +} + +func (BirchSign) ID() string { + return "minecraft:birch_sign" +} diff --git a/level/block/birch_slab.go b/level/block/birch_slab.go new file mode 100644 index 0000000..61acb28 --- /dev/null +++ b/level/block/birch_slab.go @@ -0,0 +1,10 @@ +package block + +type BirchSlab struct { + Type string + Waterlogged string +} + +func (BirchSlab) ID() string { + return "minecraft:birch_slab" +} diff --git a/level/block/birch_stairs.go b/level/block/birch_stairs.go new file mode 100644 index 0000000..4e151fa --- /dev/null +++ b/level/block/birch_stairs.go @@ -0,0 +1,12 @@ +package block + +type BirchStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (BirchStairs) ID() string { + return "minecraft:birch_stairs" +} diff --git a/level/block/birch_trapdoor.go b/level/block/birch_trapdoor.go new file mode 100644 index 0000000..f08df2c --- /dev/null +++ b/level/block/birch_trapdoor.go @@ -0,0 +1,13 @@ +package block + +type BirchTrapdoor struct { + Facing string + Half string + Open string + Powered string + Waterlogged string +} + +func (BirchTrapdoor) ID() string { + return "minecraft:birch_trapdoor" +} diff --git a/level/block/birch_wall_sign.go b/level/block/birch_wall_sign.go new file mode 100644 index 0000000..98b1873 --- /dev/null +++ b/level/block/birch_wall_sign.go @@ -0,0 +1,10 @@ +package block + +type BirchWallSign struct { + Facing string + Waterlogged string +} + +func (BirchWallSign) ID() string { + return "minecraft:birch_wall_sign" +} diff --git a/level/block/birch_wood.go b/level/block/birch_wood.go new file mode 100644 index 0000000..fceb7d5 --- /dev/null +++ b/level/block/birch_wood.go @@ -0,0 +1,9 @@ +package block + +type BirchWood struct { + Axis string +} + +func (BirchWood) ID() string { + return "minecraft:birch_wood" +} diff --git a/level/block/black_banner.go b/level/block/black_banner.go new file mode 100644 index 0000000..32f880b --- /dev/null +++ b/level/block/black_banner.go @@ -0,0 +1,9 @@ +package block + +type BlackBanner struct { + Rotation string +} + +func (BlackBanner) ID() string { + return "minecraft:black_banner" +} diff --git a/level/block/black_bed.go b/level/block/black_bed.go new file mode 100644 index 0000000..03d589f --- /dev/null +++ b/level/block/black_bed.go @@ -0,0 +1,11 @@ +package block + +type BlackBed struct { + Facing string + Occupied string + Part string +} + +func (BlackBed) ID() string { + return "minecraft:black_bed" +} diff --git a/level/block/black_candle.go b/level/block/black_candle.go new file mode 100644 index 0000000..e5f3fa7 --- /dev/null +++ b/level/block/black_candle.go @@ -0,0 +1,11 @@ +package block + +type BlackCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (BlackCandle) ID() string { + return "minecraft:black_candle" +} diff --git a/level/block/black_candle_cake.go b/level/block/black_candle_cake.go new file mode 100644 index 0000000..86c781a --- /dev/null +++ b/level/block/black_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type BlackCandleCake struct { + Lit string +} + +func (BlackCandleCake) ID() string { + return "minecraft:black_candle_cake" +} diff --git a/level/block/black_carpet.go b/level/block/black_carpet.go new file mode 100644 index 0000000..e9ac59d --- /dev/null +++ b/level/block/black_carpet.go @@ -0,0 +1,8 @@ +package block + +type BlackCarpet struct { +} + +func (BlackCarpet) ID() string { + return "minecraft:black_carpet" +} diff --git a/level/block/black_concrete.go b/level/block/black_concrete.go new file mode 100644 index 0000000..86a3f5d --- /dev/null +++ b/level/block/black_concrete.go @@ -0,0 +1,8 @@ +package block + +type BlackConcrete struct { +} + +func (BlackConcrete) ID() string { + return "minecraft:black_concrete" +} diff --git a/level/block/black_concrete_powder.go b/level/block/black_concrete_powder.go new file mode 100644 index 0000000..f24ab6e --- /dev/null +++ b/level/block/black_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type BlackConcretePowder struct { +} + +func (BlackConcretePowder) ID() string { + return "minecraft:black_concrete_powder" +} diff --git a/level/block/black_glazed_terracotta.go b/level/block/black_glazed_terracotta.go new file mode 100644 index 0000000..0e6b240 --- /dev/null +++ b/level/block/black_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type BlackGlazedTerracotta struct { + Facing string +} + +func (BlackGlazedTerracotta) ID() string { + return "minecraft:black_glazed_terracotta" +} diff --git a/level/block/black_shulker_box.go b/level/block/black_shulker_box.go new file mode 100644 index 0000000..8923942 --- /dev/null +++ b/level/block/black_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type BlackShulkerBox struct { + Facing string +} + +func (BlackShulkerBox) ID() string { + return "minecraft:black_shulker_box" +} diff --git a/level/block/black_stained_glass.go b/level/block/black_stained_glass.go new file mode 100644 index 0000000..a539399 --- /dev/null +++ b/level/block/black_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type BlackStainedGlass struct { +} + +func (BlackStainedGlass) ID() string { + return "minecraft:black_stained_glass" +} diff --git a/level/block/black_stained_glass_pane.go b/level/block/black_stained_glass_pane.go new file mode 100644 index 0000000..c116586 --- /dev/null +++ b/level/block/black_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type BlackStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (BlackStainedGlassPane) ID() string { + return "minecraft:black_stained_glass_pane" +} diff --git a/level/block/black_terracotta.go b/level/block/black_terracotta.go new file mode 100644 index 0000000..2a1b731 --- /dev/null +++ b/level/block/black_terracotta.go @@ -0,0 +1,8 @@ +package block + +type BlackTerracotta struct { +} + +func (BlackTerracotta) ID() string { + return "minecraft:black_terracotta" +} diff --git a/level/block/black_wall_banner.go b/level/block/black_wall_banner.go new file mode 100644 index 0000000..35de5ab --- /dev/null +++ b/level/block/black_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type BlackWallBanner struct { + Facing string +} + +func (BlackWallBanner) ID() string { + return "minecraft:black_wall_banner" +} diff --git a/level/block/black_wool.go b/level/block/black_wool.go new file mode 100644 index 0000000..511265d --- /dev/null +++ b/level/block/black_wool.go @@ -0,0 +1,8 @@ +package block + +type BlackWool struct { +} + +func (BlackWool) ID() string { + return "minecraft:black_wool" +} diff --git a/level/block/blackstone.go b/level/block/blackstone.go new file mode 100644 index 0000000..6161828 --- /dev/null +++ b/level/block/blackstone.go @@ -0,0 +1,8 @@ +package block + +type Blackstone struct { +} + +func (Blackstone) ID() string { + return "minecraft:blackstone" +} diff --git a/level/block/blackstone_slab.go b/level/block/blackstone_slab.go new file mode 100644 index 0000000..c0a6ffd --- /dev/null +++ b/level/block/blackstone_slab.go @@ -0,0 +1,10 @@ +package block + +type BlackstoneSlab struct { + Type string + Waterlogged string +} + +func (BlackstoneSlab) ID() string { + return "minecraft:blackstone_slab" +} diff --git a/level/block/blackstone_stairs.go b/level/block/blackstone_stairs.go new file mode 100644 index 0000000..b559be8 --- /dev/null +++ b/level/block/blackstone_stairs.go @@ -0,0 +1,12 @@ +package block + +type BlackstoneStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (BlackstoneStairs) ID() string { + return "minecraft:blackstone_stairs" +} diff --git a/level/block/blackstone_wall.go b/level/block/blackstone_wall.go new file mode 100644 index 0000000..5ca4006 --- /dev/null +++ b/level/block/blackstone_wall.go @@ -0,0 +1,14 @@ +package block + +type BlackstoneWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (BlackstoneWall) ID() string { + return "minecraft:blackstone_wall" +} diff --git a/level/block/blast_furnace.go b/level/block/blast_furnace.go new file mode 100644 index 0000000..edd2041 --- /dev/null +++ b/level/block/blast_furnace.go @@ -0,0 +1,10 @@ +package block + +type BlastFurnace struct { + Facing string + Lit string +} + +func (BlastFurnace) ID() string { + return "minecraft:blast_furnace" +} diff --git a/level/block/block.go b/level/block/block.go new file mode 100644 index 0000000..3c795f3 --- /dev/null +++ b/level/block/block.go @@ -0,0 +1,28 @@ +package block + +type Block interface { + ID() string +} + +var toStateID = make(map[Block]int) +var fromStateID []Block +var fromID = make(map[string]Block) + +func init() { + //regState := func(s Block) { + // if _, ok := toStateID[s]; ok { + // panic(fmt.Errorf("state %#v already exist", s)) + // } + // toStateID[s] = len(fromStateID) + // fromStateID = append(fromStateID, s) + //} + //regBlock := func(b Block) { + // fromID[b.ID()] = b + // b.forEachState(regState) + //} + //regBlock(Air{}) +} + +func NewFromStateID(stateID int) Block { + return fromStateID[stateID] +} diff --git a/level/block/block_states_test.go b/level/block/block_states_test.go new file mode 100644 index 0000000..5b44e8a --- /dev/null +++ b/level/block/block_states_test.go @@ -0,0 +1,40 @@ +package block + +import ( + "os" + "testing" + + "github.com/Tnze/go-mc/nbt" +) + +func TestNewFromStateID(t *testing.T) { + f, err := os.Open("testdata/block_states.nbt") + if err != nil { + t.Fatal(err) + } + defer f.Close() + + var states []struct { + Name string + Properties nbt.RawMessage + } + + _, err = nbt.NewDecoder(f).Decode(&states) + if err != nil { + t.Fatal(err) + } + + for i, v := range states { + state1 := NewFromStateID(i) + if id := "minecraft:" + state1.ID(); id != v.Name { + t.Errorf("StateID [%d] Name not match: %v != %v", i, id, v.Name) + } + state2 := state1 + if err := v.Properties.Unmarshal(&state2); err != nil { + t.Errorf("Decode error: %v", err) + } + if state1 != state2 { + t.Errorf("StateID [%d] Properties not match: %v != %v", i, state1, state2) + } + } +} diff --git a/level/block/blue_banner.go b/level/block/blue_banner.go new file mode 100644 index 0000000..a7afa2e --- /dev/null +++ b/level/block/blue_banner.go @@ -0,0 +1,9 @@ +package block + +type BlueBanner struct { + Rotation string +} + +func (BlueBanner) ID() string { + return "minecraft:blue_banner" +} diff --git a/level/block/blue_bed.go b/level/block/blue_bed.go new file mode 100644 index 0000000..8672cd5 --- /dev/null +++ b/level/block/blue_bed.go @@ -0,0 +1,11 @@ +package block + +type BlueBed struct { + Facing string + Occupied string + Part string +} + +func (BlueBed) ID() string { + return "minecraft:blue_bed" +} diff --git a/level/block/blue_candle.go b/level/block/blue_candle.go new file mode 100644 index 0000000..54c86fc --- /dev/null +++ b/level/block/blue_candle.go @@ -0,0 +1,11 @@ +package block + +type BlueCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (BlueCandle) ID() string { + return "minecraft:blue_candle" +} diff --git a/level/block/blue_candle_cake.go b/level/block/blue_candle_cake.go new file mode 100644 index 0000000..64ddc33 --- /dev/null +++ b/level/block/blue_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type BlueCandleCake struct { + Lit string +} + +func (BlueCandleCake) ID() string { + return "minecraft:blue_candle_cake" +} diff --git a/level/block/blue_carpet.go b/level/block/blue_carpet.go new file mode 100644 index 0000000..81eacad --- /dev/null +++ b/level/block/blue_carpet.go @@ -0,0 +1,8 @@ +package block + +type BlueCarpet struct { +} + +func (BlueCarpet) ID() string { + return "minecraft:blue_carpet" +} diff --git a/level/block/blue_concrete.go b/level/block/blue_concrete.go new file mode 100644 index 0000000..08fb625 --- /dev/null +++ b/level/block/blue_concrete.go @@ -0,0 +1,8 @@ +package block + +type BlueConcrete struct { +} + +func (BlueConcrete) ID() string { + return "minecraft:blue_concrete" +} diff --git a/level/block/blue_concrete_powder.go b/level/block/blue_concrete_powder.go new file mode 100644 index 0000000..1c46daf --- /dev/null +++ b/level/block/blue_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type BlueConcretePowder struct { +} + +func (BlueConcretePowder) ID() string { + return "minecraft:blue_concrete_powder" +} diff --git a/level/block/blue_glazed_terracotta.go b/level/block/blue_glazed_terracotta.go new file mode 100644 index 0000000..b41956c --- /dev/null +++ b/level/block/blue_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type BlueGlazedTerracotta struct { + Facing string +} + +func (BlueGlazedTerracotta) ID() string { + return "minecraft:blue_glazed_terracotta" +} diff --git a/level/block/blue_ice.go b/level/block/blue_ice.go new file mode 100644 index 0000000..2ecd6ec --- /dev/null +++ b/level/block/blue_ice.go @@ -0,0 +1,8 @@ +package block + +type BlueIce struct { +} + +func (BlueIce) ID() string { + return "minecraft:blue_ice" +} diff --git a/level/block/blue_orchid.go b/level/block/blue_orchid.go new file mode 100644 index 0000000..ec90cdb --- /dev/null +++ b/level/block/blue_orchid.go @@ -0,0 +1,8 @@ +package block + +type BlueOrchid struct { +} + +func (BlueOrchid) ID() string { + return "minecraft:blue_orchid" +} diff --git a/level/block/blue_shulker_box.go b/level/block/blue_shulker_box.go new file mode 100644 index 0000000..78f13de --- /dev/null +++ b/level/block/blue_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type BlueShulkerBox struct { + Facing string +} + +func (BlueShulkerBox) ID() string { + return "minecraft:blue_shulker_box" +} diff --git a/level/block/blue_stained_glass.go b/level/block/blue_stained_glass.go new file mode 100644 index 0000000..f38fb67 --- /dev/null +++ b/level/block/blue_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type BlueStainedGlass struct { +} + +func (BlueStainedGlass) ID() string { + return "minecraft:blue_stained_glass" +} diff --git a/level/block/blue_stained_glass_pane.go b/level/block/blue_stained_glass_pane.go new file mode 100644 index 0000000..666574a --- /dev/null +++ b/level/block/blue_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type BlueStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (BlueStainedGlassPane) ID() string { + return "minecraft:blue_stained_glass_pane" +} diff --git a/level/block/blue_terracotta.go b/level/block/blue_terracotta.go new file mode 100644 index 0000000..64e9bb1 --- /dev/null +++ b/level/block/blue_terracotta.go @@ -0,0 +1,8 @@ +package block + +type BlueTerracotta struct { +} + +func (BlueTerracotta) ID() string { + return "minecraft:blue_terracotta" +} diff --git a/level/block/blue_wall_banner.go b/level/block/blue_wall_banner.go new file mode 100644 index 0000000..2b28964 --- /dev/null +++ b/level/block/blue_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type BlueWallBanner struct { + Facing string +} + +func (BlueWallBanner) ID() string { + return "minecraft:blue_wall_banner" +} diff --git a/level/block/blue_wool.go b/level/block/blue_wool.go new file mode 100644 index 0000000..d5826a9 --- /dev/null +++ b/level/block/blue_wool.go @@ -0,0 +1,8 @@ +package block + +type BlueWool struct { +} + +func (BlueWool) ID() string { + return "minecraft:blue_wool" +} diff --git a/level/block/bone_block.go b/level/block/bone_block.go new file mode 100644 index 0000000..0d05781 --- /dev/null +++ b/level/block/bone_block.go @@ -0,0 +1,9 @@ +package block + +type BoneBlock struct { + Axis string +} + +func (BoneBlock) ID() string { + return "minecraft:bone_block" +} diff --git a/level/block/bookshelf.go b/level/block/bookshelf.go new file mode 100644 index 0000000..b903bf0 --- /dev/null +++ b/level/block/bookshelf.go @@ -0,0 +1,8 @@ +package block + +type Bookshelf struct { +} + +func (Bookshelf) ID() string { + return "minecraft:bookshelf" +} diff --git a/level/block/brain_coral.go b/level/block/brain_coral.go new file mode 100644 index 0000000..54c750e --- /dev/null +++ b/level/block/brain_coral.go @@ -0,0 +1,9 @@ +package block + +type BrainCoral struct { + Waterlogged string +} + +func (BrainCoral) ID() string { + return "minecraft:brain_coral" +} diff --git a/level/block/brain_coral_block.go b/level/block/brain_coral_block.go new file mode 100644 index 0000000..e4a5f65 --- /dev/null +++ b/level/block/brain_coral_block.go @@ -0,0 +1,8 @@ +package block + +type BrainCoralBlock struct { +} + +func (BrainCoralBlock) ID() string { + return "minecraft:brain_coral_block" +} diff --git a/level/block/brain_coral_fan.go b/level/block/brain_coral_fan.go new file mode 100644 index 0000000..1de0899 --- /dev/null +++ b/level/block/brain_coral_fan.go @@ -0,0 +1,9 @@ +package block + +type BrainCoralFan struct { + Waterlogged string +} + +func (BrainCoralFan) ID() string { + return "minecraft:brain_coral_fan" +} diff --git a/level/block/brain_coral_wall_fan.go b/level/block/brain_coral_wall_fan.go new file mode 100644 index 0000000..f532f66 --- /dev/null +++ b/level/block/brain_coral_wall_fan.go @@ -0,0 +1,10 @@ +package block + +type BrainCoralWallFan struct { + Facing string + Waterlogged string +} + +func (BrainCoralWallFan) ID() string { + return "minecraft:brain_coral_wall_fan" +} diff --git a/level/block/brewing_stand.go b/level/block/brewing_stand.go new file mode 100644 index 0000000..2649344 --- /dev/null +++ b/level/block/brewing_stand.go @@ -0,0 +1,11 @@ +package block + +type BrewingStand struct { + Has_bottle_0 string + Has_bottle_1 string + Has_bottle_2 string +} + +func (BrewingStand) ID() string { + return "minecraft:brewing_stand" +} diff --git a/level/block/brick_slab.go b/level/block/brick_slab.go new file mode 100644 index 0000000..b991244 --- /dev/null +++ b/level/block/brick_slab.go @@ -0,0 +1,10 @@ +package block + +type BrickSlab struct { + Type string + Waterlogged string +} + +func (BrickSlab) ID() string { + return "minecraft:brick_slab" +} diff --git a/level/block/brick_stairs.go b/level/block/brick_stairs.go new file mode 100644 index 0000000..81bbc53 --- /dev/null +++ b/level/block/brick_stairs.go @@ -0,0 +1,12 @@ +package block + +type BrickStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (BrickStairs) ID() string { + return "minecraft:brick_stairs" +} diff --git a/level/block/brick_wall.go b/level/block/brick_wall.go new file mode 100644 index 0000000..10d8fa3 --- /dev/null +++ b/level/block/brick_wall.go @@ -0,0 +1,14 @@ +package block + +type BrickWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (BrickWall) ID() string { + return "minecraft:brick_wall" +} diff --git a/level/block/bricks.go b/level/block/bricks.go new file mode 100644 index 0000000..0a4a687 --- /dev/null +++ b/level/block/bricks.go @@ -0,0 +1,8 @@ +package block + +type Bricks struct { +} + +func (Bricks) ID() string { + return "minecraft:bricks" +} diff --git a/level/block/brown_banner.go b/level/block/brown_banner.go new file mode 100644 index 0000000..1a85978 --- /dev/null +++ b/level/block/brown_banner.go @@ -0,0 +1,9 @@ +package block + +type BrownBanner struct { + Rotation string +} + +func (BrownBanner) ID() string { + return "minecraft:brown_banner" +} diff --git a/level/block/brown_bed.go b/level/block/brown_bed.go new file mode 100644 index 0000000..0d9786f --- /dev/null +++ b/level/block/brown_bed.go @@ -0,0 +1,11 @@ +package block + +type BrownBed struct { + Facing string + Occupied string + Part string +} + +func (BrownBed) ID() string { + return "minecraft:brown_bed" +} diff --git a/level/block/brown_candle.go b/level/block/brown_candle.go new file mode 100644 index 0000000..296d67a --- /dev/null +++ b/level/block/brown_candle.go @@ -0,0 +1,11 @@ +package block + +type BrownCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (BrownCandle) ID() string { + return "minecraft:brown_candle" +} diff --git a/level/block/brown_candle_cake.go b/level/block/brown_candle_cake.go new file mode 100644 index 0000000..6e03781 --- /dev/null +++ b/level/block/brown_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type BrownCandleCake struct { + Lit string +} + +func (BrownCandleCake) ID() string { + return "minecraft:brown_candle_cake" +} diff --git a/level/block/brown_carpet.go b/level/block/brown_carpet.go new file mode 100644 index 0000000..46525ed --- /dev/null +++ b/level/block/brown_carpet.go @@ -0,0 +1,8 @@ +package block + +type BrownCarpet struct { +} + +func (BrownCarpet) ID() string { + return "minecraft:brown_carpet" +} diff --git a/level/block/brown_concrete.go b/level/block/brown_concrete.go new file mode 100644 index 0000000..c955abb --- /dev/null +++ b/level/block/brown_concrete.go @@ -0,0 +1,8 @@ +package block + +type BrownConcrete struct { +} + +func (BrownConcrete) ID() string { + return "minecraft:brown_concrete" +} diff --git a/level/block/brown_concrete_powder.go b/level/block/brown_concrete_powder.go new file mode 100644 index 0000000..7f84095 --- /dev/null +++ b/level/block/brown_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type BrownConcretePowder struct { +} + +func (BrownConcretePowder) ID() string { + return "minecraft:brown_concrete_powder" +} diff --git a/level/block/brown_glazed_terracotta.go b/level/block/brown_glazed_terracotta.go new file mode 100644 index 0000000..256b5ce --- /dev/null +++ b/level/block/brown_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type BrownGlazedTerracotta struct { + Facing string +} + +func (BrownGlazedTerracotta) ID() string { + return "minecraft:brown_glazed_terracotta" +} diff --git a/level/block/brown_mushroom.go b/level/block/brown_mushroom.go new file mode 100644 index 0000000..aee8acb --- /dev/null +++ b/level/block/brown_mushroom.go @@ -0,0 +1,8 @@ +package block + +type BrownMushroom struct { +} + +func (BrownMushroom) ID() string { + return "minecraft:brown_mushroom" +} diff --git a/level/block/brown_mushroom_block.go b/level/block/brown_mushroom_block.go new file mode 100644 index 0000000..1f07b5c --- /dev/null +++ b/level/block/brown_mushroom_block.go @@ -0,0 +1,14 @@ +package block + +type BrownMushroomBlock struct { + Down string + East string + North string + South string + Up string + West string +} + +func (BrownMushroomBlock) ID() string { + return "minecraft:brown_mushroom_block" +} diff --git a/level/block/brown_shulker_box.go b/level/block/brown_shulker_box.go new file mode 100644 index 0000000..9c182d4 --- /dev/null +++ b/level/block/brown_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type BrownShulkerBox struct { + Facing string +} + +func (BrownShulkerBox) ID() string { + return "minecraft:brown_shulker_box" +} diff --git a/level/block/brown_stained_glass.go b/level/block/brown_stained_glass.go new file mode 100644 index 0000000..c65055c --- /dev/null +++ b/level/block/brown_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type BrownStainedGlass struct { +} + +func (BrownStainedGlass) ID() string { + return "minecraft:brown_stained_glass" +} diff --git a/level/block/brown_stained_glass_pane.go b/level/block/brown_stained_glass_pane.go new file mode 100644 index 0000000..94608aa --- /dev/null +++ b/level/block/brown_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type BrownStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (BrownStainedGlassPane) ID() string { + return "minecraft:brown_stained_glass_pane" +} diff --git a/level/block/brown_terracotta.go b/level/block/brown_terracotta.go new file mode 100644 index 0000000..75fefa7 --- /dev/null +++ b/level/block/brown_terracotta.go @@ -0,0 +1,8 @@ +package block + +type BrownTerracotta struct { +} + +func (BrownTerracotta) ID() string { + return "minecraft:brown_terracotta" +} diff --git a/level/block/brown_wall_banner.go b/level/block/brown_wall_banner.go new file mode 100644 index 0000000..bceb088 --- /dev/null +++ b/level/block/brown_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type BrownWallBanner struct { + Facing string +} + +func (BrownWallBanner) ID() string { + return "minecraft:brown_wall_banner" +} diff --git a/level/block/brown_wool.go b/level/block/brown_wool.go new file mode 100644 index 0000000..9f2b410 --- /dev/null +++ b/level/block/brown_wool.go @@ -0,0 +1,8 @@ +package block + +type BrownWool struct { +} + +func (BrownWool) ID() string { + return "minecraft:brown_wool" +} diff --git a/level/block/bubble_column.go b/level/block/bubble_column.go new file mode 100644 index 0000000..6e402d0 --- /dev/null +++ b/level/block/bubble_column.go @@ -0,0 +1,9 @@ +package block + +type BubbleColumn struct { + Drag string +} + +func (BubbleColumn) ID() string { + return "minecraft:bubble_column" +} diff --git a/level/block/bubble_coral.go b/level/block/bubble_coral.go new file mode 100644 index 0000000..2670ed8 --- /dev/null +++ b/level/block/bubble_coral.go @@ -0,0 +1,9 @@ +package block + +type BubbleCoral struct { + Waterlogged string +} + +func (BubbleCoral) ID() string { + return "minecraft:bubble_coral" +} diff --git a/level/block/bubble_coral_block.go b/level/block/bubble_coral_block.go new file mode 100644 index 0000000..7997dc6 --- /dev/null +++ b/level/block/bubble_coral_block.go @@ -0,0 +1,8 @@ +package block + +type BubbleCoralBlock struct { +} + +func (BubbleCoralBlock) ID() string { + return "minecraft:bubble_coral_block" +} diff --git a/level/block/bubble_coral_fan.go b/level/block/bubble_coral_fan.go new file mode 100644 index 0000000..cb1d842 --- /dev/null +++ b/level/block/bubble_coral_fan.go @@ -0,0 +1,9 @@ +package block + +type BubbleCoralFan struct { + Waterlogged string +} + +func (BubbleCoralFan) ID() string { + return "minecraft:bubble_coral_fan" +} diff --git a/level/block/bubble_coral_wall_fan.go b/level/block/bubble_coral_wall_fan.go new file mode 100644 index 0000000..7b84720 --- /dev/null +++ b/level/block/bubble_coral_wall_fan.go @@ -0,0 +1,10 @@ +package block + +type BubbleCoralWallFan struct { + Facing string + Waterlogged string +} + +func (BubbleCoralWallFan) ID() string { + return "minecraft:bubble_coral_wall_fan" +} diff --git a/level/block/budding_amethyst.go b/level/block/budding_amethyst.go new file mode 100644 index 0000000..3f7c08d --- /dev/null +++ b/level/block/budding_amethyst.go @@ -0,0 +1,8 @@ +package block + +type BuddingAmethyst struct { +} + +func (BuddingAmethyst) ID() string { + return "minecraft:budding_amethyst" +} diff --git a/level/block/cactus.go b/level/block/cactus.go new file mode 100644 index 0000000..b483b74 --- /dev/null +++ b/level/block/cactus.go @@ -0,0 +1,9 @@ +package block + +type Cactus struct { + Age string +} + +func (Cactus) ID() string { + return "minecraft:cactus" +} diff --git a/level/block/cake.go b/level/block/cake.go new file mode 100644 index 0000000..f79796d --- /dev/null +++ b/level/block/cake.go @@ -0,0 +1,9 @@ +package block + +type Cake struct { + Bites string +} + +func (Cake) ID() string { + return "minecraft:cake" +} diff --git a/level/block/calcite.go b/level/block/calcite.go new file mode 100644 index 0000000..ff71ec0 --- /dev/null +++ b/level/block/calcite.go @@ -0,0 +1,8 @@ +package block + +type Calcite struct { +} + +func (Calcite) ID() string { + return "minecraft:calcite" +} diff --git a/level/block/campfire.go b/level/block/campfire.go new file mode 100644 index 0000000..4afcc20 --- /dev/null +++ b/level/block/campfire.go @@ -0,0 +1,12 @@ +package block + +type Campfire struct { + Facing string + Lit string + Signal_fire string + Waterlogged string +} + +func (Campfire) ID() string { + return "minecraft:campfire" +} diff --git a/level/block/candle.go b/level/block/candle.go new file mode 100644 index 0000000..c3c6593 --- /dev/null +++ b/level/block/candle.go @@ -0,0 +1,11 @@ +package block + +type Candle struct { + Candles string + Lit string + Waterlogged string +} + +func (Candle) ID() string { + return "minecraft:candle" +} diff --git a/level/block/candle_cake.go b/level/block/candle_cake.go new file mode 100644 index 0000000..09d9fcd --- /dev/null +++ b/level/block/candle_cake.go @@ -0,0 +1,9 @@ +package block + +type CandleCake struct { + Lit string +} + +func (CandleCake) ID() string { + return "minecraft:candle_cake" +} diff --git a/level/block/carrots.go b/level/block/carrots.go new file mode 100644 index 0000000..44a1acf --- /dev/null +++ b/level/block/carrots.go @@ -0,0 +1,9 @@ +package block + +type Carrots struct { + Age string +} + +func (Carrots) ID() string { + return "minecraft:carrots" +} diff --git a/level/block/cartography_table.go b/level/block/cartography_table.go new file mode 100644 index 0000000..1c29e78 --- /dev/null +++ b/level/block/cartography_table.go @@ -0,0 +1,8 @@ +package block + +type CartographyTable struct { +} + +func (CartographyTable) ID() string { + return "minecraft:cartography_table" +} diff --git a/level/block/carved_pumpkin.go b/level/block/carved_pumpkin.go new file mode 100644 index 0000000..cf26122 --- /dev/null +++ b/level/block/carved_pumpkin.go @@ -0,0 +1,9 @@ +package block + +type CarvedPumpkin struct { + Facing string +} + +func (CarvedPumpkin) ID() string { + return "minecraft:carved_pumpkin" +} diff --git a/level/block/cauldron.go b/level/block/cauldron.go new file mode 100644 index 0000000..8a19875 --- /dev/null +++ b/level/block/cauldron.go @@ -0,0 +1,8 @@ +package block + +type Cauldron struct { +} + +func (Cauldron) ID() string { + return "minecraft:cauldron" +} diff --git a/level/block/cave_air.go b/level/block/cave_air.go new file mode 100644 index 0000000..af565a4 --- /dev/null +++ b/level/block/cave_air.go @@ -0,0 +1,8 @@ +package block + +type CaveAir struct { +} + +func (CaveAir) ID() string { + return "minecraft:cave_air" +} diff --git a/level/block/cave_vines.go b/level/block/cave_vines.go new file mode 100644 index 0000000..c9a421c --- /dev/null +++ b/level/block/cave_vines.go @@ -0,0 +1,10 @@ +package block + +type CaveVines struct { + Age string + Berries string +} + +func (CaveVines) ID() string { + return "minecraft:cave_vines" +} diff --git a/level/block/cave_vines_plant.go b/level/block/cave_vines_plant.go new file mode 100644 index 0000000..5bfb973 --- /dev/null +++ b/level/block/cave_vines_plant.go @@ -0,0 +1,9 @@ +package block + +type CaveVinesPlant struct { + Berries string +} + +func (CaveVinesPlant) ID() string { + return "minecraft:cave_vines_plant" +} diff --git a/level/block/chain.go b/level/block/chain.go new file mode 100644 index 0000000..d0d10d4 --- /dev/null +++ b/level/block/chain.go @@ -0,0 +1,10 @@ +package block + +type Chain struct { + Axis string + Waterlogged string +} + +func (Chain) ID() string { + return "minecraft:chain" +} diff --git a/level/block/chain_command_block.go b/level/block/chain_command_block.go new file mode 100644 index 0000000..3f07dca --- /dev/null +++ b/level/block/chain_command_block.go @@ -0,0 +1,10 @@ +package block + +type ChainCommandBlock struct { + Conditional string + Facing string +} + +func (ChainCommandBlock) ID() string { + return "minecraft:chain_command_block" +} diff --git a/level/block/chest.go b/level/block/chest.go new file mode 100644 index 0000000..94fd51d --- /dev/null +++ b/level/block/chest.go @@ -0,0 +1,11 @@ +package block + +type Chest struct { + Facing string + Type string + Waterlogged string +} + +func (Chest) ID() string { + return "minecraft:chest" +} diff --git a/level/block/chipped_anvil.go b/level/block/chipped_anvil.go new file mode 100644 index 0000000..18d288a --- /dev/null +++ b/level/block/chipped_anvil.go @@ -0,0 +1,9 @@ +package block + +type ChippedAnvil struct { + Facing string +} + +func (ChippedAnvil) ID() string { + return "minecraft:chipped_anvil" +} diff --git a/level/block/chiseled_deepslate.go b/level/block/chiseled_deepslate.go new file mode 100644 index 0000000..df72a17 --- /dev/null +++ b/level/block/chiseled_deepslate.go @@ -0,0 +1,8 @@ +package block + +type ChiseledDeepslate struct { +} + +func (ChiseledDeepslate) ID() string { + return "minecraft:chiseled_deepslate" +} diff --git a/level/block/chiseled_nether_bricks.go b/level/block/chiseled_nether_bricks.go new file mode 100644 index 0000000..61771a6 --- /dev/null +++ b/level/block/chiseled_nether_bricks.go @@ -0,0 +1,8 @@ +package block + +type ChiseledNetherBricks struct { +} + +func (ChiseledNetherBricks) ID() string { + return "minecraft:chiseled_nether_bricks" +} diff --git a/level/block/chiseled_polished_blackstone.go b/level/block/chiseled_polished_blackstone.go new file mode 100644 index 0000000..3b43b31 --- /dev/null +++ b/level/block/chiseled_polished_blackstone.go @@ -0,0 +1,8 @@ +package block + +type ChiseledPolishedBlackstone struct { +} + +func (ChiseledPolishedBlackstone) ID() string { + return "minecraft:chiseled_polished_blackstone" +} diff --git a/level/block/chiseled_quartz_block.go b/level/block/chiseled_quartz_block.go new file mode 100644 index 0000000..4ce0e0b --- /dev/null +++ b/level/block/chiseled_quartz_block.go @@ -0,0 +1,8 @@ +package block + +type ChiseledQuartzBlock struct { +} + +func (ChiseledQuartzBlock) ID() string { + return "minecraft:chiseled_quartz_block" +} diff --git a/level/block/chiseled_red_sandstone.go b/level/block/chiseled_red_sandstone.go new file mode 100644 index 0000000..3f83c04 --- /dev/null +++ b/level/block/chiseled_red_sandstone.go @@ -0,0 +1,8 @@ +package block + +type ChiseledRedSandstone struct { +} + +func (ChiseledRedSandstone) ID() string { + return "minecraft:chiseled_red_sandstone" +} diff --git a/level/block/chiseled_sandstone.go b/level/block/chiseled_sandstone.go new file mode 100644 index 0000000..9f0d80b --- /dev/null +++ b/level/block/chiseled_sandstone.go @@ -0,0 +1,8 @@ +package block + +type ChiseledSandstone struct { +} + +func (ChiseledSandstone) ID() string { + return "minecraft:chiseled_sandstone" +} diff --git a/level/block/chiseled_stone_bricks.go b/level/block/chiseled_stone_bricks.go new file mode 100644 index 0000000..d93e0e8 --- /dev/null +++ b/level/block/chiseled_stone_bricks.go @@ -0,0 +1,8 @@ +package block + +type ChiseledStoneBricks struct { +} + +func (ChiseledStoneBricks) ID() string { + return "minecraft:chiseled_stone_bricks" +} diff --git a/level/block/chorus_flower.go b/level/block/chorus_flower.go new file mode 100644 index 0000000..98e1b8d --- /dev/null +++ b/level/block/chorus_flower.go @@ -0,0 +1,9 @@ +package block + +type ChorusFlower struct { + Age string +} + +func (ChorusFlower) ID() string { + return "minecraft:chorus_flower" +} diff --git a/level/block/chorus_plant.go b/level/block/chorus_plant.go new file mode 100644 index 0000000..b95b150 --- /dev/null +++ b/level/block/chorus_plant.go @@ -0,0 +1,14 @@ +package block + +type ChorusPlant struct { + Down string + East string + North string + South string + Up string + West string +} + +func (ChorusPlant) ID() string { + return "minecraft:chorus_plant" +} diff --git a/level/block/clay.go b/level/block/clay.go new file mode 100644 index 0000000..2d5ffff --- /dev/null +++ b/level/block/clay.go @@ -0,0 +1,8 @@ +package block + +type Clay struct { +} + +func (Clay) ID() string { + return "minecraft:clay" +} diff --git a/level/block/coal_block.go b/level/block/coal_block.go new file mode 100644 index 0000000..525a68b --- /dev/null +++ b/level/block/coal_block.go @@ -0,0 +1,8 @@ +package block + +type CoalBlock struct { +} + +func (CoalBlock) ID() string { + return "minecraft:coal_block" +} diff --git a/level/block/coal_ore.go b/level/block/coal_ore.go new file mode 100644 index 0000000..3e1176f --- /dev/null +++ b/level/block/coal_ore.go @@ -0,0 +1,8 @@ +package block + +type CoalOre struct { +} + +func (CoalOre) ID() string { + return "minecraft:coal_ore" +} diff --git a/level/block/coarse_dirt.go b/level/block/coarse_dirt.go new file mode 100644 index 0000000..1eaafdd --- /dev/null +++ b/level/block/coarse_dirt.go @@ -0,0 +1,8 @@ +package block + +type CoarseDirt struct { +} + +func (CoarseDirt) ID() string { + return "minecraft:coarse_dirt" +} diff --git a/level/block/cobbled_deepslate.go b/level/block/cobbled_deepslate.go new file mode 100644 index 0000000..d01614f --- /dev/null +++ b/level/block/cobbled_deepslate.go @@ -0,0 +1,8 @@ +package block + +type CobbledDeepslate struct { +} + +func (CobbledDeepslate) ID() string { + return "minecraft:cobbled_deepslate" +} diff --git a/level/block/cobbled_deepslate_slab.go b/level/block/cobbled_deepslate_slab.go new file mode 100644 index 0000000..4d26bf2 --- /dev/null +++ b/level/block/cobbled_deepslate_slab.go @@ -0,0 +1,10 @@ +package block + +type CobbledDeepslateSlab struct { + Type string + Waterlogged string +} + +func (CobbledDeepslateSlab) ID() string { + return "minecraft:cobbled_deepslate_slab" +} diff --git a/level/block/cobbled_deepslate_stairs.go b/level/block/cobbled_deepslate_stairs.go new file mode 100644 index 0000000..3c55508 --- /dev/null +++ b/level/block/cobbled_deepslate_stairs.go @@ -0,0 +1,12 @@ +package block + +type CobbledDeepslateStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (CobbledDeepslateStairs) ID() string { + return "minecraft:cobbled_deepslate_stairs" +} diff --git a/level/block/cobbled_deepslate_wall.go b/level/block/cobbled_deepslate_wall.go new file mode 100644 index 0000000..5e1e914 --- /dev/null +++ b/level/block/cobbled_deepslate_wall.go @@ -0,0 +1,14 @@ +package block + +type CobbledDeepslateWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (CobbledDeepslateWall) ID() string { + return "minecraft:cobbled_deepslate_wall" +} diff --git a/level/block/cobblestone.go b/level/block/cobblestone.go new file mode 100644 index 0000000..b45071d --- /dev/null +++ b/level/block/cobblestone.go @@ -0,0 +1,8 @@ +package block + +type Cobblestone struct { +} + +func (Cobblestone) ID() string { + return "minecraft:cobblestone" +} diff --git a/level/block/cobblestone_slab.go b/level/block/cobblestone_slab.go new file mode 100644 index 0000000..7b20e57 --- /dev/null +++ b/level/block/cobblestone_slab.go @@ -0,0 +1,10 @@ +package block + +type CobblestoneSlab struct { + Type string + Waterlogged string +} + +func (CobblestoneSlab) ID() string { + return "minecraft:cobblestone_slab" +} diff --git a/level/block/cobblestone_stairs.go b/level/block/cobblestone_stairs.go new file mode 100644 index 0000000..453a148 --- /dev/null +++ b/level/block/cobblestone_stairs.go @@ -0,0 +1,12 @@ +package block + +type CobblestoneStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (CobblestoneStairs) ID() string { + return "minecraft:cobblestone_stairs" +} diff --git a/level/block/cobblestone_wall.go b/level/block/cobblestone_wall.go new file mode 100644 index 0000000..69fbc1f --- /dev/null +++ b/level/block/cobblestone_wall.go @@ -0,0 +1,14 @@ +package block + +type CobblestoneWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (CobblestoneWall) ID() string { + return "minecraft:cobblestone_wall" +} diff --git a/level/block/cobweb.go b/level/block/cobweb.go new file mode 100644 index 0000000..391fb67 --- /dev/null +++ b/level/block/cobweb.go @@ -0,0 +1,8 @@ +package block + +type Cobweb struct { +} + +func (Cobweb) ID() string { + return "minecraft:cobweb" +} diff --git a/level/block/cocoa.go b/level/block/cocoa.go new file mode 100644 index 0000000..bf6ca4c --- /dev/null +++ b/level/block/cocoa.go @@ -0,0 +1,10 @@ +package block + +type Cocoa struct { + Age string + Facing string +} + +func (Cocoa) ID() string { + return "minecraft:cocoa" +} diff --git a/level/block/command_block.go b/level/block/command_block.go new file mode 100644 index 0000000..c8eacb0 --- /dev/null +++ b/level/block/command_block.go @@ -0,0 +1,10 @@ +package block + +type CommandBlock struct { + Conditional string + Facing string +} + +func (CommandBlock) ID() string { + return "minecraft:command_block" +} diff --git a/level/block/comparator.go b/level/block/comparator.go new file mode 100644 index 0000000..e4bd706 --- /dev/null +++ b/level/block/comparator.go @@ -0,0 +1,11 @@ +package block + +type Comparator struct { + Facing string + Mode string + Powered string +} + +func (Comparator) ID() string { + return "minecraft:comparator" +} diff --git a/level/block/composter.go b/level/block/composter.go new file mode 100644 index 0000000..932c163 --- /dev/null +++ b/level/block/composter.go @@ -0,0 +1,9 @@ +package block + +type Composter struct { + Level string +} + +func (Composter) ID() string { + return "minecraft:composter" +} diff --git a/level/block/conduit.go b/level/block/conduit.go new file mode 100644 index 0000000..82f7040 --- /dev/null +++ b/level/block/conduit.go @@ -0,0 +1,9 @@ +package block + +type Conduit struct { + Waterlogged string +} + +func (Conduit) ID() string { + return "minecraft:conduit" +} diff --git a/level/block/copper_block.go b/level/block/copper_block.go new file mode 100644 index 0000000..682b2fd --- /dev/null +++ b/level/block/copper_block.go @@ -0,0 +1,8 @@ +package block + +type CopperBlock struct { +} + +func (CopperBlock) ID() string { + return "minecraft:copper_block" +} diff --git a/level/block/copper_ore.go b/level/block/copper_ore.go new file mode 100644 index 0000000..4cbb403 --- /dev/null +++ b/level/block/copper_ore.go @@ -0,0 +1,8 @@ +package block + +type CopperOre struct { +} + +func (CopperOre) ID() string { + return "minecraft:copper_ore" +} diff --git a/level/block/cornflower.go b/level/block/cornflower.go new file mode 100644 index 0000000..0280666 --- /dev/null +++ b/level/block/cornflower.go @@ -0,0 +1,8 @@ +package block + +type Cornflower struct { +} + +func (Cornflower) ID() string { + return "minecraft:cornflower" +} diff --git a/level/block/cracked_deepslate_bricks.go b/level/block/cracked_deepslate_bricks.go new file mode 100644 index 0000000..6ad474d --- /dev/null +++ b/level/block/cracked_deepslate_bricks.go @@ -0,0 +1,8 @@ +package block + +type CrackedDeepslateBricks struct { +} + +func (CrackedDeepslateBricks) ID() string { + return "minecraft:cracked_deepslate_bricks" +} diff --git a/level/block/cracked_deepslate_tiles.go b/level/block/cracked_deepslate_tiles.go new file mode 100644 index 0000000..45377d2 --- /dev/null +++ b/level/block/cracked_deepslate_tiles.go @@ -0,0 +1,8 @@ +package block + +type CrackedDeepslateTiles struct { +} + +func (CrackedDeepslateTiles) ID() string { + return "minecraft:cracked_deepslate_tiles" +} diff --git a/level/block/cracked_nether_bricks.go b/level/block/cracked_nether_bricks.go new file mode 100644 index 0000000..9574f00 --- /dev/null +++ b/level/block/cracked_nether_bricks.go @@ -0,0 +1,8 @@ +package block + +type CrackedNetherBricks struct { +} + +func (CrackedNetherBricks) ID() string { + return "minecraft:cracked_nether_bricks" +} diff --git a/level/block/cracked_polished_blackstone_bricks.go b/level/block/cracked_polished_blackstone_bricks.go new file mode 100644 index 0000000..6e70371 --- /dev/null +++ b/level/block/cracked_polished_blackstone_bricks.go @@ -0,0 +1,8 @@ +package block + +type CrackedPolishedBlackstoneBricks struct { +} + +func (CrackedPolishedBlackstoneBricks) ID() string { + return "minecraft:cracked_polished_blackstone_bricks" +} diff --git a/level/block/cracked_stone_bricks.go b/level/block/cracked_stone_bricks.go new file mode 100644 index 0000000..3a8c240 --- /dev/null +++ b/level/block/cracked_stone_bricks.go @@ -0,0 +1,8 @@ +package block + +type CrackedStoneBricks struct { +} + +func (CrackedStoneBricks) ID() string { + return "minecraft:cracked_stone_bricks" +} diff --git a/level/block/crafting_table.go b/level/block/crafting_table.go new file mode 100644 index 0000000..9fd2a81 --- /dev/null +++ b/level/block/crafting_table.go @@ -0,0 +1,8 @@ +package block + +type CraftingTable struct { +} + +func (CraftingTable) ID() string { + return "minecraft:crafting_table" +} diff --git a/level/block/creeper_head.go b/level/block/creeper_head.go new file mode 100644 index 0000000..839a9f9 --- /dev/null +++ b/level/block/creeper_head.go @@ -0,0 +1,9 @@ +package block + +type CreeperHead struct { + Rotation string +} + +func (CreeperHead) ID() string { + return "minecraft:creeper_head" +} diff --git a/level/block/creeper_wall_head.go b/level/block/creeper_wall_head.go new file mode 100644 index 0000000..7651f57 --- /dev/null +++ b/level/block/creeper_wall_head.go @@ -0,0 +1,9 @@ +package block + +type CreeperWallHead struct { + Facing string +} + +func (CreeperWallHead) ID() string { + return "minecraft:creeper_wall_head" +} diff --git a/level/block/crimson_button.go b/level/block/crimson_button.go new file mode 100644 index 0000000..f1ee6ba --- /dev/null +++ b/level/block/crimson_button.go @@ -0,0 +1,11 @@ +package block + +type CrimsonButton struct { + Face string + Facing string + Powered string +} + +func (CrimsonButton) ID() string { + return "minecraft:crimson_button" +} diff --git a/level/block/crimson_door.go b/level/block/crimson_door.go new file mode 100644 index 0000000..b3a1241 --- /dev/null +++ b/level/block/crimson_door.go @@ -0,0 +1,13 @@ +package block + +type CrimsonDoor struct { + Facing string + Half string + Hinge string + Open string + Powered string +} + +func (CrimsonDoor) ID() string { + return "minecraft:crimson_door" +} diff --git a/level/block/crimson_fence.go b/level/block/crimson_fence.go new file mode 100644 index 0000000..81c3e7b --- /dev/null +++ b/level/block/crimson_fence.go @@ -0,0 +1,13 @@ +package block + +type CrimsonFence struct { + East string + North string + South string + Waterlogged string + West string +} + +func (CrimsonFence) ID() string { + return "minecraft:crimson_fence" +} diff --git a/level/block/crimson_fence_gate.go b/level/block/crimson_fence_gate.go new file mode 100644 index 0000000..7c95015 --- /dev/null +++ b/level/block/crimson_fence_gate.go @@ -0,0 +1,12 @@ +package block + +type CrimsonFenceGate struct { + Facing string + In_wall string + Open string + Powered string +} + +func (CrimsonFenceGate) ID() string { + return "minecraft:crimson_fence_gate" +} diff --git a/level/block/crimson_fungus.go b/level/block/crimson_fungus.go new file mode 100644 index 0000000..d1c7cb6 --- /dev/null +++ b/level/block/crimson_fungus.go @@ -0,0 +1,8 @@ +package block + +type CrimsonFungus struct { +} + +func (CrimsonFungus) ID() string { + return "minecraft:crimson_fungus" +} diff --git a/level/block/crimson_hyphae.go b/level/block/crimson_hyphae.go new file mode 100644 index 0000000..e64ee50 --- /dev/null +++ b/level/block/crimson_hyphae.go @@ -0,0 +1,9 @@ +package block + +type CrimsonHyphae struct { + Axis string +} + +func (CrimsonHyphae) ID() string { + return "minecraft:crimson_hyphae" +} diff --git a/level/block/crimson_nylium.go b/level/block/crimson_nylium.go new file mode 100644 index 0000000..d76f6e7 --- /dev/null +++ b/level/block/crimson_nylium.go @@ -0,0 +1,8 @@ +package block + +type CrimsonNylium struct { +} + +func (CrimsonNylium) ID() string { + return "minecraft:crimson_nylium" +} diff --git a/level/block/crimson_planks.go b/level/block/crimson_planks.go new file mode 100644 index 0000000..8598415 --- /dev/null +++ b/level/block/crimson_planks.go @@ -0,0 +1,8 @@ +package block + +type CrimsonPlanks struct { +} + +func (CrimsonPlanks) ID() string { + return "minecraft:crimson_planks" +} diff --git a/level/block/crimson_pressure_plate.go b/level/block/crimson_pressure_plate.go new file mode 100644 index 0000000..fa7ddb8 --- /dev/null +++ b/level/block/crimson_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type CrimsonPressurePlate struct { + Powered string +} + +func (CrimsonPressurePlate) ID() string { + return "minecraft:crimson_pressure_plate" +} diff --git a/level/block/crimson_roots.go b/level/block/crimson_roots.go new file mode 100644 index 0000000..15cc5e4 --- /dev/null +++ b/level/block/crimson_roots.go @@ -0,0 +1,8 @@ +package block + +type CrimsonRoots struct { +} + +func (CrimsonRoots) ID() string { + return "minecraft:crimson_roots" +} diff --git a/level/block/crimson_sign.go b/level/block/crimson_sign.go new file mode 100644 index 0000000..f2d76be --- /dev/null +++ b/level/block/crimson_sign.go @@ -0,0 +1,10 @@ +package block + +type CrimsonSign struct { + Rotation string + Waterlogged string +} + +func (CrimsonSign) ID() string { + return "minecraft:crimson_sign" +} diff --git a/level/block/crimson_slab.go b/level/block/crimson_slab.go new file mode 100644 index 0000000..534731e --- /dev/null +++ b/level/block/crimson_slab.go @@ -0,0 +1,10 @@ +package block + +type CrimsonSlab struct { + Type string + Waterlogged string +} + +func (CrimsonSlab) ID() string { + return "minecraft:crimson_slab" +} diff --git a/level/block/crimson_stairs.go b/level/block/crimson_stairs.go new file mode 100644 index 0000000..a49be8a --- /dev/null +++ b/level/block/crimson_stairs.go @@ -0,0 +1,12 @@ +package block + +type CrimsonStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (CrimsonStairs) ID() string { + return "minecraft:crimson_stairs" +} diff --git a/level/block/crimson_stem.go b/level/block/crimson_stem.go new file mode 100644 index 0000000..751f39f --- /dev/null +++ b/level/block/crimson_stem.go @@ -0,0 +1,9 @@ +package block + +type CrimsonStem struct { + Axis string +} + +func (CrimsonStem) ID() string { + return "minecraft:crimson_stem" +} diff --git a/level/block/crimson_trapdoor.go b/level/block/crimson_trapdoor.go new file mode 100644 index 0000000..d7d3abd --- /dev/null +++ b/level/block/crimson_trapdoor.go @@ -0,0 +1,13 @@ +package block + +type CrimsonTrapdoor struct { + Facing string + Half string + Open string + Powered string + Waterlogged string +} + +func (CrimsonTrapdoor) ID() string { + return "minecraft:crimson_trapdoor" +} diff --git a/level/block/crimson_wall_sign.go b/level/block/crimson_wall_sign.go new file mode 100644 index 0000000..5814fb3 --- /dev/null +++ b/level/block/crimson_wall_sign.go @@ -0,0 +1,10 @@ +package block + +type CrimsonWallSign struct { + Facing string + Waterlogged string +} + +func (CrimsonWallSign) ID() string { + return "minecraft:crimson_wall_sign" +} diff --git a/level/block/crying_obsidian.go b/level/block/crying_obsidian.go new file mode 100644 index 0000000..04df381 --- /dev/null +++ b/level/block/crying_obsidian.go @@ -0,0 +1,8 @@ +package block + +type CryingObsidian struct { +} + +func (CryingObsidian) ID() string { + return "minecraft:crying_obsidian" +} diff --git a/level/block/cut_copper.go b/level/block/cut_copper.go new file mode 100644 index 0000000..369f17f --- /dev/null +++ b/level/block/cut_copper.go @@ -0,0 +1,8 @@ +package block + +type CutCopper struct { +} + +func (CutCopper) ID() string { + return "minecraft:cut_copper" +} diff --git a/level/block/cut_copper_slab.go b/level/block/cut_copper_slab.go new file mode 100644 index 0000000..470f434 --- /dev/null +++ b/level/block/cut_copper_slab.go @@ -0,0 +1,10 @@ +package block + +type CutCopperSlab struct { + Type string + Waterlogged string +} + +func (CutCopperSlab) ID() string { + return "minecraft:cut_copper_slab" +} diff --git a/level/block/cut_copper_stairs.go b/level/block/cut_copper_stairs.go new file mode 100644 index 0000000..0f88f3e --- /dev/null +++ b/level/block/cut_copper_stairs.go @@ -0,0 +1,12 @@ +package block + +type CutCopperStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (CutCopperStairs) ID() string { + return "minecraft:cut_copper_stairs" +} diff --git a/level/block/cut_red_sandstone.go b/level/block/cut_red_sandstone.go new file mode 100644 index 0000000..4c97521 --- /dev/null +++ b/level/block/cut_red_sandstone.go @@ -0,0 +1,8 @@ +package block + +type CutRedSandstone struct { +} + +func (CutRedSandstone) ID() string { + return "minecraft:cut_red_sandstone" +} diff --git a/level/block/cut_red_sandstone_slab.go b/level/block/cut_red_sandstone_slab.go new file mode 100644 index 0000000..275e3b6 --- /dev/null +++ b/level/block/cut_red_sandstone_slab.go @@ -0,0 +1,10 @@ +package block + +type CutRedSandstoneSlab struct { + Type string + Waterlogged string +} + +func (CutRedSandstoneSlab) ID() string { + return "minecraft:cut_red_sandstone_slab" +} diff --git a/level/block/cut_sandstone.go b/level/block/cut_sandstone.go new file mode 100644 index 0000000..6931109 --- /dev/null +++ b/level/block/cut_sandstone.go @@ -0,0 +1,8 @@ +package block + +type CutSandstone struct { +} + +func (CutSandstone) ID() string { + return "minecraft:cut_sandstone" +} diff --git a/level/block/cut_sandstone_slab.go b/level/block/cut_sandstone_slab.go new file mode 100644 index 0000000..9d89fb8 --- /dev/null +++ b/level/block/cut_sandstone_slab.go @@ -0,0 +1,10 @@ +package block + +type CutSandstoneSlab struct { + Type string + Waterlogged string +} + +func (CutSandstoneSlab) ID() string { + return "minecraft:cut_sandstone_slab" +} diff --git a/level/block/cyan_banner.go b/level/block/cyan_banner.go new file mode 100644 index 0000000..d838437 --- /dev/null +++ b/level/block/cyan_banner.go @@ -0,0 +1,9 @@ +package block + +type CyanBanner struct { + Rotation string +} + +func (CyanBanner) ID() string { + return "minecraft:cyan_banner" +} diff --git a/level/block/cyan_bed.go b/level/block/cyan_bed.go new file mode 100644 index 0000000..3fb92d6 --- /dev/null +++ b/level/block/cyan_bed.go @@ -0,0 +1,11 @@ +package block + +type CyanBed struct { + Facing string + Occupied string + Part string +} + +func (CyanBed) ID() string { + return "minecraft:cyan_bed" +} diff --git a/level/block/cyan_candle.go b/level/block/cyan_candle.go new file mode 100644 index 0000000..e6161a6 --- /dev/null +++ b/level/block/cyan_candle.go @@ -0,0 +1,11 @@ +package block + +type CyanCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (CyanCandle) ID() string { + return "minecraft:cyan_candle" +} diff --git a/level/block/cyan_candle_cake.go b/level/block/cyan_candle_cake.go new file mode 100644 index 0000000..a5e8336 --- /dev/null +++ b/level/block/cyan_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type CyanCandleCake struct { + Lit string +} + +func (CyanCandleCake) ID() string { + return "minecraft:cyan_candle_cake" +} diff --git a/level/block/cyan_carpet.go b/level/block/cyan_carpet.go new file mode 100644 index 0000000..4b0bdc3 --- /dev/null +++ b/level/block/cyan_carpet.go @@ -0,0 +1,8 @@ +package block + +type CyanCarpet struct { +} + +func (CyanCarpet) ID() string { + return "minecraft:cyan_carpet" +} diff --git a/level/block/cyan_concrete.go b/level/block/cyan_concrete.go new file mode 100644 index 0000000..9c5d278 --- /dev/null +++ b/level/block/cyan_concrete.go @@ -0,0 +1,8 @@ +package block + +type CyanConcrete struct { +} + +func (CyanConcrete) ID() string { + return "minecraft:cyan_concrete" +} diff --git a/level/block/cyan_concrete_powder.go b/level/block/cyan_concrete_powder.go new file mode 100644 index 0000000..bb7265f --- /dev/null +++ b/level/block/cyan_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type CyanConcretePowder struct { +} + +func (CyanConcretePowder) ID() string { + return "minecraft:cyan_concrete_powder" +} diff --git a/level/block/cyan_glazed_terracotta.go b/level/block/cyan_glazed_terracotta.go new file mode 100644 index 0000000..7ebe58e --- /dev/null +++ b/level/block/cyan_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type CyanGlazedTerracotta struct { + Facing string +} + +func (CyanGlazedTerracotta) ID() string { + return "minecraft:cyan_glazed_terracotta" +} diff --git a/level/block/cyan_shulker_box.go b/level/block/cyan_shulker_box.go new file mode 100644 index 0000000..4856f06 --- /dev/null +++ b/level/block/cyan_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type CyanShulkerBox struct { + Facing string +} + +func (CyanShulkerBox) ID() string { + return "minecraft:cyan_shulker_box" +} diff --git a/level/block/cyan_stained_glass.go b/level/block/cyan_stained_glass.go new file mode 100644 index 0000000..e46de13 --- /dev/null +++ b/level/block/cyan_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type CyanStainedGlass struct { +} + +func (CyanStainedGlass) ID() string { + return "minecraft:cyan_stained_glass" +} diff --git a/level/block/cyan_stained_glass_pane.go b/level/block/cyan_stained_glass_pane.go new file mode 100644 index 0000000..8c43805 --- /dev/null +++ b/level/block/cyan_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type CyanStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (CyanStainedGlassPane) ID() string { + return "minecraft:cyan_stained_glass_pane" +} diff --git a/level/block/cyan_terracotta.go b/level/block/cyan_terracotta.go new file mode 100644 index 0000000..7adea05 --- /dev/null +++ b/level/block/cyan_terracotta.go @@ -0,0 +1,8 @@ +package block + +type CyanTerracotta struct { +} + +func (CyanTerracotta) ID() string { + return "minecraft:cyan_terracotta" +} diff --git a/level/block/cyan_wall_banner.go b/level/block/cyan_wall_banner.go new file mode 100644 index 0000000..1251135 --- /dev/null +++ b/level/block/cyan_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type CyanWallBanner struct { + Facing string +} + +func (CyanWallBanner) ID() string { + return "minecraft:cyan_wall_banner" +} diff --git a/level/block/cyan_wool.go b/level/block/cyan_wool.go new file mode 100644 index 0000000..03f57ea --- /dev/null +++ b/level/block/cyan_wool.go @@ -0,0 +1,8 @@ +package block + +type CyanWool struct { +} + +func (CyanWool) ID() string { + return "minecraft:cyan_wool" +} diff --git a/level/block/damaged_anvil.go b/level/block/damaged_anvil.go new file mode 100644 index 0000000..90728db --- /dev/null +++ b/level/block/damaged_anvil.go @@ -0,0 +1,9 @@ +package block + +type DamagedAnvil struct { + Facing string +} + +func (DamagedAnvil) ID() string { + return "minecraft:damaged_anvil" +} diff --git a/level/block/dandelion.go b/level/block/dandelion.go new file mode 100644 index 0000000..c5bed31 --- /dev/null +++ b/level/block/dandelion.go @@ -0,0 +1,8 @@ +package block + +type Dandelion struct { +} + +func (Dandelion) ID() string { + return "minecraft:dandelion" +} diff --git a/level/block/dark_oak_button.go b/level/block/dark_oak_button.go new file mode 100644 index 0000000..30ef873 --- /dev/null +++ b/level/block/dark_oak_button.go @@ -0,0 +1,11 @@ +package block + +type DarkOakButton struct { + Face string + Facing string + Powered string +} + +func (DarkOakButton) ID() string { + return "minecraft:dark_oak_button" +} diff --git a/level/block/dark_oak_door.go b/level/block/dark_oak_door.go new file mode 100644 index 0000000..89533da --- /dev/null +++ b/level/block/dark_oak_door.go @@ -0,0 +1,13 @@ +package block + +type DarkOakDoor struct { + Facing string + Half string + Hinge string + Open string + Powered string +} + +func (DarkOakDoor) ID() string { + return "minecraft:dark_oak_door" +} diff --git a/level/block/dark_oak_fence.go b/level/block/dark_oak_fence.go new file mode 100644 index 0000000..bfe141e --- /dev/null +++ b/level/block/dark_oak_fence.go @@ -0,0 +1,13 @@ +package block + +type DarkOakFence struct { + East string + North string + South string + Waterlogged string + West string +} + +func (DarkOakFence) ID() string { + return "minecraft:dark_oak_fence" +} diff --git a/level/block/dark_oak_fence_gate.go b/level/block/dark_oak_fence_gate.go new file mode 100644 index 0000000..4a73e9b --- /dev/null +++ b/level/block/dark_oak_fence_gate.go @@ -0,0 +1,12 @@ +package block + +type DarkOakFenceGate struct { + Facing string + In_wall string + Open string + Powered string +} + +func (DarkOakFenceGate) ID() string { + return "minecraft:dark_oak_fence_gate" +} diff --git a/level/block/dark_oak_leaves.go b/level/block/dark_oak_leaves.go new file mode 100644 index 0000000..00cfe38 --- /dev/null +++ b/level/block/dark_oak_leaves.go @@ -0,0 +1,10 @@ +package block + +type DarkOakLeaves struct { + Distance string + Persistent string +} + +func (DarkOakLeaves) ID() string { + return "minecraft:dark_oak_leaves" +} diff --git a/level/block/dark_oak_log.go b/level/block/dark_oak_log.go new file mode 100644 index 0000000..542ba3f --- /dev/null +++ b/level/block/dark_oak_log.go @@ -0,0 +1,9 @@ +package block + +type DarkOakLog struct { + Axis string +} + +func (DarkOakLog) ID() string { + return "minecraft:dark_oak_log" +} diff --git a/level/block/dark_oak_planks.go b/level/block/dark_oak_planks.go new file mode 100644 index 0000000..3817b71 --- /dev/null +++ b/level/block/dark_oak_planks.go @@ -0,0 +1,8 @@ +package block + +type DarkOakPlanks struct { +} + +func (DarkOakPlanks) ID() string { + return "minecraft:dark_oak_planks" +} diff --git a/level/block/dark_oak_pressure_plate.go b/level/block/dark_oak_pressure_plate.go new file mode 100644 index 0000000..4f79f72 --- /dev/null +++ b/level/block/dark_oak_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type DarkOakPressurePlate struct { + Powered string +} + +func (DarkOakPressurePlate) ID() string { + return "minecraft:dark_oak_pressure_plate" +} diff --git a/level/block/dark_oak_sapling.go b/level/block/dark_oak_sapling.go new file mode 100644 index 0000000..ec45a39 --- /dev/null +++ b/level/block/dark_oak_sapling.go @@ -0,0 +1,9 @@ +package block + +type DarkOakSapling struct { + Stage string +} + +func (DarkOakSapling) ID() string { + return "minecraft:dark_oak_sapling" +} diff --git a/level/block/dark_oak_sign.go b/level/block/dark_oak_sign.go new file mode 100644 index 0000000..bd7642f --- /dev/null +++ b/level/block/dark_oak_sign.go @@ -0,0 +1,10 @@ +package block + +type DarkOakSign struct { + Rotation string + Waterlogged string +} + +func (DarkOakSign) ID() string { + return "minecraft:dark_oak_sign" +} diff --git a/level/block/dark_oak_slab.go b/level/block/dark_oak_slab.go new file mode 100644 index 0000000..f31310c --- /dev/null +++ b/level/block/dark_oak_slab.go @@ -0,0 +1,10 @@ +package block + +type DarkOakSlab struct { + Type string + Waterlogged string +} + +func (DarkOakSlab) ID() string { + return "minecraft:dark_oak_slab" +} diff --git a/level/block/dark_oak_stairs.go b/level/block/dark_oak_stairs.go new file mode 100644 index 0000000..3dc7e03 --- /dev/null +++ b/level/block/dark_oak_stairs.go @@ -0,0 +1,12 @@ +package block + +type DarkOakStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (DarkOakStairs) ID() string { + return "minecraft:dark_oak_stairs" +} diff --git a/level/block/dark_oak_trapdoor.go b/level/block/dark_oak_trapdoor.go new file mode 100644 index 0000000..28eb33e --- /dev/null +++ b/level/block/dark_oak_trapdoor.go @@ -0,0 +1,13 @@ +package block + +type DarkOakTrapdoor struct { + Facing string + Half string + Open string + Powered string + Waterlogged string +} + +func (DarkOakTrapdoor) ID() string { + return "minecraft:dark_oak_trapdoor" +} diff --git a/level/block/dark_oak_wall_sign.go b/level/block/dark_oak_wall_sign.go new file mode 100644 index 0000000..a902799 --- /dev/null +++ b/level/block/dark_oak_wall_sign.go @@ -0,0 +1,10 @@ +package block + +type DarkOakWallSign struct { + Facing string + Waterlogged string +} + +func (DarkOakWallSign) ID() string { + return "minecraft:dark_oak_wall_sign" +} diff --git a/level/block/dark_oak_wood.go b/level/block/dark_oak_wood.go new file mode 100644 index 0000000..be3706f --- /dev/null +++ b/level/block/dark_oak_wood.go @@ -0,0 +1,9 @@ +package block + +type DarkOakWood struct { + Axis string +} + +func (DarkOakWood) ID() string { + return "minecraft:dark_oak_wood" +} diff --git a/level/block/dark_prismarine.go b/level/block/dark_prismarine.go new file mode 100644 index 0000000..3344575 --- /dev/null +++ b/level/block/dark_prismarine.go @@ -0,0 +1,8 @@ +package block + +type DarkPrismarine struct { +} + +func (DarkPrismarine) ID() string { + return "minecraft:dark_prismarine" +} diff --git a/level/block/dark_prismarine_slab.go b/level/block/dark_prismarine_slab.go new file mode 100644 index 0000000..0204491 --- /dev/null +++ b/level/block/dark_prismarine_slab.go @@ -0,0 +1,10 @@ +package block + +type DarkPrismarineSlab struct { + Type string + Waterlogged string +} + +func (DarkPrismarineSlab) ID() string { + return "minecraft:dark_prismarine_slab" +} diff --git a/level/block/dark_prismarine_stairs.go b/level/block/dark_prismarine_stairs.go new file mode 100644 index 0000000..1834216 --- /dev/null +++ b/level/block/dark_prismarine_stairs.go @@ -0,0 +1,12 @@ +package block + +type DarkPrismarineStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (DarkPrismarineStairs) ID() string { + return "minecraft:dark_prismarine_stairs" +} diff --git a/level/block/daylight_detector.go b/level/block/daylight_detector.go new file mode 100644 index 0000000..e480d20 --- /dev/null +++ b/level/block/daylight_detector.go @@ -0,0 +1,10 @@ +package block + +type DaylightDetector struct { + Inverted string + Power string +} + +func (DaylightDetector) ID() string { + return "minecraft:daylight_detector" +} diff --git a/level/block/dead_brain_coral.go b/level/block/dead_brain_coral.go new file mode 100644 index 0000000..3b004ef --- /dev/null +++ b/level/block/dead_brain_coral.go @@ -0,0 +1,9 @@ +package block + +type DeadBrainCoral struct { + Waterlogged string +} + +func (DeadBrainCoral) ID() string { + return "minecraft:dead_brain_coral" +} diff --git a/level/block/dead_brain_coral_block.go b/level/block/dead_brain_coral_block.go new file mode 100644 index 0000000..ac4ea7d --- /dev/null +++ b/level/block/dead_brain_coral_block.go @@ -0,0 +1,8 @@ +package block + +type DeadBrainCoralBlock struct { +} + +func (DeadBrainCoralBlock) ID() string { + return "minecraft:dead_brain_coral_block" +} diff --git a/level/block/dead_brain_coral_fan.go b/level/block/dead_brain_coral_fan.go new file mode 100644 index 0000000..f162583 --- /dev/null +++ b/level/block/dead_brain_coral_fan.go @@ -0,0 +1,9 @@ +package block + +type DeadBrainCoralFan struct { + Waterlogged string +} + +func (DeadBrainCoralFan) ID() string { + return "minecraft:dead_brain_coral_fan" +} diff --git a/level/block/dead_brain_coral_wall_fan.go b/level/block/dead_brain_coral_wall_fan.go new file mode 100644 index 0000000..4cc3577 --- /dev/null +++ b/level/block/dead_brain_coral_wall_fan.go @@ -0,0 +1,10 @@ +package block + +type DeadBrainCoralWallFan struct { + Facing string + Waterlogged string +} + +func (DeadBrainCoralWallFan) ID() string { + return "minecraft:dead_brain_coral_wall_fan" +} diff --git a/level/block/dead_bubble_coral.go b/level/block/dead_bubble_coral.go new file mode 100644 index 0000000..8b20b61 --- /dev/null +++ b/level/block/dead_bubble_coral.go @@ -0,0 +1,9 @@ +package block + +type DeadBubbleCoral struct { + Waterlogged string +} + +func (DeadBubbleCoral) ID() string { + return "minecraft:dead_bubble_coral" +} diff --git a/level/block/dead_bubble_coral_block.go b/level/block/dead_bubble_coral_block.go new file mode 100644 index 0000000..e1af67d --- /dev/null +++ b/level/block/dead_bubble_coral_block.go @@ -0,0 +1,8 @@ +package block + +type DeadBubbleCoralBlock struct { +} + +func (DeadBubbleCoralBlock) ID() string { + return "minecraft:dead_bubble_coral_block" +} diff --git a/level/block/dead_bubble_coral_fan.go b/level/block/dead_bubble_coral_fan.go new file mode 100644 index 0000000..ad232de --- /dev/null +++ b/level/block/dead_bubble_coral_fan.go @@ -0,0 +1,9 @@ +package block + +type DeadBubbleCoralFan struct { + Waterlogged string +} + +func (DeadBubbleCoralFan) ID() string { + return "minecraft:dead_bubble_coral_fan" +} diff --git a/level/block/dead_bubble_coral_wall_fan.go b/level/block/dead_bubble_coral_wall_fan.go new file mode 100644 index 0000000..3d4551a --- /dev/null +++ b/level/block/dead_bubble_coral_wall_fan.go @@ -0,0 +1,10 @@ +package block + +type DeadBubbleCoralWallFan struct { + Facing string + Waterlogged string +} + +func (DeadBubbleCoralWallFan) ID() string { + return "minecraft:dead_bubble_coral_wall_fan" +} diff --git a/level/block/dead_bush.go b/level/block/dead_bush.go new file mode 100644 index 0000000..d4f9ebc --- /dev/null +++ b/level/block/dead_bush.go @@ -0,0 +1,8 @@ +package block + +type DeadBush struct { +} + +func (DeadBush) ID() string { + return "minecraft:dead_bush" +} diff --git a/level/block/dead_fire_coral.go b/level/block/dead_fire_coral.go new file mode 100644 index 0000000..b4ebbdb --- /dev/null +++ b/level/block/dead_fire_coral.go @@ -0,0 +1,9 @@ +package block + +type DeadFireCoral struct { + Waterlogged string +} + +func (DeadFireCoral) ID() string { + return "minecraft:dead_fire_coral" +} diff --git a/level/block/dead_fire_coral_block.go b/level/block/dead_fire_coral_block.go new file mode 100644 index 0000000..efd3845 --- /dev/null +++ b/level/block/dead_fire_coral_block.go @@ -0,0 +1,8 @@ +package block + +type DeadFireCoralBlock struct { +} + +func (DeadFireCoralBlock) ID() string { + return "minecraft:dead_fire_coral_block" +} diff --git a/level/block/dead_fire_coral_fan.go b/level/block/dead_fire_coral_fan.go new file mode 100644 index 0000000..93b5c04 --- /dev/null +++ b/level/block/dead_fire_coral_fan.go @@ -0,0 +1,9 @@ +package block + +type DeadFireCoralFan struct { + Waterlogged string +} + +func (DeadFireCoralFan) ID() string { + return "minecraft:dead_fire_coral_fan" +} diff --git a/level/block/dead_fire_coral_wall_fan.go b/level/block/dead_fire_coral_wall_fan.go new file mode 100644 index 0000000..8537f94 --- /dev/null +++ b/level/block/dead_fire_coral_wall_fan.go @@ -0,0 +1,10 @@ +package block + +type DeadFireCoralWallFan struct { + Facing string + Waterlogged string +} + +func (DeadFireCoralWallFan) ID() string { + return "minecraft:dead_fire_coral_wall_fan" +} diff --git a/level/block/dead_horn_coral.go b/level/block/dead_horn_coral.go new file mode 100644 index 0000000..1f2b08f --- /dev/null +++ b/level/block/dead_horn_coral.go @@ -0,0 +1,9 @@ +package block + +type DeadHornCoral struct { + Waterlogged string +} + +func (DeadHornCoral) ID() string { + return "minecraft:dead_horn_coral" +} diff --git a/level/block/dead_horn_coral_block.go b/level/block/dead_horn_coral_block.go new file mode 100644 index 0000000..d6f7fe1 --- /dev/null +++ b/level/block/dead_horn_coral_block.go @@ -0,0 +1,8 @@ +package block + +type DeadHornCoralBlock struct { +} + +func (DeadHornCoralBlock) ID() string { + return "minecraft:dead_horn_coral_block" +} diff --git a/level/block/dead_horn_coral_fan.go b/level/block/dead_horn_coral_fan.go new file mode 100644 index 0000000..ea21da5 --- /dev/null +++ b/level/block/dead_horn_coral_fan.go @@ -0,0 +1,9 @@ +package block + +type DeadHornCoralFan struct { + Waterlogged string +} + +func (DeadHornCoralFan) ID() string { + return "minecraft:dead_horn_coral_fan" +} diff --git a/level/block/dead_horn_coral_wall_fan.go b/level/block/dead_horn_coral_wall_fan.go new file mode 100644 index 0000000..48df3ca --- /dev/null +++ b/level/block/dead_horn_coral_wall_fan.go @@ -0,0 +1,10 @@ +package block + +type DeadHornCoralWallFan struct { + Facing string + Waterlogged string +} + +func (DeadHornCoralWallFan) ID() string { + return "minecraft:dead_horn_coral_wall_fan" +} diff --git a/level/block/dead_tube_coral.go b/level/block/dead_tube_coral.go new file mode 100644 index 0000000..62eea0e --- /dev/null +++ b/level/block/dead_tube_coral.go @@ -0,0 +1,9 @@ +package block + +type DeadTubeCoral struct { + Waterlogged string +} + +func (DeadTubeCoral) ID() string { + return "minecraft:dead_tube_coral" +} diff --git a/level/block/dead_tube_coral_block.go b/level/block/dead_tube_coral_block.go new file mode 100644 index 0000000..fb069d9 --- /dev/null +++ b/level/block/dead_tube_coral_block.go @@ -0,0 +1,8 @@ +package block + +type DeadTubeCoralBlock struct { +} + +func (DeadTubeCoralBlock) ID() string { + return "minecraft:dead_tube_coral_block" +} diff --git a/level/block/dead_tube_coral_fan.go b/level/block/dead_tube_coral_fan.go new file mode 100644 index 0000000..ac64c05 --- /dev/null +++ b/level/block/dead_tube_coral_fan.go @@ -0,0 +1,9 @@ +package block + +type DeadTubeCoralFan struct { + Waterlogged string +} + +func (DeadTubeCoralFan) ID() string { + return "minecraft:dead_tube_coral_fan" +} diff --git a/level/block/dead_tube_coral_wall_fan.go b/level/block/dead_tube_coral_wall_fan.go new file mode 100644 index 0000000..2f08e0f --- /dev/null +++ b/level/block/dead_tube_coral_wall_fan.go @@ -0,0 +1,10 @@ +package block + +type DeadTubeCoralWallFan struct { + Facing string + Waterlogged string +} + +func (DeadTubeCoralWallFan) ID() string { + return "minecraft:dead_tube_coral_wall_fan" +} diff --git a/level/block/deepslate.go b/level/block/deepslate.go new file mode 100644 index 0000000..8274bf6 --- /dev/null +++ b/level/block/deepslate.go @@ -0,0 +1,9 @@ +package block + +type Deepslate struct { + Axis string +} + +func (Deepslate) ID() string { + return "minecraft:deepslate" +} diff --git a/level/block/deepslate_brick_slab.go b/level/block/deepslate_brick_slab.go new file mode 100644 index 0000000..3f8042a --- /dev/null +++ b/level/block/deepslate_brick_slab.go @@ -0,0 +1,10 @@ +package block + +type DeepslateBrickSlab struct { + Type string + Waterlogged string +} + +func (DeepslateBrickSlab) ID() string { + return "minecraft:deepslate_brick_slab" +} diff --git a/level/block/deepslate_brick_stairs.go b/level/block/deepslate_brick_stairs.go new file mode 100644 index 0000000..c55f00c --- /dev/null +++ b/level/block/deepslate_brick_stairs.go @@ -0,0 +1,12 @@ +package block + +type DeepslateBrickStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (DeepslateBrickStairs) ID() string { + return "minecraft:deepslate_brick_stairs" +} diff --git a/level/block/deepslate_brick_wall.go b/level/block/deepslate_brick_wall.go new file mode 100644 index 0000000..2d49d9b --- /dev/null +++ b/level/block/deepslate_brick_wall.go @@ -0,0 +1,14 @@ +package block + +type DeepslateBrickWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (DeepslateBrickWall) ID() string { + return "minecraft:deepslate_brick_wall" +} diff --git a/level/block/deepslate_bricks.go b/level/block/deepslate_bricks.go new file mode 100644 index 0000000..7b1f1d2 --- /dev/null +++ b/level/block/deepslate_bricks.go @@ -0,0 +1,8 @@ +package block + +type DeepslateBricks struct { +} + +func (DeepslateBricks) ID() string { + return "minecraft:deepslate_bricks" +} diff --git a/level/block/deepslate_coal_ore.go b/level/block/deepslate_coal_ore.go new file mode 100644 index 0000000..ef90d33 --- /dev/null +++ b/level/block/deepslate_coal_ore.go @@ -0,0 +1,8 @@ +package block + +type DeepslateCoalOre struct { +} + +func (DeepslateCoalOre) ID() string { + return "minecraft:deepslate_coal_ore" +} diff --git a/level/block/deepslate_copper_ore.go b/level/block/deepslate_copper_ore.go new file mode 100644 index 0000000..86739fc --- /dev/null +++ b/level/block/deepslate_copper_ore.go @@ -0,0 +1,8 @@ +package block + +type DeepslateCopperOre struct { +} + +func (DeepslateCopperOre) ID() string { + return "minecraft:deepslate_copper_ore" +} diff --git a/level/block/deepslate_diamond_ore.go b/level/block/deepslate_diamond_ore.go new file mode 100644 index 0000000..2ee945a --- /dev/null +++ b/level/block/deepslate_diamond_ore.go @@ -0,0 +1,8 @@ +package block + +type DeepslateDiamondOre struct { +} + +func (DeepslateDiamondOre) ID() string { + return "minecraft:deepslate_diamond_ore" +} diff --git a/level/block/deepslate_emerald_ore.go b/level/block/deepslate_emerald_ore.go new file mode 100644 index 0000000..233f13b --- /dev/null +++ b/level/block/deepslate_emerald_ore.go @@ -0,0 +1,8 @@ +package block + +type DeepslateEmeraldOre struct { +} + +func (DeepslateEmeraldOre) ID() string { + return "minecraft:deepslate_emerald_ore" +} diff --git a/level/block/deepslate_gold_ore.go b/level/block/deepslate_gold_ore.go new file mode 100644 index 0000000..50fbd4c --- /dev/null +++ b/level/block/deepslate_gold_ore.go @@ -0,0 +1,8 @@ +package block + +type DeepslateGoldOre struct { +} + +func (DeepslateGoldOre) ID() string { + return "minecraft:deepslate_gold_ore" +} diff --git a/level/block/deepslate_iron_ore.go b/level/block/deepslate_iron_ore.go new file mode 100644 index 0000000..b9e8e86 --- /dev/null +++ b/level/block/deepslate_iron_ore.go @@ -0,0 +1,8 @@ +package block + +type DeepslateIronOre struct { +} + +func (DeepslateIronOre) ID() string { + return "minecraft:deepslate_iron_ore" +} diff --git a/level/block/deepslate_lapis_ore.go b/level/block/deepslate_lapis_ore.go new file mode 100644 index 0000000..6c655b9 --- /dev/null +++ b/level/block/deepslate_lapis_ore.go @@ -0,0 +1,8 @@ +package block + +type DeepslateLapisOre struct { +} + +func (DeepslateLapisOre) ID() string { + return "minecraft:deepslate_lapis_ore" +} diff --git a/level/block/deepslate_redstone_ore.go b/level/block/deepslate_redstone_ore.go new file mode 100644 index 0000000..e151ff0 --- /dev/null +++ b/level/block/deepslate_redstone_ore.go @@ -0,0 +1,9 @@ +package block + +type DeepslateRedstoneOre struct { + Lit string +} + +func (DeepslateRedstoneOre) ID() string { + return "minecraft:deepslate_redstone_ore" +} diff --git a/level/block/deepslate_tile_slab.go b/level/block/deepslate_tile_slab.go new file mode 100644 index 0000000..19df79f --- /dev/null +++ b/level/block/deepslate_tile_slab.go @@ -0,0 +1,10 @@ +package block + +type DeepslateTileSlab struct { + Type string + Waterlogged string +} + +func (DeepslateTileSlab) ID() string { + return "minecraft:deepslate_tile_slab" +} diff --git a/level/block/deepslate_tile_stairs.go b/level/block/deepslate_tile_stairs.go new file mode 100644 index 0000000..cc8ef0d --- /dev/null +++ b/level/block/deepslate_tile_stairs.go @@ -0,0 +1,12 @@ +package block + +type DeepslateTileStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (DeepslateTileStairs) ID() string { + return "minecraft:deepslate_tile_stairs" +} diff --git a/level/block/deepslate_tile_wall.go b/level/block/deepslate_tile_wall.go new file mode 100644 index 0000000..429816d --- /dev/null +++ b/level/block/deepslate_tile_wall.go @@ -0,0 +1,14 @@ +package block + +type DeepslateTileWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (DeepslateTileWall) ID() string { + return "minecraft:deepslate_tile_wall" +} diff --git a/level/block/deepslate_tiles.go b/level/block/deepslate_tiles.go new file mode 100644 index 0000000..572d0a2 --- /dev/null +++ b/level/block/deepslate_tiles.go @@ -0,0 +1,8 @@ +package block + +type DeepslateTiles struct { +} + +func (DeepslateTiles) ID() string { + return "minecraft:deepslate_tiles" +} diff --git a/level/block/detector_rail.go b/level/block/detector_rail.go new file mode 100644 index 0000000..f65de6a --- /dev/null +++ b/level/block/detector_rail.go @@ -0,0 +1,11 @@ +package block + +type DetectorRail struct { + Powered string + Shape string + Waterlogged string +} + +func (DetectorRail) ID() string { + return "minecraft:detector_rail" +} diff --git a/level/block/diamond_block.go b/level/block/diamond_block.go new file mode 100644 index 0000000..077cf54 --- /dev/null +++ b/level/block/diamond_block.go @@ -0,0 +1,8 @@ +package block + +type DiamondBlock struct { +} + +func (DiamondBlock) ID() string { + return "minecraft:diamond_block" +} diff --git a/level/block/diamond_ore.go b/level/block/diamond_ore.go new file mode 100644 index 0000000..3f069c6 --- /dev/null +++ b/level/block/diamond_ore.go @@ -0,0 +1,8 @@ +package block + +type DiamondOre struct { +} + +func (DiamondOre) ID() string { + return "minecraft:diamond_ore" +} diff --git a/level/block/diorite.go b/level/block/diorite.go new file mode 100644 index 0000000..160cb0e --- /dev/null +++ b/level/block/diorite.go @@ -0,0 +1,8 @@ +package block + +type Diorite struct { +} + +func (Diorite) ID() string { + return "minecraft:diorite" +} diff --git a/level/block/diorite_slab.go b/level/block/diorite_slab.go new file mode 100644 index 0000000..54158d7 --- /dev/null +++ b/level/block/diorite_slab.go @@ -0,0 +1,10 @@ +package block + +type DioriteSlab struct { + Type string + Waterlogged string +} + +func (DioriteSlab) ID() string { + return "minecraft:diorite_slab" +} diff --git a/level/block/diorite_stairs.go b/level/block/diorite_stairs.go new file mode 100644 index 0000000..ff7bfec --- /dev/null +++ b/level/block/diorite_stairs.go @@ -0,0 +1,12 @@ +package block + +type DioriteStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (DioriteStairs) ID() string { + return "minecraft:diorite_stairs" +} diff --git a/level/block/diorite_wall.go b/level/block/diorite_wall.go new file mode 100644 index 0000000..62ad39d --- /dev/null +++ b/level/block/diorite_wall.go @@ -0,0 +1,14 @@ +package block + +type DioriteWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (DioriteWall) ID() string { + return "minecraft:diorite_wall" +} diff --git a/level/block/dirt.go b/level/block/dirt.go new file mode 100644 index 0000000..2af6fed --- /dev/null +++ b/level/block/dirt.go @@ -0,0 +1,8 @@ +package block + +type Dirt struct { +} + +func (Dirt) ID() string { + return "minecraft:dirt" +} diff --git a/level/block/dirt_path.go b/level/block/dirt_path.go new file mode 100644 index 0000000..537539f --- /dev/null +++ b/level/block/dirt_path.go @@ -0,0 +1,8 @@ +package block + +type DirtPath struct { +} + +func (DirtPath) ID() string { + return "minecraft:dirt_path" +} diff --git a/level/block/dispenser.go b/level/block/dispenser.go new file mode 100644 index 0000000..03a4ce5 --- /dev/null +++ b/level/block/dispenser.go @@ -0,0 +1,10 @@ +package block + +type Dispenser struct { + Facing string + Triggered string +} + +func (Dispenser) ID() string { + return "minecraft:dispenser" +} diff --git a/level/block/dragon_egg.go b/level/block/dragon_egg.go new file mode 100644 index 0000000..2dc5c14 --- /dev/null +++ b/level/block/dragon_egg.go @@ -0,0 +1,8 @@ +package block + +type DragonEgg struct { +} + +func (DragonEgg) ID() string { + return "minecraft:dragon_egg" +} diff --git a/level/block/dragon_head.go b/level/block/dragon_head.go new file mode 100644 index 0000000..d71d7a2 --- /dev/null +++ b/level/block/dragon_head.go @@ -0,0 +1,9 @@ +package block + +type DragonHead struct { + Rotation string +} + +func (DragonHead) ID() string { + return "minecraft:dragon_head" +} diff --git a/level/block/dragon_wall_head.go b/level/block/dragon_wall_head.go new file mode 100644 index 0000000..e7a9c3a --- /dev/null +++ b/level/block/dragon_wall_head.go @@ -0,0 +1,9 @@ +package block + +type DragonWallHead struct { + Facing string +} + +func (DragonWallHead) ID() string { + return "minecraft:dragon_wall_head" +} diff --git a/level/block/dried_kelp_block.go b/level/block/dried_kelp_block.go new file mode 100644 index 0000000..abcf7f7 --- /dev/null +++ b/level/block/dried_kelp_block.go @@ -0,0 +1,8 @@ +package block + +type DriedKelpBlock struct { +} + +func (DriedKelpBlock) ID() string { + return "minecraft:dried_kelp_block" +} diff --git a/level/block/dripstone_block.go b/level/block/dripstone_block.go new file mode 100644 index 0000000..f0ca34b --- /dev/null +++ b/level/block/dripstone_block.go @@ -0,0 +1,8 @@ +package block + +type DripstoneBlock struct { +} + +func (DripstoneBlock) ID() string { + return "minecraft:dripstone_block" +} diff --git a/level/block/dropper.go b/level/block/dropper.go new file mode 100644 index 0000000..d4fee3d --- /dev/null +++ b/level/block/dropper.go @@ -0,0 +1,10 @@ +package block + +type Dropper struct { + Facing string + Triggered string +} + +func (Dropper) ID() string { + return "minecraft:dropper" +} diff --git a/level/block/emerald_block.go b/level/block/emerald_block.go new file mode 100644 index 0000000..7692b7e --- /dev/null +++ b/level/block/emerald_block.go @@ -0,0 +1,8 @@ +package block + +type EmeraldBlock struct { +} + +func (EmeraldBlock) ID() string { + return "minecraft:emerald_block" +} diff --git a/level/block/emerald_ore.go b/level/block/emerald_ore.go new file mode 100644 index 0000000..00a7c4b --- /dev/null +++ b/level/block/emerald_ore.go @@ -0,0 +1,8 @@ +package block + +type EmeraldOre struct { +} + +func (EmeraldOre) ID() string { + return "minecraft:emerald_ore" +} diff --git a/level/block/enchanting_table.go b/level/block/enchanting_table.go new file mode 100644 index 0000000..07074de --- /dev/null +++ b/level/block/enchanting_table.go @@ -0,0 +1,8 @@ +package block + +type EnchantingTable struct { +} + +func (EnchantingTable) ID() string { + return "minecraft:enchanting_table" +} diff --git a/level/block/end_gateway.go b/level/block/end_gateway.go new file mode 100644 index 0000000..81d2a8d --- /dev/null +++ b/level/block/end_gateway.go @@ -0,0 +1,8 @@ +package block + +type EndGateway struct { +} + +func (EndGateway) ID() string { + return "minecraft:end_gateway" +} diff --git a/level/block/end_portal.go b/level/block/end_portal.go new file mode 100644 index 0000000..24b8b68 --- /dev/null +++ b/level/block/end_portal.go @@ -0,0 +1,8 @@ +package block + +type EndPortal struct { +} + +func (EndPortal) ID() string { + return "minecraft:end_portal" +} diff --git a/level/block/end_portal_frame.go b/level/block/end_portal_frame.go new file mode 100644 index 0000000..6324572 --- /dev/null +++ b/level/block/end_portal_frame.go @@ -0,0 +1,10 @@ +package block + +type EndPortalFrame struct { + Eye string + Facing string +} + +func (EndPortalFrame) ID() string { + return "minecraft:end_portal_frame" +} diff --git a/level/block/end_rod.go b/level/block/end_rod.go new file mode 100644 index 0000000..522cd59 --- /dev/null +++ b/level/block/end_rod.go @@ -0,0 +1,9 @@ +package block + +type EndRod struct { + Facing string +} + +func (EndRod) ID() string { + return "minecraft:end_rod" +} diff --git a/level/block/end_stone.go b/level/block/end_stone.go new file mode 100644 index 0000000..86c1753 --- /dev/null +++ b/level/block/end_stone.go @@ -0,0 +1,8 @@ +package block + +type EndStone struct { +} + +func (EndStone) ID() string { + return "minecraft:end_stone" +} diff --git a/level/block/end_stone_brick_slab.go b/level/block/end_stone_brick_slab.go new file mode 100644 index 0000000..56f60a9 --- /dev/null +++ b/level/block/end_stone_brick_slab.go @@ -0,0 +1,10 @@ +package block + +type EndStoneBrickSlab struct { + Type string + Waterlogged string +} + +func (EndStoneBrickSlab) ID() string { + return "minecraft:end_stone_brick_slab" +} diff --git a/level/block/end_stone_brick_stairs.go b/level/block/end_stone_brick_stairs.go new file mode 100644 index 0000000..44f40d5 --- /dev/null +++ b/level/block/end_stone_brick_stairs.go @@ -0,0 +1,12 @@ +package block + +type EndStoneBrickStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (EndStoneBrickStairs) ID() string { + return "minecraft:end_stone_brick_stairs" +} diff --git a/level/block/end_stone_brick_wall.go b/level/block/end_stone_brick_wall.go new file mode 100644 index 0000000..123c998 --- /dev/null +++ b/level/block/end_stone_brick_wall.go @@ -0,0 +1,14 @@ +package block + +type EndStoneBrickWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (EndStoneBrickWall) ID() string { + return "minecraft:end_stone_brick_wall" +} diff --git a/level/block/end_stone_bricks.go b/level/block/end_stone_bricks.go new file mode 100644 index 0000000..8e8fc37 --- /dev/null +++ b/level/block/end_stone_bricks.go @@ -0,0 +1,8 @@ +package block + +type EndStoneBricks struct { +} + +func (EndStoneBricks) ID() string { + return "minecraft:end_stone_bricks" +} diff --git a/level/block/ender_chest.go b/level/block/ender_chest.go new file mode 100644 index 0000000..4ec26fe --- /dev/null +++ b/level/block/ender_chest.go @@ -0,0 +1,10 @@ +package block + +type EnderChest struct { + Facing string + Waterlogged string +} + +func (EnderChest) ID() string { + return "minecraft:ender_chest" +} diff --git a/level/block/exposed_copper.go b/level/block/exposed_copper.go new file mode 100644 index 0000000..449d673 --- /dev/null +++ b/level/block/exposed_copper.go @@ -0,0 +1,8 @@ +package block + +type ExposedCopper struct { +} + +func (ExposedCopper) ID() string { + return "minecraft:exposed_copper" +} diff --git a/level/block/exposed_cut_copper.go b/level/block/exposed_cut_copper.go new file mode 100644 index 0000000..6684185 --- /dev/null +++ b/level/block/exposed_cut_copper.go @@ -0,0 +1,8 @@ +package block + +type ExposedCutCopper struct { +} + +func (ExposedCutCopper) ID() string { + return "minecraft:exposed_cut_copper" +} diff --git a/level/block/exposed_cut_copper_slab.go b/level/block/exposed_cut_copper_slab.go new file mode 100644 index 0000000..4e2364c --- /dev/null +++ b/level/block/exposed_cut_copper_slab.go @@ -0,0 +1,10 @@ +package block + +type ExposedCutCopperSlab struct { + Type string + Waterlogged string +} + +func (ExposedCutCopperSlab) ID() string { + return "minecraft:exposed_cut_copper_slab" +} diff --git a/level/block/exposed_cut_copper_stairs.go b/level/block/exposed_cut_copper_stairs.go new file mode 100644 index 0000000..5698cd2 --- /dev/null +++ b/level/block/exposed_cut_copper_stairs.go @@ -0,0 +1,12 @@ +package block + +type ExposedCutCopperStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (ExposedCutCopperStairs) ID() string { + return "minecraft:exposed_cut_copper_stairs" +} diff --git a/level/block/farmland.go b/level/block/farmland.go new file mode 100644 index 0000000..884fd31 --- /dev/null +++ b/level/block/farmland.go @@ -0,0 +1,9 @@ +package block + +type Farmland struct { + Moisture string +} + +func (Farmland) ID() string { + return "minecraft:farmland" +} diff --git a/level/block/fern.go b/level/block/fern.go new file mode 100644 index 0000000..fdd79d1 --- /dev/null +++ b/level/block/fern.go @@ -0,0 +1,8 @@ +package block + +type Fern struct { +} + +func (Fern) ID() string { + return "minecraft:fern" +} diff --git a/level/block/fire.go b/level/block/fire.go new file mode 100644 index 0000000..a31883c --- /dev/null +++ b/level/block/fire.go @@ -0,0 +1,14 @@ +package block + +type Fire struct { + Age string + East string + North string + South string + Up string + West string +} + +func (Fire) ID() string { + return "minecraft:fire" +} diff --git a/level/block/fire_coral.go b/level/block/fire_coral.go new file mode 100644 index 0000000..e3f1408 --- /dev/null +++ b/level/block/fire_coral.go @@ -0,0 +1,9 @@ +package block + +type FireCoral struct { + Waterlogged string +} + +func (FireCoral) ID() string { + return "minecraft:fire_coral" +} diff --git a/level/block/fire_coral_block.go b/level/block/fire_coral_block.go new file mode 100644 index 0000000..a5755a0 --- /dev/null +++ b/level/block/fire_coral_block.go @@ -0,0 +1,8 @@ +package block + +type FireCoralBlock struct { +} + +func (FireCoralBlock) ID() string { + return "minecraft:fire_coral_block" +} diff --git a/level/block/fire_coral_fan.go b/level/block/fire_coral_fan.go new file mode 100644 index 0000000..81ad098 --- /dev/null +++ b/level/block/fire_coral_fan.go @@ -0,0 +1,9 @@ +package block + +type FireCoralFan struct { + Waterlogged string +} + +func (FireCoralFan) ID() string { + return "minecraft:fire_coral_fan" +} diff --git a/level/block/fire_coral_wall_fan.go b/level/block/fire_coral_wall_fan.go new file mode 100644 index 0000000..a8fb125 --- /dev/null +++ b/level/block/fire_coral_wall_fan.go @@ -0,0 +1,10 @@ +package block + +type FireCoralWallFan struct { + Facing string + Waterlogged string +} + +func (FireCoralWallFan) ID() string { + return "minecraft:fire_coral_wall_fan" +} diff --git a/level/block/fletching_table.go b/level/block/fletching_table.go new file mode 100644 index 0000000..42bd1c0 --- /dev/null +++ b/level/block/fletching_table.go @@ -0,0 +1,8 @@ +package block + +type FletchingTable struct { +} + +func (FletchingTable) ID() string { + return "minecraft:fletching_table" +} diff --git a/level/block/flower_pot.go b/level/block/flower_pot.go new file mode 100644 index 0000000..1f9f874 --- /dev/null +++ b/level/block/flower_pot.go @@ -0,0 +1,8 @@ +package block + +type FlowerPot struct { +} + +func (FlowerPot) ID() string { + return "minecraft:flower_pot" +} diff --git a/level/block/flowering_azalea.go b/level/block/flowering_azalea.go new file mode 100644 index 0000000..857b52c --- /dev/null +++ b/level/block/flowering_azalea.go @@ -0,0 +1,8 @@ +package block + +type FloweringAzalea struct { +} + +func (FloweringAzalea) ID() string { + return "minecraft:flowering_azalea" +} diff --git a/level/block/flowering_azalea_leaves.go b/level/block/flowering_azalea_leaves.go new file mode 100644 index 0000000..aea1da9 --- /dev/null +++ b/level/block/flowering_azalea_leaves.go @@ -0,0 +1,10 @@ +package block + +type FloweringAzaleaLeaves struct { + Distance string + Persistent string +} + +func (FloweringAzaleaLeaves) ID() string { + return "minecraft:flowering_azalea_leaves" +} diff --git a/level/block/frosted_ice.go b/level/block/frosted_ice.go new file mode 100644 index 0000000..0398217 --- /dev/null +++ b/level/block/frosted_ice.go @@ -0,0 +1,9 @@ +package block + +type FrostedIce struct { + Age string +} + +func (FrostedIce) ID() string { + return "minecraft:frosted_ice" +} diff --git a/level/block/furnace.go b/level/block/furnace.go new file mode 100644 index 0000000..87fb41a --- /dev/null +++ b/level/block/furnace.go @@ -0,0 +1,10 @@ +package block + +type Furnace struct { + Facing string + Lit string +} + +func (Furnace) ID() string { + return "minecraft:furnace" +} diff --git a/level/block/generator/main.go b/level/block/generator/main.go new file mode 100644 index 0000000..649b017 --- /dev/null +++ b/level/block/generator/main.go @@ -0,0 +1,99 @@ +package main + +import ( + "log" + "os" + "reflect" + "strings" + "text/template" + "unicode" + + "github.com/Tnze/go-mc/nbt" +) + +const tempSource = `package block + +type {{.Name | ToGoTypeName}} struct { {{range $key, $elem := .Properties}} + {{$key | UpperTheFirst}} {{$elem | GetType}} {{ end }} +} + +func ({{.Name | ToGoTypeName}}) ID() string { + return {{.Name | printf "%q"}} +} +` + +var temp = template.Must(template. + New("block_template"). + Funcs(template.FuncMap{ + "UpperTheFirst": UpperTheFirst, + "ToGoTypeName": ToGoTypeName, + "GetType": GetType, + }). + Parse(tempSource)) + +type State struct { + Name string + Properties map[string]interface{} +} + +func main() { + var states []State + readBlockStates(&states) + + // generate go sources for each blocks + for _, state := range states { + genSourceFile(state) + } +} + +func readBlockStates(states *[]State) { + // open block_states data file + f, err := os.Open("testdata/block_states.nbt") + if err != nil { + log.Panic(err) + } + defer f.Close() + + // parse the nbt format + if _, err := nbt.NewDecoder(f).Decode(states); err != nil { + log.Panic(err) + } +} + +func genSourceFile(state State) { + filename := strings.TrimPrefix(state.Name, "minecraft:") + ".go" + file, err := os.Create(filename) + if err != nil { + log.Panic(err) + } + defer file.Close() + // clean up the file + if err := file.Truncate(0); err != nil { + return + } + + if err := temp.Execute(file, state); err != nil { + log.Panic(err) + } +} + +func ToGoTypeName(name string) string { + name = strings.TrimPrefix(name, "minecraft:") + words := strings.Split(name, "_") + for i := range words { + words[i] = UpperTheFirst(words[i]) + } + return strings.Join(words, "") +} + +func GetType(v interface{}) string { + return reflect.TypeOf(v).String() +} + +func UpperTheFirst(word string) string { + runes := []rune(word) + if len(runes) > 0 { + runes[0] = unicode.ToUpper(runes[0]) + } + return string(runes) +} diff --git a/level/block/gilded_blackstone.go b/level/block/gilded_blackstone.go new file mode 100644 index 0000000..e3e20d6 --- /dev/null +++ b/level/block/gilded_blackstone.go @@ -0,0 +1,8 @@ +package block + +type GildedBlackstone struct { +} + +func (GildedBlackstone) ID() string { + return "minecraft:gilded_blackstone" +} diff --git a/level/block/glass.go b/level/block/glass.go new file mode 100644 index 0000000..bf3ad8b --- /dev/null +++ b/level/block/glass.go @@ -0,0 +1,8 @@ +package block + +type Glass struct { +} + +func (Glass) ID() string { + return "minecraft:glass" +} diff --git a/level/block/glass_pane.go b/level/block/glass_pane.go new file mode 100644 index 0000000..e2e6d39 --- /dev/null +++ b/level/block/glass_pane.go @@ -0,0 +1,13 @@ +package block + +type GlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (GlassPane) ID() string { + return "minecraft:glass_pane" +} diff --git a/level/block/glow_lichen.go b/level/block/glow_lichen.go new file mode 100644 index 0000000..54ebab2 --- /dev/null +++ b/level/block/glow_lichen.go @@ -0,0 +1,15 @@ +package block + +type GlowLichen struct { + Down string + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (GlowLichen) ID() string { + return "minecraft:glow_lichen" +} diff --git a/level/block/glowstone.go b/level/block/glowstone.go new file mode 100644 index 0000000..e4af218 --- /dev/null +++ b/level/block/glowstone.go @@ -0,0 +1,8 @@ +package block + +type Glowstone struct { +} + +func (Glowstone) ID() string { + return "minecraft:glowstone" +} diff --git a/level/block/gold_block.go b/level/block/gold_block.go new file mode 100644 index 0000000..cd52bf0 --- /dev/null +++ b/level/block/gold_block.go @@ -0,0 +1,8 @@ +package block + +type GoldBlock struct { +} + +func (GoldBlock) ID() string { + return "minecraft:gold_block" +} diff --git a/level/block/gold_ore.go b/level/block/gold_ore.go new file mode 100644 index 0000000..04a5fd2 --- /dev/null +++ b/level/block/gold_ore.go @@ -0,0 +1,8 @@ +package block + +type GoldOre struct { +} + +func (GoldOre) ID() string { + return "minecraft:gold_ore" +} diff --git a/level/block/granite.go b/level/block/granite.go new file mode 100644 index 0000000..3c99116 --- /dev/null +++ b/level/block/granite.go @@ -0,0 +1,8 @@ +package block + +type Granite struct { +} + +func (Granite) ID() string { + return "minecraft:granite" +} diff --git a/level/block/granite_slab.go b/level/block/granite_slab.go new file mode 100644 index 0000000..5ed0e30 --- /dev/null +++ b/level/block/granite_slab.go @@ -0,0 +1,10 @@ +package block + +type GraniteSlab struct { + Type string + Waterlogged string +} + +func (GraniteSlab) ID() string { + return "minecraft:granite_slab" +} diff --git a/level/block/granite_stairs.go b/level/block/granite_stairs.go new file mode 100644 index 0000000..7874600 --- /dev/null +++ b/level/block/granite_stairs.go @@ -0,0 +1,12 @@ +package block + +type GraniteStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (GraniteStairs) ID() string { + return "minecraft:granite_stairs" +} diff --git a/level/block/granite_wall.go b/level/block/granite_wall.go new file mode 100644 index 0000000..70a5c62 --- /dev/null +++ b/level/block/granite_wall.go @@ -0,0 +1,14 @@ +package block + +type GraniteWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (GraniteWall) ID() string { + return "minecraft:granite_wall" +} diff --git a/level/block/grass.go b/level/block/grass.go new file mode 100644 index 0000000..4ea1d2d --- /dev/null +++ b/level/block/grass.go @@ -0,0 +1,8 @@ +package block + +type Grass struct { +} + +func (Grass) ID() string { + return "minecraft:grass" +} diff --git a/level/block/grass_block.go b/level/block/grass_block.go new file mode 100644 index 0000000..d85e7dc --- /dev/null +++ b/level/block/grass_block.go @@ -0,0 +1,9 @@ +package block + +type GrassBlock struct { + Snowy string +} + +func (GrassBlock) ID() string { + return "minecraft:grass_block" +} diff --git a/level/block/gravel.go b/level/block/gravel.go new file mode 100644 index 0000000..702d708 --- /dev/null +++ b/level/block/gravel.go @@ -0,0 +1,8 @@ +package block + +type Gravel struct { +} + +func (Gravel) ID() string { + return "minecraft:gravel" +} diff --git a/level/block/gray_banner.go b/level/block/gray_banner.go new file mode 100644 index 0000000..eccd5ec --- /dev/null +++ b/level/block/gray_banner.go @@ -0,0 +1,9 @@ +package block + +type GrayBanner struct { + Rotation string +} + +func (GrayBanner) ID() string { + return "minecraft:gray_banner" +} diff --git a/level/block/gray_bed.go b/level/block/gray_bed.go new file mode 100644 index 0000000..3a40d74 --- /dev/null +++ b/level/block/gray_bed.go @@ -0,0 +1,11 @@ +package block + +type GrayBed struct { + Facing string + Occupied string + Part string +} + +func (GrayBed) ID() string { + return "minecraft:gray_bed" +} diff --git a/level/block/gray_candle.go b/level/block/gray_candle.go new file mode 100644 index 0000000..b3f5a5c --- /dev/null +++ b/level/block/gray_candle.go @@ -0,0 +1,11 @@ +package block + +type GrayCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (GrayCandle) ID() string { + return "minecraft:gray_candle" +} diff --git a/level/block/gray_candle_cake.go b/level/block/gray_candle_cake.go new file mode 100644 index 0000000..3ac2653 --- /dev/null +++ b/level/block/gray_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type GrayCandleCake struct { + Lit string +} + +func (GrayCandleCake) ID() string { + return "minecraft:gray_candle_cake" +} diff --git a/level/block/gray_carpet.go b/level/block/gray_carpet.go new file mode 100644 index 0000000..40a4a9b --- /dev/null +++ b/level/block/gray_carpet.go @@ -0,0 +1,8 @@ +package block + +type GrayCarpet struct { +} + +func (GrayCarpet) ID() string { + return "minecraft:gray_carpet" +} diff --git a/level/block/gray_concrete.go b/level/block/gray_concrete.go new file mode 100644 index 0000000..15c3484 --- /dev/null +++ b/level/block/gray_concrete.go @@ -0,0 +1,8 @@ +package block + +type GrayConcrete struct { +} + +func (GrayConcrete) ID() string { + return "minecraft:gray_concrete" +} diff --git a/level/block/gray_concrete_powder.go b/level/block/gray_concrete_powder.go new file mode 100644 index 0000000..3ea82d7 --- /dev/null +++ b/level/block/gray_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type GrayConcretePowder struct { +} + +func (GrayConcretePowder) ID() string { + return "minecraft:gray_concrete_powder" +} diff --git a/level/block/gray_glazed_terracotta.go b/level/block/gray_glazed_terracotta.go new file mode 100644 index 0000000..3fe108a --- /dev/null +++ b/level/block/gray_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type GrayGlazedTerracotta struct { + Facing string +} + +func (GrayGlazedTerracotta) ID() string { + return "minecraft:gray_glazed_terracotta" +} diff --git a/level/block/gray_shulker_box.go b/level/block/gray_shulker_box.go new file mode 100644 index 0000000..4fdee42 --- /dev/null +++ b/level/block/gray_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type GrayShulkerBox struct { + Facing string +} + +func (GrayShulkerBox) ID() string { + return "minecraft:gray_shulker_box" +} diff --git a/level/block/gray_stained_glass.go b/level/block/gray_stained_glass.go new file mode 100644 index 0000000..3477c26 --- /dev/null +++ b/level/block/gray_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type GrayStainedGlass struct { +} + +func (GrayStainedGlass) ID() string { + return "minecraft:gray_stained_glass" +} diff --git a/level/block/gray_stained_glass_pane.go b/level/block/gray_stained_glass_pane.go new file mode 100644 index 0000000..6365edf --- /dev/null +++ b/level/block/gray_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type GrayStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (GrayStainedGlassPane) ID() string { + return "minecraft:gray_stained_glass_pane" +} diff --git a/level/block/gray_terracotta.go b/level/block/gray_terracotta.go new file mode 100644 index 0000000..14820ee --- /dev/null +++ b/level/block/gray_terracotta.go @@ -0,0 +1,8 @@ +package block + +type GrayTerracotta struct { +} + +func (GrayTerracotta) ID() string { + return "minecraft:gray_terracotta" +} diff --git a/level/block/gray_wall_banner.go b/level/block/gray_wall_banner.go new file mode 100644 index 0000000..5efe7a1 --- /dev/null +++ b/level/block/gray_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type GrayWallBanner struct { + Facing string +} + +func (GrayWallBanner) ID() string { + return "minecraft:gray_wall_banner" +} diff --git a/level/block/gray_wool.go b/level/block/gray_wool.go new file mode 100644 index 0000000..eaf8c9f --- /dev/null +++ b/level/block/gray_wool.go @@ -0,0 +1,8 @@ +package block + +type GrayWool struct { +} + +func (GrayWool) ID() string { + return "minecraft:gray_wool" +} diff --git a/level/block/green_banner.go b/level/block/green_banner.go new file mode 100644 index 0000000..1b7cfe5 --- /dev/null +++ b/level/block/green_banner.go @@ -0,0 +1,9 @@ +package block + +type GreenBanner struct { + Rotation string +} + +func (GreenBanner) ID() string { + return "minecraft:green_banner" +} diff --git a/level/block/green_bed.go b/level/block/green_bed.go new file mode 100644 index 0000000..47090d7 --- /dev/null +++ b/level/block/green_bed.go @@ -0,0 +1,11 @@ +package block + +type GreenBed struct { + Facing string + Occupied string + Part string +} + +func (GreenBed) ID() string { + return "minecraft:green_bed" +} diff --git a/level/block/green_candle.go b/level/block/green_candle.go new file mode 100644 index 0000000..9fdd442 --- /dev/null +++ b/level/block/green_candle.go @@ -0,0 +1,11 @@ +package block + +type GreenCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (GreenCandle) ID() string { + return "minecraft:green_candle" +} diff --git a/level/block/green_candle_cake.go b/level/block/green_candle_cake.go new file mode 100644 index 0000000..d258cf9 --- /dev/null +++ b/level/block/green_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type GreenCandleCake struct { + Lit string +} + +func (GreenCandleCake) ID() string { + return "minecraft:green_candle_cake" +} diff --git a/level/block/green_carpet.go b/level/block/green_carpet.go new file mode 100644 index 0000000..e0e1ad9 --- /dev/null +++ b/level/block/green_carpet.go @@ -0,0 +1,8 @@ +package block + +type GreenCarpet struct { +} + +func (GreenCarpet) ID() string { + return "minecraft:green_carpet" +} diff --git a/level/block/green_concrete.go b/level/block/green_concrete.go new file mode 100644 index 0000000..21f7a80 --- /dev/null +++ b/level/block/green_concrete.go @@ -0,0 +1,8 @@ +package block + +type GreenConcrete struct { +} + +func (GreenConcrete) ID() string { + return "minecraft:green_concrete" +} diff --git a/level/block/green_concrete_powder.go b/level/block/green_concrete_powder.go new file mode 100644 index 0000000..a1ee796 --- /dev/null +++ b/level/block/green_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type GreenConcretePowder struct { +} + +func (GreenConcretePowder) ID() string { + return "minecraft:green_concrete_powder" +} diff --git a/level/block/green_glazed_terracotta.go b/level/block/green_glazed_terracotta.go new file mode 100644 index 0000000..132da9c --- /dev/null +++ b/level/block/green_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type GreenGlazedTerracotta struct { + Facing string +} + +func (GreenGlazedTerracotta) ID() string { + return "minecraft:green_glazed_terracotta" +} diff --git a/level/block/green_shulker_box.go b/level/block/green_shulker_box.go new file mode 100644 index 0000000..1656c79 --- /dev/null +++ b/level/block/green_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type GreenShulkerBox struct { + Facing string +} + +func (GreenShulkerBox) ID() string { + return "minecraft:green_shulker_box" +} diff --git a/level/block/green_stained_glass.go b/level/block/green_stained_glass.go new file mode 100644 index 0000000..1d2a57b --- /dev/null +++ b/level/block/green_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type GreenStainedGlass struct { +} + +func (GreenStainedGlass) ID() string { + return "minecraft:green_stained_glass" +} diff --git a/level/block/green_stained_glass_pane.go b/level/block/green_stained_glass_pane.go new file mode 100644 index 0000000..2cc92d4 --- /dev/null +++ b/level/block/green_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type GreenStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (GreenStainedGlassPane) ID() string { + return "minecraft:green_stained_glass_pane" +} diff --git a/level/block/green_terracotta.go b/level/block/green_terracotta.go new file mode 100644 index 0000000..6a3f89b --- /dev/null +++ b/level/block/green_terracotta.go @@ -0,0 +1,8 @@ +package block + +type GreenTerracotta struct { +} + +func (GreenTerracotta) ID() string { + return "minecraft:green_terracotta" +} diff --git a/level/block/green_wall_banner.go b/level/block/green_wall_banner.go new file mode 100644 index 0000000..be71ec8 --- /dev/null +++ b/level/block/green_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type GreenWallBanner struct { + Facing string +} + +func (GreenWallBanner) ID() string { + return "minecraft:green_wall_banner" +} diff --git a/level/block/green_wool.go b/level/block/green_wool.go new file mode 100644 index 0000000..963e192 --- /dev/null +++ b/level/block/green_wool.go @@ -0,0 +1,8 @@ +package block + +type GreenWool struct { +} + +func (GreenWool) ID() string { + return "minecraft:green_wool" +} diff --git a/level/block/grindstone.go b/level/block/grindstone.go new file mode 100644 index 0000000..c7068d8 --- /dev/null +++ b/level/block/grindstone.go @@ -0,0 +1,10 @@ +package block + +type Grindstone struct { + Face string + Facing string +} + +func (Grindstone) ID() string { + return "minecraft:grindstone" +} diff --git a/level/block/hanging_roots.go b/level/block/hanging_roots.go new file mode 100644 index 0000000..e8fc7c5 --- /dev/null +++ b/level/block/hanging_roots.go @@ -0,0 +1,9 @@ +package block + +type HangingRoots struct { + Waterlogged string +} + +func (HangingRoots) ID() string { + return "minecraft:hanging_roots" +} diff --git a/level/block/hay_block.go b/level/block/hay_block.go new file mode 100644 index 0000000..33856aa --- /dev/null +++ b/level/block/hay_block.go @@ -0,0 +1,9 @@ +package block + +type HayBlock struct { + Axis string +} + +func (HayBlock) ID() string { + return "minecraft:hay_block" +} diff --git a/level/block/heavy_weighted_pressure_plate.go b/level/block/heavy_weighted_pressure_plate.go new file mode 100644 index 0000000..eef4122 --- /dev/null +++ b/level/block/heavy_weighted_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type HeavyWeightedPressurePlate struct { + Power string +} + +func (HeavyWeightedPressurePlate) ID() string { + return "minecraft:heavy_weighted_pressure_plate" +} diff --git a/level/block/honey_block.go b/level/block/honey_block.go new file mode 100644 index 0000000..0ceafb0 --- /dev/null +++ b/level/block/honey_block.go @@ -0,0 +1,8 @@ +package block + +type HoneyBlock struct { +} + +func (HoneyBlock) ID() string { + return "minecraft:honey_block" +} diff --git a/level/block/honeycomb_block.go b/level/block/honeycomb_block.go new file mode 100644 index 0000000..ca934cf --- /dev/null +++ b/level/block/honeycomb_block.go @@ -0,0 +1,8 @@ +package block + +type HoneycombBlock struct { +} + +func (HoneycombBlock) ID() string { + return "minecraft:honeycomb_block" +} diff --git a/level/block/hopper.go b/level/block/hopper.go new file mode 100644 index 0000000..a5d06a4 --- /dev/null +++ b/level/block/hopper.go @@ -0,0 +1,10 @@ +package block + +type Hopper struct { + Enabled string + Facing string +} + +func (Hopper) ID() string { + return "minecraft:hopper" +} diff --git a/level/block/horn_coral.go b/level/block/horn_coral.go new file mode 100644 index 0000000..5ed9ebd --- /dev/null +++ b/level/block/horn_coral.go @@ -0,0 +1,9 @@ +package block + +type HornCoral struct { + Waterlogged string +} + +func (HornCoral) ID() string { + return "minecraft:horn_coral" +} diff --git a/level/block/horn_coral_block.go b/level/block/horn_coral_block.go new file mode 100644 index 0000000..cb06bd0 --- /dev/null +++ b/level/block/horn_coral_block.go @@ -0,0 +1,8 @@ +package block + +type HornCoralBlock struct { +} + +func (HornCoralBlock) ID() string { + return "minecraft:horn_coral_block" +} diff --git a/level/block/horn_coral_fan.go b/level/block/horn_coral_fan.go new file mode 100644 index 0000000..f2b4e79 --- /dev/null +++ b/level/block/horn_coral_fan.go @@ -0,0 +1,9 @@ +package block + +type HornCoralFan struct { + Waterlogged string +} + +func (HornCoralFan) ID() string { + return "minecraft:horn_coral_fan" +} diff --git a/level/block/horn_coral_wall_fan.go b/level/block/horn_coral_wall_fan.go new file mode 100644 index 0000000..65fd72d --- /dev/null +++ b/level/block/horn_coral_wall_fan.go @@ -0,0 +1,10 @@ +package block + +type HornCoralWallFan struct { + Facing string + Waterlogged string +} + +func (HornCoralWallFan) ID() string { + return "minecraft:horn_coral_wall_fan" +} diff --git a/level/block/ice.go b/level/block/ice.go new file mode 100644 index 0000000..e2616b8 --- /dev/null +++ b/level/block/ice.go @@ -0,0 +1,8 @@ +package block + +type Ice struct { +} + +func (Ice) ID() string { + return "minecraft:ice" +} diff --git a/level/block/infested_chiseled_stone_bricks.go b/level/block/infested_chiseled_stone_bricks.go new file mode 100644 index 0000000..43801b0 --- /dev/null +++ b/level/block/infested_chiseled_stone_bricks.go @@ -0,0 +1,8 @@ +package block + +type InfestedChiseledStoneBricks struct { +} + +func (InfestedChiseledStoneBricks) ID() string { + return "minecraft:infested_chiseled_stone_bricks" +} diff --git a/level/block/infested_cobblestone.go b/level/block/infested_cobblestone.go new file mode 100644 index 0000000..8cae839 --- /dev/null +++ b/level/block/infested_cobblestone.go @@ -0,0 +1,8 @@ +package block + +type InfestedCobblestone struct { +} + +func (InfestedCobblestone) ID() string { + return "minecraft:infested_cobblestone" +} diff --git a/level/block/infested_cracked_stone_bricks.go b/level/block/infested_cracked_stone_bricks.go new file mode 100644 index 0000000..a9a7d7f --- /dev/null +++ b/level/block/infested_cracked_stone_bricks.go @@ -0,0 +1,8 @@ +package block + +type InfestedCrackedStoneBricks struct { +} + +func (InfestedCrackedStoneBricks) ID() string { + return "minecraft:infested_cracked_stone_bricks" +} diff --git a/level/block/infested_deepslate.go b/level/block/infested_deepslate.go new file mode 100644 index 0000000..6f43519 --- /dev/null +++ b/level/block/infested_deepslate.go @@ -0,0 +1,9 @@ +package block + +type InfestedDeepslate struct { + Axis string +} + +func (InfestedDeepslate) ID() string { + return "minecraft:infested_deepslate" +} diff --git a/level/block/infested_mossy_stone_bricks.go b/level/block/infested_mossy_stone_bricks.go new file mode 100644 index 0000000..cce1889 --- /dev/null +++ b/level/block/infested_mossy_stone_bricks.go @@ -0,0 +1,8 @@ +package block + +type InfestedMossyStoneBricks struct { +} + +func (InfestedMossyStoneBricks) ID() string { + return "minecraft:infested_mossy_stone_bricks" +} diff --git a/level/block/infested_stone.go b/level/block/infested_stone.go new file mode 100644 index 0000000..955efc3 --- /dev/null +++ b/level/block/infested_stone.go @@ -0,0 +1,8 @@ +package block + +type InfestedStone struct { +} + +func (InfestedStone) ID() string { + return "minecraft:infested_stone" +} diff --git a/level/block/infested_stone_bricks.go b/level/block/infested_stone_bricks.go new file mode 100644 index 0000000..ed6996e --- /dev/null +++ b/level/block/infested_stone_bricks.go @@ -0,0 +1,8 @@ +package block + +type InfestedStoneBricks struct { +} + +func (InfestedStoneBricks) ID() string { + return "minecraft:infested_stone_bricks" +} diff --git a/level/block/iron_bars.go b/level/block/iron_bars.go new file mode 100644 index 0000000..14ca652 --- /dev/null +++ b/level/block/iron_bars.go @@ -0,0 +1,13 @@ +package block + +type IronBars struct { + East string + North string + South string + Waterlogged string + West string +} + +func (IronBars) ID() string { + return "minecraft:iron_bars" +} diff --git a/level/block/iron_block.go b/level/block/iron_block.go new file mode 100644 index 0000000..3766195 --- /dev/null +++ b/level/block/iron_block.go @@ -0,0 +1,8 @@ +package block + +type IronBlock struct { +} + +func (IronBlock) ID() string { + return "minecraft:iron_block" +} diff --git a/level/block/iron_door.go b/level/block/iron_door.go new file mode 100644 index 0000000..501ed32 --- /dev/null +++ b/level/block/iron_door.go @@ -0,0 +1,13 @@ +package block + +type IronDoor struct { + Facing string + Half string + Hinge string + Open string + Powered string +} + +func (IronDoor) ID() string { + return "minecraft:iron_door" +} diff --git a/level/block/iron_ore.go b/level/block/iron_ore.go new file mode 100644 index 0000000..041ca7c --- /dev/null +++ b/level/block/iron_ore.go @@ -0,0 +1,8 @@ +package block + +type IronOre struct { +} + +func (IronOre) ID() string { + return "minecraft:iron_ore" +} diff --git a/level/block/iron_trapdoor.go b/level/block/iron_trapdoor.go new file mode 100644 index 0000000..fe997b6 --- /dev/null +++ b/level/block/iron_trapdoor.go @@ -0,0 +1,13 @@ +package block + +type IronTrapdoor struct { + Facing string + Half string + Open string + Powered string + Waterlogged string +} + +func (IronTrapdoor) ID() string { + return "minecraft:iron_trapdoor" +} diff --git a/level/block/jack_o_lantern.go b/level/block/jack_o_lantern.go new file mode 100644 index 0000000..009a56b --- /dev/null +++ b/level/block/jack_o_lantern.go @@ -0,0 +1,9 @@ +package block + +type JackOLantern struct { + Facing string +} + +func (JackOLantern) ID() string { + return "minecraft:jack_o_lantern" +} diff --git a/level/block/jigsaw.go b/level/block/jigsaw.go new file mode 100644 index 0000000..4435f2c --- /dev/null +++ b/level/block/jigsaw.go @@ -0,0 +1,9 @@ +package block + +type Jigsaw struct { + Orientation string +} + +func (Jigsaw) ID() string { + return "minecraft:jigsaw" +} diff --git a/level/block/jukebox.go b/level/block/jukebox.go new file mode 100644 index 0000000..bcf86cc --- /dev/null +++ b/level/block/jukebox.go @@ -0,0 +1,9 @@ +package block + +type Jukebox struct { + Has_record string +} + +func (Jukebox) ID() string { + return "minecraft:jukebox" +} diff --git a/level/block/jungle_button.go b/level/block/jungle_button.go new file mode 100644 index 0000000..197b5b9 --- /dev/null +++ b/level/block/jungle_button.go @@ -0,0 +1,11 @@ +package block + +type JungleButton struct { + Face string + Facing string + Powered string +} + +func (JungleButton) ID() string { + return "minecraft:jungle_button" +} diff --git a/level/block/jungle_door.go b/level/block/jungle_door.go new file mode 100644 index 0000000..f6fba42 --- /dev/null +++ b/level/block/jungle_door.go @@ -0,0 +1,13 @@ +package block + +type JungleDoor struct { + Facing string + Half string + Hinge string + Open string + Powered string +} + +func (JungleDoor) ID() string { + return "minecraft:jungle_door" +} diff --git a/level/block/jungle_fence.go b/level/block/jungle_fence.go new file mode 100644 index 0000000..bd3b81c --- /dev/null +++ b/level/block/jungle_fence.go @@ -0,0 +1,13 @@ +package block + +type JungleFence struct { + East string + North string + South string + Waterlogged string + West string +} + +func (JungleFence) ID() string { + return "minecraft:jungle_fence" +} diff --git a/level/block/jungle_fence_gate.go b/level/block/jungle_fence_gate.go new file mode 100644 index 0000000..5dc5860 --- /dev/null +++ b/level/block/jungle_fence_gate.go @@ -0,0 +1,12 @@ +package block + +type JungleFenceGate struct { + Facing string + In_wall string + Open string + Powered string +} + +func (JungleFenceGate) ID() string { + return "minecraft:jungle_fence_gate" +} diff --git a/level/block/jungle_leaves.go b/level/block/jungle_leaves.go new file mode 100644 index 0000000..8993ec7 --- /dev/null +++ b/level/block/jungle_leaves.go @@ -0,0 +1,10 @@ +package block + +type JungleLeaves struct { + Distance string + Persistent string +} + +func (JungleLeaves) ID() string { + return "minecraft:jungle_leaves" +} diff --git a/level/block/jungle_log.go b/level/block/jungle_log.go new file mode 100644 index 0000000..dafafa2 --- /dev/null +++ b/level/block/jungle_log.go @@ -0,0 +1,9 @@ +package block + +type JungleLog struct { + Axis string +} + +func (JungleLog) ID() string { + return "minecraft:jungle_log" +} diff --git a/level/block/jungle_planks.go b/level/block/jungle_planks.go new file mode 100644 index 0000000..3a597d6 --- /dev/null +++ b/level/block/jungle_planks.go @@ -0,0 +1,8 @@ +package block + +type JunglePlanks struct { +} + +func (JunglePlanks) ID() string { + return "minecraft:jungle_planks" +} diff --git a/level/block/jungle_pressure_plate.go b/level/block/jungle_pressure_plate.go new file mode 100644 index 0000000..514802b --- /dev/null +++ b/level/block/jungle_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type JunglePressurePlate struct { + Powered string +} + +func (JunglePressurePlate) ID() string { + return "minecraft:jungle_pressure_plate" +} diff --git a/level/block/jungle_sapling.go b/level/block/jungle_sapling.go new file mode 100644 index 0000000..b74616a --- /dev/null +++ b/level/block/jungle_sapling.go @@ -0,0 +1,9 @@ +package block + +type JungleSapling struct { + Stage string +} + +func (JungleSapling) ID() string { + return "minecraft:jungle_sapling" +} diff --git a/level/block/jungle_sign.go b/level/block/jungle_sign.go new file mode 100644 index 0000000..29c5169 --- /dev/null +++ b/level/block/jungle_sign.go @@ -0,0 +1,10 @@ +package block + +type JungleSign struct { + Rotation string + Waterlogged string +} + +func (JungleSign) ID() string { + return "minecraft:jungle_sign" +} diff --git a/level/block/jungle_slab.go b/level/block/jungle_slab.go new file mode 100644 index 0000000..cdf0127 --- /dev/null +++ b/level/block/jungle_slab.go @@ -0,0 +1,10 @@ +package block + +type JungleSlab struct { + Type string + Waterlogged string +} + +func (JungleSlab) ID() string { + return "minecraft:jungle_slab" +} diff --git a/level/block/jungle_stairs.go b/level/block/jungle_stairs.go new file mode 100644 index 0000000..5b7c292 --- /dev/null +++ b/level/block/jungle_stairs.go @@ -0,0 +1,12 @@ +package block + +type JungleStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (JungleStairs) ID() string { + return "minecraft:jungle_stairs" +} diff --git a/level/block/jungle_trapdoor.go b/level/block/jungle_trapdoor.go new file mode 100644 index 0000000..e230594 --- /dev/null +++ b/level/block/jungle_trapdoor.go @@ -0,0 +1,13 @@ +package block + +type JungleTrapdoor struct { + Facing string + Half string + Open string + Powered string + Waterlogged string +} + +func (JungleTrapdoor) ID() string { + return "minecraft:jungle_trapdoor" +} diff --git a/level/block/jungle_wall_sign.go b/level/block/jungle_wall_sign.go new file mode 100644 index 0000000..24b0ffc --- /dev/null +++ b/level/block/jungle_wall_sign.go @@ -0,0 +1,10 @@ +package block + +type JungleWallSign struct { + Facing string + Waterlogged string +} + +func (JungleWallSign) ID() string { + return "minecraft:jungle_wall_sign" +} diff --git a/level/block/jungle_wood.go b/level/block/jungle_wood.go new file mode 100644 index 0000000..01e08aa --- /dev/null +++ b/level/block/jungle_wood.go @@ -0,0 +1,9 @@ +package block + +type JungleWood struct { + Axis string +} + +func (JungleWood) ID() string { + return "minecraft:jungle_wood" +} diff --git a/level/block/kelp.go b/level/block/kelp.go new file mode 100644 index 0000000..945879e --- /dev/null +++ b/level/block/kelp.go @@ -0,0 +1,9 @@ +package block + +type Kelp struct { + Age string +} + +func (Kelp) ID() string { + return "minecraft:kelp" +} diff --git a/level/block/kelp_plant.go b/level/block/kelp_plant.go new file mode 100644 index 0000000..1e4e1d5 --- /dev/null +++ b/level/block/kelp_plant.go @@ -0,0 +1,8 @@ +package block + +type KelpPlant struct { +} + +func (KelpPlant) ID() string { + return "minecraft:kelp_plant" +} diff --git a/level/block/ladder.go b/level/block/ladder.go new file mode 100644 index 0000000..4fac925 --- /dev/null +++ b/level/block/ladder.go @@ -0,0 +1,10 @@ +package block + +type Ladder struct { + Facing string + Waterlogged string +} + +func (Ladder) ID() string { + return "minecraft:ladder" +} diff --git a/level/block/lantern.go b/level/block/lantern.go new file mode 100644 index 0000000..0e91f4a --- /dev/null +++ b/level/block/lantern.go @@ -0,0 +1,10 @@ +package block + +type Lantern struct { + Hanging string + Waterlogged string +} + +func (Lantern) ID() string { + return "minecraft:lantern" +} diff --git a/level/block/lapis_block.go b/level/block/lapis_block.go new file mode 100644 index 0000000..2cd7c4e --- /dev/null +++ b/level/block/lapis_block.go @@ -0,0 +1,8 @@ +package block + +type LapisBlock struct { +} + +func (LapisBlock) ID() string { + return "minecraft:lapis_block" +} diff --git a/level/block/lapis_ore.go b/level/block/lapis_ore.go new file mode 100644 index 0000000..dd9e251 --- /dev/null +++ b/level/block/lapis_ore.go @@ -0,0 +1,8 @@ +package block + +type LapisOre struct { +} + +func (LapisOre) ID() string { + return "minecraft:lapis_ore" +} diff --git a/level/block/large_amethyst_bud.go b/level/block/large_amethyst_bud.go new file mode 100644 index 0000000..02121cb --- /dev/null +++ b/level/block/large_amethyst_bud.go @@ -0,0 +1,10 @@ +package block + +type LargeAmethystBud struct { + Facing string + Waterlogged string +} + +func (LargeAmethystBud) ID() string { + return "minecraft:large_amethyst_bud" +} diff --git a/level/block/large_fern.go b/level/block/large_fern.go new file mode 100644 index 0000000..00d426f --- /dev/null +++ b/level/block/large_fern.go @@ -0,0 +1,9 @@ +package block + +type LargeFern struct { + Half string +} + +func (LargeFern) ID() string { + return "minecraft:large_fern" +} diff --git a/level/block/lava.go b/level/block/lava.go new file mode 100644 index 0000000..307e850 --- /dev/null +++ b/level/block/lava.go @@ -0,0 +1,9 @@ +package block + +type Lava struct { + Level string +} + +func (Lava) ID() string { + return "minecraft:lava" +} diff --git a/level/block/lava_cauldron.go b/level/block/lava_cauldron.go new file mode 100644 index 0000000..b99e138 --- /dev/null +++ b/level/block/lava_cauldron.go @@ -0,0 +1,8 @@ +package block + +type LavaCauldron struct { +} + +func (LavaCauldron) ID() string { + return "minecraft:lava_cauldron" +} diff --git a/level/block/lectern.go b/level/block/lectern.go new file mode 100644 index 0000000..287b6f7 --- /dev/null +++ b/level/block/lectern.go @@ -0,0 +1,11 @@ +package block + +type Lectern struct { + Facing string + Has_book string + Powered string +} + +func (Lectern) ID() string { + return "minecraft:lectern" +} diff --git a/level/block/lever.go b/level/block/lever.go new file mode 100644 index 0000000..4f7760e --- /dev/null +++ b/level/block/lever.go @@ -0,0 +1,11 @@ +package block + +type Lever struct { + Face string + Facing string + Powered string +} + +func (Lever) ID() string { + return "minecraft:lever" +} diff --git a/level/block/light.go b/level/block/light.go new file mode 100644 index 0000000..8e8749a --- /dev/null +++ b/level/block/light.go @@ -0,0 +1,10 @@ +package block + +type Light struct { + Level string + Waterlogged string +} + +func (Light) ID() string { + return "minecraft:light" +} diff --git a/level/block/light_blue_banner.go b/level/block/light_blue_banner.go new file mode 100644 index 0000000..1d121b3 --- /dev/null +++ b/level/block/light_blue_banner.go @@ -0,0 +1,9 @@ +package block + +type LightBlueBanner struct { + Rotation string +} + +func (LightBlueBanner) ID() string { + return "minecraft:light_blue_banner" +} diff --git a/level/block/light_blue_bed.go b/level/block/light_blue_bed.go new file mode 100644 index 0000000..b4115ba --- /dev/null +++ b/level/block/light_blue_bed.go @@ -0,0 +1,11 @@ +package block + +type LightBlueBed struct { + Facing string + Occupied string + Part string +} + +func (LightBlueBed) ID() string { + return "minecraft:light_blue_bed" +} diff --git a/level/block/light_blue_candle.go b/level/block/light_blue_candle.go new file mode 100644 index 0000000..7b38956 --- /dev/null +++ b/level/block/light_blue_candle.go @@ -0,0 +1,11 @@ +package block + +type LightBlueCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (LightBlueCandle) ID() string { + return "minecraft:light_blue_candle" +} diff --git a/level/block/light_blue_candle_cake.go b/level/block/light_blue_candle_cake.go new file mode 100644 index 0000000..b481195 --- /dev/null +++ b/level/block/light_blue_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type LightBlueCandleCake struct { + Lit string +} + +func (LightBlueCandleCake) ID() string { + return "minecraft:light_blue_candle_cake" +} diff --git a/level/block/light_blue_carpet.go b/level/block/light_blue_carpet.go new file mode 100644 index 0000000..1be257a --- /dev/null +++ b/level/block/light_blue_carpet.go @@ -0,0 +1,8 @@ +package block + +type LightBlueCarpet struct { +} + +func (LightBlueCarpet) ID() string { + return "minecraft:light_blue_carpet" +} diff --git a/level/block/light_blue_concrete.go b/level/block/light_blue_concrete.go new file mode 100644 index 0000000..73f1637 --- /dev/null +++ b/level/block/light_blue_concrete.go @@ -0,0 +1,8 @@ +package block + +type LightBlueConcrete struct { +} + +func (LightBlueConcrete) ID() string { + return "minecraft:light_blue_concrete" +} diff --git a/level/block/light_blue_concrete_powder.go b/level/block/light_blue_concrete_powder.go new file mode 100644 index 0000000..860e588 --- /dev/null +++ b/level/block/light_blue_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type LightBlueConcretePowder struct { +} + +func (LightBlueConcretePowder) ID() string { + return "minecraft:light_blue_concrete_powder" +} diff --git a/level/block/light_blue_glazed_terracotta.go b/level/block/light_blue_glazed_terracotta.go new file mode 100644 index 0000000..4bffad5 --- /dev/null +++ b/level/block/light_blue_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type LightBlueGlazedTerracotta struct { + Facing string +} + +func (LightBlueGlazedTerracotta) ID() string { + return "minecraft:light_blue_glazed_terracotta" +} diff --git a/level/block/light_blue_shulker_box.go b/level/block/light_blue_shulker_box.go new file mode 100644 index 0000000..5f31dfc --- /dev/null +++ b/level/block/light_blue_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type LightBlueShulkerBox struct { + Facing string +} + +func (LightBlueShulkerBox) ID() string { + return "minecraft:light_blue_shulker_box" +} diff --git a/level/block/light_blue_stained_glass.go b/level/block/light_blue_stained_glass.go new file mode 100644 index 0000000..c696ddb --- /dev/null +++ b/level/block/light_blue_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type LightBlueStainedGlass struct { +} + +func (LightBlueStainedGlass) ID() string { + return "minecraft:light_blue_stained_glass" +} diff --git a/level/block/light_blue_stained_glass_pane.go b/level/block/light_blue_stained_glass_pane.go new file mode 100644 index 0000000..66aaae6 --- /dev/null +++ b/level/block/light_blue_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type LightBlueStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (LightBlueStainedGlassPane) ID() string { + return "minecraft:light_blue_stained_glass_pane" +} diff --git a/level/block/light_blue_terracotta.go b/level/block/light_blue_terracotta.go new file mode 100644 index 0000000..55ca8ba --- /dev/null +++ b/level/block/light_blue_terracotta.go @@ -0,0 +1,8 @@ +package block + +type LightBlueTerracotta struct { +} + +func (LightBlueTerracotta) ID() string { + return "minecraft:light_blue_terracotta" +} diff --git a/level/block/light_blue_wall_banner.go b/level/block/light_blue_wall_banner.go new file mode 100644 index 0000000..b725e82 --- /dev/null +++ b/level/block/light_blue_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type LightBlueWallBanner struct { + Facing string +} + +func (LightBlueWallBanner) ID() string { + return "minecraft:light_blue_wall_banner" +} diff --git a/level/block/light_blue_wool.go b/level/block/light_blue_wool.go new file mode 100644 index 0000000..f7e0563 --- /dev/null +++ b/level/block/light_blue_wool.go @@ -0,0 +1,8 @@ +package block + +type LightBlueWool struct { +} + +func (LightBlueWool) ID() string { + return "minecraft:light_blue_wool" +} diff --git a/level/block/light_gray_banner.go b/level/block/light_gray_banner.go new file mode 100644 index 0000000..a1000d6 --- /dev/null +++ b/level/block/light_gray_banner.go @@ -0,0 +1,9 @@ +package block + +type LightGrayBanner struct { + Rotation string +} + +func (LightGrayBanner) ID() string { + return "minecraft:light_gray_banner" +} diff --git a/level/block/light_gray_bed.go b/level/block/light_gray_bed.go new file mode 100644 index 0000000..8fd2aa0 --- /dev/null +++ b/level/block/light_gray_bed.go @@ -0,0 +1,11 @@ +package block + +type LightGrayBed struct { + Facing string + Occupied string + Part string +} + +func (LightGrayBed) ID() string { + return "minecraft:light_gray_bed" +} diff --git a/level/block/light_gray_candle.go b/level/block/light_gray_candle.go new file mode 100644 index 0000000..657738f --- /dev/null +++ b/level/block/light_gray_candle.go @@ -0,0 +1,11 @@ +package block + +type LightGrayCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (LightGrayCandle) ID() string { + return "minecraft:light_gray_candle" +} diff --git a/level/block/light_gray_candle_cake.go b/level/block/light_gray_candle_cake.go new file mode 100644 index 0000000..73e6ebd --- /dev/null +++ b/level/block/light_gray_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type LightGrayCandleCake struct { + Lit string +} + +func (LightGrayCandleCake) ID() string { + return "minecraft:light_gray_candle_cake" +} diff --git a/level/block/light_gray_carpet.go b/level/block/light_gray_carpet.go new file mode 100644 index 0000000..d40b66c --- /dev/null +++ b/level/block/light_gray_carpet.go @@ -0,0 +1,8 @@ +package block + +type LightGrayCarpet struct { +} + +func (LightGrayCarpet) ID() string { + return "minecraft:light_gray_carpet" +} diff --git a/level/block/light_gray_concrete.go b/level/block/light_gray_concrete.go new file mode 100644 index 0000000..e6762f7 --- /dev/null +++ b/level/block/light_gray_concrete.go @@ -0,0 +1,8 @@ +package block + +type LightGrayConcrete struct { +} + +func (LightGrayConcrete) ID() string { + return "minecraft:light_gray_concrete" +} diff --git a/level/block/light_gray_concrete_powder.go b/level/block/light_gray_concrete_powder.go new file mode 100644 index 0000000..5af4e9d --- /dev/null +++ b/level/block/light_gray_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type LightGrayConcretePowder struct { +} + +func (LightGrayConcretePowder) ID() string { + return "minecraft:light_gray_concrete_powder" +} diff --git a/level/block/light_gray_glazed_terracotta.go b/level/block/light_gray_glazed_terracotta.go new file mode 100644 index 0000000..d6c02d7 --- /dev/null +++ b/level/block/light_gray_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type LightGrayGlazedTerracotta struct { + Facing string +} + +func (LightGrayGlazedTerracotta) ID() string { + return "minecraft:light_gray_glazed_terracotta" +} diff --git a/level/block/light_gray_shulker_box.go b/level/block/light_gray_shulker_box.go new file mode 100644 index 0000000..eecfdaf --- /dev/null +++ b/level/block/light_gray_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type LightGrayShulkerBox struct { + Facing string +} + +func (LightGrayShulkerBox) ID() string { + return "minecraft:light_gray_shulker_box" +} diff --git a/level/block/light_gray_stained_glass.go b/level/block/light_gray_stained_glass.go new file mode 100644 index 0000000..fca4554 --- /dev/null +++ b/level/block/light_gray_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type LightGrayStainedGlass struct { +} + +func (LightGrayStainedGlass) ID() string { + return "minecraft:light_gray_stained_glass" +} diff --git a/level/block/light_gray_stained_glass_pane.go b/level/block/light_gray_stained_glass_pane.go new file mode 100644 index 0000000..94bf24a --- /dev/null +++ b/level/block/light_gray_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type LightGrayStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (LightGrayStainedGlassPane) ID() string { + return "minecraft:light_gray_stained_glass_pane" +} diff --git a/level/block/light_gray_terracotta.go b/level/block/light_gray_terracotta.go new file mode 100644 index 0000000..5eb995e --- /dev/null +++ b/level/block/light_gray_terracotta.go @@ -0,0 +1,8 @@ +package block + +type LightGrayTerracotta struct { +} + +func (LightGrayTerracotta) ID() string { + return "minecraft:light_gray_terracotta" +} diff --git a/level/block/light_gray_wall_banner.go b/level/block/light_gray_wall_banner.go new file mode 100644 index 0000000..3fb2161 --- /dev/null +++ b/level/block/light_gray_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type LightGrayWallBanner struct { + Facing string +} + +func (LightGrayWallBanner) ID() string { + return "minecraft:light_gray_wall_banner" +} diff --git a/level/block/light_gray_wool.go b/level/block/light_gray_wool.go new file mode 100644 index 0000000..f602b26 --- /dev/null +++ b/level/block/light_gray_wool.go @@ -0,0 +1,8 @@ +package block + +type LightGrayWool struct { +} + +func (LightGrayWool) ID() string { + return "minecraft:light_gray_wool" +} diff --git a/level/block/light_weighted_pressure_plate.go b/level/block/light_weighted_pressure_plate.go new file mode 100644 index 0000000..ebe4b9c --- /dev/null +++ b/level/block/light_weighted_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type LightWeightedPressurePlate struct { + Power string +} + +func (LightWeightedPressurePlate) ID() string { + return "minecraft:light_weighted_pressure_plate" +} diff --git a/level/block/lightning_rod.go b/level/block/lightning_rod.go new file mode 100644 index 0000000..db94274 --- /dev/null +++ b/level/block/lightning_rod.go @@ -0,0 +1,11 @@ +package block + +type LightningRod struct { + Facing string + Powered string + Waterlogged string +} + +func (LightningRod) ID() string { + return "minecraft:lightning_rod" +} diff --git a/level/block/lilac.go b/level/block/lilac.go new file mode 100644 index 0000000..4d1f0e8 --- /dev/null +++ b/level/block/lilac.go @@ -0,0 +1,9 @@ +package block + +type Lilac struct { + Half string +} + +func (Lilac) ID() string { + return "minecraft:lilac" +} diff --git a/level/block/lily_of_the_valley.go b/level/block/lily_of_the_valley.go new file mode 100644 index 0000000..754f23f --- /dev/null +++ b/level/block/lily_of_the_valley.go @@ -0,0 +1,8 @@ +package block + +type LilyOfTheValley struct { +} + +func (LilyOfTheValley) ID() string { + return "minecraft:lily_of_the_valley" +} diff --git a/level/block/lily_pad.go b/level/block/lily_pad.go new file mode 100644 index 0000000..a7bedb9 --- /dev/null +++ b/level/block/lily_pad.go @@ -0,0 +1,8 @@ +package block + +type LilyPad struct { +} + +func (LilyPad) ID() string { + return "minecraft:lily_pad" +} diff --git a/level/block/lime_banner.go b/level/block/lime_banner.go new file mode 100644 index 0000000..309bc32 --- /dev/null +++ b/level/block/lime_banner.go @@ -0,0 +1,9 @@ +package block + +type LimeBanner struct { + Rotation string +} + +func (LimeBanner) ID() string { + return "minecraft:lime_banner" +} diff --git a/level/block/lime_bed.go b/level/block/lime_bed.go new file mode 100644 index 0000000..c86c0f6 --- /dev/null +++ b/level/block/lime_bed.go @@ -0,0 +1,11 @@ +package block + +type LimeBed struct { + Facing string + Occupied string + Part string +} + +func (LimeBed) ID() string { + return "minecraft:lime_bed" +} diff --git a/level/block/lime_candle.go b/level/block/lime_candle.go new file mode 100644 index 0000000..fd4bc21 --- /dev/null +++ b/level/block/lime_candle.go @@ -0,0 +1,11 @@ +package block + +type LimeCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (LimeCandle) ID() string { + return "minecraft:lime_candle" +} diff --git a/level/block/lime_candle_cake.go b/level/block/lime_candle_cake.go new file mode 100644 index 0000000..03892eb --- /dev/null +++ b/level/block/lime_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type LimeCandleCake struct { + Lit string +} + +func (LimeCandleCake) ID() string { + return "minecraft:lime_candle_cake" +} diff --git a/level/block/lime_carpet.go b/level/block/lime_carpet.go new file mode 100644 index 0000000..f0eda04 --- /dev/null +++ b/level/block/lime_carpet.go @@ -0,0 +1,8 @@ +package block + +type LimeCarpet struct { +} + +func (LimeCarpet) ID() string { + return "minecraft:lime_carpet" +} diff --git a/level/block/lime_concrete.go b/level/block/lime_concrete.go new file mode 100644 index 0000000..6d0218c --- /dev/null +++ b/level/block/lime_concrete.go @@ -0,0 +1,8 @@ +package block + +type LimeConcrete struct { +} + +func (LimeConcrete) ID() string { + return "minecraft:lime_concrete" +} diff --git a/level/block/lime_concrete_powder.go b/level/block/lime_concrete_powder.go new file mode 100644 index 0000000..c39f2a8 --- /dev/null +++ b/level/block/lime_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type LimeConcretePowder struct { +} + +func (LimeConcretePowder) ID() string { + return "minecraft:lime_concrete_powder" +} diff --git a/level/block/lime_glazed_terracotta.go b/level/block/lime_glazed_terracotta.go new file mode 100644 index 0000000..b1e900b --- /dev/null +++ b/level/block/lime_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type LimeGlazedTerracotta struct { + Facing string +} + +func (LimeGlazedTerracotta) ID() string { + return "minecraft:lime_glazed_terracotta" +} diff --git a/level/block/lime_shulker_box.go b/level/block/lime_shulker_box.go new file mode 100644 index 0000000..b7ded0c --- /dev/null +++ b/level/block/lime_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type LimeShulkerBox struct { + Facing string +} + +func (LimeShulkerBox) ID() string { + return "minecraft:lime_shulker_box" +} diff --git a/level/block/lime_stained_glass.go b/level/block/lime_stained_glass.go new file mode 100644 index 0000000..8a751a7 --- /dev/null +++ b/level/block/lime_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type LimeStainedGlass struct { +} + +func (LimeStainedGlass) ID() string { + return "minecraft:lime_stained_glass" +} diff --git a/level/block/lime_stained_glass_pane.go b/level/block/lime_stained_glass_pane.go new file mode 100644 index 0000000..dabf2af --- /dev/null +++ b/level/block/lime_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type LimeStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (LimeStainedGlassPane) ID() string { + return "minecraft:lime_stained_glass_pane" +} diff --git a/level/block/lime_terracotta.go b/level/block/lime_terracotta.go new file mode 100644 index 0000000..2096ac4 --- /dev/null +++ b/level/block/lime_terracotta.go @@ -0,0 +1,8 @@ +package block + +type LimeTerracotta struct { +} + +func (LimeTerracotta) ID() string { + return "minecraft:lime_terracotta" +} diff --git a/level/block/lime_wall_banner.go b/level/block/lime_wall_banner.go new file mode 100644 index 0000000..f4dabef --- /dev/null +++ b/level/block/lime_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type LimeWallBanner struct { + Facing string +} + +func (LimeWallBanner) ID() string { + return "minecraft:lime_wall_banner" +} diff --git a/level/block/lime_wool.go b/level/block/lime_wool.go new file mode 100644 index 0000000..58abe8d --- /dev/null +++ b/level/block/lime_wool.go @@ -0,0 +1,8 @@ +package block + +type LimeWool struct { +} + +func (LimeWool) ID() string { + return "minecraft:lime_wool" +} diff --git a/level/block/lodestone.go b/level/block/lodestone.go new file mode 100644 index 0000000..159d164 --- /dev/null +++ b/level/block/lodestone.go @@ -0,0 +1,8 @@ +package block + +type Lodestone struct { +} + +func (Lodestone) ID() string { + return "minecraft:lodestone" +} diff --git a/level/block/loom.go b/level/block/loom.go new file mode 100644 index 0000000..0dd586d --- /dev/null +++ b/level/block/loom.go @@ -0,0 +1,9 @@ +package block + +type Loom struct { + Facing string +} + +func (Loom) ID() string { + return "minecraft:loom" +} diff --git a/level/block/magenta_banner.go b/level/block/magenta_banner.go new file mode 100644 index 0000000..8dc134c --- /dev/null +++ b/level/block/magenta_banner.go @@ -0,0 +1,9 @@ +package block + +type MagentaBanner struct { + Rotation string +} + +func (MagentaBanner) ID() string { + return "minecraft:magenta_banner" +} diff --git a/level/block/magenta_bed.go b/level/block/magenta_bed.go new file mode 100644 index 0000000..ce76658 --- /dev/null +++ b/level/block/magenta_bed.go @@ -0,0 +1,11 @@ +package block + +type MagentaBed struct { + Facing string + Occupied string + Part string +} + +func (MagentaBed) ID() string { + return "minecraft:magenta_bed" +} diff --git a/level/block/magenta_candle.go b/level/block/magenta_candle.go new file mode 100644 index 0000000..53e7e7e --- /dev/null +++ b/level/block/magenta_candle.go @@ -0,0 +1,11 @@ +package block + +type MagentaCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (MagentaCandle) ID() string { + return "minecraft:magenta_candle" +} diff --git a/level/block/magenta_candle_cake.go b/level/block/magenta_candle_cake.go new file mode 100644 index 0000000..9505e3b --- /dev/null +++ b/level/block/magenta_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type MagentaCandleCake struct { + Lit string +} + +func (MagentaCandleCake) ID() string { + return "minecraft:magenta_candle_cake" +} diff --git a/level/block/magenta_carpet.go b/level/block/magenta_carpet.go new file mode 100644 index 0000000..434b392 --- /dev/null +++ b/level/block/magenta_carpet.go @@ -0,0 +1,8 @@ +package block + +type MagentaCarpet struct { +} + +func (MagentaCarpet) ID() string { + return "minecraft:magenta_carpet" +} diff --git a/level/block/magenta_concrete.go b/level/block/magenta_concrete.go new file mode 100644 index 0000000..9eb11a2 --- /dev/null +++ b/level/block/magenta_concrete.go @@ -0,0 +1,8 @@ +package block + +type MagentaConcrete struct { +} + +func (MagentaConcrete) ID() string { + return "minecraft:magenta_concrete" +} diff --git a/level/block/magenta_concrete_powder.go b/level/block/magenta_concrete_powder.go new file mode 100644 index 0000000..4bff6f6 --- /dev/null +++ b/level/block/magenta_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type MagentaConcretePowder struct { +} + +func (MagentaConcretePowder) ID() string { + return "minecraft:magenta_concrete_powder" +} diff --git a/level/block/magenta_glazed_terracotta.go b/level/block/magenta_glazed_terracotta.go new file mode 100644 index 0000000..e05562b --- /dev/null +++ b/level/block/magenta_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type MagentaGlazedTerracotta struct { + Facing string +} + +func (MagentaGlazedTerracotta) ID() string { + return "minecraft:magenta_glazed_terracotta" +} diff --git a/level/block/magenta_shulker_box.go b/level/block/magenta_shulker_box.go new file mode 100644 index 0000000..e889546 --- /dev/null +++ b/level/block/magenta_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type MagentaShulkerBox struct { + Facing string +} + +func (MagentaShulkerBox) ID() string { + return "minecraft:magenta_shulker_box" +} diff --git a/level/block/magenta_stained_glass.go b/level/block/magenta_stained_glass.go new file mode 100644 index 0000000..e75b988 --- /dev/null +++ b/level/block/magenta_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type MagentaStainedGlass struct { +} + +func (MagentaStainedGlass) ID() string { + return "minecraft:magenta_stained_glass" +} diff --git a/level/block/magenta_stained_glass_pane.go b/level/block/magenta_stained_glass_pane.go new file mode 100644 index 0000000..20290f4 --- /dev/null +++ b/level/block/magenta_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type MagentaStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (MagentaStainedGlassPane) ID() string { + return "minecraft:magenta_stained_glass_pane" +} diff --git a/level/block/magenta_terracotta.go b/level/block/magenta_terracotta.go new file mode 100644 index 0000000..6baf318 --- /dev/null +++ b/level/block/magenta_terracotta.go @@ -0,0 +1,8 @@ +package block + +type MagentaTerracotta struct { +} + +func (MagentaTerracotta) ID() string { + return "minecraft:magenta_terracotta" +} diff --git a/level/block/magenta_wall_banner.go b/level/block/magenta_wall_banner.go new file mode 100644 index 0000000..dcae003 --- /dev/null +++ b/level/block/magenta_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type MagentaWallBanner struct { + Facing string +} + +func (MagentaWallBanner) ID() string { + return "minecraft:magenta_wall_banner" +} diff --git a/level/block/magenta_wool.go b/level/block/magenta_wool.go new file mode 100644 index 0000000..d032f6f --- /dev/null +++ b/level/block/magenta_wool.go @@ -0,0 +1,8 @@ +package block + +type MagentaWool struct { +} + +func (MagentaWool) ID() string { + return "minecraft:magenta_wool" +} diff --git a/level/block/magma_block.go b/level/block/magma_block.go new file mode 100644 index 0000000..e30b75d --- /dev/null +++ b/level/block/magma_block.go @@ -0,0 +1,8 @@ +package block + +type MagmaBlock struct { +} + +func (MagmaBlock) ID() string { + return "minecraft:magma_block" +} diff --git a/level/block/medium_amethyst_bud.go b/level/block/medium_amethyst_bud.go new file mode 100644 index 0000000..bdeae15 --- /dev/null +++ b/level/block/medium_amethyst_bud.go @@ -0,0 +1,10 @@ +package block + +type MediumAmethystBud struct { + Facing string + Waterlogged string +} + +func (MediumAmethystBud) ID() string { + return "minecraft:medium_amethyst_bud" +} diff --git a/level/block/melon.go b/level/block/melon.go new file mode 100644 index 0000000..97a808e --- /dev/null +++ b/level/block/melon.go @@ -0,0 +1,8 @@ +package block + +type Melon struct { +} + +func (Melon) ID() string { + return "minecraft:melon" +} diff --git a/level/block/melon_stem.go b/level/block/melon_stem.go new file mode 100644 index 0000000..40c7baf --- /dev/null +++ b/level/block/melon_stem.go @@ -0,0 +1,9 @@ +package block + +type MelonStem struct { + Age string +} + +func (MelonStem) ID() string { + return "minecraft:melon_stem" +} diff --git a/level/block/moss_block.go b/level/block/moss_block.go new file mode 100644 index 0000000..30d3cef --- /dev/null +++ b/level/block/moss_block.go @@ -0,0 +1,8 @@ +package block + +type MossBlock struct { +} + +func (MossBlock) ID() string { + return "minecraft:moss_block" +} diff --git a/level/block/moss_carpet.go b/level/block/moss_carpet.go new file mode 100644 index 0000000..9236f73 --- /dev/null +++ b/level/block/moss_carpet.go @@ -0,0 +1,8 @@ +package block + +type MossCarpet struct { +} + +func (MossCarpet) ID() string { + return "minecraft:moss_carpet" +} diff --git a/level/block/mossy_cobblestone.go b/level/block/mossy_cobblestone.go new file mode 100644 index 0000000..6f82038 --- /dev/null +++ b/level/block/mossy_cobblestone.go @@ -0,0 +1,8 @@ +package block + +type MossyCobblestone struct { +} + +func (MossyCobblestone) ID() string { + return "minecraft:mossy_cobblestone" +} diff --git a/level/block/mossy_cobblestone_slab.go b/level/block/mossy_cobblestone_slab.go new file mode 100644 index 0000000..4fc9e9b --- /dev/null +++ b/level/block/mossy_cobblestone_slab.go @@ -0,0 +1,10 @@ +package block + +type MossyCobblestoneSlab struct { + Type string + Waterlogged string +} + +func (MossyCobblestoneSlab) ID() string { + return "minecraft:mossy_cobblestone_slab" +} diff --git a/level/block/mossy_cobblestone_stairs.go b/level/block/mossy_cobblestone_stairs.go new file mode 100644 index 0000000..67c4f2f --- /dev/null +++ b/level/block/mossy_cobblestone_stairs.go @@ -0,0 +1,12 @@ +package block + +type MossyCobblestoneStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (MossyCobblestoneStairs) ID() string { + return "minecraft:mossy_cobblestone_stairs" +} diff --git a/level/block/mossy_cobblestone_wall.go b/level/block/mossy_cobblestone_wall.go new file mode 100644 index 0000000..1f791da --- /dev/null +++ b/level/block/mossy_cobblestone_wall.go @@ -0,0 +1,14 @@ +package block + +type MossyCobblestoneWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (MossyCobblestoneWall) ID() string { + return "minecraft:mossy_cobblestone_wall" +} diff --git a/level/block/mossy_stone_brick_slab.go b/level/block/mossy_stone_brick_slab.go new file mode 100644 index 0000000..9eea960 --- /dev/null +++ b/level/block/mossy_stone_brick_slab.go @@ -0,0 +1,10 @@ +package block + +type MossyStoneBrickSlab struct { + Type string + Waterlogged string +} + +func (MossyStoneBrickSlab) ID() string { + return "minecraft:mossy_stone_brick_slab" +} diff --git a/level/block/mossy_stone_brick_stairs.go b/level/block/mossy_stone_brick_stairs.go new file mode 100644 index 0000000..8438bae --- /dev/null +++ b/level/block/mossy_stone_brick_stairs.go @@ -0,0 +1,12 @@ +package block + +type MossyStoneBrickStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (MossyStoneBrickStairs) ID() string { + return "minecraft:mossy_stone_brick_stairs" +} diff --git a/level/block/mossy_stone_brick_wall.go b/level/block/mossy_stone_brick_wall.go new file mode 100644 index 0000000..8362da1 --- /dev/null +++ b/level/block/mossy_stone_brick_wall.go @@ -0,0 +1,14 @@ +package block + +type MossyStoneBrickWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (MossyStoneBrickWall) ID() string { + return "minecraft:mossy_stone_brick_wall" +} diff --git a/level/block/mossy_stone_bricks.go b/level/block/mossy_stone_bricks.go new file mode 100644 index 0000000..671ad39 --- /dev/null +++ b/level/block/mossy_stone_bricks.go @@ -0,0 +1,8 @@ +package block + +type MossyStoneBricks struct { +} + +func (MossyStoneBricks) ID() string { + return "minecraft:mossy_stone_bricks" +} diff --git a/level/block/moving_piston.go b/level/block/moving_piston.go new file mode 100644 index 0000000..aaf7c5d --- /dev/null +++ b/level/block/moving_piston.go @@ -0,0 +1,10 @@ +package block + +type MovingPiston struct { + Facing string + Type string +} + +func (MovingPiston) ID() string { + return "minecraft:moving_piston" +} diff --git a/level/block/mushroom_stem.go b/level/block/mushroom_stem.go new file mode 100644 index 0000000..c755b76 --- /dev/null +++ b/level/block/mushroom_stem.go @@ -0,0 +1,14 @@ +package block + +type MushroomStem struct { + Down string + East string + North string + South string + Up string + West string +} + +func (MushroomStem) ID() string { + return "minecraft:mushroom_stem" +} diff --git a/level/block/mycelium.go b/level/block/mycelium.go new file mode 100644 index 0000000..43bf7d3 --- /dev/null +++ b/level/block/mycelium.go @@ -0,0 +1,9 @@ +package block + +type Mycelium struct { + Snowy string +} + +func (Mycelium) ID() string { + return "minecraft:mycelium" +} diff --git a/level/block/nether_brick_fence.go b/level/block/nether_brick_fence.go new file mode 100644 index 0000000..363913d --- /dev/null +++ b/level/block/nether_brick_fence.go @@ -0,0 +1,13 @@ +package block + +type NetherBrickFence struct { + East string + North string + South string + Waterlogged string + West string +} + +func (NetherBrickFence) ID() string { + return "minecraft:nether_brick_fence" +} diff --git a/level/block/nether_brick_slab.go b/level/block/nether_brick_slab.go new file mode 100644 index 0000000..103697b --- /dev/null +++ b/level/block/nether_brick_slab.go @@ -0,0 +1,10 @@ +package block + +type NetherBrickSlab struct { + Type string + Waterlogged string +} + +func (NetherBrickSlab) ID() string { + return "minecraft:nether_brick_slab" +} diff --git a/level/block/nether_brick_stairs.go b/level/block/nether_brick_stairs.go new file mode 100644 index 0000000..9cca74d --- /dev/null +++ b/level/block/nether_brick_stairs.go @@ -0,0 +1,12 @@ +package block + +type NetherBrickStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (NetherBrickStairs) ID() string { + return "minecraft:nether_brick_stairs" +} diff --git a/level/block/nether_brick_wall.go b/level/block/nether_brick_wall.go new file mode 100644 index 0000000..11f4a40 --- /dev/null +++ b/level/block/nether_brick_wall.go @@ -0,0 +1,14 @@ +package block + +type NetherBrickWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (NetherBrickWall) ID() string { + return "minecraft:nether_brick_wall" +} diff --git a/level/block/nether_bricks.go b/level/block/nether_bricks.go new file mode 100644 index 0000000..4fbe454 --- /dev/null +++ b/level/block/nether_bricks.go @@ -0,0 +1,8 @@ +package block + +type NetherBricks struct { +} + +func (NetherBricks) ID() string { + return "minecraft:nether_bricks" +} diff --git a/level/block/nether_gold_ore.go b/level/block/nether_gold_ore.go new file mode 100644 index 0000000..4d89619 --- /dev/null +++ b/level/block/nether_gold_ore.go @@ -0,0 +1,8 @@ +package block + +type NetherGoldOre struct { +} + +func (NetherGoldOre) ID() string { + return "minecraft:nether_gold_ore" +} diff --git a/level/block/nether_portal.go b/level/block/nether_portal.go new file mode 100644 index 0000000..57d3584 --- /dev/null +++ b/level/block/nether_portal.go @@ -0,0 +1,9 @@ +package block + +type NetherPortal struct { + Axis string +} + +func (NetherPortal) ID() string { + return "minecraft:nether_portal" +} diff --git a/level/block/nether_quartz_ore.go b/level/block/nether_quartz_ore.go new file mode 100644 index 0000000..5d86356 --- /dev/null +++ b/level/block/nether_quartz_ore.go @@ -0,0 +1,8 @@ +package block + +type NetherQuartzOre struct { +} + +func (NetherQuartzOre) ID() string { + return "minecraft:nether_quartz_ore" +} diff --git a/level/block/nether_sprouts.go b/level/block/nether_sprouts.go new file mode 100644 index 0000000..4a27166 --- /dev/null +++ b/level/block/nether_sprouts.go @@ -0,0 +1,8 @@ +package block + +type NetherSprouts struct { +} + +func (NetherSprouts) ID() string { + return "minecraft:nether_sprouts" +} diff --git a/level/block/nether_wart.go b/level/block/nether_wart.go new file mode 100644 index 0000000..2febce4 --- /dev/null +++ b/level/block/nether_wart.go @@ -0,0 +1,9 @@ +package block + +type NetherWart struct { + Age string +} + +func (NetherWart) ID() string { + return "minecraft:nether_wart" +} diff --git a/level/block/nether_wart_block.go b/level/block/nether_wart_block.go new file mode 100644 index 0000000..0ae9863 --- /dev/null +++ b/level/block/nether_wart_block.go @@ -0,0 +1,8 @@ +package block + +type NetherWartBlock struct { +} + +func (NetherWartBlock) ID() string { + return "minecraft:nether_wart_block" +} diff --git a/level/block/netherite_block.go b/level/block/netherite_block.go new file mode 100644 index 0000000..fb42321 --- /dev/null +++ b/level/block/netherite_block.go @@ -0,0 +1,8 @@ +package block + +type NetheriteBlock struct { +} + +func (NetheriteBlock) ID() string { + return "minecraft:netherite_block" +} diff --git a/level/block/netherrack.go b/level/block/netherrack.go new file mode 100644 index 0000000..7e441fa --- /dev/null +++ b/level/block/netherrack.go @@ -0,0 +1,8 @@ +package block + +type Netherrack struct { +} + +func (Netherrack) ID() string { + return "minecraft:netherrack" +} diff --git a/level/block/note_block.go b/level/block/note_block.go new file mode 100644 index 0000000..a63bcb6 --- /dev/null +++ b/level/block/note_block.go @@ -0,0 +1,11 @@ +package block + +type NoteBlock struct { + Instrument string + Note string + Powered string +} + +func (NoteBlock) ID() string { + return "minecraft:note_block" +} diff --git a/level/block/oak_button.go b/level/block/oak_button.go new file mode 100644 index 0000000..0f84e07 --- /dev/null +++ b/level/block/oak_button.go @@ -0,0 +1,11 @@ +package block + +type OakButton struct { + Face string + Facing string + Powered string +} + +func (OakButton) ID() string { + return "minecraft:oak_button" +} diff --git a/level/block/oak_door.go b/level/block/oak_door.go new file mode 100644 index 0000000..0bcceac --- /dev/null +++ b/level/block/oak_door.go @@ -0,0 +1,13 @@ +package block + +type OakDoor struct { + Facing string + Half string + Hinge string + Open string + Powered string +} + +func (OakDoor) ID() string { + return "minecraft:oak_door" +} diff --git a/level/block/oak_fence.go b/level/block/oak_fence.go new file mode 100644 index 0000000..3bb7a29 --- /dev/null +++ b/level/block/oak_fence.go @@ -0,0 +1,13 @@ +package block + +type OakFence struct { + East string + North string + South string + Waterlogged string + West string +} + +func (OakFence) ID() string { + return "minecraft:oak_fence" +} diff --git a/level/block/oak_fence_gate.go b/level/block/oak_fence_gate.go new file mode 100644 index 0000000..0038415 --- /dev/null +++ b/level/block/oak_fence_gate.go @@ -0,0 +1,12 @@ +package block + +type OakFenceGate struct { + Facing string + In_wall string + Open string + Powered string +} + +func (OakFenceGate) ID() string { + return "minecraft:oak_fence_gate" +} diff --git a/level/block/oak_leaves.go b/level/block/oak_leaves.go new file mode 100644 index 0000000..7aa219f --- /dev/null +++ b/level/block/oak_leaves.go @@ -0,0 +1,10 @@ +package block + +type OakLeaves struct { + Distance string + Persistent string +} + +func (OakLeaves) ID() string { + return "minecraft:oak_leaves" +} diff --git a/level/block/oak_log.go b/level/block/oak_log.go new file mode 100644 index 0000000..0d06b41 --- /dev/null +++ b/level/block/oak_log.go @@ -0,0 +1,9 @@ +package block + +type OakLog struct { + Axis string +} + +func (OakLog) ID() string { + return "minecraft:oak_log" +} diff --git a/level/block/oak_planks.go b/level/block/oak_planks.go new file mode 100644 index 0000000..ae10f70 --- /dev/null +++ b/level/block/oak_planks.go @@ -0,0 +1,8 @@ +package block + +type OakPlanks struct { +} + +func (OakPlanks) ID() string { + return "minecraft:oak_planks" +} diff --git a/level/block/oak_pressure_plate.go b/level/block/oak_pressure_plate.go new file mode 100644 index 0000000..89d2fb4 --- /dev/null +++ b/level/block/oak_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type OakPressurePlate struct { + Powered string +} + +func (OakPressurePlate) ID() string { + return "minecraft:oak_pressure_plate" +} diff --git a/level/block/oak_sapling.go b/level/block/oak_sapling.go new file mode 100644 index 0000000..f44fc39 --- /dev/null +++ b/level/block/oak_sapling.go @@ -0,0 +1,9 @@ +package block + +type OakSapling struct { + Stage string +} + +func (OakSapling) ID() string { + return "minecraft:oak_sapling" +} diff --git a/level/block/oak_sign.go b/level/block/oak_sign.go new file mode 100644 index 0000000..6db47ea --- /dev/null +++ b/level/block/oak_sign.go @@ -0,0 +1,10 @@ +package block + +type OakSign struct { + Rotation string + Waterlogged string +} + +func (OakSign) ID() string { + return "minecraft:oak_sign" +} diff --git a/level/block/oak_slab.go b/level/block/oak_slab.go new file mode 100644 index 0000000..e6207c0 --- /dev/null +++ b/level/block/oak_slab.go @@ -0,0 +1,10 @@ +package block + +type OakSlab struct { + Type string + Waterlogged string +} + +func (OakSlab) ID() string { + return "minecraft:oak_slab" +} diff --git a/level/block/oak_stairs.go b/level/block/oak_stairs.go new file mode 100644 index 0000000..da2d1c4 --- /dev/null +++ b/level/block/oak_stairs.go @@ -0,0 +1,12 @@ +package block + +type OakStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (OakStairs) ID() string { + return "minecraft:oak_stairs" +} diff --git a/level/block/oak_trapdoor.go b/level/block/oak_trapdoor.go new file mode 100644 index 0000000..8057133 --- /dev/null +++ b/level/block/oak_trapdoor.go @@ -0,0 +1,13 @@ +package block + +type OakTrapdoor struct { + Facing string + Half string + Open string + Powered string + Waterlogged string +} + +func (OakTrapdoor) ID() string { + return "minecraft:oak_trapdoor" +} diff --git a/level/block/oak_wall_sign.go b/level/block/oak_wall_sign.go new file mode 100644 index 0000000..c7adc6b --- /dev/null +++ b/level/block/oak_wall_sign.go @@ -0,0 +1,10 @@ +package block + +type OakWallSign struct { + Facing string + Waterlogged string +} + +func (OakWallSign) ID() string { + return "minecraft:oak_wall_sign" +} diff --git a/level/block/oak_wood.go b/level/block/oak_wood.go new file mode 100644 index 0000000..db15d8b --- /dev/null +++ b/level/block/oak_wood.go @@ -0,0 +1,9 @@ +package block + +type OakWood struct { + Axis string +} + +func (OakWood) ID() string { + return "minecraft:oak_wood" +} diff --git a/level/block/observer.go b/level/block/observer.go new file mode 100644 index 0000000..7c30c36 --- /dev/null +++ b/level/block/observer.go @@ -0,0 +1,10 @@ +package block + +type Observer struct { + Facing string + Powered string +} + +func (Observer) ID() string { + return "minecraft:observer" +} diff --git a/level/block/obsidian.go b/level/block/obsidian.go new file mode 100644 index 0000000..2898020 --- /dev/null +++ b/level/block/obsidian.go @@ -0,0 +1,8 @@ +package block + +type Obsidian struct { +} + +func (Obsidian) ID() string { + return "minecraft:obsidian" +} diff --git a/level/block/orange_banner.go b/level/block/orange_banner.go new file mode 100644 index 0000000..2ba8ba3 --- /dev/null +++ b/level/block/orange_banner.go @@ -0,0 +1,9 @@ +package block + +type OrangeBanner struct { + Rotation string +} + +func (OrangeBanner) ID() string { + return "minecraft:orange_banner" +} diff --git a/level/block/orange_bed.go b/level/block/orange_bed.go new file mode 100644 index 0000000..f0887cf --- /dev/null +++ b/level/block/orange_bed.go @@ -0,0 +1,11 @@ +package block + +type OrangeBed struct { + Facing string + Occupied string + Part string +} + +func (OrangeBed) ID() string { + return "minecraft:orange_bed" +} diff --git a/level/block/orange_candle.go b/level/block/orange_candle.go new file mode 100644 index 0000000..ddc55f1 --- /dev/null +++ b/level/block/orange_candle.go @@ -0,0 +1,11 @@ +package block + +type OrangeCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (OrangeCandle) ID() string { + return "minecraft:orange_candle" +} diff --git a/level/block/orange_candle_cake.go b/level/block/orange_candle_cake.go new file mode 100644 index 0000000..a18baab --- /dev/null +++ b/level/block/orange_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type OrangeCandleCake struct { + Lit string +} + +func (OrangeCandleCake) ID() string { + return "minecraft:orange_candle_cake" +} diff --git a/level/block/orange_carpet.go b/level/block/orange_carpet.go new file mode 100644 index 0000000..2f93c29 --- /dev/null +++ b/level/block/orange_carpet.go @@ -0,0 +1,8 @@ +package block + +type OrangeCarpet struct { +} + +func (OrangeCarpet) ID() string { + return "minecraft:orange_carpet" +} diff --git a/level/block/orange_concrete.go b/level/block/orange_concrete.go new file mode 100644 index 0000000..c034bca --- /dev/null +++ b/level/block/orange_concrete.go @@ -0,0 +1,8 @@ +package block + +type OrangeConcrete struct { +} + +func (OrangeConcrete) ID() string { + return "minecraft:orange_concrete" +} diff --git a/level/block/orange_concrete_powder.go b/level/block/orange_concrete_powder.go new file mode 100644 index 0000000..cc47fe1 --- /dev/null +++ b/level/block/orange_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type OrangeConcretePowder struct { +} + +func (OrangeConcretePowder) ID() string { + return "minecraft:orange_concrete_powder" +} diff --git a/level/block/orange_glazed_terracotta.go b/level/block/orange_glazed_terracotta.go new file mode 100644 index 0000000..1157e1c --- /dev/null +++ b/level/block/orange_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type OrangeGlazedTerracotta struct { + Facing string +} + +func (OrangeGlazedTerracotta) ID() string { + return "minecraft:orange_glazed_terracotta" +} diff --git a/level/block/orange_shulker_box.go b/level/block/orange_shulker_box.go new file mode 100644 index 0000000..47ea271 --- /dev/null +++ b/level/block/orange_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type OrangeShulkerBox struct { + Facing string +} + +func (OrangeShulkerBox) ID() string { + return "minecraft:orange_shulker_box" +} diff --git a/level/block/orange_stained_glass.go b/level/block/orange_stained_glass.go new file mode 100644 index 0000000..0d097f1 --- /dev/null +++ b/level/block/orange_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type OrangeStainedGlass struct { +} + +func (OrangeStainedGlass) ID() string { + return "minecraft:orange_stained_glass" +} diff --git a/level/block/orange_stained_glass_pane.go b/level/block/orange_stained_glass_pane.go new file mode 100644 index 0000000..724e90e --- /dev/null +++ b/level/block/orange_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type OrangeStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (OrangeStainedGlassPane) ID() string { + return "minecraft:orange_stained_glass_pane" +} diff --git a/level/block/orange_terracotta.go b/level/block/orange_terracotta.go new file mode 100644 index 0000000..5baa2c7 --- /dev/null +++ b/level/block/orange_terracotta.go @@ -0,0 +1,8 @@ +package block + +type OrangeTerracotta struct { +} + +func (OrangeTerracotta) ID() string { + return "minecraft:orange_terracotta" +} diff --git a/level/block/orange_tulip.go b/level/block/orange_tulip.go new file mode 100644 index 0000000..8e36e23 --- /dev/null +++ b/level/block/orange_tulip.go @@ -0,0 +1,8 @@ +package block + +type OrangeTulip struct { +} + +func (OrangeTulip) ID() string { + return "minecraft:orange_tulip" +} diff --git a/level/block/orange_wall_banner.go b/level/block/orange_wall_banner.go new file mode 100644 index 0000000..05db6e1 --- /dev/null +++ b/level/block/orange_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type OrangeWallBanner struct { + Facing string +} + +func (OrangeWallBanner) ID() string { + return "minecraft:orange_wall_banner" +} diff --git a/level/block/orange_wool.go b/level/block/orange_wool.go new file mode 100644 index 0000000..ca15666 --- /dev/null +++ b/level/block/orange_wool.go @@ -0,0 +1,8 @@ +package block + +type OrangeWool struct { +} + +func (OrangeWool) ID() string { + return "minecraft:orange_wool" +} diff --git a/level/block/oxeye_daisy.go b/level/block/oxeye_daisy.go new file mode 100644 index 0000000..a559ea7 --- /dev/null +++ b/level/block/oxeye_daisy.go @@ -0,0 +1,8 @@ +package block + +type OxeyeDaisy struct { +} + +func (OxeyeDaisy) ID() string { + return "minecraft:oxeye_daisy" +} diff --git a/level/block/oxidized_copper.go b/level/block/oxidized_copper.go new file mode 100644 index 0000000..94b916c --- /dev/null +++ b/level/block/oxidized_copper.go @@ -0,0 +1,8 @@ +package block + +type OxidizedCopper struct { +} + +func (OxidizedCopper) ID() string { + return "minecraft:oxidized_copper" +} diff --git a/level/block/oxidized_cut_copper.go b/level/block/oxidized_cut_copper.go new file mode 100644 index 0000000..3ff29d0 --- /dev/null +++ b/level/block/oxidized_cut_copper.go @@ -0,0 +1,8 @@ +package block + +type OxidizedCutCopper struct { +} + +func (OxidizedCutCopper) ID() string { + return "minecraft:oxidized_cut_copper" +} diff --git a/level/block/oxidized_cut_copper_slab.go b/level/block/oxidized_cut_copper_slab.go new file mode 100644 index 0000000..2ce99ec --- /dev/null +++ b/level/block/oxidized_cut_copper_slab.go @@ -0,0 +1,10 @@ +package block + +type OxidizedCutCopperSlab struct { + Type string + Waterlogged string +} + +func (OxidizedCutCopperSlab) ID() string { + return "minecraft:oxidized_cut_copper_slab" +} diff --git a/level/block/oxidized_cut_copper_stairs.go b/level/block/oxidized_cut_copper_stairs.go new file mode 100644 index 0000000..709972a --- /dev/null +++ b/level/block/oxidized_cut_copper_stairs.go @@ -0,0 +1,12 @@ +package block + +type OxidizedCutCopperStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (OxidizedCutCopperStairs) ID() string { + return "minecraft:oxidized_cut_copper_stairs" +} diff --git a/level/block/packed_ice.go b/level/block/packed_ice.go new file mode 100644 index 0000000..8b0e180 --- /dev/null +++ b/level/block/packed_ice.go @@ -0,0 +1,8 @@ +package block + +type PackedIce struct { +} + +func (PackedIce) ID() string { + return "minecraft:packed_ice" +} diff --git a/level/block/peony.go b/level/block/peony.go new file mode 100644 index 0000000..a89c129 --- /dev/null +++ b/level/block/peony.go @@ -0,0 +1,9 @@ +package block + +type Peony struct { + Half string +} + +func (Peony) ID() string { + return "minecraft:peony" +} diff --git a/level/block/petrified_oak_slab.go b/level/block/petrified_oak_slab.go new file mode 100644 index 0000000..d0cae10 --- /dev/null +++ b/level/block/petrified_oak_slab.go @@ -0,0 +1,10 @@ +package block + +type PetrifiedOakSlab struct { + Type string + Waterlogged string +} + +func (PetrifiedOakSlab) ID() string { + return "minecraft:petrified_oak_slab" +} diff --git a/level/block/pink_banner.go b/level/block/pink_banner.go new file mode 100644 index 0000000..a1de212 --- /dev/null +++ b/level/block/pink_banner.go @@ -0,0 +1,9 @@ +package block + +type PinkBanner struct { + Rotation string +} + +func (PinkBanner) ID() string { + return "minecraft:pink_banner" +} diff --git a/level/block/pink_bed.go b/level/block/pink_bed.go new file mode 100644 index 0000000..4f071e0 --- /dev/null +++ b/level/block/pink_bed.go @@ -0,0 +1,11 @@ +package block + +type PinkBed struct { + Facing string + Occupied string + Part string +} + +func (PinkBed) ID() string { + return "minecraft:pink_bed" +} diff --git a/level/block/pink_candle.go b/level/block/pink_candle.go new file mode 100644 index 0000000..eb95853 --- /dev/null +++ b/level/block/pink_candle.go @@ -0,0 +1,11 @@ +package block + +type PinkCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (PinkCandle) ID() string { + return "minecraft:pink_candle" +} diff --git a/level/block/pink_candle_cake.go b/level/block/pink_candle_cake.go new file mode 100644 index 0000000..a523ce3 --- /dev/null +++ b/level/block/pink_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type PinkCandleCake struct { + Lit string +} + +func (PinkCandleCake) ID() string { + return "minecraft:pink_candle_cake" +} diff --git a/level/block/pink_carpet.go b/level/block/pink_carpet.go new file mode 100644 index 0000000..6a8e209 --- /dev/null +++ b/level/block/pink_carpet.go @@ -0,0 +1,8 @@ +package block + +type PinkCarpet struct { +} + +func (PinkCarpet) ID() string { + return "minecraft:pink_carpet" +} diff --git a/level/block/pink_concrete.go b/level/block/pink_concrete.go new file mode 100644 index 0000000..f7ab45f --- /dev/null +++ b/level/block/pink_concrete.go @@ -0,0 +1,8 @@ +package block + +type PinkConcrete struct { +} + +func (PinkConcrete) ID() string { + return "minecraft:pink_concrete" +} diff --git a/level/block/pink_concrete_powder.go b/level/block/pink_concrete_powder.go new file mode 100644 index 0000000..928e6e6 --- /dev/null +++ b/level/block/pink_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type PinkConcretePowder struct { +} + +func (PinkConcretePowder) ID() string { + return "minecraft:pink_concrete_powder" +} diff --git a/level/block/pink_glazed_terracotta.go b/level/block/pink_glazed_terracotta.go new file mode 100644 index 0000000..a953547 --- /dev/null +++ b/level/block/pink_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type PinkGlazedTerracotta struct { + Facing string +} + +func (PinkGlazedTerracotta) ID() string { + return "minecraft:pink_glazed_terracotta" +} diff --git a/level/block/pink_shulker_box.go b/level/block/pink_shulker_box.go new file mode 100644 index 0000000..c226e04 --- /dev/null +++ b/level/block/pink_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type PinkShulkerBox struct { + Facing string +} + +func (PinkShulkerBox) ID() string { + return "minecraft:pink_shulker_box" +} diff --git a/level/block/pink_stained_glass.go b/level/block/pink_stained_glass.go new file mode 100644 index 0000000..1bbf158 --- /dev/null +++ b/level/block/pink_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type PinkStainedGlass struct { +} + +func (PinkStainedGlass) ID() string { + return "minecraft:pink_stained_glass" +} diff --git a/level/block/pink_stained_glass_pane.go b/level/block/pink_stained_glass_pane.go new file mode 100644 index 0000000..06bcb55 --- /dev/null +++ b/level/block/pink_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type PinkStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (PinkStainedGlassPane) ID() string { + return "minecraft:pink_stained_glass_pane" +} diff --git a/level/block/pink_terracotta.go b/level/block/pink_terracotta.go new file mode 100644 index 0000000..f09e425 --- /dev/null +++ b/level/block/pink_terracotta.go @@ -0,0 +1,8 @@ +package block + +type PinkTerracotta struct { +} + +func (PinkTerracotta) ID() string { + return "minecraft:pink_terracotta" +} diff --git a/level/block/pink_tulip.go b/level/block/pink_tulip.go new file mode 100644 index 0000000..212e8af --- /dev/null +++ b/level/block/pink_tulip.go @@ -0,0 +1,8 @@ +package block + +type PinkTulip struct { +} + +func (PinkTulip) ID() string { + return "minecraft:pink_tulip" +} diff --git a/level/block/pink_wall_banner.go b/level/block/pink_wall_banner.go new file mode 100644 index 0000000..7415338 --- /dev/null +++ b/level/block/pink_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type PinkWallBanner struct { + Facing string +} + +func (PinkWallBanner) ID() string { + return "minecraft:pink_wall_banner" +} diff --git a/level/block/pink_wool.go b/level/block/pink_wool.go new file mode 100644 index 0000000..410183c --- /dev/null +++ b/level/block/pink_wool.go @@ -0,0 +1,8 @@ +package block + +type PinkWool struct { +} + +func (PinkWool) ID() string { + return "minecraft:pink_wool" +} diff --git a/level/block/piston.go b/level/block/piston.go new file mode 100644 index 0000000..415bb61 --- /dev/null +++ b/level/block/piston.go @@ -0,0 +1,10 @@ +package block + +type Piston struct { + Extended string + Facing string +} + +func (Piston) ID() string { + return "minecraft:piston" +} diff --git a/level/block/piston_head.go b/level/block/piston_head.go new file mode 100644 index 0000000..e393b98 --- /dev/null +++ b/level/block/piston_head.go @@ -0,0 +1,11 @@ +package block + +type PistonHead struct { + Facing string + Short string + Type string +} + +func (PistonHead) ID() string { + return "minecraft:piston_head" +} diff --git a/level/block/player_head.go b/level/block/player_head.go new file mode 100644 index 0000000..5b08589 --- /dev/null +++ b/level/block/player_head.go @@ -0,0 +1,9 @@ +package block + +type PlayerHead struct { + Rotation string +} + +func (PlayerHead) ID() string { + return "minecraft:player_head" +} diff --git a/level/block/player_wall_head.go b/level/block/player_wall_head.go new file mode 100644 index 0000000..4b5170f --- /dev/null +++ b/level/block/player_wall_head.go @@ -0,0 +1,9 @@ +package block + +type PlayerWallHead struct { + Facing string +} + +func (PlayerWallHead) ID() string { + return "minecraft:player_wall_head" +} diff --git a/level/block/podzol.go b/level/block/podzol.go new file mode 100644 index 0000000..1918ad7 --- /dev/null +++ b/level/block/podzol.go @@ -0,0 +1,9 @@ +package block + +type Podzol struct { + Snowy string +} + +func (Podzol) ID() string { + return "minecraft:podzol" +} diff --git a/level/block/pointed_dripstone.go b/level/block/pointed_dripstone.go new file mode 100644 index 0000000..1cb22f1 --- /dev/null +++ b/level/block/pointed_dripstone.go @@ -0,0 +1,11 @@ +package block + +type PointedDripstone struct { + Thickness string + Vertical_direction string + Waterlogged string +} + +func (PointedDripstone) ID() string { + return "minecraft:pointed_dripstone" +} diff --git a/level/block/polished_andesite.go b/level/block/polished_andesite.go new file mode 100644 index 0000000..728355e --- /dev/null +++ b/level/block/polished_andesite.go @@ -0,0 +1,8 @@ +package block + +type PolishedAndesite struct { +} + +func (PolishedAndesite) ID() string { + return "minecraft:polished_andesite" +} diff --git a/level/block/polished_andesite_slab.go b/level/block/polished_andesite_slab.go new file mode 100644 index 0000000..8ab3f8b --- /dev/null +++ b/level/block/polished_andesite_slab.go @@ -0,0 +1,10 @@ +package block + +type PolishedAndesiteSlab struct { + Type string + Waterlogged string +} + +func (PolishedAndesiteSlab) ID() string { + return "minecraft:polished_andesite_slab" +} diff --git a/level/block/polished_andesite_stairs.go b/level/block/polished_andesite_stairs.go new file mode 100644 index 0000000..48ecc1e --- /dev/null +++ b/level/block/polished_andesite_stairs.go @@ -0,0 +1,12 @@ +package block + +type PolishedAndesiteStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (PolishedAndesiteStairs) ID() string { + return "minecraft:polished_andesite_stairs" +} diff --git a/level/block/polished_basalt.go b/level/block/polished_basalt.go new file mode 100644 index 0000000..54921a1 --- /dev/null +++ b/level/block/polished_basalt.go @@ -0,0 +1,9 @@ +package block + +type PolishedBasalt struct { + Axis string +} + +func (PolishedBasalt) ID() string { + return "minecraft:polished_basalt" +} diff --git a/level/block/polished_blackstone.go b/level/block/polished_blackstone.go new file mode 100644 index 0000000..81329db --- /dev/null +++ b/level/block/polished_blackstone.go @@ -0,0 +1,8 @@ +package block + +type PolishedBlackstone struct { +} + +func (PolishedBlackstone) ID() string { + return "minecraft:polished_blackstone" +} diff --git a/level/block/polished_blackstone_brick_slab.go b/level/block/polished_blackstone_brick_slab.go new file mode 100644 index 0000000..dc141a2 --- /dev/null +++ b/level/block/polished_blackstone_brick_slab.go @@ -0,0 +1,10 @@ +package block + +type PolishedBlackstoneBrickSlab struct { + Type string + Waterlogged string +} + +func (PolishedBlackstoneBrickSlab) ID() string { + return "minecraft:polished_blackstone_brick_slab" +} diff --git a/level/block/polished_blackstone_brick_stairs.go b/level/block/polished_blackstone_brick_stairs.go new file mode 100644 index 0000000..f674391 --- /dev/null +++ b/level/block/polished_blackstone_brick_stairs.go @@ -0,0 +1,12 @@ +package block + +type PolishedBlackstoneBrickStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (PolishedBlackstoneBrickStairs) ID() string { + return "minecraft:polished_blackstone_brick_stairs" +} diff --git a/level/block/polished_blackstone_brick_wall.go b/level/block/polished_blackstone_brick_wall.go new file mode 100644 index 0000000..4f25471 --- /dev/null +++ b/level/block/polished_blackstone_brick_wall.go @@ -0,0 +1,14 @@ +package block + +type PolishedBlackstoneBrickWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (PolishedBlackstoneBrickWall) ID() string { + return "minecraft:polished_blackstone_brick_wall" +} diff --git a/level/block/polished_blackstone_bricks.go b/level/block/polished_blackstone_bricks.go new file mode 100644 index 0000000..477d672 --- /dev/null +++ b/level/block/polished_blackstone_bricks.go @@ -0,0 +1,8 @@ +package block + +type PolishedBlackstoneBricks struct { +} + +func (PolishedBlackstoneBricks) ID() string { + return "minecraft:polished_blackstone_bricks" +} diff --git a/level/block/polished_blackstone_button.go b/level/block/polished_blackstone_button.go new file mode 100644 index 0000000..8211d87 --- /dev/null +++ b/level/block/polished_blackstone_button.go @@ -0,0 +1,11 @@ +package block + +type PolishedBlackstoneButton struct { + Face string + Facing string + Powered string +} + +func (PolishedBlackstoneButton) ID() string { + return "minecraft:polished_blackstone_button" +} diff --git a/level/block/polished_blackstone_pressure_plate.go b/level/block/polished_blackstone_pressure_plate.go new file mode 100644 index 0000000..70dd2cb --- /dev/null +++ b/level/block/polished_blackstone_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type PolishedBlackstonePressurePlate struct { + Powered string +} + +func (PolishedBlackstonePressurePlate) ID() string { + return "minecraft:polished_blackstone_pressure_plate" +} diff --git a/level/block/polished_blackstone_slab.go b/level/block/polished_blackstone_slab.go new file mode 100644 index 0000000..d0c60ed --- /dev/null +++ b/level/block/polished_blackstone_slab.go @@ -0,0 +1,10 @@ +package block + +type PolishedBlackstoneSlab struct { + Type string + Waterlogged string +} + +func (PolishedBlackstoneSlab) ID() string { + return "minecraft:polished_blackstone_slab" +} diff --git a/level/block/polished_blackstone_stairs.go b/level/block/polished_blackstone_stairs.go new file mode 100644 index 0000000..e6b23ba --- /dev/null +++ b/level/block/polished_blackstone_stairs.go @@ -0,0 +1,12 @@ +package block + +type PolishedBlackstoneStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (PolishedBlackstoneStairs) ID() string { + return "minecraft:polished_blackstone_stairs" +} diff --git a/level/block/polished_blackstone_wall.go b/level/block/polished_blackstone_wall.go new file mode 100644 index 0000000..c5a06ab --- /dev/null +++ b/level/block/polished_blackstone_wall.go @@ -0,0 +1,14 @@ +package block + +type PolishedBlackstoneWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (PolishedBlackstoneWall) ID() string { + return "minecraft:polished_blackstone_wall" +} diff --git a/level/block/polished_deepslate.go b/level/block/polished_deepslate.go new file mode 100644 index 0000000..d8d7e50 --- /dev/null +++ b/level/block/polished_deepslate.go @@ -0,0 +1,8 @@ +package block + +type PolishedDeepslate struct { +} + +func (PolishedDeepslate) ID() string { + return "minecraft:polished_deepslate" +} diff --git a/level/block/polished_deepslate_slab.go b/level/block/polished_deepslate_slab.go new file mode 100644 index 0000000..5a950a8 --- /dev/null +++ b/level/block/polished_deepslate_slab.go @@ -0,0 +1,10 @@ +package block + +type PolishedDeepslateSlab struct { + Type string + Waterlogged string +} + +func (PolishedDeepslateSlab) ID() string { + return "minecraft:polished_deepslate_slab" +} diff --git a/level/block/polished_deepslate_stairs.go b/level/block/polished_deepslate_stairs.go new file mode 100644 index 0000000..fa69053 --- /dev/null +++ b/level/block/polished_deepslate_stairs.go @@ -0,0 +1,12 @@ +package block + +type PolishedDeepslateStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (PolishedDeepslateStairs) ID() string { + return "minecraft:polished_deepslate_stairs" +} diff --git a/level/block/polished_deepslate_wall.go b/level/block/polished_deepslate_wall.go new file mode 100644 index 0000000..a86d546 --- /dev/null +++ b/level/block/polished_deepslate_wall.go @@ -0,0 +1,14 @@ +package block + +type PolishedDeepslateWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (PolishedDeepslateWall) ID() string { + return "minecraft:polished_deepslate_wall" +} diff --git a/level/block/polished_diorite.go b/level/block/polished_diorite.go new file mode 100644 index 0000000..b8c1946 --- /dev/null +++ b/level/block/polished_diorite.go @@ -0,0 +1,8 @@ +package block + +type PolishedDiorite struct { +} + +func (PolishedDiorite) ID() string { + return "minecraft:polished_diorite" +} diff --git a/level/block/polished_diorite_slab.go b/level/block/polished_diorite_slab.go new file mode 100644 index 0000000..8922506 --- /dev/null +++ b/level/block/polished_diorite_slab.go @@ -0,0 +1,10 @@ +package block + +type PolishedDioriteSlab struct { + Type string + Waterlogged string +} + +func (PolishedDioriteSlab) ID() string { + return "minecraft:polished_diorite_slab" +} diff --git a/level/block/polished_diorite_stairs.go b/level/block/polished_diorite_stairs.go new file mode 100644 index 0000000..22a508f --- /dev/null +++ b/level/block/polished_diorite_stairs.go @@ -0,0 +1,12 @@ +package block + +type PolishedDioriteStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (PolishedDioriteStairs) ID() string { + return "minecraft:polished_diorite_stairs" +} diff --git a/level/block/polished_granite.go b/level/block/polished_granite.go new file mode 100644 index 0000000..de9825a --- /dev/null +++ b/level/block/polished_granite.go @@ -0,0 +1,8 @@ +package block + +type PolishedGranite struct { +} + +func (PolishedGranite) ID() string { + return "minecraft:polished_granite" +} diff --git a/level/block/polished_granite_slab.go b/level/block/polished_granite_slab.go new file mode 100644 index 0000000..3d7425c --- /dev/null +++ b/level/block/polished_granite_slab.go @@ -0,0 +1,10 @@ +package block + +type PolishedGraniteSlab struct { + Type string + Waterlogged string +} + +func (PolishedGraniteSlab) ID() string { + return "minecraft:polished_granite_slab" +} diff --git a/level/block/polished_granite_stairs.go b/level/block/polished_granite_stairs.go new file mode 100644 index 0000000..05b9081 --- /dev/null +++ b/level/block/polished_granite_stairs.go @@ -0,0 +1,12 @@ +package block + +type PolishedGraniteStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (PolishedGraniteStairs) ID() string { + return "minecraft:polished_granite_stairs" +} diff --git a/level/block/poppy.go b/level/block/poppy.go new file mode 100644 index 0000000..77b38ac --- /dev/null +++ b/level/block/poppy.go @@ -0,0 +1,8 @@ +package block + +type Poppy struct { +} + +func (Poppy) ID() string { + return "minecraft:poppy" +} diff --git a/level/block/potatoes.go b/level/block/potatoes.go new file mode 100644 index 0000000..4549db2 --- /dev/null +++ b/level/block/potatoes.go @@ -0,0 +1,9 @@ +package block + +type Potatoes struct { + Age string +} + +func (Potatoes) ID() string { + return "minecraft:potatoes" +} diff --git a/level/block/potted_acacia_sapling.go b/level/block/potted_acacia_sapling.go new file mode 100644 index 0000000..d874af7 --- /dev/null +++ b/level/block/potted_acacia_sapling.go @@ -0,0 +1,8 @@ +package block + +type PottedAcaciaSapling struct { +} + +func (PottedAcaciaSapling) ID() string { + return "minecraft:potted_acacia_sapling" +} diff --git a/level/block/potted_allium.go b/level/block/potted_allium.go new file mode 100644 index 0000000..aab07cb --- /dev/null +++ b/level/block/potted_allium.go @@ -0,0 +1,8 @@ +package block + +type PottedAllium struct { +} + +func (PottedAllium) ID() string { + return "minecraft:potted_allium" +} diff --git a/level/block/potted_azalea_bush.go b/level/block/potted_azalea_bush.go new file mode 100644 index 0000000..5324bdd --- /dev/null +++ b/level/block/potted_azalea_bush.go @@ -0,0 +1,8 @@ +package block + +type PottedAzaleaBush struct { +} + +func (PottedAzaleaBush) ID() string { + return "minecraft:potted_azalea_bush" +} diff --git a/level/block/potted_azure_bluet.go b/level/block/potted_azure_bluet.go new file mode 100644 index 0000000..8cfb46f --- /dev/null +++ b/level/block/potted_azure_bluet.go @@ -0,0 +1,8 @@ +package block + +type PottedAzureBluet struct { +} + +func (PottedAzureBluet) ID() string { + return "minecraft:potted_azure_bluet" +} diff --git a/level/block/potted_bamboo.go b/level/block/potted_bamboo.go new file mode 100644 index 0000000..92a6e65 --- /dev/null +++ b/level/block/potted_bamboo.go @@ -0,0 +1,8 @@ +package block + +type PottedBamboo struct { +} + +func (PottedBamboo) ID() string { + return "minecraft:potted_bamboo" +} diff --git a/level/block/potted_birch_sapling.go b/level/block/potted_birch_sapling.go new file mode 100644 index 0000000..574a906 --- /dev/null +++ b/level/block/potted_birch_sapling.go @@ -0,0 +1,8 @@ +package block + +type PottedBirchSapling struct { +} + +func (PottedBirchSapling) ID() string { + return "minecraft:potted_birch_sapling" +} diff --git a/level/block/potted_blue_orchid.go b/level/block/potted_blue_orchid.go new file mode 100644 index 0000000..d891b08 --- /dev/null +++ b/level/block/potted_blue_orchid.go @@ -0,0 +1,8 @@ +package block + +type PottedBlueOrchid struct { +} + +func (PottedBlueOrchid) ID() string { + return "minecraft:potted_blue_orchid" +} diff --git a/level/block/potted_brown_mushroom.go b/level/block/potted_brown_mushroom.go new file mode 100644 index 0000000..1a585bd --- /dev/null +++ b/level/block/potted_brown_mushroom.go @@ -0,0 +1,8 @@ +package block + +type PottedBrownMushroom struct { +} + +func (PottedBrownMushroom) ID() string { + return "minecraft:potted_brown_mushroom" +} diff --git a/level/block/potted_cactus.go b/level/block/potted_cactus.go new file mode 100644 index 0000000..5f76d3c --- /dev/null +++ b/level/block/potted_cactus.go @@ -0,0 +1,8 @@ +package block + +type PottedCactus struct { +} + +func (PottedCactus) ID() string { + return "minecraft:potted_cactus" +} diff --git a/level/block/potted_cornflower.go b/level/block/potted_cornflower.go new file mode 100644 index 0000000..c1349b4 --- /dev/null +++ b/level/block/potted_cornflower.go @@ -0,0 +1,8 @@ +package block + +type PottedCornflower struct { +} + +func (PottedCornflower) ID() string { + return "minecraft:potted_cornflower" +} diff --git a/level/block/potted_crimson_fungus.go b/level/block/potted_crimson_fungus.go new file mode 100644 index 0000000..a2b4a99 --- /dev/null +++ b/level/block/potted_crimson_fungus.go @@ -0,0 +1,8 @@ +package block + +type PottedCrimsonFungus struct { +} + +func (PottedCrimsonFungus) ID() string { + return "minecraft:potted_crimson_fungus" +} diff --git a/level/block/potted_crimson_roots.go b/level/block/potted_crimson_roots.go new file mode 100644 index 0000000..36d8c8a --- /dev/null +++ b/level/block/potted_crimson_roots.go @@ -0,0 +1,8 @@ +package block + +type PottedCrimsonRoots struct { +} + +func (PottedCrimsonRoots) ID() string { + return "minecraft:potted_crimson_roots" +} diff --git a/level/block/potted_dandelion.go b/level/block/potted_dandelion.go new file mode 100644 index 0000000..9ee1291 --- /dev/null +++ b/level/block/potted_dandelion.go @@ -0,0 +1,8 @@ +package block + +type PottedDandelion struct { +} + +func (PottedDandelion) ID() string { + return "minecraft:potted_dandelion" +} diff --git a/level/block/potted_dark_oak_sapling.go b/level/block/potted_dark_oak_sapling.go new file mode 100644 index 0000000..74ab155 --- /dev/null +++ b/level/block/potted_dark_oak_sapling.go @@ -0,0 +1,8 @@ +package block + +type PottedDarkOakSapling struct { +} + +func (PottedDarkOakSapling) ID() string { + return "minecraft:potted_dark_oak_sapling" +} diff --git a/level/block/potted_dead_bush.go b/level/block/potted_dead_bush.go new file mode 100644 index 0000000..6d232b3 --- /dev/null +++ b/level/block/potted_dead_bush.go @@ -0,0 +1,8 @@ +package block + +type PottedDeadBush struct { +} + +func (PottedDeadBush) ID() string { + return "minecraft:potted_dead_bush" +} diff --git a/level/block/potted_fern.go b/level/block/potted_fern.go new file mode 100644 index 0000000..4539119 --- /dev/null +++ b/level/block/potted_fern.go @@ -0,0 +1,8 @@ +package block + +type PottedFern struct { +} + +func (PottedFern) ID() string { + return "minecraft:potted_fern" +} diff --git a/level/block/potted_flowering_azalea_bush.go b/level/block/potted_flowering_azalea_bush.go new file mode 100644 index 0000000..b324409 --- /dev/null +++ b/level/block/potted_flowering_azalea_bush.go @@ -0,0 +1,8 @@ +package block + +type PottedFloweringAzaleaBush struct { +} + +func (PottedFloweringAzaleaBush) ID() string { + return "minecraft:potted_flowering_azalea_bush" +} diff --git a/level/block/potted_jungle_sapling.go b/level/block/potted_jungle_sapling.go new file mode 100644 index 0000000..89e1d89 --- /dev/null +++ b/level/block/potted_jungle_sapling.go @@ -0,0 +1,8 @@ +package block + +type PottedJungleSapling struct { +} + +func (PottedJungleSapling) ID() string { + return "minecraft:potted_jungle_sapling" +} diff --git a/level/block/potted_lily_of_the_valley.go b/level/block/potted_lily_of_the_valley.go new file mode 100644 index 0000000..ffd029c --- /dev/null +++ b/level/block/potted_lily_of_the_valley.go @@ -0,0 +1,8 @@ +package block + +type PottedLilyOfTheValley struct { +} + +func (PottedLilyOfTheValley) ID() string { + return "minecraft:potted_lily_of_the_valley" +} diff --git a/level/block/potted_oak_sapling.go b/level/block/potted_oak_sapling.go new file mode 100644 index 0000000..870846f --- /dev/null +++ b/level/block/potted_oak_sapling.go @@ -0,0 +1,8 @@ +package block + +type PottedOakSapling struct { +} + +func (PottedOakSapling) ID() string { + return "minecraft:potted_oak_sapling" +} diff --git a/level/block/potted_orange_tulip.go b/level/block/potted_orange_tulip.go new file mode 100644 index 0000000..345ed6d --- /dev/null +++ b/level/block/potted_orange_tulip.go @@ -0,0 +1,8 @@ +package block + +type PottedOrangeTulip struct { +} + +func (PottedOrangeTulip) ID() string { + return "minecraft:potted_orange_tulip" +} diff --git a/level/block/potted_oxeye_daisy.go b/level/block/potted_oxeye_daisy.go new file mode 100644 index 0000000..a4c6681 --- /dev/null +++ b/level/block/potted_oxeye_daisy.go @@ -0,0 +1,8 @@ +package block + +type PottedOxeyeDaisy struct { +} + +func (PottedOxeyeDaisy) ID() string { + return "minecraft:potted_oxeye_daisy" +} diff --git a/level/block/potted_pink_tulip.go b/level/block/potted_pink_tulip.go new file mode 100644 index 0000000..34212d6 --- /dev/null +++ b/level/block/potted_pink_tulip.go @@ -0,0 +1,8 @@ +package block + +type PottedPinkTulip struct { +} + +func (PottedPinkTulip) ID() string { + return "minecraft:potted_pink_tulip" +} diff --git a/level/block/potted_poppy.go b/level/block/potted_poppy.go new file mode 100644 index 0000000..99d1b8c --- /dev/null +++ b/level/block/potted_poppy.go @@ -0,0 +1,8 @@ +package block + +type PottedPoppy struct { +} + +func (PottedPoppy) ID() string { + return "minecraft:potted_poppy" +} diff --git a/level/block/potted_red_mushroom.go b/level/block/potted_red_mushroom.go new file mode 100644 index 0000000..56b7409 --- /dev/null +++ b/level/block/potted_red_mushroom.go @@ -0,0 +1,8 @@ +package block + +type PottedRedMushroom struct { +} + +func (PottedRedMushroom) ID() string { + return "minecraft:potted_red_mushroom" +} diff --git a/level/block/potted_red_tulip.go b/level/block/potted_red_tulip.go new file mode 100644 index 0000000..cb8a607 --- /dev/null +++ b/level/block/potted_red_tulip.go @@ -0,0 +1,8 @@ +package block + +type PottedRedTulip struct { +} + +func (PottedRedTulip) ID() string { + return "minecraft:potted_red_tulip" +} diff --git a/level/block/potted_spruce_sapling.go b/level/block/potted_spruce_sapling.go new file mode 100644 index 0000000..83c0678 --- /dev/null +++ b/level/block/potted_spruce_sapling.go @@ -0,0 +1,8 @@ +package block + +type PottedSpruceSapling struct { +} + +func (PottedSpruceSapling) ID() string { + return "minecraft:potted_spruce_sapling" +} diff --git a/level/block/potted_warped_fungus.go b/level/block/potted_warped_fungus.go new file mode 100644 index 0000000..1b1ccc3 --- /dev/null +++ b/level/block/potted_warped_fungus.go @@ -0,0 +1,8 @@ +package block + +type PottedWarpedFungus struct { +} + +func (PottedWarpedFungus) ID() string { + return "minecraft:potted_warped_fungus" +} diff --git a/level/block/potted_warped_roots.go b/level/block/potted_warped_roots.go new file mode 100644 index 0000000..b17f547 --- /dev/null +++ b/level/block/potted_warped_roots.go @@ -0,0 +1,8 @@ +package block + +type PottedWarpedRoots struct { +} + +func (PottedWarpedRoots) ID() string { + return "minecraft:potted_warped_roots" +} diff --git a/level/block/potted_white_tulip.go b/level/block/potted_white_tulip.go new file mode 100644 index 0000000..be27496 --- /dev/null +++ b/level/block/potted_white_tulip.go @@ -0,0 +1,8 @@ +package block + +type PottedWhiteTulip struct { +} + +func (PottedWhiteTulip) ID() string { + return "minecraft:potted_white_tulip" +} diff --git a/level/block/potted_wither_rose.go b/level/block/potted_wither_rose.go new file mode 100644 index 0000000..7c39c34 --- /dev/null +++ b/level/block/potted_wither_rose.go @@ -0,0 +1,8 @@ +package block + +type PottedWitherRose struct { +} + +func (PottedWitherRose) ID() string { + return "minecraft:potted_wither_rose" +} diff --git a/level/block/powder_snow.go b/level/block/powder_snow.go new file mode 100644 index 0000000..0da7315 --- /dev/null +++ b/level/block/powder_snow.go @@ -0,0 +1,8 @@ +package block + +type PowderSnow struct { +} + +func (PowderSnow) ID() string { + return "minecraft:powder_snow" +} diff --git a/level/block/powder_snow_cauldron.go b/level/block/powder_snow_cauldron.go new file mode 100644 index 0000000..2fd143a --- /dev/null +++ b/level/block/powder_snow_cauldron.go @@ -0,0 +1,9 @@ +package block + +type PowderSnowCauldron struct { + Level string +} + +func (PowderSnowCauldron) ID() string { + return "minecraft:powder_snow_cauldron" +} diff --git a/level/block/powered_rail.go b/level/block/powered_rail.go new file mode 100644 index 0000000..469e95f --- /dev/null +++ b/level/block/powered_rail.go @@ -0,0 +1,11 @@ +package block + +type PoweredRail struct { + Powered string + Shape string + Waterlogged string +} + +func (PoweredRail) ID() string { + return "minecraft:powered_rail" +} diff --git a/level/block/prismarine.go b/level/block/prismarine.go new file mode 100644 index 0000000..409f780 --- /dev/null +++ b/level/block/prismarine.go @@ -0,0 +1,8 @@ +package block + +type Prismarine struct { +} + +func (Prismarine) ID() string { + return "minecraft:prismarine" +} diff --git a/level/block/prismarine_brick_slab.go b/level/block/prismarine_brick_slab.go new file mode 100644 index 0000000..2d836e1 --- /dev/null +++ b/level/block/prismarine_brick_slab.go @@ -0,0 +1,10 @@ +package block + +type PrismarineBrickSlab struct { + Type string + Waterlogged string +} + +func (PrismarineBrickSlab) ID() string { + return "minecraft:prismarine_brick_slab" +} diff --git a/level/block/prismarine_brick_stairs.go b/level/block/prismarine_brick_stairs.go new file mode 100644 index 0000000..cdc5bee --- /dev/null +++ b/level/block/prismarine_brick_stairs.go @@ -0,0 +1,12 @@ +package block + +type PrismarineBrickStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (PrismarineBrickStairs) ID() string { + return "minecraft:prismarine_brick_stairs" +} diff --git a/level/block/prismarine_bricks.go b/level/block/prismarine_bricks.go new file mode 100644 index 0000000..f87b314 --- /dev/null +++ b/level/block/prismarine_bricks.go @@ -0,0 +1,8 @@ +package block + +type PrismarineBricks struct { +} + +func (PrismarineBricks) ID() string { + return "minecraft:prismarine_bricks" +} diff --git a/level/block/prismarine_slab.go b/level/block/prismarine_slab.go new file mode 100644 index 0000000..17c31cc --- /dev/null +++ b/level/block/prismarine_slab.go @@ -0,0 +1,10 @@ +package block + +type PrismarineSlab struct { + Type string + Waterlogged string +} + +func (PrismarineSlab) ID() string { + return "minecraft:prismarine_slab" +} diff --git a/level/block/prismarine_stairs.go b/level/block/prismarine_stairs.go new file mode 100644 index 0000000..23a71a4 --- /dev/null +++ b/level/block/prismarine_stairs.go @@ -0,0 +1,12 @@ +package block + +type PrismarineStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (PrismarineStairs) ID() string { + return "minecraft:prismarine_stairs" +} diff --git a/level/block/prismarine_wall.go b/level/block/prismarine_wall.go new file mode 100644 index 0000000..686db2d --- /dev/null +++ b/level/block/prismarine_wall.go @@ -0,0 +1,14 @@ +package block + +type PrismarineWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (PrismarineWall) ID() string { + return "minecraft:prismarine_wall" +} diff --git a/level/block/pumpkin.go b/level/block/pumpkin.go new file mode 100644 index 0000000..8cd16ae --- /dev/null +++ b/level/block/pumpkin.go @@ -0,0 +1,8 @@ +package block + +type Pumpkin struct { +} + +func (Pumpkin) ID() string { + return "minecraft:pumpkin" +} diff --git a/level/block/pumpkin_stem.go b/level/block/pumpkin_stem.go new file mode 100644 index 0000000..c818b9b --- /dev/null +++ b/level/block/pumpkin_stem.go @@ -0,0 +1,9 @@ +package block + +type PumpkinStem struct { + Age string +} + +func (PumpkinStem) ID() string { + return "minecraft:pumpkin_stem" +} diff --git a/level/block/purple_banner.go b/level/block/purple_banner.go new file mode 100644 index 0000000..0069ca2 --- /dev/null +++ b/level/block/purple_banner.go @@ -0,0 +1,9 @@ +package block + +type PurpleBanner struct { + Rotation string +} + +func (PurpleBanner) ID() string { + return "minecraft:purple_banner" +} diff --git a/level/block/purple_bed.go b/level/block/purple_bed.go new file mode 100644 index 0000000..067dad9 --- /dev/null +++ b/level/block/purple_bed.go @@ -0,0 +1,11 @@ +package block + +type PurpleBed struct { + Facing string + Occupied string + Part string +} + +func (PurpleBed) ID() string { + return "minecraft:purple_bed" +} diff --git a/level/block/purple_candle.go b/level/block/purple_candle.go new file mode 100644 index 0000000..0b31ec5 --- /dev/null +++ b/level/block/purple_candle.go @@ -0,0 +1,11 @@ +package block + +type PurpleCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (PurpleCandle) ID() string { + return "minecraft:purple_candle" +} diff --git a/level/block/purple_candle_cake.go b/level/block/purple_candle_cake.go new file mode 100644 index 0000000..383b6ec --- /dev/null +++ b/level/block/purple_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type PurpleCandleCake struct { + Lit string +} + +func (PurpleCandleCake) ID() string { + return "minecraft:purple_candle_cake" +} diff --git a/level/block/purple_carpet.go b/level/block/purple_carpet.go new file mode 100644 index 0000000..3b9f2ce --- /dev/null +++ b/level/block/purple_carpet.go @@ -0,0 +1,8 @@ +package block + +type PurpleCarpet struct { +} + +func (PurpleCarpet) ID() string { + return "minecraft:purple_carpet" +} diff --git a/level/block/purple_concrete.go b/level/block/purple_concrete.go new file mode 100644 index 0000000..0ee3a07 --- /dev/null +++ b/level/block/purple_concrete.go @@ -0,0 +1,8 @@ +package block + +type PurpleConcrete struct { +} + +func (PurpleConcrete) ID() string { + return "minecraft:purple_concrete" +} diff --git a/level/block/purple_concrete_powder.go b/level/block/purple_concrete_powder.go new file mode 100644 index 0000000..20cfd15 --- /dev/null +++ b/level/block/purple_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type PurpleConcretePowder struct { +} + +func (PurpleConcretePowder) ID() string { + return "minecraft:purple_concrete_powder" +} diff --git a/level/block/purple_glazed_terracotta.go b/level/block/purple_glazed_terracotta.go new file mode 100644 index 0000000..a8935af --- /dev/null +++ b/level/block/purple_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type PurpleGlazedTerracotta struct { + Facing string +} + +func (PurpleGlazedTerracotta) ID() string { + return "minecraft:purple_glazed_terracotta" +} diff --git a/level/block/purple_shulker_box.go b/level/block/purple_shulker_box.go new file mode 100644 index 0000000..7f74ca2 --- /dev/null +++ b/level/block/purple_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type PurpleShulkerBox struct { + Facing string +} + +func (PurpleShulkerBox) ID() string { + return "minecraft:purple_shulker_box" +} diff --git a/level/block/purple_stained_glass.go b/level/block/purple_stained_glass.go new file mode 100644 index 0000000..cb3753d --- /dev/null +++ b/level/block/purple_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type PurpleStainedGlass struct { +} + +func (PurpleStainedGlass) ID() string { + return "minecraft:purple_stained_glass" +} diff --git a/level/block/purple_stained_glass_pane.go b/level/block/purple_stained_glass_pane.go new file mode 100644 index 0000000..be1a738 --- /dev/null +++ b/level/block/purple_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type PurpleStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (PurpleStainedGlassPane) ID() string { + return "minecraft:purple_stained_glass_pane" +} diff --git a/level/block/purple_terracotta.go b/level/block/purple_terracotta.go new file mode 100644 index 0000000..bf163d3 --- /dev/null +++ b/level/block/purple_terracotta.go @@ -0,0 +1,8 @@ +package block + +type PurpleTerracotta struct { +} + +func (PurpleTerracotta) ID() string { + return "minecraft:purple_terracotta" +} diff --git a/level/block/purple_wall_banner.go b/level/block/purple_wall_banner.go new file mode 100644 index 0000000..a9fdcb2 --- /dev/null +++ b/level/block/purple_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type PurpleWallBanner struct { + Facing string +} + +func (PurpleWallBanner) ID() string { + return "minecraft:purple_wall_banner" +} diff --git a/level/block/purple_wool.go b/level/block/purple_wool.go new file mode 100644 index 0000000..8a9de96 --- /dev/null +++ b/level/block/purple_wool.go @@ -0,0 +1,8 @@ +package block + +type PurpleWool struct { +} + +func (PurpleWool) ID() string { + return "minecraft:purple_wool" +} diff --git a/level/block/purpur_block.go b/level/block/purpur_block.go new file mode 100644 index 0000000..7d7446e --- /dev/null +++ b/level/block/purpur_block.go @@ -0,0 +1,8 @@ +package block + +type PurpurBlock struct { +} + +func (PurpurBlock) ID() string { + return "minecraft:purpur_block" +} diff --git a/level/block/purpur_pillar.go b/level/block/purpur_pillar.go new file mode 100644 index 0000000..774f63f --- /dev/null +++ b/level/block/purpur_pillar.go @@ -0,0 +1,9 @@ +package block + +type PurpurPillar struct { + Axis string +} + +func (PurpurPillar) ID() string { + return "minecraft:purpur_pillar" +} diff --git a/level/block/purpur_slab.go b/level/block/purpur_slab.go new file mode 100644 index 0000000..b016f74 --- /dev/null +++ b/level/block/purpur_slab.go @@ -0,0 +1,10 @@ +package block + +type PurpurSlab struct { + Type string + Waterlogged string +} + +func (PurpurSlab) ID() string { + return "minecraft:purpur_slab" +} diff --git a/level/block/purpur_stairs.go b/level/block/purpur_stairs.go new file mode 100644 index 0000000..63dc1cd --- /dev/null +++ b/level/block/purpur_stairs.go @@ -0,0 +1,12 @@ +package block + +type PurpurStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (PurpurStairs) ID() string { + return "minecraft:purpur_stairs" +} diff --git a/level/block/quartz_block.go b/level/block/quartz_block.go new file mode 100644 index 0000000..ae2e2ce --- /dev/null +++ b/level/block/quartz_block.go @@ -0,0 +1,8 @@ +package block + +type QuartzBlock struct { +} + +func (QuartzBlock) ID() string { + return "minecraft:quartz_block" +} diff --git a/level/block/quartz_bricks.go b/level/block/quartz_bricks.go new file mode 100644 index 0000000..cad5d48 --- /dev/null +++ b/level/block/quartz_bricks.go @@ -0,0 +1,8 @@ +package block + +type QuartzBricks struct { +} + +func (QuartzBricks) ID() string { + return "minecraft:quartz_bricks" +} diff --git a/level/block/quartz_pillar.go b/level/block/quartz_pillar.go new file mode 100644 index 0000000..ff2c966 --- /dev/null +++ b/level/block/quartz_pillar.go @@ -0,0 +1,9 @@ +package block + +type QuartzPillar struct { + Axis string +} + +func (QuartzPillar) ID() string { + return "minecraft:quartz_pillar" +} diff --git a/level/block/quartz_slab.go b/level/block/quartz_slab.go new file mode 100644 index 0000000..f72fd2a --- /dev/null +++ b/level/block/quartz_slab.go @@ -0,0 +1,10 @@ +package block + +type QuartzSlab struct { + Type string + Waterlogged string +} + +func (QuartzSlab) ID() string { + return "minecraft:quartz_slab" +} diff --git a/level/block/quartz_stairs.go b/level/block/quartz_stairs.go new file mode 100644 index 0000000..81e46ad --- /dev/null +++ b/level/block/quartz_stairs.go @@ -0,0 +1,12 @@ +package block + +type QuartzStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (QuartzStairs) ID() string { + return "minecraft:quartz_stairs" +} diff --git a/level/block/rail.go b/level/block/rail.go new file mode 100644 index 0000000..2ec6308 --- /dev/null +++ b/level/block/rail.go @@ -0,0 +1,10 @@ +package block + +type Rail struct { + Shape string + Waterlogged string +} + +func (Rail) ID() string { + return "minecraft:rail" +} diff --git a/level/block/raw_copper_block.go b/level/block/raw_copper_block.go new file mode 100644 index 0000000..1b8d5b1 --- /dev/null +++ b/level/block/raw_copper_block.go @@ -0,0 +1,8 @@ +package block + +type RawCopperBlock struct { +} + +func (RawCopperBlock) ID() string { + return "minecraft:raw_copper_block" +} diff --git a/level/block/raw_gold_block.go b/level/block/raw_gold_block.go new file mode 100644 index 0000000..ec044a4 --- /dev/null +++ b/level/block/raw_gold_block.go @@ -0,0 +1,8 @@ +package block + +type RawGoldBlock struct { +} + +func (RawGoldBlock) ID() string { + return "minecraft:raw_gold_block" +} diff --git a/level/block/raw_iron_block.go b/level/block/raw_iron_block.go new file mode 100644 index 0000000..0ecbc94 --- /dev/null +++ b/level/block/raw_iron_block.go @@ -0,0 +1,8 @@ +package block + +type RawIronBlock struct { +} + +func (RawIronBlock) ID() string { + return "minecraft:raw_iron_block" +} diff --git a/level/block/red_banner.go b/level/block/red_banner.go new file mode 100644 index 0000000..8329333 --- /dev/null +++ b/level/block/red_banner.go @@ -0,0 +1,9 @@ +package block + +type RedBanner struct { + Rotation string +} + +func (RedBanner) ID() string { + return "minecraft:red_banner" +} diff --git a/level/block/red_bed.go b/level/block/red_bed.go new file mode 100644 index 0000000..c6ff6e2 --- /dev/null +++ b/level/block/red_bed.go @@ -0,0 +1,11 @@ +package block + +type RedBed struct { + Facing string + Occupied string + Part string +} + +func (RedBed) ID() string { + return "minecraft:red_bed" +} diff --git a/level/block/red_candle.go b/level/block/red_candle.go new file mode 100644 index 0000000..983f64b --- /dev/null +++ b/level/block/red_candle.go @@ -0,0 +1,11 @@ +package block + +type RedCandle struct { + Candles string + Lit string + Waterlogged string +} + +func (RedCandle) ID() string { + return "minecraft:red_candle" +} diff --git a/level/block/red_candle_cake.go b/level/block/red_candle_cake.go new file mode 100644 index 0000000..cf80e75 --- /dev/null +++ b/level/block/red_candle_cake.go @@ -0,0 +1,9 @@ +package block + +type RedCandleCake struct { + Lit string +} + +func (RedCandleCake) ID() string { + return "minecraft:red_candle_cake" +} diff --git a/level/block/red_carpet.go b/level/block/red_carpet.go new file mode 100644 index 0000000..6ae6cc2 --- /dev/null +++ b/level/block/red_carpet.go @@ -0,0 +1,8 @@ +package block + +type RedCarpet struct { +} + +func (RedCarpet) ID() string { + return "minecraft:red_carpet" +} diff --git a/level/block/red_concrete.go b/level/block/red_concrete.go new file mode 100644 index 0000000..9e44660 --- /dev/null +++ b/level/block/red_concrete.go @@ -0,0 +1,8 @@ +package block + +type RedConcrete struct { +} + +func (RedConcrete) ID() string { + return "minecraft:red_concrete" +} diff --git a/level/block/red_concrete_powder.go b/level/block/red_concrete_powder.go new file mode 100644 index 0000000..e36e4bc --- /dev/null +++ b/level/block/red_concrete_powder.go @@ -0,0 +1,8 @@ +package block + +type RedConcretePowder struct { +} + +func (RedConcretePowder) ID() string { + return "minecraft:red_concrete_powder" +} diff --git a/level/block/red_glazed_terracotta.go b/level/block/red_glazed_terracotta.go new file mode 100644 index 0000000..8401328 --- /dev/null +++ b/level/block/red_glazed_terracotta.go @@ -0,0 +1,9 @@ +package block + +type RedGlazedTerracotta struct { + Facing string +} + +func (RedGlazedTerracotta) ID() string { + return "minecraft:red_glazed_terracotta" +} diff --git a/level/block/red_mushroom.go b/level/block/red_mushroom.go new file mode 100644 index 0000000..2d3d8ea --- /dev/null +++ b/level/block/red_mushroom.go @@ -0,0 +1,8 @@ +package block + +type RedMushroom struct { +} + +func (RedMushroom) ID() string { + return "minecraft:red_mushroom" +} diff --git a/level/block/red_mushroom_block.go b/level/block/red_mushroom_block.go new file mode 100644 index 0000000..26e4cf6 --- /dev/null +++ b/level/block/red_mushroom_block.go @@ -0,0 +1,14 @@ +package block + +type RedMushroomBlock struct { + Down string + East string + North string + South string + Up string + West string +} + +func (RedMushroomBlock) ID() string { + return "minecraft:red_mushroom_block" +} diff --git a/level/block/red_nether_brick_slab.go b/level/block/red_nether_brick_slab.go new file mode 100644 index 0000000..00d4d7c --- /dev/null +++ b/level/block/red_nether_brick_slab.go @@ -0,0 +1,10 @@ +package block + +type RedNetherBrickSlab struct { + Type string + Waterlogged string +} + +func (RedNetherBrickSlab) ID() string { + return "minecraft:red_nether_brick_slab" +} diff --git a/level/block/red_nether_brick_stairs.go b/level/block/red_nether_brick_stairs.go new file mode 100644 index 0000000..34b558f --- /dev/null +++ b/level/block/red_nether_brick_stairs.go @@ -0,0 +1,12 @@ +package block + +type RedNetherBrickStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (RedNetherBrickStairs) ID() string { + return "minecraft:red_nether_brick_stairs" +} diff --git a/level/block/red_nether_brick_wall.go b/level/block/red_nether_brick_wall.go new file mode 100644 index 0000000..2d9d488 --- /dev/null +++ b/level/block/red_nether_brick_wall.go @@ -0,0 +1,14 @@ +package block + +type RedNetherBrickWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (RedNetherBrickWall) ID() string { + return "minecraft:red_nether_brick_wall" +} diff --git a/level/block/red_nether_bricks.go b/level/block/red_nether_bricks.go new file mode 100644 index 0000000..3122bd1 --- /dev/null +++ b/level/block/red_nether_bricks.go @@ -0,0 +1,8 @@ +package block + +type RedNetherBricks struct { +} + +func (RedNetherBricks) ID() string { + return "minecraft:red_nether_bricks" +} diff --git a/level/block/red_sand.go b/level/block/red_sand.go new file mode 100644 index 0000000..76bd403 --- /dev/null +++ b/level/block/red_sand.go @@ -0,0 +1,8 @@ +package block + +type RedSand struct { +} + +func (RedSand) ID() string { + return "minecraft:red_sand" +} diff --git a/level/block/red_sandstone.go b/level/block/red_sandstone.go new file mode 100644 index 0000000..8363b17 --- /dev/null +++ b/level/block/red_sandstone.go @@ -0,0 +1,8 @@ +package block + +type RedSandstone struct { +} + +func (RedSandstone) ID() string { + return "minecraft:red_sandstone" +} diff --git a/level/block/red_sandstone_slab.go b/level/block/red_sandstone_slab.go new file mode 100644 index 0000000..d32a281 --- /dev/null +++ b/level/block/red_sandstone_slab.go @@ -0,0 +1,10 @@ +package block + +type RedSandstoneSlab struct { + Type string + Waterlogged string +} + +func (RedSandstoneSlab) ID() string { + return "minecraft:red_sandstone_slab" +} diff --git a/level/block/red_sandstone_stairs.go b/level/block/red_sandstone_stairs.go new file mode 100644 index 0000000..2af093e --- /dev/null +++ b/level/block/red_sandstone_stairs.go @@ -0,0 +1,12 @@ +package block + +type RedSandstoneStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (RedSandstoneStairs) ID() string { + return "minecraft:red_sandstone_stairs" +} diff --git a/level/block/red_sandstone_wall.go b/level/block/red_sandstone_wall.go new file mode 100644 index 0000000..ef7dc31 --- /dev/null +++ b/level/block/red_sandstone_wall.go @@ -0,0 +1,14 @@ +package block + +type RedSandstoneWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (RedSandstoneWall) ID() string { + return "minecraft:red_sandstone_wall" +} diff --git a/level/block/red_shulker_box.go b/level/block/red_shulker_box.go new file mode 100644 index 0000000..80d1aa0 --- /dev/null +++ b/level/block/red_shulker_box.go @@ -0,0 +1,9 @@ +package block + +type RedShulkerBox struct { + Facing string +} + +func (RedShulkerBox) ID() string { + return "minecraft:red_shulker_box" +} diff --git a/level/block/red_stained_glass.go b/level/block/red_stained_glass.go new file mode 100644 index 0000000..0c734fc --- /dev/null +++ b/level/block/red_stained_glass.go @@ -0,0 +1,8 @@ +package block + +type RedStainedGlass struct { +} + +func (RedStainedGlass) ID() string { + return "minecraft:red_stained_glass" +} diff --git a/level/block/red_stained_glass_pane.go b/level/block/red_stained_glass_pane.go new file mode 100644 index 0000000..1f43fc7 --- /dev/null +++ b/level/block/red_stained_glass_pane.go @@ -0,0 +1,13 @@ +package block + +type RedStainedGlassPane struct { + East string + North string + South string + Waterlogged string + West string +} + +func (RedStainedGlassPane) ID() string { + return "minecraft:red_stained_glass_pane" +} diff --git a/level/block/red_terracotta.go b/level/block/red_terracotta.go new file mode 100644 index 0000000..6df7e53 --- /dev/null +++ b/level/block/red_terracotta.go @@ -0,0 +1,8 @@ +package block + +type RedTerracotta struct { +} + +func (RedTerracotta) ID() string { + return "minecraft:red_terracotta" +} diff --git a/level/block/red_tulip.go b/level/block/red_tulip.go new file mode 100644 index 0000000..5aba966 --- /dev/null +++ b/level/block/red_tulip.go @@ -0,0 +1,8 @@ +package block + +type RedTulip struct { +} + +func (RedTulip) ID() string { + return "minecraft:red_tulip" +} diff --git a/level/block/red_wall_banner.go b/level/block/red_wall_banner.go new file mode 100644 index 0000000..5c3084f --- /dev/null +++ b/level/block/red_wall_banner.go @@ -0,0 +1,9 @@ +package block + +type RedWallBanner struct { + Facing string +} + +func (RedWallBanner) ID() string { + return "minecraft:red_wall_banner" +} diff --git a/level/block/red_wool.go b/level/block/red_wool.go new file mode 100644 index 0000000..92f71b3 --- /dev/null +++ b/level/block/red_wool.go @@ -0,0 +1,8 @@ +package block + +type RedWool struct { +} + +func (RedWool) ID() string { + return "minecraft:red_wool" +} diff --git a/level/block/redstone_block.go b/level/block/redstone_block.go new file mode 100644 index 0000000..3aabafd --- /dev/null +++ b/level/block/redstone_block.go @@ -0,0 +1,8 @@ +package block + +type RedstoneBlock struct { +} + +func (RedstoneBlock) ID() string { + return "minecraft:redstone_block" +} diff --git a/level/block/redstone_lamp.go b/level/block/redstone_lamp.go new file mode 100644 index 0000000..a90453f --- /dev/null +++ b/level/block/redstone_lamp.go @@ -0,0 +1,9 @@ +package block + +type RedstoneLamp struct { + Lit string +} + +func (RedstoneLamp) ID() string { + return "minecraft:redstone_lamp" +} diff --git a/level/block/redstone_ore.go b/level/block/redstone_ore.go new file mode 100644 index 0000000..85bcf28 --- /dev/null +++ b/level/block/redstone_ore.go @@ -0,0 +1,9 @@ +package block + +type RedstoneOre struct { + Lit string +} + +func (RedstoneOre) ID() string { + return "minecraft:redstone_ore" +} diff --git a/level/block/redstone_torch.go b/level/block/redstone_torch.go new file mode 100644 index 0000000..dca09c5 --- /dev/null +++ b/level/block/redstone_torch.go @@ -0,0 +1,9 @@ +package block + +type RedstoneTorch struct { + Lit string +} + +func (RedstoneTorch) ID() string { + return "minecraft:redstone_torch" +} diff --git a/level/block/redstone_wall_torch.go b/level/block/redstone_wall_torch.go new file mode 100644 index 0000000..06821e7 --- /dev/null +++ b/level/block/redstone_wall_torch.go @@ -0,0 +1,10 @@ +package block + +type RedstoneWallTorch struct { + Facing string + Lit string +} + +func (RedstoneWallTorch) ID() string { + return "minecraft:redstone_wall_torch" +} diff --git a/level/block/redstone_wire.go b/level/block/redstone_wire.go new file mode 100644 index 0000000..369580a --- /dev/null +++ b/level/block/redstone_wire.go @@ -0,0 +1,13 @@ +package block + +type RedstoneWire struct { + East string + North string + Power string + South string + West string +} + +func (RedstoneWire) ID() string { + return "minecraft:redstone_wire" +} diff --git a/level/block/repeater.go b/level/block/repeater.go new file mode 100644 index 0000000..f9f2e79 --- /dev/null +++ b/level/block/repeater.go @@ -0,0 +1,12 @@ +package block + +type Repeater struct { + Delay string + Facing string + Locked string + Powered string +} + +func (Repeater) ID() string { + return "minecraft:repeater" +} diff --git a/level/block/repeating_command_block.go b/level/block/repeating_command_block.go new file mode 100644 index 0000000..6bd7781 --- /dev/null +++ b/level/block/repeating_command_block.go @@ -0,0 +1,10 @@ +package block + +type RepeatingCommandBlock struct { + Conditional string + Facing string +} + +func (RepeatingCommandBlock) ID() string { + return "minecraft:repeating_command_block" +} diff --git a/level/block/respawn_anchor.go b/level/block/respawn_anchor.go new file mode 100644 index 0000000..98fc716 --- /dev/null +++ b/level/block/respawn_anchor.go @@ -0,0 +1,9 @@ +package block + +type RespawnAnchor struct { + Charges string +} + +func (RespawnAnchor) ID() string { + return "minecraft:respawn_anchor" +} diff --git a/level/block/rooted_dirt.go b/level/block/rooted_dirt.go new file mode 100644 index 0000000..5967672 --- /dev/null +++ b/level/block/rooted_dirt.go @@ -0,0 +1,8 @@ +package block + +type RootedDirt struct { +} + +func (RootedDirt) ID() string { + return "minecraft:rooted_dirt" +} diff --git a/level/block/rose_bush.go b/level/block/rose_bush.go new file mode 100644 index 0000000..6c419d1 --- /dev/null +++ b/level/block/rose_bush.go @@ -0,0 +1,9 @@ +package block + +type RoseBush struct { + Half string +} + +func (RoseBush) ID() string { + return "minecraft:rose_bush" +} diff --git a/level/block/sand.go b/level/block/sand.go new file mode 100644 index 0000000..f289105 --- /dev/null +++ b/level/block/sand.go @@ -0,0 +1,8 @@ +package block + +type Sand struct { +} + +func (Sand) ID() string { + return "minecraft:sand" +} diff --git a/level/block/sandstone.go b/level/block/sandstone.go new file mode 100644 index 0000000..1143b1a --- /dev/null +++ b/level/block/sandstone.go @@ -0,0 +1,8 @@ +package block + +type Sandstone struct { +} + +func (Sandstone) ID() string { + return "minecraft:sandstone" +} diff --git a/level/block/sandstone_slab.go b/level/block/sandstone_slab.go new file mode 100644 index 0000000..8d831a7 --- /dev/null +++ b/level/block/sandstone_slab.go @@ -0,0 +1,10 @@ +package block + +type SandstoneSlab struct { + Type string + Waterlogged string +} + +func (SandstoneSlab) ID() string { + return "minecraft:sandstone_slab" +} diff --git a/level/block/sandstone_stairs.go b/level/block/sandstone_stairs.go new file mode 100644 index 0000000..8946b3c --- /dev/null +++ b/level/block/sandstone_stairs.go @@ -0,0 +1,12 @@ +package block + +type SandstoneStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (SandstoneStairs) ID() string { + return "minecraft:sandstone_stairs" +} diff --git a/level/block/sandstone_wall.go b/level/block/sandstone_wall.go new file mode 100644 index 0000000..36eec39 --- /dev/null +++ b/level/block/sandstone_wall.go @@ -0,0 +1,14 @@ +package block + +type SandstoneWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (SandstoneWall) ID() string { + return "minecraft:sandstone_wall" +} diff --git a/level/block/scaffolding.go b/level/block/scaffolding.go new file mode 100644 index 0000000..17b66ca --- /dev/null +++ b/level/block/scaffolding.go @@ -0,0 +1,11 @@ +package block + +type Scaffolding struct { + Bottom string + Distance string + Waterlogged string +} + +func (Scaffolding) ID() string { + return "minecraft:scaffolding" +} diff --git a/level/block/sculk_sensor.go b/level/block/sculk_sensor.go new file mode 100644 index 0000000..10c026e --- /dev/null +++ b/level/block/sculk_sensor.go @@ -0,0 +1,11 @@ +package block + +type SculkSensor struct { + Power string + Sculk_sensor_phase string + Waterlogged string +} + +func (SculkSensor) ID() string { + return "minecraft:sculk_sensor" +} diff --git a/level/block/sea_lantern.go b/level/block/sea_lantern.go new file mode 100644 index 0000000..2cd645d --- /dev/null +++ b/level/block/sea_lantern.go @@ -0,0 +1,8 @@ +package block + +type SeaLantern struct { +} + +func (SeaLantern) ID() string { + return "minecraft:sea_lantern" +} diff --git a/level/block/sea_pickle.go b/level/block/sea_pickle.go new file mode 100644 index 0000000..2bd70b6 --- /dev/null +++ b/level/block/sea_pickle.go @@ -0,0 +1,10 @@ +package block + +type SeaPickle struct { + Pickles string + Waterlogged string +} + +func (SeaPickle) ID() string { + return "minecraft:sea_pickle" +} diff --git a/level/block/seagrass.go b/level/block/seagrass.go new file mode 100644 index 0000000..67645e8 --- /dev/null +++ b/level/block/seagrass.go @@ -0,0 +1,8 @@ +package block + +type Seagrass struct { +} + +func (Seagrass) ID() string { + return "minecraft:seagrass" +} diff --git a/level/block/shroomlight.go b/level/block/shroomlight.go new file mode 100644 index 0000000..ad3fd80 --- /dev/null +++ b/level/block/shroomlight.go @@ -0,0 +1,8 @@ +package block + +type Shroomlight struct { +} + +func (Shroomlight) ID() string { + return "minecraft:shroomlight" +} diff --git a/level/block/shulker_box.go b/level/block/shulker_box.go new file mode 100644 index 0000000..32c7aee --- /dev/null +++ b/level/block/shulker_box.go @@ -0,0 +1,9 @@ +package block + +type ShulkerBox struct { + Facing string +} + +func (ShulkerBox) ID() string { + return "minecraft:shulker_box" +} diff --git a/level/block/skeleton_skull.go b/level/block/skeleton_skull.go new file mode 100644 index 0000000..a1399e8 --- /dev/null +++ b/level/block/skeleton_skull.go @@ -0,0 +1,9 @@ +package block + +type SkeletonSkull struct { + Rotation string +} + +func (SkeletonSkull) ID() string { + return "minecraft:skeleton_skull" +} diff --git a/level/block/skeleton_wall_skull.go b/level/block/skeleton_wall_skull.go new file mode 100644 index 0000000..57b0dfd --- /dev/null +++ b/level/block/skeleton_wall_skull.go @@ -0,0 +1,9 @@ +package block + +type SkeletonWallSkull struct { + Facing string +} + +func (SkeletonWallSkull) ID() string { + return "minecraft:skeleton_wall_skull" +} diff --git a/level/block/slime_block.go b/level/block/slime_block.go new file mode 100644 index 0000000..15a57fd --- /dev/null +++ b/level/block/slime_block.go @@ -0,0 +1,8 @@ +package block + +type SlimeBlock struct { +} + +func (SlimeBlock) ID() string { + return "minecraft:slime_block" +} diff --git a/level/block/small_amethyst_bud.go b/level/block/small_amethyst_bud.go new file mode 100644 index 0000000..2f2fc9f --- /dev/null +++ b/level/block/small_amethyst_bud.go @@ -0,0 +1,10 @@ +package block + +type SmallAmethystBud struct { + Facing string + Waterlogged string +} + +func (SmallAmethystBud) ID() string { + return "minecraft:small_amethyst_bud" +} diff --git a/level/block/small_dripleaf.go b/level/block/small_dripleaf.go new file mode 100644 index 0000000..568821b --- /dev/null +++ b/level/block/small_dripleaf.go @@ -0,0 +1,11 @@ +package block + +type SmallDripleaf struct { + Facing string + Half string + Waterlogged string +} + +func (SmallDripleaf) ID() string { + return "minecraft:small_dripleaf" +} diff --git a/level/block/smithing_table.go b/level/block/smithing_table.go new file mode 100644 index 0000000..b8eb705 --- /dev/null +++ b/level/block/smithing_table.go @@ -0,0 +1,8 @@ +package block + +type SmithingTable struct { +} + +func (SmithingTable) ID() string { + return "minecraft:smithing_table" +} diff --git a/level/block/smoker.go b/level/block/smoker.go new file mode 100644 index 0000000..7b564c6 --- /dev/null +++ b/level/block/smoker.go @@ -0,0 +1,10 @@ +package block + +type Smoker struct { + Facing string + Lit string +} + +func (Smoker) ID() string { + return "minecraft:smoker" +} diff --git a/level/block/smooth_basalt.go b/level/block/smooth_basalt.go new file mode 100644 index 0000000..6d1a185 --- /dev/null +++ b/level/block/smooth_basalt.go @@ -0,0 +1,8 @@ +package block + +type SmoothBasalt struct { +} + +func (SmoothBasalt) ID() string { + return "minecraft:smooth_basalt" +} diff --git a/level/block/smooth_quartz.go b/level/block/smooth_quartz.go new file mode 100644 index 0000000..6896fa6 --- /dev/null +++ b/level/block/smooth_quartz.go @@ -0,0 +1,8 @@ +package block + +type SmoothQuartz struct { +} + +func (SmoothQuartz) ID() string { + return "minecraft:smooth_quartz" +} diff --git a/level/block/smooth_quartz_slab.go b/level/block/smooth_quartz_slab.go new file mode 100644 index 0000000..516720a --- /dev/null +++ b/level/block/smooth_quartz_slab.go @@ -0,0 +1,10 @@ +package block + +type SmoothQuartzSlab struct { + Type string + Waterlogged string +} + +func (SmoothQuartzSlab) ID() string { + return "minecraft:smooth_quartz_slab" +} diff --git a/level/block/smooth_quartz_stairs.go b/level/block/smooth_quartz_stairs.go new file mode 100644 index 0000000..8da169b --- /dev/null +++ b/level/block/smooth_quartz_stairs.go @@ -0,0 +1,12 @@ +package block + +type SmoothQuartzStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (SmoothQuartzStairs) ID() string { + return "minecraft:smooth_quartz_stairs" +} diff --git a/level/block/smooth_red_sandstone.go b/level/block/smooth_red_sandstone.go new file mode 100644 index 0000000..d8bef75 --- /dev/null +++ b/level/block/smooth_red_sandstone.go @@ -0,0 +1,8 @@ +package block + +type SmoothRedSandstone struct { +} + +func (SmoothRedSandstone) ID() string { + return "minecraft:smooth_red_sandstone" +} diff --git a/level/block/smooth_red_sandstone_slab.go b/level/block/smooth_red_sandstone_slab.go new file mode 100644 index 0000000..d5aeaf2 --- /dev/null +++ b/level/block/smooth_red_sandstone_slab.go @@ -0,0 +1,10 @@ +package block + +type SmoothRedSandstoneSlab struct { + Type string + Waterlogged string +} + +func (SmoothRedSandstoneSlab) ID() string { + return "minecraft:smooth_red_sandstone_slab" +} diff --git a/level/block/smooth_red_sandstone_stairs.go b/level/block/smooth_red_sandstone_stairs.go new file mode 100644 index 0000000..4952ca8 --- /dev/null +++ b/level/block/smooth_red_sandstone_stairs.go @@ -0,0 +1,12 @@ +package block + +type SmoothRedSandstoneStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (SmoothRedSandstoneStairs) ID() string { + return "minecraft:smooth_red_sandstone_stairs" +} diff --git a/level/block/smooth_sandstone.go b/level/block/smooth_sandstone.go new file mode 100644 index 0000000..d18ba8a --- /dev/null +++ b/level/block/smooth_sandstone.go @@ -0,0 +1,8 @@ +package block + +type SmoothSandstone struct { +} + +func (SmoothSandstone) ID() string { + return "minecraft:smooth_sandstone" +} diff --git a/level/block/smooth_sandstone_slab.go b/level/block/smooth_sandstone_slab.go new file mode 100644 index 0000000..344b9df --- /dev/null +++ b/level/block/smooth_sandstone_slab.go @@ -0,0 +1,10 @@ +package block + +type SmoothSandstoneSlab struct { + Type string + Waterlogged string +} + +func (SmoothSandstoneSlab) ID() string { + return "minecraft:smooth_sandstone_slab" +} diff --git a/level/block/smooth_sandstone_stairs.go b/level/block/smooth_sandstone_stairs.go new file mode 100644 index 0000000..0c874d1 --- /dev/null +++ b/level/block/smooth_sandstone_stairs.go @@ -0,0 +1,12 @@ +package block + +type SmoothSandstoneStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (SmoothSandstoneStairs) ID() string { + return "minecraft:smooth_sandstone_stairs" +} diff --git a/level/block/smooth_stone.go b/level/block/smooth_stone.go new file mode 100644 index 0000000..48c90e1 --- /dev/null +++ b/level/block/smooth_stone.go @@ -0,0 +1,8 @@ +package block + +type SmoothStone struct { +} + +func (SmoothStone) ID() string { + return "minecraft:smooth_stone" +} diff --git a/level/block/smooth_stone_slab.go b/level/block/smooth_stone_slab.go new file mode 100644 index 0000000..b15bfe2 --- /dev/null +++ b/level/block/smooth_stone_slab.go @@ -0,0 +1,10 @@ +package block + +type SmoothStoneSlab struct { + Type string + Waterlogged string +} + +func (SmoothStoneSlab) ID() string { + return "minecraft:smooth_stone_slab" +} diff --git a/level/block/snow.go b/level/block/snow.go new file mode 100644 index 0000000..8400beb --- /dev/null +++ b/level/block/snow.go @@ -0,0 +1,9 @@ +package block + +type Snow struct { + Layers string +} + +func (Snow) ID() string { + return "minecraft:snow" +} diff --git a/level/block/snow_block.go b/level/block/snow_block.go new file mode 100644 index 0000000..cc0d1e6 --- /dev/null +++ b/level/block/snow_block.go @@ -0,0 +1,8 @@ +package block + +type SnowBlock struct { +} + +func (SnowBlock) ID() string { + return "minecraft:snow_block" +} diff --git a/level/block/soul_campfire.go b/level/block/soul_campfire.go new file mode 100644 index 0000000..f912a2b --- /dev/null +++ b/level/block/soul_campfire.go @@ -0,0 +1,12 @@ +package block + +type SoulCampfire struct { + Facing string + Lit string + Signal_fire string + Waterlogged string +} + +func (SoulCampfire) ID() string { + return "minecraft:soul_campfire" +} diff --git a/level/block/soul_fire.go b/level/block/soul_fire.go new file mode 100644 index 0000000..acebce1 --- /dev/null +++ b/level/block/soul_fire.go @@ -0,0 +1,8 @@ +package block + +type SoulFire struct { +} + +func (SoulFire) ID() string { + return "minecraft:soul_fire" +} diff --git a/level/block/soul_lantern.go b/level/block/soul_lantern.go new file mode 100644 index 0000000..0eb88e6 --- /dev/null +++ b/level/block/soul_lantern.go @@ -0,0 +1,10 @@ +package block + +type SoulLantern struct { + Hanging string + Waterlogged string +} + +func (SoulLantern) ID() string { + return "minecraft:soul_lantern" +} diff --git a/level/block/soul_sand.go b/level/block/soul_sand.go new file mode 100644 index 0000000..199aa07 --- /dev/null +++ b/level/block/soul_sand.go @@ -0,0 +1,8 @@ +package block + +type SoulSand struct { +} + +func (SoulSand) ID() string { + return "minecraft:soul_sand" +} diff --git a/level/block/soul_soil.go b/level/block/soul_soil.go new file mode 100644 index 0000000..05136da --- /dev/null +++ b/level/block/soul_soil.go @@ -0,0 +1,8 @@ +package block + +type SoulSoil struct { +} + +func (SoulSoil) ID() string { + return "minecraft:soul_soil" +} diff --git a/level/block/soul_torch.go b/level/block/soul_torch.go new file mode 100644 index 0000000..277ef83 --- /dev/null +++ b/level/block/soul_torch.go @@ -0,0 +1,8 @@ +package block + +type SoulTorch struct { +} + +func (SoulTorch) ID() string { + return "minecraft:soul_torch" +} diff --git a/level/block/soul_wall_torch.go b/level/block/soul_wall_torch.go new file mode 100644 index 0000000..b84c146 --- /dev/null +++ b/level/block/soul_wall_torch.go @@ -0,0 +1,9 @@ +package block + +type SoulWallTorch struct { + Facing string +} + +func (SoulWallTorch) ID() string { + return "minecraft:soul_wall_torch" +} diff --git a/level/block/spawner.go b/level/block/spawner.go new file mode 100644 index 0000000..11c9dd3 --- /dev/null +++ b/level/block/spawner.go @@ -0,0 +1,8 @@ +package block + +type Spawner struct { +} + +func (Spawner) ID() string { + return "minecraft:spawner" +} diff --git a/level/block/sponge.go b/level/block/sponge.go new file mode 100644 index 0000000..8f6f684 --- /dev/null +++ b/level/block/sponge.go @@ -0,0 +1,8 @@ +package block + +type Sponge struct { +} + +func (Sponge) ID() string { + return "minecraft:sponge" +} diff --git a/level/block/spore_blossom.go b/level/block/spore_blossom.go new file mode 100644 index 0000000..473c233 --- /dev/null +++ b/level/block/spore_blossom.go @@ -0,0 +1,8 @@ +package block + +type SporeBlossom struct { +} + +func (SporeBlossom) ID() string { + return "minecraft:spore_blossom" +} diff --git a/level/block/spruce_button.go b/level/block/spruce_button.go new file mode 100644 index 0000000..33e9679 --- /dev/null +++ b/level/block/spruce_button.go @@ -0,0 +1,11 @@ +package block + +type SpruceButton struct { + Face string + Facing string + Powered string +} + +func (SpruceButton) ID() string { + return "minecraft:spruce_button" +} diff --git a/level/block/spruce_door.go b/level/block/spruce_door.go new file mode 100644 index 0000000..72cf0c9 --- /dev/null +++ b/level/block/spruce_door.go @@ -0,0 +1,13 @@ +package block + +type SpruceDoor struct { + Facing string + Half string + Hinge string + Open string + Powered string +} + +func (SpruceDoor) ID() string { + return "minecraft:spruce_door" +} diff --git a/level/block/spruce_fence.go b/level/block/spruce_fence.go new file mode 100644 index 0000000..58564a8 --- /dev/null +++ b/level/block/spruce_fence.go @@ -0,0 +1,13 @@ +package block + +type SpruceFence struct { + East string + North string + South string + Waterlogged string + West string +} + +func (SpruceFence) ID() string { + return "minecraft:spruce_fence" +} diff --git a/level/block/spruce_fence_gate.go b/level/block/spruce_fence_gate.go new file mode 100644 index 0000000..978d06e --- /dev/null +++ b/level/block/spruce_fence_gate.go @@ -0,0 +1,12 @@ +package block + +type SpruceFenceGate struct { + Facing string + In_wall string + Open string + Powered string +} + +func (SpruceFenceGate) ID() string { + return "minecraft:spruce_fence_gate" +} diff --git a/level/block/spruce_leaves.go b/level/block/spruce_leaves.go new file mode 100644 index 0000000..9e7e341 --- /dev/null +++ b/level/block/spruce_leaves.go @@ -0,0 +1,10 @@ +package block + +type SpruceLeaves struct { + Distance string + Persistent string +} + +func (SpruceLeaves) ID() string { + return "minecraft:spruce_leaves" +} diff --git a/level/block/spruce_log.go b/level/block/spruce_log.go new file mode 100644 index 0000000..c98cc76 --- /dev/null +++ b/level/block/spruce_log.go @@ -0,0 +1,9 @@ +package block + +type SpruceLog struct { + Axis string +} + +func (SpruceLog) ID() string { + return "minecraft:spruce_log" +} diff --git a/level/block/spruce_planks.go b/level/block/spruce_planks.go new file mode 100644 index 0000000..7c91c4c --- /dev/null +++ b/level/block/spruce_planks.go @@ -0,0 +1,8 @@ +package block + +type SprucePlanks struct { +} + +func (SprucePlanks) ID() string { + return "minecraft:spruce_planks" +} diff --git a/level/block/spruce_pressure_plate.go b/level/block/spruce_pressure_plate.go new file mode 100644 index 0000000..14ad128 --- /dev/null +++ b/level/block/spruce_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type SprucePressurePlate struct { + Powered string +} + +func (SprucePressurePlate) ID() string { + return "minecraft:spruce_pressure_plate" +} diff --git a/level/block/spruce_sapling.go b/level/block/spruce_sapling.go new file mode 100644 index 0000000..c07a15e --- /dev/null +++ b/level/block/spruce_sapling.go @@ -0,0 +1,9 @@ +package block + +type SpruceSapling struct { + Stage string +} + +func (SpruceSapling) ID() string { + return "minecraft:spruce_sapling" +} diff --git a/level/block/spruce_sign.go b/level/block/spruce_sign.go new file mode 100644 index 0000000..760654e --- /dev/null +++ b/level/block/spruce_sign.go @@ -0,0 +1,10 @@ +package block + +type SpruceSign struct { + Rotation string + Waterlogged string +} + +func (SpruceSign) ID() string { + return "minecraft:spruce_sign" +} diff --git a/level/block/spruce_slab.go b/level/block/spruce_slab.go new file mode 100644 index 0000000..5073306 --- /dev/null +++ b/level/block/spruce_slab.go @@ -0,0 +1,10 @@ +package block + +type SpruceSlab struct { + Type string + Waterlogged string +} + +func (SpruceSlab) ID() string { + return "minecraft:spruce_slab" +} diff --git a/level/block/spruce_stairs.go b/level/block/spruce_stairs.go new file mode 100644 index 0000000..338183d --- /dev/null +++ b/level/block/spruce_stairs.go @@ -0,0 +1,12 @@ +package block + +type SpruceStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (SpruceStairs) ID() string { + return "minecraft:spruce_stairs" +} diff --git a/level/block/spruce_trapdoor.go b/level/block/spruce_trapdoor.go new file mode 100644 index 0000000..34188df --- /dev/null +++ b/level/block/spruce_trapdoor.go @@ -0,0 +1,13 @@ +package block + +type SpruceTrapdoor struct { + Facing string + Half string + Open string + Powered string + Waterlogged string +} + +func (SpruceTrapdoor) ID() string { + return "minecraft:spruce_trapdoor" +} diff --git a/level/block/spruce_wall_sign.go b/level/block/spruce_wall_sign.go new file mode 100644 index 0000000..a33fe59 --- /dev/null +++ b/level/block/spruce_wall_sign.go @@ -0,0 +1,10 @@ +package block + +type SpruceWallSign struct { + Facing string + Waterlogged string +} + +func (SpruceWallSign) ID() string { + return "minecraft:spruce_wall_sign" +} diff --git a/level/block/spruce_wood.go b/level/block/spruce_wood.go new file mode 100644 index 0000000..2b82cde --- /dev/null +++ b/level/block/spruce_wood.go @@ -0,0 +1,9 @@ +package block + +type SpruceWood struct { + Axis string +} + +func (SpruceWood) ID() string { + return "minecraft:spruce_wood" +} diff --git a/level/block/sticky_piston.go b/level/block/sticky_piston.go new file mode 100644 index 0000000..9644da8 --- /dev/null +++ b/level/block/sticky_piston.go @@ -0,0 +1,10 @@ +package block + +type StickyPiston struct { + Extended string + Facing string +} + +func (StickyPiston) ID() string { + return "minecraft:sticky_piston" +} diff --git a/level/block/stone.go b/level/block/stone.go new file mode 100644 index 0000000..646caf9 --- /dev/null +++ b/level/block/stone.go @@ -0,0 +1,8 @@ +package block + +type Stone struct { +} + +func (Stone) ID() string { + return "minecraft:stone" +} diff --git a/level/block/stone_brick_slab.go b/level/block/stone_brick_slab.go new file mode 100644 index 0000000..2b790a4 --- /dev/null +++ b/level/block/stone_brick_slab.go @@ -0,0 +1,10 @@ +package block + +type StoneBrickSlab struct { + Type string + Waterlogged string +} + +func (StoneBrickSlab) ID() string { + return "minecraft:stone_brick_slab" +} diff --git a/level/block/stone_brick_stairs.go b/level/block/stone_brick_stairs.go new file mode 100644 index 0000000..cc6b972 --- /dev/null +++ b/level/block/stone_brick_stairs.go @@ -0,0 +1,12 @@ +package block + +type StoneBrickStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (StoneBrickStairs) ID() string { + return "minecraft:stone_brick_stairs" +} diff --git a/level/block/stone_brick_wall.go b/level/block/stone_brick_wall.go new file mode 100644 index 0000000..eaa5548 --- /dev/null +++ b/level/block/stone_brick_wall.go @@ -0,0 +1,14 @@ +package block + +type StoneBrickWall struct { + East string + North string + South string + Up string + Waterlogged string + West string +} + +func (StoneBrickWall) ID() string { + return "minecraft:stone_brick_wall" +} diff --git a/level/block/stone_bricks.go b/level/block/stone_bricks.go new file mode 100644 index 0000000..e3550e4 --- /dev/null +++ b/level/block/stone_bricks.go @@ -0,0 +1,8 @@ +package block + +type StoneBricks struct { +} + +func (StoneBricks) ID() string { + return "minecraft:stone_bricks" +} diff --git a/level/block/stone_button.go b/level/block/stone_button.go new file mode 100644 index 0000000..883aba9 --- /dev/null +++ b/level/block/stone_button.go @@ -0,0 +1,11 @@ +package block + +type StoneButton struct { + Face string + Facing string + Powered string +} + +func (StoneButton) ID() string { + return "minecraft:stone_button" +} diff --git a/level/block/stone_pressure_plate.go b/level/block/stone_pressure_plate.go new file mode 100644 index 0000000..feb8a17 --- /dev/null +++ b/level/block/stone_pressure_plate.go @@ -0,0 +1,9 @@ +package block + +type StonePressurePlate struct { + Powered string +} + +func (StonePressurePlate) ID() string { + return "minecraft:stone_pressure_plate" +} diff --git a/level/block/stone_slab.go b/level/block/stone_slab.go new file mode 100644 index 0000000..b7fe3a3 --- /dev/null +++ b/level/block/stone_slab.go @@ -0,0 +1,10 @@ +package block + +type StoneSlab struct { + Type string + Waterlogged string +} + +func (StoneSlab) ID() string { + return "minecraft:stone_slab" +} diff --git a/level/block/stone_stairs.go b/level/block/stone_stairs.go new file mode 100644 index 0000000..076cae5 --- /dev/null +++ b/level/block/stone_stairs.go @@ -0,0 +1,12 @@ +package block + +type StoneStairs struct { + Facing string + Half string + Shape string + Waterlogged string +} + +func (StoneStairs) ID() string { + return "minecraft:stone_stairs" +} diff --git a/level/block/stonecutter.go b/level/block/stonecutter.go new file mode 100644 index 0000000..16ea8f9 --- /dev/null +++ b/level/block/stonecutter.go @@ -0,0 +1,9 @@ +package block + +type Stonecutter struct { + Facing string +} + +func (Stonecutter) ID() string { + return "minecraft:stonecutter" +} diff --git a/level/block/stripped_acacia_log.go b/level/block/stripped_acacia_log.go new file mode 100644 index 0000000..c27470d --- /dev/null +++ b/level/block/stripped_acacia_log.go @@ -0,0 +1,9 @@ +package block + +type StrippedAcaciaLog struct { + Axis string +} + +func (StrippedAcaciaLog) ID() string { + return "minecraft:stripped_acacia_log" +} diff --git a/level/block/stripped_acacia_wood.go b/level/block/stripped_acacia_wood.go new file mode 100644 index 0000000..ef82dc4 --- /dev/null +++ b/level/block/stripped_acacia_wood.go @@ -0,0 +1,9 @@ +package block + +type StrippedAcaciaWood struct { + Axis string +} + +func (StrippedAcaciaWood) ID() string { + return "minecraft:stripped_acacia_wood" +} diff --git a/level/block/stripped_birch_log.go b/level/block/stripped_birch_log.go new file mode 100644 index 0000000..dc52256 --- /dev/null +++ b/level/block/stripped_birch_log.go @@ -0,0 +1,9 @@ +package block + +type StrippedBirchLog struct { + Axis string +} + +func (StrippedBirchLog) ID() string { + return "minecraft:stripped_birch_log" +} diff --git a/level/block/stripped_birch_wood.go b/level/block/stripped_birch_wood.go new file mode 100644 index 0000000..3b2420b --- /dev/null +++ b/level/block/stripped_birch_wood.go @@ -0,0 +1,9 @@ +package block + +type StrippedBirchWood struct { + Axis string +} + +func (StrippedBirchWood) ID() string { + return "minecraft:stripped_birch_wood" +} diff --git a/level/block/stripped_crimson_hyphae.go b/level/block/stripped_crimson_hyphae.go new file mode 100644 index 0000000..aac92f8 --- /dev/null +++ b/level/block/stripped_crimson_hyphae.go @@ -0,0 +1,9 @@ +package block + +type StrippedCrimsonHyphae struct { + Axis string +} + +func (StrippedCrimsonHyphae) ID() string { + return "minecraft:stripped_crimson_hyphae" +} diff --git a/level/block/stripped_crimson_stem.go b/level/block/stripped_crimson_stem.go new file mode 100644 index 0000000..7cdbc2a --- /dev/null +++ b/level/block/stripped_crimson_stem.go @@ -0,0 +1,9 @@ +package block + +type StrippedCrimsonStem struct { + Axis string +} + +func (StrippedCrimsonStem) ID() string { + return "minecraft:stripped_crimson_stem" +} diff --git a/level/block/stripped_dark_oak_log.go b/level/block/stripped_dark_oak_log.go new file mode 100644 index 0000000..39268ff --- /dev/null +++ b/level/block/stripped_dark_oak_log.go @@ -0,0 +1,9 @@ +package block + +type StrippedDarkOakLog struct { + Axis string +} + +func (StrippedDarkOakLog) ID() string { + return "minecraft:stripped_dark_oak_log" +} diff --git a/level/block/stripped_dark_oak_wood.go b/level/block/stripped_dark_oak_wood.go new file mode 100644 index 0000000..693711a --- /dev/null +++ b/level/block/stripped_dark_oak_wood.go @@ -0,0 +1,9 @@ +package block + +type StrippedDarkOakWood struct { + Axis string +} + +func (StrippedDarkOakWood) ID() string { + return "minecraft:stripped_dark_oak_wood" +} diff --git a/level/block/stripped_jungle_log.go b/level/block/stripped_jungle_log.go new file mode 100644 index 0000000..1d9ff94 --- /dev/null +++ b/level/block/stripped_jungle_log.go @@ -0,0 +1,9 @@ +package block + +type StrippedJungleLog struct { + Axis string +} + +func (StrippedJungleLog) ID() string { + return "minecraft:stripped_jungle_log" +} diff --git a/level/block/stripped_jungle_wood.go b/level/block/stripped_jungle_wood.go new file mode 100644 index 0000000..fdf2402 --- /dev/null +++ b/level/block/stripped_jungle_wood.go @@ -0,0 +1,9 @@ +package block + +type StrippedJungleWood struct { + Axis string +} + +func (StrippedJungleWood) ID() string { + return "minecraft:stripped_jungle_wood" +} diff --git a/level/block/stripped_oak_log.go b/level/block/stripped_oak_log.go new file mode 100644 index 0000000..63c4e8a --- /dev/null +++ b/level/block/stripped_oak_log.go @@ -0,0 +1,9 @@ +package block + +type StrippedOakLog struct { + Axis string +} + +func (StrippedOakLog) ID() string { + return "minecraft:stripped_oak_log" +} diff --git a/level/block/stripped_oak_wood.go b/level/block/stripped_oak_wood.go new file mode 100644 index 0000000..450266e --- /dev/null +++ b/level/block/stripped_oak_wood.go @@ -0,0 +1,9 @@ +package block + +type StrippedOakWood struct { + Axis string +} + +func (StrippedOakWood) ID() string { + return "minecraft:stripped_oak_wood" +} diff --git a/level/block/stripped_spruce_log.go b/level/block/stripped_spruce_log.go new file mode 100644 index 0000000..5eaed1a --- /dev/null +++ b/level/block/stripped_spruce_log.go @@ -0,0 +1,9 @@ +package block + +type StrippedSpruceLog struct { + Axis string +} + +func (StrippedSpruceLog) ID() string { + return "minecraft:stripped_spruce_log" +} diff --git a/level/block/stripped_spruce_wood.go b/level/block/stripped_spruce_wood.go new file mode 100644 index 0000000..751f1ca --- /dev/null +++ b/level/block/stripped_spruce_wood.go @@ -0,0 +1,9 @@ +package block + +type StrippedSpruceWood struct { + Axis string +} + +func (StrippedSpruceWood) ID() string { + return "minecraft:stripped_spruce_wood" +} diff --git a/level/block/stripped_warped_hyphae.go b/level/block/stripped_warped_hyphae.go new file mode 100644 index 0000000..4454d7f --- /dev/null +++ b/level/block/stripped_warped_hyphae.go @@ -0,0 +1,9 @@ +package block + +type StrippedWarpedHyphae struct { + Axis string +} + +func (StrippedWarpedHyphae) ID() string { + return "minecraft:stripped_warped_hyphae" +} diff --git a/level/block/stripped_warped_stem.go b/level/block/stripped_warped_stem.go new file mode 100644 index 0000000..8f5f688 --- /dev/null +++ b/level/block/stripped_warped_stem.go @@ -0,0 +1,9 @@ +package block + +type StrippedWarpedStem struct { + Axis string +} + +func (StrippedWarpedStem) ID() string { + return "minecraft:stripped_warped_stem" +} diff --git a/level/block/structure_block.go b/level/block/structure_block.go new file mode 100644 index 0000000..44e40db --- /dev/null +++ b/level/block/structure_block.go @@ -0,0 +1,9 @@ +package block + +type StructureBlock struct { + Mode string +} + +func (StructureBlock) ID() string { + return "minecraft:structure_block" +} diff --git a/level/block/structure_void.go b/level/block/structure_void.go new file mode 100644 index 0000000..54b444a --- /dev/null +++ b/level/block/structure_void.go @@ -0,0 +1,8 @@ +package block + +type StructureVoid struct { +} + +func (StructureVoid) ID() string { + return "minecraft:structure_void" +} diff --git a/level/block/sugar_cane.go b/level/block/sugar_cane.go new file mode 100644 index 0000000..66d2502 --- /dev/null +++ b/level/block/sugar_cane.go @@ -0,0 +1,9 @@ +package block + +type SugarCane struct { + Age string +} + +func (SugarCane) ID() string { + return "minecraft:sugar_cane" +} diff --git a/level/block/sunflower.go b/level/block/sunflower.go new file mode 100644 index 0000000..bfd328b --- /dev/null +++ b/level/block/sunflower.go @@ -0,0 +1,9 @@ +package block + +type Sunflower struct { + Half string +} + +func (Sunflower) ID() string { + return "minecraft:sunflower" +} diff --git a/level/block/sweet_berry_bush.go b/level/block/sweet_berry_bush.go new file mode 100644 index 0000000..63158e2 --- /dev/null +++ b/level/block/sweet_berry_bush.go @@ -0,0 +1,9 @@ +package block + +type SweetBerryBush struct { + Age string +} + +func (SweetBerryBush) ID() string { + return "minecraft:sweet_berry_bush" +} diff --git a/level/block/tall_grass.go b/level/block/tall_grass.go new file mode 100644 index 0000000..e72a55e --- /dev/null +++ b/level/block/tall_grass.go @@ -0,0 +1,9 @@ +package block + +type TallGrass struct { + Half string +} + +func (TallGrass) ID() string { + return "minecraft:tall_grass" +} diff --git a/level/block/tall_seagrass.go b/level/block/tall_seagrass.go new file mode 100644 index 0000000..00f2ff7 --- /dev/null +++ b/level/block/tall_seagrass.go @@ -0,0 +1,9 @@ +package block + +type TallSeagrass struct { + Half string +} + +func (TallSeagrass) ID() string { + return "minecraft:tall_seagrass" +} diff --git a/level/block/target.go b/level/block/target.go new file mode 100644 index 0000000..ae64b87 --- /dev/null +++ b/level/block/target.go @@ -0,0 +1,9 @@ +package block + +type Target struct { + Power string +} + +func (Target) ID() string { + return "minecraft:target" +} diff --git a/level/block/terracotta.go b/level/block/terracotta.go new file mode 100644 index 0000000..ea3d777 --- /dev/null +++ b/level/block/terracotta.go @@ -0,0 +1,8 @@ +package block + +type Terracotta struct { +} + +func (Terracotta) ID() string { + return "minecraft:terracotta" +} diff --git a/level/block/testdata/block_states.nbt b/level/block/testdata/block_states.nbt new file mode 100644 index 0000000000000000000000000000000000000000..5d0a0fa154343e43e54daefca0b2524d4f5fcb3b GIT binary patch literal 2365168 zcmd44Yj@+wl_e@yWtOwkckJnI_hY7CGqcuR_kMJi-OnH4>wlodl$a8`n4%WRbh`T2 zUy8s6&I!Z=K|5c|7z#$3xGD{qFR*y}u35F_+)(4#(2v;W>XX zLTsMywG1W(n>XjpNiMQ&R>q9?{~-Z;HH7RJ8X`p?d|n&9MZG>?_SZw)+hegBi>>2!|n5a^Yp`M5b`(U(bMzs%iT6S;jhONKJJcpkKu6>;6J}S zJ?tj|%n6&j&E0MjM))5i!u{s>!>wUC@$im|BYUh)0V26M0Y?cytbxA=;GUVO#B zEWYAj7hmyji?8_irB{6OVXVZN3Hj#3;;eu3VR72O`LH#R?WO%G-~DrqfIj}82e-91!H^6ykP8(nHP-BG4BG~8*{H1TVw7O zOOtIIV=l(hblbKFF|e$dzn?BU=3(%d-S+Xamv_g^KJv0zepz!6&0O_x*x%nCj^j4@ z@5g=5{dW6&+Fw?r+sRob!tQu@Do2={Wg=Ym)%$XU$ysJM`LsPhZjU3)U^n?@^QYbE z=4XEz3^1$o%Vu(am~15bOMYB_$$u@sWF%&`@cpiH4!0#&jr5jWH8T9mu|B#T>KuX# zE*kkQxM-wjMD?55IsBGfH4xk& ze;7;gbUyB$pI;_m_tJI_-Bp*5tXEw=k~ed9AV0sM)?7VOUvu@yJSKcWudTX#wxahJd$$n@oC0V{KO0s;}NYdPg97fYDnhP%+i7vcwq-x%daIlz>4iB>p!cCC6`LQBk(DnXti28VeeJcV6y zgE>%5Fo;)AFqj6_1cP|>1cRASO)!X8PcS=X%+1>Vc4gg^SspJtWU9jj_AQSWj0B(F z>TuQcf`L#=F9=snFBk{4^n!5J^nzhfOD_mlO)nS)we*5;)%3E1#jNIdH=%B_tO%GL zE%osN16Ksh4ww3P^#p@?;45$i!605e!C)d(6Aa?j6AWfTHNhZWJ;7iqR1*y1)f1dM zX8QY1d)k1cR|qO)!X8PcRq@)dYih z^#p^lP)#t1S5GiIX3WEB!|mzHL9;4kcGNH;20pF|nH@Kbhzyd!i178eiewOxK{6N< z1d>5S2FYMl5J(0Q86<;oK_D4KWRT2`AhX-v{MY6(d~PcT(29WB@lzi!@Nh-I?C7bF zS5Gh)621;s5Deng6AT7KHNhZWJ;7i&R1*y1)e{T`Lp8x5UOmC=nEBu1JMy3Qhp*e? z@VL(FkEInyRzRr?@sRH zP394_@gr8#)67$%-NERW9sJqllMfFM+smiFx`&D0-F)}y^4a^#N8{f<9ggS67^TbO zNYC4+)AWbW3V^d&FRcyRuwED_V#r6LiDUET0rg1*UQ&E&^)UN77+X9 z%QK5sMW}$(oBPApCl;+4!7wjO zPiiRJz+B3g-K2)H4a}u{*-L6D+rV7Pm;IiGvJK3oeA(@3DBHkX%9p*KhO!OJrF_}x zX(-#kT+08ZqHF_mDgV2QvJFh7eEHT05oaHnOxmtf{lHZgEN5$W+p$8#C`d zZcdkPi2U+-xJ$*nIa3$i_DsZXUhtUXbT>*FZjb8=X$Rbc5;gACxxci`|)bmnuRR`jiwoW_Cqr+d+{kAw?#Www=QzZ6lLO z+m7LqwvoxC?Ov2i+D0amwtG-6X&aeL+U`BMq-|s}X}jm-lD3h_r0rglOWH=}lJ>W8 zsH}ZxHf`CWSiU#3e(fsW7-EHHyKR>*a*^23Y}$4KBh$8_*|hBvMy72;vuWE!j7-~x zX4AII7@4*W&8BS^GBRx&noZj-Wn|hmG?})$6~m?NLbGY>R>|W1orKoTQsTxuULCk_3x^VyO4v3@q>xt= zwsEP1ZF?{Y+qhK1cKgUAY~xZ1+l?cWu#HP4Y`2U|!Zt3Iu-z;&3EQ|-!gia;By8g{ z3H$pfM8-Zam$GQFE8m=1JLHSEW;lVlF588PS{ODkm$F@&sFZDBE@itoQ7PNNT*`KN zqEfbjxs>e!MWt*5b1B;;ib~lA=2Etc6qT|KOr`AZk1#2_z+B3z)vtKdW%VLey5+(N z%yro=Qq;n*fw`3JB1NTa12ZX?ZnM0(d?ai94lm|?mi3Vf-Ny+WGkJaF!mSogU@m3b zB#}~HPuT|MQnpP(rECLpDcda~m9h=YrEIr|RLV9mm$Ka=QYqWOT*`KfNTqB8b1B;` zB9*cYOr`AakT5y>$Yj#01+aYgW%blA-hLrPCOd7{DsFk$$Yj!Xwc?Vtk;$a(dc`Ge zBa=zn6^l#SMkbTCYZjNZjZ7wOS1m4S8<|Ynu3KEvHZqsAyK6!v?IM#&%T~nV9hvp( zR_T@uDKgn z^^ps=aX5jwlx?d-%6UCy8<&m$Z#cCT&+NE@>N?OxmtlT+%i&nY3NCxTI}lGHJVRaY@_AT+;473YD~r zOeQT`5sUX{)~{Qo+cTudWT)-A#VrpTnM~TQTU^pMGL>}c#>{sQUv}rsQF3dhCU&6{ zS)pTI*TgQ|pkak()3!YmDeM~BHZ+^I?HV#|8=6hq?j*^yZD=-ayO$)>wxQXy?QW7x z+lFS-w);skZ5x_R+wLgIv~6fIZGW4E%iG7M6W1-2<=Z$F>q7BH4lOp_al4|iOU1^f z6Sr#`o4AclCvI0YHgOx9PTa0*Y~nUHow!}u*u-sYI&r(Uv5DK*bmDe(V-vTr*~H!L z7&37en@(J~au#p*)U0l$8$PtybjR)L#x4~bn@-%WZfxQrT$h2)}Hf_6zk!jn|Y}$4iBh$8_*|hCKMy72;vuWFBs%y z`SI|ixt&uP-ZoFfa$@wD>y_aP-ARltAa5Iq@4SsJAaC1=Pu@lskhfb;K6x8mK;CXZ z`Q&YM0eQO(<&(G31?25!luzD97m&AGQa*VboloB1zoE1D;T80yi){H}pt^O?-_H@a zZ&z`J`*tZ5(6`|g^zC9Opl`z~=-cH`K;MQ}(6^zSJ2n4y2S^HDpy^1e@NiIc-8&hE{g*CHoT&E?6N4JZ^QHH zmu^Y@a(6sD-D>YkF)#`p%!Y_1f`MUMEmBKt2$c-mav~WPLM6kto=Ap;P|2_xUy%$8 zp^{-Yz#4IB(ZLe%aXQ0`hhZEuf{nBL#-?jN?t-TmPp`7-g^_=S#ThL3q)8^3U)i5Xr&-}Y6c@N4PY@Cy32vjp^Q zcm;jCdlk^P;T81l{#8KVhF8$HJ6HjI8(u-*?qLP=ZFmKJyNeajx8Vi!{jDNCe;;2W zK)djkZ%0+GEyWvB)cBGN*ws-{LN>lcfL$LI0&IMV0J}me1lafz0d|d42(a-b0_-ZO z5Mbj=1lV;_A;89$2(T-qLV%605a4bp2?V(K5&`0sxOm&DcBL%cxT40FWWcVJiW0K% zB?9b9sSse}3j~yIVtxB@cb43}S{=C1vy`|oqgMwm+^C|&r4qJ16DjG{gl$|ZVcR22 z!Zt3Iu-%<93EQ|-!ge>xBy8hS3ESN#ldz3TC2V(_Ou{xUm9X7iG6~zbOv3)g4w11B z%%v<^?8^6u)(-jN%^^-;uFG~|q85e?%%yCXCMsncm`m9%PE^V^Fqg7jo~V>ByGT(f+rUi9rQ0lTKW?7>Q}dWmMd(8Rks`-@t_WSY-9m~?CT&|KQqUEoZDcZO z+bmqtHZqyC-7IoR+sI_ncDu+WZ6lLO+YKX^w2e$AZMTeE(l#=gwB0mvN!!R=(*CXq zm9-DerY&0(%Qt1#F9XHfGOW;Sx9##pE)pA>P1`PDWZE_~o3>rT$h2)}Hf_6zk!jn| zY}$4iBh$8_*|hCKMy72;vuWFrV z$h2)}Hf_6%k!jn|Y}$4qBh$8_*|hCaMy72;lWDvAEnM0zG@G_=l`P-NS-+GOZ{?6e zv)#5!8M#PoXf|!Tl#yxM&@|f5o8$TB&Es}+|L*3yPn)}!TQ+Z>4#)H3yPJ21ySp#X zyY2nWRmpHG=Py6+p0;<#&8PE!e0|)Vx0i2^zQ1{Y^ZpOV!}Iod-fd6sZr*f(KOGKd zN#GLW&L9Ql^^pV4r^6SG%e=rP#_PQZ3S&ZfePqx1&DZVeQi1eR=EW`WU2lZ9ctUu6 z;DGUVqj8uPx4?J35rM-Y;q`$%&vfeVZ)ya-$l zDOW`HoTmfH+x%DKeEz(7*gl;%v>o%J&?VM^A&X*rucwaG#142*h7!+hX6O>@8b<=R zC$wu~d)|}TL^GQixxl%`4sZ2@bWP}hbvU1RP7@;+IM>(_I31F%3GG==r<1q(Z^wDP z-#t8@Z$Iw8@b=V8qnEe`zAO#zU7uQ089rb?nN(Eg$Xp$0?%@!ly3P$=U|#7<;Ce{CGP>tJ9b(>g^D6$w?S6m#_lKMt*h?ap zI0u$23GL0E+EEcYU_BXHG^dG?OPnk02%Mgft_bZ}Pv#WMXky?3;|edl%@fKMkps@* zT%x(m3tV7a;YHwbNVy`i=R6%q-sZos`|r=Zo%j5>CBA_b^8{ygIOFJefQkgK1$4Y*)MB?VZqF9XH?`P9BoG ztgr>Pt6d1(4e73q>-kQ{j<2=m{_gCm7XrZtw#0N?!ukL+X{$J@?XlH}@g#e%w4M z_Sc2DCBA_jJi@C32aF4ob~RyI+!Ei_M)*RWE;*|Md&ZNwPt6d1(4e73q>-m=EuX&W=`OEQn&wGb&N#qjez>FoKz0FfQDnbXW z3-hvqG%<3CbA=s&(-YDap*`!#B=Qquz0t(L1;!O#c$+7bDs9bJ>%&NN?QDI+-@cFxD>d=IPFC#vNw6^#rntr=gACW zxy%b(V!Ymqz~u?$^^ra2$rvJ;%!^y#yWR+I@r3aDzyafM46z)h#Vzn%Z$#j5NO*l< z&v-h6yv2V$em>;5y{El>H#=;JZQ#S~xZd8W3v1&Bd?&Mq<1Q;~iS1e!0(U2L*T(gH zCu4_VE-Pw*>skxEwG*;y!v<`_al>(z6t%#0tp$OzA=$NIJ=^J|@z&ZG_xsHq?*kzV z0+$#EPArJ*EuMO@K61c$GI3Zg^8%L`ulFKwc|v)8WY2jrd`Kqq;uiR>H^N&yA-q0t zz&IR2EQe`v3w+lb5jY$YUJ>{gUpMFNaesJtz_%>FyLo$h+&ph@esTR4=G(qge*S#; zy1ndngRf%#>v1dGpKyEJ?DpZeF*}%!rXJ^77X!?ny|{JTeH*V%j0nX``Q_$xw|%<5 zd{y>sR{}acN~okLb&`xII+Pdnt1(mkcbe-`CB;h0l8*-?i;v}HB_>`lR&^tf0OSQl zrx5`qnBXcHFUE9jF!lI~q*zH=!7!4_;$wMPrftK?$JeC=O9~6;kyMxf%nM6Qzw1fE z|FQU+ald!JJ#X*Mhoff0w+hG$ijF0|92JZglb%R?MN+J!tY9KZW%04Rtjs{->(YWH zg@pr2Dog<8g(aq6Fw$2|r7p(sLR5(4B}E65K#&Z_%SlfqfhH|jQdlsTw88{nURY)@ z36zP^lG4J_q?JZOoBXS_?Vrwwx&OKoMmX>Kb6PLf+0FUW3Xv`KpB z#=HD4!{2W{Z*Ttl_|og{@bT;RlOIa6*-Y~ll>h8VlNDxdplQa|Mk)=S+1i4f zt>zOZZE2v(JAjw}z}mglH~sIaZ_Ynn-X8q!a$E27WN{O*KiJ8#sJ{k97L|+9J&#NW*QxY zu3;TG-495<(LQhua+D!TvP{`GK(ZX^2tCF~BHH{bEEEZy<{F}~t4|2oZ`Vm2!M zf8TM3&1<9m?()wcQU|YJ^qo3*{lZ3fa6)W)ib1}9eV4o5uUy@hN@)chh`-&A8al&%wRJv?l+g) zzWd$fmM#vO+ey!d=jR`X17-$Yhs@!4_qe+s4x5*`m-|1vFQ11a=EBW?eK}sfZ|m|8 zEziSY!{%kioWJaM&%;48@%shAA2+eP<-{L0GwM3A{ZVuA;ZNHix3~A3-DwnTF1|Y) zpFa6}R_5ZbyYu7r@+8FJv>k~5y=;d9A(QLC! z9X_6R_q$EBo-dE9+&zYD{R%bU8t1;g+|SHkdwpMK-L==zxAM}Lw_BE7dR^;qYo}Wf zhTkqT>HLV_I$HfM_%a6Z_ir!%Lj2}uzZp>NP3GNk8@js?4|~{VfJPv&+bJX>B2>3C zLb8NO%mLyUH;af`kciU=X+)?PB96Ui#LooCz8-r-1QzBo2MBm>9&?B-+7YTcQ}G)) zj|kf?ky%6>x2oLQSm#91T}7p+PpE-oYDOm-d- zw=bT4*ieV-0MYFThhHOmD;y(d5@8D>aT+6)h!umxF?KFzt|I+u43#-VtFjSf57W|D zs}esmoJFkYP&Yb>&SoKTP}`Y6nam#?kXs9&>Kf`3Q=aUpWPWJQw^8s;YZ6*p++KPFQhbbczMhLLKioWImG_hbih?rP7cv( z#LxWFLFD`rStSw>(bB;|ZYB{m3aLqD77_=m%LjqVFMW*4{>N3tGanFV)@BlM7D>cK z4K*?$5lgs84iFWuCl`)^1(2p%aTOz#h!yh{$Fw~O6zY6M&}fU`VBr-=T`v24N#`qs zEL4fh1oeZ^%47l~YAp_uXDq@-G265zC`_vsM^@z%b-McXT!Q)2ISO-lp@l z3K3yrBi(51f9#4z1_&~fev}~^i2!e?kqFrfDUBRn9&>=u#m!?5u|Gy`jvS)Zh@bhT zgUI}5x;RWiKwM&#d&I9fm2;R2o&98_0>d8<$OS#S({13StJn`tx6;=E+gVh zb{-K|xJV8V6|W~3j)4V`tns=45~s3rnVacGX8$9;Dy<_# zXS0wvNS?6>Tatyr7q)~_d3fJPwP?b4_M1j;mrRfq_? zWT}(^g3P2JWr&(ILPyM093$tk7ZPoMBeMUIUaC-4SS73SI8!31G}K6hM5uO&%p&5T zv?BpBd8LH|gj6C_)K?s=?nwk{wm{AY#F@33M4UwuanY(o;^HzQ&Sd8iabxqGG+YOW zir141r|SYpBNA6JQi)hGUvZ3`%bBZ4e;Pw&4$-P?1lhy1^wp}w&kSb~D>~GTPNK6} zNE{^3ScEOf#CdXS0aRT>ePYU!J(bLVZvA>v1!x4q-7bwPK%h)>ScQnNv5{^x_CFFN z<^XYQ(vK}90=%I{B4nSS(#YZEF$V};+&tzG`(xzh$RS#d_?cfih&*|z)l*X=0-u{n zL@iY-&TFZ%3KJJMTOj8H;>_AiBF-X-xM)=(ad8q?clj9)&8Or5U?8ZB5HEZljm%Vloi66G=n3C-fZ1dKA7z=$qgI7ptc2ph!| zr8A3(gVp&&(X4*n^T!Q)2ISW=dcP9Vf$L`W#v0k1_&~fev~0<(g+DAi_N600Ga~wvY($ zt}$eYfFb9xPf%&(@bZ`gv>MwW_9zWawHom=zjP2ezeF;N)g$6JX-5KNA`%DGz5=JZ zd=RMF0y!TLXVzvCaTZC$MXM5ti_3^OlbuJz6)utkM07jXkGJV=u4cL}fMku=1&}zE zoy%T|a-jtEXu;y3G?z0)f(ySb5qYW-M;Mrh)i9Y^NE{^3ScEOf#CdXS0aV?asMFQ& zPySo$*OMy1PBApFOgzIYb<52x&wDosmk!iusCT>|FLzqI1B= z?0;ma%pqEpjUbIkptn@X#6+xy$;?9HptduCGFeD)fRRqbidu_<)xC+MXrdol4;hnP%bB_!hZwbKimOrQSm*J>3af=$?zLP$|6p(N%jj%mvWD9T*+ z<`oAIv3zonqFm-6;W9gyh#R%m=vM|AiM42d ztdP(T&0lY-5YwqtA!hPe1&O$^`EFG9KlV$C3=wRm`yd&l5ef8`Dw&wQl<34WGKsm& zAwn5BmpMoy66lOv<{*I+nXk-}1&ngS0wY>KI7rSW!bUMg>C9r{V0}IjDZ1I~rE$|a z9}#C(XA^-IiNrmk6v}GzW~D*P9DR&;m?aZ!W;Zsq}p22D}m4|0pP1 zDC_0{e$#d*P$n}72b$`nf+ARHRbeJHi;08mj3RDHD9)p#6v3jPI9T7KXv+1kH@|QG zdQ*jHh7b(yQ>j7(OeBw0kchiz>69UY&9pCNkfKyVNz7LqW9Jeby5Mt|-+ZVtHiu|c z_UG|?1R$kFvx!QOVaPtaQ#t#F^FE zM4&|?anZUy!PR9*oJr3m0>_5CD497(9Ajq_aSJkW8YP_w7Q@6bdOrJ{MF)Z?pE*dY zvpz4bp@1PTp9tGe+~L>QJ`)G)bBbzR|9bPc&0lY- z5YyeMLd@i`3KDT+^WCWIf9yw)3=wRmeJO)9B7xpgB@?rkvTVv$8Jk0dGIB0+kfL1X zAgxOLET|uZo~$H2H#sB-kh6)frJBWgO?B3R;_CA2B2%_i>70*%h7M@cDyML}_}KBuUh^{+R7*ZlRS3bFShVyX%; zlgBDZ#O;fx7dDwe{ong~l_7%7v@d0lqEtdj%vT)KmJd*rx$Mm=P99?UoR5eztLH2NEfR@~)+G~H zmmzUxeQzRCk2(Ch%w-M{%E-CQK^l=jXXG*m z37p7$WtJ>ploJ*h(fYwbayAh*iYZEG783{S^NC2&&0a5!o6h-&II}vN2((BfE?U={ zxVj99GwHcRVCAAYVAQ$d zb|bj7xc9rKi!- zKVw3P63DDbP2=ZPYA~}hCH}+P=dbN(p3Eq-F@@RcbJMnf}R|%bl3>kC#VpzB^r>w%L!*^!#dk z(B|%Od)eOPp6G!ZLFg>$H!ly<3>z;Z<%+;r!f&q+Rwx+PL=Gum-y+Zy1}}7$bVdFq zwd^QY1kMt!Nnf6EP2_;`_4bjZE_ji1lq-@Kdh7^S#LdyI$y}CiP2iC5%kEoK612!U z$`z@bSZoPb#LdyI$y}E2!ob}3;4$<$wLTyVu3hbj@$dw`S7&8{rd7qaj?snjq~QTyWd{OG(dW~kmVwQyxzSe5)KgkL&%A$ zHv$LykP|F={ek=h338bZrc{9h5o=EWj{kE`-M>mCUwsTDq<&HpuKJ`%pwL%@7E9n@ zs?zxmrjQg4Cb9Sq>LrUl*zSSBd1kV;~{*`Tmt6fkNNES}cKssY-YKOHq|VQaG5z z;yXB}f5-1cR`;(G$$Q5@LhAGVD@6i@zJIk?0tZu-?)sOaDutwQFp0%?a8Cb@-!Z4| zUnP?Fj)8>K=lfTR1PXosYOw?krYha_FGW=fN#S4;i|^o^{vE%wL*2hhB<~#q38~Nb zuM`Os`u^2o2^>sSy6azxsuYsK!6X*n!8!f=FU{^hE0Mf+3?!sJ-@j5MQ0V(tizRR{ zRq3vODXLOP3I~%|dK=lfTR1PXosYOw?krYha_FGW=fN#S4; zi|^o^{{6RR{i{Us-Z7An`h5RNkwBsEUoDov!BnNY{-vl&At@Y8V(}fE)4%`TtbdhA z-a7^oQlIZ%DH163{j0?iIGCz**S{21DI|r1Ni4pDGy3Ff;DAQff+a_6dI_63Tlu61^Sc1;2W5P!U2?pR99Go6tGmm3rtKwNlZ+F2`bU{S1+c) z=Y}1U_mKV>Wsl`7q+o%5*UJvg7NQypG`e<{qX~R;WiR$IjivB0gU0u9UPm+T943(h z54Bj{K?WA+mpWRE1sZ)vtI-5Lrt98KMvAgDmcqvj8sEocpE(y9w?>mlfrnZw?;ryU z^h+Hr#sZDLqt$2vAJcVDuSL9Mh~!M+V_F%A5VMx-Gv^}Xwq+72@KB58E0KW(`jP6O zdzit(p}sc6%7RLyprz}c?_(NE;bR7kUysQ?b1pJ&mL`z`54Bj{K?WA+mpWRE1sZ)v ztI-5Lrt6+wix^0eoGE-vD+3W?){=eZTx8tHOdB?@blvlPOk*j0%%Jh>G1+I%MaE}DlSqMwS}gA%0}J#^9WBNJjlQGRXaXP8bx*HF z45UcT6h5Yvfe0~c$v$%~GCnn$L<&6AV);sBV1a(5I_Mr|uyCla4Y9JI5-Diuy65|t z#!~p0LF3nBvd^50jL(rKkpd63Sl&Sf7U-8cT8sr6eMhU&1U{zgo?eR>NRgZ=d`v3? z5n|Soedb(be6lo&6nLn`@|DQI0{uvJ&^^px;ZR>2Vr4-kQqa#;?a@ zpIH|O=4wQ8<;RNm+UuhB;$FZBvfdl7A&Yo z1{efHN`!A?1`LN#AYyG{JyPJ(b=h zID`TbYYXd<0+%j-ft6`6iIo{RK~=hb>*BZgRJBF&E>b=ZoK)qjk%9&KeP3H;wiwk| zpwYFp9L<#?2dxj;#K$z2!p966-^XO_yJ}?I@=PKH9%`|?gA6RtFIA!#3pDzUR-*}g zOxHcV7BSc(IaBzURt6%(tR?%*xyZP&nnVgb)MEKcWMF}Qq&nyxX0ULmuMM%Xpb{x) z>AL6pn8s50m_g&$W3tbji;NqbNu}vg^w9Demy4p%(=+; z)NB$d@KB589b{mEeyO9ySfJ5&v>Hv|W4i9?wTOWf$(h2(v@#GOW-Zxg&PB#&bdyMd zhgvLOi3}{zk5mWU!weP<^|c{Z7E~eyEnW9~AJbS0A2VqDdQA42bCL0>*(6fnp%%+K z$iM>qQb&uiK%?(yHJZT3bluZy5d$fbGlh?7WgtS#TC&fqi=5BrCZW8EYA{!e954uo z6bRqO3>Xe|^&!{h%aH_^u6}`)X)uYE88|^zCi~4B$#@ni2^HF?1q)1MfI&d9wZ&lI zf!0>TDXdJFKffX|n<9CWSee!aCd|ww`^_84cuXh>722o;3+j;p1_6;0;oF!2!yy!i zSX)?+6u5Nx3#?3oNvzDk392&LZ{A48(@9CF&_*p-U?Kwy0*b9I1_KYYwi-@hWxD+N z6^Ypt$(zK=v^FqdW-i%p-bluSLrJL6MlD!Sj|?yfh?EH5#taw^p+Lmi!g{2@rORJn zWg1LkWd=@AmC1hdMlzmPNKv~a(=wA9e4ei_^IkyNI0pJwfYmf2$NOiEhJ$9xvLPZhe<3Ppt^{l6J;77 zUFnN`OkqJX*T*DUe}IZMr=!>2VTC>UE<5e+x9@J=_Nug4-a!r)R8H!?vzDqWiG>4= z&?G*l>R#bv3QOZ-5>4UboQ__5rxW%p>1ZvMcaVbxmHCbqV}V59(P}h_kEyzM9Zgb} z!qWJdL{s=Ur=!>2PlY{8I$De69pqp^Wxk`uSRm1Nv>Hv~W2)|5N0XGLurxj<(G)(; z>FBlhHDS+^j@Dv%2RT?!neS*Z7D)6Rtwxjhn5ui%(IjOlERByzG=-0II(qHhQ`obl zqqSJxK@JvF<~v%91rmKntI;Grrt02xG)Y+sOXFh_P2uC5j$ZqzS=h6rqqSJxK@JvF z<~v%91rmKntI;Grrt02xG)Y+sOXFh_P2uC5j$Zp2UD&gvqqSJxK@JvF<~v%91rmKn ztI;Grrt02xG)Y+sOXFh_P2uC5j$ZqzS=h6rqqSJxK@JvF<~v%91rmKntI;Grrt02x zG)Y+sOXFh_P2uC5j$Zp2UD&gvqqSJxK@JvF<~v%91rmKntI;Grrt02xG)Y+sOXFh_ zP2uB=j$Z$PS@^S{rPW~0LlzixW}8|L1{Pgc>)|w3rmEleHBDOzOk`yePGaS(*5*8A zm4FIu)Pe;ja=;*=(Ar`!ut008;WSpJ%HOv(Nm~j`WMvXgVr8P=ypfzocM?#cjasn4 zL=G4v6k1yh1{P>-HJrxERQW3^5>Kp8@+Pt}r42l|nM?GWHupUWpsq&XtnF148nS_&6Wuo7_k(`Hl5>TOyTCl)G4j3d9T3ZYT z7HDlXoW{yj`70_C(`k}7k(DWJ;K9vYqTjrcoTqvcP@#=lu%I3}V305=5rvIOFdRUE zh_!|FNPw}XJcXOdPH>gUxigu>3Y=7GIWIXkMw3{9lWH{YBL@u`9D(_J8_ON^;V?lf+u z)qx5%d&$0YUUF{8Cb0r1)o8vdIcSg&sS|;d88jT~t3<9Ys7exEx(gI;rqMKRX7CiX zne02~CFfRY5-V_0jplvipg}^Z$K_}s()YL?PvT~}3j}qEF%`+3#?7=kP@!fo*>}!M z&gW*6Sb>vjG+&h*G)RcliNMJW8V>bUB3BnwB?&Lx1qwIQXc{*&c#7Ig_MP*R^GVty zR^X%>&HKnfgM?C#%h5oj?{Phz#LaXU2mn`w2RLd{;X@0^#M&(jI zzA8CrkPxX8fs+|D9O|n?t}dub5?;Cs6mF)`G;U__6t$V`JLe_m)3!;hz)3Zl_mP7J z38fyFqk%}@<9a-ao9QkP)FsALBzGD&)9OHln!RM-Sua_iyiJ06EA?=$E?IC85h)dg znHe}7>MEsyK3|$Nz;rK23{As{49x&aDm2-D-cHVQQ%SJUOf_6!B?k^7ip?&E0~0j6 z9#CUwx)~JJiHQ}-pUBX(K5*e?Fxh|JPR;{ONwCmNHC#}e95{%G6pO;l3>*%jROI@? z+9Uy{n?Yh|8ct+r22fI=$^P?pa-O70f`w+P;Q}i;a1c>!b~zlFpxO0+8bi~~pr}qv ztVsSuhNks_3pazw{_}Qn9&t*7g=VVZg4*Q3K}4ij6lP}Na0sO$*B90%2{7FZ5<}B) zB11EPk_t`spSP3qY*i90G*b;1SjmBdh+?zL;lKpVt_Rc@nr;R~bz)*g@+UGhtq)wd z8Fc;Efw%e8xyABcl0LbdROXE&p+Q1lDOQ~=Og$QibY;>2udi4xULUlPn`tzSn;ATX zo5@aamC3n_o5Tv7RHJzxIcShjs!BN;i1avjH18t^4H8N{E=L2AzQ^@=5;xObAgD`>sYvcLZl=|N3N?GlzH?r3?wlsE0w>jI zzA8CrkPxX8fs+|D9O|n?t}dub5?;Cs6mF)`G;U__6t$V`JLe_m4s8-Ea8ixtedM4) zLaE2)Xdu$}xE@d9X1WUmb%`+*$(_c{v^r3sW-r-y&P&c`iIZ4?lWH_yl^irkh}4O| z$qX6}^;IHQ7gQw)FWm(SH`8buH#2yO+D!JH^OEz~WMC$R!2)o8vdIcSg&sS|;d88jT~t3<9Y zs7exEx(gI;rqMKRX7CiXne02~CFirtNvyz0HJbO4g9Ztu9+#tmNZ;dnJc*m>E)diu z##AJC8aLDGK!uvUWZzjYSsx=#f_W?TaIP*{a1aqG6@{4@I2`IKrGY+Qnl!+4FGvhc z!-)*d07@z}*?-%6!psaD4xv=!`oh{I0j8TlVrUvpWM~FZQlZKI z^LBEcq)LK?W~$)=D>-lwQEYZO9GIZl^?({f)6Jl$PE4#w{zQhR^??gFgUSB$c5)tZ zN`i%Es^Nm#21RvZVny;NGBm9ZT&gqJL!1s@&W|^?|E@nXKXX0@ z$@{qeQ_{1r`ja{fNmvlj)ri)^Bo+>|QRYjLexCt;O;VaSbzN6J> z5+D1ZO?*sYX?#qgDSVvM(W~!w_Jo&ov=+-d$iYGpsHt{iqrSUO|rtoo2N3Z^L zZ%=qhM{BXXgB&arLB0~jSRm1Nv>Hv~V;{7Mk0~sTk4ZFzk8?VD^=F5B!b>_@i{%~U zV4(=|l_TOyTCl)G4j3d9>QM{^7HDlXoW{yj`FGVr)|LVjS(${BSefWIZzSiTqy$uG zqZTYMkpl(^h1M2>fd$H64X3d(RsM>K#1re2yosz#X#)>#<`VtpjpRI?lz<9t)Pe=| z$N__dNr@jI-bW4^B$Rqwjs_xqkL&Ry zZl=3HP?s3`k=$wAOsfMGYW9+S=e*?HeobNpPO8y-RdUcEAyOv-Co^a`)K`gIT~L)I zymS{R+)Sfs+|1x9YBSk)&P&dX(Ii&jq#Dip$U%dIQjg2gK&0<+J)XqPbQcKf5@RZo zJB^!Zb)Z7cUb63;mz*22Nvyz0HJYzV4jLpx>O|mV1`UV$Dv_%Ts*;44?gE9IX*7+S z89YU8Ci~8L$+=aU#0s2Lqj?`WXpm6qaXA`@^gXV}len4g0zqA3Oht01aWkzBRH)fY z_MP*R^NHXjR^X%>%~vG{4H6=CB5*Q;hC_Xo$khc^Ny1Bafx^u+n#Roxo}xCBedoO7 zd`38l6*#Fz^FDIWAfeRbax@U>dt8qvaWmZog1W?*isVk?W?CJnP_vipJLe_mQ^QHD zz)3ZluSyOYBt+^&;A933hx#g!s|%`ij!d8N z6}i5!Hc5c#W{?<~h7%c@0hCl|vj4oDoF}Q0V4<06xWGyd97GhGT@D8(Xm&lI#?W*# zD5?_^E0RBvp=o{K!p&f^|Gb@?N1T#ip_yv9pf)*h5D_UBg_#*R973tc^@X)b0!%l9 z#LzUH$j}U+q(YPZ=k4S?Ta^S0%~Zn$R&wAVqS)+mI50u8>j5=}rkg=gotRjW{D}-r z>jM{V23`Mk;B7v2Zn3noOv*9UFnW*SZ7 zW(H5;X0j7pWpeJ~Cb0r1)o9*F4jLqss#1;yB7M*4@g#1hyFgHv82XXiY1~Y!0~Koa zl6~jA$gFCjuukXgJhYiCkS!l_b1$7bx6JqiNjC;3;Y|*>}!M z&OO^CR^X%>&HKnfgM?C#%h5oj?{Phz#LaXU2mn`w2RLd{;X@0^#MJEuvk zz)3ZluSyOYBt+^&;A933hx#g!s|%` zB6T8gGJ}RgeU-@71yxDHOLu|7%`}?E%?zHRHj{nlyySd#If)fGsYdfYa?l{5)Z=nA z5b1kdk0)_6-35ZW#F&cYPUB`;9jH*Vm+U*|CFirmNvyz0HJYzV4jLpx>O|mV1`UV$ zDv_%Ts*;44?gE9IX*7+S89YU8Ci~8L$@%PZ5-V_0jplvipg}^Z$K_}s()YL?PvT~} z3j}qEF%`+3#?7=kP@!fo*>~1U*2jpGVBShSoU2O~97IG)MPX(J4u`r*X`s)SCJiv% z3lc-qa3Vu9fRYML_Mf+t^W0PtEHqOM7g))GgNS0Y%i+KT&8`R37@BSdMRj6gMe-*y zG_4O@xEW0LpSP3qKvNPdG*b;1)FuZGA|l12Ff#*(LnsxwzOXh)fazwC7@CF?8JYo< zRA{pQyq%mUsghu!nQFMeN)8-E6q{WR2PSBCJ)p+WbTcTb6B8?vKartnec-~)V6y+b zot#IUl3<~kYPg^_IdBjWDHes988{q5smS$(wMha@H-p5`G@QuL44|Y!ll|xI~c6TL9^=tHHM~}K~bHUSdsjR3{C3;mjxMock|}=o6p;uzxup; z+TI;EpU(erzuSC1Jl)?Oj@ug?{wH&IyL~?GH|Onb?8Lt@C-!kZ?hkiA43YkJJmCtr zdwRG%Z$9p~H}7xW|KWIe-X71p?djdkx0{FUjrmCQuf_|%K5jSX`1#|Frg`U&FCFKd zKW=yDoj)#M^UfceZr=Ihqh|BYA0Lw`o&WChVRt%zxfFp(!e5L@__R5G-fy1n!#tSl z#$+tJZcNIu>&E0PyKYRuvp-cw38|b8U(S!iSXfJCRg{2A_Z=FQrmPAQ64`D} z=UPkNEDZ9Cua{YV+#enuw)d!)cgMqdbKV`E61{)e{BV2PJv@cI?_!~BD8YKCOswc| zSxanvuqmcKd+~&(l;O0M~hHf zKe1!f)<=s_TR*d7)YeCfP+LE>W7O71i%?rXw`0`SN1ISHuglEK_tW$7%iXqed$uCp zl-}4@E5c2^`&m`IDZR0^IP|LGP3ev8#i3UfZ%S`$F%G?|cvE^~n{nt>#hcO_w_F^0 zRq>|u#*G(;URAs)y>a`+p;r}eN^jhRap+aWo6xg6F$%xRfDwXKgMPYj*bUwa#Swy4 zqdrEkDqw_Q)v%8dtO^(*ST*ir1gio@2v!aJ7{RK56M|;%_v`U4?#JEn?y+*~w>;dG z+}Oa&qfNat8^7h@rsT$6TOKV!t|r`++}LLnay8+m?Uuy+z7pz zxjtPczWGoSFG8Ymx&t%x_JH#XXea1nY{@uu{~M&r<{iZ`VEdj&p7m|;!Wt;{TYQ{WxxnQ^1@-ad@B@3 z2v&{y>C$00eH?;S!#+l^DqzIHs&OA9SQRiruxjAP2v!B05RC8r{`1Sz!=Ct_?%a4& zdeIi18*XY}eD60m-jrUnf#-&c(5s3!r5EkC3VK!Xru3q{Rza^S-jrUn(<A0t>5a6-`R{p`o+Hpd@s*FLEH zo8i+Wt0GP*j%~au;M7F316&nxN^xxDRRJRuDTe;KEb`cd9&Ys zI$u7k{J7bFx_SHM`SN`U?{0p6{lFS*NLMpAJ*RL6AypA@&3=`@gMb=I# zmjfD9QImugF!M@DJ-SHf>XcR~U5)B{v@~{I9j$dY52?v$9Dq)AF!M@9pjn|Rck@bDqx#}4Orz_UWVKyJ8$br>bciBf!(?(WgI;No%mQRqC#gG^ z$XuPy8l9^_eQy@Vtt+9m*5(l<*~~*W=*`gAtjg873<@X&&FNg5%mQRqrwB7AQ)O*d z=W0-2wxt>L@|}*2*G)ZSm`sZ(@^z9+3TDtKEs|M)%<3fd<`S8!(^;c)HK^~+(x|m1 zwAR`@q9mJn$OgR``kGa_I+sBKg`hc|Ym-@k%<2?j=47g@&FWkZ>b_ez&=Y*G^?x6~ z5oN!*zu!*Y*mSW%o>jp@V%M8e!+R^0#A<>C#IC!260e$AA+48T%A!>ftEct$^tgH6 z-u&YFwduFs{$GwocHHdt;d|%N5@W^l^#1Hc=- z`*C@>JAAzSf1K0#@O1eI=y|g{o@OmJjbYPb-|wEDw#VD>z-hsWxz#|i7}-e<2WIT`qegN|Ug!&sP0Njsj0SqOz)ofaFzcv9q$Jb0n`? z3Y`_L9VU6zT5KoVZ3tph%)QmwY|lkPO-qdr5fZG=uCrK*o0glH9(ui6;I!cQ;Lz)p z;-=*$CWc@U9#bai%BUe#UsfxF7K(Lc)PSn5s+BQArj(!|QCCweqKu#c(V$LEPxb%9ky5B@ z!-iyirLK({7QkCh*nq4rD;8Hy)R3wxEE-ix)PQQbUi<%6!LHXuVMDUX!det{e!VUV z8<0&_)}o*xS5DNBYO1p8s8XT^RD*gox2f;(zcMHlyFPG8*w^g(xM3v(Q+9pefUvKy z^*K!pw7J{fy#2Jle64or`?-hDeEn+N(eAf@oPKOQ5j1o;=#Q0A z1CN7JTN!jh)py3qr~y@9Wh-NbOesM_qOQJJL{|iT^D-~VWg5l|4P8~GVbH+PRYe-c zoDf}8qhZj1=$dK@LxwyVF+-Y!TAI*Y5%cGF+ui>1B?9CUjf4%^uBy^V+`!mXg&GMv zp}VG5BXI+|Yf38;HDpT)8L=C3@iLUjw^ikdG6=q_H_Dk+}=L#H|K5m zx$YrKM`mr9S^vi)aIq`=_;=3z<)~tJJUrbt`QITl(5%qFXc}l(P2S%1sKIwl6~2?r zqh5^|YHESh0%%^V3RRTWDy{4Dy6D^4NNLSuin5vq6(uzfnpe6$r$H$dzKV{N)BtTJbmgbTxrqu@LF-2L;gEr~a(A~V!^*IenDTK{xU7gedXkM!dH7iwSa9-_S$M?-6~I@jkjsG<-xr*w5f3z%7@D$txznY&q~>rs92mZs6mZSL0VXameJp%zkQ z?IfQZ(4b$MB(#8;Rm$qoB|_Jyv_|QARNteev1{vSwYzypO-A#WEqXMxHmh@eK7%R> zQFBUHC$xZ>RjLBb36;5LL?o1`mk)qT}*r#tvz_ zQY6z}A3J<#H(*^;fnjK7b%(J-+7Z`Oy7Jlz}c zt|{$E^pHC_d`P~c2|+i!l{UjF6Q&pr&h5c4nh zPEUug;qGI&;`_x{{C4pbzgv98KQF%GUlw2SuZyqvx8xOzNn)`@+P1^I>VKzxl8<*WY|tn(S{rEY0>eAC{*3 zn-95sqi4(jySt3HQn%O^`|_|k-rjAVrZ;7-EjGHi;G)sU1s9E8F1Tp4bHPQUqYEw? zyJ*2hV<#=RXzZp17mXb?|03H}ORic|6SljSV6CYN+ht3z7S_f4$Ia<-U-9m6ybo@B z{`t6s{pXh-wjU3F3OmwX+wE$GiCDh4+xGN3E%$$^`@i*{M#OL3&A|S*Zo7B=Wq>pv z6?%E&@x!Eq#$(;|& zl^fVR{7T$pAZ9MTIH$iK?0oKywdf+S5R|jeFMf-SNUmH+inb9B3iKlM3|y{YSUY1; zxSp!1t3iJA3}=z4iU*__R?o>XZflvB!p~nmKmV|M8ggV_*FSB~kK5yMbGb{53(ZT* z3#H4~v2UL4(+3Z`{p8i|=1;rJTLga^E;2VZKWPkBhJPuf-pLuyoeg5*dA9v^N zW#o--wAeQlHa|>m2;zeAZt%@+|8y929RO7+8{rqP(^=8KmD~r7(h}UZjMB z5=yyFFtS~foG3sFLO5=flyFc2Dc89uPKg2|FN0%Mn22*<6G5)MirC76xZ zqr+?P1)G#yN)#A*862y^gakS`AfXUH8#Vb5VB}?RteWJ*>sSx++Xm~1#R!FjGk$f} zEl7}&5QF1ZNeKrfl)@VE)~<;X1xP^%$E}hQ4oV;;n2pz?Yu1rmN)#A*862y^gakS` zAfXUH8#Vb5VB}?RteWJ*>sSx+y9Vos#R!FjGk$f}El7}&5QF1ZNeKrfl)@VE)~<;X z1xP^%$E}hQ4oV;;n2pz?Yu1rmN)#A*862y^gakS`AfXUH8#Vb5VB}?RteWJ*>zDz8 zHx<;NJbX zc}heyTA#lhpZ7CVWSleE{dhclO@W%z9*)~>>a@Qbb9VV6m4pBj>*N0Ajapw&!CTet z5wyN@-aKyhpKiWAAD+vbnm3nEMmz-{`!HWp@bWQ=^KtVW`%gL!8V&Ut*g4tY6~4FE zM7J6|Cp?&<*!y+5gZb7r;RNuU@Vw~+Z~#P09S7s}MnHGczx#N&e9g?~*J|_T@CEUC z^RE{V3vzwUPt~jO3-bHJveJXRuJEVw)%XSZp!aI}9W3lmSq&dHv5 zPR2(3dBdIzo)ez+ykkwAbxVqk0G<<$j0|n=OecT?U`5Ia=uUch#yauWYl&HJ4qp(D z%*0c#SFgq|$nOuw)e}k&^5(AZuJ#D{1^J-&YWn2_oB{cf+uuNZjpdyTof928PKHMK zS(BcOos-=kL!mq5jx%w{FQ_vDc1||Z@hZC2;7)jPVRb3LUP{b(YxIKjtn+&9V)%mi z{&1U;UzYgJn5w!fh|gM2fJgk)h6cw~?mPK~IorJf^(yN*7dj_;VmKEX;peUAT7s-pkM&<6K#O&wcPrjI-qAzu%JI2b%0ZZ zkeJ#6=@}F(0Kr%EpaBJELVo?vy+LTcsr}>bc=y=$@ql&cIq9MEjkW9HbK?7BD15KI zqc#k{b=E^)bOqGI=fs2BYpHL5@8nMxpRE7agVgN50)c`7`4qHpK+m9HL4UYe6D%x( z&Y#LMELf1w0fhk|QhOjA7pB3PP+0#nZwNM62I%NH=@aMa=s<`rfjBrMo(`WA-ye&E zcho9d5Bj3w_3%0Ip!Qno8{j+n<;hF0JxENAy=(zo4_206!2s}!mjHtR5K<1{xQ;== zg8pzEzhhUK14v9+pl49900dvrg9a3w3HkLu^Cpyj`KN>DgonP| z?~g^XJ7UznUr=!r^qlmp?-X<(EKfTH-ia@+`}DH&>f7TNke2QhyLQbIErFNFh)#0Q_Fh0X+j}L1Fr)-}q~=-m}4T!Y8(~!2vLD@Uzi#()(jW z$y@A>HFfGOs5lCGPCAnEO4{}CPW*Je$))~!jGFoO_yze{|6Ayn6DSzaA8u9t%L}pX_j=*rzj?s_KfgRZT>eEt)34ZH37-=mTHjiI z1N@x){um0+tM9nIUh+BkIr(|_IrzYswdqqNz!^{+zn;PMT5bir27`hHNKw2Ent0HF zLcxUoaNGk$D=aJo4uygV`804S0AucMz;`5vgR`NqAIQA%w{k)D4m5|)i3hcz4H~O& zfS;4!AB(H!lpYjD*TV+*Ir-rBYWiCca0Zlzu(|LRGWu_3HdZ|C;(&je!z7khl8^rzaYE!W3JcL=D-`!8a*c+%+Lglwd>(?;`?J! z?VPHEzByX~XFUf#Cmz&ZOML@;C%-s+o&VQMxo!Un1PTUZQ_#c#J%fS;{o!U!u&f9= zduq$DU_mwq90q`xy8&>m$f4j&D6GKtz2WP1wHfgGTchWsgW1pkZMEy+bK?7BQSF?n zgT7hozqOtNpA!#iucf{LzLQ^`yw?BgrQEiE1p);FvMFfdfSy6Yg8p!`CRkPkojtW> zSg;_Q0}cZ~%wGR(D{?3}6Y?vte>>uOVJrokyUpEh^J>orEP>C7M{dvpt<^Wc&<P z#nq=vZ;AU*IA;^!-RI!v2E>68BmT(7Imfj6KvdQLi+p$Qsm*Td(;_s62z zIaLRJbG8D`dJcR}JgB{v`Udz;esTCZ|F4&F+x`^@6b#6wpos%|1_cZH!_AstSrK&h z)Rtkvf@}^r3;;2A1K?VbL&2F)Sb^=k6W8l%GvM{NM$btHv!ManYS+W(#P`Rd+BsDR zeY4hoYdr@(Cmz&ZOML@;C%-&-t^e0cxo!Un1PTUZQ_#c#J%fS;{o!U!u&f9=duq$D zU_mwq90q`xz5d%)t+ z3_yO+2JIba!XRfse=P1mP=c#-0F`sL13m{V2007B?iD>~L&2F)oX9>A*K671;B`0@ zY{=)Lkq=Es6pZK(w`_}r1<|=wUzG(T^2uP40Lt9Wg6~fj3ui@Pzu?}kxL#PF3h%-z z5Xcz-azjfrcc2M_oCW={xC5*rgvwd_1(yRBgPa9m_lh30q2Np?k7k#M>$U80@H!j{ zHso{B$cH8*3P$vYTeii*g6LeTugZcE`DCz20A==m!SyGLg|i~RT)THSuGiIP!kf?@ zKPMmD&=Ae_w;+%+pg$JX&#FIYoU>JM31AV(831yx=Rgw%&Vu4dc3HSy${qu+LZM(n zHW7_nXu+XiLw~qoLo6$X&Z7E)EZC6E1d9Ve=57#NW3os%BMR%YefQ&fU40(B2kr55 z^1*FrhSvI95Xc$OAB*Z|)gLs@+8@{iun6P~0J+z5pa}zKL3tkAEL<;TkAYXAP%t5z zh(<27;83ukKise(mK8&1QGG!cY{+JU#Q`9*_XoBymymdO^XB)P&)b{79v>n&oexjj z+mFZH-4Cb1&A%Uye?FW}Ki)>q`p5CC%L55_KWy*g=lzp8?{Rn9?o%h4e}=Ss`m{Zr zapFMCKn`cz9X@{CUrxU07|t`0!+B8+|M$pkI58vn|B0NQ)&Bp+E{K}&{^tE3j)&*% z@x0rfE{S@{@l9WyZ?AWZhTonJ$MYk8yKWZo%Qs)1@#CBO!`G+om%$ce-^b(S@a^X> zr^n;r@cH)R{&4rhO&tf6@vD;P9ed#bKCkP9m<7UjZ$b{q|9WW%{G!iCjs%XqE{k?$ z0ll$=;8^qO1n{d43r_;S>FWYRv>Thiomep(XfZekuxq2@w+3|qsJ=Y$>%@)TG|}t? zY?K8K>MH|CQ5vr{GQg_K34W8*27q$LdCU_V`1HRMH)TyYv;te zfu9@I=m4jFbpoJ%iVnZVc7Qn8esTbLviBMeuy&#dxYQ3^N2?FC>FWC#9i!L2q0y8@ za&9zbfl`=`FFp-m#g;bXM*m}1oNZZv;bdsErD4nfqt|vr&7+sRXuH8rN{$5_XiytD z8VzeBN5i^-pBvTa0GHivbZ0SF6yQc{6bBnr2cV)n8kR?v2M%i16+|z;oHl;+Kk}+{ zJ`0>FsSX5RWCkvJZ8zjR0ML5VG2m9*-#s<)NRUf1zdaxexW{!jP0Y6KUf#9!M z5Lpg5sICa$l#IZ6?Xv-7L17~FqL=J_{gRBBPXTB0D*}-h*?@~))dwvJL~pu@7(gp- zSX@iAW?Q>}gl^ebKmw<>o)N&EyfAM#Bs>TF)_6()c4EYEfb&WN;i97o2Rjn@O%|w@@ zniXtzD$?b^CIO@++liJOz;7}nT9Rm15>Ok<29C8ZOyEvd(S{A`Ip8;WO`u<6&k#1N zi5v;*1b*&TukJVAutN0c>Ses>e|!ZJU?{H&0F|u3d9UmRn+D>&=7wTE2b?LW3WQ!{ z1TJC~1>%)S;7rB(f!IBZ;n&EgHgvOMK&`k*(Z#44n+sSND{z&lED*l+zGA?Qy%~yw z>Wu|(qAh}h)0gMul?*^LShTB)9x1w#fpGhI0p!Mo0obA&+RDh%Xjd9p8aSw^4b)_8 zWWf3C{fg^J!wCPI@!L3tXD2S-GV;027hj0blV#9cJ1U`DxOni08(XoA`u@k3=wLS4 zQ8pJ3Cai%|3!I5|4}OlaEMcc$_KCJwW>EYn}WY zJdP=|4~&9*oJLPS0>|)iOq%~b;nCsKA5;3DgSYxomyxFjmhJZuG}?YRIGKIJftL6H zmF6EHuT=n9d>m9(ATUY>;5_vR7;p-oo49raW&h`U5S^BNz2A{kqr-|x`rE+wPE6ac z4ZKy4pS$8C;v;Zu{W1Dc6tM?Gmd)QjQa^rk@HnQ-J}?UMaavRR0ot(s06AIzRQX3W z#NO=(8D;)+`2De0v)}5+&*}mka9T}&07h3|98^{SFroxnlt7jM4w8!yVWXSiUbJuq z%!kLB+zLR{Me=bGp#>4DjE^(5`3Fj26+~gwZvqBD-eUvHb|DK0XlB3y0ytG$1HH`B z7?jmO4&OTPDg=7a*UNx)06+5w5hA}@5o8JApmZ$&NXY`6*Ek7)C0Al!-@o{}Id6~q z!^6Y&9{<&#yhdFw9&QEv<@nzJ?s#~*{kS=vvhVw^1MQ3;p~BU+TIZuu#rC=GwGJdw zj}4M6o{vfuJIE_*mGj)Yi8Z1TwRBOdcfV*=S^>EDHH=950PB%aM(-7!a<7?Qv$Ib33 zeEsTzfN)(D%%+aYj}$5^qj)O+MWHf3iu;G0&S>9*_^r64{CZ60!+vu*-9B$F|G_l( zFF4ns2E|wji>iuFSY&8?lWs^-Ggz)%WHUN#baLmza^(iu9e!08^8i%#nJd^Ejo-@q zqsnpyP$w6^#bCK|1D|ui*JDlE7o@s<8CNhAM(fH0Qw1-;Fd|a|%u!%RZQ1Jp_ zvSjZyexpt;h|ASgnIz+sId>~+N63KH zT=Np-?%aai?{41we)D;IV{Srx-tG^Rn-Jf9+T87)9&UPjaoInOFLyWR^XBgH@(&E2 zzkGiFVfStjspVwXXFY7M**L9bTc{5`&UAbY_ z7F;yuY{5li#ui*O=4-)4W40DtH0El-MPsIBUF2?BMi=~kO*R{icQ?a>Y(rW6a_q}L z?h1D)%P?4))HuDi@tL#+dV-~Ng>i5v_U52bKYK0@~z@2K+B2m)>5mEDSaBZG&eR-uYnpT)M z9|vcy>?K^jNKkjtvR;}GgfmGwLb$>VuTN4A2*)^CLbQUU?zE~j<&bcUl&8L7qHQZ| zCa9pyJOqn&6An(++U`JAo^s{^my{=j(S2HQdb{6UZir28rMZ`H>*!c7gnR%K?OEWCkA;}mn3ua?0)OW7 z!I?t~XbANlEb<4`6b8-a0}^91X$%6+PsXA7gm9+XBA+v$7WOY_K0%Ys=L4?dCId`g zL&LA#{dPF)$zgA#EFEE&LI3Ty0pOw(Q7qeuOx)a z)fV+GEOH3kemX@YWrW~A9gpTS!kLX{5n$WgI0Bk$HDA~`B}NFx)U5`b_!{yP7)Jxa z$jvMqQ=2qDZT*=)p~|)%;b+N=MDS&mgsWbg5_mMu94agJTHDl8|D(htP$=JxupTKH z0Vle);oxMa{S#pXer;zGl31uCkoyT0l9UpHFRLV6C2I8{H%U-29Ca zu8`fd1%RW3KgQQL9DU8P1P;-};b7aj1k@;{erWxa${T#;oB*`2ns8Z*(FCk$?r@N4 zR9_FS>#(rJb|?L@e9Lu2hv(y7{{bX2AtWNYp1g)b^9kY1$w(qww5Eo@t!uQ`A_NxG zE+aDn(4s2BMG}t?yvzt^%1!ch1lWE&zDBFfCj_$URs&9aS$hqS7BIr8YLn)ttv~Z8 zRN2-e{M@4dfmP@>oc7w3z@u^IP+5iB0O-T(dy*a1CL1KUQh4D;W(3seN`iw;H<19H z!3d|eok=t62;?N)1`e^E{{Vb_pA^5zn+-rS^47EeDNzD@IVYbvz(!w28k_nb8`M&k z5e}*w4mk0h5{|y+SOSM=;&4!H)4Ey$yPr}qNjV|-!fL{05}y!!4kw&TolOY(lewW( zM+jFlTMjXuMfhWMnZuaQKB3e_Shc4F_)12&TyBydO!zJGkV1dxCsf(iBm7)F0T5_q z-kP}tp5@}knXNMi+`>!U-Z4$$P|wkalz}|ieB(gv>q!ZRZVVu$EoKuKzNSmC zF1pU)pzcN-5LRZcckriF-cY3H1f&_MYv$7ePB>L>6#6W>{DOw;7773|C5}^?-9iDN zl0AtaKgDS1=XiqvjDHFC(wI!P9UOhJRr@<-fNAhfn#hH#zB%*KfipL z_t(vSkMjKa^Wp3EIR4Y_;Y+=*TrQs~KRjQ)_2}x%aFgV3$FD{@Y<{@?w0*kU-acIZ z0eJYov65gA)dsE4YaFbj(o9=59IR`TxCt8m5I3{7P7r;bxbEzV)J@>aM$kW<4iG3wzFi(T$wsjSGkHZ4x&@!yksKbn4_i=g>MX(w^hu6?*Qvmu%H?Qm~-o z99DJKLKnl5*}3%J^`AtUf8_J=xV!t|@~@0GyW=T*3Fq*js2N~d z;QQUv)Ao3~-+pQ)Q3aV6`HN2Ev1KA!*%s#~fflPGvD=lTAM;iV0cfApf&HjIUumKvQUELfjjXR#DFEjKI$Y`Kf3+x1k+kwbkFpc1bz*)i4+2LnaC|L@f6|Eg0dDU9%tZeBV$*Yz^XGLp= zNnW)U+sSqtg4h&uk9;)SbCFQfQsYB}1naZwESBP?x1UB`BK@;!DTzA(xh+wb;2-ac>chwJ`k1bo__ zA1`0#bA4)T@@-OYu1iIq9rx8z{okTrB#&&4|Knl+Hd{pt+Cc78np`q@dmcpuN%tpblOnAEcs9 z*cT|N1pwvj#~;i1A_KBb*ua4K_#y*>3=F?2wgCv9D*>F-KU(fm&>gE;h!Nc}@HxP5 zk||h;FERkEqFsoCuQmoe0g(mB`izz6daAexp}Fq@{MzL}WC1{$YzF}58WDe-!=T0l z2ij+T)t5{EL;MDW{7bDXaMN<5w?TtX_*4KRxe=qq$Z5&(d!S7;tD)1PqqjhtXci-< zCCBf7HqoqxcA~>~HX`pLsYEx0&WaXK6F&ZD_5gurHdy^Ubz@ND_lKZ z^2*idPP%*4BsST)y*u7G(ri_vxM{iZvC=}Y7&$FDF;7}(Rzs&n$45yE&0^%VM29;C=_JXIZ7FnCw0N52WsAYH!qp=suUw6ul`ftvdF5j8tZ?;s$tzc*JL#pp zS$E^I`PPgEn-&`#Dl}Z5V&}3JI4w9nOIj!vBc~-the!*>THv(c`0Qw*Sd8o>&)AWP zB)3G)O4be$KfOZHTI{TB@g&LX7K3MnYX?eRw-!4qTRc_ry2ap5xZ5E_UgmYrBDdd% zxzFlU+?h*@jZYI6uFtS@Sqq#NoERew6pNA5lH(JkfnqIiT5w`?G*B!?c9O%5LA$xt z5;-ebJ4F2S3Po$Nv$DmLB(GZxo)xYgD0$sl?5u3@RLSe+gMYhu*xvl?H^Z}le>Hg= z?Ca)u4nGgpUG-trRo}0=>bIqv40sefbyc z`|a&-x(@=ryRm=#5c}iz!AAzoC-^=dw_jh-PUp?jJqxX?h(SIP4z*?_3)RKpDDq;V zg~?k0CzKas!AV~%@`sz)U%&7FS}srYr};4K-R8^w{&;u_JLT)g(f;YiqdTuZy&h4k;=JRAQN2B?7(<`I- zo1(SB+>4o|!O&JD+a}@ad<(E_^As!_CT7j*PruC304>bZ+D|OQEx(mE$9?S&5vL zES({F%~EJ5+HE^xvn%=9aM4!B%WVXj78;)&a;Zw#wAjSZkgJvArsc-xgLg1`m<><&Ou0_T(kmfTQ+t1tMW`BQsIBth0 z68~v@lJI`JeLn3kPfXw16W`yw|HJX{ygi)>5pF7*O=Dwh0WY1BL|Mdd(oXBH+(255jLR&(PvI@^_o_ zd2=bS;SY%tGEd;1kGtouyW{ru@o@Mde1dj}kCK!D^zNqP`vMaPs01hp@b$;%Um3qh z-&Lo8eqH?2PYRF<*7gTF+MjW@G1|NKTO-D=mTkV z`jBUi-i)p@=R=8b$6IvYLY6E_^jw$_RGJ9s4K-6fB|6eQO$5AXJ53}8yPqB^KmJ6| z;S)7ZmfB9l;tiP-r$mpu(?qyqJJG{M^F$<6PV^)`QH1oC8mfR39qOJa0#?g64(Zz> zMU4BiqR4M(165CnR=TH&fL+gd1ez!vJ*{z~=NuA6P^wA!>@|tPlqmYcJSRHRKT(9N zl@I1o1e(eeJ+G0X=NwY?1~yWpcFI&fCtB*BC;}dQ~D*t^E4>p1xnE z@;MPhho0i32pE3iBcPn>(XlEideR|P1oftxs(=(7>Ypk?Rx9W?fD;YXs_0qxeu{t+ zFCSX9sRr-2nc8oY{lxc3#&m?uRP{ZmEA&gVdaoo0~dik?Gbm#)fB51XUW4+%RE#lmT*Qhb)#RRo~&hBd9__l7Ka^ghg$vO$X z0Zzm>v=fXJL8+cVov2@0cmte>y?>$zdD)hlSk!E*VD%$cn%}^TM>>=*pA+TOofHA* zo%o!pXOf~P9a2S5s!!3Ai5=DOG~mofxEZAAQ2$gB^1^L3(NL|5o*gPkj{wP{(1}+N zWD~9%s(Mbe(mzpz?0fzr)I{~@X^j*;=aDMHQhi};F|=0^hbdL`hj~(T{ z%>tpOaz)Q;tmrw9WRW{9xv?U>Q?Bw!(Nh0Z5%O3-dgwlbJXb_RWkpYVB#W?AYoI6H zlSRN8tmx1Ml10#J5#Nku5lh7WYKndN+~6oV%O1vK0iD%}6NTy1R}?Mh${ro7opQQ% z6#=!9qBtI@A}rMzmTIbeQgq}3sUqlw+iIerz8GW`q(eQDH3F+`MLgb=S#eVI$Ujwt zj6VqyQiWYjOD~tR>5)gW2_n>QY3Fkx!B()Mr7p=LFx9l!DSCYH##j;mC1?@$(ycY|P)&;!kq&i9*PGaAk>bQ4 z5=ZTBFj~4mvIyGyd`P&7Y|+yyEqc-=T?D537Ci~y#S_q!F8V_TEjo0GbP={%#|4ev ztoLkC1&N|sX; zWLl)|3Rsme%(P6^4zMawkZF;+3t&~kFquqw=JxO&A52pw$_}^#NuelIQ!308Y^^X@ zQ!L6FY^^9%Q!30KY^^X@CYGJMHBUYv zQa1stN*E@SDNotTeyF=lA52pw$`0&v2@2Je3iAY8D-6~Yi?Rk=D+<+=3iAhBD-4#2 zo!t-dck^quCtRijU|OK=3s8wD$h63WAwX5aFw-)1FMz5`i*h z^uaV`qU?a1tQ3kuHKoEl!PW|cHN~Q=!PbgGHKoG*!PW|cWn$;HC;V0g{C21vFD*}X zg?2z*MwUcIU@HZInnF>wU@JwTGO6rTtvHc*Z$A1qp#Of^J#JmUe<&X@Em5@uut*qYTBhy? zV4XP7v{2O!z&c@=X_>kgfOXpk{J9T3wJb%W>t$*alI3d2mxOgIBpCk`|%R5t~zP8eod zX2K1yI&q*(XwG(}yHF=kQz*YEz_dWs9y%cMQnH+)Ak!jsSHP--VWwrOc7Rohf=r9lT>z^RhRI~g zGq;EL_+XkcQFg!`ND4)vno?n&U~7fJnqpDbU~5I8no?o@U~7fJGO_I3t$7l=jlp9- z)DD;ysQW@YBCjONDGD+zGGPc%l`zb-Ox+8hDp8PWkqHxks)S)OnevqF;XOW>rc9I_ za0ik?QK+U=m?zj;VX&rHlr`8|QK+U=m_OKByTab@cMqG>X1`l)Z$`1-e_Gvdc8@pd zn-%W&U%sq%54ZYHrx_uKA97Z{)Vez2_zQbILndEjSCf4A@_f^k;luvxt}P<9SkGe1 zm>sGuL-r`QjM<^yGGueXWx)4&6{jZqKhd{=tykxPy!qkghu<9b&+Ef!vp${=yKJ1^ z@AkX(ha2t34(XRGha*NS7>^$kHa>WjdNGcvAOA9d-|z44w(H~R40HQ+wcP?}{CvCr z`r&427Vl4Ibub##4NDg#p9i!m`82R)8PAtRRT;Q1J}ZmTh^m6%QP3WPyS@D9Ms6 zqA@|x$Zw4>CyVmHRwX|jVNww3;5|C_z|toagGQ(dz(n(t5sCt!A$r5e2KEJHJ`ZSB z@@YgC1}IB@cVHbXn@6b1vd$5P1;L}BJ+O7jCxR_ZK96W#5S0;)I%I!5w+ty*`Z8F| zA`}Jh9qCkrSpl$+osp&yCS^$)(30dQ16q@cAz5-(LrIoo0XDAu)(CTgNJlmgY*n&p zfXl*1Wzf9v=_E-aR0Lq4xru-pm*|RQCR|^mBw0Y~k(~-?L2|nS>sgsBLOq7$A>YnP zHU-$PvfBb%kz5+slH{@g*Mzs{2)6J^B+Vj}+MF1>BUl=sPlq^XDT9W)^ zIG#zeN-{8Cra?nVmSho)34%s`YlJyjln1sd`RNFgf=GurpA5OD_fH1sr7v=gjXBT= zRRNf2elkK)05oK8ELD_z9?+`f(}*k#P?r4ez&cnqk5H9mog)kjf=5AnVC#}k1Y4MV z9?`rYD#IIf5WV!NCCwrf1@0Yb5>Z6}EJSA*G{U4TNdsDv{A2|G0wm)S^25z|2XR(O zmYmg4k|kM0V}hWO-x^^~7UhAhN`5-Rq#)A4M`i4RrB5gZjZhW1Zx}41Spm=xyD#?M?3 z8U?MY(>Eb`j|T9IrT(2``cz}AF!#)!4>NyK0gN^&7ye=E%p zh*@WTD#BU4KMTPHWi4LhB&nLs-4i{9!pd?9ziuCvKTnPed*WWHE9%M3d1!5xE@!wW>@Kp%_EzfG4nYSBB95kjQQcXgP9OK$-rp#JKm z`GP|l>aie+Xg~lg^4lUz$dWXmCCN`lm=QoS#E=Y$r}sk!TdMwpWRHMv9#XOgUvEIF&8Bulc0#som4pf!eiEpa7lOu^uw z(5e)qBTNdQEPPZ3$(n0G%`2Bgs0i9Kj6{TT^d}*@!e9|*WI-0ldgP}9S&-b$jK*WZ zAr19dkc8`LBx^zd$;j?bXi2hJU~9sMWW-wdBx0}#CFyUS`Kdstx0xgV9hI+MkvXUKjf(`t0V{-`K^I1N;VH{RkCTgo=--wrB5gZjZhW%8O2}` z6$L;;^oGSF%*vuXpj9bIhvQi#uPOs~q@f!;LRA)}5e*B1M?rgpX<3#CwlD<=3G;$T z2;cvV``_{0GNfSX%V05!P!xcbW~U-l1i(Ue#xM`=70IRnElDb4J z3$lRLBRdt)f@F4PbRBZRAr19dkObJTvfCm|2qGD|G_WPfWdW`UACeJl;gd+3MJNft zI0Cs<1xQ9V4QNTSSwvF;NJe&NV2vx6MkvXUKjdc1=+7`F2pajVfh|fl z4{TMkX+)EPD2wRPA@}3?WQ1P&A{V0(s)F|oBN<^<05oK87(BwPEXo5~m4b9Y%ThBc zi;irl%Az#D4pz_}VOkIg$tQv>Og;~AW%$4hqL)6kq*;Wb0IW1S6;KBgosrIk>uZ%X z4QNU7lL4(sc4uJCE0;zn$&f$fYn60kfQ>7^HLyj==7FtBHVtrDc#n=?OP^2-8lfr| z=EzYoSVTnu&=9?0@d&fBC=X~=3ew?tR>`Z%zu49tG_Yre#?o*uoSf zB+N^5LWbOS{>Gf_xroM?fQ7y@7A|pSKIB)4>v#j=CFTW zA5NR~@x#sg_3C)K8MoSXWI}Pcr7poG8XXuJ*)BsNX$vqsnz>xrF*W&Y9O{%$#-mV| z4oH0kSfWm1tUDGen@yitIMH+JXMn(xoCckAo%9PE< zqfXgmqG`evig)k``8G~W2ANPN*x4XIG2z86jEv|RBQwc&e>$GD^VvAmDW6OATBB?-4n@l55=|1UO1aG&Z6cPR>QJQRxkN?6k;!kFCC*IA$@ZvI zerkf};R?maY0$6vZzz+~WGAVF8ZFHvnj{z%(JjfWM0U407l#UErzOk~EG?J7(|b)h z6QJQRxkRIcBa`1UVV2$i8;?5WrzT7jE;VAD zhH8xGrLj}q#>G2ECe+ExXN<&zGQr5mo-x>jd3pnE9O_h%8izvFjMEz!?og*UKxUB> zRMte{l9S)X9;M1><5DX=R6_#Z#wjYzC6ozf!`W$Z@IBEn>AWm`Ezf%!k)IfcDrI*} z*hCEc@o$f&J0?uh@?2c(F27|w%9PE0)|2}VZr zjKwC*(;HypP^W^_xSyT!>NF_8pPmdhp-yjrOf*n9HU(`HCh9HF@hDY6a>7jYNzNdz z?$fTl_vI~ILYcbQa0``ao={w5!we%s+lb*2<`S%un0zw$BIR>&sM4kS;ccg^A}v4F zp-9VfiHZaxQ_wQK&rF?$=`Ezj{k$~fZXwI#lbxm#W(jpB$Yl~u5{il#q;yss_6^xw z@D<9Y;!vXOZgFtBTrQzPFrUk%5>*JsCBI!9YLrdJp-9lKh8ob}Ri*c7N~3Ht>U7tt?9Ui{BT1{r*j3KD~_Qq3R@0+wvwP^9I#jJ?$Fdw`U= zE@&D5vr^VD!Rl0ynlMc;He#HHVvGhn)Ya{>P%f1)OQ{f9oP%amT3guGqC=nl_ z5%DdYfYMY#g?xM^%_J%iii+qJgG-p9#kt@sl%E#wvrtxr2Kvqy=Z2~bmo`F$7N-&o z5sXWIyM!rPo{U40@)Hy02$mReE*eTfZ;TB1Z{ot-*s*ewP_~<&mQW)U7uhe1)+nD$ zn4~w57<`rTJI2B8vdM%Zy#a>_MS_vZZ{O&>*Ehh%p-u&$rMo3m2xhw3X$cjAamjBNhZ<#*aVSzY z7mru6ykq#q2KKtd!RxZQgd$y*IA8bRX$g~r;v)KG*&5}O!51l?%b2s*+qFBe z^|g~`dAVdlk(TEYjS`Mbe#?YedIM}c>Xe_FFip7B@D3h(<87Rn3^JikPCjFBiRKAL zM)ZuuCd|_tVB=7yg4Be0f~DpXcse`f)#(ikcc{}FAQKG~j!i+^go%0!bUaE`keo16 zxa5eT8tO5gqlR?6jmvv6mry1zuSusR)Ck5!c1)T~n5N~)I20*AF%DI#7^LN=IuvPn zE{mL+a%Ksan(PMls8co>mqPJz8uY)3(^8U3s1eM3bCcp=ccNR8S&80ehovQ#i$jHS zsYEjbOG|FIgk8hH-uYtQP!;*9i^Zu#6~b}JZWoUl<&p_w^ac_WtPV$p57O8eZ{lQ> z<`RnJ&Ffy`d3^rk&-T<30 zPj7%sWPC6-m%!odlvSrUFx;U|Z-7ixCmfrqiFylkJW5rNoM3*q{<7Jv?+>d_r~mx4 z-G5ylZlCw3>CM-_4$q$dd|E%;?pL30kE`eHX7@N9^>FT)afdBond)!_JygqPszq;S7t|I>Z74pOC@L5&!Cs&7lS|4_k*uT7b`eC(uSZ_D` zaLk`x9rL_@e*QMaxK8Wc_GNv$Kj&ieFdg-0S5a2m?dIjnbij3()$d;p>)Y30p@!Fl z59d0bUbdU(Dbn9uLG2H#-Q!vub`ALTX>*cC{nb^l=gsc(Y^eS3*5B5*539{FBbqyZYtB2dWbHEAny4>ehKD``oez^JJH;4W6`f%E;j~{M+zIt5W z{Oq5nb$=M-->(jb{VB2HWATcgidX!qc*U=aSNu!yihnI$@o&W|LOuQ{)Z^@#tJ8ix zTafG}p(5E!LP@fhgqmb82}Q|X5~`BDB$Op%$@@>M`}NItXS3KJKHU7``Ss+sei**< z<-^VQ=VxEfVdM5tIUT;9>F!=mr?an%2~0$$6E`6AxU-!iANMb(;2hC8yq$Ev(1P^v z#v3Bh{US@s>(w!wNPDLFeQo6TU(e?=L_5pC{kmC37D@iDy5nTvE6Uv>3(D0EH^;bJ zU`e=FyU7$+_wg_8*PGWD5r|e+VoTojwyy*i$*yl`CH58Z>Yi4D3*yz?r-YWgd&ZWu zYnwZVc5Up!eMhwUA74B7+E@f1vQjGN2*JFm z#g*`qeed{^eoHUr(C-{y&~ItU4ECMFOY#j(pF_SOeBu5jy5c=t((k!_X$vlLF7_8~ zv9D&8H+x%fL7cZ@TWHC%DbXeO&fz8bh9=A*-#5G<-_VO0-1|nC)a#o) zhkAYV!hK4#`5$j7=($m8j4pC6b}Eg*ujZ7udSi4!o%dp6Y{|T9a7mnXVsGLN!R2{Q z@D{FHMqI|03GW(Q5^rh4S>io|3*s$ZILEtZY)QLg56V8_+m^B(RL&BDc~ciE;U)Xt z@g@D1Ud*B2IliFZ(vlhMJBOF#8=5|cd_(y9{mXc#BWV9p6J2CIy??0*el@Piey@ox zs3+U8CbneWHMk_6YQ-+Z8-mMIp5UD}-wfh1woG`};F5St8_p8%8C(!=>B2eQJ!4DS z9eYsrNpk;^(SyoqLNIUYLM6Op-#fmf-_naY^gG8F^jlgogMH`ll6*tc=a6p*U$}qy zi*R%F^Z|^XJDBG9BJ*Mo(;WV4XnEH+#~1W@TQ*0R>^p~->0khDeXw*G$PnH_M`$J74%1t652X5 zM?!Z5A)&27GZb_OkOG>9AV)wYz=!ik>sF`Nk9kHPzWejApE-VBZ`bEf3*8<+zihYi zGegnp@Ikzq)!`#xHLJs?!D?2A4~EsO4xbULSsgwuR8(V4%mmX~!8*C|;$s)PW{!`dbNna_p+oo9Db=yKQ z^Q{V{dT{hbCBNT)x!bI7pUz(@k+tzGUK(1rcxiCi;-#TUi`(ydq;ELsI>l-R|z;fLBmWtgj4>#d)(U-xDb9=EiZFr{$d?Q&Af%{oa z0On!^0p`5xdAs^{{{9_Jeza8WwY;TjtK}_Ky(@32+Gu%8Rqx7Ms(M%6Qq{Zima5*B zw^a46tfdL>%3NFDPw{Kw$OkfU>pLobHC&Ec+EbJB@cmgd_oLtj@5+sk^sejxDesyK z5E)Q-?Hhd_q~bkrQ4PeYqgbajBWrgy3#g6@l4VNd(o;qLazP zVfA=^2cu>$mbWytTrp}ev*M+p-HMk6D=S_aoUC|hFtXyM!N-c11{*6~8oOBe+F)Yk zYwH^-wy<*C`j(0fEDtx~U(sG{9KKTfs))edt0n+5uZjTTE`UD>R}5FX-)^qnc%72R zUqa_D<9f4KF_F2egtF)ZH0SRHettfG18s@I(&b!f@oJ{Hbah(!!|KcV`);e1XDv@E z&s&{RZm$0E>*};VZ1<06ar$?Xp1&#c^zC_l^ZoJsHF?|c-NaFDPlwf|E$*Mz=kKW$ z-%`pD^jm4VLWuh~hLRG(`|bMEX?h#st ztzA_l)upN;sV-F&Np-2JNUBTKL`t|+T`1M1>OysE^Y}V&;}j=cs!m{gr@#NQe^}rA z;(q_-d39LV{L;d(^!yt}2f4dS#+I8xacM955tX^%AC50~=PO+I=T{Bozur?5ydU+9 zob$`k1!+-YUlFeko|E&g!TV8H@*-aVeSN)5dVUQmfBA5(S(MO{H@}8lP|l2uca7bR zxRMl^Z+2z8ASX)bE84ZObMoCYb_e40O7@>W+>KWixs{_o>gXr`NmH-S%o1`G3M&El=kkEMH%}>ZdSt zb4PQW@vZmPIOChI&0&T&;F`mTB#Q>E&vJDjndaI+GSAgk}XCnF- z^7)>*8N#nZb&33!GnuKxTx7vljFJ8#*=NeyW zzkgb7Ki&NNw156^^WE`jb-rEf!|{C0?DY-ORzI0Vv7i*HJUhd?F%W6BjN8;~ldF+uo zAf_ei2GIeMPby0*3^Oe=;S5-vIMB3E-HWg~VVG%|2^YfZ#DOxQ()qMkYTbo8fto^L zzQDamN`=9iVsYkRtHt4(a$z1}tA)XuVsS=ctHt3mx$I=FxD&q*#bJxo0Wd94wTBLf zyp$}bD9E%(-4(DZVVG%|svTfeq9D^Ebr-;@gkdt7^33hwJwBMGOq3mP2a-ZjsHRky zC)iqHu%=j)HP~8FsHRkyKiFDfuuLpFcWa)+?i2Oc548iP1?s-gj>s#?a*BdXi%b{- zR3!{EEmQXbs7e%MT4cfmpekXQOr|_#dw7ozrYRF;2i$?AP!y^u73K-HRv4@)7G({# zRurl!73L4NRv7FkcD%Rf$IF)i-(D_K%MayE_cKK|E}lQTxB2bsrw4D(w`~6|~G|9t3{WwV!Y7n2i z&ABMnm~r~B3jg8bqDYceLnuK?{IGlztCm=T7JoOXiB&@=LF(PhbDyTF4kQR&K1J1s z(rhUD_puY}d`TEt$yVFVw6@8Fq z_%?yN?TZ>N!u+=0ZueicXwk2YZ#Q4mIME@`o89M`D36ELH|>xs+NlF0xchIbofa!n z_WW{q-p)5_s$Akb`LFkY3ETG9S$JH$v`7EHx5H*<|;@g@Pop8 zgC1!<4owCLR_B$T#Akz$GH5{4L3PMDuU!sxY0)V;OLvD!1euQsIHNAT`eSSbW?{TN z=+Uf?{$seFF!|+}u6NLFK}%fl=uAUYWvOiB(-5uEIUS^5 zwU6;h%}y7iflY@f%k*L)670a(Qk#+jh=J0S|0K zC2!GZDpEFemv;M3eMS3S~jHlkrK-V3%Y9Pl~9|^l*XknXu;z1Wya^ z6?!zkJwf-1#RQ%dQ6P)U<+*9E)ITc)RN!f$Jg99;MBjk1a4PV$5M0g%!MR-~YT7_| zO$;F|zhP-(f=>$ZQ(ym#Bi4V22$j``{y0wspBB?xeAALo1)mmCqUj-c+d?>2yU;Ni z7ggHMiv+~T@FLM8&F3!9bvi{iQW=&bxe!5hr0L1GU@x2tJ~7lG&YKsKY4k1~l5?2_ zFh~>pTgXfanc>(@!!)*sQ6_4jS?7&zq#M6SW{GPpeOZXQER>6U7NR%$CWF+g12aCU zS?p3Qpve$5nI1Zi$%H#!6lgklZ_uOpZ3(hBEEdpYh@x0LF3(L~-ZvWsG@$7q{c4L6 z$%T!B(}1RfpvteCK-*)Yr44Pjgb>QI8;&*>*klkl^_9#xN_~fg5Lr#=kMlIJ=`hX1 zFCFI!eFcb9B87Uz$9NS@N#&$4DLk%K7IaL;6^vTTA_zu_v_x|0scxoXjMNG9NAvr$50IJS9E z#x^jDLXA@5o|oU}S@?QIGY3(PMe>l(A>9wni6G_baEwpR*rp=~U?M~{riZShF`>?v z1DFcl6ZEKPThX~EEDpd#h;mpgF3)L>-JFR662MfDcC|5y;-W^uNdQwpKuy;xdbh>MM|Oe0mND;jwDaALmIRQ(>BgS1R&JAX6abOG1w{$GSY%d^&9;F)YWhAZqHM(v!>D1!sXw26ckl=7OXd-ARWO zUax2$k_mX(Y?RO#j%^;4u?>u(P@|N%=jAtm7rtK6%t2IRkv!ycNcTf?B1pM99OIKS zw&}7narOsMna0H%WX1U)L+R&?$Oivutbq8t{B%X6AzH)o=N1TYn(U2ROF zxTsNZ62MdtP}B8_-fc0F(#Et?G6-YI4MiIVWFm-}`U+$mpPmCkc&r-q$9WRSRG4Pr zm5O{4$W(}eOb=n(3PP~jf{rP>UQuLO1i@(VlF%c~u`bUwpH3S|49hVrh?+X6^yIR3 z!C4@aL7m{XxgcpqchVt+*DKnGWCC6`8znS`W19zMYy+bx)F`v=dG#G7MRjQ+B9hUc ziKxtiImu@NPYPv09h&h;%})E5C!YyCDWX2p!v)4?!k#Y>JT1IJ^k{w?g6hAYTFXgH()HB3Op?YSAGoy-Yye0ZJ@g*hLD!uu(UD3Cx!T_ zuXe@}>pw(<%IZUZoTq|Mi)k*tY00O8Pm3tg^bovlAsnk+=$MQvCv8SYK#UA85QCJIOZQ$gC*=^%>e@hBhxOa-Yezc$iy zKuTD2N(MnLxuIy|fJ_82Q(vWwo!fIj2#-~R{y0wpnF@1Gy;6}+0+|X?km(_8gGC5d zThK8XS2=1eiy#;cUJ`nQJDoO?7?w{j#=540sHuZWPcCa0oCPu&)Cq2z3zBAZCmoV= z1q0a`CXY+vTpHA*F+ADKV{8MXDAXvk?iqcL>+{RudAnZZibY=*Qwg-!L}O+&$5@Jm z=!(8Hs1sDna7#u$3urP#XG{;B$7I5tFA6jryejl)ew%^pP>TgL8KNi_kIQqDi}%e& z0S#z6NWa>mL=x|!1vH@PAjRd^GNA1-(b9&tTS5qB*$qb<3v4oooBAqc?BTw{LWry; z^v8J`*mRgv>z9sv8rXD*vP=(w+YZ98+JlbCxVlkqVg$m7@WRj|&BHFwbvV^F(ioPb zcn~>tZ0X6R?Su2cCWJb|aq~g)j6S79a;|iA9+(Mw>5P;R8IJ8RG-Ep$rJ;tIb=2qz z)ZO-FnX4T=If!~Jl81Z_q9b}Hf|RQRGCrwU=rSCDi4fJ89=eXkggRdiU@CY|(4+Zn z2CgS84!}f+a#$=b&rP1)GZO_QfTTU2gkZG=9g}edqt>zr zg3;h5p+}lyU7l+`oi>sfmSb2DHFZ$w$z|<=vp^<;I>BvoLDG!wq(gG9T67(f33%CT zl+YNCZ61`d4UD2tqs+SJKZM_Ny*uo`F7ttst|UY~mdQju3DFW=Q$gC*0U4jvtaBj} z$W(}eOb>krWP+Wq2r?PGFX++y_5#=!771i3L`5tbm**z$?wX4N7RY3fdbK-=C}41%y)gO16#j8W}fgu!_5s?a0Nx-QSPpIjSR49h_@h?_dE^yI>}!D&F# zLEYfD*&uO7i_#%E7c=^f%7nadK1z5D$F`5l*a}8ns98#U^zpD>FMd6vorEaJGMUIH zk?x81RFHOcM8+p)4AheZG8LjA(?j0@nPBHDf=mYQ3wl(v&FI}1771i3L`5tbm*+I| zZqG#l3uH1#z1p3`aaqIQERe|{q^9c`-CJW~rA=$EbP&j*8;mv*&{PmL^_9suL|w;( z09irkkMk^`$uLdBEgAVNpve$5nI7V{83bXq1|3s&J)_LK2!rw9RiQ_kbzPooKe;xt z7?y)*5I1#R>B)s{gVTVfgSx?Qvq9pF7NtW9uV-`^l?i#_e3bAQj%^>8u@#KEP_xYX z=r67nOPOrZ0%z$JqB z13jAGR>1nfqJT?-sD(x1^4w(99rIAY0hb6;uJ$A`T+$#o2V5cur~H})t|cZ;+I;p& z1wkyhfoP)uOal>9Uv-Rw({VHij+KJ`IL`r?2-75-5|PgVm$`u&@mZT zC@P(b5Eu(y4|=2-)#bU?6KErcVL5~ZF;gd$o?O%>I0;}Xs0+L{6C})NOgbdzszlH6 zm~a=(MG1@H*wzslTfnFYHOZ`J#y7oeSNES6xgyb(geb={naC$0I-+YTNV_^7^hq3?i9u=5o`CWH3{J(}NE0Qmc&jOkZ(=^vQ|FbQT-Y`^ z4QM*38~ipKB+h72Iwa>xM&D7HkQdHJ36J5}mT}Qa@&0MG{dDv5)BgFx&3DJA)${u1 z!|`-jZ62RaA8x+?w7TEy9&g49eYko5U#l%;AK{mD-x3^OhB$3f=7wU{{2w9p^+FDLhUqA=4k ze;gp4>j?v8LchP;pHBNPzAoehY6^w<0ykVK6$WdH#hHVx7Kdxfb@HXF+PYYiMD=nf zKU`MZ**(&*m-O5tbwEr@)D5BoB%f54Rv2blX2Kb;I&q+Bp}H4gb;2;yG7~O@)rkXT zLZ$O*uhhB=bpkbo!hC^yk(3I9HO1o0!B&gIHRZxQ!d44|HO1nL!d8pJWpdfcTydx2 zf~(^esRLkIplS~t5P2zCPEn9)k-95jRl+dSGF3akszgDiMd~hqRSCmnGUb`u!+U%% zO_?Y=;0`2(qEJn#Fi)_x!eC9YC~L5_qEJn#Fn_SM!eE(LcJ9_ZX}vn0rnmGQ-d20x z4wx3G`$9V+uO!PU3NkG+VF*x_FwC?}-3y>9QIKho2@`;-gkdt7@|5l2JwBMGOq3mP z2a-ZjsHRkyC)iqHu%=j)HP~8FsHRkyKiFDfuuLpFcPpMG?lby}aG%k`>hSq?zZyO= zg}l?K5;HARbqBamAZl8wZVqs*NZ7Pk)g9nkfv9Pzx;enLB4L?Wc|vz`CO249EYKfla|k>#!9gk(uPVeGR`w!euMf1u`vCHH?-Z){Db6<>h1tmiUUmxP1pih zDG-%Ol_zx{Kk`B~rQ!^NyOI=(!!_jsUBcE21U3cZ%)-`-!!_js9mCe!2uvSr`;&0r z(s8@_vcA3B?(aWO_j&(ec=~R2IBeDj^NW+lRDHKy|8~8-`Pn~DasD90*}i_oj~Ru8 zH--^pKK3C~8Ag!#sSlaTFoMjl`jDv%Bgp)^51Gm^g3Q14AyXMfkong>WGcf5GXK_x zOl25B=HL5}sSG2?{6`-$m0>uUcOUy$aCIC>r_w#e8R6Z>$~clvrGH-0sf;7(R66Jt zoys_pPNj!l(W#6h=~TMt6`jgBBc1pw8h`P;|GGZ^T<6XB9RCi=^A_v;{gS)k$;lL= zPtI))``zvN3oM@>_IrC@MH&_Xw}cb1Wt79wE$L>>2WCqZy$8A_-OhUtbV5)Yo}Sd3 zt_M65KV3;!Xx#nrXXM-Yzbx+A`Pcg41ZEO2K8@=?5;(N~bpqf7W)eXBmdgO10ZYN~ z9!JsuE_Vqob-wQnZVA6idv9<8$TR-l=$7>HxvAwD_CUL*>y>m|4|Gd96=fmqcz7m$ z-fmgxFKc^N-XDKPzMX#u{cr*^2^gRDYX8Cp7_!sWfinrP3($iAA*6OZ^gONxECsgv zUhZjI=ycy3+mbDl-W!|ZXPxYOgImJK=cw5j^gz08+)UwUa7#E5TShq?ok^dySyuMT z(wfo_vkfKI2zm%PQ;c`4o7Fw=RLM_$C130#aV^F zJm>51&gv;UYU|<9(EDgzeTC@I-XV=* z_fm`R*s6x*jl@z6#ZAlAZ>4t7iv>;#R_~>D&CjW`d{9khfbo0-J)N z-oZUfN`^w4qOk^ItHxrRvY|d=tA;|GqOoRTtHxq8*=$3gd~WW$%bT;)HV?540ivd* z>L!903&l;#O}GbMFBUj0ST_#5UMOx_Zo)C}da=Mvu-pd#eZ#hAAh0PI>K(RZD6}aW zYaq62EVd~d>La#lD6}aWYbLg8EH;xpx97UNSLeOu>I9k=s#-`VR9;$^UnFc=tnM6m zwNTu&T-7r0YLT#MvAR>>)k1NZ+>D(TM6MsMDHmxO+^M8sB(f

KnFZD6}aWX&<&` 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

gw ze0ch@KOFD(&#&)Z?RU?|yXhhDIu^K6c8dU%EG#M(TPVrJxrL>lt~@{V6NZP;o5ZsW zaLLRW$|RF!KbL42m=w>FnIwbhD4FEo!uS6CY~pDK_{77EFsiKJbo`)}$D+Wa(<{y& ze(|dpmLxMsg<`5D)F7Hg?+}eLz#_U@26Q@>1r8-8ZzDu97QS2tctpbtFo|Z#awK!9 zEZ%9yn;1q77MP?O0lX}@e^s%VdTHpAeflUKMsHGwFnX8xiW$)EXc(Au104n?$zVE4 zW`IpR%>bWxn1H#I%$Vj<5@Xn7Arq!53OrIZUzQ{@NQGjnrK(E6OscZz9pYs{vr}0_ zS4+}M`ZS1TfkR12`90E9o=cqt4#`;fav9(e4Ku(bnk8#>GMCEYO{ZTf7Msph;E{^O)=L8hNs5Qj zo75qU-la7`icd96if4%!N>r9)((na5z$YGNgi&Rj((!L%EY(rqk*fL9qUhV5sg}Ab z*@GaJEHsPWAsQvikV+Q1T5#2n@a1pP)T;#!g`;E+$yoSu8Q>8OGr%O8WrRy*kft4P zVi+}8VA7cW(m=^PQn8qNX~7^#@i2OmI)u?*G^`0yI)Hp6H7W)s#j|8llEHM846<|s zGy{C9mg=djF#G~jf zG6RWnC_K(^C>$koNX61oF3!`)DMmLS%;;H^l#A(fWu)sQNRg=hvmjZ9L?k9cbxrga z3N(t`9-2h&4_ztx2FIen9#wl|Nius>D152t4We1}4$&wBEGnyI+VB?x5rnZ|*9re_QB|(Zr?Vkn7G9)6gl@jO4LLo`a3pfS~w&VB>qrwRghL_NO@a+M>qMg(H2q)vkD1e3_U zp(R0U6G_5W3A_moFuVx{$%3OIq02OGR%G&7yaRMj3FsT2@Q>IH9-!(YH7n1rD8FGWNknDGD+qLNT=xY7oyN zcZf%s6#M>3E0INX-DVL={DGAVhr&@Zhg2*bX2smTuR5kiLq2ifk$JeQk^7Ak_yFCOM?YD3TM$f#LI#Vsbo2=d;T5V zltT%B<2}++r(;>*P&i5!A{h%`E=W;4%m9;kVUQ!4FlF&hb#W8JsKEl0#`Kp4N|q!Q zi>a3u43ZQNqc^ET7$iw0%xT^8MB+?}Pc=-6XUU=@gXt(4Wa$QI2Kdw=4bmi&#>6R^ zG0mkU#!WoB%TeIbpdM2f1qP{5Y_-%`kfU%Gy+gb#dW%*>C_K(^C>$kX95E@92}9TJ z0F!8z5iXTMN~gbtQB);?L8_L^N}}&_rc$b!Wbc-%L}5|%_OK*bdQ_sYm4eHJ1V8pc zU9!Y}HzJxOvqy$Pm&yQxSQZ2*UKVsX8A}~U=lA3awHSR1SwfDzh9L0 zzljHPQ^ndVxW~IKPbN(nr*!QR)Jd`=sZdO{G+2huq&kb64Jj*g+A4N%G$7!Id)MZLz#XAGgsF*!64?i$0x5)k zbVwmIgs%!^zoIGNM`WjfAN~{_WubJ0$52|rQ;eJ;N%v`nq~q(KmzaoD8DNKd+hh?k zFWebyMO1YdIX|ipLNj9vperINqxfCK~pIG zpdqqe7Ay6Ad9?hdYF=i3SDo5lA8QqeBXzA#36h7*hBV2r+bkPzmuDgRf4dB|L@HlQJaf zz_BBw&Hy{y+a@i8uwR*qsOykDA#oRih7g)TGi1qd7lN(`4D-aTdvBp$5ilc;Av41t zf-ecB9W;f~4;n&hNEwf5tJuNOfPf$3KG9&v>~M!LHPNC#J_0F(esoA7oaJlck;rx9 zqfr&`BM>4Bh(AR~Ss)>i7)nbz#6U*2iII-8?pt|Y*SlL7V8^DmxdkE1hc|;Qh!lZ& zoTs0BA0;jb!9(cG;2DH&nBhU05tmMw5yz03;SSMJ5?+(TDIAef44WHCtHG_ROlTbe z+3@bzEJ2nGZv+#Jx(dSiO*816pb>;t(A6O9P%HzSaPLnnLgs`!178k8FK7s%88m~^ zjj|%9okE92g8^oou-85bNXxWtwbF22lmTNIc=$xPtgjUeiAnZ^q1DuHK48rcjmxIs?8bW9W&5-3nToLKCk)xtY03*EHbeYR4 zK<0usfvJQ#0um90ptFG%0lmpv1hx`jLsTANLli+42X_Rz6of{w3_>SZ1f>;aB&MAr z2SgnKPH6i=ogg#98^P2Sv5%K@o~ zgAkg*3xQm?3t?tOl6-zppY{!X@HADTO@?=ybfbZ+n!A#77L z1k4ER5HQ0Xf-lSLy}UpQp&uPm2n{JKGaWZ{Y}66pg?FQ(MSv0B2&Nk9DrC6`W6(Ll z%b>G@u7+U)qh1Yg!o5k-GQbIU2EH7GUeFLiGiV0o9bZ`y<;{0-eJ|`$Gy}{yy=2h+ ze<=f!;mu&`A;t?HLT3igFlqGtV>sS!&_$UABY{VhCCrFp$joqu=qQPCQ=^ekp&uPm zpjT}(WIAZ;Q>01t`7R^<|! z7*hBV2$A{WPtj2p$*k?4?cEksr6nC=jGH0pz_BBw&Hy{a6Qqui<-?u9R73*;>4<|6 zn!yW!WVj1)TJZe4ZYeVo_u6}prB=m4z>GMCEE@h0d`Tc1ffPzVcqxz$e<{k!oV<@6 z91RHgA?_0mhAbcM5T+(t6v#&)h0u=Ktduh zl$LaefsFWzVM3C0pJqrpe(d9`oB?*IdqrIac;U`qE20j8bi_dj&ESO)y0Ib{ap{B^ zaSTI82a^qdDd@sf`awfT4JqT1&Ko*5stEAHy;-s%2-}pYhN=qL+q3R6una;cScEJS z?lQ2|fa#s62R*Dx>f2ALhaqH6_%qPup!9-;Kr8}A37}R3@}67ALht>>Y2(<3Q&TzGYbtf0Xb1s2+#zgDG$@ddKnmm|5F%?>?i8m5F+C_h0z(Qv z0wFR#{3%u?BoaeuNrxC{TK-~`AxQ_09U*lF*dgu}b%ZP*?hK|P8W7{=M;$_F1}_AX z;qJzYV8o>pX2daM(eQ`hO9I&lq)__7OM!IwOHsyS@;-KOG$7!IxKA_~vV6Ehn3`x& zARmDgLO(jBKt9~1I4y{KkF?X3cm#$Negr~f0r98kC<`Pc5<_W8hZxAnMlq7A&fg9E z`_K1}`}c?4$Ky}?#}99xk57;Lx9<-3?|*&!ZTIkS_vY@+&xfZk`@`{m|NQ#y)qeMU zyqlgDuS0ny+vluP!5?OyIDlDz@c!I z%pny^N4X^X7QRvF<`EC0H;HE%;8Iz<>F_a~jwOLXr&pXmCF52rEJ)^#h{RM%q&qZ< z+#Z@l?+;xm`Uc0Mz@DVzO~glq!k3EPAeu$*5RH;0NM%u3x6_8VFn}5;a7fhmc~Nki zDnc=}(oiM)Fj6>++@TIxJ!2 z)Kec5qbdmu617|wBy&eZVk@Pp$@n=`MUmUXi-H~}@`tXJq?Ynw4~qhOl8)+op{X*L zItuJjq41@mH;87@J4B;o9ZqFYS-0uzOT_|%hGe-40(W9LGHXO2rb?=c44*w!61g|D zBxr3Sb56^iKXXu3B=aUX!0;v*Bnys;gf0^_wP+N*J+vsuj!Kj=JX1m3z|g6az@8!f zqz;m$M?_-kq=AC;M5D;<;YC4uM53IQJx?CWp6DFIo@kORJ}MNxRFI!=7QI8fEJ%<_ z789Z5!!&=U3b}=cZUqV)8q-%AqQD>#imjCf3o;bWB6p}m7P&=hA`~8HI24W&Fo>uW zsf6KcS8o!}GQg!WNa^smFpBCVFi6yLX-VW=&QwZWlk7QkO;-pN{a;< z3TKf!)FF%fDq&5862E#3HL3*;g`;F4Qn7TD3sMvhqc^ET805%9m~^yt-wXA<+TKC} zgB)7!7LY7M8WLM5DJJuULi$PZ&~!l*9z|^rPa^ln3?a&%=p4hIXp+nx5lTm?_)Z|F z0L9BPc>W~aLK<9|P7yvQnn~ZeZv%NMO$ie%mvQv{>slFpd31NpMA=Au)B*&}8)7 zX`ra>=@3Qj&zkTg{J5fpJ<%jn4S9VjY9YxTr80W@PyrG-)FBHJBw{fUN;XW*HaR-z zp$-dz{AhYU%aNr=17fQr&KjCT?F|hgH;1kgd0%5m;7xQVk@qydOyus+C~|vfk}Nwz zDkYsfe&kd+V2!5HmkF+7WWH!POoh}zkeXN!wK23H=x7>2*b0F$vB`xou^d@sL?CpD z$gN>X-#mt;!!u;k%+WiI|s7-Zh)1zszyd-c(Lt^VB z&>bEH=?ND_?GIlm^5#aPz@G4q0((R#e9>m_hlaDr9qN!pZc$mc>F75we(E4_N7LSD zL12vr#8gRLkt{pGBx-MXNz~@hRWf++)T;#Eh#D*{3A_=J@MR)*henaxLzC$5Ny|zp z9~cyO8uHFYlfa(SONKtVC?!F9G$f`@BHiIp)b{WslV0CHB&G3(F4-(R2|uoAVNWzk zW{(J^qf|yupGKDD4t2ny+vjWQ4WR284iV`WDcoVI?5&4=k>|%ZIRZS)FI61S(FZc3!|t`0)vK3 zqB=;HArXnGlm-eC6pbRchZhCu5s7kI_WZl8DSHzAwtJza2FIeno@kORJ}MNxRFI!= z7QI8fEJ%<_ma=ZAnz)4l)IfnlL;6aCB+HNp#neiR1sMuwkvr5O3o;~<<+SX13ULmF z#~BWVqhujcv2>IRQWOuPH>pDyS4v){n@se-^AQKMxAkvBI} zB~?YTH@!uYuq1MCSdc6?B1zaP!F54mANmk3`C-4o5Db!eqavZpMDGrZg6M>cg2tvo zDZ?`r#0?CcItlC<(ogCjS$aeyreYf?NKZ71+#X&Oq(>ymY1zt?x4hwJmj%%|hCR_F zS$tF|e5oKm;VgQGcv+Ajl`JMg$%py|SrMM-9K)Vyk}N(d6uwlDpKunvL%b|VkV=*^LQ_rL z!T@TZz@Z_1r9qNqNQ7c)rNx2_g|o;V>W~E)63KE}7WYDFzbg?6k24$!N6A8@V(BOs zq$nOnZ&HUa$dQXMNoVKpsQ&rq`^WwJ!|vnprw{i}hx_CH?YG^-!`+*^H$NYqzU&Xj z`~CClyI1?&^YLzaLcR_G)|6dk96=TvX9Qam$*Q@drJt@mAl)nj&mePxN6=YeW((zn ziRWf3Xa+bDhLAbo&CpQ}$)<(xmTvZfhtQe9GYH)%i!vQ{Y=>eAV8rPa=T87_t_2n# zbHSOwR6>LcG=j_qnn33RT?x9z#3I0kq+4hlyb<_P&>2B9=$xPtvP5`WQP$(MQRIMV zAixRd{>+Pjn>%L&Qwt3hvJWhUG02?gkU?ezUk$qML^HsNxXu74ycs&mLFWYzp)-SL z7&j}D;?t~1M^``XFtMl-zzF9S$pU09I1|`PsA@27PE-+OHt-^#H#z%2S3*)p@sNW> zfDK7E)xE@2aZ4QmHh3fOrJyr{X3#l7BV?V)+lsOt(^;2_0Y*qOSp|R#G5cp0I0Kj} zs46gQHdF~@9?%k?B{`dLTJHQlcU6JRgPIASs+7IdgSsI)POdT{3kcKD(nGL)MNQ1Kor{&I*fwCbgkFX(%Ad7=H0$&Qq zLl}e330?*y!dnItiKO>5AEpY3e5h0)zzJ<%XovtKoDpm-G#HSHFb0_u9WuzQSQCk` zSi*@ggn@&CN`J2xE{r(IJCuTCa&j;#Q4`Mm4~RFoY}=-V7b(fK#cm;h5gS_M7Jw`hz67=qQrXV~JN@MO@NYo`9zkUTPayNb3<=7Hs64`kD1yue zXM~PY@R<-!fryh~(0oWb4Q)(iChGvmgKuwU_s`Pc3t+-fS3owQX#$l8G=R(mx(a0d zh$Vmr&fSOw$UJZ+;LAYf0*xTEfhN%TP*%dUPvB5!5Wt2L^tyZbv`Fi=DUIJn2{4&` z2}~U{G#E7(8VD*IIz&+UuqF%%dwem%hA4umMz($lWFe6qr7&tbP=RoEqC*BG!kNKD zBFQ~9$K;&&VFn9;JoxrzcK<95z5uog##=xWs63znWG2v6AnQjg0X&H61hQVlmx0U$ z8bM|QO^{_lS_$c-aU-F+KP>QV$Ym0%+h_Xw?r$of4uBNI0H_S01wbeA6@aY(7!Z>{ z7!b3676E4fx&&kvummy>SOA>~Welc$;s!w-03Im&Kz;wr0$%`A0}TS?Ac#Qa0WZOr zX+U|9pocs(O1h_;ba)U1kOje+fG-0iAqqie11|!y;4Fff2}$hvVS3s%@PW}(e>M%i zEs>W1F8C7IItXxqM?f0FL{Ry_SAwi5(Fm|1tRuh%X9T_&v-j7+7-UX#$RM+#tjBcJ z!0}KAfD68Di537B_yU+Js4I|VA&5Zb0WX2d1iA_a4TgFZzys%oNJ{_@oC)|ckhwr3 z$ZVhqboXv$C6qVN#TC1(Bhdt~;q;OrckrbINP{ndse=d?cm$OVJi(;T_Yc4L`aqXr z7KVg9z8GOc6hUT#GeSoxjG7LOOv;?-kO7@(ixtx$Tc6NOde3(a=_k*JN}CYi#D>1G ziC}v1#@4iiV2dHb2%bUa1dpJz!i)*ZiLhA0i7IdGPMtpd#F#6097Q_|gj;yVZ+^T3;cE(4tl zECQksCIT9gH$oYP$?(9TP$z&5(tc0}$kO0UU@EbJfHXuQ$ZX(6KpLDyI4xIsvXnRG zY&=Kh5jI2-WO49D;7b8{2xHJW!OMU|c*|fSk@TM5e@NR#K2(~D&|WWT`$9tm7~zay zYoWn_OoTBY6JZEhdvaztEr%&VIT031I1z@BIpNK)Div`MIx{+iK#TGgq6|hlY~-k@ z6Tk>*Z>R%gnQ$gBmC!&KH7Du_G8=dikOpTTR)irckFX(%Ad7=H0$&QqLl}e330?*y z!dr$i5|ihV1EPTdC!~F$L6Bv_8Nt*-ivgJkV~{z~ApFz+)Jc=u0$d%mT)2r zAq#~!Lq|Cv6>$(cGdhGoF4hUL^tHLyAMT%zyT|wYyFdFcukU{M?&)}Z`fR?n`ky}E zKknZjb{~&FJ-^?5{P^_n;r{WLyEk`lem*>X*&mMg`{&np#p?5^M9WV>&Q||X3-7u7 zCHx_F{f4?xF?r2}%z52J^=l$LPip%$hrL z6xFMjp0&UG?Z=lZmP57q{6{SJ%i;dwk|RKJ4Eg_lHM2BFN4h zqjg!iJvPqguWIeM^t{(u>-B3-+SaJc`1R;v7q-mnSDsh$XTDf@{)1WQ_0U!hQ`6-W z09T!huGh2jeE6!)ek;#goprvp^n8`|muR%lpYM!*2Tb4{N=;s1WI^#1GdrCZx( zeSUG7v%VLXwbS|9LJ#h>*0wjh<8k-?)93x;@!EA{_N?pO{^8=`(RtzP#8oIp0Fo4Jdc>4PC+)P;io*VE7SXZ8l1}q<7-3Igl*3~D^zixdVe^q^U;Ph|Z^-Qv^Nhqn*g#apwa zg)~QAv*d-v4r@-BFO&6`$KAu*kN1cD{MeItH}yY2>-W3QUrw(!?`bR+>7ebF4mXQ9 z>U6^WmX0_58T0m}yLt0b&redyhuXdSEgf&(V%YhV8!jC%_iy_DXF1C`-z(>Q5;}X^ zwp%*fjIfx!ZQIRD7pI&5P_W<9@pA9xtw)*Xyx-FC<}H@9r?zk2-AT};1Lpos|9{@C zyhc?=Z`*E5N1N4KO2W3?=9TH-ZQE|?aJg?Y&LHD_w_7^gyu)JZwrM#pUAJ!j7d~n( z9WVE8`v2$6iW@6=<~HrNbhKH##msHmZC<%ehnxOvxhnk+r`vAnaI?OnPAA-N z>3F%A)Bm3{XWmiCK1=s9-yhzNxXD|!=h86?RY#puz3I|Hr$1Y))**(@hxV+ZrGw7< zj6JD**QKN8o=*S&tZsR!y(%yBnTiP_-gD`gGsnr%QRh@|x^&Q7+j;+?hAK8)I_SL5 zaz<69E8lhLsJW-p|DP=_FU*HT)M3k|Ll(*oI;D8erDINiwpg_e%FZXM_S^X%I2O>- zG3RZDo>RT)(m``Sr~iMJwzxeRlg;g0E*-KEcF-xsdoCSw`m^Pl-LC9>B0ihj_gp&W z%rW$wf=z$3`{nyDRyw~~{MUGs@cG+*e|-CHe>nW(avbgXsOc=9a^!({1VxJ%GfBAH@A+qy2 z&-i}-<@>jl|NG1DLc9o{9oBuX!=&ze9maIu>;CE7efnPa&nsW|FDqa7uPa~oUst~F zzpZ=S4?p4puS?J$e#GTn=L=Vs%nv`VteGEvTv;?f{J64ee)w@^+5GV1%DVaC$CZWi z!;fn#=Z|YE=Z|YE=Z|YE=Z|YE=Z|YE=Z{3?%p>COFw~5g!Y{;g!Y{;g!Y{;g!Y{;L~1)h|@A|!at}URv@AvMxwuJJ|-??Yj`g>owx`wjm-@E794)jCT{(JXideA%o zvgase3!f&y{O_{stoc^0dc!^cgYPrs*XPBH!}MHh`UkC#`%h0fUmgGSWq+@b;P8so z3N&lSiuLA4<*EK07Aygc8QTF@EqMO54=1>Dv1N}C&kf?Re}4XY*njUe$BRd==XH{5 z4hxk)+2gCJy1uO9>0KxN4wuQfqCHK2HvQtF`KR<1nCYkVM)K*0vmgt-`Q!fkf11KH zR)>v^729{76EXhG{Lb!&o}En}WjTWkH@da6`=QU9jX!nA*6znHy`FzcR?l4HLtXCd ze&~7m#Z=FKsX6t$ITr9J&$|?Q&wqG*YyV?66Q(^jzqS9djpXMaoiA4Abz64N|7Q9^LZNy3 zyOo#3^TNgErReid-aT#O*8azyffge+|7AqH%f0;%K08bdlG8uc)!Ka0sm|vglj!~j zpVwE9?|GjhW%D00n{PV$WN)!~Y5Dxq)y|eZ*_$3547%Okys=Sx+==;(jmevjJfCqf z*3(}uwX=a6dmq_|eg08j*ypXTtL=U0(&zc7>*Lzl=hnvFM>cA=wm$vcd17robH~o! zhn`QlSYb2Q_&}FCdmnmUotctatIs4$$=Y)4dEwy$dfUeCN1kyOufM0_-(24FCWYAZ zA70hE#Eo^==$O|n_AV8le_CoMr@vb_v^MUX zUhcT{%(IxS`7Z-vU2g4u?AcxIu$~XmD6{#WFt^m(OZ>cBz`1+&PXD&I%$H<-^=bF; z@$~te*LUal?I-u=FU=&re>&pg z_A^`9`9}b>1ZetiYHxf2I03W-XdB=JFmJM=2Av2B38oJP>5%IK1wc!H*_}8Ah7c4IT<^z)3#ZpQS3wBE6%pD-j8S0( z!xb5(zaAKf&SFR!Z7#?wGPIp=Vwg9nT_??dFEyhOqJ4dEdOQ|)c_7%nb$F}3VEcIs z>f%7Kf9v?u-_5mG?4GzcXRvwv0sFU(KeL6Me*{1wz|}rnl)&kw&J_?ra7BWq3u81G zfN({G>95B{p|22^`oDk+c*b9OpkxmSS3|FoPzW)xz!0Q43?OTVR%{j-w zfBSh0?s~v~|JL!Rzgs-LQ|UF2KVbjX@n^QM^N#>11i0RW{R?nDWUT?Vis1Bj!>7P_ z4Q7oND{+VjEf*5qW*g>1t|hW7P9>+=PFmHnQp^t(rf ze!O7i_N~Lu=F9~!`t$?#ZykU7yXDiH`d_L3e8N=zJ+B)^Z5?#VD zeEZhnFA8Ar=?CoJI{x%`=O$2`-lz2D6H?a$g8f^^pV`9BKLVf-;Cd4-EI7SZ-2j_K z=t6Ksg0>4T1oIZ`O=0@R!}4R=m0kFX2-9DWi$Z59CIz?F;uR5Qn<7;h!BEK19>~Sp z6{pv2^wWewj(@fJs!Klr;EDjVKZ^l4z1Fw>FBQ-eT#;b<>qP~8if}$+?K((La7BU{Fi?X5 z2!#k&=70UovXvL2^Z6DVp)COS-CIYW$_Iac=q`(b=$WN-%>u2`S!n#vh&%# zb@-$9*ogIgYf(N$Cv-q?8C#|B*2>AH}JRkJiz?>22Q`j@9i&3{~?0fhW31| zw;+9XG*wk@XiW9lv3*9DE$1!98F{he{0DPbN?}i`pQpw;UFRLRL#BW2z2(fXd`g!+ zuVu3FP=1}RcEgJ^%6GJxEH;#g+CHPpmh%?XaxG3N3CN6au2%h)dMoEcopqi6VEL5k zZ#VV<8xeEL#se}24IMRT#?{0DQP7H5>~*gB#{ z)aDsoww%sXwXy!3MwCVMhStPuw)iHZ)l*4`^I;+0fRh|BmwxwJer9meE*s#ET8*KbW(q-%)Pk ze5A9e^B*jqG5zg1|EpxZmc_=kzsr6XCsc1}O)U0PDB3=u$By$3=dx*@@${G5isoX& z`47%@TBxenv3W#^sO>X)Y&o5&W@F>RUlK+2e#XLLJB6IqK=%#j4MrJwvETd$a}0|U z4oG3KUxE=g8uuNqWiY=Oc2LxAcj2ITziIz-!Q|U{7}#|_j}2!5s~OBs=wRT*e)AtJ zN~+jUZQ*>Nv!e4KES@m^<*L*dzhHbiRsKUCw{P>f!YVjf(@P56Ct;#_2K5*y|>bE$fF|?i3z-mWeHt)oofoXr)Dn zPb%ECe$?geAU>&X)A~UxZ9#le;jYC|Z4+F&kMlq3s9l>!)isE+E7`;9_H7i)-u&!CO&#T+Fd0b(~XrEWOadF^cx-ayp(^Kc6mrWi!){nT@Cp@++?JQ)K?O8wO za(fV;Q@3gTpo@J$d`{V(^Y79Q zw7Pwp$CdSn_Gx9?HV><76z$XM_AQQE4D+S#^!<(2vDZirJJyf5+#npbEZr<*mF-zS zW~DP|&#BwAe$eHnpgpH-&-yVd-9URz-KNDs?F=8%g$8ZfJgBTMl)cCvRkm&Ou)5~Z zKCN!w=5b{`qJ3J~w#~!p8b$lGx_yh|7Q=j@JDJZd{RKX^G<~^6{jsH0JJyf5*dWA* zlV+Nag+TO9Z5HB$MRfK^v4&L8g1MN9=n-&LUE?3+SI%w18L1lfRY`FHQvTd7()isCq zX?6QHk1OjD?bFJ(Z5~$FDB7ph?OPo8+7(Ork%s}7NDdp;54hMK9Cj?NEHqVZSwG}* zSJ0kPwrBmAi|s&rO4XM2LoRm#?I~q@7RR)cd*SJk`!UDt**vDI9h4o&9#pk!^Qf|( z&_1hd+vZ_at)YEZ)vnE>%KAh5tg>y3!xpo9sV5a5Zy0esw0*<+0hjy2_8m(n3r$s9 z)(=@}2+~u^_N*Usxfe)JsoJuB$VwBCo>I1FaZEe1NA#XCdp3`$Y6oQpvIkY|+B~YP zC$!Hh+qQXFRcmOURkdsLsIvahKC9=puRiYH@9%#5@!{#|@cQoj>zJlv^S=w}-Phys z>Cyf!q{`~^@kGm8`0_FP!Y^{#2JgGPfiLfbz1e+Nx9G)ec1Pc``m68%$stv_+r@pW z-L7s#PydDP)>kB2#cmhBK;KmBc6EcksTl3rmfUr53+`Ep7vNhK|NZ;@{lop^FRD^s zSl{xSPrP-ufrSl>_}dD8Vf~8(Y^wQ%4a@;HRp!F-mfw4Qi|<^Y7x-J&@4T+Le5liE zmKTd#bW{2pS2wzwy5G3?1$tTZ8&@~zWkqgW+mgF3Zo!LM^akIsxSf86ds89WwXNW; zi(Bw5Wq1|bb8!Q{r3$Zcd#-J<9c$3m$*T=(FN`@uzNrcqmbdiY>s$OSwaDN*uW#_T zlq5m#yu5|?ElgWE>+1fupI$E8_jj+-FKbS}uJyNHzkJzWeMYi@| z{~TWfn}2=vhnGh__JIwxtvzANhJIh;Te)q53OMhkjek4+KI72_U)fjZ@Rf~q7GK%8 zed0|Xml=L|`WBI4yKVctCmUR{WcSq>+?Kh0-cA0R%IZ4t7NM`~+di>yW1YpDPQ1zE zvbe6z;nT&IejZ*pJZN8QaIvjW=Jt6vZEPxQn88=}ZJ*dN!(9hfD&0Qurk%?SUu)Av zQEySYy>0uvx_w7w*vi~K?0FxmUJro>#bU>$pmpo9ErMaaqpSde!#_>H%|i%(m9td{?2y z7v8$2+$-BQ&+C}op5tz^cguM`G#nz^MAtoztgV)9rE_C}!@~}o^ z$8D{*e*2mbjWYMjw(aw7D5@*_%Iv+eZ~MG{b#yc^8D zvTggkx_z6+70TQ`@0N|ra=y~58t)Ma$L^S2jkU$5I)SaRZrhpw4Knu1uFcc>rMBm= zTddu3+AaH*nZ44Ii;CKyaeGshv+Z5SWY!AYJnI%;O+DFtTc_P%?3G=cr`2uSI;>FR z=4rR=TNd)Q4po0oNI7SR>}rk8H`NJz;j7oSCOw0Uy|Qcbw0@cGIqVi|x14s%zGY^w zwd1^^HfY@5ROM`Y*D;y30yodP#aB~LcHh=%HyC?m*XC(;+qMoX)VO)tRr~(o+wQnO zJUspK%lsM*N3O$?s)(5YtsJgzqGzw_k91$#cxt8)|+wN7Mx_y*89;LaNB~H zfPeG`+_vB);6Hi;Zd>pY@SnT^w=H-H_|M*e+ZMb8{1$I-HJ$>@P zpVnzv3;X@;8v(4(vIaJNci~L?*Qnd+t41zmyLMR%TUOWFRp(xC&X~`#2DU6NFIJyb zEoxC(Zm4Tlef9b2!^^Kvect`|{kbsz3WfQ6JbZnB{Ce2GefRM6{#W~JP^VWvJncTL ze)aF(KOG+Tht;ot^$LWox|K-Eex5u}Ii2n{M{J;0VJnz2Q!xsy@ zIW6$`bU1!Gv#eR6j7Q%J=@8%cSx4+!;P+p@Y|-HL%geVY@cs2$&i@^M%jv(r_U+d% zEB*WZ_v%^y^4BNjHoX3%T-WP=`>_A-`-l8Z*8dGP|NiOom#62K_hxO`&#%I5O3$ls zso(P|Tz~hx3KzvaufmmT&#UkVqUTk3GSKrX+^|!x`ttoZ>EwY!|{Iq z{Q9oF6g1wv6r|t06dc*S6pY%u6#VO1>NFUA99&##or8-@t#fd3sdWx6F160V#idp` zc)AaBF>rCERsJomw93B4l~%d8xY8=~7FSy5-S?|vAMch{TIb!;O6$B^T4|kkODnDO zZfT`e-p#*jqc;2geKGq!-M>6SSULK(t_1V8t_1V8t_1V8t_1TsR$6So_zcw6l@PqG zE3NWw@pP-aTU=?CcZ(~n@ousEuCZ=$p*7AeF0{tD#f8@Rwz$w5+ZGpE<=Rr;UFF)+ zLaSU`T4&!@}(P8nW|0$TB66wQhkqfl177{yV4 z@vQnk;CkfC)A6|f@OFMb_~X~dU%o>8zrXm0(;IMC|J}Uc;pyp!_5QB5Uir_mr*#i6 z@47r6Umhu(3*tXwjdu^b_rIpUHP=(cw_Bz+mePL`?Kj7#FR$-@`}}G5y6w{3R! zzkGVR@Gc)doOjFKgvM@fpO3ry!?V4JD>j|q&l|gI{itv5A79=)dU-DMaqMBG`__;9 zhjiTOzlJx^T&N{=+BU#n>Bhx@fA{XCIX`_K->n92+&r+f zca#m<9$C6|^U&G`(mu6z@8+=w_OA=ChqW-f^T;kXcJIRLtJhqoCj!H-xtw;bA9cBj zIBi=dxsX`8Z~eHH?x8=gcH{bimwT4}ywZK^$E|cL{du(;7YDXoa_J6Ha^Qg*HxDfB z9c9n5N0x5gJhZlfv`?+wyLoJBA8DUjx^?r=+Gf%|wRZ2~*u@3GLKizd&L4fr<+N%2 zpo=ZUY1h))LSN;!^}{ZA4*hAR`__-U*fR8|Rc>29>~g2jpH{kWaa=q7NA;+2`!bW&3EKS-Erb$kHCtKC^V|;?TwXU+P`o-*_K>edV)h z{h-Ue!)Mph*+O6Cw)MkSnuh$e(tYd4UG5k1(<-;EAGXpc9@XIAdqJhHThw9o9l^{Z3Eef9YA0k4RK*byE>X$emu^<-)jU6v&D=#)fKWR?gpI!Yt8z3)vUlmkHt#n9SPMkO6N zc%0NB;D~yp)fqB7{2@$88WhM#AcfKoUJB)OUl9*MvtTLUM<7HN5CH{W7Dz}WhSU;X z3}i$gMp>Sd|G`6~K>K zJn9UY9sUreCK?pTM<9jL4_=CK(}VIOfrr#4{0M}|0wSQ`%K{0B#E@FTi-C*?#4s}? z2|vFdl6DS$fHl=*qJSm-t&^7mj`&m9x(ITF$52|rQ)HdX-xIzvq>YQlfF+?F12GX` zbd-kF6rMxs3XhQ`MPN%=qv^=Oz|jHh*TM1hkNs85i&2_8Ei#Vbr?B6st`gmcp=73kE#xt8Hroix2q5^BaR`9 zhCc*f5=kRXv!p4Me$Wt7L&}Dk&Ko*5stEAHy<@W?2-}pYhN=o#n{tN65Tz zXE629fIu?hAcSV{LZDB%3vpVo@-eG)_KTbExOBpdIEE}5{t$dgARB=cNKHMQ}P1Kbbc&{;SwNw;BKRTp9KHLpCEr{ts`4JdW z_z?(^1;n4Cqb!nH0Z*wW0aD*oTGAl~GUD$^8IpA1rEa0@Su6wW5ci6P4DiC8!Bj*8 z0_li@5SqaYA#{T+$}AXh>4X_^3?oMel?{I>=)zR`K|@FlDdRD16+1W@5b(pjVe&!< zo0X}Fh7wu3a+iXq5cd&ZL_I|s5Sb(X z6s9g(7)VJZhSHJ_F~&_2&XR;K?BWd!SQ1H*#YBM7Q5wieD2LRQ4mpq%fgI)K&UC3e z&66ZR@FT7q0*?4MP+ADs;SXV}A|+w89W;f~4;mtCTmFX7RUz$JECu|C>=X!yfPyaz zsUtLo)DoH^%ZR{}vOLp?NB1m}0d|~TAiUhG%Yc0NGnk5~Lm(Y-5K1#>A(U>AMVUQd zj7ulXh-1*UDY_((4S^Iah13rgLTgAFk7=*i!BK~RAN~!K7DCyqOik34$l8^^6f}j> z4;muNhrbkbRY?04O94NUdcsSqMrk4-0t&t?q>j)SQcGxxEF%I>OnD~Zrx`Ns9Q**Q zpnxUve$kKuDeIjV?wS=b7dQz6>v{&#DX;8qD6Sy!W4T#JUe+p9+{k10@C z5=oK8M1avz8puf~ht!o0Igpgqax8uI@YV58U-oyuIX->4QuNOcyLWeQ?%w=-c>1zG z9PjtfukVTl=d<{&I8C{<;P2i&9gk0+eJPz5EkQp#eSP<^cLwDbeSP=p-*%t(cYpW! z{&D~Qu={xY>C4l@{qv{&hqvz@cJF_EK0ZAH@Be82v$yXK_b;zFALjqTzkXTz{jV=; zE-Y?e^?zos`gH%ie^`E5v%Ct8i+cUPuzHo{?UwTO*`PRpEj*ts$_Q%qD34*vQgRH* z9`i9i?H)d!+TZuzllE!%(hFZd9}m0xUp^gQ-~I06?*0AaFL%?G^_;B#n<}{D?*8!H zEa|gdkq~tu-rPSv?hkJt_8&u~7>Q9A;}1!ULv&#b<*3W?=IQJ47HVT4MqP|QB#QXj z7|Bt{F^!t=9va8dlw)KID~E~|WF$#blA(R9t;tZ7rYLb;^`cIq8mk2f?5&|FMV)-V z-D&pL=NG#^oo~{Du1_@(bs?5}nTDe5AcY?zG3sJen%HnPhH}*9Snj05)fkCU7o*Zc zhpRD^qmaY4@}+zH5pu+FH02oC!pcr+1sO@wlw@chYilwTr76nDcGlKpBuP_}p*^jw z$xxI+l;V15p|_^bN5?)s)iBg$SnOmPh_WmSGX_%BrC4rY!?hTRQ5R#ea}C#GAVpn@ z<%Ts}i;)Zqt|6=}{R{DNJdfHL_aw+wJ+Hbpu2m3)&2Pk~=;dGAk zHFG3W_U#lo)Lc}zWgky9&_5n(q=9SVmrimMwGRJo2rBbWPt{RY)o+Ulx)qN#(n6kU zsE1_;lOVS>0_#k$Pd;pDneaV8Ig_cVx=tf6UudX-=Fv=9^5pK(6*aPTvQRKDX*+Hp zH>w=b(?jtkHPSwsYNUTORF*!yfn}vnTi@2;Ye2!j!F{U1l-VbTGBwqrLjG=uYM_4| zQlWv$r8;f!{W}wVh`1yE1bQC3LcEn$tcutO|lP%oAVVe)C3fk~d* zdiqmRj+UMjlKNBT!Y z4K=WgU((~I#$FW(-pQLeE7HKWX{xEJ(ycu2On~VcYM^tpOarZBs|i;t=@dZ^7MGp7 z8Kj}zk}ju_-my@Ko!&f_X{dW;@TRSAYS`78VBX+qS4YaclQWrmYCs`*w*xiMJYJ}< ziAR~IZ&7SFfO)sWltoVu#g`PacSBSo{o|!V`t(wnN>47$@9!m$+j_V;mG|(w1zsrF zH+;(6hJCiu>r}|!ElD-dK)$L*_D`A${@qfif`57{zSgs+Ew_X<(!vh0MtWG5dlKZf zMqr%@_Q^XaEfc(xGntC2>y)MMcAy5D#|t&kJ-VXehF`s+V4l96(?Y>KJrrM3BkiN9 zM*2rX4ZV3UtEznTQru>ZY@Rd}{5!p5+&dsGp^!g0l&Pr}74mmOR0I9%km~<$?p&7} zIg%`mmZ%c9WVSXtJGZ{f^kru6`(wK2-VY(u8_+;9S%e8BxB%EC>FF0lWWvKE!=0X) z;V0tXXu2x=^K;x!B*7#LXrOu0qxB1&G%@SsUqev+7JTvgvht^zFjlmIEny)ooFEqM zU|F$3yKVhw`w}LyuV}0@v~LdCO#;CSYP(naDZ!ytE=kOXtpHA19!9W+rQP0dlSxq?*^AW$WC9GS4{BJTnv0J-&EBjh3!Dk%)}*j&Q3)xU@_rNz^DxOK*{^ zNI2W9MA5c+i)5W7dOQhDz`m*zCy8upg($Mk9mzaOK;x`TKl6YX3xOgQK4GU1+1W~^Lj19r{H(?rfSgA^^DJCl8!XzSX60-9$R ziuTT3sATbiMZ-6u0!LFHT=tXg`V;A4CbaL@DKe3F=&MD6qRnduiZ-turYJYPq0Z;i zFPk=**G?LcdF?Po=D9XrfBrpn7dT=K?nM0 zhjKHpKiK}MU0Au1f#*>y^~AXdiu`MbDYDNUDjlj|*znv^%RW05&_6pA(!eCuP5y;W z8r#2ypd$bLsV0n7Ft_}@oJ&wU7Oh}YV$l<*KNerYAV}>DwK9=??w5@fDcV1Grex0B z@XibcG|$Y0bk96d$mp~}k$DXz6f!pLBZaijOojB%3>9r3daC-;ZC!i{6#3_V%kW50 zm?Hb!p^}->sA&Hhq5}FiK`IJRcd6`CMgBDu3gllyP|*VVQ%x8vq=R-Wq=j}WsE5fC z2A}#nFv!!^$Dc71*@w<5Stek9rV}MY(e}9uWrhNpXJ(2v&t0e)ix>K+^}%O;^V(sG z%=3q`j}+}*LsYbU4M9N-k?3cg-*Xoiob>d|sKp za{l3DWFqI9L5h~npUFH+V*ekKzo>s0Y;KN$*Wo?R%Qd*+Ek zMyC~u%nRD$zUL?p6f`#NBZaijOojB%3wuB`lgwC|Q@8r% z)8@Im+piyvfBdxB-goymx7+pI_lM)|xm$f)ef(~}d+GMaO?S9nvG3pXcjMLLdi${Y z^0<3>`z3Xc>z8hIeK_vdn@^9&>(z&c_1)(A)2hEShob*LMPGK?&Eb)iy*V7$oBctp zK8RJRyxjc9&GU1&zu9&VmDzChQ-mt{SP6p7!@JLk zhm$#vm#^O7&xxhW%gyIgsdRmw2uytpfGmIzM?eKY1hNGAGz2Pu0gwd{auBEhh=56u z2667|WnT$u5U3Jh!ic9~DguTwAUx(*-+RR~Nl={jH-R2e|&r0W2JU_!7bl}tW{ zmm6z+oLIWL+XN|)#MGwC7q<@WPY1neIJAPbPqAYlKH`f~gE=mGYR0bl~8k0tQ* zs{o)10LdVpfvE%#1XTn~5a}vl7*rV`d8DfVK~P1&gp#fThJnez9!zqn*sTx8Y9Ae5 z6|OF~o)4qK<+=MzdPse_eIbQ#{bK-R0rCNa>mO2IZeK_qT>lsVCP4Z;0#CmR0IC3x z4B{D>N&rDnMZg4+t^$TZl>w4Rx(W~kRRl~Z=_+6t1{sb&o?bP4doZ~?^8N0ew+grG zTiZK@<&S32eUdnFmp+}N-|t>;x2IP;`?p8SO8#N_>0iI>K6m@>KKZpA|5qQ4mwk6Q zyzaZ3m+ksEdhPXcW*GlV^NS9>I=va&t-gBL?sog@)ulwQ_PqCIZ(mREpFO8DE>s$J z8Bi*1YSK41mo?>ADrsuchmwnW@~f1#H07CkSxcoVU433}w}^F03;AtRS}8HQpl(w;7-*ubq=?6CutCXpg_BHLtM;10#Y|Jf< zc@|5j@N;MXd~~9QsbR%7E2ClBR;lI6lp3{Fpw{__{+BJ}exRxk^!`r_KWrR+JTAy8 z{-%a^p2pwq#?iy!avb^@xwA8u$KyIQ(a$$J;tYe)idl9Zh+B3Xj9q)_!jF0$Z!$s4_4umnx&I59cFIW(vm8(mpA+sE>3bQoyL*0%v$>hk|U>-8e zI1sDMG|^T$dS#v*ObA+W$f}?x;tEyfnAXY@$38k3v&=jgx6C-vW_jAhXSpxh%7vxi zkXx|aQD`Ew9C4D_(RgULn&5%BH9;PVLPvSdN5B0Jg!51G+T3bl)yb_UaH8e%A^hc>GP9EeqRaUfpJ zSgICwoUCerrqY#V*(*Qv`na$8dR{8h`=io_TCAPFZnir97>&(ty0;OVt-`<1Y5ylxkV%mUsKwarRrS>~bLYC|4~UH0k0B%zsy+-f6v$SqGE z`!q+NT(kj%F>HcB7{~ZP2N7Dix?~zM%P|Yh(vVY*G|A-1+C-bx0uIC~yEqW9%#%~& z(vl~Ktn!Rxvp8gxCysq|FlL!~Fm9P~Kwld3>ERz^urF>fF=)mix6XeB@%g_d4(*mB zPBJ?h5A9YHJP@}g$OEyB)g&rzTGr83SPCw^gyuO@%qsV%DF#m#R-tHK0u$|)A5A(qVSR?Lio<_-eW05W$Bu)r%1#6E zD!H^wR<*F>WK|0^kyVa36Go@}ja6u|+K{KheHHYp7J_`wWfy=3*|^-9~+2MW*mrBW*UrFd~*7lja*U+ z4Ow+=VEN}K;Xv)n%@A=}X%Oj`%#ET=jeAPLL0C0G9E4YMmMXMRcaX`d7HImJD)}*B zX3HmxPL12jv{;UAO^}B+%aJEptzbzX%E4XW2TN8M+AG*?B@06~`N5=9Bh%1MH9&*# z$u14TDC-1A&lC+TH~G{6Or2}WvQduWn5P(Gm6-NMj!x+Nc(AXr)@9!Fa`&s;}9| zC8f}iRel$PT^dCCB}=7fQ{($m3J$`m3F08UvQG{q0L?gLm16*!Y5JL}`i@_imeHq5 zj`G+?8RC{5$HA`tNc$&UVVy>Hokwo@Q{W;Ta;pWJ$Sg;kba;Y2!_x)cEISXxEjtdz zt|XaFZiOD2*{vpUBDXwwCX7$8vgA#g%R)O4tyd!g(Nm!(5MQt$LcKJ!(vVq>SA`WO z+AT+#WRhz;WyXP6Wv0P+Wu6>N2wHK-swNT#6M**7!I)*{!MJ6{i8c#2J$=zuE-VFy z+;Y4l_@XN`ky(y7$?Rx6v|CN^K-`)j4@IG)Jof1!x0+aWa;piPXt_LjCX5fpFFO#% zFgp*(v1Gx5EB)OSBx&Vi!kC84!ex&v4I~NE$&qnrvmC`S<3Ox3(?nb4D9((f3LW4- zAk1%73p9~co;dc=p}lH?hZd^|9FSdnwSoqXTvs9tIR(ocktMRp5hhtGnTB?%0UC%; zW@#W#71P(rGi;1BN09tX#swNVL*2)vdJ~|k)%sd#k z%sA0zdD@lCa`0sM{#BTmRz3vm6$v=x7A|)bacH+3anjjQcxbnp;DNX`K^}-*b5^T~ zRVTNazyT%Ugz=&6@)XDpgfYy{19FTnSP-F=t4pRKvmB$@EDacq?TcL-_(@btPffFs4C(nfOq3vn|2xHg;foQ*G2z0%= z`gZ-)t$y>gdG7A^>xbhX?;baYZrk18Ja@;(Zhv#T-`stFxU9*qqd&P{-+eFs!M~(V4Bt?=UVVMHe!ky!ht)cag)Ug0_PaRG=&%p2>%O!|mN4ox# zi>`A|jZwz}%sq8DNzirfu`%pO*MD}=b?&J#>YxS<*4$HvlLTGo9vj1sbftX#E6Uf; zkDFt6Q!r)coE>8i%8P6YhA0NYybf;vTr_6wx516H=$LK>P(tYXa z!->MUFFihnAL&l{<)Qo1(_{2OCDMKA>BEVF?n{r4;YYethI#0|^z;~gP>FP3dirpp zp!?F}WB8Hol##!reBW+9Jsxjvx35K?*=HAs8yK`A^-Fi)QXy_(5Ww_u_tb zfw+O87C@>r<1W|zsaSJ04DCnF#C{Q47 zV33PEC{SQHRPdlcg}8;02b8AK*H}Mx+wJai$;bU!hsWT9Or(8D^5Un*=p)T3J!i=> zz~*yj;o&j(P>3{Nc=&LjFzX9XkI_e(Q6YiqAMYh91h0*5#-RpB-b5w5FVzA;G4xP|v|e=daGa1Li_VU*M_N-p z71w&v(J}NO4r#sU=;1g)>qTeB*dwj8$@j8({=VeXcVwgW=ooqshqNw7UHI%6d!%(X z`K*Erp!p10baV_olp(Db9X%W;%=MzPW9*UE*>ozS^`fI==s_IPdePCtae~&1&W^E1 zT4&R#jMj^ej-dx}Nb5yM561~wFFHHM9%-FTzEAu0k4|}QJvxRS#38NAQ5QZt#vW;% zO(&}$1L%ajwjLcr4`oQ}a@2*-j!6j^k3j6Kqt@~ODi zi;j+=2XRR2MMn?E30f~YJH{SqP01JiK84%;?sL%(Oy-;&V-NC>+6B2wA0C5`^rrNi zqsf4p50YhP$Jj$1(tFw2!+FAZFFQO2AL&ggRbKC9XUEusKBV`uvxoBpy_X#xgOBv4 zq$;oXva@6CK_Ak4+1bN+g5JvxkHJTJXLIn=zU#d5+kAG6J?KMv7vwH|cnm($I~!GI zO$O8n`E5Qs#vbaB-UYc!A0C5`^v*_=S(5=ZulKUEW9*?0>Amdi;XENvmK`30kMzz) zRUy5XogHHj`jFns&K}Ma^j>y&3_jAEa_}$c=Xv(0Uw~WiwDx~w0lZVrUiC%Ja3_a4BqN%jbOHPiF2W3d-B_|K32|6!1 zI))zUOp#Pt=Orh{$b&MZ^OBQ?(*&KD934ZCbf&C}zn==8fLwXnFE`4|mKGK^4YK|rYYF_VUXUEt>9nyQ**~584 znk+j!1|R87K~-MwWoO6OgFdA9va^Tt1idF8PV;v8we8Wj3c{oFDWAXZ(tpDt0+{nR z&l+9+V)T}0{2R^9g(v@gUjA3~1q1tqyyp7T58wcQO91>gNSX;|oWK#He`93yOU}#` z^A6!4k(TVY>zE;?AHV^AL1t_>mtO~AE|CbIRNPJ}>`s3Lg60%3OTn-{z%b;i50e%*EBeKm0RR(eE!k{i{~T#~%-G zze;m=_x)vkNuReDkx)wP#LH*+OrMRdi z&P*_`?oThX6bCJHYJ!?1Ky)c?*Zb2yxN+I7+t>Rg88H9g1eovZ{A1J1Ds^sxo2+a( z-eLzQz&s7g@s>I_!Hu`K9Bi3W6I8yxibcbMlM`gV!wb&U z!(qX}32?H+3l2_+%blDc^F1y|T$k< zB<3HS0P~EPe{8yNrOr)olRYlSTkPNjn6Gg;-csi#xbYg7gDrDvg34F89PE^HhffOr zGkpSce0_Mhe690e=>LDW-rk-5&DG2Q6n*pQxOqOF-Z%QRT^|mY|2_I{%FFKa{pp|V zK0NO}t6y{U0{!{n?sfb9&7pff?DjV=kL$y!>gIWUcijA`yIy^DI_~rV#?SuoQYu1; z|EgMR*mp=VrLhmVwhEV0n!3K*?Y3`UG(+4fT}*3iJcilVB)rCOSuv%t(QGWMq-|H> zQc6>qG4yMzcrmT9@fc>`9`PE(WyO@nMzgW3(xfq5R!V6qGa1WjX>AoRrZqMm!|Z!6 zUSqhdn9|s243|~X{3={ZX(}@rer**mrZqMm!|dxoUSqhdn9|s2HkMVIG=|GcDNSW2 zV_7Y&t>VSB#>Qj#FUT)ZmK9SP8;#+zN}6AVODRodCd03-;>EPa#$))e$T3`2OlfR1 z8_Oz98pCC!l%_J1v8EPa#$)&&$T3`2OlfR1hRZ5xeibgI zG?keQzqX1O(;6F%;TOM0ej8PKcp{SO=)dBAbyRNuBEh<8xOz6%2(4`%Z!KP zNA<<4DXonM#ILc^wUoAU`D$8gnelM^z`l4jrM2;Z_%&9#meN*kJp39fUrlQ* zGail~+ZV5JMn6fq`(bmx`RVPKsO?@}PH!6yem z%Fo^U_}HC)V3q%w=*K;~A6|Bc@hQ;@i{bp_$3dfC$khMuyFI;m`FHeE=6%<_9JcG@ z>0dfIGu*^~E_&UZ+Ic;uEk(ygEsg(N^oHuCt?{3V(dmEvxcd0res>b`xakhptK849 zUOle2534VayO+~TgNMiU%c{{u;pY4PT8TyORV(|e$m%J-X- zss3^E{Cs+8cH2EvY99k23-C=4U|(+lKm@V`A5TAaTz3W_0I~qzg!(mS07Jke_;9;B z9(PX_bFc=1Dgh>phR;Sr9H$~+7*rWRiKOcQf>4F1k&L5xz=vasP$eHLL9lsv_c@XO z#t!&%V(Id7^Z8UNU7sfcQy&8$3n0W1PyrBuEI~dEfeK&%WC4U61S$X`U=pN3ocns& zSArS@ssxxY;%S(QfMHN&040*H0|-JD0uxNS4j2Yi22eWbI)EUU5bQ}MlaKt@5TG9u zOIMd$&t_8T^4xwVJ*2+eem;tT{bK-R0kRnc>>pBJZa*JA!2U4+On~&U1fG5s08{}W z8N@R%l>maEihv0sT?Gt-Dgz{sbQK^7stA}+(pA7PFd5i`NiG%HFD8aR6Be#6x1JB9 z!sWU9OnOLtxqTspaQ$NdWC8L4gzFztUv6JW9$fzz046~CJOWR@3IM7AkPPA(m`VUa zP({E5k*)%UL6rfLN4g3S1XTn~DCsI-7?=#~!6cK4$$N+Yjov%Vy))_l;$eaMa{Jjp zf(ig4kR`~c5mW;df-FKdjG!8T2xJNJNd(mZg}_8epHV6#Vig2c1W+pJcOwWw6#^Aa zx)LY~RSHl-=}LegR3T6?r7MA=U{bvM?8x82De&yZMZnjW+t0@nQUDNvEP;?qNDWX3 zvIzM|LTUgakR=eZ2&n-Ifr(&waB~)+3W6#ED3$odkjempP=!E6ldc4cLX`rPP`VNz z2vrDFOzBFXD3}!QJ-hK&l;Dq!#mmdhXTzy@eLezAeGGssKt7X@3V;Y?39?~?Q~(1Y z3y{wsqyiuUCPDg~lKHgJS%Mk_ssxxY;%S(QfMHN&040*H0|-JD0uxNS4j2Yi22eWb zI)EUU5bQ}MmyhhVCH!+@>GE>(`BW-hpHBc&9|Ir@AjA<+0T6*KK|YCq3SawsZUWdNmw4Rx(W~kRRl~Z=_+6tm<;bdmGSp&z>kE5i_48?qo{Co zZavc-QC@C7pFp_oA@$|sf_VM-A_7Ty;lP?tj zL7++i$sb(<2!bjCB8GGg5Cp0OkSx+QfFLjt*mFoO3)!ng=;yz(#pTBH8C149cb@5v zC@(iJgb%EHNPW5eeD1)yN0gVF7Xk;?J)}NsKYjc_XCA)3+CCzBc=DwJAP7_mAo-(f z06|biK*W%)0fIo40Fp(z1`q@$0(%b0WMT5E&@bsd!Mn@9>g@i0;Owe$tJ%~6H0xSd zZZ{t=fPQ@o%MEAK1kkT*UAf(SZ~*%CEzBBD9~@w51uU#K?3x|=#pGIAZQ3_L^saqt zt8KgHh~BkpX|-wJFwwjAtDz};s5&vdg>&op4>EYk6Z(+IN zd~o>p>snWCS4a&1etiqGhAodiE)4?d!+>Rd{w5X+-N>K%2egfGJQSE%FPO);ohxlUAf(SUbuJbSypaV z2nzRZUF))T(`z4GsD>ceq}C z^Lc&j_S@a3Pu>0M(p34Q8FU{7PTZwW=jivl*V}F9gEjtZ8<^ixw&Z>j2eXwJd}ebKFvHc0kt1GJV*SBZ2Y|b z;q4(}_i}n-xVhc#?!Lct{G0SoMHk8W&tLxJ-=%-@k|6xg{W|?~^c2JYU>u`oK>CB1 zx6d!t{~XeqkN|*+Qq&3GRCJ)!}h{dYsFA^_je^ z`@hqgnbzH3ye|bI3z7Zm5HAH1Llz_dWg}h)v zJ>OD~hFp$H5V8>YEQ3pd#E``hLJY13ltY#ypI>k_kQlNULU6&=fO0T7(#N3O*Z2rI z>T#%YAR~-lDybky5>*mtj_H~}QB+Zoai(j6BvB=SW}2=E6orZM-lHLZJG#!}sSkrJ zLpI5LAoy4?Gk_Gb6!`#yYk|a&#mFWXTniwDEJZ%B;94Ltm>B89Pv)r>v2r|laMUW&+6889$OH}sae5Gem7Y12|e1y3` z@Tp*C04ZcCgzQ3Vfy9u-$j2613m}Cog^*WhEsz*YjP$9eQgT+qP{jZy7thaB4j_ms z2r|BOMUW(_B)}BY6#;^%f*_+zR|HAIBw>#~nM6%q5&J*sd!@OzWZhpZEk+?rk&Uqm zVn8`$Ir14+K@Tj5EJ!xOD(C^_kmbndR|P$=AWV?-NvK+yRs>N6fo7S0-$GGTQLurg ztAb@wWr60Jt_l=I6$Kk^x++)}Cd<3eto%KxVo!@)kXjV76!}oYivi`38fB^R9T?8rmF%) zQANRqo309$g~{^X(;|P1s?sB?6ND^8Hqx9Z_-HUckQlNU`6R=u0p*b8$VM1m4J3vv zMn1XlYCt)d9O=_g=F?S(9Q8OTiI)7wVqFXAY>u(S>{8*CxiKc#E``hLJY13ltY#ypI>k_kQlNULU6&= zfO0T7(#N1$8Cs7+l>-@JJV{eQkR+-k&>Yh>fug9QAmdEe1WBSw0?jmC6DSH3g*^{t zvNd_t?0=>2sg8d?tNUB3g&1TRvPlLP0!SfCkq-kuM^^PbnH=oTQSnq)9a_jlHf%T3k&zeskPrykBFRwNaNF4pL0|2N3AYw;X z070Ni07xHQ0RVt103w2P1rP*Gf_IcSL!) z`Fz}<$4t^fc) z6#x-Ix&jCSCc%5pTl~Eo=%ZfI(sI+;;3-<0Th0{sFD^Hp&l^d~>*+H_=F>dK*3s3~*8PKqr(D{+e|@!mK-%d20{~P3{6k0Y-@m@vJ|KDY z{s90?0QQuT%RTlA5cavQWNEqSeBzX>%^hco`xloR7orB#IiR}SdOl@9o%7ZGSK9|9kKR83U=ZN= z<4d=Cd&*c{udcpbKXt4BnZ9MW`(bmx`Ki0ViC?$du5VW#S0BII?@n*u9XH+KdiBlc z^|9M;cb`6W_p3{TUIkbKeSo<3;8TOQald=L-FCihxYS^6uyGpwv{3#ZnO`tZg(|QX zQnL%y;9KETgg27d?bC=)5!MJBs{fH@RPHyzE*PmI=QI4&>mn8OaVk=RH<9>Uq(ah! zM+w#h8>C;SgH-5_TXZhNO$TSu$%)ptyW?^9bh&O89nGN=7Z;tJK$kqahyMCy_qp4j zo?80<{_wEA+dO|-C9fp^H4V#l^Xc*UeEKst``x|iLCCX4+Qy)mYabp((nbffx1YPi@p2)R>B6B#+D78V7q9f?beSGX7f2gOH7egh@d{}Ri9}cT zyU)*sC#igiw24$Dk1iZ)^lkk4pWZ$Tx?68=?l=4H?zq`KuTGP6z4}kb$IadM&)wm0 z`ad@>H&5OE6Mf9_OM0$)*=?SWr;nQM_nVi)arfMro~_Vzm3GgDRcY9_veI(u@Ruit zFN+89woFB(#j&!*|kt zPR})$=b4+^?e6aT^r`0S+it%G9}i|9H7Y|AJ1sTmPxM`P1g~EF~T? zG`8%N-jZ<0?~9ry**i2yN9>Zbg24?~@_ZSW{ zH#!rTxyLY=Ka@$}*~f60xzWj$`NP~}ILzGWOkn07!(rw|X96?#7!ETxIun?=$8ear z(V4)^J?0E^d7}D7?u*8om+kub_|BJ(rXz;0a-(l>9bR_(?(Hkw!y$UD{nL8e zt#ijeY~NnNczdBD`7?h>fBWfl?#~e$mBm5egr#!Iv4)RDRY#nG#wPMJ813p-2U-h2Z{kce+}V! z#lQNzOxxek7qo|`_4f3h-swF%^Ov-aC3q9(&jNg#@F>BXNS)vd>f%I+61<62rVu0N)*s-C{cm8kh;Lq&&7oT6?hA&3k3?i<3fQ7=N2wE zK=f(tvFh z!Ufkoq&{oE|3UR?nTM~hwvUJ&{_v0rfFMvMfaH&^0R%x60TDyG1_%OG0!S9=8bA=3 z2=6}s@h_#9K7#S~!Nujq^BDwd9Z_CxUI-sp_mKK>`}y2~b&n`7H!lPZtb0g()_(f< zk^7q0vweJhwS7eN@X${MKoF=BK=Mb|0D_>3fQTVo0|bF80VIob4Il_ig!dl7_y_FR z$G@_*<+ig4RJJ&`orw;pF1MZ!9$4>)@^bUp#DVn=s4lmj4;onSi1MuY^r0j3)aThe zyu8{xAaQu!rR@U%Q~?mNqbqlnL)#cWOoI&-DD9@TtpEkfr2QRNS4@exI zcWL_o0961)?C1(02vi9G>7y$E08j-$M3Alkf?$wf{7)JEMty5|h4m=f>sT z$7M%f+&GI-_H2%w{5uatv6r45e!c$rmjxvM?p5DI|6?=#pXguv>i;Wz9@78E=~p<0 zU;1bB=kw`@Hb$?+o*y_C!F+jov-$e%S2Z`la&el*~dlo$39zTSkdIa$`x>Nr9nl zst*G&$u11wF=ECd`Gt%XhD@r@60MRSjD2Kiml~i!_+*!cw#iQ#KEeHLv~e*hFyxb4 z0NaHjo7`ZMnNgHMe2HtP0r+HxiGt6~DErhPa?eadKDCfEv`~ID6UGMNlpP0Qm7ONq zDL=20F%Ew8cT|w0jgR+Y7P1MIHL@(UPi`#f#KTflfRG$SB zclME?UGkI0OoQ;r3AB%_b{R1yKM5_#mtlFW+& zLz`3|24Iq17|J_0Va^A?{X(VP>+$jQYR>t^7=4ifzyCcT!;ne!S)x_)gRzec?NS3Y z2%qfI&^Gx=ldMy4qhF_fQrh_Nj=_*msGL!RA)DM_(wR|cXrCIO0r)gQ8h}xA)~SKz zCZ8IBsd7P?Hp)*N`xGOrveQ7k;!70-Xyb~KS;!{07&glS$h~A@WL;{1mWO_funPll z$viRi5E1zOzjl%*hBm1_3ncFBBZIKXOoQ;r3 zj7CHI)Bp{@rwP))Zzr2ip#%TxNueR18i0uw%8zEk*w99`fP=7Vf;hBOWyA^X<^K7V z;nVV9$8bf3|MK~GZwU+8R3wI%phWxR#gYz8Rgdg2{wCR304|-~r*Au%Osc=tWKw;W z$RszI2_q96eEaeK25102O^^nDFNOA-xRzuT^2qBZ;29&6M4RM=l1z)jLVHx5#or;j zEVM&jvY4lZ9CAxKD+@VP9VJ>KHx~Q206a3o08BEoAY9_Z+gEJjGE!K`Buu_2D3M2A zEXllRFtkbaVf;;+APo9OvY8YbSo#585L)}>BXpnJYBH%lOSDREFcU_GcBugxfKL;o zp>1-LCb^e_8T|wYF`D@3E=D1byu#Nk3K`^ul1@uagUl@c4w+G+u=BFWJS~8vv$Bvw z^^=8`$c@E5E&z|rFaVRxEYTjhxx|Mzbl<{NB$ALpm~0V2B6qwNDecVvYqeA;rodw{KSr*zLH(B@!^+VCZ1tg=8LzrBV zNunL{LP=&tVWAzW&f@QoT^8CQFImp#UTz_iL)F)r9IB2IEs-0GeOzdZ>cap`vI|3d zg~ez#vZxIaD1ba>$LvJ}v-{%rF3x%q$3(cmH10XSrqg~HBF zmh-`vA7HXLRDGSvq3S5n68W*1$Az}2J`BPnvoN$re!}oY>Ib8V%SdJ+lR)_*qePqJ z#*)m70z;cr9|mBOT^QOVH(|~PUv4CmN%gmyOsdZkt&$&%ePn2t8lXY=WS54v$xoVO zoq`*~_m=`d8z0{FW9#yhwf))lmll~YWRqLyr8864COZx7Qw!1njGD7f4JIRr(7Y5*xd14R` zlGY!HgGYrHiJ~e&GHZCRwhI~5n!{2L)130qD4JMfxMVShB zlR^XVX@WHH+euL-@+ovsb%x2O24JFv@}rqBHWh9tWpEHyO%R86YO+_?tE+FT$h&Sbcfi zy}W&<{S20#`dpMkjkA@$|#55C##BKb~FYJ~`2Ftnc6)jqvwzjIsN5eGA0D2z`&Y4ZZ>C%W(b{vFNb{dFReKbt6DzwnbR<%GAS>=c` zVRXcwkI>V8S_Im8XtCOmNBjwilJfA?3KBGOUCA)yl;8be7KUu{gGq*1RtEA^VWvU& zWQK|2&(A3H)IhS&N<%(5CZ821^2w3LJ~j}i%s3FM%rqFU_~i688@Z$u8nWu#0OCTEKx=WfzCS&ruw{R6&6@t|*a(Y(iy?h!X9SA4@VZG7N1~eHesE zW?^WP{De85eEF697L)34HJMbOC0Zp%81u-`E;T>{@yRR=ZIh!ke4YB?Xyam%VaO*` z&d4m$KKa2UGo#SZJ~cpt@X0O>?USE0=aVnDlgXzBmYaNP047=}M;iOs&_=a@1F_03 z4(*hqILT54Lxyj<1cF9B;Ol2M(2!NIyiuefr~GKrxlwRvt6IQ8ST#W$gjaKxs)ZdV zt6HF`b6J`8%26KsC_~(`<6!LKs}&?@t0stpzo~3iIYy3o$H}S|Xri@p#F;QUv{y~=K-`)j4{cTsiATMEww#p4A9h$H>!&620FQ-pxGt$^;06y7a5Jn|8gUP1`mYaNP04DOuk7mNy z6u+ektyB}@;P0rQUajoo3of(JM!8)IR+MO;+*p!zl65KmnO`Wyo@vZ50F%rt2$#$g zgNQsU44LE?cvhCkBtIDY$RKPo(;$2@!$6GUQ`47h<6=@^$fq;^;?MHKc`ShK!qDS` z8%#1YiZT`MCWQvz(*$V%M%kwZk$Ywu@+rvK%0l_kOc)!4Q+6DLRd$+w_uqax-p{LK zjDsKj9TnujeQsoBA)C&B1F%rCEP&igCq{;$ZE_RF3g!AnRY!@I$dAQ5F0@7UVGt&ng`qw26NWERKNwA1MluVT1j-i~ zCE6r6mSkQO7}})zFaVS6!q6tU33ER9awC~cs=w7_Qhk- ze$piC6x!W)V!ZRem(--~?}m{DV7X$3a+Sr-68tTvaBk zTG(;2ss)gVaUfQiX)s>#$?0o0a!DyP zWYxI=z)~qNkyCy&$=ql-v{fzOAgr1o4t-MLC(ij~>EplP&gg@R&_dloCaYSYiPp*y zXTs>vUNyl3achD+v{{bwB&!uH>F=u`$Y`@*doIF|Q}tP*t@49Or$$sJ`ti>OXb?Wx zrJ;TDljeLf-BcEz8dz@fsR5X1p&V)KV-q~A`N?0L!w{?N;?Pbxdc~J2DA2|gC9;rB zsH_oDqJ8pXNhU^yp>3)UgD}Y~3~iF1Fz1smx0A)B`ddvV)n|!T$q~jpGPFw#&_H}L zOGDe_C=FkyemL5=m}D6836(Q4OSDgZFv-j)G_+3*&>(!WOGEqQC(Zff%k58P!CUVM;CYc)zhqkH(9E4R9#KGTGHme*X$GqcYRSPuHS~=oO7#-TH zCU_ujO^}B+Yq~twtE+F->b*<_F?tqarg4}(fi~2rCVJej{EiI)8p}a_2FTCw|V}w>TkE9T2um*`oLEUS4h9J7VSW^4O%;aL@yfqkPI8v zfID^+Z+q+{?*80S==46qxf6IS17dJ!1W`8 zkUKt^Zx)1pY{Ca5nG#tM_a_50iMKaqkZ5mw%rQ@id#+hY$eW;|^9`tsD=m%_iG57m z-7%xM+hZn)cE`ydKC*qi1}+_igzQ1&i2@S2<3p0niH1VkQyazGo(ZB*y7`E5K2`V) zh5eJj=mUe=drbD!CW+R^31z~l(Ee0sad&8fEVMyRvLq`MZ0PTwAjD{cAiFGrkUMob zqV4ekNvA|q1pPHnUoSHx-rm?Hp}p}j=X@&NJQi;%FEDvi86;X9CldRZ1m80MmI&mN zwm4ti?XinOyW`{!U!Kr;CQaOP&B#I4AhJZ3gM9JfNG3!Ep{=P4;%$ss5N~IUgBmSN z-OVLq>TFd?MXk-xb#wS?Kf_Mj7G9$7gQKb1uVkYtS z#tahejgKVeDWT_p0Pp;56nRR>o5~=OH%=t>F>!atjN)#OnZ)0pWO;%K{hiZSZ{Pzp zMnd*L@^WX5@U_}mkTyx<_CPV?Dt*Hy*Y>ZtHXJ@Q~8hsHO z*lUd{8B>?TJ<9AOLObIliJ8RP8#9QzIecyUa`i771%$kD30Aux&ViQ9h@waoX)co3 zNu0g0gG77dB8h!Uyfe*ALf!-!eeXSOTxoH9NG6Plw>x$eZ+q+{(eC*8lZNf4Xlr~VN!BJf z(63ED8TCIbV<6-WB1aTK$Ql=rbVd{s+MCKG&fZLr#MzuVYg2iF$(za`@C(PZIXnU+k5tVhky&XA7+c0rt-F;56R2n2TE=T?F- zbvfLl%swLC)|g2s&3wEugSeZ+*QPI5|DsVq$Q!^-qi{slxPT-xqLI+vR3>ruW`ZQp z+s5XNPn4J!n7pYB5-pAo$%HYX&8dyzZO;TzXm<*T(!1Tj4|6UeA$yib>>`k8dwfXJ zK?y4|JQ9Tea`?D2CyE`#+a5cKyFW?bo9wB*$7D}!lE@w>lnJ9!^!6#WK=ow--#=kE zs{|b1Wf_F_$0zfx9MSgpfF#Q!D^m3HHN)!2B;MZGC853XF~>Y5?zv_qA#a>g%?c7N zjuVM}Ox)cuqqy5+Ch_-&PfA~}flEgrA$!j7i#{mt%V=K)hWN@#;+<^CoG6;0?;Qoj z+nx!cc>6PFc>;dDp(T52lk_uG=$CWlHhIFRpl=`30y#M}K^EE|CzfP|f(?DxhEWB5 zsAC18{ej#*vLIxQ4@f#CG70TYWfE_1?2>q!W1ZIMxuEg_lQ)$?@YjxIbDTsmPprE= zW)gpY`0|9#>t8t{2U+72uU0v{GcB1AQI9Cod<3zAcpGEoh&IMY5bK1{gFrxc{whbD z5HhANM`Vl>hoysKM-qNDeVkAxj0){fbryGrCdfh?G)A=ES65s2 z4;misY4iT|)%F2tqxTO0Pz69I-pGG!=%wZ1xmN*z`Ty>7-Qi@&d~>uI>=zHaqv9bH{*-9Kn} z%B9Ww*H_yIq>bJ`06-PMKXml|{p+jk1CmGY9{|7vU{4vD+zYR+)%dusWM#SKY~GYC z&FyA#yVsW6&c_U>Z~x+Qr;h=L^rav~~CL zYV-afqj&FLUv1w#YxM5j%d5@%2aevoe|^?Id#K2zUAI0Qt9&$fRj{($az1DZmga6V zx!r5aZ3_v5>D#}!+;~1*Fnzn%mfIFm1=F{Gan^YHECEe5aB;P9_k7{mmbUI*UTxk# zWc2R+>#Oa%XN}&ydwI2a|G?3^_pd*+fBf;x2IPU`9;X|6M=1_bR^%-+Ai)#PGU*cn3CofFu5* zAf?IA>+Lq3qXH=OKI~b2i`-5m(HqN7D8r_;V33`~-61=QzeRlnOmZmjSDajOs5(mI zkQd8@aS`A9FP3w57=M%OEC84IB8BE#xQb*FGRP_Z&63d1WjK)}lOk*4|Da$-aks}z z5^ax@KjumC4>&6d*%Ng1z7Ca{rS1OMH<+^DSIOG6@;v6uD+e+*2-@ z6j>Aa_kUy*cYExjxcg(C6nabu^w>Ahf)43(Tx}9SxYCF_ZZF!y`6yUjNDwImjBHpts85 zooUI0hAvN3=0Mf>uj0y|IEs zTjOL7pVq!!{fkBhA#V^lB6CF6_<$rcqL9$uR3`EE#x4nknvW#sQ}I7w8U!|f5*+@x z$2-*vK%&KQ$~60!(B{-eq1CBP;_pwgJi&zF`#E8A8~8x2*CE{=NS-K?cqd!BJPHbJ zkB=yJ6xyEJB+>Txpqx*oo5y62Q>2(t$e!9Hkv&c*_MweFBdE^e?$88TDB+xB;d2{W zZ{YfoLC76MrpO%8_V|D#Q=*W7?;e@N+Z($iv^PHH%vhVs3ryZr28kBOiNro8v^lj= z-0iW8Lc8N63SXXn9vZlG6cVxrktYgBv^_o~$((2?v^}*^yzQAF3T=;%DCbk@Yo1W< zo#m;$$7D}!l4yOLP$rBD?N4B`utVX$JU(<=ghCD#$dyGT z(GEGGq{C9vAUlh@Lv|E@i;`=|CWoq{L=JheOcKFO~`8LR(ZH#^0m~!q6Uh36tDK!HNDZ3R1N2v0O|-202BpSrT%` zi6otritdcGgk9ku31I~&<_Eb+4S|2YI`>6OEWM=Vq$cz$gke5Y#ZbR=4 zTt6ZRxdX`*kt4Fk2_%^knS^$yGKsr4W=Sa8oFq9PdwC_n;!WiRCT}W(M2q7^VjdIP zoZ2Y<_LxPX-SHBIFHb)Z4O}`h3E2b56B#7h9w(AyP81Z{p4uqx_Si+C?Qs(2eC*}s zG1*glkIA0eB+>eKq1Z=-_NO|Fze9FeXoI|DNmeNMFns?flyBifw|-b1egd^W+5Unc z6NLIaD1b zS|Tr&3F894iIjoyH)(<}v_}(Nx?WvzCT?4>~FO{d)#ch!|LPe<9GYrOSeC6y2FWN{ln(4 z`q>YcBO<8H^Fwzy#`T21{o|s){gd%;53>C=HF(4iv z{qFhZcDuX#{_-b&!T-eF?&Ty%@@JA$KJB*m$)AX%df6S{gj)Z!-gfJo+t Date: Wed, 9 Mar 2022 16:12:47 +0800 Subject: [PATCH 2/4] support block state & nbt improvement --- examples/genmaps/genmaps.go | 2 +- level/block/acacia_button.go | 11 - level/block/acacia_door.go | 13 - level/block/acacia_fence.go | 13 - level/block/acacia_fence_gate.go | 12 - level/block/acacia_leaves.go | 10 - level/block/acacia_log.go | 9 - level/block/acacia_planks.go | 8 - level/block/acacia_pressure_plate.go | 9 - level/block/acacia_sapling.go | 9 - level/block/acacia_sign.go | 10 - level/block/acacia_slab.go | 10 - level/block/acacia_stairs.go | 12 - level/block/acacia_trapdoor.go | 13 - level/block/acacia_wall_sign.go | 10 - level/block/acacia_wood.go | 9 - level/block/activator_rail.go | 11 - level/block/air.go | 8 - level/block/allium.go | 8 - level/block/amethyst_block.go | 8 - level/block/amethyst_cluster.go | 10 - level/block/ancient_debris.go | 8 - level/block/andesite.go | 8 - level/block/andesite_slab.go | 10 - level/block/andesite_stairs.go | 12 - level/block/andesite_wall.go | 14 - level/block/anvil.go | 9 - level/block/attached_melon_stem.go | 9 - level/block/attached_pumpkin_stem.go | 9 - level/block/azalea.go | 8 - level/block/azalea_leaves.go | 10 - level/block/azure_bluet.go | 8 - level/block/bamboo.go | 11 - level/block/bamboo_sapling.go | 8 - level/block/barrel.go | 10 - level/block/barrier.go | 8 - level/block/basalt.go | 9 - level/block/beacon.go | 8 - level/block/bedrock.go | 8 - level/block/bee_nest.go | 10 - level/block/beehive.go | 10 - level/block/beetroots.go | 9 - level/block/bell.go | 11 - level/block/big_dripleaf.go | 11 - level/block/big_dripleaf_stem.go | 10 - level/block/birch_button.go | 11 - level/block/birch_door.go | 13 - level/block/birch_fence.go | 13 - level/block/birch_fence_gate.go | 12 - level/block/birch_leaves.go | 10 - level/block/birch_log.go | 9 - level/block/birch_planks.go | 8 - level/block/birch_pressure_plate.go | 9 - level/block/birch_sapling.go | 9 - level/block/birch_sign.go | 10 - level/block/birch_slab.go | 10 - level/block/birch_stairs.go | 12 - level/block/birch_trapdoor.go | 13 - level/block/birch_wall_sign.go | 10 - level/block/birch_wood.go | 9 - level/block/black_banner.go | 9 - level/block/black_bed.go | 11 - level/block/black_candle.go | 11 - level/block/black_candle_cake.go | 9 - level/block/black_carpet.go | 8 - level/block/black_concrete.go | 8 - level/block/black_concrete_powder.go | 8 - level/block/black_glazed_terracotta.go | 9 - level/block/black_shulker_box.go | 9 - level/block/black_stained_glass.go | 8 - level/block/black_stained_glass_pane.go | 13 - level/block/black_terracotta.go | 8 - level/block/black_wall_banner.go | 9 - level/block/black_wool.go | 8 - level/block/blackstone.go | 8 - level/block/blackstone_slab.go | 10 - level/block/blackstone_stairs.go | 12 - level/block/blackstone_wall.go | 14 - level/block/blast_furnace.go | 10 - level/block/block.go | 62 +- level/block/block_states.nbt | Bin 0 -> 82577 bytes level/block/block_states_test.go | 40 - level/block/blocks.go | 6358 +++++++++++++++++ level/block/blue_banner.go | 9 - level/block/blue_bed.go | 11 - level/block/blue_candle.go | 11 - level/block/blue_candle_cake.go | 9 - level/block/blue_carpet.go | 8 - level/block/blue_concrete.go | 8 - level/block/blue_concrete_powder.go | 8 - level/block/blue_glazed_terracotta.go | 9 - level/block/blue_ice.go | 8 - level/block/blue_orchid.go | 8 - level/block/blue_shulker_box.go | 9 - level/block/blue_stained_glass.go | 8 - level/block/blue_stained_glass_pane.go | 13 - level/block/blue_terracotta.go | 8 - level/block/blue_wall_banner.go | 9 - level/block/blue_wool.go | 8 - level/block/bone_block.go | 9 - level/block/bookshelf.go | 8 - level/block/brain_coral.go | 9 - level/block/brain_coral_block.go | 8 - level/block/brain_coral_fan.go | 9 - level/block/brain_coral_wall_fan.go | 10 - level/block/brewing_stand.go | 11 - level/block/brick_slab.go | 10 - level/block/brick_stairs.go | 12 - level/block/brick_wall.go | 14 - level/block/bricks.go | 8 - level/block/brown_banner.go | 9 - level/block/brown_bed.go | 11 - level/block/brown_candle.go | 11 - level/block/brown_candle_cake.go | 9 - level/block/brown_carpet.go | 8 - level/block/brown_concrete.go | 8 - level/block/brown_concrete_powder.go | 8 - level/block/brown_glazed_terracotta.go | 9 - level/block/brown_mushroom.go | 8 - level/block/brown_mushroom_block.go | 14 - level/block/brown_shulker_box.go | 9 - level/block/brown_stained_glass.go | 8 - level/block/brown_stained_glass_pane.go | 13 - level/block/brown_terracotta.go | 8 - level/block/brown_wall_banner.go | 9 - level/block/brown_wool.go | 8 - level/block/bubble_column.go | 9 - level/block/bubble_coral.go | 9 - level/block/bubble_coral_block.go | 8 - level/block/bubble_coral_fan.go | 9 - level/block/bubble_coral_wall_fan.go | 10 - level/block/budding_amethyst.go | 8 - level/block/cactus.go | 9 - level/block/cake.go | 9 - level/block/calcite.go | 8 - level/block/campfire.go | 12 - level/block/candle.go | 11 - level/block/candle_cake.go | 9 - level/block/carrots.go | 9 - level/block/cartography_table.go | 8 - level/block/carved_pumpkin.go | 9 - level/block/cauldron.go | 8 - level/block/cave_air.go | 8 - level/block/cave_vines.go | 10 - level/block/cave_vines_plant.go | 9 - level/block/chain.go | 10 - level/block/chain_command_block.go | 10 - level/block/chest.go | 11 - level/block/chipped_anvil.go | 9 - level/block/chiseled_deepslate.go | 8 - level/block/chiseled_nether_bricks.go | 8 - level/block/chiseled_polished_blackstone.go | 8 - level/block/chiseled_quartz_block.go | 8 - level/block/chiseled_red_sandstone.go | 8 - level/block/chiseled_sandstone.go | 8 - level/block/chiseled_stone_bricks.go | 8 - level/block/chorus_flower.go | 9 - level/block/chorus_plant.go | 14 - level/block/clay.go | 8 - level/block/coal_block.go | 8 - level/block/coal_ore.go | 8 - level/block/coarse_dirt.go | 8 - level/block/cobbled_deepslate.go | 8 - level/block/cobbled_deepslate_slab.go | 10 - level/block/cobbled_deepslate_stairs.go | 12 - level/block/cobbled_deepslate_wall.go | 14 - level/block/cobblestone.go | 8 - level/block/cobblestone_slab.go | 10 - level/block/cobblestone_stairs.go | 12 - level/block/cobblestone_wall.go | 14 - level/block/cobweb.go | 8 - level/block/cocoa.go | 10 - level/block/command_block.go | 10 - level/block/comparator.go | 11 - level/block/composter.go | 9 - level/block/conduit.go | 9 - level/block/copper_block.go | 8 - level/block/copper_ore.go | 8 - level/block/cornflower.go | 8 - level/block/cracked_deepslate_bricks.go | 8 - level/block/cracked_deepslate_tiles.go | 8 - level/block/cracked_nether_bricks.go | 8 - .../cracked_polished_blackstone_bricks.go | 8 - level/block/cracked_stone_bricks.go | 8 - level/block/crafting_table.go | 8 - level/block/creeper_head.go | 9 - level/block/creeper_wall_head.go | 9 - level/block/crimson_button.go | 11 - level/block/crimson_door.go | 13 - level/block/crimson_fence.go | 13 - level/block/crimson_fence_gate.go | 12 - level/block/crimson_fungus.go | 8 - level/block/crimson_hyphae.go | 9 - level/block/crimson_nylium.go | 8 - level/block/crimson_planks.go | 8 - level/block/crimson_pressure_plate.go | 9 - level/block/crimson_roots.go | 8 - level/block/crimson_sign.go | 10 - level/block/crimson_slab.go | 10 - level/block/crimson_stairs.go | 12 - level/block/crimson_stem.go | 9 - level/block/crimson_trapdoor.go | 13 - level/block/crimson_wall_sign.go | 10 - level/block/crying_obsidian.go | 8 - level/block/cut_copper.go | 8 - level/block/cut_copper_slab.go | 10 - level/block/cut_copper_stairs.go | 12 - level/block/cut_red_sandstone.go | 8 - level/block/cut_red_sandstone_slab.go | 10 - level/block/cut_sandstone.go | 8 - level/block/cut_sandstone_slab.go | 10 - level/block/cyan_banner.go | 9 - level/block/cyan_bed.go | 11 - level/block/cyan_candle.go | 11 - level/block/cyan_candle_cake.go | 9 - level/block/cyan_carpet.go | 8 - level/block/cyan_concrete.go | 8 - level/block/cyan_concrete_powder.go | 8 - level/block/cyan_glazed_terracotta.go | 9 - level/block/cyan_shulker_box.go | 9 - level/block/cyan_stained_glass.go | 8 - level/block/cyan_stained_glass_pane.go | 13 - level/block/cyan_terracotta.go | 8 - level/block/cyan_wall_banner.go | 9 - level/block/cyan_wool.go | 8 - level/block/damaged_anvil.go | 9 - level/block/dandelion.go | 8 - level/block/dark_oak_button.go | 11 - level/block/dark_oak_door.go | 13 - level/block/dark_oak_fence.go | 13 - level/block/dark_oak_fence_gate.go | 12 - level/block/dark_oak_leaves.go | 10 - level/block/dark_oak_log.go | 9 - level/block/dark_oak_planks.go | 8 - level/block/dark_oak_pressure_plate.go | 9 - level/block/dark_oak_sapling.go | 9 - level/block/dark_oak_sign.go | 10 - level/block/dark_oak_slab.go | 10 - level/block/dark_oak_stairs.go | 12 - level/block/dark_oak_trapdoor.go | 13 - level/block/dark_oak_wall_sign.go | 10 - level/block/dark_oak_wood.go | 9 - level/block/dark_prismarine.go | 8 - level/block/dark_prismarine_slab.go | 10 - level/block/dark_prismarine_stairs.go | 12 - level/block/daylight_detector.go | 10 - level/block/dead_brain_coral.go | 9 - level/block/dead_brain_coral_block.go | 8 - level/block/dead_brain_coral_fan.go | 9 - level/block/dead_brain_coral_wall_fan.go | 10 - level/block/dead_bubble_coral.go | 9 - level/block/dead_bubble_coral_block.go | 8 - level/block/dead_bubble_coral_fan.go | 9 - level/block/dead_bubble_coral_wall_fan.go | 10 - level/block/dead_bush.go | 8 - level/block/dead_fire_coral.go | 9 - level/block/dead_fire_coral_block.go | 8 - level/block/dead_fire_coral_fan.go | 9 - level/block/dead_fire_coral_wall_fan.go | 10 - level/block/dead_horn_coral.go | 9 - level/block/dead_horn_coral_block.go | 8 - level/block/dead_horn_coral_fan.go | 9 - level/block/dead_horn_coral_wall_fan.go | 10 - level/block/dead_tube_coral.go | 9 - level/block/dead_tube_coral_block.go | 8 - level/block/dead_tube_coral_fan.go | 9 - level/block/dead_tube_coral_wall_fan.go | 10 - level/block/deepslate.go | 9 - level/block/deepslate_brick_slab.go | 10 - level/block/deepslate_brick_stairs.go | 12 - level/block/deepslate_brick_wall.go | 14 - level/block/deepslate_bricks.go | 8 - level/block/deepslate_coal_ore.go | 8 - level/block/deepslate_copper_ore.go | 8 - level/block/deepslate_diamond_ore.go | 8 - level/block/deepslate_emerald_ore.go | 8 - level/block/deepslate_gold_ore.go | 8 - level/block/deepslate_iron_ore.go | 8 - level/block/deepslate_lapis_ore.go | 8 - level/block/deepslate_redstone_ore.go | 9 - level/block/deepslate_tile_slab.go | 10 - level/block/deepslate_tile_stairs.go | 12 - level/block/deepslate_tile_wall.go | 14 - level/block/deepslate_tiles.go | 8 - level/block/detector_rail.go | 11 - level/block/diamond_block.go | 8 - level/block/diamond_ore.go | 8 - level/block/diorite.go | 8 - level/block/diorite_slab.go | 10 - level/block/diorite_stairs.go | 12 - level/block/diorite_wall.go | 14 - level/block/dirt.go | 8 - level/block/dirt_path.go | 8 - level/block/dispenser.go | 10 - level/block/dragon_egg.go | 8 - level/block/dragon_head.go | 9 - level/block/dragon_wall_head.go | 9 - level/block/dried_kelp_block.go | 8 - level/block/dripstone_block.go | 8 - level/block/dropper.go | 10 - level/block/emerald_block.go | 8 - level/block/emerald_ore.go | 8 - level/block/enchanting_table.go | 8 - level/block/end_gateway.go | 8 - level/block/end_portal.go | 8 - level/block/end_portal_frame.go | 10 - level/block/end_rod.go | 9 - level/block/end_stone.go | 8 - level/block/end_stone_brick_slab.go | 10 - level/block/end_stone_brick_stairs.go | 12 - level/block/end_stone_brick_wall.go | 14 - level/block/end_stone_bricks.go | 8 - level/block/ender_chest.go | 10 - level/block/exposed_copper.go | 8 - level/block/exposed_cut_copper.go | 8 - level/block/exposed_cut_copper_slab.go | 10 - level/block/exposed_cut_copper_stairs.go | 12 - level/block/farmland.go | 9 - level/block/fern.go | 8 - level/block/fire.go | 14 - level/block/fire_coral.go | 9 - level/block/fire_coral_block.go | 8 - level/block/fire_coral_fan.go | 9 - level/block/fire_coral_wall_fan.go | 10 - level/block/fletching_table.go | 8 - level/block/flower_pot.go | 8 - level/block/flowering_azalea.go | 8 - level/block/flowering_azalea_leaves.go | 10 - level/block/frosted_ice.go | 9 - level/block/furnace.go | 10 - level/block/generator/blocks.go.tmpl | 12 + level/block/generator/main.go | 48 +- level/block/gilded_blackstone.go | 8 - level/block/glass.go | 8 - level/block/glass_pane.go | 13 - level/block/glow_lichen.go | 15 - level/block/glowstone.go | 8 - level/block/gold_block.go | 8 - level/block/gold_ore.go | 8 - level/block/granite.go | 8 - level/block/granite_slab.go | 10 - level/block/granite_stairs.go | 12 - level/block/granite_wall.go | 14 - level/block/grass.go | 8 - level/block/grass_block.go | 9 - level/block/gravel.go | 8 - level/block/gray_banner.go | 9 - level/block/gray_bed.go | 11 - level/block/gray_candle.go | 11 - level/block/gray_candle_cake.go | 9 - level/block/gray_carpet.go | 8 - level/block/gray_concrete.go | 8 - level/block/gray_concrete_powder.go | 8 - level/block/gray_glazed_terracotta.go | 9 - level/block/gray_shulker_box.go | 9 - level/block/gray_stained_glass.go | 8 - level/block/gray_stained_glass_pane.go | 13 - level/block/gray_terracotta.go | 8 - level/block/gray_wall_banner.go | 9 - level/block/gray_wool.go | 8 - level/block/green_banner.go | 9 - level/block/green_bed.go | 11 - level/block/green_candle.go | 11 - level/block/green_candle_cake.go | 9 - level/block/green_carpet.go | 8 - level/block/green_concrete.go | 8 - level/block/green_concrete_powder.go | 8 - level/block/green_glazed_terracotta.go | 9 - level/block/green_shulker_box.go | 9 - level/block/green_stained_glass.go | 8 - level/block/green_stained_glass_pane.go | 13 - level/block/green_terracotta.go | 8 - level/block/green_wall_banner.go | 9 - level/block/green_wool.go | 8 - level/block/grindstone.go | 10 - level/block/hanging_roots.go | 9 - level/block/hay_block.go | 9 - level/block/heavy_weighted_pressure_plate.go | 9 - level/block/honey_block.go | 8 - level/block/honeycomb_block.go | 8 - level/block/hopper.go | 10 - level/block/horn_coral.go | 9 - level/block/horn_coral_block.go | 8 - level/block/horn_coral_fan.go | 9 - level/block/horn_coral_wall_fan.go | 10 - level/block/ice.go | 8 - level/block/infested_chiseled_stone_bricks.go | 8 - level/block/infested_cobblestone.go | 8 - level/block/infested_cracked_stone_bricks.go | 8 - level/block/infested_deepslate.go | 9 - level/block/infested_mossy_stone_bricks.go | 8 - level/block/infested_stone.go | 8 - level/block/infested_stone_bricks.go | 8 - level/block/iron_bars.go | 13 - level/block/iron_block.go | 8 - level/block/iron_door.go | 13 - level/block/iron_ore.go | 8 - level/block/iron_trapdoor.go | 13 - level/block/jack_o_lantern.go | 9 - level/block/jigsaw.go | 9 - level/block/jukebox.go | 9 - level/block/jungle_button.go | 11 - level/block/jungle_door.go | 13 - level/block/jungle_fence.go | 13 - level/block/jungle_fence_gate.go | 12 - level/block/jungle_leaves.go | 10 - level/block/jungle_log.go | 9 - level/block/jungle_planks.go | 8 - level/block/jungle_pressure_plate.go | 9 - level/block/jungle_sapling.go | 9 - level/block/jungle_sign.go | 10 - level/block/jungle_slab.go | 10 - level/block/jungle_stairs.go | 12 - level/block/jungle_trapdoor.go | 13 - level/block/jungle_wall_sign.go | 10 - level/block/jungle_wood.go | 9 - level/block/kelp.go | 9 - level/block/kelp_plant.go | 8 - level/block/ladder.go | 10 - level/block/lantern.go | 10 - level/block/lapis_block.go | 8 - level/block/lapis_ore.go | 8 - level/block/large_amethyst_bud.go | 10 - level/block/large_fern.go | 9 - level/block/lava.go | 9 - level/block/lava_cauldron.go | 8 - level/block/lectern.go | 11 - level/block/lever.go | 11 - level/block/light.go | 10 - level/block/light_blue_banner.go | 9 - level/block/light_blue_bed.go | 11 - level/block/light_blue_candle.go | 11 - level/block/light_blue_candle_cake.go | 9 - level/block/light_blue_carpet.go | 8 - level/block/light_blue_concrete.go | 8 - level/block/light_blue_concrete_powder.go | 8 - level/block/light_blue_glazed_terracotta.go | 9 - level/block/light_blue_shulker_box.go | 9 - level/block/light_blue_stained_glass.go | 8 - level/block/light_blue_stained_glass_pane.go | 13 - level/block/light_blue_terracotta.go | 8 - level/block/light_blue_wall_banner.go | 9 - level/block/light_blue_wool.go | 8 - level/block/light_gray_banner.go | 9 - level/block/light_gray_bed.go | 11 - level/block/light_gray_candle.go | 11 - level/block/light_gray_candle_cake.go | 9 - level/block/light_gray_carpet.go | 8 - level/block/light_gray_concrete.go | 8 - level/block/light_gray_concrete_powder.go | 8 - level/block/light_gray_glazed_terracotta.go | 9 - level/block/light_gray_shulker_box.go | 9 - level/block/light_gray_stained_glass.go | 8 - level/block/light_gray_stained_glass_pane.go | 13 - level/block/light_gray_terracotta.go | 8 - level/block/light_gray_wall_banner.go | 9 - level/block/light_gray_wool.go | 8 - level/block/light_weighted_pressure_plate.go | 9 - level/block/lightning_rod.go | 11 - level/block/lilac.go | 9 - level/block/lily_of_the_valley.go | 8 - level/block/lily_pad.go | 8 - level/block/lime_banner.go | 9 - level/block/lime_bed.go | 11 - level/block/lime_candle.go | 11 - level/block/lime_candle_cake.go | 9 - level/block/lime_carpet.go | 8 - level/block/lime_concrete.go | 8 - level/block/lime_concrete_powder.go | 8 - level/block/lime_glazed_terracotta.go | 9 - level/block/lime_shulker_box.go | 9 - level/block/lime_stained_glass.go | 8 - level/block/lime_stained_glass_pane.go | 13 - level/block/lime_terracotta.go | 8 - level/block/lime_wall_banner.go | 9 - level/block/lime_wool.go | 8 - level/block/lodestone.go | 8 - level/block/loom.go | 9 - level/block/magenta_banner.go | 9 - level/block/magenta_bed.go | 11 - level/block/magenta_candle.go | 11 - level/block/magenta_candle_cake.go | 9 - level/block/magenta_carpet.go | 8 - level/block/magenta_concrete.go | 8 - level/block/magenta_concrete_powder.go | 8 - level/block/magenta_glazed_terracotta.go | 9 - level/block/magenta_shulker_box.go | 9 - level/block/magenta_stained_glass.go | 8 - level/block/magenta_stained_glass_pane.go | 13 - level/block/magenta_terracotta.go | 8 - level/block/magenta_wall_banner.go | 9 - level/block/magenta_wool.go | 8 - level/block/magma_block.go | 8 - level/block/medium_amethyst_bud.go | 10 - level/block/melon.go | 8 - level/block/melon_stem.go | 9 - level/block/moss_block.go | 8 - level/block/moss_carpet.go | 8 - level/block/mossy_cobblestone.go | 8 - level/block/mossy_cobblestone_slab.go | 10 - level/block/mossy_cobblestone_stairs.go | 12 - level/block/mossy_cobblestone_wall.go | 14 - level/block/mossy_stone_brick_slab.go | 10 - level/block/mossy_stone_brick_stairs.go | 12 - level/block/mossy_stone_brick_wall.go | 14 - level/block/mossy_stone_bricks.go | 8 - level/block/moving_piston.go | 10 - level/block/mushroom_stem.go | 14 - level/block/mycelium.go | 9 - level/block/nether_brick_fence.go | 13 - level/block/nether_brick_slab.go | 10 - level/block/nether_brick_stairs.go | 12 - level/block/nether_brick_wall.go | 14 - level/block/nether_bricks.go | 8 - level/block/nether_gold_ore.go | 8 - level/block/nether_portal.go | 9 - level/block/nether_quartz_ore.go | 8 - level/block/nether_sprouts.go | 8 - level/block/nether_wart.go | 9 - level/block/nether_wart_block.go | 8 - level/block/netherite_block.go | 8 - level/block/netherrack.go | 8 - level/block/note_block.go | 11 - level/block/oak_button.go | 11 - level/block/oak_door.go | 13 - level/block/oak_fence.go | 13 - level/block/oak_fence_gate.go | 12 - level/block/oak_leaves.go | 10 - level/block/oak_log.go | 9 - level/block/oak_planks.go | 8 - level/block/oak_pressure_plate.go | 9 - level/block/oak_sapling.go | 9 - level/block/oak_sign.go | 10 - level/block/oak_slab.go | 10 - level/block/oak_stairs.go | 12 - level/block/oak_trapdoor.go | 13 - level/block/oak_wall_sign.go | 10 - level/block/oak_wood.go | 9 - level/block/observer.go | 10 - level/block/obsidian.go | 8 - level/block/orange_banner.go | 9 - level/block/orange_bed.go | 11 - level/block/orange_candle.go | 11 - level/block/orange_candle_cake.go | 9 - level/block/orange_carpet.go | 8 - level/block/orange_concrete.go | 8 - level/block/orange_concrete_powder.go | 8 - level/block/orange_glazed_terracotta.go | 9 - level/block/orange_shulker_box.go | 9 - level/block/orange_stained_glass.go | 8 - level/block/orange_stained_glass_pane.go | 13 - level/block/orange_terracotta.go | 8 - level/block/orange_tulip.go | 8 - level/block/orange_wall_banner.go | 9 - level/block/orange_wool.go | 8 - level/block/oxeye_daisy.go | 8 - level/block/oxidized_copper.go | 8 - level/block/oxidized_cut_copper.go | 8 - level/block/oxidized_cut_copper_slab.go | 10 - level/block/oxidized_cut_copper_stairs.go | 12 - level/block/packed_ice.go | 8 - level/block/peony.go | 9 - level/block/petrified_oak_slab.go | 10 - level/block/pink_banner.go | 9 - level/block/pink_bed.go | 11 - level/block/pink_candle.go | 11 - level/block/pink_candle_cake.go | 9 - level/block/pink_carpet.go | 8 - level/block/pink_concrete.go | 8 - level/block/pink_concrete_powder.go | 8 - level/block/pink_glazed_terracotta.go | 9 - level/block/pink_shulker_box.go | 9 - level/block/pink_stained_glass.go | 8 - level/block/pink_stained_glass_pane.go | 13 - level/block/pink_terracotta.go | 8 - level/block/pink_tulip.go | 8 - level/block/pink_wall_banner.go | 9 - level/block/pink_wool.go | 8 - level/block/piston.go | 10 - level/block/piston_head.go | 11 - level/block/player_head.go | 9 - level/block/player_wall_head.go | 9 - level/block/podzol.go | 9 - level/block/pointed_dripstone.go | 11 - level/block/polished_andesite.go | 8 - level/block/polished_andesite_slab.go | 10 - level/block/polished_andesite_stairs.go | 12 - level/block/polished_basalt.go | 9 - level/block/polished_blackstone.go | 8 - level/block/polished_blackstone_brick_slab.go | 10 - .../block/polished_blackstone_brick_stairs.go | 12 - level/block/polished_blackstone_brick_wall.go | 14 - level/block/polished_blackstone_bricks.go | 8 - level/block/polished_blackstone_button.go | 11 - .../polished_blackstone_pressure_plate.go | 9 - level/block/polished_blackstone_slab.go | 10 - level/block/polished_blackstone_stairs.go | 12 - level/block/polished_blackstone_wall.go | 14 - level/block/polished_deepslate.go | 8 - level/block/polished_deepslate_slab.go | 10 - level/block/polished_deepslate_stairs.go | 12 - level/block/polished_deepslate_wall.go | 14 - level/block/polished_diorite.go | 8 - level/block/polished_diorite_slab.go | 10 - level/block/polished_diorite_stairs.go | 12 - level/block/polished_granite.go | 8 - level/block/polished_granite_slab.go | 10 - level/block/polished_granite_stairs.go | 12 - level/block/poppy.go | 8 - level/block/potatoes.go | 9 - level/block/potted_acacia_sapling.go | 8 - level/block/potted_allium.go | 8 - level/block/potted_azalea_bush.go | 8 - level/block/potted_azure_bluet.go | 8 - level/block/potted_bamboo.go | 8 - level/block/potted_birch_sapling.go | 8 - level/block/potted_blue_orchid.go | 8 - level/block/potted_brown_mushroom.go | 8 - level/block/potted_cactus.go | 8 - level/block/potted_cornflower.go | 8 - level/block/potted_crimson_fungus.go | 8 - level/block/potted_crimson_roots.go | 8 - level/block/potted_dandelion.go | 8 - level/block/potted_dark_oak_sapling.go | 8 - level/block/potted_dead_bush.go | 8 - level/block/potted_fern.go | 8 - level/block/potted_flowering_azalea_bush.go | 8 - level/block/potted_jungle_sapling.go | 8 - level/block/potted_lily_of_the_valley.go | 8 - level/block/potted_oak_sapling.go | 8 - level/block/potted_orange_tulip.go | 8 - level/block/potted_oxeye_daisy.go | 8 - level/block/potted_pink_tulip.go | 8 - level/block/potted_poppy.go | 8 - level/block/potted_red_mushroom.go | 8 - level/block/potted_red_tulip.go | 8 - level/block/potted_spruce_sapling.go | 8 - level/block/potted_warped_fungus.go | 8 - level/block/potted_warped_roots.go | 8 - level/block/potted_white_tulip.go | 8 - level/block/potted_wither_rose.go | 8 - level/block/powder_snow.go | 8 - level/block/powder_snow_cauldron.go | 9 - level/block/powered_rail.go | 11 - level/block/prismarine.go | 8 - level/block/prismarine_brick_slab.go | 10 - level/block/prismarine_brick_stairs.go | 12 - level/block/prismarine_bricks.go | 8 - level/block/prismarine_slab.go | 10 - level/block/prismarine_stairs.go | 12 - level/block/prismarine_wall.go | 14 - level/block/properties.go | 38 + level/block/pumpkin.go | 8 - level/block/pumpkin_stem.go | 9 - level/block/purple_banner.go | 9 - level/block/purple_bed.go | 11 - level/block/purple_candle.go | 11 - level/block/purple_candle_cake.go | 9 - level/block/purple_carpet.go | 8 - level/block/purple_concrete.go | 8 - level/block/purple_concrete_powder.go | 8 - level/block/purple_glazed_terracotta.go | 9 - level/block/purple_shulker_box.go | 9 - level/block/purple_stained_glass.go | 8 - level/block/purple_stained_glass_pane.go | 13 - level/block/purple_terracotta.go | 8 - level/block/purple_wall_banner.go | 9 - level/block/purple_wool.go | 8 - level/block/purpur_block.go | 8 - level/block/purpur_pillar.go | 9 - level/block/purpur_slab.go | 10 - level/block/purpur_stairs.go | 12 - level/block/quartz_block.go | 8 - level/block/quartz_bricks.go | 8 - level/block/quartz_pillar.go | 9 - level/block/quartz_slab.go | 10 - level/block/quartz_stairs.go | 12 - level/block/rail.go | 10 - level/block/raw_copper_block.go | 8 - level/block/raw_gold_block.go | 8 - level/block/raw_iron_block.go | 8 - level/block/red_banner.go | 9 - level/block/red_bed.go | 11 - level/block/red_candle.go | 11 - level/block/red_candle_cake.go | 9 - level/block/red_carpet.go | 8 - level/block/red_concrete.go | 8 - level/block/red_concrete_powder.go | 8 - level/block/red_glazed_terracotta.go | 9 - level/block/red_mushroom.go | 8 - level/block/red_mushroom_block.go | 14 - level/block/red_nether_brick_slab.go | 10 - level/block/red_nether_brick_stairs.go | 12 - level/block/red_nether_brick_wall.go | 14 - level/block/red_nether_bricks.go | 8 - level/block/red_sand.go | 8 - level/block/red_sandstone.go | 8 - level/block/red_sandstone_slab.go | 10 - level/block/red_sandstone_stairs.go | 12 - level/block/red_sandstone_wall.go | 14 - level/block/red_shulker_box.go | 9 - level/block/red_stained_glass.go | 8 - level/block/red_stained_glass_pane.go | 13 - level/block/red_terracotta.go | 8 - level/block/red_tulip.go | 8 - level/block/red_wall_banner.go | 9 - level/block/red_wool.go | 8 - level/block/redstone_block.go | 8 - level/block/redstone_lamp.go | 9 - level/block/redstone_ore.go | 9 - level/block/redstone_torch.go | 9 - level/block/redstone_wall_torch.go | 10 - level/block/redstone_wire.go | 13 - level/block/repeater.go | 12 - level/block/repeating_command_block.go | 10 - level/block/respawn_anchor.go | 9 - level/block/rooted_dirt.go | 8 - level/block/rose_bush.go | 9 - level/block/sand.go | 8 - level/block/sandstone.go | 8 - level/block/sandstone_slab.go | 10 - level/block/sandstone_stairs.go | 12 - level/block/sandstone_wall.go | 14 - level/block/scaffolding.go | 11 - level/block/sculk_sensor.go | 11 - level/block/sea_lantern.go | 8 - level/block/sea_pickle.go | 10 - level/block/seagrass.go | 8 - level/block/shroomlight.go | 8 - level/block/shulker_box.go | 9 - level/block/skeleton_skull.go | 9 - level/block/skeleton_wall_skull.go | 9 - level/block/slime_block.go | 8 - level/block/small_amethyst_bud.go | 10 - level/block/small_dripleaf.go | 11 - level/block/smithing_table.go | 8 - level/block/smoker.go | 10 - level/block/smooth_basalt.go | 8 - level/block/smooth_quartz.go | 8 - level/block/smooth_quartz_slab.go | 10 - level/block/smooth_quartz_stairs.go | 12 - level/block/smooth_red_sandstone.go | 8 - level/block/smooth_red_sandstone_slab.go | 10 - level/block/smooth_red_sandstone_stairs.go | 12 - level/block/smooth_sandstone.go | 8 - level/block/smooth_sandstone_slab.go | 10 - level/block/smooth_sandstone_stairs.go | 12 - level/block/smooth_stone.go | 8 - level/block/smooth_stone_slab.go | 10 - level/block/snow.go | 9 - level/block/snow_block.go | 8 - level/block/soul_campfire.go | 12 - level/block/soul_fire.go | 8 - level/block/soul_lantern.go | 10 - level/block/soul_sand.go | 8 - level/block/soul_soil.go | 8 - level/block/soul_torch.go | 8 - level/block/soul_wall_torch.go | 9 - level/block/spawner.go | 8 - level/block/sponge.go | 8 - level/block/spore_blossom.go | 8 - level/block/spruce_button.go | 11 - level/block/spruce_door.go | 13 - level/block/spruce_fence.go | 13 - level/block/spruce_fence_gate.go | 12 - level/block/spruce_leaves.go | 10 - level/block/spruce_log.go | 9 - level/block/spruce_planks.go | 8 - level/block/spruce_pressure_plate.go | 9 - level/block/spruce_sapling.go | 9 - level/block/spruce_sign.go | 10 - level/block/spruce_slab.go | 10 - level/block/spruce_stairs.go | 12 - level/block/spruce_trapdoor.go | 13 - level/block/spruce_wall_sign.go | 10 - level/block/spruce_wood.go | 9 - level/block/sticky_piston.go | 10 - level/block/stone.go | 8 - level/block/stone_brick_slab.go | 10 - level/block/stone_brick_stairs.go | 12 - level/block/stone_brick_wall.go | 14 - level/block/stone_bricks.go | 8 - level/block/stone_button.go | 11 - level/block/stone_pressure_plate.go | 9 - level/block/stone_slab.go | 10 - level/block/stone_stairs.go | 12 - level/block/stonecutter.go | 9 - level/block/stripped_acacia_log.go | 9 - level/block/stripped_acacia_wood.go | 9 - level/block/stripped_birch_log.go | 9 - level/block/stripped_birch_wood.go | 9 - level/block/stripped_crimson_hyphae.go | 9 - level/block/stripped_crimson_stem.go | 9 - level/block/stripped_dark_oak_log.go | 9 - level/block/stripped_dark_oak_wood.go | 9 - level/block/stripped_jungle_log.go | 9 - level/block/stripped_jungle_wood.go | 9 - level/block/stripped_oak_log.go | 9 - level/block/stripped_oak_wood.go | 9 - level/block/stripped_spruce_log.go | 9 - level/block/stripped_spruce_wood.go | 9 - level/block/stripped_warped_hyphae.go | 9 - level/block/stripped_warped_stem.go | 9 - level/block/structure_block.go | 9 - level/block/structure_void.go | 8 - level/block/sugar_cane.go | 9 - level/block/sunflower.go | 9 - level/block/sweet_berry_bush.go | 9 - level/block/tall_grass.go | 9 - level/block/tall_seagrass.go | 9 - level/block/target.go | 9 - level/block/terracotta.go | 8 - level/block/testdata/block_states.nbt | Bin 2365168 -> 0 bytes level/block/testdata/blocks.nbt | Bin 0 -> 69619 bytes level/block/tinted_glass.go | 8 - level/block/tnt.go | 9 - level/block/torch.go | 8 - level/block/trapped_chest.go | 11 - level/block/tripwire.go | 15 - level/block/tripwire_hook.go | 11 - level/block/tube_coral.go | 9 - level/block/tube_coral_block.go | 8 - level/block/tube_coral_fan.go | 9 - level/block/tube_coral_wall_fan.go | 10 - level/block/tuff.go | 8 - level/block/turtle_egg.go | 10 - level/block/twisting_vines.go | 9 - level/block/twisting_vines_plant.go | 8 - level/block/vine.go | 13 - level/block/void_air.go | 8 - level/block/wall_torch.go | 9 - level/block/warped_button.go | 11 - level/block/warped_door.go | 13 - level/block/warped_fence.go | 13 - level/block/warped_fence_gate.go | 12 - level/block/warped_fungus.go | 8 - level/block/warped_hyphae.go | 9 - level/block/warped_nylium.go | 8 - level/block/warped_planks.go | 8 - level/block/warped_pressure_plate.go | 9 - level/block/warped_roots.go | 8 - level/block/warped_sign.go | 10 - level/block/warped_slab.go | 10 - level/block/warped_stairs.go | 12 - level/block/warped_stem.go | 9 - level/block/warped_trapdoor.go | 13 - level/block/warped_wall_sign.go | 10 - level/block/warped_wart_block.go | 8 - level/block/water.go | 9 - level/block/water_cauldron.go | 9 - level/block/waxed_copper_block.go | 8 - level/block/waxed_cut_copper.go | 8 - level/block/waxed_cut_copper_slab.go | 10 - level/block/waxed_cut_copper_stairs.go | 12 - level/block/waxed_exposed_copper.go | 8 - level/block/waxed_exposed_cut_copper.go | 8 - level/block/waxed_exposed_cut_copper_slab.go | 10 - .../block/waxed_exposed_cut_copper_stairs.go | 12 - level/block/waxed_oxidized_copper.go | 8 - level/block/waxed_oxidized_cut_copper.go | 8 - level/block/waxed_oxidized_cut_copper_slab.go | 10 - .../block/waxed_oxidized_cut_copper_stairs.go | 12 - level/block/waxed_weathered_copper.go | 8 - level/block/waxed_weathered_cut_copper.go | 8 - .../block/waxed_weathered_cut_copper_slab.go | 10 - .../waxed_weathered_cut_copper_stairs.go | 12 - level/block/weathered_copper.go | 8 - level/block/weathered_cut_copper.go | 8 - level/block/weathered_cut_copper_slab.go | 10 - level/block/weathered_cut_copper_stairs.go | 12 - level/block/weeping_vines.go | 9 - level/block/weeping_vines_plant.go | 8 - level/block/wet_sponge.go | 8 - level/block/wheat.go | 9 - level/block/white_banner.go | 9 - level/block/white_bed.go | 11 - level/block/white_candle.go | 11 - level/block/white_candle_cake.go | 9 - level/block/white_carpet.go | 8 - level/block/white_concrete.go | 8 - level/block/white_concrete_powder.go | 8 - level/block/white_glazed_terracotta.go | 9 - level/block/white_shulker_box.go | 9 - level/block/white_stained_glass.go | 8 - level/block/white_stained_glass_pane.go | 13 - level/block/white_terracotta.go | 8 - level/block/white_tulip.go | 8 - level/block/white_wall_banner.go | 9 - level/block/white_wool.go | 8 - level/block/wither_rose.go | 8 - level/block/wither_skeleton_skull.go | 9 - level/block/wither_skeleton_wall_skull.go | 9 - level/block/yellow_banner.go | 9 - level/block/yellow_bed.go | 11 - level/block/yellow_candle.go | 11 - level/block/yellow_candle_cake.go | 9 - level/block/yellow_carpet.go | 8 - level/block/yellow_concrete.go | 8 - level/block/yellow_concrete_powder.go | 8 - level/block/yellow_glazed_terracotta.go | 9 - level/block/yellow_shulker_box.go | 9 - level/block/yellow_stained_glass.go | 8 - level/block/yellow_stained_glass_pane.go | 13 - level/block/yellow_terracotta.go | 8 - level/block/yellow_wall_banner.go | 9 - level/block/yellow_wool.go | 8 - level/block/zombie_head.go | 9 - level/block/zombie_wall_head.go | 9 - nbt/decode.go | 59 +- nbt/decode_test.go | 34 +- nbt/encode.go | 8 +- nbt/interface.go | 8 +- nbt/rawmsg.go | 6 +- nbt/snbt.go | 4 +- nbt/snbt_decode_test.go | 2 +- 915 files changed, 6566 insertions(+), 8605 deletions(-) delete mode 100644 level/block/acacia_button.go delete mode 100644 level/block/acacia_door.go delete mode 100644 level/block/acacia_fence.go delete mode 100644 level/block/acacia_fence_gate.go delete mode 100644 level/block/acacia_leaves.go delete mode 100644 level/block/acacia_log.go delete mode 100644 level/block/acacia_planks.go delete mode 100644 level/block/acacia_pressure_plate.go delete mode 100644 level/block/acacia_sapling.go delete mode 100644 level/block/acacia_sign.go delete mode 100644 level/block/acacia_slab.go delete mode 100644 level/block/acacia_stairs.go delete mode 100644 level/block/acacia_trapdoor.go delete mode 100644 level/block/acacia_wall_sign.go delete mode 100644 level/block/acacia_wood.go delete mode 100644 level/block/activator_rail.go delete mode 100644 level/block/air.go delete mode 100644 level/block/allium.go delete mode 100644 level/block/amethyst_block.go delete mode 100644 level/block/amethyst_cluster.go delete mode 100644 level/block/ancient_debris.go delete mode 100644 level/block/andesite.go delete mode 100644 level/block/andesite_slab.go delete mode 100644 level/block/andesite_stairs.go delete mode 100644 level/block/andesite_wall.go delete mode 100644 level/block/anvil.go delete mode 100644 level/block/attached_melon_stem.go delete mode 100644 level/block/attached_pumpkin_stem.go delete mode 100644 level/block/azalea.go delete mode 100644 level/block/azalea_leaves.go delete mode 100644 level/block/azure_bluet.go delete mode 100644 level/block/bamboo.go delete mode 100644 level/block/bamboo_sapling.go delete mode 100644 level/block/barrel.go delete mode 100644 level/block/barrier.go delete mode 100644 level/block/basalt.go delete mode 100644 level/block/beacon.go delete mode 100644 level/block/bedrock.go delete mode 100644 level/block/bee_nest.go delete mode 100644 level/block/beehive.go delete mode 100644 level/block/beetroots.go delete mode 100644 level/block/bell.go delete mode 100644 level/block/big_dripleaf.go delete mode 100644 level/block/big_dripleaf_stem.go delete mode 100644 level/block/birch_button.go delete mode 100644 level/block/birch_door.go delete mode 100644 level/block/birch_fence.go delete mode 100644 level/block/birch_fence_gate.go delete mode 100644 level/block/birch_leaves.go delete mode 100644 level/block/birch_log.go delete mode 100644 level/block/birch_planks.go delete mode 100644 level/block/birch_pressure_plate.go delete mode 100644 level/block/birch_sapling.go delete mode 100644 level/block/birch_sign.go delete mode 100644 level/block/birch_slab.go delete mode 100644 level/block/birch_stairs.go delete mode 100644 level/block/birch_trapdoor.go delete mode 100644 level/block/birch_wall_sign.go delete mode 100644 level/block/birch_wood.go delete mode 100644 level/block/black_banner.go delete mode 100644 level/block/black_bed.go delete mode 100644 level/block/black_candle.go delete mode 100644 level/block/black_candle_cake.go delete mode 100644 level/block/black_carpet.go delete mode 100644 level/block/black_concrete.go delete mode 100644 level/block/black_concrete_powder.go delete mode 100644 level/block/black_glazed_terracotta.go delete mode 100644 level/block/black_shulker_box.go delete mode 100644 level/block/black_stained_glass.go delete mode 100644 level/block/black_stained_glass_pane.go delete mode 100644 level/block/black_terracotta.go delete mode 100644 level/block/black_wall_banner.go delete mode 100644 level/block/black_wool.go delete mode 100644 level/block/blackstone.go delete mode 100644 level/block/blackstone_slab.go delete mode 100644 level/block/blackstone_stairs.go delete mode 100644 level/block/blackstone_wall.go delete mode 100644 level/block/blast_furnace.go create mode 100644 level/block/block_states.nbt delete mode 100644 level/block/block_states_test.go create mode 100644 level/block/blocks.go delete mode 100644 level/block/blue_banner.go delete mode 100644 level/block/blue_bed.go delete mode 100644 level/block/blue_candle.go delete mode 100644 level/block/blue_candle_cake.go delete mode 100644 level/block/blue_carpet.go delete mode 100644 level/block/blue_concrete.go delete mode 100644 level/block/blue_concrete_powder.go delete mode 100644 level/block/blue_glazed_terracotta.go delete mode 100644 level/block/blue_ice.go delete mode 100644 level/block/blue_orchid.go delete mode 100644 level/block/blue_shulker_box.go delete mode 100644 level/block/blue_stained_glass.go delete mode 100644 level/block/blue_stained_glass_pane.go delete mode 100644 level/block/blue_terracotta.go delete mode 100644 level/block/blue_wall_banner.go delete mode 100644 level/block/blue_wool.go delete mode 100644 level/block/bone_block.go delete mode 100644 level/block/bookshelf.go delete mode 100644 level/block/brain_coral.go delete mode 100644 level/block/brain_coral_block.go delete mode 100644 level/block/brain_coral_fan.go delete mode 100644 level/block/brain_coral_wall_fan.go delete mode 100644 level/block/brewing_stand.go delete mode 100644 level/block/brick_slab.go delete mode 100644 level/block/brick_stairs.go delete mode 100644 level/block/brick_wall.go delete mode 100644 level/block/bricks.go delete mode 100644 level/block/brown_banner.go delete mode 100644 level/block/brown_bed.go delete mode 100644 level/block/brown_candle.go delete mode 100644 level/block/brown_candle_cake.go delete mode 100644 level/block/brown_carpet.go delete mode 100644 level/block/brown_concrete.go delete mode 100644 level/block/brown_concrete_powder.go delete mode 100644 level/block/brown_glazed_terracotta.go delete mode 100644 level/block/brown_mushroom.go delete mode 100644 level/block/brown_mushroom_block.go delete mode 100644 level/block/brown_shulker_box.go delete mode 100644 level/block/brown_stained_glass.go delete mode 100644 level/block/brown_stained_glass_pane.go delete mode 100644 level/block/brown_terracotta.go delete mode 100644 level/block/brown_wall_banner.go delete mode 100644 level/block/brown_wool.go delete mode 100644 level/block/bubble_column.go delete mode 100644 level/block/bubble_coral.go delete mode 100644 level/block/bubble_coral_block.go delete mode 100644 level/block/bubble_coral_fan.go delete mode 100644 level/block/bubble_coral_wall_fan.go delete mode 100644 level/block/budding_amethyst.go delete mode 100644 level/block/cactus.go delete mode 100644 level/block/cake.go delete mode 100644 level/block/calcite.go delete mode 100644 level/block/campfire.go delete mode 100644 level/block/candle.go delete mode 100644 level/block/candle_cake.go delete mode 100644 level/block/carrots.go delete mode 100644 level/block/cartography_table.go delete mode 100644 level/block/carved_pumpkin.go delete mode 100644 level/block/cauldron.go delete mode 100644 level/block/cave_air.go delete mode 100644 level/block/cave_vines.go delete mode 100644 level/block/cave_vines_plant.go delete mode 100644 level/block/chain.go delete mode 100644 level/block/chain_command_block.go delete mode 100644 level/block/chest.go delete mode 100644 level/block/chipped_anvil.go delete mode 100644 level/block/chiseled_deepslate.go delete mode 100644 level/block/chiseled_nether_bricks.go delete mode 100644 level/block/chiseled_polished_blackstone.go delete mode 100644 level/block/chiseled_quartz_block.go delete mode 100644 level/block/chiseled_red_sandstone.go delete mode 100644 level/block/chiseled_sandstone.go delete mode 100644 level/block/chiseled_stone_bricks.go delete mode 100644 level/block/chorus_flower.go delete mode 100644 level/block/chorus_plant.go delete mode 100644 level/block/clay.go delete mode 100644 level/block/coal_block.go delete mode 100644 level/block/coal_ore.go delete mode 100644 level/block/coarse_dirt.go delete mode 100644 level/block/cobbled_deepslate.go delete mode 100644 level/block/cobbled_deepslate_slab.go delete mode 100644 level/block/cobbled_deepslate_stairs.go delete mode 100644 level/block/cobbled_deepslate_wall.go delete mode 100644 level/block/cobblestone.go delete mode 100644 level/block/cobblestone_slab.go delete mode 100644 level/block/cobblestone_stairs.go delete mode 100644 level/block/cobblestone_wall.go delete mode 100644 level/block/cobweb.go delete mode 100644 level/block/cocoa.go delete mode 100644 level/block/command_block.go delete mode 100644 level/block/comparator.go delete mode 100644 level/block/composter.go delete mode 100644 level/block/conduit.go delete mode 100644 level/block/copper_block.go delete mode 100644 level/block/copper_ore.go delete mode 100644 level/block/cornflower.go delete mode 100644 level/block/cracked_deepslate_bricks.go delete mode 100644 level/block/cracked_deepslate_tiles.go delete mode 100644 level/block/cracked_nether_bricks.go delete mode 100644 level/block/cracked_polished_blackstone_bricks.go delete mode 100644 level/block/cracked_stone_bricks.go delete mode 100644 level/block/crafting_table.go delete mode 100644 level/block/creeper_head.go delete mode 100644 level/block/creeper_wall_head.go delete mode 100644 level/block/crimson_button.go delete mode 100644 level/block/crimson_door.go delete mode 100644 level/block/crimson_fence.go delete mode 100644 level/block/crimson_fence_gate.go delete mode 100644 level/block/crimson_fungus.go delete mode 100644 level/block/crimson_hyphae.go delete mode 100644 level/block/crimson_nylium.go delete mode 100644 level/block/crimson_planks.go delete mode 100644 level/block/crimson_pressure_plate.go delete mode 100644 level/block/crimson_roots.go delete mode 100644 level/block/crimson_sign.go delete mode 100644 level/block/crimson_slab.go delete mode 100644 level/block/crimson_stairs.go delete mode 100644 level/block/crimson_stem.go delete mode 100644 level/block/crimson_trapdoor.go delete mode 100644 level/block/crimson_wall_sign.go delete mode 100644 level/block/crying_obsidian.go delete mode 100644 level/block/cut_copper.go delete mode 100644 level/block/cut_copper_slab.go delete mode 100644 level/block/cut_copper_stairs.go delete mode 100644 level/block/cut_red_sandstone.go delete mode 100644 level/block/cut_red_sandstone_slab.go delete mode 100644 level/block/cut_sandstone.go delete mode 100644 level/block/cut_sandstone_slab.go delete mode 100644 level/block/cyan_banner.go delete mode 100644 level/block/cyan_bed.go delete mode 100644 level/block/cyan_candle.go delete mode 100644 level/block/cyan_candle_cake.go delete mode 100644 level/block/cyan_carpet.go delete mode 100644 level/block/cyan_concrete.go delete mode 100644 level/block/cyan_concrete_powder.go delete mode 100644 level/block/cyan_glazed_terracotta.go delete mode 100644 level/block/cyan_shulker_box.go delete mode 100644 level/block/cyan_stained_glass.go delete mode 100644 level/block/cyan_stained_glass_pane.go delete mode 100644 level/block/cyan_terracotta.go delete mode 100644 level/block/cyan_wall_banner.go delete mode 100644 level/block/cyan_wool.go delete mode 100644 level/block/damaged_anvil.go delete mode 100644 level/block/dandelion.go delete mode 100644 level/block/dark_oak_button.go delete mode 100644 level/block/dark_oak_door.go delete mode 100644 level/block/dark_oak_fence.go delete mode 100644 level/block/dark_oak_fence_gate.go delete mode 100644 level/block/dark_oak_leaves.go delete mode 100644 level/block/dark_oak_log.go delete mode 100644 level/block/dark_oak_planks.go delete mode 100644 level/block/dark_oak_pressure_plate.go delete mode 100644 level/block/dark_oak_sapling.go delete mode 100644 level/block/dark_oak_sign.go delete mode 100644 level/block/dark_oak_slab.go delete mode 100644 level/block/dark_oak_stairs.go delete mode 100644 level/block/dark_oak_trapdoor.go delete mode 100644 level/block/dark_oak_wall_sign.go delete mode 100644 level/block/dark_oak_wood.go delete mode 100644 level/block/dark_prismarine.go delete mode 100644 level/block/dark_prismarine_slab.go delete mode 100644 level/block/dark_prismarine_stairs.go delete mode 100644 level/block/daylight_detector.go delete mode 100644 level/block/dead_brain_coral.go delete mode 100644 level/block/dead_brain_coral_block.go delete mode 100644 level/block/dead_brain_coral_fan.go delete mode 100644 level/block/dead_brain_coral_wall_fan.go delete mode 100644 level/block/dead_bubble_coral.go delete mode 100644 level/block/dead_bubble_coral_block.go delete mode 100644 level/block/dead_bubble_coral_fan.go delete mode 100644 level/block/dead_bubble_coral_wall_fan.go delete mode 100644 level/block/dead_bush.go delete mode 100644 level/block/dead_fire_coral.go delete mode 100644 level/block/dead_fire_coral_block.go delete mode 100644 level/block/dead_fire_coral_fan.go delete mode 100644 level/block/dead_fire_coral_wall_fan.go delete mode 100644 level/block/dead_horn_coral.go delete mode 100644 level/block/dead_horn_coral_block.go delete mode 100644 level/block/dead_horn_coral_fan.go delete mode 100644 level/block/dead_horn_coral_wall_fan.go delete mode 100644 level/block/dead_tube_coral.go delete mode 100644 level/block/dead_tube_coral_block.go delete mode 100644 level/block/dead_tube_coral_fan.go delete mode 100644 level/block/dead_tube_coral_wall_fan.go delete mode 100644 level/block/deepslate.go delete mode 100644 level/block/deepslate_brick_slab.go delete mode 100644 level/block/deepslate_brick_stairs.go delete mode 100644 level/block/deepslate_brick_wall.go delete mode 100644 level/block/deepslate_bricks.go delete mode 100644 level/block/deepslate_coal_ore.go delete mode 100644 level/block/deepslate_copper_ore.go delete mode 100644 level/block/deepslate_diamond_ore.go delete mode 100644 level/block/deepslate_emerald_ore.go delete mode 100644 level/block/deepslate_gold_ore.go delete mode 100644 level/block/deepslate_iron_ore.go delete mode 100644 level/block/deepslate_lapis_ore.go delete mode 100644 level/block/deepslate_redstone_ore.go delete mode 100644 level/block/deepslate_tile_slab.go delete mode 100644 level/block/deepslate_tile_stairs.go delete mode 100644 level/block/deepslate_tile_wall.go delete mode 100644 level/block/deepslate_tiles.go delete mode 100644 level/block/detector_rail.go delete mode 100644 level/block/diamond_block.go delete mode 100644 level/block/diamond_ore.go delete mode 100644 level/block/diorite.go delete mode 100644 level/block/diorite_slab.go delete mode 100644 level/block/diorite_stairs.go delete mode 100644 level/block/diorite_wall.go delete mode 100644 level/block/dirt.go delete mode 100644 level/block/dirt_path.go delete mode 100644 level/block/dispenser.go delete mode 100644 level/block/dragon_egg.go delete mode 100644 level/block/dragon_head.go delete mode 100644 level/block/dragon_wall_head.go delete mode 100644 level/block/dried_kelp_block.go delete mode 100644 level/block/dripstone_block.go delete mode 100644 level/block/dropper.go delete mode 100644 level/block/emerald_block.go delete mode 100644 level/block/emerald_ore.go delete mode 100644 level/block/enchanting_table.go delete mode 100644 level/block/end_gateway.go delete mode 100644 level/block/end_portal.go delete mode 100644 level/block/end_portal_frame.go delete mode 100644 level/block/end_rod.go delete mode 100644 level/block/end_stone.go delete mode 100644 level/block/end_stone_brick_slab.go delete mode 100644 level/block/end_stone_brick_stairs.go delete mode 100644 level/block/end_stone_brick_wall.go delete mode 100644 level/block/end_stone_bricks.go delete mode 100644 level/block/ender_chest.go delete mode 100644 level/block/exposed_copper.go delete mode 100644 level/block/exposed_cut_copper.go delete mode 100644 level/block/exposed_cut_copper_slab.go delete mode 100644 level/block/exposed_cut_copper_stairs.go delete mode 100644 level/block/farmland.go delete mode 100644 level/block/fern.go delete mode 100644 level/block/fire.go delete mode 100644 level/block/fire_coral.go delete mode 100644 level/block/fire_coral_block.go delete mode 100644 level/block/fire_coral_fan.go delete mode 100644 level/block/fire_coral_wall_fan.go delete mode 100644 level/block/fletching_table.go delete mode 100644 level/block/flower_pot.go delete mode 100644 level/block/flowering_azalea.go delete mode 100644 level/block/flowering_azalea_leaves.go delete mode 100644 level/block/frosted_ice.go delete mode 100644 level/block/furnace.go create mode 100644 level/block/generator/blocks.go.tmpl delete mode 100644 level/block/gilded_blackstone.go delete mode 100644 level/block/glass.go delete mode 100644 level/block/glass_pane.go delete mode 100644 level/block/glow_lichen.go delete mode 100644 level/block/glowstone.go delete mode 100644 level/block/gold_block.go delete mode 100644 level/block/gold_ore.go delete mode 100644 level/block/granite.go delete mode 100644 level/block/granite_slab.go delete mode 100644 level/block/granite_stairs.go delete mode 100644 level/block/granite_wall.go delete mode 100644 level/block/grass.go delete mode 100644 level/block/grass_block.go delete mode 100644 level/block/gravel.go delete mode 100644 level/block/gray_banner.go delete mode 100644 level/block/gray_bed.go delete mode 100644 level/block/gray_candle.go delete mode 100644 level/block/gray_candle_cake.go delete mode 100644 level/block/gray_carpet.go delete mode 100644 level/block/gray_concrete.go delete mode 100644 level/block/gray_concrete_powder.go delete mode 100644 level/block/gray_glazed_terracotta.go delete mode 100644 level/block/gray_shulker_box.go delete mode 100644 level/block/gray_stained_glass.go delete mode 100644 level/block/gray_stained_glass_pane.go delete mode 100644 level/block/gray_terracotta.go delete mode 100644 level/block/gray_wall_banner.go delete mode 100644 level/block/gray_wool.go delete mode 100644 level/block/green_banner.go delete mode 100644 level/block/green_bed.go delete mode 100644 level/block/green_candle.go delete mode 100644 level/block/green_candle_cake.go delete mode 100644 level/block/green_carpet.go delete mode 100644 level/block/green_concrete.go delete mode 100644 level/block/green_concrete_powder.go delete mode 100644 level/block/green_glazed_terracotta.go delete mode 100644 level/block/green_shulker_box.go delete mode 100644 level/block/green_stained_glass.go delete mode 100644 level/block/green_stained_glass_pane.go delete mode 100644 level/block/green_terracotta.go delete mode 100644 level/block/green_wall_banner.go delete mode 100644 level/block/green_wool.go delete mode 100644 level/block/grindstone.go delete mode 100644 level/block/hanging_roots.go delete mode 100644 level/block/hay_block.go delete mode 100644 level/block/heavy_weighted_pressure_plate.go delete mode 100644 level/block/honey_block.go delete mode 100644 level/block/honeycomb_block.go delete mode 100644 level/block/hopper.go delete mode 100644 level/block/horn_coral.go delete mode 100644 level/block/horn_coral_block.go delete mode 100644 level/block/horn_coral_fan.go delete mode 100644 level/block/horn_coral_wall_fan.go delete mode 100644 level/block/ice.go delete mode 100644 level/block/infested_chiseled_stone_bricks.go delete mode 100644 level/block/infested_cobblestone.go delete mode 100644 level/block/infested_cracked_stone_bricks.go delete mode 100644 level/block/infested_deepslate.go delete mode 100644 level/block/infested_mossy_stone_bricks.go delete mode 100644 level/block/infested_stone.go delete mode 100644 level/block/infested_stone_bricks.go delete mode 100644 level/block/iron_bars.go delete mode 100644 level/block/iron_block.go delete mode 100644 level/block/iron_door.go delete mode 100644 level/block/iron_ore.go delete mode 100644 level/block/iron_trapdoor.go delete mode 100644 level/block/jack_o_lantern.go delete mode 100644 level/block/jigsaw.go delete mode 100644 level/block/jukebox.go delete mode 100644 level/block/jungle_button.go delete mode 100644 level/block/jungle_door.go delete mode 100644 level/block/jungle_fence.go delete mode 100644 level/block/jungle_fence_gate.go delete mode 100644 level/block/jungle_leaves.go delete mode 100644 level/block/jungle_log.go delete mode 100644 level/block/jungle_planks.go delete mode 100644 level/block/jungle_pressure_plate.go delete mode 100644 level/block/jungle_sapling.go delete mode 100644 level/block/jungle_sign.go delete mode 100644 level/block/jungle_slab.go delete mode 100644 level/block/jungle_stairs.go delete mode 100644 level/block/jungle_trapdoor.go delete mode 100644 level/block/jungle_wall_sign.go delete mode 100644 level/block/jungle_wood.go delete mode 100644 level/block/kelp.go delete mode 100644 level/block/kelp_plant.go delete mode 100644 level/block/ladder.go delete mode 100644 level/block/lantern.go delete mode 100644 level/block/lapis_block.go delete mode 100644 level/block/lapis_ore.go delete mode 100644 level/block/large_amethyst_bud.go delete mode 100644 level/block/large_fern.go delete mode 100644 level/block/lava.go delete mode 100644 level/block/lava_cauldron.go delete mode 100644 level/block/lectern.go delete mode 100644 level/block/lever.go delete mode 100644 level/block/light.go delete mode 100644 level/block/light_blue_banner.go delete mode 100644 level/block/light_blue_bed.go delete mode 100644 level/block/light_blue_candle.go delete mode 100644 level/block/light_blue_candle_cake.go delete mode 100644 level/block/light_blue_carpet.go delete mode 100644 level/block/light_blue_concrete.go delete mode 100644 level/block/light_blue_concrete_powder.go delete mode 100644 level/block/light_blue_glazed_terracotta.go delete mode 100644 level/block/light_blue_shulker_box.go delete mode 100644 level/block/light_blue_stained_glass.go delete mode 100644 level/block/light_blue_stained_glass_pane.go delete mode 100644 level/block/light_blue_terracotta.go delete mode 100644 level/block/light_blue_wall_banner.go delete mode 100644 level/block/light_blue_wool.go delete mode 100644 level/block/light_gray_banner.go delete mode 100644 level/block/light_gray_bed.go delete mode 100644 level/block/light_gray_candle.go delete mode 100644 level/block/light_gray_candle_cake.go delete mode 100644 level/block/light_gray_carpet.go delete mode 100644 level/block/light_gray_concrete.go delete mode 100644 level/block/light_gray_concrete_powder.go delete mode 100644 level/block/light_gray_glazed_terracotta.go delete mode 100644 level/block/light_gray_shulker_box.go delete mode 100644 level/block/light_gray_stained_glass.go delete mode 100644 level/block/light_gray_stained_glass_pane.go delete mode 100644 level/block/light_gray_terracotta.go delete mode 100644 level/block/light_gray_wall_banner.go delete mode 100644 level/block/light_gray_wool.go delete mode 100644 level/block/light_weighted_pressure_plate.go delete mode 100644 level/block/lightning_rod.go delete mode 100644 level/block/lilac.go delete mode 100644 level/block/lily_of_the_valley.go delete mode 100644 level/block/lily_pad.go delete mode 100644 level/block/lime_banner.go delete mode 100644 level/block/lime_bed.go delete mode 100644 level/block/lime_candle.go delete mode 100644 level/block/lime_candle_cake.go delete mode 100644 level/block/lime_carpet.go delete mode 100644 level/block/lime_concrete.go delete mode 100644 level/block/lime_concrete_powder.go delete mode 100644 level/block/lime_glazed_terracotta.go delete mode 100644 level/block/lime_shulker_box.go delete mode 100644 level/block/lime_stained_glass.go delete mode 100644 level/block/lime_stained_glass_pane.go delete mode 100644 level/block/lime_terracotta.go delete mode 100644 level/block/lime_wall_banner.go delete mode 100644 level/block/lime_wool.go delete mode 100644 level/block/lodestone.go delete mode 100644 level/block/loom.go delete mode 100644 level/block/magenta_banner.go delete mode 100644 level/block/magenta_bed.go delete mode 100644 level/block/magenta_candle.go delete mode 100644 level/block/magenta_candle_cake.go delete mode 100644 level/block/magenta_carpet.go delete mode 100644 level/block/magenta_concrete.go delete mode 100644 level/block/magenta_concrete_powder.go delete mode 100644 level/block/magenta_glazed_terracotta.go delete mode 100644 level/block/magenta_shulker_box.go delete mode 100644 level/block/magenta_stained_glass.go delete mode 100644 level/block/magenta_stained_glass_pane.go delete mode 100644 level/block/magenta_terracotta.go delete mode 100644 level/block/magenta_wall_banner.go delete mode 100644 level/block/magenta_wool.go delete mode 100644 level/block/magma_block.go delete mode 100644 level/block/medium_amethyst_bud.go delete mode 100644 level/block/melon.go delete mode 100644 level/block/melon_stem.go delete mode 100644 level/block/moss_block.go delete mode 100644 level/block/moss_carpet.go delete mode 100644 level/block/mossy_cobblestone.go delete mode 100644 level/block/mossy_cobblestone_slab.go delete mode 100644 level/block/mossy_cobblestone_stairs.go delete mode 100644 level/block/mossy_cobblestone_wall.go delete mode 100644 level/block/mossy_stone_brick_slab.go delete mode 100644 level/block/mossy_stone_brick_stairs.go delete mode 100644 level/block/mossy_stone_brick_wall.go delete mode 100644 level/block/mossy_stone_bricks.go delete mode 100644 level/block/moving_piston.go delete mode 100644 level/block/mushroom_stem.go delete mode 100644 level/block/mycelium.go delete mode 100644 level/block/nether_brick_fence.go delete mode 100644 level/block/nether_brick_slab.go delete mode 100644 level/block/nether_brick_stairs.go delete mode 100644 level/block/nether_brick_wall.go delete mode 100644 level/block/nether_bricks.go delete mode 100644 level/block/nether_gold_ore.go delete mode 100644 level/block/nether_portal.go delete mode 100644 level/block/nether_quartz_ore.go delete mode 100644 level/block/nether_sprouts.go delete mode 100644 level/block/nether_wart.go delete mode 100644 level/block/nether_wart_block.go delete mode 100644 level/block/netherite_block.go delete mode 100644 level/block/netherrack.go delete mode 100644 level/block/note_block.go delete mode 100644 level/block/oak_button.go delete mode 100644 level/block/oak_door.go delete mode 100644 level/block/oak_fence.go delete mode 100644 level/block/oak_fence_gate.go delete mode 100644 level/block/oak_leaves.go delete mode 100644 level/block/oak_log.go delete mode 100644 level/block/oak_planks.go delete mode 100644 level/block/oak_pressure_plate.go delete mode 100644 level/block/oak_sapling.go delete mode 100644 level/block/oak_sign.go delete mode 100644 level/block/oak_slab.go delete mode 100644 level/block/oak_stairs.go delete mode 100644 level/block/oak_trapdoor.go delete mode 100644 level/block/oak_wall_sign.go delete mode 100644 level/block/oak_wood.go delete mode 100644 level/block/observer.go delete mode 100644 level/block/obsidian.go delete mode 100644 level/block/orange_banner.go delete mode 100644 level/block/orange_bed.go delete mode 100644 level/block/orange_candle.go delete mode 100644 level/block/orange_candle_cake.go delete mode 100644 level/block/orange_carpet.go delete mode 100644 level/block/orange_concrete.go delete mode 100644 level/block/orange_concrete_powder.go delete mode 100644 level/block/orange_glazed_terracotta.go delete mode 100644 level/block/orange_shulker_box.go delete mode 100644 level/block/orange_stained_glass.go delete mode 100644 level/block/orange_stained_glass_pane.go delete mode 100644 level/block/orange_terracotta.go delete mode 100644 level/block/orange_tulip.go delete mode 100644 level/block/orange_wall_banner.go delete mode 100644 level/block/orange_wool.go delete mode 100644 level/block/oxeye_daisy.go delete mode 100644 level/block/oxidized_copper.go delete mode 100644 level/block/oxidized_cut_copper.go delete mode 100644 level/block/oxidized_cut_copper_slab.go delete mode 100644 level/block/oxidized_cut_copper_stairs.go delete mode 100644 level/block/packed_ice.go delete mode 100644 level/block/peony.go delete mode 100644 level/block/petrified_oak_slab.go delete mode 100644 level/block/pink_banner.go delete mode 100644 level/block/pink_bed.go delete mode 100644 level/block/pink_candle.go delete mode 100644 level/block/pink_candle_cake.go delete mode 100644 level/block/pink_carpet.go delete mode 100644 level/block/pink_concrete.go delete mode 100644 level/block/pink_concrete_powder.go delete mode 100644 level/block/pink_glazed_terracotta.go delete mode 100644 level/block/pink_shulker_box.go delete mode 100644 level/block/pink_stained_glass.go delete mode 100644 level/block/pink_stained_glass_pane.go delete mode 100644 level/block/pink_terracotta.go delete mode 100644 level/block/pink_tulip.go delete mode 100644 level/block/pink_wall_banner.go delete mode 100644 level/block/pink_wool.go delete mode 100644 level/block/piston.go delete mode 100644 level/block/piston_head.go delete mode 100644 level/block/player_head.go delete mode 100644 level/block/player_wall_head.go delete mode 100644 level/block/podzol.go delete mode 100644 level/block/pointed_dripstone.go delete mode 100644 level/block/polished_andesite.go delete mode 100644 level/block/polished_andesite_slab.go delete mode 100644 level/block/polished_andesite_stairs.go delete mode 100644 level/block/polished_basalt.go delete mode 100644 level/block/polished_blackstone.go delete mode 100644 level/block/polished_blackstone_brick_slab.go delete mode 100644 level/block/polished_blackstone_brick_stairs.go delete mode 100644 level/block/polished_blackstone_brick_wall.go delete mode 100644 level/block/polished_blackstone_bricks.go delete mode 100644 level/block/polished_blackstone_button.go delete mode 100644 level/block/polished_blackstone_pressure_plate.go delete mode 100644 level/block/polished_blackstone_slab.go delete mode 100644 level/block/polished_blackstone_stairs.go delete mode 100644 level/block/polished_blackstone_wall.go delete mode 100644 level/block/polished_deepslate.go delete mode 100644 level/block/polished_deepslate_slab.go delete mode 100644 level/block/polished_deepslate_stairs.go delete mode 100644 level/block/polished_deepslate_wall.go delete mode 100644 level/block/polished_diorite.go delete mode 100644 level/block/polished_diorite_slab.go delete mode 100644 level/block/polished_diorite_stairs.go delete mode 100644 level/block/polished_granite.go delete mode 100644 level/block/polished_granite_slab.go delete mode 100644 level/block/polished_granite_stairs.go delete mode 100644 level/block/poppy.go delete mode 100644 level/block/potatoes.go delete mode 100644 level/block/potted_acacia_sapling.go delete mode 100644 level/block/potted_allium.go delete mode 100644 level/block/potted_azalea_bush.go delete mode 100644 level/block/potted_azure_bluet.go delete mode 100644 level/block/potted_bamboo.go delete mode 100644 level/block/potted_birch_sapling.go delete mode 100644 level/block/potted_blue_orchid.go delete mode 100644 level/block/potted_brown_mushroom.go delete mode 100644 level/block/potted_cactus.go delete mode 100644 level/block/potted_cornflower.go delete mode 100644 level/block/potted_crimson_fungus.go delete mode 100644 level/block/potted_crimson_roots.go delete mode 100644 level/block/potted_dandelion.go delete mode 100644 level/block/potted_dark_oak_sapling.go delete mode 100644 level/block/potted_dead_bush.go delete mode 100644 level/block/potted_fern.go delete mode 100644 level/block/potted_flowering_azalea_bush.go delete mode 100644 level/block/potted_jungle_sapling.go delete mode 100644 level/block/potted_lily_of_the_valley.go delete mode 100644 level/block/potted_oak_sapling.go delete mode 100644 level/block/potted_orange_tulip.go delete mode 100644 level/block/potted_oxeye_daisy.go delete mode 100644 level/block/potted_pink_tulip.go delete mode 100644 level/block/potted_poppy.go delete mode 100644 level/block/potted_red_mushroom.go delete mode 100644 level/block/potted_red_tulip.go delete mode 100644 level/block/potted_spruce_sapling.go delete mode 100644 level/block/potted_warped_fungus.go delete mode 100644 level/block/potted_warped_roots.go delete mode 100644 level/block/potted_white_tulip.go delete mode 100644 level/block/potted_wither_rose.go delete mode 100644 level/block/powder_snow.go delete mode 100644 level/block/powder_snow_cauldron.go delete mode 100644 level/block/powered_rail.go delete mode 100644 level/block/prismarine.go delete mode 100644 level/block/prismarine_brick_slab.go delete mode 100644 level/block/prismarine_brick_stairs.go delete mode 100644 level/block/prismarine_bricks.go delete mode 100644 level/block/prismarine_slab.go delete mode 100644 level/block/prismarine_stairs.go delete mode 100644 level/block/prismarine_wall.go create mode 100644 level/block/properties.go delete mode 100644 level/block/pumpkin.go delete mode 100644 level/block/pumpkin_stem.go delete mode 100644 level/block/purple_banner.go delete mode 100644 level/block/purple_bed.go delete mode 100644 level/block/purple_candle.go delete mode 100644 level/block/purple_candle_cake.go delete mode 100644 level/block/purple_carpet.go delete mode 100644 level/block/purple_concrete.go delete mode 100644 level/block/purple_concrete_powder.go delete mode 100644 level/block/purple_glazed_terracotta.go delete mode 100644 level/block/purple_shulker_box.go delete mode 100644 level/block/purple_stained_glass.go delete mode 100644 level/block/purple_stained_glass_pane.go delete mode 100644 level/block/purple_terracotta.go delete mode 100644 level/block/purple_wall_banner.go delete mode 100644 level/block/purple_wool.go delete mode 100644 level/block/purpur_block.go delete mode 100644 level/block/purpur_pillar.go delete mode 100644 level/block/purpur_slab.go delete mode 100644 level/block/purpur_stairs.go delete mode 100644 level/block/quartz_block.go delete mode 100644 level/block/quartz_bricks.go delete mode 100644 level/block/quartz_pillar.go delete mode 100644 level/block/quartz_slab.go delete mode 100644 level/block/quartz_stairs.go delete mode 100644 level/block/rail.go delete mode 100644 level/block/raw_copper_block.go delete mode 100644 level/block/raw_gold_block.go delete mode 100644 level/block/raw_iron_block.go delete mode 100644 level/block/red_banner.go delete mode 100644 level/block/red_bed.go delete mode 100644 level/block/red_candle.go delete mode 100644 level/block/red_candle_cake.go delete mode 100644 level/block/red_carpet.go delete mode 100644 level/block/red_concrete.go delete mode 100644 level/block/red_concrete_powder.go delete mode 100644 level/block/red_glazed_terracotta.go delete mode 100644 level/block/red_mushroom.go delete mode 100644 level/block/red_mushroom_block.go delete mode 100644 level/block/red_nether_brick_slab.go delete mode 100644 level/block/red_nether_brick_stairs.go delete mode 100644 level/block/red_nether_brick_wall.go delete mode 100644 level/block/red_nether_bricks.go delete mode 100644 level/block/red_sand.go delete mode 100644 level/block/red_sandstone.go delete mode 100644 level/block/red_sandstone_slab.go delete mode 100644 level/block/red_sandstone_stairs.go delete mode 100644 level/block/red_sandstone_wall.go delete mode 100644 level/block/red_shulker_box.go delete mode 100644 level/block/red_stained_glass.go delete mode 100644 level/block/red_stained_glass_pane.go delete mode 100644 level/block/red_terracotta.go delete mode 100644 level/block/red_tulip.go delete mode 100644 level/block/red_wall_banner.go delete mode 100644 level/block/red_wool.go delete mode 100644 level/block/redstone_block.go delete mode 100644 level/block/redstone_lamp.go delete mode 100644 level/block/redstone_ore.go delete mode 100644 level/block/redstone_torch.go delete mode 100644 level/block/redstone_wall_torch.go delete mode 100644 level/block/redstone_wire.go delete mode 100644 level/block/repeater.go delete mode 100644 level/block/repeating_command_block.go delete mode 100644 level/block/respawn_anchor.go delete mode 100644 level/block/rooted_dirt.go delete mode 100644 level/block/rose_bush.go delete mode 100644 level/block/sand.go delete mode 100644 level/block/sandstone.go delete mode 100644 level/block/sandstone_slab.go delete mode 100644 level/block/sandstone_stairs.go delete mode 100644 level/block/sandstone_wall.go delete mode 100644 level/block/scaffolding.go delete mode 100644 level/block/sculk_sensor.go delete mode 100644 level/block/sea_lantern.go delete mode 100644 level/block/sea_pickle.go delete mode 100644 level/block/seagrass.go delete mode 100644 level/block/shroomlight.go delete mode 100644 level/block/shulker_box.go delete mode 100644 level/block/skeleton_skull.go delete mode 100644 level/block/skeleton_wall_skull.go delete mode 100644 level/block/slime_block.go delete mode 100644 level/block/small_amethyst_bud.go delete mode 100644 level/block/small_dripleaf.go delete mode 100644 level/block/smithing_table.go delete mode 100644 level/block/smoker.go delete mode 100644 level/block/smooth_basalt.go delete mode 100644 level/block/smooth_quartz.go delete mode 100644 level/block/smooth_quartz_slab.go delete mode 100644 level/block/smooth_quartz_stairs.go delete mode 100644 level/block/smooth_red_sandstone.go delete mode 100644 level/block/smooth_red_sandstone_slab.go delete mode 100644 level/block/smooth_red_sandstone_stairs.go delete mode 100644 level/block/smooth_sandstone.go delete mode 100644 level/block/smooth_sandstone_slab.go delete mode 100644 level/block/smooth_sandstone_stairs.go delete mode 100644 level/block/smooth_stone.go delete mode 100644 level/block/smooth_stone_slab.go delete mode 100644 level/block/snow.go delete mode 100644 level/block/snow_block.go delete mode 100644 level/block/soul_campfire.go delete mode 100644 level/block/soul_fire.go delete mode 100644 level/block/soul_lantern.go delete mode 100644 level/block/soul_sand.go delete mode 100644 level/block/soul_soil.go delete mode 100644 level/block/soul_torch.go delete mode 100644 level/block/soul_wall_torch.go delete mode 100644 level/block/spawner.go delete mode 100644 level/block/sponge.go delete mode 100644 level/block/spore_blossom.go delete mode 100644 level/block/spruce_button.go delete mode 100644 level/block/spruce_door.go delete mode 100644 level/block/spruce_fence.go delete mode 100644 level/block/spruce_fence_gate.go delete mode 100644 level/block/spruce_leaves.go delete mode 100644 level/block/spruce_log.go delete mode 100644 level/block/spruce_planks.go delete mode 100644 level/block/spruce_pressure_plate.go delete mode 100644 level/block/spruce_sapling.go delete mode 100644 level/block/spruce_sign.go delete mode 100644 level/block/spruce_slab.go delete mode 100644 level/block/spruce_stairs.go delete mode 100644 level/block/spruce_trapdoor.go delete mode 100644 level/block/spruce_wall_sign.go delete mode 100644 level/block/spruce_wood.go delete mode 100644 level/block/sticky_piston.go delete mode 100644 level/block/stone.go delete mode 100644 level/block/stone_brick_slab.go delete mode 100644 level/block/stone_brick_stairs.go delete mode 100644 level/block/stone_brick_wall.go delete mode 100644 level/block/stone_bricks.go delete mode 100644 level/block/stone_button.go delete mode 100644 level/block/stone_pressure_plate.go delete mode 100644 level/block/stone_slab.go delete mode 100644 level/block/stone_stairs.go delete mode 100644 level/block/stonecutter.go delete mode 100644 level/block/stripped_acacia_log.go delete mode 100644 level/block/stripped_acacia_wood.go delete mode 100644 level/block/stripped_birch_log.go delete mode 100644 level/block/stripped_birch_wood.go delete mode 100644 level/block/stripped_crimson_hyphae.go delete mode 100644 level/block/stripped_crimson_stem.go delete mode 100644 level/block/stripped_dark_oak_log.go delete mode 100644 level/block/stripped_dark_oak_wood.go delete mode 100644 level/block/stripped_jungle_log.go delete mode 100644 level/block/stripped_jungle_wood.go delete mode 100644 level/block/stripped_oak_log.go delete mode 100644 level/block/stripped_oak_wood.go delete mode 100644 level/block/stripped_spruce_log.go delete mode 100644 level/block/stripped_spruce_wood.go delete mode 100644 level/block/stripped_warped_hyphae.go delete mode 100644 level/block/stripped_warped_stem.go delete mode 100644 level/block/structure_block.go delete mode 100644 level/block/structure_void.go delete mode 100644 level/block/sugar_cane.go delete mode 100644 level/block/sunflower.go delete mode 100644 level/block/sweet_berry_bush.go delete mode 100644 level/block/tall_grass.go delete mode 100644 level/block/tall_seagrass.go delete mode 100644 level/block/target.go delete mode 100644 level/block/terracotta.go delete mode 100644 level/block/testdata/block_states.nbt create mode 100644 level/block/testdata/blocks.nbt delete mode 100644 level/block/tinted_glass.go delete mode 100644 level/block/tnt.go delete mode 100644 level/block/torch.go delete mode 100644 level/block/trapped_chest.go delete mode 100644 level/block/tripwire.go delete mode 100644 level/block/tripwire_hook.go delete mode 100644 level/block/tube_coral.go delete mode 100644 level/block/tube_coral_block.go delete mode 100644 level/block/tube_coral_fan.go delete mode 100644 level/block/tube_coral_wall_fan.go delete mode 100644 level/block/tuff.go delete mode 100644 level/block/turtle_egg.go delete mode 100644 level/block/twisting_vines.go delete mode 100644 level/block/twisting_vines_plant.go delete mode 100644 level/block/vine.go delete mode 100644 level/block/void_air.go delete mode 100644 level/block/wall_torch.go delete mode 100644 level/block/warped_button.go delete mode 100644 level/block/warped_door.go delete mode 100644 level/block/warped_fence.go delete mode 100644 level/block/warped_fence_gate.go delete mode 100644 level/block/warped_fungus.go delete mode 100644 level/block/warped_hyphae.go delete mode 100644 level/block/warped_nylium.go delete mode 100644 level/block/warped_planks.go delete mode 100644 level/block/warped_pressure_plate.go delete mode 100644 level/block/warped_roots.go delete mode 100644 level/block/warped_sign.go delete mode 100644 level/block/warped_slab.go delete mode 100644 level/block/warped_stairs.go delete mode 100644 level/block/warped_stem.go delete mode 100644 level/block/warped_trapdoor.go delete mode 100644 level/block/warped_wall_sign.go delete mode 100644 level/block/warped_wart_block.go delete mode 100644 level/block/water.go delete mode 100644 level/block/water_cauldron.go delete mode 100644 level/block/waxed_copper_block.go delete mode 100644 level/block/waxed_cut_copper.go delete mode 100644 level/block/waxed_cut_copper_slab.go delete mode 100644 level/block/waxed_cut_copper_stairs.go delete mode 100644 level/block/waxed_exposed_copper.go delete mode 100644 level/block/waxed_exposed_cut_copper.go delete mode 100644 level/block/waxed_exposed_cut_copper_slab.go delete mode 100644 level/block/waxed_exposed_cut_copper_stairs.go delete mode 100644 level/block/waxed_oxidized_copper.go delete mode 100644 level/block/waxed_oxidized_cut_copper.go delete mode 100644 level/block/waxed_oxidized_cut_copper_slab.go delete mode 100644 level/block/waxed_oxidized_cut_copper_stairs.go delete mode 100644 level/block/waxed_weathered_copper.go delete mode 100644 level/block/waxed_weathered_cut_copper.go delete mode 100644 level/block/waxed_weathered_cut_copper_slab.go delete mode 100644 level/block/waxed_weathered_cut_copper_stairs.go delete mode 100644 level/block/weathered_copper.go delete mode 100644 level/block/weathered_cut_copper.go delete mode 100644 level/block/weathered_cut_copper_slab.go delete mode 100644 level/block/weathered_cut_copper_stairs.go delete mode 100644 level/block/weeping_vines.go delete mode 100644 level/block/weeping_vines_plant.go delete mode 100644 level/block/wet_sponge.go delete mode 100644 level/block/wheat.go delete mode 100644 level/block/white_banner.go delete mode 100644 level/block/white_bed.go delete mode 100644 level/block/white_candle.go delete mode 100644 level/block/white_candle_cake.go delete mode 100644 level/block/white_carpet.go delete mode 100644 level/block/white_concrete.go delete mode 100644 level/block/white_concrete_powder.go delete mode 100644 level/block/white_glazed_terracotta.go delete mode 100644 level/block/white_shulker_box.go delete mode 100644 level/block/white_stained_glass.go delete mode 100644 level/block/white_stained_glass_pane.go delete mode 100644 level/block/white_terracotta.go delete mode 100644 level/block/white_tulip.go delete mode 100644 level/block/white_wall_banner.go delete mode 100644 level/block/white_wool.go delete mode 100644 level/block/wither_rose.go delete mode 100644 level/block/wither_skeleton_skull.go delete mode 100644 level/block/wither_skeleton_wall_skull.go delete mode 100644 level/block/yellow_banner.go delete mode 100644 level/block/yellow_bed.go delete mode 100644 level/block/yellow_candle.go delete mode 100644 level/block/yellow_candle_cake.go delete mode 100644 level/block/yellow_carpet.go delete mode 100644 level/block/yellow_concrete.go delete mode 100644 level/block/yellow_concrete_powder.go delete mode 100644 level/block/yellow_glazed_terracotta.go delete mode 100644 level/block/yellow_shulker_box.go delete mode 100644 level/block/yellow_stained_glass.go delete mode 100644 level/block/yellow_stained_glass_pane.go delete mode 100644 level/block/yellow_terracotta.go delete mode 100644 level/block/yellow_wall_banner.go delete mode 100644 level/block/yellow_wool.go delete mode 100644 level/block/zombie_head.go delete mode 100644 level/block/zombie_wall_head.go diff --git a/examples/genmaps/genmaps.go b/examples/genmaps/genmaps.go index b964d12..c1039a5 100644 --- a/examples/genmaps/genmaps.go +++ b/examples/genmaps/genmaps.go @@ -101,7 +101,7 @@ func main() { var column save.Chunk for task := range c { if err := column.Load(task.data); err != nil { - log.Printf("Decode column (%d.%d) error: %v", task.pos[0], task.pos[1], err) + log.Printf("UnmarshalNBT column (%d.%d) error: %v", task.pos[0], task.pos[1], err) } //pos := [2]int{int(column.Level.PosX), int(column.Level.PosZ)} //if pos != task.pos { diff --git a/level/block/acacia_button.go b/level/block/acacia_button.go deleted file mode 100644 index f6c0fbf..0000000 --- a/level/block/acacia_button.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type AcaciaButton struct { - Face string - Facing string - Powered string -} - -func (AcaciaButton) ID() string { - return "minecraft:acacia_button" -} diff --git a/level/block/acacia_door.go b/level/block/acacia_door.go deleted file mode 100644 index 3f001ae..0000000 --- a/level/block/acacia_door.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type AcaciaDoor struct { - Facing string - Half string - Hinge string - Open string - Powered string -} - -func (AcaciaDoor) ID() string { - return "minecraft:acacia_door" -} diff --git a/level/block/acacia_fence.go b/level/block/acacia_fence.go deleted file mode 100644 index ce66ea6..0000000 --- a/level/block/acacia_fence.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type AcaciaFence struct { - East string - North string - South string - Waterlogged string - West string -} - -func (AcaciaFence) ID() string { - return "minecraft:acacia_fence" -} diff --git a/level/block/acacia_fence_gate.go b/level/block/acacia_fence_gate.go deleted file mode 100644 index e589e0a..0000000 --- a/level/block/acacia_fence_gate.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type AcaciaFenceGate struct { - Facing string - In_wall string - Open string - Powered string -} - -func (AcaciaFenceGate) ID() string { - return "minecraft:acacia_fence_gate" -} diff --git a/level/block/acacia_leaves.go b/level/block/acacia_leaves.go deleted file mode 100644 index 7387673..0000000 --- a/level/block/acacia_leaves.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type AcaciaLeaves struct { - Distance string - Persistent string -} - -func (AcaciaLeaves) ID() string { - return "minecraft:acacia_leaves" -} diff --git a/level/block/acacia_log.go b/level/block/acacia_log.go deleted file mode 100644 index 3e33091..0000000 --- a/level/block/acacia_log.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type AcaciaLog struct { - Axis string -} - -func (AcaciaLog) ID() string { - return "minecraft:acacia_log" -} diff --git a/level/block/acacia_planks.go b/level/block/acacia_planks.go deleted file mode 100644 index 1a98f8f..0000000 --- a/level/block/acacia_planks.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type AcaciaPlanks struct { -} - -func (AcaciaPlanks) ID() string { - return "minecraft:acacia_planks" -} diff --git a/level/block/acacia_pressure_plate.go b/level/block/acacia_pressure_plate.go deleted file mode 100644 index 4868342..0000000 --- a/level/block/acacia_pressure_plate.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type AcaciaPressurePlate struct { - Powered string -} - -func (AcaciaPressurePlate) ID() string { - return "minecraft:acacia_pressure_plate" -} diff --git a/level/block/acacia_sapling.go b/level/block/acacia_sapling.go deleted file mode 100644 index d45f88c..0000000 --- a/level/block/acacia_sapling.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type AcaciaSapling struct { - Stage string -} - -func (AcaciaSapling) ID() string { - return "minecraft:acacia_sapling" -} diff --git a/level/block/acacia_sign.go b/level/block/acacia_sign.go deleted file mode 100644 index 9c0ccb7..0000000 --- a/level/block/acacia_sign.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type AcaciaSign struct { - Rotation string - Waterlogged string -} - -func (AcaciaSign) ID() string { - return "minecraft:acacia_sign" -} diff --git a/level/block/acacia_slab.go b/level/block/acacia_slab.go deleted file mode 100644 index 8eaa992..0000000 --- a/level/block/acacia_slab.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type AcaciaSlab struct { - Type string - Waterlogged string -} - -func (AcaciaSlab) ID() string { - return "minecraft:acacia_slab" -} diff --git a/level/block/acacia_stairs.go b/level/block/acacia_stairs.go deleted file mode 100644 index 0f6bbfe..0000000 --- a/level/block/acacia_stairs.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type AcaciaStairs struct { - Facing string - Half string - Shape string - Waterlogged string -} - -func (AcaciaStairs) ID() string { - return "minecraft:acacia_stairs" -} diff --git a/level/block/acacia_trapdoor.go b/level/block/acacia_trapdoor.go deleted file mode 100644 index 82f1ed6..0000000 --- a/level/block/acacia_trapdoor.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type AcaciaTrapdoor struct { - Facing string - Half string - Open string - Powered string - Waterlogged string -} - -func (AcaciaTrapdoor) ID() string { - return "minecraft:acacia_trapdoor" -} diff --git a/level/block/acacia_wall_sign.go b/level/block/acacia_wall_sign.go deleted file mode 100644 index c35a131..0000000 --- a/level/block/acacia_wall_sign.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type AcaciaWallSign struct { - Facing string - Waterlogged string -} - -func (AcaciaWallSign) ID() string { - return "minecraft:acacia_wall_sign" -} diff --git a/level/block/acacia_wood.go b/level/block/acacia_wood.go deleted file mode 100644 index e8bd2fa..0000000 --- a/level/block/acacia_wood.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type AcaciaWood struct { - Axis string -} - -func (AcaciaWood) ID() string { - return "minecraft:acacia_wood" -} diff --git a/level/block/activator_rail.go b/level/block/activator_rail.go deleted file mode 100644 index 4c1bbb6..0000000 --- a/level/block/activator_rail.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type ActivatorRail struct { - Powered string - Shape string - Waterlogged string -} - -func (ActivatorRail) ID() string { - return "minecraft:activator_rail" -} diff --git a/level/block/air.go b/level/block/air.go deleted file mode 100644 index 50ea2dc..0000000 --- a/level/block/air.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type Air struct { -} - -func (Air) ID() string { - return "minecraft:air" -} diff --git a/level/block/allium.go b/level/block/allium.go deleted file mode 100644 index d7ae313..0000000 --- a/level/block/allium.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type Allium struct { -} - -func (Allium) ID() string { - return "minecraft:allium" -} diff --git a/level/block/amethyst_block.go b/level/block/amethyst_block.go deleted file mode 100644 index d909594..0000000 --- a/level/block/amethyst_block.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type AmethystBlock struct { -} - -func (AmethystBlock) ID() string { - return "minecraft:amethyst_block" -} diff --git a/level/block/amethyst_cluster.go b/level/block/amethyst_cluster.go deleted file mode 100644 index dadc1a5..0000000 --- a/level/block/amethyst_cluster.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type AmethystCluster struct { - Facing string - Waterlogged string -} - -func (AmethystCluster) ID() string { - return "minecraft:amethyst_cluster" -} diff --git a/level/block/ancient_debris.go b/level/block/ancient_debris.go deleted file mode 100644 index 6d463b7..0000000 --- a/level/block/ancient_debris.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type AncientDebris struct { -} - -func (AncientDebris) ID() string { - return "minecraft:ancient_debris" -} diff --git a/level/block/andesite.go b/level/block/andesite.go deleted file mode 100644 index 5fccd53..0000000 --- a/level/block/andesite.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type Andesite struct { -} - -func (Andesite) ID() string { - return "minecraft:andesite" -} diff --git a/level/block/andesite_slab.go b/level/block/andesite_slab.go deleted file mode 100644 index 233e432..0000000 --- a/level/block/andesite_slab.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type AndesiteSlab struct { - Type string - Waterlogged string -} - -func (AndesiteSlab) ID() string { - return "minecraft:andesite_slab" -} diff --git a/level/block/andesite_stairs.go b/level/block/andesite_stairs.go deleted file mode 100644 index 6310478..0000000 --- a/level/block/andesite_stairs.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type AndesiteStairs struct { - Facing string - Half string - Shape string - Waterlogged string -} - -func (AndesiteStairs) ID() string { - return "minecraft:andesite_stairs" -} diff --git a/level/block/andesite_wall.go b/level/block/andesite_wall.go deleted file mode 100644 index 48dd2d9..0000000 --- a/level/block/andesite_wall.go +++ /dev/null @@ -1,14 +0,0 @@ -package block - -type AndesiteWall struct { - East string - North string - South string - Up string - Waterlogged string - West string -} - -func (AndesiteWall) ID() string { - return "minecraft:andesite_wall" -} diff --git a/level/block/anvil.go b/level/block/anvil.go deleted file mode 100644 index d45f28b..0000000 --- a/level/block/anvil.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type Anvil struct { - Facing string -} - -func (Anvil) ID() string { - return "minecraft:anvil" -} diff --git a/level/block/attached_melon_stem.go b/level/block/attached_melon_stem.go deleted file mode 100644 index 1acfbd9..0000000 --- a/level/block/attached_melon_stem.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type AttachedMelonStem struct { - Facing string -} - -func (AttachedMelonStem) ID() string { - return "minecraft:attached_melon_stem" -} diff --git a/level/block/attached_pumpkin_stem.go b/level/block/attached_pumpkin_stem.go deleted file mode 100644 index 460369d..0000000 --- a/level/block/attached_pumpkin_stem.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type AttachedPumpkinStem struct { - Facing string -} - -func (AttachedPumpkinStem) ID() string { - return "minecraft:attached_pumpkin_stem" -} diff --git a/level/block/azalea.go b/level/block/azalea.go deleted file mode 100644 index 8b8005b..0000000 --- a/level/block/azalea.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type Azalea struct { -} - -func (Azalea) ID() string { - return "minecraft:azalea" -} diff --git a/level/block/azalea_leaves.go b/level/block/azalea_leaves.go deleted file mode 100644 index 7aac872..0000000 --- a/level/block/azalea_leaves.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type AzaleaLeaves struct { - Distance string - Persistent string -} - -func (AzaleaLeaves) ID() string { - return "minecraft:azalea_leaves" -} diff --git a/level/block/azure_bluet.go b/level/block/azure_bluet.go deleted file mode 100644 index 4b4fd3e..0000000 --- a/level/block/azure_bluet.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type AzureBluet struct { -} - -func (AzureBluet) ID() string { - return "minecraft:azure_bluet" -} diff --git a/level/block/bamboo.go b/level/block/bamboo.go deleted file mode 100644 index f89c582..0000000 --- a/level/block/bamboo.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type Bamboo struct { - Age string - Leaves string - Stage string -} - -func (Bamboo) ID() string { - return "minecraft:bamboo" -} diff --git a/level/block/bamboo_sapling.go b/level/block/bamboo_sapling.go deleted file mode 100644 index d129cc5..0000000 --- a/level/block/bamboo_sapling.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type BambooSapling struct { -} - -func (BambooSapling) ID() string { - return "minecraft:bamboo_sapling" -} diff --git a/level/block/barrel.go b/level/block/barrel.go deleted file mode 100644 index d1cae61..0000000 --- a/level/block/barrel.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type Barrel struct { - Facing string - Open string -} - -func (Barrel) ID() string { - return "minecraft:barrel" -} diff --git a/level/block/barrier.go b/level/block/barrier.go deleted file mode 100644 index bee75c2..0000000 --- a/level/block/barrier.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type Barrier struct { -} - -func (Barrier) ID() string { - return "minecraft:barrier" -} diff --git a/level/block/basalt.go b/level/block/basalt.go deleted file mode 100644 index 7b90109..0000000 --- a/level/block/basalt.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type Basalt struct { - Axis string -} - -func (Basalt) ID() string { - return "minecraft:basalt" -} diff --git a/level/block/beacon.go b/level/block/beacon.go deleted file mode 100644 index 3f2af56..0000000 --- a/level/block/beacon.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type Beacon struct { -} - -func (Beacon) ID() string { - return "minecraft:beacon" -} diff --git a/level/block/bedrock.go b/level/block/bedrock.go deleted file mode 100644 index c39f29d..0000000 --- a/level/block/bedrock.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type Bedrock struct { -} - -func (Bedrock) ID() string { - return "minecraft:bedrock" -} diff --git a/level/block/bee_nest.go b/level/block/bee_nest.go deleted file mode 100644 index 746da66..0000000 --- a/level/block/bee_nest.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type BeeNest struct { - Facing string - Honey_level string -} - -func (BeeNest) ID() string { - return "minecraft:bee_nest" -} diff --git a/level/block/beehive.go b/level/block/beehive.go deleted file mode 100644 index 39a8a79..0000000 --- a/level/block/beehive.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type Beehive struct { - Facing string - Honey_level string -} - -func (Beehive) ID() string { - return "minecraft:beehive" -} diff --git a/level/block/beetroots.go b/level/block/beetroots.go deleted file mode 100644 index a53875c..0000000 --- a/level/block/beetroots.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type Beetroots struct { - Age string -} - -func (Beetroots) ID() string { - return "minecraft:beetroots" -} diff --git a/level/block/bell.go b/level/block/bell.go deleted file mode 100644 index 64a3478..0000000 --- a/level/block/bell.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type Bell struct { - Attachment string - Facing string - Powered string -} - -func (Bell) ID() string { - return "minecraft:bell" -} diff --git a/level/block/big_dripleaf.go b/level/block/big_dripleaf.go deleted file mode 100644 index efef598..0000000 --- a/level/block/big_dripleaf.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type BigDripleaf struct { - Facing string - Tilt string - Waterlogged string -} - -func (BigDripleaf) ID() string { - return "minecraft:big_dripleaf" -} diff --git a/level/block/big_dripleaf_stem.go b/level/block/big_dripleaf_stem.go deleted file mode 100644 index f55e4fb..0000000 --- a/level/block/big_dripleaf_stem.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type BigDripleafStem struct { - Facing string - Waterlogged string -} - -func (BigDripleafStem) ID() string { - return "minecraft:big_dripleaf_stem" -} diff --git a/level/block/birch_button.go b/level/block/birch_button.go deleted file mode 100644 index cdfb364..0000000 --- a/level/block/birch_button.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type BirchButton struct { - Face string - Facing string - Powered string -} - -func (BirchButton) ID() string { - return "minecraft:birch_button" -} diff --git a/level/block/birch_door.go b/level/block/birch_door.go deleted file mode 100644 index d9480f0..0000000 --- a/level/block/birch_door.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type BirchDoor struct { - Facing string - Half string - Hinge string - Open string - Powered string -} - -func (BirchDoor) ID() string { - return "minecraft:birch_door" -} diff --git a/level/block/birch_fence.go b/level/block/birch_fence.go deleted file mode 100644 index 91988e3..0000000 --- a/level/block/birch_fence.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type BirchFence struct { - East string - North string - South string - Waterlogged string - West string -} - -func (BirchFence) ID() string { - return "minecraft:birch_fence" -} diff --git a/level/block/birch_fence_gate.go b/level/block/birch_fence_gate.go deleted file mode 100644 index 588ff67..0000000 --- a/level/block/birch_fence_gate.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type BirchFenceGate struct { - Facing string - In_wall string - Open string - Powered string -} - -func (BirchFenceGate) ID() string { - return "minecraft:birch_fence_gate" -} diff --git a/level/block/birch_leaves.go b/level/block/birch_leaves.go deleted file mode 100644 index 64e5f61..0000000 --- a/level/block/birch_leaves.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type BirchLeaves struct { - Distance string - Persistent string -} - -func (BirchLeaves) ID() string { - return "minecraft:birch_leaves" -} diff --git a/level/block/birch_log.go b/level/block/birch_log.go deleted file mode 100644 index 98efc5d..0000000 --- a/level/block/birch_log.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type BirchLog struct { - Axis string -} - -func (BirchLog) ID() string { - return "minecraft:birch_log" -} diff --git a/level/block/birch_planks.go b/level/block/birch_planks.go deleted file mode 100644 index 0f43274..0000000 --- a/level/block/birch_planks.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type BirchPlanks struct { -} - -func (BirchPlanks) ID() string { - return "minecraft:birch_planks" -} diff --git a/level/block/birch_pressure_plate.go b/level/block/birch_pressure_plate.go deleted file mode 100644 index 1a58b33..0000000 --- a/level/block/birch_pressure_plate.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type BirchPressurePlate struct { - Powered string -} - -func (BirchPressurePlate) ID() string { - return "minecraft:birch_pressure_plate" -} diff --git a/level/block/birch_sapling.go b/level/block/birch_sapling.go deleted file mode 100644 index 297ba9a..0000000 --- a/level/block/birch_sapling.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type BirchSapling struct { - Stage string -} - -func (BirchSapling) ID() string { - return "minecraft:birch_sapling" -} diff --git a/level/block/birch_sign.go b/level/block/birch_sign.go deleted file mode 100644 index 7a8be7b..0000000 --- a/level/block/birch_sign.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type BirchSign struct { - Rotation string - Waterlogged string -} - -func (BirchSign) ID() string { - return "minecraft:birch_sign" -} diff --git a/level/block/birch_slab.go b/level/block/birch_slab.go deleted file mode 100644 index 61acb28..0000000 --- a/level/block/birch_slab.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type BirchSlab struct { - Type string - Waterlogged string -} - -func (BirchSlab) ID() string { - return "minecraft:birch_slab" -} diff --git a/level/block/birch_stairs.go b/level/block/birch_stairs.go deleted file mode 100644 index 4e151fa..0000000 --- a/level/block/birch_stairs.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type BirchStairs struct { - Facing string - Half string - Shape string - Waterlogged string -} - -func (BirchStairs) ID() string { - return "minecraft:birch_stairs" -} diff --git a/level/block/birch_trapdoor.go b/level/block/birch_trapdoor.go deleted file mode 100644 index f08df2c..0000000 --- a/level/block/birch_trapdoor.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type BirchTrapdoor struct { - Facing string - Half string - Open string - Powered string - Waterlogged string -} - -func (BirchTrapdoor) ID() string { - return "minecraft:birch_trapdoor" -} diff --git a/level/block/birch_wall_sign.go b/level/block/birch_wall_sign.go deleted file mode 100644 index 98b1873..0000000 --- a/level/block/birch_wall_sign.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type BirchWallSign struct { - Facing string - Waterlogged string -} - -func (BirchWallSign) ID() string { - return "minecraft:birch_wall_sign" -} diff --git a/level/block/birch_wood.go b/level/block/birch_wood.go deleted file mode 100644 index fceb7d5..0000000 --- a/level/block/birch_wood.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type BirchWood struct { - Axis string -} - -func (BirchWood) ID() string { - return "minecraft:birch_wood" -} diff --git a/level/block/black_banner.go b/level/block/black_banner.go deleted file mode 100644 index 32f880b..0000000 --- a/level/block/black_banner.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type BlackBanner struct { - Rotation string -} - -func (BlackBanner) ID() string { - return "minecraft:black_banner" -} diff --git a/level/block/black_bed.go b/level/block/black_bed.go deleted file mode 100644 index 03d589f..0000000 --- a/level/block/black_bed.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type BlackBed struct { - Facing string - Occupied string - Part string -} - -func (BlackBed) ID() string { - return "minecraft:black_bed" -} diff --git a/level/block/black_candle.go b/level/block/black_candle.go deleted file mode 100644 index e5f3fa7..0000000 --- a/level/block/black_candle.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type BlackCandle struct { - Candles string - Lit string - Waterlogged string -} - -func (BlackCandle) ID() string { - return "minecraft:black_candle" -} diff --git a/level/block/black_candle_cake.go b/level/block/black_candle_cake.go deleted file mode 100644 index 86c781a..0000000 --- a/level/block/black_candle_cake.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type BlackCandleCake struct { - Lit string -} - -func (BlackCandleCake) ID() string { - return "minecraft:black_candle_cake" -} diff --git a/level/block/black_carpet.go b/level/block/black_carpet.go deleted file mode 100644 index e9ac59d..0000000 --- a/level/block/black_carpet.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type BlackCarpet struct { -} - -func (BlackCarpet) ID() string { - return "minecraft:black_carpet" -} diff --git a/level/block/black_concrete.go b/level/block/black_concrete.go deleted file mode 100644 index 86a3f5d..0000000 --- a/level/block/black_concrete.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type BlackConcrete struct { -} - -func (BlackConcrete) ID() string { - return "minecraft:black_concrete" -} diff --git a/level/block/black_concrete_powder.go b/level/block/black_concrete_powder.go deleted file mode 100644 index f24ab6e..0000000 --- a/level/block/black_concrete_powder.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type BlackConcretePowder struct { -} - -func (BlackConcretePowder) ID() string { - return "minecraft:black_concrete_powder" -} diff --git a/level/block/black_glazed_terracotta.go b/level/block/black_glazed_terracotta.go deleted file mode 100644 index 0e6b240..0000000 --- a/level/block/black_glazed_terracotta.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type BlackGlazedTerracotta struct { - Facing string -} - -func (BlackGlazedTerracotta) ID() string { - return "minecraft:black_glazed_terracotta" -} diff --git a/level/block/black_shulker_box.go b/level/block/black_shulker_box.go deleted file mode 100644 index 8923942..0000000 --- a/level/block/black_shulker_box.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type BlackShulkerBox struct { - Facing string -} - -func (BlackShulkerBox) ID() string { - return "minecraft:black_shulker_box" -} diff --git a/level/block/black_stained_glass.go b/level/block/black_stained_glass.go deleted file mode 100644 index a539399..0000000 --- a/level/block/black_stained_glass.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type BlackStainedGlass struct { -} - -func (BlackStainedGlass) ID() string { - return "minecraft:black_stained_glass" -} diff --git a/level/block/black_stained_glass_pane.go b/level/block/black_stained_glass_pane.go deleted file mode 100644 index c116586..0000000 --- a/level/block/black_stained_glass_pane.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type BlackStainedGlassPane struct { - East string - North string - South string - Waterlogged string - West string -} - -func (BlackStainedGlassPane) ID() string { - return "minecraft:black_stained_glass_pane" -} diff --git a/level/block/black_terracotta.go b/level/block/black_terracotta.go deleted file mode 100644 index 2a1b731..0000000 --- a/level/block/black_terracotta.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type BlackTerracotta struct { -} - -func (BlackTerracotta) ID() string { - return "minecraft:black_terracotta" -} diff --git a/level/block/black_wall_banner.go b/level/block/black_wall_banner.go deleted file mode 100644 index 35de5ab..0000000 --- a/level/block/black_wall_banner.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type BlackWallBanner struct { - Facing string -} - -func (BlackWallBanner) ID() string { - return "minecraft:black_wall_banner" -} diff --git a/level/block/black_wool.go b/level/block/black_wool.go deleted file mode 100644 index 511265d..0000000 --- a/level/block/black_wool.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type BlackWool struct { -} - -func (BlackWool) ID() string { - return "minecraft:black_wool" -} diff --git a/level/block/blackstone.go b/level/block/blackstone.go deleted file mode 100644 index 6161828..0000000 --- a/level/block/blackstone.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type Blackstone struct { -} - -func (Blackstone) ID() string { - return "minecraft:blackstone" -} diff --git a/level/block/blackstone_slab.go b/level/block/blackstone_slab.go deleted file mode 100644 index c0a6ffd..0000000 --- a/level/block/blackstone_slab.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type BlackstoneSlab struct { - Type string - Waterlogged string -} - -func (BlackstoneSlab) ID() string { - return "minecraft:blackstone_slab" -} diff --git a/level/block/blackstone_stairs.go b/level/block/blackstone_stairs.go deleted file mode 100644 index b559be8..0000000 --- a/level/block/blackstone_stairs.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type BlackstoneStairs struct { - Facing string - Half string - Shape string - Waterlogged string -} - -func (BlackstoneStairs) ID() string { - return "minecraft:blackstone_stairs" -} diff --git a/level/block/blackstone_wall.go b/level/block/blackstone_wall.go deleted file mode 100644 index 5ca4006..0000000 --- a/level/block/blackstone_wall.go +++ /dev/null @@ -1,14 +0,0 @@ -package block - -type BlackstoneWall struct { - East string - North string - South string - Up string - Waterlogged string - West string -} - -func (BlackstoneWall) ID() string { - return "minecraft:blackstone_wall" -} diff --git a/level/block/blast_furnace.go b/level/block/blast_furnace.go deleted file mode 100644 index edd2041..0000000 --- a/level/block/blast_furnace.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type BlastFurnace struct { - Facing string - Lit string -} - -func (BlastFurnace) ID() string { - return "minecraft:blast_furnace" -} diff --git a/level/block/block.go b/level/block/block.go index 3c795f3..c10593f 100644 --- a/level/block/block.go +++ b/level/block/block.go @@ -1,28 +1,62 @@ package block +import ( + "bytes" + "compress/zlib" + _ "embed" + "fmt" + + "github.com/Tnze/go-mc/nbt" +) + type Block interface { ID() string } +// This file stores all possible block states into a TAG_List with zlib compressed. +//go:embed block_states.nbt +var blockStates []byte + var toStateID = make(map[Block]int) var fromStateID []Block -var fromID = make(map[string]Block) func init() { - //regState := func(s Block) { - // if _, ok := toStateID[s]; ok { - // panic(fmt.Errorf("state %#v already exist", s)) - // } - // toStateID[s] = len(fromStateID) - // fromStateID = append(fromStateID, s) - //} - //regBlock := func(b Block) { - // fromID[b.ID()] = b - // b.forEachState(regState) - //} - //regBlock(Air{}) + regState := func(s Block) { + if _, ok := toStateID[s]; ok { + panic(fmt.Errorf("state %#v already exist", s)) + } + toStateID[s] = len(fromStateID) + fromStateID = append(fromStateID, s) + } + var states []struct { + Name string + Properties nbt.RawMessage + } + // decompress + z, err := zlib.NewReader(bytes.NewReader(blockStates)) + if err != nil { + panic(err) + } + // decode all states + if _, err = nbt.NewDecoder(z).Decode(&states); err != nil { + panic(err) + } + for _, state := range states { + block := fromID[state.Name] + if state.Properties.Type != nbt.TagEnd { + err := state.Properties.Unmarshal(&block) + if err != nil { + panic(err) + } + } + regState(block) + } } -func NewFromStateID(stateID int) Block { +func FromStateID(stateID int) Block { return fromStateID[stateID] } + +func ToStateID(b Block) int { + return toStateID[b] +} diff --git a/level/block/block_states.nbt b/level/block/block_states.nbt new file mode 100644 index 0000000000000000000000000000000000000000..b47edb99199155ba27a3aa99502ae8b75a1ef0a2 GIT binary patch literal 82577 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

KnFZD6}aWX&<&` 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

gw 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 Qz)%A@&AOLwORN6>5AJtqP5=M^ literal 0 HcmV?d00001 diff --git a/level/block/tinted_glass.go b/level/block/tinted_glass.go deleted file mode 100644 index 285f57e..0000000 --- a/level/block/tinted_glass.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type TintedGlass struct { -} - -func (TintedGlass) ID() string { - return "minecraft:tinted_glass" -} diff --git a/level/block/tnt.go b/level/block/tnt.go deleted file mode 100644 index 9ca5e99..0000000 --- a/level/block/tnt.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type Tnt struct { - Unstable string -} - -func (Tnt) ID() string { - return "minecraft:tnt" -} diff --git a/level/block/torch.go b/level/block/torch.go deleted file mode 100644 index f42a016..0000000 --- a/level/block/torch.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type Torch struct { -} - -func (Torch) ID() string { - return "minecraft:torch" -} diff --git a/level/block/trapped_chest.go b/level/block/trapped_chest.go deleted file mode 100644 index 0227e3b..0000000 --- a/level/block/trapped_chest.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type TrappedChest struct { - Facing string - Type string - Waterlogged string -} - -func (TrappedChest) ID() string { - return "minecraft:trapped_chest" -} diff --git a/level/block/tripwire.go b/level/block/tripwire.go deleted file mode 100644 index eac5493..0000000 --- a/level/block/tripwire.go +++ /dev/null @@ -1,15 +0,0 @@ -package block - -type Tripwire struct { - Attached string - Disarmed string - East string - North string - Powered string - South string - West string -} - -func (Tripwire) ID() string { - return "minecraft:tripwire" -} diff --git a/level/block/tripwire_hook.go b/level/block/tripwire_hook.go deleted file mode 100644 index 19da7fb..0000000 --- a/level/block/tripwire_hook.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type TripwireHook struct { - Attached string - Facing string - Powered string -} - -func (TripwireHook) ID() string { - return "minecraft:tripwire_hook" -} diff --git a/level/block/tube_coral.go b/level/block/tube_coral.go deleted file mode 100644 index 4894d4d..0000000 --- a/level/block/tube_coral.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type TubeCoral struct { - Waterlogged string -} - -func (TubeCoral) ID() string { - return "minecraft:tube_coral" -} diff --git a/level/block/tube_coral_block.go b/level/block/tube_coral_block.go deleted file mode 100644 index 7b482c0..0000000 --- a/level/block/tube_coral_block.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type TubeCoralBlock struct { -} - -func (TubeCoralBlock) ID() string { - return "minecraft:tube_coral_block" -} diff --git a/level/block/tube_coral_fan.go b/level/block/tube_coral_fan.go deleted file mode 100644 index ca73674..0000000 --- a/level/block/tube_coral_fan.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type TubeCoralFan struct { - Waterlogged string -} - -func (TubeCoralFan) ID() string { - return "minecraft:tube_coral_fan" -} diff --git a/level/block/tube_coral_wall_fan.go b/level/block/tube_coral_wall_fan.go deleted file mode 100644 index 338462a..0000000 --- a/level/block/tube_coral_wall_fan.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type TubeCoralWallFan struct { - Facing string - Waterlogged string -} - -func (TubeCoralWallFan) ID() string { - return "minecraft:tube_coral_wall_fan" -} diff --git a/level/block/tuff.go b/level/block/tuff.go deleted file mode 100644 index e92be94..0000000 --- a/level/block/tuff.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type Tuff struct { -} - -func (Tuff) ID() string { - return "minecraft:tuff" -} diff --git a/level/block/turtle_egg.go b/level/block/turtle_egg.go deleted file mode 100644 index 0e546db..0000000 --- a/level/block/turtle_egg.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type TurtleEgg struct { - Eggs string - Hatch string -} - -func (TurtleEgg) ID() string { - return "minecraft:turtle_egg" -} diff --git a/level/block/twisting_vines.go b/level/block/twisting_vines.go deleted file mode 100644 index 00cbb65..0000000 --- a/level/block/twisting_vines.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type TwistingVines struct { - Age string -} - -func (TwistingVines) ID() string { - return "minecraft:twisting_vines" -} diff --git a/level/block/twisting_vines_plant.go b/level/block/twisting_vines_plant.go deleted file mode 100644 index e34b868..0000000 --- a/level/block/twisting_vines_plant.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type TwistingVinesPlant struct { -} - -func (TwistingVinesPlant) ID() string { - return "minecraft:twisting_vines_plant" -} diff --git a/level/block/vine.go b/level/block/vine.go deleted file mode 100644 index d7fca9d..0000000 --- a/level/block/vine.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type Vine struct { - East string - North string - South string - Up string - West string -} - -func (Vine) ID() string { - return "minecraft:vine" -} diff --git a/level/block/void_air.go b/level/block/void_air.go deleted file mode 100644 index 2c6923b..0000000 --- a/level/block/void_air.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type VoidAir struct { -} - -func (VoidAir) ID() string { - return "minecraft:void_air" -} diff --git a/level/block/wall_torch.go b/level/block/wall_torch.go deleted file mode 100644 index 481d088..0000000 --- a/level/block/wall_torch.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WallTorch struct { - Facing string -} - -func (WallTorch) ID() string { - return "minecraft:wall_torch" -} diff --git a/level/block/warped_button.go b/level/block/warped_button.go deleted file mode 100644 index 708b84e..0000000 --- a/level/block/warped_button.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type WarpedButton struct { - Face string - Facing string - Powered string -} - -func (WarpedButton) ID() string { - return "minecraft:warped_button" -} diff --git a/level/block/warped_door.go b/level/block/warped_door.go deleted file mode 100644 index fbae3a0..0000000 --- a/level/block/warped_door.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type WarpedDoor struct { - Facing string - Half string - Hinge string - Open string - Powered string -} - -func (WarpedDoor) ID() string { - return "minecraft:warped_door" -} diff --git a/level/block/warped_fence.go b/level/block/warped_fence.go deleted file mode 100644 index 5e6572b..0000000 --- a/level/block/warped_fence.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type WarpedFence struct { - East string - North string - South string - Waterlogged string - West string -} - -func (WarpedFence) ID() string { - return "minecraft:warped_fence" -} diff --git a/level/block/warped_fence_gate.go b/level/block/warped_fence_gate.go deleted file mode 100644 index e0f2546..0000000 --- a/level/block/warped_fence_gate.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type WarpedFenceGate struct { - Facing string - In_wall string - Open string - Powered string -} - -func (WarpedFenceGate) ID() string { - return "minecraft:warped_fence_gate" -} diff --git a/level/block/warped_fungus.go b/level/block/warped_fungus.go deleted file mode 100644 index fd9a40c..0000000 --- a/level/block/warped_fungus.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WarpedFungus struct { -} - -func (WarpedFungus) ID() string { - return "minecraft:warped_fungus" -} diff --git a/level/block/warped_hyphae.go b/level/block/warped_hyphae.go deleted file mode 100644 index 2e1a84f..0000000 --- a/level/block/warped_hyphae.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WarpedHyphae struct { - Axis string -} - -func (WarpedHyphae) ID() string { - return "minecraft:warped_hyphae" -} diff --git a/level/block/warped_nylium.go b/level/block/warped_nylium.go deleted file mode 100644 index a098737..0000000 --- a/level/block/warped_nylium.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WarpedNylium struct { -} - -func (WarpedNylium) ID() string { - return "minecraft:warped_nylium" -} diff --git a/level/block/warped_planks.go b/level/block/warped_planks.go deleted file mode 100644 index 7605243..0000000 --- a/level/block/warped_planks.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WarpedPlanks struct { -} - -func (WarpedPlanks) ID() string { - return "minecraft:warped_planks" -} diff --git a/level/block/warped_pressure_plate.go b/level/block/warped_pressure_plate.go deleted file mode 100644 index 48f48df..0000000 --- a/level/block/warped_pressure_plate.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WarpedPressurePlate struct { - Powered string -} - -func (WarpedPressurePlate) ID() string { - return "minecraft:warped_pressure_plate" -} diff --git a/level/block/warped_roots.go b/level/block/warped_roots.go deleted file mode 100644 index 523655c..0000000 --- a/level/block/warped_roots.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WarpedRoots struct { -} - -func (WarpedRoots) ID() string { - return "minecraft:warped_roots" -} diff --git a/level/block/warped_sign.go b/level/block/warped_sign.go deleted file mode 100644 index af91363..0000000 --- a/level/block/warped_sign.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type WarpedSign struct { - Rotation string - Waterlogged string -} - -func (WarpedSign) ID() string { - return "minecraft:warped_sign" -} diff --git a/level/block/warped_slab.go b/level/block/warped_slab.go deleted file mode 100644 index 0a6cb34..0000000 --- a/level/block/warped_slab.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type WarpedSlab struct { - Type string - Waterlogged string -} - -func (WarpedSlab) ID() string { - return "minecraft:warped_slab" -} diff --git a/level/block/warped_stairs.go b/level/block/warped_stairs.go deleted file mode 100644 index f176024..0000000 --- a/level/block/warped_stairs.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type WarpedStairs struct { - Facing string - Half string - Shape string - Waterlogged string -} - -func (WarpedStairs) ID() string { - return "minecraft:warped_stairs" -} diff --git a/level/block/warped_stem.go b/level/block/warped_stem.go deleted file mode 100644 index ca6bbd3..0000000 --- a/level/block/warped_stem.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WarpedStem struct { - Axis string -} - -func (WarpedStem) ID() string { - return "minecraft:warped_stem" -} diff --git a/level/block/warped_trapdoor.go b/level/block/warped_trapdoor.go deleted file mode 100644 index e2ef6d2..0000000 --- a/level/block/warped_trapdoor.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type WarpedTrapdoor struct { - Facing string - Half string - Open string - Powered string - Waterlogged string -} - -func (WarpedTrapdoor) ID() string { - return "minecraft:warped_trapdoor" -} diff --git a/level/block/warped_wall_sign.go b/level/block/warped_wall_sign.go deleted file mode 100644 index 5314a1f..0000000 --- a/level/block/warped_wall_sign.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type WarpedWallSign struct { - Facing string - Waterlogged string -} - -func (WarpedWallSign) ID() string { - return "minecraft:warped_wall_sign" -} diff --git a/level/block/warped_wart_block.go b/level/block/warped_wart_block.go deleted file mode 100644 index 46a56aa..0000000 --- a/level/block/warped_wart_block.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WarpedWartBlock struct { -} - -func (WarpedWartBlock) ID() string { - return "minecraft:warped_wart_block" -} diff --git a/level/block/water.go b/level/block/water.go deleted file mode 100644 index f46457b..0000000 --- a/level/block/water.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type Water struct { - Level string -} - -func (Water) ID() string { - return "minecraft:water" -} diff --git a/level/block/water_cauldron.go b/level/block/water_cauldron.go deleted file mode 100644 index 588812a..0000000 --- a/level/block/water_cauldron.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WaterCauldron struct { - Level string -} - -func (WaterCauldron) ID() string { - return "minecraft:water_cauldron" -} diff --git a/level/block/waxed_copper_block.go b/level/block/waxed_copper_block.go deleted file mode 100644 index 44b9422..0000000 --- a/level/block/waxed_copper_block.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WaxedCopperBlock struct { -} - -func (WaxedCopperBlock) ID() string { - return "minecraft:waxed_copper_block" -} diff --git a/level/block/waxed_cut_copper.go b/level/block/waxed_cut_copper.go deleted file mode 100644 index e4667ed..0000000 --- a/level/block/waxed_cut_copper.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WaxedCutCopper struct { -} - -func (WaxedCutCopper) ID() string { - return "minecraft:waxed_cut_copper" -} diff --git a/level/block/waxed_cut_copper_slab.go b/level/block/waxed_cut_copper_slab.go deleted file mode 100644 index 077712e..0000000 --- a/level/block/waxed_cut_copper_slab.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type WaxedCutCopperSlab struct { - Type string - Waterlogged string -} - -func (WaxedCutCopperSlab) ID() string { - return "minecraft:waxed_cut_copper_slab" -} diff --git a/level/block/waxed_cut_copper_stairs.go b/level/block/waxed_cut_copper_stairs.go deleted file mode 100644 index 2b37e99..0000000 --- a/level/block/waxed_cut_copper_stairs.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type WaxedCutCopperStairs struct { - Facing string - Half string - Shape string - Waterlogged string -} - -func (WaxedCutCopperStairs) ID() string { - return "minecraft:waxed_cut_copper_stairs" -} diff --git a/level/block/waxed_exposed_copper.go b/level/block/waxed_exposed_copper.go deleted file mode 100644 index 7098661..0000000 --- a/level/block/waxed_exposed_copper.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WaxedExposedCopper struct { -} - -func (WaxedExposedCopper) ID() string { - return "minecraft:waxed_exposed_copper" -} diff --git a/level/block/waxed_exposed_cut_copper.go b/level/block/waxed_exposed_cut_copper.go deleted file mode 100644 index 4144f18..0000000 --- a/level/block/waxed_exposed_cut_copper.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WaxedExposedCutCopper struct { -} - -func (WaxedExposedCutCopper) ID() string { - return "minecraft:waxed_exposed_cut_copper" -} diff --git a/level/block/waxed_exposed_cut_copper_slab.go b/level/block/waxed_exposed_cut_copper_slab.go deleted file mode 100644 index c07a72c..0000000 --- a/level/block/waxed_exposed_cut_copper_slab.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type WaxedExposedCutCopperSlab struct { - Type string - Waterlogged string -} - -func (WaxedExposedCutCopperSlab) ID() string { - return "minecraft:waxed_exposed_cut_copper_slab" -} diff --git a/level/block/waxed_exposed_cut_copper_stairs.go b/level/block/waxed_exposed_cut_copper_stairs.go deleted file mode 100644 index f18c058..0000000 --- a/level/block/waxed_exposed_cut_copper_stairs.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type WaxedExposedCutCopperStairs struct { - Facing string - Half string - Shape string - Waterlogged string -} - -func (WaxedExposedCutCopperStairs) ID() string { - return "minecraft:waxed_exposed_cut_copper_stairs" -} diff --git a/level/block/waxed_oxidized_copper.go b/level/block/waxed_oxidized_copper.go deleted file mode 100644 index 83e057f..0000000 --- a/level/block/waxed_oxidized_copper.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WaxedOxidizedCopper struct { -} - -func (WaxedOxidizedCopper) ID() string { - return "minecraft:waxed_oxidized_copper" -} diff --git a/level/block/waxed_oxidized_cut_copper.go b/level/block/waxed_oxidized_cut_copper.go deleted file mode 100644 index a5194bc..0000000 --- a/level/block/waxed_oxidized_cut_copper.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WaxedOxidizedCutCopper struct { -} - -func (WaxedOxidizedCutCopper) ID() string { - return "minecraft:waxed_oxidized_cut_copper" -} diff --git a/level/block/waxed_oxidized_cut_copper_slab.go b/level/block/waxed_oxidized_cut_copper_slab.go deleted file mode 100644 index 698fa59..0000000 --- a/level/block/waxed_oxidized_cut_copper_slab.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type WaxedOxidizedCutCopperSlab struct { - Type string - Waterlogged string -} - -func (WaxedOxidizedCutCopperSlab) ID() string { - return "minecraft:waxed_oxidized_cut_copper_slab" -} diff --git a/level/block/waxed_oxidized_cut_copper_stairs.go b/level/block/waxed_oxidized_cut_copper_stairs.go deleted file mode 100644 index 21e7fe2..0000000 --- a/level/block/waxed_oxidized_cut_copper_stairs.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type WaxedOxidizedCutCopperStairs struct { - Facing string - Half string - Shape string - Waterlogged string -} - -func (WaxedOxidizedCutCopperStairs) ID() string { - return "minecraft:waxed_oxidized_cut_copper_stairs" -} diff --git a/level/block/waxed_weathered_copper.go b/level/block/waxed_weathered_copper.go deleted file mode 100644 index 207ca96..0000000 --- a/level/block/waxed_weathered_copper.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WaxedWeatheredCopper struct { -} - -func (WaxedWeatheredCopper) ID() string { - return "minecraft:waxed_weathered_copper" -} diff --git a/level/block/waxed_weathered_cut_copper.go b/level/block/waxed_weathered_cut_copper.go deleted file mode 100644 index c2ed906..0000000 --- a/level/block/waxed_weathered_cut_copper.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WaxedWeatheredCutCopper struct { -} - -func (WaxedWeatheredCutCopper) ID() string { - return "minecraft:waxed_weathered_cut_copper" -} diff --git a/level/block/waxed_weathered_cut_copper_slab.go b/level/block/waxed_weathered_cut_copper_slab.go deleted file mode 100644 index 8bc0d77..0000000 --- a/level/block/waxed_weathered_cut_copper_slab.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type WaxedWeatheredCutCopperSlab struct { - Type string - Waterlogged string -} - -func (WaxedWeatheredCutCopperSlab) ID() string { - return "minecraft:waxed_weathered_cut_copper_slab" -} diff --git a/level/block/waxed_weathered_cut_copper_stairs.go b/level/block/waxed_weathered_cut_copper_stairs.go deleted file mode 100644 index c721e3a..0000000 --- a/level/block/waxed_weathered_cut_copper_stairs.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type WaxedWeatheredCutCopperStairs struct { - Facing string - Half string - Shape string - Waterlogged string -} - -func (WaxedWeatheredCutCopperStairs) ID() string { - return "minecraft:waxed_weathered_cut_copper_stairs" -} diff --git a/level/block/weathered_copper.go b/level/block/weathered_copper.go deleted file mode 100644 index 65750af..0000000 --- a/level/block/weathered_copper.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WeatheredCopper struct { -} - -func (WeatheredCopper) ID() string { - return "minecraft:weathered_copper" -} diff --git a/level/block/weathered_cut_copper.go b/level/block/weathered_cut_copper.go deleted file mode 100644 index 8162a29..0000000 --- a/level/block/weathered_cut_copper.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WeatheredCutCopper struct { -} - -func (WeatheredCutCopper) ID() string { - return "minecraft:weathered_cut_copper" -} diff --git a/level/block/weathered_cut_copper_slab.go b/level/block/weathered_cut_copper_slab.go deleted file mode 100644 index 728a1f8..0000000 --- a/level/block/weathered_cut_copper_slab.go +++ /dev/null @@ -1,10 +0,0 @@ -package block - -type WeatheredCutCopperSlab struct { - Type string - Waterlogged string -} - -func (WeatheredCutCopperSlab) ID() string { - return "minecraft:weathered_cut_copper_slab" -} diff --git a/level/block/weathered_cut_copper_stairs.go b/level/block/weathered_cut_copper_stairs.go deleted file mode 100644 index e6ec9fc..0000000 --- a/level/block/weathered_cut_copper_stairs.go +++ /dev/null @@ -1,12 +0,0 @@ -package block - -type WeatheredCutCopperStairs struct { - Facing string - Half string - Shape string - Waterlogged string -} - -func (WeatheredCutCopperStairs) ID() string { - return "minecraft:weathered_cut_copper_stairs" -} diff --git a/level/block/weeping_vines.go b/level/block/weeping_vines.go deleted file mode 100644 index b0d5751..0000000 --- a/level/block/weeping_vines.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WeepingVines struct { - Age string -} - -func (WeepingVines) ID() string { - return "minecraft:weeping_vines" -} diff --git a/level/block/weeping_vines_plant.go b/level/block/weeping_vines_plant.go deleted file mode 100644 index 2ba698b..0000000 --- a/level/block/weeping_vines_plant.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WeepingVinesPlant struct { -} - -func (WeepingVinesPlant) ID() string { - return "minecraft:weeping_vines_plant" -} diff --git a/level/block/wet_sponge.go b/level/block/wet_sponge.go deleted file mode 100644 index d60d1c9..0000000 --- a/level/block/wet_sponge.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WetSponge struct { -} - -func (WetSponge) ID() string { - return "minecraft:wet_sponge" -} diff --git a/level/block/wheat.go b/level/block/wheat.go deleted file mode 100644 index 0f36003..0000000 --- a/level/block/wheat.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type Wheat struct { - Age string -} - -func (Wheat) ID() string { - return "minecraft:wheat" -} diff --git a/level/block/white_banner.go b/level/block/white_banner.go deleted file mode 100644 index b4b1ba6..0000000 --- a/level/block/white_banner.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WhiteBanner struct { - Rotation string -} - -func (WhiteBanner) ID() string { - return "minecraft:white_banner" -} diff --git a/level/block/white_bed.go b/level/block/white_bed.go deleted file mode 100644 index ca29e59..0000000 --- a/level/block/white_bed.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type WhiteBed struct { - Facing string - Occupied string - Part string -} - -func (WhiteBed) ID() string { - return "minecraft:white_bed" -} diff --git a/level/block/white_candle.go b/level/block/white_candle.go deleted file mode 100644 index 5c81574..0000000 --- a/level/block/white_candle.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type WhiteCandle struct { - Candles string - Lit string - Waterlogged string -} - -func (WhiteCandle) ID() string { - return "minecraft:white_candle" -} diff --git a/level/block/white_candle_cake.go b/level/block/white_candle_cake.go deleted file mode 100644 index ea1c4b6..0000000 --- a/level/block/white_candle_cake.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WhiteCandleCake struct { - Lit string -} - -func (WhiteCandleCake) ID() string { - return "minecraft:white_candle_cake" -} diff --git a/level/block/white_carpet.go b/level/block/white_carpet.go deleted file mode 100644 index d87bfa2..0000000 --- a/level/block/white_carpet.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WhiteCarpet struct { -} - -func (WhiteCarpet) ID() string { - return "minecraft:white_carpet" -} diff --git a/level/block/white_concrete.go b/level/block/white_concrete.go deleted file mode 100644 index 7ff58de..0000000 --- a/level/block/white_concrete.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WhiteConcrete struct { -} - -func (WhiteConcrete) ID() string { - return "minecraft:white_concrete" -} diff --git a/level/block/white_concrete_powder.go b/level/block/white_concrete_powder.go deleted file mode 100644 index ec45932..0000000 --- a/level/block/white_concrete_powder.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WhiteConcretePowder struct { -} - -func (WhiteConcretePowder) ID() string { - return "minecraft:white_concrete_powder" -} diff --git a/level/block/white_glazed_terracotta.go b/level/block/white_glazed_terracotta.go deleted file mode 100644 index c71c62b..0000000 --- a/level/block/white_glazed_terracotta.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WhiteGlazedTerracotta struct { - Facing string -} - -func (WhiteGlazedTerracotta) ID() string { - return "minecraft:white_glazed_terracotta" -} diff --git a/level/block/white_shulker_box.go b/level/block/white_shulker_box.go deleted file mode 100644 index fdc957c..0000000 --- a/level/block/white_shulker_box.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WhiteShulkerBox struct { - Facing string -} - -func (WhiteShulkerBox) ID() string { - return "minecraft:white_shulker_box" -} diff --git a/level/block/white_stained_glass.go b/level/block/white_stained_glass.go deleted file mode 100644 index baef473..0000000 --- a/level/block/white_stained_glass.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WhiteStainedGlass struct { -} - -func (WhiteStainedGlass) ID() string { - return "minecraft:white_stained_glass" -} diff --git a/level/block/white_stained_glass_pane.go b/level/block/white_stained_glass_pane.go deleted file mode 100644 index a5bd6ae..0000000 --- a/level/block/white_stained_glass_pane.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type WhiteStainedGlassPane struct { - East string - North string - South string - Waterlogged string - West string -} - -func (WhiteStainedGlassPane) ID() string { - return "minecraft:white_stained_glass_pane" -} diff --git a/level/block/white_terracotta.go b/level/block/white_terracotta.go deleted file mode 100644 index 3b8057d..0000000 --- a/level/block/white_terracotta.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WhiteTerracotta struct { -} - -func (WhiteTerracotta) ID() string { - return "minecraft:white_terracotta" -} diff --git a/level/block/white_tulip.go b/level/block/white_tulip.go deleted file mode 100644 index 15b4e5e..0000000 --- a/level/block/white_tulip.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WhiteTulip struct { -} - -func (WhiteTulip) ID() string { - return "minecraft:white_tulip" -} diff --git a/level/block/white_wall_banner.go b/level/block/white_wall_banner.go deleted file mode 100644 index fd5807e..0000000 --- a/level/block/white_wall_banner.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WhiteWallBanner struct { - Facing string -} - -func (WhiteWallBanner) ID() string { - return "minecraft:white_wall_banner" -} diff --git a/level/block/white_wool.go b/level/block/white_wool.go deleted file mode 100644 index bd3229d..0000000 --- a/level/block/white_wool.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WhiteWool struct { -} - -func (WhiteWool) ID() string { - return "minecraft:white_wool" -} diff --git a/level/block/wither_rose.go b/level/block/wither_rose.go deleted file mode 100644 index 2c9a3f7..0000000 --- a/level/block/wither_rose.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type WitherRose struct { -} - -func (WitherRose) ID() string { - return "minecraft:wither_rose" -} diff --git a/level/block/wither_skeleton_skull.go b/level/block/wither_skeleton_skull.go deleted file mode 100644 index a67cca3..0000000 --- a/level/block/wither_skeleton_skull.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WitherSkeletonSkull struct { - Rotation string -} - -func (WitherSkeletonSkull) ID() string { - return "minecraft:wither_skeleton_skull" -} diff --git a/level/block/wither_skeleton_wall_skull.go b/level/block/wither_skeleton_wall_skull.go deleted file mode 100644 index c496df3..0000000 --- a/level/block/wither_skeleton_wall_skull.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type WitherSkeletonWallSkull struct { - Facing string -} - -func (WitherSkeletonWallSkull) ID() string { - return "minecraft:wither_skeleton_wall_skull" -} diff --git a/level/block/yellow_banner.go b/level/block/yellow_banner.go deleted file mode 100644 index e61fa36..0000000 --- a/level/block/yellow_banner.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type YellowBanner struct { - Rotation string -} - -func (YellowBanner) ID() string { - return "minecraft:yellow_banner" -} diff --git a/level/block/yellow_bed.go b/level/block/yellow_bed.go deleted file mode 100644 index cde1399..0000000 --- a/level/block/yellow_bed.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type YellowBed struct { - Facing string - Occupied string - Part string -} - -func (YellowBed) ID() string { - return "minecraft:yellow_bed" -} diff --git a/level/block/yellow_candle.go b/level/block/yellow_candle.go deleted file mode 100644 index b4d56e4..0000000 --- a/level/block/yellow_candle.go +++ /dev/null @@ -1,11 +0,0 @@ -package block - -type YellowCandle struct { - Candles string - Lit string - Waterlogged string -} - -func (YellowCandle) ID() string { - return "minecraft:yellow_candle" -} diff --git a/level/block/yellow_candle_cake.go b/level/block/yellow_candle_cake.go deleted file mode 100644 index 35f7a4d..0000000 --- a/level/block/yellow_candle_cake.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type YellowCandleCake struct { - Lit string -} - -func (YellowCandleCake) ID() string { - return "minecraft:yellow_candle_cake" -} diff --git a/level/block/yellow_carpet.go b/level/block/yellow_carpet.go deleted file mode 100644 index 9a11936..0000000 --- a/level/block/yellow_carpet.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type YellowCarpet struct { -} - -func (YellowCarpet) ID() string { - return "minecraft:yellow_carpet" -} diff --git a/level/block/yellow_concrete.go b/level/block/yellow_concrete.go deleted file mode 100644 index 1dc4a53..0000000 --- a/level/block/yellow_concrete.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type YellowConcrete struct { -} - -func (YellowConcrete) ID() string { - return "minecraft:yellow_concrete" -} diff --git a/level/block/yellow_concrete_powder.go b/level/block/yellow_concrete_powder.go deleted file mode 100644 index b335f2e..0000000 --- a/level/block/yellow_concrete_powder.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type YellowConcretePowder struct { -} - -func (YellowConcretePowder) ID() string { - return "minecraft:yellow_concrete_powder" -} diff --git a/level/block/yellow_glazed_terracotta.go b/level/block/yellow_glazed_terracotta.go deleted file mode 100644 index f0d29be..0000000 --- a/level/block/yellow_glazed_terracotta.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type YellowGlazedTerracotta struct { - Facing string -} - -func (YellowGlazedTerracotta) ID() string { - return "minecraft:yellow_glazed_terracotta" -} diff --git a/level/block/yellow_shulker_box.go b/level/block/yellow_shulker_box.go deleted file mode 100644 index c687608..0000000 --- a/level/block/yellow_shulker_box.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type YellowShulkerBox struct { - Facing string -} - -func (YellowShulkerBox) ID() string { - return "minecraft:yellow_shulker_box" -} diff --git a/level/block/yellow_stained_glass.go b/level/block/yellow_stained_glass.go deleted file mode 100644 index ab7a791..0000000 --- a/level/block/yellow_stained_glass.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type YellowStainedGlass struct { -} - -func (YellowStainedGlass) ID() string { - return "minecraft:yellow_stained_glass" -} diff --git a/level/block/yellow_stained_glass_pane.go b/level/block/yellow_stained_glass_pane.go deleted file mode 100644 index 6e33745..0000000 --- a/level/block/yellow_stained_glass_pane.go +++ /dev/null @@ -1,13 +0,0 @@ -package block - -type YellowStainedGlassPane struct { - East string - North string - South string - Waterlogged string - West string -} - -func (YellowStainedGlassPane) ID() string { - return "minecraft:yellow_stained_glass_pane" -} diff --git a/level/block/yellow_terracotta.go b/level/block/yellow_terracotta.go deleted file mode 100644 index bb8fedb..0000000 --- a/level/block/yellow_terracotta.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type YellowTerracotta struct { -} - -func (YellowTerracotta) ID() string { - return "minecraft:yellow_terracotta" -} diff --git a/level/block/yellow_wall_banner.go b/level/block/yellow_wall_banner.go deleted file mode 100644 index 62b7752..0000000 --- a/level/block/yellow_wall_banner.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type YellowWallBanner struct { - Facing string -} - -func (YellowWallBanner) ID() string { - return "minecraft:yellow_wall_banner" -} diff --git a/level/block/yellow_wool.go b/level/block/yellow_wool.go deleted file mode 100644 index ce59846..0000000 --- a/level/block/yellow_wool.go +++ /dev/null @@ -1,8 +0,0 @@ -package block - -type YellowWool struct { -} - -func (YellowWool) ID() string { - return "minecraft:yellow_wool" -} diff --git a/level/block/zombie_head.go b/level/block/zombie_head.go deleted file mode 100644 index 200df22..0000000 --- a/level/block/zombie_head.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type ZombieHead struct { - Rotation string -} - -func (ZombieHead) ID() string { - return "minecraft:zombie_head" -} diff --git a/level/block/zombie_wall_head.go b/level/block/zombie_wall_head.go deleted file mode 100644 index 70f4fad..0000000 --- a/level/block/zombie_wall_head.go +++ /dev/null @@ -1,9 +0,0 @@ -package block - -type ZombieWallHead struct { - Facing string -} - -func (ZombieWallHead) ID() string { - return "minecraft:zombie_wall_head" -} diff --git a/nbt/decode.go b/nbt/decode.go index 72e5240..234fa67 100644 --- a/nbt/decode.go +++ b/nbt/decode.go @@ -2,6 +2,7 @@ package nbt import ( "bytes" + "encoding" "errors" "fmt" "io" @@ -23,7 +24,7 @@ func Unmarshal(data []byte, v interface{}) error { // into a struct or map, but not a string. // // This method also return tag name of the root tag. -// In real world, it is often empty, but the API should allows you to get it when ever you want. +// In real world, it is often empty, but the API should allow you to get it when ever you want. func (d *Decoder) Decode(v interface{}) (string, error) { val := reflect.ValueOf(v) if val.Kind() != reflect.Ptr { @@ -39,7 +40,7 @@ func (d *Decoder) Decode(v interface{}) (string, error) { return tagName, fmt.Errorf("nbt: unknown Tag, maybe compressed by %s, uncompress it first", c) } - // We decode val not val.Elem because the NBTDecoder interface + // We decode val not val.Elem because the Unmarshaler interface // test must be applied at the top level of the value. err = d.unmarshal(val, tagType) if err != nil { @@ -64,9 +65,12 @@ func (d *Decoder) checkCompressed(head byte) (compress string) { var ErrEND = errors.New("unexpected TAG_End") func (d *Decoder) unmarshal(val reflect.Value, tagType byte) error { - u, val := indirect(val, tagType == TagEnd) + u, t, val, assign := indirect(val, tagType == TagEnd) + if assign != nil { + defer assign() + } if u != nil { - return u.Decode(tagType, d.r) + return u.UnmarshalNBT(tagType, d.r) } switch tagType { @@ -177,13 +181,20 @@ func (d *Decoder) unmarshal(val reflect.Value, tagType byte) error { if err != nil { return err } - switch vk := val.Kind(); vk { - default: - return errors.New("cannot parse TagString as " + vk.String()) - case reflect.String: - val.SetString(s) - case reflect.Interface: - val.Set(reflect.ValueOf(s)) + if t != nil { + err := t.UnmarshalText([]byte(s)) + if err != nil { + return err + } + } else { + switch vk := val.Kind(); vk { + default: + return errors.New("cannot parse TagString as " + vk.String()) + case reflect.String: + val.SetString(s) + case reflect.Interface: + val.Set(reflect.ValueOf(s)) + } } case TagByteArray: @@ -270,7 +281,7 @@ func (d *Decoder) unmarshal(val reflect.Value, tagType byte) error { } // If we need parse TAG_List into slice, make a new with right length. - // Otherwise if we need parse into array, we check if len(array) are enough. + // Otherwise, if we need parse into array, we check if len(array) are enough. var buf reflect.Value vk := val.Kind() switch vk { @@ -370,14 +381,15 @@ func (d *Decoder) unmarshal(val reflect.Value, tagType byte) error { // indirect walks down v allocating pointers as needed, // until it gets to a non-pointer. -// If it encounters an NBTDecoder, indirect stops and returns that. -// If decodingNull is true, indirect stops at the first settable pointer so it +// If it encounters an Unmarshaler, indirect stops and returns that. +// If decodingNull is true, indirect stops at the first settable pointer, so it // can be set to nil. // // This function is copied and modified from encoding/json -func indirect(v reflect.Value, decodingNull bool) (NBTDecoder, reflect.Value) { +func indirect(v reflect.Value, decodingNull bool) (Unmarshaler, encoding.TextUnmarshaler, reflect.Value, func()) { v0 := v haveAddr := false + var assign func() // If v is a named type and is addressable, // start with its address, so that if the type has pointer methods, @@ -389,12 +401,19 @@ func indirect(v reflect.Value, decodingNull bool) (NBTDecoder, reflect.Value) { for { // Load value from interface, but only if the result will be // usefully addressable. + // Otherwise, try init a new value if v.Kind() == reflect.Interface && !v.IsNil() { e := v.Elem() if e.Kind() == reflect.Ptr && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Ptr) { haveAddr = false v = e continue + } else if v.CanSet() { + e = reflect.New(e.Type()) + cv := v + assign = func() { cv.Set(e.Elem()) } + v = e + continue } } @@ -417,8 +436,12 @@ func indirect(v reflect.Value, decodingNull bool) (NBTDecoder, reflect.Value) { v.Set(reflect.New(v.Type().Elem())) } if v.Type().NumMethod() > 0 && v.CanInterface() { - if u, ok := v.Interface().(NBTDecoder); ok { - return u, reflect.Value{} + i := v.Interface() + if u, ok := i.(Unmarshaler); ok { + return u, nil, reflect.Value{}, assign + } + if u, ok := i.(encoding.TextUnmarshaler); ok { + return nil, u, v, assign } } @@ -429,7 +452,7 @@ func indirect(v reflect.Value, decodingNull bool) (NBTDecoder, reflect.Value) { v = v.Elem() } } - return nil, v + return nil, nil, v, assign } // rawRead read and discard a value diff --git a/nbt/decode_test.go b/nbt/decode_test.go index bce767b..d5308c3 100644 --- a/nbt/decode_test.go +++ b/nbt/decode_test.go @@ -6,6 +6,7 @@ import ( "io" "math" "reflect" + "strconv" "testing" ) @@ -380,6 +381,31 @@ func TestDecoder_Decode_ErrorString(t *testing.T) { } +type TextBool bool + +func (b TextBool) MarshalText() (text []byte, err error) { + return []byte(strconv.FormatBool(bool(b))), nil +} +func (b *TextBool) UnmarshalText(text []byte) (err error) { + *((*bool)(b)), err = strconv.ParseBool(string(text)) + return +} + +func TestDecoder_Decode_textUnmarshaler(t *testing.T) { + var b TextBool + data := []byte{ + TagString, 0, 0, + 0, 4, 't', 'r', 'u', 'e', + } + _, err := NewDecoder(bytes.NewReader(data)).Decode(&b) + if err != nil { + t.Fatal(err) + } + if b != true { + t.Errorf("b should be true") + } +} + func TestRawMessage_Decode(t *testing.T) { data := []byte{ TagCompound, 0, 2, 'a', 'b', @@ -435,16 +461,16 @@ func TestStringifiedMessage_Decode(t *testing.T) { t.Fatal(tag, err) } else { if tag != "ab" { - t.Fatalf("Decode tag name error: want %s, get: %s", "ab", tag) + t.Fatalf("UnmarshalNBT tag name error: want %s, get: %s", "ab", tag) } if container.Key != 12 { - t.Fatalf("Decode Key error: want %v, get: %v", 12, container.Key) + t.Fatalf("UnmarshalNBT Key error: want %v, get: %v", 12, container.Key) } if container.Value != `"Tn ze"` { - t.Fatalf("Decode Key error: get: %v", container.Value) + t.Fatalf("UnmarshalNBT Key error: get: %v", container.Value) } if container.List != "[{},{}]" { - t.Fatalf("Decode List error: get: %v", container.List) + t.Fatalf("UnmarshalNBT List error: get: %v", container.List) } } } diff --git a/nbt/encode.go b/nbt/encode.go index 91b35d7..a0b0468 100644 --- a/nbt/encode.go +++ b/nbt/encode.go @@ -49,8 +49,8 @@ func (e *Encoder) marshal(val reflect.Value, tagType byte, tagName string) error return err } if val.CanInterface() { - if encoder, ok := val.Interface().(NBTEncoder); ok { - return encoder.Encode(e.w) + if encoder, ok := val.Interface().(Marshaler); ok { + return encoder.MarshalNBT(e.w) } } return e.writeValue(val, tagType) @@ -205,7 +205,7 @@ func getTagType(v reflect.Value) (byte, reflect.Value) { v.Set(reflect.New(v.Type().Elem())) } if v.Type().NumMethod() > 0 && v.CanInterface() { - if u, ok := v.Interface().(NBTEncoder); ok { + if u, ok := v.Interface().(Marshaler); ok { return u.TagType(), v } } @@ -214,7 +214,7 @@ func getTagType(v reflect.Value) (byte, reflect.Value) { } if v.CanInterface() { - if encoder, ok := v.Interface().(NBTEncoder); ok { + if encoder, ok := v.Interface().(Marshaler); ok { return encoder.TagType(), v } } diff --git a/nbt/interface.go b/nbt/interface.go index 386fb9a..7225497 100644 --- a/nbt/interface.go +++ b/nbt/interface.go @@ -2,11 +2,11 @@ package nbt import "io" -type NBTDecoder interface { - Decode(tagType byte, r DecoderReader) error +type Unmarshaler interface { + UnmarshalNBT(tagType byte, r DecoderReader) error } -type NBTEncoder interface { +type Marshaler interface { TagType() byte - Encode(w io.Writer) error + MarshalNBT(w io.Writer) error } diff --git a/nbt/rawmsg.go b/nbt/rawmsg.go index 6d55e78..6976e71 100644 --- a/nbt/rawmsg.go +++ b/nbt/rawmsg.go @@ -21,12 +21,12 @@ func (m RawMessage) TagType() byte { return m.Type } -func (m RawMessage) Encode(w io.Writer) error { +func (m RawMessage) MarshalNBT(w io.Writer) error { _, err := w.Write(m.Data) return err } -func (m *RawMessage) Decode(tagType byte, r DecoderReader) error { +func (m *RawMessage) UnmarshalNBT(tagType byte, r DecoderReader) error { if tagType == TagEnd { return ErrEND } @@ -66,7 +66,7 @@ func (m RawMessage) Unmarshal(v interface{}) error { d := NewDecoder(bytes.NewReader(m.Data)) val := reflect.ValueOf(v) if val.Kind() != reflect.Ptr { - return errors.New("nbt: non-pointer passed to Decode") + return errors.New("nbt: non-pointer passed to UnmarshalNBT") } return d.unmarshal(val, m.Type) } diff --git a/nbt/snbt.go b/nbt/snbt.go index dd0d1c5..3080778 100644 --- a/nbt/snbt.go +++ b/nbt/snbt.go @@ -56,13 +56,13 @@ func (m StringifiedMessage) TagType() byte { } } -func (m StringifiedMessage) Encode(w io.Writer) error { +func (m StringifiedMessage) MarshalNBT(w io.Writer) error { d := decodeState{data: []byte(m)} d.scan.reset() return writeValue(NewEncoder(w), &d, false, "") } -func (m *StringifiedMessage) Decode(tagType byte, r DecoderReader) error { +func (m *StringifiedMessage) UnmarshalNBT(tagType byte, r DecoderReader) error { if tagType == TagEnd { return ErrEND } diff --git a/nbt/snbt_decode_test.go b/nbt/snbt_decode_test.go index b1f7eed..91bdbc7 100644 --- a/nbt/snbt_decode_test.go +++ b/nbt/snbt_decode_test.go @@ -159,7 +159,7 @@ func TestStringifiedMessage_Encode(t *testing.T) { {`[B; 1B, 2B, 3B]`, []byte{0, 0, 0, 3, 1, 2, 3}}, {`[{},{}]`, []byte{TagCompound, 0, 0, 0, 2, 0, 0}}, } { - if err := StringifiedMessage(v.snbt).Encode(&buff); err != nil { + if err := StringifiedMessage(v.snbt).MarshalNBT(&buff); err != nil { t.Errorf("Encode SNBT error: %v", err) } if !bytes.Equal(buff.Bytes(), v.data) { From 0bbd279dd17f64615d943b5df0b97e042d402158 Mon Sep 17 00:00:00 2001 From: Tnze Date: Wed, 9 Mar 2022 17:21:28 +0800 Subject: [PATCH 3/4] frameworkServer works perfect now --- data/block/block.go | 33857 ------------------------------- data/block/gen_block.go | 152 - examples/genmaps/colors.gob | Bin 9213 -> 0 bytes examples/genmaps/genmaps.go | 219 - examples/genmaps/util_funcs.go | 56 - level/block/block.go | 51 +- level/chunk.go | 41 +- save/chunk.go | 17 +- 8 files changed, 73 insertions(+), 34320 deletions(-) delete mode 100644 data/block/block.go delete mode 100644 data/block/gen_block.go delete mode 100644 examples/genmaps/colors.gob delete mode 100644 examples/genmaps/genmaps.go delete mode 100644 examples/genmaps/util_funcs.go diff --git a/data/block/block.go b/data/block/block.go deleted file mode 100644 index 75c3701..0000000 --- a/data/block/block.go +++ /dev/null @@ -1,33857 +0,0 @@ -// Code generated by gen_block.go; DO NOT EDIT. - -// Package block stores information about blocks in Minecraft. -package block - -import ( - "math/bits" -) - -// BitsPerBlock indicates how many bits are needed to represent all possible -// block states. This value is used to determine the size of the global palette. -var BitsPerBlock = bits.Len(uint(len(StateID))) - -// ID describes the numeric ID of a block. -type ID uint32 - -// Block describes information about a type of block. -type Block struct { - ID ID - DisplayName string - Name string - - Hardness float64 - Diggable bool - DropIDs []uint32 - NeedsTools map[uint32]bool - - MinStateID uint32 - MaxStateID uint32 - - Transparent bool - FilterLightLevel int - EmitLightLevel int -} - -var ( - Air = Block{ - ID: 0, - DisplayName: "Air", - Name: "air", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 0, - MaxStateID: 0, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Stone = Block{ - ID: 1, - DisplayName: "Stone", - Name: "stone", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{21}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 1, - MaxStateID: 1, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Granite = Block{ - ID: 2, - DisplayName: "Granite", - Name: "granite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{2}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 2, - MaxStateID: 2, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedGranite = Block{ - ID: 3, - DisplayName: "Polished Granite", - Name: "polished_granite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{3}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 3, - MaxStateID: 3, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Diorite = Block{ - ID: 4, - DisplayName: "Diorite", - Name: "diorite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{4}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4, - MaxStateID: 4, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedDiorite = Block{ - ID: 5, - DisplayName: "Polished Diorite", - Name: "polished_diorite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{5}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5, - MaxStateID: 5, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Andesite = Block{ - ID: 6, - DisplayName: "Andesite", - Name: "andesite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{6}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6, - MaxStateID: 6, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedAndesite = Block{ - ID: 7, - DisplayName: "Polished Andesite", - Name: "polished_andesite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{7}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7, - MaxStateID: 7, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrassBlock = Block{ - ID: 8, - DisplayName: "Grass Block", - Name: "grass_block", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8, - MaxStateID: 9, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Dirt = Block{ - ID: 9, - DisplayName: "Dirt", - Name: "dirt", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 10, - MaxStateID: 10, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CoarseDirt = Block{ - ID: 10, - DisplayName: "Coarse Dirt", - Name: "coarse_dirt", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{16}, - NeedsTools: map[uint32]bool{}, - MinStateID: 11, - MaxStateID: 11, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Podzol = Block{ - ID: 11, - DisplayName: "Podzol", - Name: "podzol", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 12, - MaxStateID: 13, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Cobblestone = Block{ - ID: 12, - DisplayName: "Cobblestone", - Name: "cobblestone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{21}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 14, - MaxStateID: 14, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakPlanks = Block{ - ID: 13, - DisplayName: "Oak Planks", - Name: "oak_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{22}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15, - MaxStateID: 15, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SprucePlanks = Block{ - ID: 14, - DisplayName: "Spruce Planks", - Name: "spruce_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{23}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16, - MaxStateID: 16, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BirchPlanks = Block{ - ID: 15, - DisplayName: "Birch Planks", - Name: "birch_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{24}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17, - MaxStateID: 17, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - JunglePlanks = Block{ - ID: 16, - DisplayName: "Jungle Planks", - Name: "jungle_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{25}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18, - MaxStateID: 18, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AcaciaPlanks = Block{ - ID: 17, - DisplayName: "Acacia Planks", - Name: "acacia_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{26}, - NeedsTools: map[uint32]bool{}, - MinStateID: 19, - MaxStateID: 19, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DarkOakPlanks = Block{ - ID: 18, - DisplayName: "Dark Oak Planks", - Name: "dark_oak_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{27}, - NeedsTools: map[uint32]bool{}, - MinStateID: 20, - MaxStateID: 20, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakSapling = Block{ - ID: 19, - DisplayName: "Oak Sapling", - Name: "oak_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{30}, - NeedsTools: map[uint32]bool{}, - MinStateID: 21, - MaxStateID: 22, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceSapling = Block{ - ID: 20, - DisplayName: "Spruce Sapling", - Name: "spruce_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{31}, - NeedsTools: map[uint32]bool{}, - MinStateID: 23, - MaxStateID: 24, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchSapling = Block{ - ID: 21, - DisplayName: "Birch Sapling", - Name: "birch_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{32}, - NeedsTools: map[uint32]bool{}, - MinStateID: 25, - MaxStateID: 26, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleSapling = Block{ - ID: 22, - DisplayName: "Jungle Sapling", - Name: "jungle_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{33}, - NeedsTools: map[uint32]bool{}, - MinStateID: 27, - MaxStateID: 28, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaSapling = Block{ - ID: 23, - DisplayName: "Acacia Sapling", - Name: "acacia_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{34}, - NeedsTools: map[uint32]bool{}, - MinStateID: 29, - MaxStateID: 30, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakSapling = Block{ - ID: 24, - DisplayName: "Dark Oak Sapling", - Name: "dark_oak_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{35}, - NeedsTools: map[uint32]bool{}, - MinStateID: 31, - MaxStateID: 32, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Bedrock = Block{ - ID: 25, - DisplayName: "Bedrock", - Name: "bedrock", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 33, - MaxStateID: 33, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Water = Block{ - ID: 26, - DisplayName: "Air", - Name: "water", - Hardness: 100, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 34, - MaxStateID: 49, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - Lava = Block{ - ID: 27, - DisplayName: "Air", - Name: "lava", - Hardness: 100, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 50, - MaxStateID: 65, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 15, - } - Sand = Block{ - ID: 28, - DisplayName: "Sand", - Name: "sand", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{37}, - NeedsTools: map[uint32]bool{}, - MinStateID: 66, - MaxStateID: 66, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedSand = Block{ - ID: 29, - DisplayName: "Red Sand", - Name: "red_sand", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{38}, - NeedsTools: map[uint32]bool{}, - MinStateID: 67, - MaxStateID: 67, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Gravel = Block{ - ID: 30, - DisplayName: "Gravel", - Name: "gravel", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{39}, - NeedsTools: map[uint32]bool{}, - MinStateID: 68, - MaxStateID: 68, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GoldOre = Block{ - ID: 31, - DisplayName: "Gold Ore", - Name: "gold_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{695}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 69, - MaxStateID: 69, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateGoldOre = Block{ - ID: 32, - DisplayName: "Deepslate Gold Ore", - Name: "deepslate_gold_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{695}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 70, - MaxStateID: 70, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - IronOre = Block{ - ID: 33, - DisplayName: "Iron Ore", - Name: "iron_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{691}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 71, - MaxStateID: 71, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateIronOre = Block{ - ID: 34, - DisplayName: "Deepslate Iron Ore", - Name: "deepslate_iron_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{691}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 72, - MaxStateID: 72, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CoalOre = Block{ - ID: 35, - DisplayName: "Coal Ore", - Name: "coal_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{684}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 73, - MaxStateID: 73, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateCoalOre = Block{ - ID: 36, - DisplayName: "Deepslate Coal Ore", - Name: "deepslate_coal_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{684}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 74, - MaxStateID: 74, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - NetherGoldOre = Block{ - ID: 37, - DisplayName: "Nether Gold Ore", - Name: "nether_gold_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{861}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 75, - MaxStateID: 75, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakLog = Block{ - ID: 38, - DisplayName: "Oak Log", - Name: "oak_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{101}, - NeedsTools: map[uint32]bool{}, - MinStateID: 76, - MaxStateID: 78, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SpruceLog = Block{ - ID: 39, - DisplayName: "Spruce Log", - Name: "spruce_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{102}, - NeedsTools: map[uint32]bool{}, - MinStateID: 79, - MaxStateID: 81, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BirchLog = Block{ - ID: 40, - DisplayName: "Birch Log", - Name: "birch_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{103}, - NeedsTools: map[uint32]bool{}, - MinStateID: 82, - MaxStateID: 84, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - JungleLog = Block{ - ID: 41, - DisplayName: "Jungle Log", - Name: "jungle_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{104}, - NeedsTools: map[uint32]bool{}, - MinStateID: 85, - MaxStateID: 87, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AcaciaLog = Block{ - ID: 42, - DisplayName: "Acacia Log", - Name: "acacia_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{105}, - NeedsTools: map[uint32]bool{}, - MinStateID: 88, - MaxStateID: 90, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DarkOakLog = Block{ - ID: 43, - DisplayName: "Dark Oak Log", - Name: "dark_oak_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{106}, - NeedsTools: map[uint32]bool{}, - MinStateID: 91, - MaxStateID: 93, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedSpruceLog = Block{ - ID: 44, - DisplayName: "Stripped Spruce Log", - Name: "stripped_spruce_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{110}, - NeedsTools: map[uint32]bool{}, - MinStateID: 94, - MaxStateID: 96, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedBirchLog = Block{ - ID: 45, - DisplayName: "Stripped Birch Log", - Name: "stripped_birch_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{111}, - NeedsTools: map[uint32]bool{}, - MinStateID: 97, - MaxStateID: 99, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedJungleLog = Block{ - ID: 46, - DisplayName: "Stripped Jungle Log", - Name: "stripped_jungle_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{112}, - NeedsTools: map[uint32]bool{}, - MinStateID: 100, - MaxStateID: 102, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedAcaciaLog = Block{ - ID: 47, - DisplayName: "Stripped Acacia Log", - Name: "stripped_acacia_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{113}, - NeedsTools: map[uint32]bool{}, - MinStateID: 103, - MaxStateID: 105, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedDarkOakLog = Block{ - ID: 48, - DisplayName: "Stripped Dark Oak Log", - Name: "stripped_dark_oak_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{114}, - NeedsTools: map[uint32]bool{}, - MinStateID: 106, - MaxStateID: 108, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedOakLog = Block{ - ID: 49, - DisplayName: "Stripped Oak Log", - Name: "stripped_oak_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{109}, - NeedsTools: map[uint32]bool{}, - MinStateID: 109, - MaxStateID: 111, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakWood = Block{ - ID: 50, - DisplayName: "Oak Wood", - Name: "oak_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{125}, - NeedsTools: map[uint32]bool{}, - MinStateID: 112, - MaxStateID: 114, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SpruceWood = Block{ - ID: 51, - DisplayName: "Spruce Wood", - Name: "spruce_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{126}, - NeedsTools: map[uint32]bool{}, - MinStateID: 115, - MaxStateID: 117, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BirchWood = Block{ - ID: 52, - DisplayName: "Birch Wood", - Name: "birch_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{127}, - NeedsTools: map[uint32]bool{}, - MinStateID: 118, - MaxStateID: 120, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - JungleWood = Block{ - ID: 53, - DisplayName: "Jungle Wood", - Name: "jungle_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{128}, - NeedsTools: map[uint32]bool{}, - MinStateID: 121, - MaxStateID: 123, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AcaciaWood = Block{ - ID: 54, - DisplayName: "Acacia Wood", - Name: "acacia_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{129}, - NeedsTools: map[uint32]bool{}, - MinStateID: 124, - MaxStateID: 126, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DarkOakWood = Block{ - ID: 55, - DisplayName: "Dark Oak Wood", - Name: "dark_oak_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{130}, - NeedsTools: map[uint32]bool{}, - MinStateID: 127, - MaxStateID: 129, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedOakWood = Block{ - ID: 56, - DisplayName: "Stripped Oak Wood", - Name: "stripped_oak_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{117}, - NeedsTools: map[uint32]bool{}, - MinStateID: 130, - MaxStateID: 132, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedSpruceWood = Block{ - ID: 57, - DisplayName: "Stripped Spruce Wood", - Name: "stripped_spruce_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{118}, - NeedsTools: map[uint32]bool{}, - MinStateID: 133, - MaxStateID: 135, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedBirchWood = Block{ - ID: 58, - DisplayName: "Stripped Birch Wood", - Name: "stripped_birch_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{119}, - NeedsTools: map[uint32]bool{}, - MinStateID: 136, - MaxStateID: 138, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedJungleWood = Block{ - ID: 59, - DisplayName: "Stripped Jungle Wood", - Name: "stripped_jungle_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{120}, - NeedsTools: map[uint32]bool{}, - MinStateID: 139, - MaxStateID: 141, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedAcaciaWood = Block{ - ID: 60, - DisplayName: "Stripped Acacia Wood", - Name: "stripped_acacia_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{121}, - NeedsTools: map[uint32]bool{}, - MinStateID: 142, - MaxStateID: 144, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedDarkOakWood = Block{ - ID: 61, - DisplayName: "Stripped Dark Oak Wood", - Name: "stripped_dark_oak_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{122}, - NeedsTools: map[uint32]bool{}, - MinStateID: 145, - MaxStateID: 147, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakLeaves = Block{ - ID: 62, - DisplayName: "Oak Leaves", - Name: "oak_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 148, - MaxStateID: 161, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - SpruceLeaves = Block{ - ID: 63, - DisplayName: "Spruce Leaves", - Name: "spruce_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 162, - MaxStateID: 175, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BirchLeaves = Block{ - ID: 64, - DisplayName: "Birch Leaves", - Name: "birch_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 176, - MaxStateID: 189, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - JungleLeaves = Block{ - ID: 65, - DisplayName: "Jungle Leaves", - Name: "jungle_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 190, - MaxStateID: 203, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - AcaciaLeaves = Block{ - ID: 66, - DisplayName: "Acacia Leaves", - Name: "acacia_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 204, - MaxStateID: 217, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DarkOakLeaves = Block{ - ID: 67, - DisplayName: "Dark Oak Leaves", - Name: "dark_oak_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 218, - MaxStateID: 231, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - AzaleaLeaves = Block{ - ID: 68, - DisplayName: "Azalea Leaves", - Name: "azalea_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 232, - MaxStateID: 245, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - FloweringAzaleaLeaves = Block{ - ID: 69, - DisplayName: "Flowering Azalea Leaves", - Name: "flowering_azalea_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 246, - MaxStateID: 259, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - Sponge = Block{ - ID: 70, - DisplayName: "Sponge", - Name: "sponge", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{141}, - NeedsTools: map[uint32]bool{}, - MinStateID: 260, - MaxStateID: 260, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WetSponge = Block{ - ID: 71, - DisplayName: "Wet Sponge", - Name: "wet_sponge", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{142}, - NeedsTools: map[uint32]bool{}, - MinStateID: 261, - MaxStateID: 261, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Glass = Block{ - ID: 72, - DisplayName: "Glass", - Name: "glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 262, - MaxStateID: 262, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LapisOre = Block{ - ID: 73, - DisplayName: "Lapis Lazuli Ore", - Name: "lapis_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{688}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 263, - MaxStateID: 263, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateLapisOre = Block{ - ID: 74, - DisplayName: "Deepslate Lapis Lazuli Ore", - Name: "deepslate_lapis_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{688}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 264, - MaxStateID: 264, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LapisBlock = Block{ - ID: 75, - DisplayName: "Block of Lapis Lazuli", - Name: "lapis_block", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{145}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 265, - MaxStateID: 265, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Dispenser = Block{ - ID: 76, - DisplayName: "Dispenser", - Name: "dispenser", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{596}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 266, - MaxStateID: 277, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Sandstone = Block{ - ID: 77, - DisplayName: "Sandstone", - Name: "sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{146}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 278, - MaxStateID: 278, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChiseledSandstone = Block{ - ID: 78, - DisplayName: "Chiseled Sandstone", - Name: "chiseled_sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{147}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 279, - MaxStateID: 279, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CutSandstone = Block{ - ID: 79, - DisplayName: "Cut Sandstone", - Name: "cut_sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{148}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 280, - MaxStateID: 280, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - NoteBlock = Block{ - ID: 80, - DisplayName: "Note Block", - Name: "note_block", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{608}, - NeedsTools: map[uint32]bool{}, - MinStateID: 281, - MaxStateID: 1080, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteBed = Block{ - ID: 81, - DisplayName: "White Bed", - Name: "white_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1081, - MaxStateID: 1096, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeBed = Block{ - ID: 82, - DisplayName: "Orange Bed", - Name: "orange_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1097, - MaxStateID: 1112, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaBed = Block{ - ID: 83, - DisplayName: "Magenta Bed", - Name: "magenta_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1113, - MaxStateID: 1128, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueBed = Block{ - ID: 84, - DisplayName: "Light Blue Bed", - Name: "light_blue_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1129, - MaxStateID: 1144, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowBed = Block{ - ID: 85, - DisplayName: "Yellow Bed", - Name: "yellow_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1145, - MaxStateID: 1160, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeBed = Block{ - ID: 86, - DisplayName: "Lime Bed", - Name: "lime_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1161, - MaxStateID: 1176, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkBed = Block{ - ID: 87, - DisplayName: "Pink Bed", - Name: "pink_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1177, - MaxStateID: 1192, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayBed = Block{ - ID: 88, - DisplayName: "Gray Bed", - Name: "gray_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1193, - MaxStateID: 1208, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayBed = Block{ - ID: 89, - DisplayName: "Light Gray Bed", - Name: "light_gray_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1209, - MaxStateID: 1224, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanBed = Block{ - ID: 90, - DisplayName: "Cyan Bed", - Name: "cyan_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1225, - MaxStateID: 1240, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleBed = Block{ - ID: 91, - DisplayName: "Purple Bed", - Name: "purple_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1241, - MaxStateID: 1256, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueBed = Block{ - ID: 92, - DisplayName: "Blue Bed", - Name: "blue_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1257, - MaxStateID: 1272, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownBed = Block{ - ID: 93, - DisplayName: "Brown Bed", - Name: "brown_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1273, - MaxStateID: 1288, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenBed = Block{ - ID: 94, - DisplayName: "Green Bed", - Name: "green_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1289, - MaxStateID: 1304, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedBed = Block{ - ID: 95, - DisplayName: "Red Bed", - Name: "red_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1305, - MaxStateID: 1320, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackBed = Block{ - ID: 96, - DisplayName: "Black Bed", - Name: "black_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1321, - MaxStateID: 1336, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PoweredRail = Block{ - ID: 97, - DisplayName: "Powered Rail", - Name: "powered_rail", - Hardness: 0.7, - Diggable: true, - DropIDs: []uint32{657}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1337, - MaxStateID: 1360, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DetectorRail = Block{ - ID: 98, - DisplayName: "Detector Rail", - Name: "detector_rail", - Hardness: 0.7, - Diggable: true, - DropIDs: []uint32{658}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1361, - MaxStateID: 1384, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StickyPiston = Block{ - ID: 99, - DisplayName: "Sticky Piston", - Name: "sticky_piston", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{591}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1385, - MaxStateID: 1396, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Cobweb = Block{ - ID: 100, - DisplayName: "Cobweb", - Name: "cobweb", - Hardness: 4, - Diggable: true, - DropIDs: []uint32{732}, - NeedsTools: map[uint32]bool{699: true, 704: true, 709: true, 714: true, 719: true, 724: true, 848: true}, - MinStateID: 1397, - MaxStateID: 1397, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - Grass = Block{ - ID: 101, - DisplayName: "Grass", - Name: "grass", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1398, - MaxStateID: 1398, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Fern = Block{ - ID: 102, - DisplayName: "Fern", - Name: "fern", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1399, - MaxStateID: 1399, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeadBush = Block{ - ID: 103, - DisplayName: "Dead Bush", - Name: "dead_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{729}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1400, - MaxStateID: 1400, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Seagrass = Block{ - ID: 104, - DisplayName: "Seagrass", - Name: "seagrass", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1401, - MaxStateID: 1401, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - TallSeagrass = Block{ - ID: 105, - DisplayName: "Air", - Name: "tall_seagrass", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1402, - MaxStateID: 1403, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - Piston = Block{ - ID: 106, - DisplayName: "Piston", - Name: "piston", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{590}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1404, - MaxStateID: 1415, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PistonHead = Block{ - ID: 107, - DisplayName: "Air", - Name: "piston_head", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1416, - MaxStateID: 1439, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteWool = Block{ - ID: 108, - DisplayName: "White Wool", - Name: "white_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{157}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1440, - MaxStateID: 1440, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OrangeWool = Block{ - ID: 109, - DisplayName: "Orange Wool", - Name: "orange_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{158}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1441, - MaxStateID: 1441, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MagentaWool = Block{ - ID: 110, - DisplayName: "Magenta Wool", - Name: "magenta_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{159}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1442, - MaxStateID: 1442, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightBlueWool = Block{ - ID: 111, - DisplayName: "Light Blue Wool", - Name: "light_blue_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{160}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1443, - MaxStateID: 1443, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - YellowWool = Block{ - ID: 112, - DisplayName: "Yellow Wool", - Name: "yellow_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{161}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1444, - MaxStateID: 1444, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LimeWool = Block{ - ID: 113, - DisplayName: "Lime Wool", - Name: "lime_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{162}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1445, - MaxStateID: 1445, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PinkWool = Block{ - ID: 114, - DisplayName: "Pink Wool", - Name: "pink_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{163}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1446, - MaxStateID: 1446, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrayWool = Block{ - ID: 115, - DisplayName: "Gray Wool", - Name: "gray_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{164}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1447, - MaxStateID: 1447, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightGrayWool = Block{ - ID: 116, - DisplayName: "Light Gray Wool", - Name: "light_gray_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{165}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1448, - MaxStateID: 1448, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CyanWool = Block{ - ID: 117, - DisplayName: "Cyan Wool", - Name: "cyan_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{166}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1449, - MaxStateID: 1449, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpleWool = Block{ - ID: 118, - DisplayName: "Purple Wool", - Name: "purple_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{167}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1450, - MaxStateID: 1450, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlueWool = Block{ - ID: 119, - DisplayName: "Blue Wool", - Name: "blue_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{168}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1451, - MaxStateID: 1451, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownWool = Block{ - ID: 120, - DisplayName: "Brown Wool", - Name: "brown_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{169}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1452, - MaxStateID: 1452, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GreenWool = Block{ - ID: 121, - DisplayName: "Green Wool", - Name: "green_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{170}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1453, - MaxStateID: 1453, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedWool = Block{ - ID: 122, - DisplayName: "Red Wool", - Name: "red_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{171}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1454, - MaxStateID: 1454, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackWool = Block{ - ID: 123, - DisplayName: "Black Wool", - Name: "black_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{172}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1455, - MaxStateID: 1455, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MovingPiston = Block{ - ID: 124, - DisplayName: "Air", - Name: "moving_piston", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1456, - MaxStateID: 1467, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Dandelion = Block{ - ID: 125, - DisplayName: "Dandelion", - Name: "dandelion", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{173}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1468, - MaxStateID: 1468, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Poppy = Block{ - ID: 126, - DisplayName: "Poppy", - Name: "poppy", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{174}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1469, - MaxStateID: 1469, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueOrchid = Block{ - ID: 127, - DisplayName: "Blue Orchid", - Name: "blue_orchid", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{175}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1470, - MaxStateID: 1470, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Allium = Block{ - ID: 128, - DisplayName: "Allium", - Name: "allium", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{176}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1471, - MaxStateID: 1471, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AzureBluet = Block{ - ID: 129, - DisplayName: "Azure Bluet", - Name: "azure_bluet", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{177}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1472, - MaxStateID: 1472, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedTulip = Block{ - ID: 130, - DisplayName: "Red Tulip", - Name: "red_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{178}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1473, - MaxStateID: 1473, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeTulip = Block{ - ID: 131, - DisplayName: "Orange Tulip", - Name: "orange_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{179}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1474, - MaxStateID: 1474, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteTulip = Block{ - ID: 132, - DisplayName: "White Tulip", - Name: "white_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{180}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1475, - MaxStateID: 1475, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkTulip = Block{ - ID: 133, - DisplayName: "Pink Tulip", - Name: "pink_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{181}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1476, - MaxStateID: 1476, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OxeyeDaisy = Block{ - ID: 134, - DisplayName: "Oxeye Daisy", - Name: "oxeye_daisy", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{182}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1477, - MaxStateID: 1477, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Cornflower = Block{ - ID: 135, - DisplayName: "Cornflower", - Name: "cornflower", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{183}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1478, - MaxStateID: 1478, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WitherRose = Block{ - ID: 136, - DisplayName: "Wither Rose", - Name: "wither_rose", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{185}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1479, - MaxStateID: 1479, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LilyOfTheValley = Block{ - ID: 137, - DisplayName: "Lily of the Valley", - Name: "lily_of_the_valley", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{184}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1480, - MaxStateID: 1480, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownMushroom = Block{ - ID: 138, - DisplayName: "Brown Mushroom", - Name: "brown_mushroom", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{187}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1481, - MaxStateID: 1481, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - RedMushroom = Block{ - ID: 139, - DisplayName: "Red Mushroom", - Name: "red_mushroom", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{188}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1482, - MaxStateID: 1482, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GoldBlock = Block{ - ID: 140, - DisplayName: "Block of Gold", - Name: "gold_block", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{67}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 1483, - MaxStateID: 1483, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - IronBlock = Block{ - ID: 141, - DisplayName: "Block of Iron", - Name: "iron_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{65}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 1484, - MaxStateID: 1484, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Bricks = Block{ - ID: 142, - DisplayName: "Bricks", - Name: "bricks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{232}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 1485, - MaxStateID: 1485, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Tnt = Block{ - ID: 143, - DisplayName: "TNT", - Name: "tnt", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{606}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1486, - MaxStateID: 1487, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Bookshelf = Block{ - ID: 144, - DisplayName: "Bookshelf", - Name: "bookshelf", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{792}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1488, - MaxStateID: 1488, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MossyCobblestone = Block{ - ID: 145, - DisplayName: "Mossy Cobblestone", - Name: "mossy_cobblestone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{234}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 1489, - MaxStateID: 1489, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Obsidian = Block{ - ID: 146, - DisplayName: "Obsidian", - Name: "obsidian", - Hardness: 50, - Diggable: true, - DropIDs: []uint32{235}, - NeedsTools: map[uint32]bool{721: true, 726: true}, - MinStateID: 1490, - MaxStateID: 1490, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Torch = Block{ - ID: 147, - DisplayName: "Torch", - Name: "torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{236}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1491, - MaxStateID: 1491, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 14, - } - WallTorch = Block{ - ID: 148, - DisplayName: "Torch", - Name: "wall_torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{236}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1492, - MaxStateID: 1495, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 14, - } - Fire = Block{ - ID: 149, - DisplayName: "Air", - Name: "fire", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1496, - MaxStateID: 2007, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - SoulFire = Block{ - ID: 150, - DisplayName: "Air", - Name: "soul_fire", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 2008, - MaxStateID: 2008, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 10, - } - Spawner = Block{ - ID: 151, - DisplayName: "Spawner", - Name: "spawner", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 2009, - MaxStateID: 2009, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - OakStairs = Block{ - ID: 152, - DisplayName: "Oak Stairs", - Name: "oak_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{244}, - NeedsTools: map[uint32]bool{}, - MinStateID: 2010, - MaxStateID: 2089, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Chest = Block{ - ID: 153, - DisplayName: "Chest", - Name: "chest", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{245}, - NeedsTools: map[uint32]bool{}, - MinStateID: 2090, - MaxStateID: 2113, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedstoneWire = Block{ - ID: 154, - DisplayName: "Redstone Dust", - Name: "redstone_wire", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{585}, - NeedsTools: map[uint32]bool{}, - MinStateID: 2114, - MaxStateID: 3409, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DiamondOre = Block{ - ID: 155, - DisplayName: "Diamond Ore", - Name: "diamond_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{686}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 3410, - MaxStateID: 3410, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateDiamondOre = Block{ - ID: 156, - DisplayName: "Deepslate Diamond Ore", - Name: "deepslate_diamond_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{686}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 3411, - MaxStateID: 3411, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DiamondBlock = Block{ - ID: 157, - DisplayName: "Block of Diamond", - Name: "diamond_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{68}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 3412, - MaxStateID: 3412, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CraftingTable = Block{ - ID: 158, - DisplayName: "Crafting Table", - Name: "crafting_table", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{246}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3413, - MaxStateID: 3413, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Wheat = Block{ - ID: 159, - DisplayName: "Wheat Seeds", - Name: "wheat", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{735}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3414, - MaxStateID: 3421, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Farmland = Block{ - ID: 160, - DisplayName: "Farmland", - Name: "farmland", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3422, - MaxStateID: 3429, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Furnace = Block{ - ID: 161, - DisplayName: "Furnace", - Name: "furnace", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{248}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 3430, - MaxStateID: 3437, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakSign = Block{ - ID: 162, - DisplayName: "Oak Sign", - Name: "oak_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{768}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3438, - MaxStateID: 3469, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceSign = Block{ - ID: 163, - DisplayName: "Spruce Sign", - Name: "spruce_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{769}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3470, - MaxStateID: 3501, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchSign = Block{ - ID: 164, - DisplayName: "Birch Sign", - Name: "birch_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{770}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3502, - MaxStateID: 3533, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaSign = Block{ - ID: 165, - DisplayName: "Acacia Sign", - Name: "acacia_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{772}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3534, - MaxStateID: 3565, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleSign = Block{ - ID: 166, - DisplayName: "Jungle Sign", - Name: "jungle_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{771}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3566, - MaxStateID: 3597, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakSign = Block{ - ID: 167, - DisplayName: "Dark Oak Sign", - Name: "dark_oak_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{773}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3598, - MaxStateID: 3629, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakDoor = Block{ - ID: 168, - DisplayName: "Oak Door", - Name: "oak_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{632}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3630, - MaxStateID: 3693, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Ladder = Block{ - ID: 169, - DisplayName: "Ladder", - Name: "ladder", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{249}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3694, - MaxStateID: 3701, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Rail = Block{ - ID: 170, - DisplayName: "Rail", - Name: "rail", - Hardness: 0.7, - Diggable: true, - DropIDs: []uint32{659}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3702, - MaxStateID: 3721, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CobblestoneStairs = Block{ - ID: 171, - DisplayName: "Cobblestone Stairs", - Name: "cobblestone_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{250}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 3722, - MaxStateID: 3801, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakWallSign = Block{ - ID: 172, - DisplayName: "Oak Sign", - Name: "oak_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{768}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3802, - MaxStateID: 3809, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceWallSign = Block{ - ID: 173, - DisplayName: "Spruce Sign", - Name: "spruce_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{769}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3810, - MaxStateID: 3817, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchWallSign = Block{ - ID: 174, - DisplayName: "Birch Sign", - Name: "birch_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{770}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3818, - MaxStateID: 3825, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaWallSign = Block{ - ID: 175, - DisplayName: "Acacia Sign", - Name: "acacia_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{772}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3826, - MaxStateID: 3833, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleWallSign = Block{ - ID: 176, - DisplayName: "Jungle Sign", - Name: "jungle_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{771}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3834, - MaxStateID: 3841, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakWallSign = Block{ - ID: 177, - DisplayName: "Dark Oak Sign", - Name: "dark_oak_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{773}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3842, - MaxStateID: 3849, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Lever = Block{ - ID: 178, - DisplayName: "Lever", - Name: "lever", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{600}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3850, - MaxStateID: 3873, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StonePressurePlate = Block{ - ID: 179, - DisplayName: "Stone Pressure Plate", - Name: "stone_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{619}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 3874, - MaxStateID: 3875, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - IronDoor = Block{ - ID: 180, - DisplayName: "Iron Door", - Name: "iron_door", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{631}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 3876, - MaxStateID: 3939, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakPressurePlate = Block{ - ID: 181, - DisplayName: "Oak Pressure Plate", - Name: "oak_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{623}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3940, - MaxStateID: 3941, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SprucePressurePlate = Block{ - ID: 182, - DisplayName: "Spruce Pressure Plate", - Name: "spruce_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{624}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3942, - MaxStateID: 3943, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchPressurePlate = Block{ - ID: 183, - DisplayName: "Birch Pressure Plate", - Name: "birch_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{625}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3944, - MaxStateID: 3945, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JunglePressurePlate = Block{ - ID: 184, - DisplayName: "Jungle Pressure Plate", - Name: "jungle_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{626}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3946, - MaxStateID: 3947, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaPressurePlate = Block{ - ID: 185, - DisplayName: "Acacia Pressure Plate", - Name: "acacia_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{627}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3948, - MaxStateID: 3949, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakPressurePlate = Block{ - ID: 186, - DisplayName: "Dark Oak Pressure Plate", - Name: "dark_oak_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{628}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3950, - MaxStateID: 3951, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedstoneOre = Block{ - ID: 187, - DisplayName: "Redstone Ore", - Name: "redstone_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{585}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 3952, - MaxStateID: 3953, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateRedstoneOre = Block{ - ID: 188, - DisplayName: "Deepslate Redstone Ore", - Name: "deepslate_redstone_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{585}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 3954, - MaxStateID: 3955, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedstoneTorch = Block{ - ID: 189, - DisplayName: "Redstone Torch", - Name: "redstone_torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{586}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3956, - MaxStateID: 3957, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 7, - } - RedstoneWallTorch = Block{ - ID: 190, - DisplayName: "Redstone Torch", - Name: "redstone_wall_torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{586}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3958, - MaxStateID: 3965, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 7, - } - StoneButton = Block{ - ID: 191, - DisplayName: "Stone Button", - Name: "stone_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{609}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3966, - MaxStateID: 3989, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Snow = Block{ - ID: 192, - DisplayName: "Snow", - Name: "snow", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{700: true, 705: true, 710: true, 715: true, 720: true, 725: true}, - MinStateID: 3990, - MaxStateID: 3997, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Ice = Block{ - ID: 193, - DisplayName: "Ice", - Name: "ice", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3998, - MaxStateID: 3998, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - SnowBlock = Block{ - ID: 194, - DisplayName: "Snow Block", - Name: "snow_block", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{780}, - NeedsTools: map[uint32]bool{700: true, 705: true, 710: true, 715: true, 720: true, 725: true}, - MinStateID: 3999, - MaxStateID: 3999, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Cactus = Block{ - ID: 195, - DisplayName: "Cactus", - Name: "cactus", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{254}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4000, - MaxStateID: 4015, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Clay = Block{ - ID: 196, - DisplayName: "Clay", - Name: "clay", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{789}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4016, - MaxStateID: 4016, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SugarCane = Block{ - ID: 197, - DisplayName: "Sugar Cane", - Name: "sugar_cane", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{196}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4017, - MaxStateID: 4032, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Jukebox = Block{ - ID: 198, - DisplayName: "Jukebox", - Name: "jukebox", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{256}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4033, - MaxStateID: 4034, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakFence = Block{ - ID: 199, - DisplayName: "Oak Fence", - Name: "oak_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{257}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4035, - MaxStateID: 4066, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Pumpkin = Block{ - ID: 200, - DisplayName: "Pumpkin", - Name: "pumpkin", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{265}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4067, - MaxStateID: 4067, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Netherrack = Block{ - ID: 201, - DisplayName: "Netherrack", - Name: "netherrack", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{268}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4068, - MaxStateID: 4068, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SoulSand = Block{ - ID: 202, - DisplayName: "Soul Sand", - Name: "soul_sand", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{269}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4069, - MaxStateID: 4069, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SoulSoil = Block{ - ID: 203, - DisplayName: "Soul Soil", - Name: "soul_soil", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{270}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4070, - MaxStateID: 4070, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Basalt = Block{ - ID: 204, - DisplayName: "Basalt", - Name: "basalt", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{271}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4071, - MaxStateID: 4073, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedBasalt = Block{ - ID: 205, - DisplayName: "Polished Basalt", - Name: "polished_basalt", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{272}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4074, - MaxStateID: 4076, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SoulTorch = Block{ - ID: 206, - DisplayName: "Soul Torch", - Name: "soul_torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{274}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4077, - MaxStateID: 4077, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 10, - } - SoulWallTorch = Block{ - ID: 207, - DisplayName: "Soul Torch", - Name: "soul_wall_torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{274}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4078, - MaxStateID: 4081, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 10, - } - Glowstone = Block{ - ID: 208, - DisplayName: "Glowstone", - Name: "glowstone", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{800}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4082, - MaxStateID: 4082, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 15, - } - NetherPortal = Block{ - ID: 209, - DisplayName: "Air", - Name: "nether_portal", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4083, - MaxStateID: 4084, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 11, - } - CarvedPumpkin = Block{ - ID: 210, - DisplayName: "Carved Pumpkin", - Name: "carved_pumpkin", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{266}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4085, - MaxStateID: 4088, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - JackOLantern = Block{ - ID: 211, - DisplayName: "Jack o'Lantern", - Name: "jack_o_lantern", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{267}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4089, - MaxStateID: 4092, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 15, - } - Cake = Block{ - ID: 212, - DisplayName: "Cake", - Name: "cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4093, - MaxStateID: 4099, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Repeater = Block{ - ID: 213, - DisplayName: "Redstone Repeater", - Name: "repeater", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{588}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4100, - MaxStateID: 4163, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteStainedGlass = Block{ - ID: 214, - DisplayName: "White Stained Glass", - Name: "white_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4164, - MaxStateID: 4164, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeStainedGlass = Block{ - ID: 215, - DisplayName: "Orange Stained Glass", - Name: "orange_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4165, - MaxStateID: 4165, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaStainedGlass = Block{ - ID: 216, - DisplayName: "Magenta Stained Glass", - Name: "magenta_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4166, - MaxStateID: 4166, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueStainedGlass = Block{ - ID: 217, - DisplayName: "Light Blue Stained Glass", - Name: "light_blue_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4167, - MaxStateID: 4167, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowStainedGlass = Block{ - ID: 218, - DisplayName: "Yellow Stained Glass", - Name: "yellow_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4168, - MaxStateID: 4168, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeStainedGlass = Block{ - ID: 219, - DisplayName: "Lime Stained Glass", - Name: "lime_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4169, - MaxStateID: 4169, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkStainedGlass = Block{ - ID: 220, - DisplayName: "Pink Stained Glass", - Name: "pink_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4170, - MaxStateID: 4170, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayStainedGlass = Block{ - ID: 221, - DisplayName: "Gray Stained Glass", - Name: "gray_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4171, - MaxStateID: 4171, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayStainedGlass = Block{ - ID: 222, - DisplayName: "Light Gray Stained Glass", - Name: "light_gray_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4172, - MaxStateID: 4172, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanStainedGlass = Block{ - ID: 223, - DisplayName: "Cyan Stained Glass", - Name: "cyan_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4173, - MaxStateID: 4173, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleStainedGlass = Block{ - ID: 224, - DisplayName: "Purple Stained Glass", - Name: "purple_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4174, - MaxStateID: 4174, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueStainedGlass = Block{ - ID: 225, - DisplayName: "Blue Stained Glass", - Name: "blue_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4175, - MaxStateID: 4175, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownStainedGlass = Block{ - ID: 226, - DisplayName: "Brown Stained Glass", - Name: "brown_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4176, - MaxStateID: 4176, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenStainedGlass = Block{ - ID: 227, - DisplayName: "Green Stained Glass", - Name: "green_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4177, - MaxStateID: 4177, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedStainedGlass = Block{ - ID: 228, - DisplayName: "Red Stained Glass", - Name: "red_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4178, - MaxStateID: 4178, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackStainedGlass = Block{ - ID: 229, - DisplayName: "Black Stained Glass", - Name: "black_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4179, - MaxStateID: 4179, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakTrapdoor = Block{ - ID: 230, - DisplayName: "Oak Trapdoor", - Name: "oak_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{641}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4180, - MaxStateID: 4243, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceTrapdoor = Block{ - ID: 231, - DisplayName: "Spruce Trapdoor", - Name: "spruce_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{642}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4244, - MaxStateID: 4307, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchTrapdoor = Block{ - ID: 232, - DisplayName: "Birch Trapdoor", - Name: "birch_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{643}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4308, - MaxStateID: 4371, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleTrapdoor = Block{ - ID: 233, - DisplayName: "Jungle Trapdoor", - Name: "jungle_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{644}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4372, - MaxStateID: 4435, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaTrapdoor = Block{ - ID: 234, - DisplayName: "Acacia Trapdoor", - Name: "acacia_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{645}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4436, - MaxStateID: 4499, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakTrapdoor = Block{ - ID: 235, - DisplayName: "Dark Oak Trapdoor", - Name: "dark_oak_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{646}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4500, - MaxStateID: 4563, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneBricks = Block{ - ID: 236, - DisplayName: "Stone Bricks", - Name: "stone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{283}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4564, - MaxStateID: 4564, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MossyStoneBricks = Block{ - ID: 237, - DisplayName: "Mossy Stone Bricks", - Name: "mossy_stone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{284}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4565, - MaxStateID: 4565, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrackedStoneBricks = Block{ - ID: 238, - DisplayName: "Cracked Stone Bricks", - Name: "cracked_stone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{285}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4566, - MaxStateID: 4566, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChiseledStoneBricks = Block{ - ID: 239, - DisplayName: "Chiseled Stone Bricks", - Name: "chiseled_stone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{286}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4567, - MaxStateID: 4567, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedStone = Block{ - ID: 240, - DisplayName: "Infested Stone", - Name: "infested_stone", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4568, - MaxStateID: 4568, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedCobblestone = Block{ - ID: 241, - DisplayName: "Infested Cobblestone", - Name: "infested_cobblestone", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4569, - MaxStateID: 4569, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedStoneBricks = Block{ - ID: 242, - DisplayName: "Infested Stone Bricks", - Name: "infested_stone_bricks", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4570, - MaxStateID: 4570, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedMossyStoneBricks = Block{ - ID: 243, - DisplayName: "Infested Mossy Stone Bricks", - Name: "infested_mossy_stone_bricks", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4571, - MaxStateID: 4571, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedCrackedStoneBricks = Block{ - ID: 244, - DisplayName: "Infested Cracked Stone Bricks", - Name: "infested_cracked_stone_bricks", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4572, - MaxStateID: 4572, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedChiseledStoneBricks = Block{ - ID: 245, - DisplayName: "Infested Chiseled Stone Bricks", - Name: "infested_chiseled_stone_bricks", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4573, - MaxStateID: 4573, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownMushroomBlock = Block{ - ID: 246, - DisplayName: "Brown Mushroom Block", - Name: "brown_mushroom_block", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{0}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4574, - MaxStateID: 4637, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedMushroomBlock = Block{ - ID: 247, - DisplayName: "Red Mushroom Block", - Name: "red_mushroom_block", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{0}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4638, - MaxStateID: 4701, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MushroomStem = Block{ - ID: 248, - DisplayName: "Mushroom Stem", - Name: "mushroom_stem", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4702, - MaxStateID: 4765, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - IronBars = Block{ - ID: 249, - DisplayName: "Iron Bars", - Name: "iron_bars", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{295}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4766, - MaxStateID: 4797, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Chain = Block{ - ID: 250, - DisplayName: "Chain", - Name: "chain", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{296}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4798, - MaxStateID: 4803, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GlassPane = Block{ - ID: 251, - DisplayName: "Glass Pane", - Name: "glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4804, - MaxStateID: 4835, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Melon = Block{ - ID: 252, - DisplayName: "Melon", - Name: "melon", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{849}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4836, - MaxStateID: 4836, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AttachedPumpkinStem = Block{ - ID: 253, - DisplayName: "Air", - Name: "attached_pumpkin_stem", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{851}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4837, - MaxStateID: 4840, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AttachedMelonStem = Block{ - ID: 254, - DisplayName: "Air", - Name: "attached_melon_stem", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{852}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4841, - MaxStateID: 4844, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PumpkinStem = Block{ - ID: 255, - DisplayName: "Pumpkin Seeds", - Name: "pumpkin_stem", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{0}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4845, - MaxStateID: 4852, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MelonStem = Block{ - ID: 256, - DisplayName: "Melon Seeds", - Name: "melon_stem", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{0}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4853, - MaxStateID: 4860, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Vine = Block{ - ID: 257, - DisplayName: "Vines", - Name: "vine", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4861, - MaxStateID: 4892, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GlowLichen = Block{ - ID: 258, - DisplayName: "Glow Lichen", - Name: "glow_lichen", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4893, - MaxStateID: 5020, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakFenceGate = Block{ - ID: 259, - DisplayName: "Oak Fence Gate", - Name: "oak_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{649}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5021, - MaxStateID: 5052, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrickStairs = Block{ - ID: 260, - DisplayName: "Brick Stairs", - Name: "brick_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{301}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5053, - MaxStateID: 5132, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneBrickStairs = Block{ - ID: 261, - DisplayName: "Stone Brick Stairs", - Name: "stone_brick_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{302}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5133, - MaxStateID: 5212, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Mycelium = Block{ - ID: 262, - DisplayName: "Mycelium", - Name: "mycelium", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5213, - MaxStateID: 5214, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LilyPad = Block{ - ID: 263, - DisplayName: "Lily Pad", - Name: "lily_pad", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{304}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5215, - MaxStateID: 5215, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherBricks = Block{ - ID: 264, - DisplayName: "Nether Bricks", - Name: "nether_bricks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{305}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5216, - MaxStateID: 5216, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - NetherBrickFence = Block{ - ID: 265, - DisplayName: "Nether Brick Fence", - Name: "nether_brick_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{308}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5217, - MaxStateID: 5248, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherBrickStairs = Block{ - ID: 266, - DisplayName: "Nether Brick Stairs", - Name: "nether_brick_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{309}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5249, - MaxStateID: 5328, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherWart = Block{ - ID: 267, - DisplayName: "Nether Wart", - Name: "nether_wart", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{862}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5329, - MaxStateID: 5332, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EnchantingTable = Block{ - ID: 268, - DisplayName: "Enchanting Table", - Name: "enchanting_table", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{310}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5333, - MaxStateID: 5333, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrewingStand = Block{ - ID: 269, - DisplayName: "Brewing Stand", - Name: "brewing_stand", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{869}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5334, - MaxStateID: 5341, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - Cauldron = Block{ - ID: 270, - DisplayName: "Cauldron", - Name: "cauldron", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{870}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5342, - MaxStateID: 5342, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaterCauldron = Block{ - ID: 271, - DisplayName: "Cauldron", - Name: "water_cauldron", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{870}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5343, - MaxStateID: 5345, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LavaCauldron = Block{ - ID: 272, - DisplayName: "Cauldron", - Name: "lava_cauldron", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{870}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5346, - MaxStateID: 5346, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - PowderSnowCauldron = Block{ - ID: 273, - DisplayName: "Cauldron", - Name: "powder_snow_cauldron", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{870}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5347, - MaxStateID: 5349, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndPortal = Block{ - ID: 274, - DisplayName: "Air", - Name: "end_portal", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5350, - MaxStateID: 5350, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - EndPortalFrame = Block{ - ID: 275, - DisplayName: "End Portal Frame", - Name: "end_portal_frame", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5351, - MaxStateID: 5358, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - EndStone = Block{ - ID: 276, - DisplayName: "End Stone", - Name: "end_stone", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{312}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5359, - MaxStateID: 5359, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DragonEgg = Block{ - ID: 277, - DisplayName: "Dragon Egg", - Name: "dragon_egg", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{314}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5360, - MaxStateID: 5360, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - RedstoneLamp = Block{ - ID: 278, - DisplayName: "Redstone Lamp", - Name: "redstone_lamp", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{607}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5361, - MaxStateID: 5362, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Cocoa = Block{ - ID: 279, - DisplayName: "Cocoa Beans", - Name: "cocoa", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{809}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5363, - MaxStateID: 5374, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SandstoneStairs = Block{ - ID: 280, - DisplayName: "Sandstone Stairs", - Name: "sandstone_stairs", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{315}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5375, - MaxStateID: 5454, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EmeraldOre = Block{ - ID: 281, - DisplayName: "Emerald Ore", - Name: "emerald_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{687}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 5455, - MaxStateID: 5455, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateEmeraldOre = Block{ - ID: 282, - DisplayName: "Deepslate Emerald Ore", - Name: "deepslate_emerald_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{687}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 5456, - MaxStateID: 5456, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - EnderChest = Block{ - ID: 283, - DisplayName: "Ender Chest", - Name: "ender_chest", - Hardness: 22.5, - Diggable: true, - DropIDs: []uint32{235}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5457, - MaxStateID: 5464, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 7, - } - TripwireHook = Block{ - ID: 284, - DisplayName: "Tripwire Hook", - Name: "tripwire_hook", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{604}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5465, - MaxStateID: 5480, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Tripwire = Block{ - ID: 285, - DisplayName: "String", - Name: "tripwire", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{732}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5481, - MaxStateID: 5608, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EmeraldBlock = Block{ - ID: 286, - DisplayName: "Block of Emerald", - Name: "emerald_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{317}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 5609, - MaxStateID: 5609, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SpruceStairs = Block{ - ID: 287, - DisplayName: "Spruce Stairs", - Name: "spruce_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{318}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5610, - MaxStateID: 5689, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchStairs = Block{ - ID: 288, - DisplayName: "Birch Stairs", - Name: "birch_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{319}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5690, - MaxStateID: 5769, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleStairs = Block{ - ID: 289, - DisplayName: "Jungle Stairs", - Name: "jungle_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{320}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5770, - MaxStateID: 5849, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CommandBlock = Block{ - ID: 290, - DisplayName: "Command Block", - Name: "command_block", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5850, - MaxStateID: 5861, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Beacon = Block{ - ID: 291, - DisplayName: "Beacon", - Name: "beacon", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{324}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5862, - MaxStateID: 5862, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 15, - } - CobblestoneWall = Block{ - ID: 292, - DisplayName: "Cobblestone Wall", - Name: "cobblestone_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{325}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5863, - MaxStateID: 6186, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyCobblestoneWall = Block{ - ID: 293, - DisplayName: "Mossy Cobblestone Wall", - Name: "mossy_cobblestone_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{326}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6187, - MaxStateID: 6510, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - FlowerPot = Block{ - ID: 294, - DisplayName: "Flower Pot", - Name: "flower_pot", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6511, - MaxStateID: 6511, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedOakSapling = Block{ - ID: 295, - DisplayName: "Air", - Name: "potted_oak_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 30}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6512, - MaxStateID: 6512, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedSpruceSapling = Block{ - ID: 296, - DisplayName: "Air", - Name: "potted_spruce_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 31}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6513, - MaxStateID: 6513, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedBirchSapling = Block{ - ID: 297, - DisplayName: "Air", - Name: "potted_birch_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 32}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6514, - MaxStateID: 6514, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedJungleSapling = Block{ - ID: 298, - DisplayName: "Air", - Name: "potted_jungle_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 33}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6515, - MaxStateID: 6515, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedAcaciaSapling = Block{ - ID: 299, - DisplayName: "Air", - Name: "potted_acacia_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 34}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6516, - MaxStateID: 6516, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedDarkOakSapling = Block{ - ID: 300, - DisplayName: "Air", - Name: "potted_dark_oak_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 35}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6517, - MaxStateID: 6517, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedFern = Block{ - ID: 301, - DisplayName: "Air", - Name: "potted_fern", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 151}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6518, - MaxStateID: 6518, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedDandelion = Block{ - ID: 302, - DisplayName: "Air", - Name: "potted_dandelion", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 173}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6519, - MaxStateID: 6519, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedPoppy = Block{ - ID: 303, - DisplayName: "Air", - Name: "potted_poppy", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 174}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6520, - MaxStateID: 6520, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedBlueOrchid = Block{ - ID: 304, - DisplayName: "Air", - Name: "potted_blue_orchid", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 175}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6521, - MaxStateID: 6521, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedAllium = Block{ - ID: 305, - DisplayName: "Air", - Name: "potted_allium", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 176}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6522, - MaxStateID: 6522, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedAzureBluet = Block{ - ID: 306, - DisplayName: "Air", - Name: "potted_azure_bluet", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 177}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6523, - MaxStateID: 6523, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedRedTulip = Block{ - ID: 307, - DisplayName: "Air", - Name: "potted_red_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 178}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6524, - MaxStateID: 6524, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedOrangeTulip = Block{ - ID: 308, - DisplayName: "Air", - Name: "potted_orange_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 179}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6525, - MaxStateID: 6525, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedWhiteTulip = Block{ - ID: 309, - DisplayName: "Air", - Name: "potted_white_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 180}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6526, - MaxStateID: 6526, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedPinkTulip = Block{ - ID: 310, - DisplayName: "Air", - Name: "potted_pink_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 181}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6527, - MaxStateID: 6527, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedOxeyeDaisy = Block{ - ID: 311, - DisplayName: "Air", - Name: "potted_oxeye_daisy", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 182}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6528, - MaxStateID: 6528, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedCornflower = Block{ - ID: 312, - DisplayName: "Air", - Name: "potted_cornflower", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 183}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6529, - MaxStateID: 6529, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedLilyOfTheValley = Block{ - ID: 313, - DisplayName: "Air", - Name: "potted_lily_of_the_valley", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 184}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6530, - MaxStateID: 6530, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedWitherRose = Block{ - ID: 314, - DisplayName: "Air", - Name: "potted_wither_rose", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 185}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6531, - MaxStateID: 6531, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedRedMushroom = Block{ - ID: 315, - DisplayName: "Air", - Name: "potted_red_mushroom", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 188}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6532, - MaxStateID: 6532, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedBrownMushroom = Block{ - ID: 316, - DisplayName: "Air", - Name: "potted_brown_mushroom", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 187}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6533, - MaxStateID: 6533, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedDeadBush = Block{ - ID: 317, - DisplayName: "Air", - Name: "potted_dead_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 154}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6534, - MaxStateID: 6534, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedCactus = Block{ - ID: 318, - DisplayName: "Air", - Name: "potted_cactus", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 254}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6535, - MaxStateID: 6535, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Carrots = Block{ - ID: 319, - DisplayName: "Carrot", - Name: "carrots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{947}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6536, - MaxStateID: 6543, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Potatoes = Block{ - ID: 320, - DisplayName: "Potato", - Name: "potatoes", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{948}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6544, - MaxStateID: 6551, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakButton = Block{ - ID: 321, - DisplayName: "Oak Button", - Name: "oak_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{611}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6552, - MaxStateID: 6575, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceButton = Block{ - ID: 322, - DisplayName: "Spruce Button", - Name: "spruce_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{612}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6576, - MaxStateID: 6599, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchButton = Block{ - ID: 323, - DisplayName: "Birch Button", - Name: "birch_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{613}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6600, - MaxStateID: 6623, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleButton = Block{ - ID: 324, - DisplayName: "Jungle Button", - Name: "jungle_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{614}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6624, - MaxStateID: 6647, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaButton = Block{ - ID: 325, - DisplayName: "Acacia Button", - Name: "acacia_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{615}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6648, - MaxStateID: 6671, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakButton = Block{ - ID: 326, - DisplayName: "Dark Oak Button", - Name: "dark_oak_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{616}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6672, - MaxStateID: 6695, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SkeletonSkull = Block{ - ID: 327, - DisplayName: "Skeleton Skull", - Name: "skeleton_skull", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{953}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6696, - MaxStateID: 6711, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SkeletonWallSkull = Block{ - ID: 328, - DisplayName: "Skeleton Skull", - Name: "skeleton_wall_skull", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{953}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6712, - MaxStateID: 6715, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WitherSkeletonSkull = Block{ - ID: 329, - DisplayName: "Wither Skeleton Skull", - Name: "wither_skeleton_skull", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{954}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6716, - MaxStateID: 6731, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WitherSkeletonWallSkull = Block{ - ID: 330, - DisplayName: "Wither Skeleton Skull", - Name: "wither_skeleton_wall_skull", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{954}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6732, - MaxStateID: 6735, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ZombieHead = Block{ - ID: 331, - DisplayName: "Zombie Head", - Name: "zombie_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{956}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6736, - MaxStateID: 6751, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ZombieWallHead = Block{ - ID: 332, - DisplayName: "Zombie Head", - Name: "zombie_wall_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{956}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6752, - MaxStateID: 6755, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PlayerHead = Block{ - ID: 333, - DisplayName: "Player Head", - Name: "player_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{955}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6756, - MaxStateID: 6771, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PlayerWallHead = Block{ - ID: 334, - DisplayName: "Player Head", - Name: "player_wall_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{955}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6772, - MaxStateID: 6775, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CreeperHead = Block{ - ID: 335, - DisplayName: "Creeper Head", - Name: "creeper_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{957}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6776, - MaxStateID: 6791, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CreeperWallHead = Block{ - ID: 336, - DisplayName: "Creeper Head", - Name: "creeper_wall_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{957}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6792, - MaxStateID: 6795, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DragonHead = Block{ - ID: 337, - DisplayName: "Dragon Head", - Name: "dragon_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{958}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6796, - MaxStateID: 6811, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DragonWallHead = Block{ - ID: 338, - DisplayName: "Dragon Head", - Name: "dragon_wall_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{958}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6812, - MaxStateID: 6815, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Anvil = Block{ - ID: 339, - DisplayName: "Anvil", - Name: "anvil", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{346}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6816, - MaxStateID: 6819, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ChippedAnvil = Block{ - ID: 340, - DisplayName: "Chipped Anvil", - Name: "chipped_anvil", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{347}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6820, - MaxStateID: 6823, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DamagedAnvil = Block{ - ID: 341, - DisplayName: "Damaged Anvil", - Name: "damaged_anvil", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{348}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6824, - MaxStateID: 6827, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - TrappedChest = Block{ - ID: 342, - DisplayName: "Trapped Chest", - Name: "trapped_chest", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{605}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6828, - MaxStateID: 6851, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightWeightedPressurePlate = Block{ - ID: 343, - DisplayName: "Light Weighted Pressure Plate", - Name: "light_weighted_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{621}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6852, - MaxStateID: 6867, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - HeavyWeightedPressurePlate = Block{ - ID: 344, - DisplayName: "Heavy Weighted Pressure Plate", - Name: "heavy_weighted_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{622}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6868, - MaxStateID: 6883, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Comparator = Block{ - ID: 345, - DisplayName: "Redstone Comparator", - Name: "comparator", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{589}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6884, - MaxStateID: 6899, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DaylightDetector = Block{ - ID: 346, - DisplayName: "Daylight Detector", - Name: "daylight_detector", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{602}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6900, - MaxStateID: 6931, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedstoneBlock = Block{ - ID: 347, - DisplayName: "Block of Redstone", - Name: "redstone_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{587}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6932, - MaxStateID: 6932, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - NetherQuartzOre = Block{ - ID: 348, - DisplayName: "Nether Quartz Ore", - Name: "nether_quartz_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{689}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6933, - MaxStateID: 6933, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Hopper = Block{ - ID: 349, - DisplayName: "Hopper", - Name: "hopper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{595}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6934, - MaxStateID: 6943, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - QuartzBlock = Block{ - ID: 350, - DisplayName: "Block of Quartz", - Name: "quartz_block", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{350}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6944, - MaxStateID: 6944, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChiseledQuartzBlock = Block{ - ID: 351, - DisplayName: "Chiseled Quartz Block", - Name: "chiseled_quartz_block", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{349}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6945, - MaxStateID: 6945, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - QuartzPillar = Block{ - ID: 352, - DisplayName: "Quartz Pillar", - Name: "quartz_pillar", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{352}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6946, - MaxStateID: 6948, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - QuartzStairs = Block{ - ID: 353, - DisplayName: "Quartz Stairs", - Name: "quartz_stairs", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{353}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6949, - MaxStateID: 7028, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ActivatorRail = Block{ - ID: 354, - DisplayName: "Activator Rail", - Name: "activator_rail", - Hardness: 0.7, - Diggable: true, - DropIDs: []uint32{660}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7029, - MaxStateID: 7052, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Dropper = Block{ - ID: 355, - DisplayName: "Dropper", - Name: "dropper", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{597}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7053, - MaxStateID: 7064, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteTerracotta = Block{ - ID: 356, - DisplayName: "White Terracotta", - Name: "white_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{354}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7065, - MaxStateID: 7065, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OrangeTerracotta = Block{ - ID: 357, - DisplayName: "Orange Terracotta", - Name: "orange_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{355}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7066, - MaxStateID: 7066, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MagentaTerracotta = Block{ - ID: 358, - DisplayName: "Magenta Terracotta", - Name: "magenta_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{356}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7067, - MaxStateID: 7067, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightBlueTerracotta = Block{ - ID: 359, - DisplayName: "Light Blue Terracotta", - Name: "light_blue_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{357}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7068, - MaxStateID: 7068, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - YellowTerracotta = Block{ - ID: 360, - DisplayName: "Yellow Terracotta", - Name: "yellow_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{358}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7069, - MaxStateID: 7069, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LimeTerracotta = Block{ - ID: 361, - DisplayName: "Lime Terracotta", - Name: "lime_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{359}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7070, - MaxStateID: 7070, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PinkTerracotta = Block{ - ID: 362, - DisplayName: "Pink Terracotta", - Name: "pink_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{360}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7071, - MaxStateID: 7071, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrayTerracotta = Block{ - ID: 363, - DisplayName: "Gray Terracotta", - Name: "gray_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{361}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7072, - MaxStateID: 7072, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightGrayTerracotta = Block{ - ID: 364, - DisplayName: "Light Gray Terracotta", - Name: "light_gray_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{362}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7073, - MaxStateID: 7073, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CyanTerracotta = Block{ - ID: 365, - DisplayName: "Cyan Terracotta", - Name: "cyan_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{363}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7074, - MaxStateID: 7074, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpleTerracotta = Block{ - ID: 366, - DisplayName: "Purple Terracotta", - Name: "purple_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{364}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7075, - MaxStateID: 7075, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlueTerracotta = Block{ - ID: 367, - DisplayName: "Blue Terracotta", - Name: "blue_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{365}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7076, - MaxStateID: 7076, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownTerracotta = Block{ - ID: 368, - DisplayName: "Brown Terracotta", - Name: "brown_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{366}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7077, - MaxStateID: 7077, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GreenTerracotta = Block{ - ID: 369, - DisplayName: "Green Terracotta", - Name: "green_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{367}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7078, - MaxStateID: 7078, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedTerracotta = Block{ - ID: 370, - DisplayName: "Red Terracotta", - Name: "red_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{368}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7079, - MaxStateID: 7079, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackTerracotta = Block{ - ID: 371, - DisplayName: "Black Terracotta", - Name: "black_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{369}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7080, - MaxStateID: 7080, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteStainedGlassPane = Block{ - ID: 372, - DisplayName: "White Stained Glass Pane", - Name: "white_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7081, - MaxStateID: 7112, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeStainedGlassPane = Block{ - ID: 373, - DisplayName: "Orange Stained Glass Pane", - Name: "orange_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7113, - MaxStateID: 7144, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaStainedGlassPane = Block{ - ID: 374, - DisplayName: "Magenta Stained Glass Pane", - Name: "magenta_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7145, - MaxStateID: 7176, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueStainedGlassPane = Block{ - ID: 375, - DisplayName: "Light Blue Stained Glass Pane", - Name: "light_blue_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7177, - MaxStateID: 7208, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowStainedGlassPane = Block{ - ID: 376, - DisplayName: "Yellow Stained Glass Pane", - Name: "yellow_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7209, - MaxStateID: 7240, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeStainedGlassPane = Block{ - ID: 377, - DisplayName: "Lime Stained Glass Pane", - Name: "lime_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7241, - MaxStateID: 7272, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkStainedGlassPane = Block{ - ID: 378, - DisplayName: "Pink Stained Glass Pane", - Name: "pink_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7273, - MaxStateID: 7304, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayStainedGlassPane = Block{ - ID: 379, - DisplayName: "Gray Stained Glass Pane", - Name: "gray_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7305, - MaxStateID: 7336, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayStainedGlassPane = Block{ - ID: 380, - DisplayName: "Light Gray Stained Glass Pane", - Name: "light_gray_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7337, - MaxStateID: 7368, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanStainedGlassPane = Block{ - ID: 381, - DisplayName: "Cyan Stained Glass Pane", - Name: "cyan_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7369, - MaxStateID: 7400, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleStainedGlassPane = Block{ - ID: 382, - DisplayName: "Purple Stained Glass Pane", - Name: "purple_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7401, - MaxStateID: 7432, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueStainedGlassPane = Block{ - ID: 383, - DisplayName: "Blue Stained Glass Pane", - Name: "blue_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7433, - MaxStateID: 7464, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownStainedGlassPane = Block{ - ID: 384, - DisplayName: "Brown Stained Glass Pane", - Name: "brown_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7465, - MaxStateID: 7496, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenStainedGlassPane = Block{ - ID: 385, - DisplayName: "Green Stained Glass Pane", - Name: "green_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7497, - MaxStateID: 7528, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedStainedGlassPane = Block{ - ID: 386, - DisplayName: "Red Stained Glass Pane", - Name: "red_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7529, - MaxStateID: 7560, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackStainedGlassPane = Block{ - ID: 387, - DisplayName: "Black Stained Glass Pane", - Name: "black_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7561, - MaxStateID: 7592, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaStairs = Block{ - ID: 388, - DisplayName: "Acacia Stairs", - Name: "acacia_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{391}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7593, - MaxStateID: 7672, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakStairs = Block{ - ID: 389, - DisplayName: "Dark Oak Stairs", - Name: "dark_oak_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{392}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7673, - MaxStateID: 7752, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SlimeBlock = Block{ - ID: 390, - DisplayName: "Slime Block", - Name: "slime_block", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{592}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7753, - MaxStateID: 7753, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - Barrier = Block{ - ID: 391, - DisplayName: "Barrier", - Name: "barrier", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7754, - MaxStateID: 7754, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Light = Block{ - ID: 392, - DisplayName: "Light", - Name: "light", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7755, - MaxStateID: 7786, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - IronTrapdoor = Block{ - ID: 393, - DisplayName: "Iron Trapdoor", - Name: "iron_trapdoor", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{640}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7787, - MaxStateID: 7850, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Prismarine = Block{ - ID: 394, - DisplayName: "Prismarine", - Name: "prismarine", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{432}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7851, - MaxStateID: 7851, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PrismarineBricks = Block{ - ID: 395, - DisplayName: "Prismarine Bricks", - Name: "prismarine_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{433}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7852, - MaxStateID: 7852, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DarkPrismarine = Block{ - ID: 396, - DisplayName: "Dark Prismarine", - Name: "dark_prismarine", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{434}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7853, - MaxStateID: 7853, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PrismarineStairs = Block{ - ID: 397, - DisplayName: "Prismarine Stairs", - Name: "prismarine_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{435}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7854, - MaxStateID: 7933, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PrismarineBrickStairs = Block{ - ID: 398, - DisplayName: "Prismarine Brick Stairs", - Name: "prismarine_brick_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{436}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7934, - MaxStateID: 8013, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkPrismarineStairs = Block{ - ID: 399, - DisplayName: "Dark Prismarine Stairs", - Name: "dark_prismarine_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{437}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8014, - MaxStateID: 8093, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PrismarineSlab = Block{ - ID: 400, - DisplayName: "Prismarine Slab", - Name: "prismarine_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{225}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8094, - MaxStateID: 8099, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PrismarineBrickSlab = Block{ - ID: 401, - DisplayName: "Prismarine Brick Slab", - Name: "prismarine_brick_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{226}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8100, - MaxStateID: 8105, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkPrismarineSlab = Block{ - ID: 402, - DisplayName: "Dark Prismarine Slab", - Name: "dark_prismarine_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{227}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8106, - MaxStateID: 8111, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SeaLantern = Block{ - ID: 403, - DisplayName: "Sea Lantern", - Name: "sea_lantern", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{966}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8112, - MaxStateID: 8112, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 15, - } - HayBlock = Block{ - ID: 404, - DisplayName: "Hay Bale", - Name: "hay_block", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{372}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8113, - MaxStateID: 8115, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteCarpet = Block{ - ID: 405, - DisplayName: "White Carpet", - Name: "white_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{373}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8116, - MaxStateID: 8116, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeCarpet = Block{ - ID: 406, - DisplayName: "Orange Carpet", - Name: "orange_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{374}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8117, - MaxStateID: 8117, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaCarpet = Block{ - ID: 407, - DisplayName: "Magenta Carpet", - Name: "magenta_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{375}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8118, - MaxStateID: 8118, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueCarpet = Block{ - ID: 408, - DisplayName: "Light Blue Carpet", - Name: "light_blue_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{376}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8119, - MaxStateID: 8119, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowCarpet = Block{ - ID: 409, - DisplayName: "Yellow Carpet", - Name: "yellow_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{377}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8120, - MaxStateID: 8120, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeCarpet = Block{ - ID: 410, - DisplayName: "Lime Carpet", - Name: "lime_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{378}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8121, - MaxStateID: 8121, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkCarpet = Block{ - ID: 411, - DisplayName: "Pink Carpet", - Name: "pink_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{379}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8122, - MaxStateID: 8122, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayCarpet = Block{ - ID: 412, - DisplayName: "Gray Carpet", - Name: "gray_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{380}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8123, - MaxStateID: 8123, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayCarpet = Block{ - ID: 413, - DisplayName: "Light Gray Carpet", - Name: "light_gray_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{381}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8124, - MaxStateID: 8124, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanCarpet = Block{ - ID: 414, - DisplayName: "Cyan Carpet", - Name: "cyan_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{382}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8125, - MaxStateID: 8125, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleCarpet = Block{ - ID: 415, - DisplayName: "Purple Carpet", - Name: "purple_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{383}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8126, - MaxStateID: 8126, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueCarpet = Block{ - ID: 416, - DisplayName: "Blue Carpet", - Name: "blue_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{384}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8127, - MaxStateID: 8127, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownCarpet = Block{ - ID: 417, - DisplayName: "Brown Carpet", - Name: "brown_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{385}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8128, - MaxStateID: 8128, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenCarpet = Block{ - ID: 418, - DisplayName: "Green Carpet", - Name: "green_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{386}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8129, - MaxStateID: 8129, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedCarpet = Block{ - ID: 419, - DisplayName: "Red Carpet", - Name: "red_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{387}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8130, - MaxStateID: 8130, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackCarpet = Block{ - ID: 420, - DisplayName: "Black Carpet", - Name: "black_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{388}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8131, - MaxStateID: 8131, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Terracotta = Block{ - ID: 421, - DisplayName: "Terracotta", - Name: "terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{389}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8132, - MaxStateID: 8132, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CoalBlock = Block{ - ID: 422, - DisplayName: "Block of Coal", - Name: "coal_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{59}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8133, - MaxStateID: 8133, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PackedIce = Block{ - ID: 423, - DisplayName: "Packed Ice", - Name: "packed_ice", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8134, - MaxStateID: 8134, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Sunflower = Block{ - ID: 424, - DisplayName: "Sunflower", - Name: "sunflower", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{394}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8135, - MaxStateID: 8136, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Lilac = Block{ - ID: 425, - DisplayName: "Lilac", - Name: "lilac", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{395}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8137, - MaxStateID: 8138, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RoseBush = Block{ - ID: 426, - DisplayName: "Rose Bush", - Name: "rose_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{396}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8139, - MaxStateID: 8140, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Peony = Block{ - ID: 427, - DisplayName: "Peony", - Name: "peony", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{397}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8141, - MaxStateID: 8142, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - TallGrass = Block{ - ID: 428, - DisplayName: "Tall Grass", - Name: "tall_grass", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8143, - MaxStateID: 8144, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LargeFern = Block{ - ID: 429, - DisplayName: "Large Fern", - Name: "large_fern", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8145, - MaxStateID: 8146, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteBanner = Block{ - ID: 430, - DisplayName: "White Banner", - Name: "white_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{982}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8147, - MaxStateID: 8162, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeBanner = Block{ - ID: 431, - DisplayName: "Orange Banner", - Name: "orange_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{983}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8163, - MaxStateID: 8178, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaBanner = Block{ - ID: 432, - DisplayName: "Magenta Banner", - Name: "magenta_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{984}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8179, - MaxStateID: 8194, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueBanner = Block{ - ID: 433, - DisplayName: "Light Blue Banner", - Name: "light_blue_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{985}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8195, - MaxStateID: 8210, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowBanner = Block{ - ID: 434, - DisplayName: "Yellow Banner", - Name: "yellow_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{986}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8211, - MaxStateID: 8226, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeBanner = Block{ - ID: 435, - DisplayName: "Lime Banner", - Name: "lime_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{987}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8227, - MaxStateID: 8242, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkBanner = Block{ - ID: 436, - DisplayName: "Pink Banner", - Name: "pink_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{988}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8243, - MaxStateID: 8258, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayBanner = Block{ - ID: 437, - DisplayName: "Gray Banner", - Name: "gray_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{989}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8259, - MaxStateID: 8274, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayBanner = Block{ - ID: 438, - DisplayName: "Light Gray Banner", - Name: "light_gray_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{990}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8275, - MaxStateID: 8290, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanBanner = Block{ - ID: 439, - DisplayName: "Cyan Banner", - Name: "cyan_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{991}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8291, - MaxStateID: 8306, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleBanner = Block{ - ID: 440, - DisplayName: "Purple Banner", - Name: "purple_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{992}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8307, - MaxStateID: 8322, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueBanner = Block{ - ID: 441, - DisplayName: "Blue Banner", - Name: "blue_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{993}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8323, - MaxStateID: 8338, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownBanner = Block{ - ID: 442, - DisplayName: "Brown Banner", - Name: "brown_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{994}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8339, - MaxStateID: 8354, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenBanner = Block{ - ID: 443, - DisplayName: "Green Banner", - Name: "green_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{995}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8355, - MaxStateID: 8370, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedBanner = Block{ - ID: 444, - DisplayName: "Red Banner", - Name: "red_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{996}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8371, - MaxStateID: 8386, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackBanner = Block{ - ID: 445, - DisplayName: "Black Banner", - Name: "black_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{997}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8387, - MaxStateID: 8402, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteWallBanner = Block{ - ID: 446, - DisplayName: "White Banner", - Name: "white_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{982}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8403, - MaxStateID: 8406, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeWallBanner = Block{ - ID: 447, - DisplayName: "Orange Banner", - Name: "orange_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{983}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8407, - MaxStateID: 8410, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaWallBanner = Block{ - ID: 448, - DisplayName: "Magenta Banner", - Name: "magenta_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{984}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8411, - MaxStateID: 8414, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueWallBanner = Block{ - ID: 449, - DisplayName: "Light Blue Banner", - Name: "light_blue_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{985}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8415, - MaxStateID: 8418, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowWallBanner = Block{ - ID: 450, - DisplayName: "Yellow Banner", - Name: "yellow_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{986}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8419, - MaxStateID: 8422, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeWallBanner = Block{ - ID: 451, - DisplayName: "Lime Banner", - Name: "lime_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{987}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8423, - MaxStateID: 8426, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkWallBanner = Block{ - ID: 452, - DisplayName: "Pink Banner", - Name: "pink_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{988}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8427, - MaxStateID: 8430, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayWallBanner = Block{ - ID: 453, - DisplayName: "Gray Banner", - Name: "gray_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{989}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8431, - MaxStateID: 8434, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayWallBanner = Block{ - ID: 454, - DisplayName: "Light Gray Banner", - Name: "light_gray_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{990}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8435, - MaxStateID: 8438, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanWallBanner = Block{ - ID: 455, - DisplayName: "Cyan Banner", - Name: "cyan_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{991}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8439, - MaxStateID: 8442, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleWallBanner = Block{ - ID: 456, - DisplayName: "Purple Banner", - Name: "purple_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{992}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8443, - MaxStateID: 8446, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueWallBanner = Block{ - ID: 457, - DisplayName: "Blue Banner", - Name: "blue_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{993}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8447, - MaxStateID: 8450, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownWallBanner = Block{ - ID: 458, - DisplayName: "Brown Banner", - Name: "brown_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{994}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8451, - MaxStateID: 8454, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenWallBanner = Block{ - ID: 459, - DisplayName: "Green Banner", - Name: "green_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{995}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8455, - MaxStateID: 8458, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedWallBanner = Block{ - ID: 460, - DisplayName: "Red Banner", - Name: "red_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{996}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8459, - MaxStateID: 8462, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackWallBanner = Block{ - ID: 461, - DisplayName: "Black Banner", - Name: "black_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{997}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8463, - MaxStateID: 8466, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedSandstone = Block{ - ID: 462, - DisplayName: "Red Sandstone", - Name: "red_sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{439}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8467, - MaxStateID: 8467, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChiseledRedSandstone = Block{ - ID: 463, - DisplayName: "Chiseled Red Sandstone", - Name: "chiseled_red_sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{440}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8468, - MaxStateID: 8468, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CutRedSandstone = Block{ - ID: 464, - DisplayName: "Cut Red Sandstone", - Name: "cut_red_sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{441}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8469, - MaxStateID: 8469, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedSandstoneStairs = Block{ - ID: 465, - DisplayName: "Red Sandstone Stairs", - Name: "red_sandstone_stairs", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{442}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8470, - MaxStateID: 8549, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakSlab = Block{ - ID: 466, - DisplayName: "Oak Slab", - Name: "oak_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{204}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8550, - MaxStateID: 8555, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceSlab = Block{ - ID: 467, - DisplayName: "Spruce Slab", - Name: "spruce_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{205}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8556, - MaxStateID: 8561, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchSlab = Block{ - ID: 468, - DisplayName: "Birch Slab", - Name: "birch_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{206}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8562, - MaxStateID: 8567, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleSlab = Block{ - ID: 469, - DisplayName: "Jungle Slab", - Name: "jungle_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{207}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8568, - MaxStateID: 8573, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaSlab = Block{ - ID: 470, - DisplayName: "Acacia Slab", - Name: "acacia_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{208}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8574, - MaxStateID: 8579, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakSlab = Block{ - ID: 471, - DisplayName: "Dark Oak Slab", - Name: "dark_oak_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{209}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8580, - MaxStateID: 8585, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneSlab = Block{ - ID: 472, - DisplayName: "Stone Slab", - Name: "stone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{212}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8586, - MaxStateID: 8591, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothStoneSlab = Block{ - ID: 473, - DisplayName: "Smooth Stone Slab", - Name: "smooth_stone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{213}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8592, - MaxStateID: 8597, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SandstoneSlab = Block{ - ID: 474, - DisplayName: "Sandstone Slab", - Name: "sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{214}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8598, - MaxStateID: 8603, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CutSandstoneSlab = Block{ - ID: 475, - DisplayName: "Cut Sandstone Slab", - Name: "cut_sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{215}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8604, - MaxStateID: 8609, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PetrifiedOakSlab = Block{ - ID: 476, - DisplayName: "Petrified Oak Slab", - Name: "petrified_oak_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{216}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8610, - MaxStateID: 8615, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CobblestoneSlab = Block{ - ID: 477, - DisplayName: "Cobblestone Slab", - Name: "cobblestone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{217}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8616, - MaxStateID: 8621, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrickSlab = Block{ - ID: 478, - DisplayName: "Brick Slab", - Name: "brick_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{218}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8622, - MaxStateID: 8627, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneBrickSlab = Block{ - ID: 479, - DisplayName: "Stone Brick Slab", - Name: "stone_brick_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{219}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8628, - MaxStateID: 8633, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherBrickSlab = Block{ - ID: 480, - DisplayName: "Nether Brick Slab", - Name: "nether_brick_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{220}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8634, - MaxStateID: 8639, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - QuartzSlab = Block{ - ID: 481, - DisplayName: "Quartz Slab", - Name: "quartz_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{221}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8640, - MaxStateID: 8645, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedSandstoneSlab = Block{ - ID: 482, - DisplayName: "Red Sandstone Slab", - Name: "red_sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{222}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8646, - MaxStateID: 8651, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CutRedSandstoneSlab = Block{ - ID: 483, - DisplayName: "Cut Red Sandstone Slab", - Name: "cut_red_sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{223}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8652, - MaxStateID: 8657, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpurSlab = Block{ - ID: 484, - DisplayName: "Purpur Slab", - Name: "purpur_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{224}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8658, - MaxStateID: 8663, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothStone = Block{ - ID: 485, - DisplayName: "Smooth Stone", - Name: "smooth_stone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{231}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8664, - MaxStateID: 8664, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SmoothSandstone = Block{ - ID: 486, - DisplayName: "Smooth Sandstone", - Name: "smooth_sandstone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{230}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8665, - MaxStateID: 8665, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SmoothQuartz = Block{ - ID: 487, - DisplayName: "Smooth Quartz Block", - Name: "smooth_quartz", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{228}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8666, - MaxStateID: 8666, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SmoothRedSandstone = Block{ - ID: 488, - DisplayName: "Smooth Red Sandstone", - Name: "smooth_red_sandstone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{229}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8667, - MaxStateID: 8667, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SpruceFenceGate = Block{ - ID: 489, - DisplayName: "Spruce Fence Gate", - Name: "spruce_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{650}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8668, - MaxStateID: 8699, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchFenceGate = Block{ - ID: 490, - DisplayName: "Birch Fence Gate", - Name: "birch_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{651}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8700, - MaxStateID: 8731, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleFenceGate = Block{ - ID: 491, - DisplayName: "Jungle Fence Gate", - Name: "jungle_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{652}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8732, - MaxStateID: 8763, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaFenceGate = Block{ - ID: 492, - DisplayName: "Acacia Fence Gate", - Name: "acacia_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{653}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8764, - MaxStateID: 8795, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakFenceGate = Block{ - ID: 493, - DisplayName: "Dark Oak Fence Gate", - Name: "dark_oak_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{654}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8796, - MaxStateID: 8827, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceFence = Block{ - ID: 494, - DisplayName: "Spruce Fence", - Name: "spruce_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{258}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8828, - MaxStateID: 8859, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchFence = Block{ - ID: 495, - DisplayName: "Birch Fence", - Name: "birch_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{259}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8860, - MaxStateID: 8891, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleFence = Block{ - ID: 496, - DisplayName: "Jungle Fence", - Name: "jungle_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{260}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8892, - MaxStateID: 8923, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaFence = Block{ - ID: 497, - DisplayName: "Acacia Fence", - Name: "acacia_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{261}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8924, - MaxStateID: 8955, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakFence = Block{ - ID: 498, - DisplayName: "Dark Oak Fence", - Name: "dark_oak_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{262}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8956, - MaxStateID: 8987, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceDoor = Block{ - ID: 499, - DisplayName: "Spruce Door", - Name: "spruce_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{633}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8988, - MaxStateID: 9051, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchDoor = Block{ - ID: 500, - DisplayName: "Birch Door", - Name: "birch_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{634}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9052, - MaxStateID: 9115, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleDoor = Block{ - ID: 501, - DisplayName: "Jungle Door", - Name: "jungle_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{635}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9116, - MaxStateID: 9179, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaDoor = Block{ - ID: 502, - DisplayName: "Acacia Door", - Name: "acacia_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{636}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9180, - MaxStateID: 9243, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakDoor = Block{ - ID: 503, - DisplayName: "Dark Oak Door", - Name: "dark_oak_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{637}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9244, - MaxStateID: 9307, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndRod = Block{ - ID: 504, - DisplayName: "End Rod", - Name: "end_rod", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{237}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9308, - MaxStateID: 9313, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 14, - } - ChorusPlant = Block{ - ID: 505, - DisplayName: "Chorus Plant", - Name: "chorus_plant", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{999}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9314, - MaxStateID: 9377, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - ChorusFlower = Block{ - ID: 506, - DisplayName: "Chorus Flower", - Name: "chorus_flower", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9378, - MaxStateID: 9383, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - PurpurBlock = Block{ - ID: 507, - DisplayName: "Purpur Block", - Name: "purpur_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{240}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9384, - MaxStateID: 9384, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpurPillar = Block{ - ID: 508, - DisplayName: "Purpur Pillar", - Name: "purpur_pillar", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{241}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9385, - MaxStateID: 9387, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpurStairs = Block{ - ID: 509, - DisplayName: "Purpur Stairs", - Name: "purpur_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{242}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9388, - MaxStateID: 9467, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndStoneBricks = Block{ - ID: 510, - DisplayName: "End Stone Bricks", - Name: "end_stone_bricks", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{313}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9468, - MaxStateID: 9468, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Beetroots = Block{ - ID: 511, - DisplayName: "Beetroot Seeds", - Name: "beetroots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{1002}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9469, - MaxStateID: 9472, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DirtPath = Block{ - ID: 512, - DisplayName: "Dirt Path", - Name: "dirt_path", - Hardness: 0.65, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9473, - MaxStateID: 9473, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndGateway = Block{ - ID: 513, - DisplayName: "Air", - Name: "end_gateway", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9474, - MaxStateID: 9474, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 15, - } - RepeatingCommandBlock = Block{ - ID: 514, - DisplayName: "Repeating Command Block", - Name: "repeating_command_block", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9475, - MaxStateID: 9486, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChainCommandBlock = Block{ - ID: 515, - DisplayName: "Chain Command Block", - Name: "chain_command_block", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9487, - MaxStateID: 9498, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - FrostedIce = Block{ - ID: 516, - DisplayName: "Air", - Name: "frosted_ice", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9499, - MaxStateID: 9502, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - MagmaBlock = Block{ - ID: 517, - DisplayName: "Magma Block", - Name: "magma_block", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{445}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9503, - MaxStateID: 9503, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 3, - } - NetherWartBlock = Block{ - ID: 518, - DisplayName: "Nether Wart Block", - Name: "nether_wart_block", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{446}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9504, - MaxStateID: 9504, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedNetherBricks = Block{ - ID: 519, - DisplayName: "Red Nether Bricks", - Name: "red_nether_bricks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{448}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9505, - MaxStateID: 9505, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BoneBlock = Block{ - ID: 520, - DisplayName: "Bone Block", - Name: "bone_block", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{449}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9506, - MaxStateID: 9508, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StructureVoid = Block{ - ID: 521, - DisplayName: "Structure Void", - Name: "structure_void", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9509, - MaxStateID: 9509, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Observer = Block{ - ID: 522, - DisplayName: "Observer", - Name: "observer", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{594}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9510, - MaxStateID: 9521, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ShulkerBox = Block{ - ID: 523, - DisplayName: "Shulker Box", - Name: "shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{451}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9522, - MaxStateID: 9527, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - WhiteShulkerBox = Block{ - ID: 524, - DisplayName: "White Shulker Box", - Name: "white_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{452}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9528, - MaxStateID: 9533, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - OrangeShulkerBox = Block{ - ID: 525, - DisplayName: "Orange Shulker Box", - Name: "orange_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{453}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9534, - MaxStateID: 9539, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - MagentaShulkerBox = Block{ - ID: 526, - DisplayName: "Magenta Shulker Box", - Name: "magenta_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{454}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9540, - MaxStateID: 9545, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - LightBlueShulkerBox = Block{ - ID: 527, - DisplayName: "Light Blue Shulker Box", - Name: "light_blue_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{455}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9546, - MaxStateID: 9551, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - YellowShulkerBox = Block{ - ID: 528, - DisplayName: "Yellow Shulker Box", - Name: "yellow_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{456}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9552, - MaxStateID: 9557, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - LimeShulkerBox = Block{ - ID: 529, - DisplayName: "Lime Shulker Box", - Name: "lime_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{457}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9558, - MaxStateID: 9563, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - PinkShulkerBox = Block{ - ID: 530, - DisplayName: "Pink Shulker Box", - Name: "pink_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{458}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9564, - MaxStateID: 9569, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - GrayShulkerBox = Block{ - ID: 531, - DisplayName: "Gray Shulker Box", - Name: "gray_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{459}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9570, - MaxStateID: 9575, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - LightGrayShulkerBox = Block{ - ID: 532, - DisplayName: "Light Gray Shulker Box", - Name: "light_gray_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{460}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9576, - MaxStateID: 9581, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - CyanShulkerBox = Block{ - ID: 533, - DisplayName: "Cyan Shulker Box", - Name: "cyan_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{461}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9582, - MaxStateID: 9587, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - PurpleShulkerBox = Block{ - ID: 534, - DisplayName: "Purple Shulker Box", - Name: "purple_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{462}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9588, - MaxStateID: 9593, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BlueShulkerBox = Block{ - ID: 535, - DisplayName: "Blue Shulker Box", - Name: "blue_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{463}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9594, - MaxStateID: 9599, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BrownShulkerBox = Block{ - ID: 536, - DisplayName: "Brown Shulker Box", - Name: "brown_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{464}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9600, - MaxStateID: 9605, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - GreenShulkerBox = Block{ - ID: 537, - DisplayName: "Green Shulker Box", - Name: "green_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{465}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9606, - MaxStateID: 9611, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - RedShulkerBox = Block{ - ID: 538, - DisplayName: "Red Shulker Box", - Name: "red_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{466}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9612, - MaxStateID: 9617, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BlackShulkerBox = Block{ - ID: 539, - DisplayName: "Black Shulker Box", - Name: "black_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{467}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9618, - MaxStateID: 9623, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - WhiteGlazedTerracotta = Block{ - ID: 540, - DisplayName: "White Glazed Terracotta", - Name: "white_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{468}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9624, - MaxStateID: 9627, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OrangeGlazedTerracotta = Block{ - ID: 541, - DisplayName: "Orange Glazed Terracotta", - Name: "orange_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{469}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9628, - MaxStateID: 9631, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MagentaGlazedTerracotta = Block{ - ID: 542, - DisplayName: "Magenta Glazed Terracotta", - Name: "magenta_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{470}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9632, - MaxStateID: 9635, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightBlueGlazedTerracotta = Block{ - ID: 543, - DisplayName: "Light Blue Glazed Terracotta", - Name: "light_blue_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{471}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9636, - MaxStateID: 9639, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - YellowGlazedTerracotta = Block{ - ID: 544, - DisplayName: "Yellow Glazed Terracotta", - Name: "yellow_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{472}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9640, - MaxStateID: 9643, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LimeGlazedTerracotta = Block{ - ID: 545, - DisplayName: "Lime Glazed Terracotta", - Name: "lime_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{473}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9644, - MaxStateID: 9647, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PinkGlazedTerracotta = Block{ - ID: 546, - DisplayName: "Pink Glazed Terracotta", - Name: "pink_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{474}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9648, - MaxStateID: 9651, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrayGlazedTerracotta = Block{ - ID: 547, - DisplayName: "Gray Glazed Terracotta", - Name: "gray_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{475}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9652, - MaxStateID: 9655, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightGrayGlazedTerracotta = Block{ - ID: 548, - DisplayName: "Light Gray Glazed Terracotta", - Name: "light_gray_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{476}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9656, - MaxStateID: 9659, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CyanGlazedTerracotta = Block{ - ID: 549, - DisplayName: "Cyan Glazed Terracotta", - Name: "cyan_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{477}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9660, - MaxStateID: 9663, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpleGlazedTerracotta = Block{ - ID: 550, - DisplayName: "Purple Glazed Terracotta", - Name: "purple_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{478}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9664, - MaxStateID: 9667, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlueGlazedTerracotta = Block{ - ID: 551, - DisplayName: "Blue Glazed Terracotta", - Name: "blue_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{479}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9668, - MaxStateID: 9671, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownGlazedTerracotta = Block{ - ID: 552, - DisplayName: "Brown Glazed Terracotta", - Name: "brown_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{480}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9672, - MaxStateID: 9675, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GreenGlazedTerracotta = Block{ - ID: 553, - DisplayName: "Green Glazed Terracotta", - Name: "green_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{481}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9676, - MaxStateID: 9679, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedGlazedTerracotta = Block{ - ID: 554, - DisplayName: "Red Glazed Terracotta", - Name: "red_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{482}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9680, - MaxStateID: 9683, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackGlazedTerracotta = Block{ - ID: 555, - DisplayName: "Black Glazed Terracotta", - Name: "black_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{483}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9684, - MaxStateID: 9687, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteConcrete = Block{ - ID: 556, - DisplayName: "White Concrete", - Name: "white_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{484}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9688, - MaxStateID: 9688, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OrangeConcrete = Block{ - ID: 557, - DisplayName: "Orange Concrete", - Name: "orange_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{485}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9689, - MaxStateID: 9689, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MagentaConcrete = Block{ - ID: 558, - DisplayName: "Magenta Concrete", - Name: "magenta_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{486}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9690, - MaxStateID: 9690, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightBlueConcrete = Block{ - ID: 559, - DisplayName: "Light Blue Concrete", - Name: "light_blue_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{487}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9691, - MaxStateID: 9691, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - YellowConcrete = Block{ - ID: 560, - DisplayName: "Yellow Concrete", - Name: "yellow_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{488}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9692, - MaxStateID: 9692, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LimeConcrete = Block{ - ID: 561, - DisplayName: "Lime Concrete", - Name: "lime_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{489}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9693, - MaxStateID: 9693, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PinkConcrete = Block{ - ID: 562, - DisplayName: "Pink Concrete", - Name: "pink_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{490}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9694, - MaxStateID: 9694, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrayConcrete = Block{ - ID: 563, - DisplayName: "Gray Concrete", - Name: "gray_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{491}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9695, - MaxStateID: 9695, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightGrayConcrete = Block{ - ID: 564, - DisplayName: "Light Gray Concrete", - Name: "light_gray_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{492}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9696, - MaxStateID: 9696, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CyanConcrete = Block{ - ID: 565, - DisplayName: "Cyan Concrete", - Name: "cyan_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{493}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9697, - MaxStateID: 9697, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpleConcrete = Block{ - ID: 566, - DisplayName: "Purple Concrete", - Name: "purple_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{494}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9698, - MaxStateID: 9698, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlueConcrete = Block{ - ID: 567, - DisplayName: "Blue Concrete", - Name: "blue_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{495}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9699, - MaxStateID: 9699, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownConcrete = Block{ - ID: 568, - DisplayName: "Brown Concrete", - Name: "brown_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{496}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9700, - MaxStateID: 9700, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GreenConcrete = Block{ - ID: 569, - DisplayName: "Green Concrete", - Name: "green_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{497}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9701, - MaxStateID: 9701, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedConcrete = Block{ - ID: 570, - DisplayName: "Red Concrete", - Name: "red_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{498}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9702, - MaxStateID: 9702, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackConcrete = Block{ - ID: 571, - DisplayName: "Black Concrete", - Name: "black_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{499}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9703, - MaxStateID: 9703, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteConcretePowder = Block{ - ID: 572, - DisplayName: "White Concrete Powder", - Name: "white_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{500}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9704, - MaxStateID: 9704, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OrangeConcretePowder = Block{ - ID: 573, - DisplayName: "Orange Concrete Powder", - Name: "orange_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{501}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9705, - MaxStateID: 9705, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MagentaConcretePowder = Block{ - ID: 574, - DisplayName: "Magenta Concrete Powder", - Name: "magenta_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{502}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9706, - MaxStateID: 9706, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightBlueConcretePowder = Block{ - ID: 575, - DisplayName: "Light Blue Concrete Powder", - Name: "light_blue_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{503}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9707, - MaxStateID: 9707, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - YellowConcretePowder = Block{ - ID: 576, - DisplayName: "Yellow Concrete Powder", - Name: "yellow_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{504}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9708, - MaxStateID: 9708, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LimeConcretePowder = Block{ - ID: 577, - DisplayName: "Lime Concrete Powder", - Name: "lime_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{505}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9709, - MaxStateID: 9709, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PinkConcretePowder = Block{ - ID: 578, - DisplayName: "Pink Concrete Powder", - Name: "pink_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{506}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9710, - MaxStateID: 9710, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrayConcretePowder = Block{ - ID: 579, - DisplayName: "Gray Concrete Powder", - Name: "gray_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{507}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9711, - MaxStateID: 9711, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightGrayConcretePowder = Block{ - ID: 580, - DisplayName: "Light Gray Concrete Powder", - Name: "light_gray_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{508}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9712, - MaxStateID: 9712, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CyanConcretePowder = Block{ - ID: 581, - DisplayName: "Cyan Concrete Powder", - Name: "cyan_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{509}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9713, - MaxStateID: 9713, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpleConcretePowder = Block{ - ID: 582, - DisplayName: "Purple Concrete Powder", - Name: "purple_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{510}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9714, - MaxStateID: 9714, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlueConcretePowder = Block{ - ID: 583, - DisplayName: "Blue Concrete Powder", - Name: "blue_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{511}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9715, - MaxStateID: 9715, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownConcretePowder = Block{ - ID: 584, - DisplayName: "Brown Concrete Powder", - Name: "brown_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{512}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9716, - MaxStateID: 9716, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GreenConcretePowder = Block{ - ID: 585, - DisplayName: "Green Concrete Powder", - Name: "green_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{513}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9717, - MaxStateID: 9717, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedConcretePowder = Block{ - ID: 586, - DisplayName: "Red Concrete Powder", - Name: "red_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{514}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9718, - MaxStateID: 9718, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackConcretePowder = Block{ - ID: 587, - DisplayName: "Black Concrete Powder", - Name: "black_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{515}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9719, - MaxStateID: 9719, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Kelp = Block{ - ID: 588, - DisplayName: "Kelp", - Name: "kelp", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{197}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9720, - MaxStateID: 9745, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - KelpPlant = Block{ - ID: 589, - DisplayName: "Air", - Name: "kelp_plant", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{197}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9746, - MaxStateID: 9746, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DriedKelpBlock = Block{ - ID: 590, - DisplayName: "Dried Kelp Block", - Name: "dried_kelp_block", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{790}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9747, - MaxStateID: 9747, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - TurtleEgg = Block{ - ID: 591, - DisplayName: "Turtle Egg", - Name: "turtle_egg", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9748, - MaxStateID: 9759, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeadTubeCoralBlock = Block{ - ID: 592, - DisplayName: "Dead Tube Coral Block", - Name: "dead_tube_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{517}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9760, - MaxStateID: 9760, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeadBrainCoralBlock = Block{ - ID: 593, - DisplayName: "Dead Brain Coral Block", - Name: "dead_brain_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{518}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9761, - MaxStateID: 9761, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeadBubbleCoralBlock = Block{ - ID: 594, - DisplayName: "Dead Bubble Coral Block", - Name: "dead_bubble_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{519}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9762, - MaxStateID: 9762, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeadFireCoralBlock = Block{ - ID: 595, - DisplayName: "Dead Fire Coral Block", - Name: "dead_fire_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{520}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9763, - MaxStateID: 9763, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeadHornCoralBlock = Block{ - ID: 596, - DisplayName: "Dead Horn Coral Block", - Name: "dead_horn_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{521}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9764, - MaxStateID: 9764, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - TubeCoralBlock = Block{ - ID: 597, - DisplayName: "Tube Coral Block", - Name: "tube_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{517}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9765, - MaxStateID: 9765, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrainCoralBlock = Block{ - ID: 598, - DisplayName: "Brain Coral Block", - Name: "brain_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{518}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9766, - MaxStateID: 9766, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BubbleCoralBlock = Block{ - ID: 599, - DisplayName: "Bubble Coral Block", - Name: "bubble_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{519}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9767, - MaxStateID: 9767, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - FireCoralBlock = Block{ - ID: 600, - DisplayName: "Fire Coral Block", - Name: "fire_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{520}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9768, - MaxStateID: 9768, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - HornCoralBlock = Block{ - ID: 601, - DisplayName: "Horn Coral Block", - Name: "horn_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{521}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9769, - MaxStateID: 9769, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeadTubeCoral = Block{ - ID: 602, - DisplayName: "Dead Tube Coral", - Name: "dead_tube_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9770, - MaxStateID: 9771, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBrainCoral = Block{ - ID: 603, - DisplayName: "Dead Brain Coral", - Name: "dead_brain_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9772, - MaxStateID: 9773, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBubbleCoral = Block{ - ID: 604, - DisplayName: "Dead Bubble Coral", - Name: "dead_bubble_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9774, - MaxStateID: 9775, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadFireCoral = Block{ - ID: 605, - DisplayName: "Dead Fire Coral", - Name: "dead_fire_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9776, - MaxStateID: 9777, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadHornCoral = Block{ - ID: 606, - DisplayName: "Dead Horn Coral", - Name: "dead_horn_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9778, - MaxStateID: 9779, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - TubeCoral = Block{ - ID: 607, - DisplayName: "Tube Coral", - Name: "tube_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9780, - MaxStateID: 9781, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BrainCoral = Block{ - ID: 608, - DisplayName: "Brain Coral", - Name: "brain_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9782, - MaxStateID: 9783, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BubbleCoral = Block{ - ID: 609, - DisplayName: "Bubble Coral", - Name: "bubble_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9784, - MaxStateID: 9785, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - FireCoral = Block{ - ID: 610, - DisplayName: "Fire Coral", - Name: "fire_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9786, - MaxStateID: 9787, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - HornCoral = Block{ - ID: 611, - DisplayName: "Horn Coral", - Name: "horn_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9788, - MaxStateID: 9789, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadTubeCoralFan = Block{ - ID: 612, - DisplayName: "Dead Tube Coral Fan", - Name: "dead_tube_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9790, - MaxStateID: 9791, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBrainCoralFan = Block{ - ID: 613, - DisplayName: "Dead Brain Coral Fan", - Name: "dead_brain_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9792, - MaxStateID: 9793, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBubbleCoralFan = Block{ - ID: 614, - DisplayName: "Dead Bubble Coral Fan", - Name: "dead_bubble_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9794, - MaxStateID: 9795, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadFireCoralFan = Block{ - ID: 615, - DisplayName: "Dead Fire Coral Fan", - Name: "dead_fire_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9796, - MaxStateID: 9797, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadHornCoralFan = Block{ - ID: 616, - DisplayName: "Dead Horn Coral Fan", - Name: "dead_horn_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9798, - MaxStateID: 9799, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - TubeCoralFan = Block{ - ID: 617, - DisplayName: "Tube Coral Fan", - Name: "tube_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9800, - MaxStateID: 9801, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BrainCoralFan = Block{ - ID: 618, - DisplayName: "Brain Coral Fan", - Name: "brain_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9802, - MaxStateID: 9803, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BubbleCoralFan = Block{ - ID: 619, - DisplayName: "Bubble Coral Fan", - Name: "bubble_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9804, - MaxStateID: 9805, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - FireCoralFan = Block{ - ID: 620, - DisplayName: "Fire Coral Fan", - Name: "fire_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9806, - MaxStateID: 9807, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - HornCoralFan = Block{ - ID: 621, - DisplayName: "Horn Coral Fan", - Name: "horn_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9808, - MaxStateID: 9809, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadTubeCoralWallFan = Block{ - ID: 622, - DisplayName: "Dead Tube Coral Fan", - Name: "dead_tube_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9810, - MaxStateID: 9817, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBrainCoralWallFan = Block{ - ID: 623, - DisplayName: "Dead Brain Coral Fan", - Name: "dead_brain_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9818, - MaxStateID: 9825, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBubbleCoralWallFan = Block{ - ID: 624, - DisplayName: "Dead Bubble Coral Fan", - Name: "dead_bubble_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9826, - MaxStateID: 9833, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadFireCoralWallFan = Block{ - ID: 625, - DisplayName: "Dead Fire Coral Fan", - Name: "dead_fire_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9834, - MaxStateID: 9841, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadHornCoralWallFan = Block{ - ID: 626, - DisplayName: "Dead Horn Coral Fan", - Name: "dead_horn_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9842, - MaxStateID: 9849, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - TubeCoralWallFan = Block{ - ID: 627, - DisplayName: "Tube Coral Fan", - Name: "tube_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9850, - MaxStateID: 9857, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BrainCoralWallFan = Block{ - ID: 628, - DisplayName: "Brain Coral Fan", - Name: "brain_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9858, - MaxStateID: 9865, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BubbleCoralWallFan = Block{ - ID: 629, - DisplayName: "Bubble Coral Fan", - Name: "bubble_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9866, - MaxStateID: 9873, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - FireCoralWallFan = Block{ - ID: 630, - DisplayName: "Fire Coral Fan", - Name: "fire_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9874, - MaxStateID: 9881, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - HornCoralWallFan = Block{ - ID: 631, - DisplayName: "Horn Coral Fan", - Name: "horn_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9882, - MaxStateID: 9889, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - SeaPickle = Block{ - ID: 632, - DisplayName: "Sea Pickle", - Name: "sea_pickle", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{156}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9890, - MaxStateID: 9897, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 6, - } - BlueIce = Block{ - ID: 633, - DisplayName: "Blue Ice", - Name: "blue_ice", - Hardness: 2.8, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9898, - MaxStateID: 9898, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Conduit = Block{ - ID: 634, - DisplayName: "Conduit", - Name: "conduit", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{548}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9899, - MaxStateID: 9900, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 15, - } - BambooSapling = Block{ - ID: 635, - DisplayName: "Air", - Name: "bamboo_sapling", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{203}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9901, - MaxStateID: 9901, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Bamboo = Block{ - ID: 636, - DisplayName: "Bamboo", - Name: "bamboo", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{203}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9902, - MaxStateID: 9913, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedBamboo = Block{ - ID: 637, - DisplayName: "Air", - Name: "potted_bamboo", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 203}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9914, - MaxStateID: 9914, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - VoidAir = Block{ - ID: 638, - DisplayName: "Air", - Name: "void_air", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9915, - MaxStateID: 9915, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CaveAir = Block{ - ID: 639, - DisplayName: "Air", - Name: "cave_air", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9916, - MaxStateID: 9916, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BubbleColumn = Block{ - ID: 640, - DisplayName: "Air", - Name: "bubble_column", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9917, - MaxStateID: 9918, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - PolishedGraniteStairs = Block{ - ID: 641, - DisplayName: "Polished Granite Stairs", - Name: "polished_granite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{549}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9919, - MaxStateID: 9998, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothRedSandstoneStairs = Block{ - ID: 642, - DisplayName: "Smooth Red Sandstone Stairs", - Name: "smooth_red_sandstone_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{550}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9999, - MaxStateID: 10078, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyStoneBrickStairs = Block{ - ID: 643, - DisplayName: "Mossy Stone Brick Stairs", - Name: "mossy_stone_brick_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{551}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10079, - MaxStateID: 10158, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedDioriteStairs = Block{ - ID: 644, - DisplayName: "Polished Diorite Stairs", - Name: "polished_diorite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{552}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10159, - MaxStateID: 10238, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyCobblestoneStairs = Block{ - ID: 645, - DisplayName: "Mossy Cobblestone Stairs", - Name: "mossy_cobblestone_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{553}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10239, - MaxStateID: 10318, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndStoneBrickStairs = Block{ - ID: 646, - DisplayName: "End Stone Brick Stairs", - Name: "end_stone_brick_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{554}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10319, - MaxStateID: 10398, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneStairs = Block{ - ID: 647, - DisplayName: "Stone Stairs", - Name: "stone_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{555}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10399, - MaxStateID: 10478, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothSandstoneStairs = Block{ - ID: 648, - DisplayName: "Smooth Sandstone Stairs", - Name: "smooth_sandstone_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{556}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10479, - MaxStateID: 10558, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothQuartzStairs = Block{ - ID: 649, - DisplayName: "Smooth Quartz Stairs", - Name: "smooth_quartz_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{557}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10559, - MaxStateID: 10638, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GraniteStairs = Block{ - ID: 650, - DisplayName: "Granite Stairs", - Name: "granite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{558}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10639, - MaxStateID: 10718, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AndesiteStairs = Block{ - ID: 651, - DisplayName: "Andesite Stairs", - Name: "andesite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{559}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10719, - MaxStateID: 10798, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedNetherBrickStairs = Block{ - ID: 652, - DisplayName: "Red Nether Brick Stairs", - Name: "red_nether_brick_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{560}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10799, - MaxStateID: 10878, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedAndesiteStairs = Block{ - ID: 653, - DisplayName: "Polished Andesite Stairs", - Name: "polished_andesite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{561}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10879, - MaxStateID: 10958, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DioriteStairs = Block{ - ID: 654, - DisplayName: "Diorite Stairs", - Name: "diorite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{562}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10959, - MaxStateID: 11038, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedGraniteSlab = Block{ - ID: 655, - DisplayName: "Polished Granite Slab", - Name: "polished_granite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{567}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11039, - MaxStateID: 11044, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothRedSandstoneSlab = Block{ - ID: 656, - DisplayName: "Smooth Red Sandstone Slab", - Name: "smooth_red_sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{568}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11045, - MaxStateID: 11050, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyStoneBrickSlab = Block{ - ID: 657, - DisplayName: "Mossy Stone Brick Slab", - Name: "mossy_stone_brick_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{569}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11051, - MaxStateID: 11056, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedDioriteSlab = Block{ - ID: 658, - DisplayName: "Polished Diorite Slab", - Name: "polished_diorite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{570}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11057, - MaxStateID: 11062, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyCobblestoneSlab = Block{ - ID: 659, - DisplayName: "Mossy Cobblestone Slab", - Name: "mossy_cobblestone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{571}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11063, - MaxStateID: 11068, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndStoneBrickSlab = Block{ - ID: 660, - DisplayName: "End Stone Brick Slab", - Name: "end_stone_brick_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{572}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11069, - MaxStateID: 11074, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothSandstoneSlab = Block{ - ID: 661, - DisplayName: "Smooth Sandstone Slab", - Name: "smooth_sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{573}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11075, - MaxStateID: 11080, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothQuartzSlab = Block{ - ID: 662, - DisplayName: "Smooth Quartz Slab", - Name: "smooth_quartz_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{574}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11081, - MaxStateID: 11086, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GraniteSlab = Block{ - ID: 663, - DisplayName: "Granite Slab", - Name: "granite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{575}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11087, - MaxStateID: 11092, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AndesiteSlab = Block{ - ID: 664, - DisplayName: "Andesite Slab", - Name: "andesite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{576}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11093, - MaxStateID: 11098, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedNetherBrickSlab = Block{ - ID: 665, - DisplayName: "Red Nether Brick Slab", - Name: "red_nether_brick_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{577}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11099, - MaxStateID: 11104, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedAndesiteSlab = Block{ - ID: 666, - DisplayName: "Polished Andesite Slab", - Name: "polished_andesite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{578}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11105, - MaxStateID: 11110, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DioriteSlab = Block{ - ID: 667, - DisplayName: "Diorite Slab", - Name: "diorite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{579}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11111, - MaxStateID: 11116, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrickWall = Block{ - ID: 668, - DisplayName: "Brick Wall", - Name: "brick_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{327}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11117, - MaxStateID: 11440, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PrismarineWall = Block{ - ID: 669, - DisplayName: "Prismarine Wall", - Name: "prismarine_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{328}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11441, - MaxStateID: 11764, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedSandstoneWall = Block{ - ID: 670, - DisplayName: "Red Sandstone Wall", - Name: "red_sandstone_wall", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{329}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11765, - MaxStateID: 12088, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyStoneBrickWall = Block{ - ID: 671, - DisplayName: "Mossy Stone Brick Wall", - Name: "mossy_stone_brick_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{330}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 12089, - MaxStateID: 12412, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GraniteWall = Block{ - ID: 672, - DisplayName: "Granite Wall", - Name: "granite_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{331}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 12413, - MaxStateID: 12736, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneBrickWall = Block{ - ID: 673, - DisplayName: "Stone Brick Wall", - Name: "stone_brick_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{332}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 12737, - MaxStateID: 13060, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherBrickWall = Block{ - ID: 674, - DisplayName: "Nether Brick Wall", - Name: "nether_brick_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{333}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 13061, - MaxStateID: 13384, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AndesiteWall = Block{ - ID: 675, - DisplayName: "Andesite Wall", - Name: "andesite_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{334}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 13385, - MaxStateID: 13708, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedNetherBrickWall = Block{ - ID: 676, - DisplayName: "Red Nether Brick Wall", - Name: "red_nether_brick_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{335}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 13709, - MaxStateID: 14032, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SandstoneWall = Block{ - ID: 677, - DisplayName: "Sandstone Wall", - Name: "sandstone_wall", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{336}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 14033, - MaxStateID: 14356, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndStoneBrickWall = Block{ - ID: 678, - DisplayName: "End Stone Brick Wall", - Name: "end_stone_brick_wall", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{337}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 14357, - MaxStateID: 14680, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DioriteWall = Block{ - ID: 679, - DisplayName: "Diorite Wall", - Name: "diorite_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{338}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 14681, - MaxStateID: 15004, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Scaffolding = Block{ - ID: 680, - DisplayName: "Scaffolding", - Name: "scaffolding", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{584}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15005, - MaxStateID: 15036, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Loom = Block{ - ID: 681, - DisplayName: "Loom", - Name: "loom", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{1034}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15037, - MaxStateID: 15040, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Barrel = Block{ - ID: 682, - DisplayName: "Barrel", - Name: "barrel", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{1042}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15041, - MaxStateID: 15052, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Smoker = Block{ - ID: 683, - DisplayName: "Smoker", - Name: "smoker", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1043}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15053, - MaxStateID: 15060, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlastFurnace = Block{ - ID: 684, - DisplayName: "Blast Furnace", - Name: "blast_furnace", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1044}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15061, - MaxStateID: 15068, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CartographyTable = Block{ - ID: 685, - DisplayName: "Cartography Table", - Name: "cartography_table", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{1045}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15069, - MaxStateID: 15069, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - FletchingTable = Block{ - ID: 686, - DisplayName: "Fletching Table", - Name: "fletching_table", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{1046}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15070, - MaxStateID: 15070, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Grindstone = Block{ - ID: 687, - DisplayName: "Grindstone", - Name: "grindstone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1047}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15071, - MaxStateID: 15082, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Lectern = Block{ - ID: 688, - DisplayName: "Lectern", - Name: "lectern", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{598}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15083, - MaxStateID: 15098, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmithingTable = Block{ - ID: 689, - DisplayName: "Smithing Table", - Name: "smithing_table", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{1048}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15099, - MaxStateID: 15099, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Stonecutter = Block{ - ID: 690, - DisplayName: "Stonecutter", - Name: "stonecutter", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1049}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15100, - MaxStateID: 15103, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Bell = Block{ - ID: 691, - DisplayName: "Bell", - Name: "bell", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{1050}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15104, - MaxStateID: 15135, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Lantern = Block{ - ID: 692, - DisplayName: "Lantern", - Name: "lantern", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1051}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15136, - MaxStateID: 15139, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - SoulLantern = Block{ - ID: 693, - DisplayName: "Soul Lantern", - Name: "soul_lantern", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1052}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15140, - MaxStateID: 15143, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 10, - } - Campfire = Block{ - ID: 694, - DisplayName: "Campfire", - Name: "campfire", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{685}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15144, - MaxStateID: 15175, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - SoulCampfire = Block{ - ID: 695, - DisplayName: "Soul Campfire", - Name: "soul_campfire", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{270}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15176, - MaxStateID: 15207, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 10, - } - SweetBerryBush = Block{ - ID: 696, - DisplayName: "Sweet Berries", - Name: "sweet_berry_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15208, - MaxStateID: 15211, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedStem = Block{ - ID: 697, - DisplayName: "Warped Stem", - Name: "warped_stem", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{108}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15212, - MaxStateID: 15214, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedWarpedStem = Block{ - ID: 698, - DisplayName: "Stripped Warped Stem", - Name: "stripped_warped_stem", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{116}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15215, - MaxStateID: 15217, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WarpedHyphae = Block{ - ID: 699, - DisplayName: "Warped Hyphae", - Name: "warped_hyphae", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{132}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15218, - MaxStateID: 15220, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedWarpedHyphae = Block{ - ID: 700, - DisplayName: "Stripped Warped Hyphae", - Name: "stripped_warped_hyphae", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{124}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15221, - MaxStateID: 15223, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WarpedNylium = Block{ - ID: 701, - DisplayName: "Warped Nylium", - Name: "warped_nylium", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{268}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15224, - MaxStateID: 15224, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WarpedFungus = Block{ - ID: 702, - DisplayName: "Warped Fungus", - Name: "warped_fungus", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{190}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15225, - MaxStateID: 15225, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedWartBlock = Block{ - ID: 703, - DisplayName: "Warped Wart Block", - Name: "warped_wart_block", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{447}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15226, - MaxStateID: 15226, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WarpedRoots = Block{ - ID: 704, - DisplayName: "Warped Roots", - Name: "warped_roots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{192}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15227, - MaxStateID: 15227, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherSprouts = Block{ - ID: 705, - DisplayName: "Nether Sprouts", - Name: "nether_sprouts", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15228, - MaxStateID: 15228, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonStem = Block{ - ID: 706, - DisplayName: "Crimson Stem", - Name: "crimson_stem", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{107}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15229, - MaxStateID: 15231, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedCrimsonStem = Block{ - ID: 707, - DisplayName: "Stripped Crimson Stem", - Name: "stripped_crimson_stem", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{115}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15232, - MaxStateID: 15234, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrimsonHyphae = Block{ - ID: 708, - DisplayName: "Crimson Hyphae", - Name: "crimson_hyphae", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{131}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15235, - MaxStateID: 15237, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedCrimsonHyphae = Block{ - ID: 709, - DisplayName: "Stripped Crimson Hyphae", - Name: "stripped_crimson_hyphae", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{123}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15238, - MaxStateID: 15240, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrimsonNylium = Block{ - ID: 710, - DisplayName: "Crimson Nylium", - Name: "crimson_nylium", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{268}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15241, - MaxStateID: 15241, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrimsonFungus = Block{ - ID: 711, - DisplayName: "Crimson Fungus", - Name: "crimson_fungus", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{189}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15242, - MaxStateID: 15242, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Shroomlight = Block{ - ID: 712, - DisplayName: "Shroomlight", - Name: "shroomlight", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{1057}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15243, - MaxStateID: 15243, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 15, - } - WeepingVines = Block{ - ID: 713, - DisplayName: "Weeping Vines", - Name: "weeping_vines", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15244, - MaxStateID: 15269, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WeepingVinesPlant = Block{ - ID: 714, - DisplayName: "Air", - Name: "weeping_vines_plant", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{194}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15270, - MaxStateID: 15270, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - TwistingVines = Block{ - ID: 715, - DisplayName: "Twisting Vines", - Name: "twisting_vines", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15271, - MaxStateID: 15296, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - TwistingVinesPlant = Block{ - ID: 716, - DisplayName: "Air", - Name: "twisting_vines_plant", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{195}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15297, - MaxStateID: 15297, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonRoots = Block{ - ID: 717, - DisplayName: "Crimson Roots", - Name: "crimson_roots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{191}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15298, - MaxStateID: 15298, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonPlanks = Block{ - ID: 718, - DisplayName: "Crimson Planks", - Name: "crimson_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{28}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15299, - MaxStateID: 15299, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WarpedPlanks = Block{ - ID: 719, - DisplayName: "Warped Planks", - Name: "warped_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{29}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15300, - MaxStateID: 15300, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrimsonSlab = Block{ - ID: 720, - DisplayName: "Crimson Slab", - Name: "crimson_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{210}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15301, - MaxStateID: 15306, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedSlab = Block{ - ID: 721, - DisplayName: "Warped Slab", - Name: "warped_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{211}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15307, - MaxStateID: 15312, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonPressurePlate = Block{ - ID: 722, - DisplayName: "Crimson Pressure Plate", - Name: "crimson_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{629}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15313, - MaxStateID: 15314, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedPressurePlate = Block{ - ID: 723, - DisplayName: "Warped Pressure Plate", - Name: "warped_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{630}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15315, - MaxStateID: 15316, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonFence = Block{ - ID: 724, - DisplayName: "Crimson Fence", - Name: "crimson_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{263}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15317, - MaxStateID: 15348, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedFence = Block{ - ID: 725, - DisplayName: "Warped Fence", - Name: "warped_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{264}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15349, - MaxStateID: 15380, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonTrapdoor = Block{ - ID: 726, - DisplayName: "Crimson Trapdoor", - Name: "crimson_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{647}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15381, - MaxStateID: 15444, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedTrapdoor = Block{ - ID: 727, - DisplayName: "Warped Trapdoor", - Name: "warped_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{648}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15445, - MaxStateID: 15508, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonFenceGate = Block{ - ID: 728, - DisplayName: "Crimson Fence Gate", - Name: "crimson_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{655}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15509, - MaxStateID: 15540, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedFenceGate = Block{ - ID: 729, - DisplayName: "Warped Fence Gate", - Name: "warped_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{656}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15541, - MaxStateID: 15572, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonStairs = Block{ - ID: 730, - DisplayName: "Crimson Stairs", - Name: "crimson_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{321}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15573, - MaxStateID: 15652, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedStairs = Block{ - ID: 731, - DisplayName: "Warped Stairs", - Name: "warped_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{322}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15653, - MaxStateID: 15732, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonButton = Block{ - ID: 732, - DisplayName: "Crimson Button", - Name: "crimson_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{617}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15733, - MaxStateID: 15756, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedButton = Block{ - ID: 733, - DisplayName: "Warped Button", - Name: "warped_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{618}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15757, - MaxStateID: 15780, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonDoor = Block{ - ID: 734, - DisplayName: "Crimson Door", - Name: "crimson_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{638}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15781, - MaxStateID: 15844, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedDoor = Block{ - ID: 735, - DisplayName: "Warped Door", - Name: "warped_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{639}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15845, - MaxStateID: 15908, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonSign = Block{ - ID: 736, - DisplayName: "Crimson Sign", - Name: "crimson_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{774}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15909, - MaxStateID: 15940, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedSign = Block{ - ID: 737, - DisplayName: "Warped Sign", - Name: "warped_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{775}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15941, - MaxStateID: 15972, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonWallSign = Block{ - ID: 738, - DisplayName: "Crimson Sign", - Name: "crimson_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{774}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15973, - MaxStateID: 15980, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedWallSign = Block{ - ID: 739, - DisplayName: "Warped Sign", - Name: "warped_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{775}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15981, - MaxStateID: 15988, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StructureBlock = Block{ - ID: 740, - DisplayName: "Structure Block", - Name: "structure_block", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15989, - MaxStateID: 15992, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Jigsaw = Block{ - ID: 741, - DisplayName: "Jigsaw Block", - Name: "jigsaw", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15993, - MaxStateID: 16004, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Composter = Block{ - ID: 742, - DisplayName: "Composter", - Name: "composter", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{1041}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16005, - MaxStateID: 16013, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Target = Block{ - ID: 743, - DisplayName: "Target", - Name: "target", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{599}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16014, - MaxStateID: 16029, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BeeNest = Block{ - ID: 744, - DisplayName: "Bee Nest", - Name: "bee_nest", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16030, - MaxStateID: 16053, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Beehive = Block{ - ID: 745, - DisplayName: "Beehive", - Name: "beehive", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{1060}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16054, - MaxStateID: 16077, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - HoneyBlock = Block{ - ID: 746, - DisplayName: "Honey Block", - Name: "honey_block", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{593}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16078, - MaxStateID: 16078, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - HoneycombBlock = Block{ - ID: 747, - DisplayName: "Honeycomb Block", - Name: "honeycomb_block", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{1062}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16079, - MaxStateID: 16079, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - NetheriteBlock = Block{ - ID: 748, - DisplayName: "Block of Netherite", - Name: "netherite_block", - Hardness: 50, - Diggable: true, - DropIDs: []uint32{69}, - NeedsTools: map[uint32]bool{721: true, 726: true}, - MinStateID: 16080, - MaxStateID: 16080, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AncientDebris = Block{ - ID: 749, - DisplayName: "Ancient Debris", - Name: "ancient_debris", - Hardness: 30, - Diggable: true, - DropIDs: []uint32{58}, - NeedsTools: map[uint32]bool{721: true, 726: true}, - MinStateID: 16081, - MaxStateID: 16081, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CryingObsidian = Block{ - ID: 750, - DisplayName: "Crying Obsidian", - Name: "crying_obsidian", - Hardness: 50, - Diggable: true, - DropIDs: []uint32{1064}, - NeedsTools: map[uint32]bool{721: true, 726: true}, - MinStateID: 16082, - MaxStateID: 16082, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 10, - } - RespawnAnchor = Block{ - ID: 751, - DisplayName: "Respawn Anchor", - Name: "respawn_anchor", - Hardness: 50, - Diggable: true, - DropIDs: []uint32{1077}, - NeedsTools: map[uint32]bool{721: true, 726: true}, - MinStateID: 16083, - MaxStateID: 16087, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PottedCrimsonFungus = Block{ - ID: 752, - DisplayName: "Air", - Name: "potted_crimson_fungus", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 189}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16088, - MaxStateID: 16088, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedWarpedFungus = Block{ - ID: 753, - DisplayName: "Air", - Name: "potted_warped_fungus", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 190}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16089, - MaxStateID: 16089, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedCrimsonRoots = Block{ - ID: 754, - DisplayName: "Air", - Name: "potted_crimson_roots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 191}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16090, - MaxStateID: 16090, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedWarpedRoots = Block{ - ID: 755, - DisplayName: "Air", - Name: "potted_warped_roots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 192}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16091, - MaxStateID: 16091, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Lodestone = Block{ - ID: 756, - DisplayName: "Lodestone", - Name: "lodestone", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1063}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16092, - MaxStateID: 16092, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Blackstone = Block{ - ID: 757, - DisplayName: "Blackstone", - Name: "blackstone", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1065}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16093, - MaxStateID: 16093, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackstoneStairs = Block{ - ID: 758, - DisplayName: "Blackstone Stairs", - Name: "blackstone_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1067}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16094, - MaxStateID: 16173, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackstoneWall = Block{ - ID: 759, - DisplayName: "Blackstone Wall", - Name: "blackstone_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{339}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16174, - MaxStateID: 16497, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackstoneSlab = Block{ - ID: 760, - DisplayName: "Blackstone Slab", - Name: "blackstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1066}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16498, - MaxStateID: 16503, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstone = Block{ - ID: 761, - DisplayName: "Polished Blackstone", - Name: "polished_blackstone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1069}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16504, - MaxStateID: 16504, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedBlackstoneBricks = Block{ - ID: 762, - DisplayName: "Polished Blackstone Bricks", - Name: "polished_blackstone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1073}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16505, - MaxStateID: 16505, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrackedPolishedBlackstoneBricks = Block{ - ID: 763, - DisplayName: "Cracked Polished Blackstone Bricks", - Name: "cracked_polished_blackstone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1076}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16506, - MaxStateID: 16506, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChiseledPolishedBlackstone = Block{ - ID: 764, - DisplayName: "Chiseled Polished Blackstone", - Name: "chiseled_polished_blackstone", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1072}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16507, - MaxStateID: 16507, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedBlackstoneBrickSlab = Block{ - ID: 765, - DisplayName: "Polished Blackstone Brick Slab", - Name: "polished_blackstone_brick_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1074}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16508, - MaxStateID: 16513, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstoneBrickStairs = Block{ - ID: 766, - DisplayName: "Polished Blackstone Brick Stairs", - Name: "polished_blackstone_brick_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1075}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16514, - MaxStateID: 16593, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstoneBrickWall = Block{ - ID: 767, - DisplayName: "Polished Blackstone Brick Wall", - Name: "polished_blackstone_brick_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{341}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16594, - MaxStateID: 16917, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GildedBlackstone = Block{ - ID: 768, - DisplayName: "Gilded Blackstone", - Name: "gilded_blackstone", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1068}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16918, - MaxStateID: 16918, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedBlackstoneStairs = Block{ - ID: 769, - DisplayName: "Polished Blackstone Stairs", - Name: "polished_blackstone_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1071}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16919, - MaxStateID: 16998, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstoneSlab = Block{ - ID: 770, - DisplayName: "Polished Blackstone Slab", - Name: "polished_blackstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1070}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16999, - MaxStateID: 17004, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstonePressurePlate = Block{ - ID: 771, - DisplayName: "Polished Blackstone Pressure Plate", - Name: "polished_blackstone_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{620}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17005, - MaxStateID: 17006, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstoneButton = Block{ - ID: 772, - DisplayName: "Polished Blackstone Button", - Name: "polished_blackstone_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{610}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17007, - MaxStateID: 17030, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstoneWall = Block{ - ID: 773, - DisplayName: "Polished Blackstone Wall", - Name: "polished_blackstone_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{340}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17031, - MaxStateID: 17354, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ChiseledNetherBricks = Block{ - ID: 774, - DisplayName: "Chiseled Nether Bricks", - Name: "chiseled_nether_bricks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{307}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17355, - MaxStateID: 17355, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrackedNetherBricks = Block{ - ID: 775, - DisplayName: "Cracked Nether Bricks", - Name: "cracked_nether_bricks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{306}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17356, - MaxStateID: 17356, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - QuartzBricks = Block{ - ID: 776, - DisplayName: "Quartz Bricks", - Name: "quartz_bricks", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{351}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17357, - MaxStateID: 17357, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Candle = Block{ - ID: 777, - DisplayName: "Candle", - Name: "candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1078}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17358, - MaxStateID: 17373, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteCandle = Block{ - ID: 778, - DisplayName: "White Candle", - Name: "white_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1079}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17374, - MaxStateID: 17389, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeCandle = Block{ - ID: 779, - DisplayName: "Orange Candle", - Name: "orange_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1080}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17390, - MaxStateID: 17405, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaCandle = Block{ - ID: 780, - DisplayName: "Magenta Candle", - Name: "magenta_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1081}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17406, - MaxStateID: 17421, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueCandle = Block{ - ID: 781, - DisplayName: "Light Blue Candle", - Name: "light_blue_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1082}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17422, - MaxStateID: 17437, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowCandle = Block{ - ID: 782, - DisplayName: "Yellow Candle", - Name: "yellow_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1083}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17438, - MaxStateID: 17453, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeCandle = Block{ - ID: 783, - DisplayName: "Lime Candle", - Name: "lime_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1084}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17454, - MaxStateID: 17469, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkCandle = Block{ - ID: 784, - DisplayName: "Pink Candle", - Name: "pink_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1085}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17470, - MaxStateID: 17485, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayCandle = Block{ - ID: 785, - DisplayName: "Gray Candle", - Name: "gray_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1086}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17486, - MaxStateID: 17501, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayCandle = Block{ - ID: 786, - DisplayName: "Light Gray Candle", - Name: "light_gray_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1087}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17502, - MaxStateID: 17517, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanCandle = Block{ - ID: 787, - DisplayName: "Cyan Candle", - Name: "cyan_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1088}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17518, - MaxStateID: 17533, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleCandle = Block{ - ID: 788, - DisplayName: "Purple Candle", - Name: "purple_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1089}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17534, - MaxStateID: 17549, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueCandle = Block{ - ID: 789, - DisplayName: "Blue Candle", - Name: "blue_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1090}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17550, - MaxStateID: 17565, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownCandle = Block{ - ID: 790, - DisplayName: "Brown Candle", - Name: "brown_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1091}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17566, - MaxStateID: 17581, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenCandle = Block{ - ID: 791, - DisplayName: "Green Candle", - Name: "green_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1092}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17582, - MaxStateID: 17597, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedCandle = Block{ - ID: 792, - DisplayName: "Red Candle", - Name: "red_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1093}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17598, - MaxStateID: 17613, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackCandle = Block{ - ID: 793, - DisplayName: "Black Candle", - Name: "black_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1094}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17614, - MaxStateID: 17629, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CandleCake = Block{ - ID: 794, - DisplayName: "Air", - Name: "candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1078}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17630, - MaxStateID: 17631, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteCandleCake = Block{ - ID: 795, - DisplayName: "Air", - Name: "white_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1079}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17632, - MaxStateID: 17633, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeCandleCake = Block{ - ID: 796, - DisplayName: "Air", - Name: "orange_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1080}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17634, - MaxStateID: 17635, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaCandleCake = Block{ - ID: 797, - DisplayName: "Air", - Name: "magenta_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1081}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17636, - MaxStateID: 17637, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueCandleCake = Block{ - ID: 798, - DisplayName: "Air", - Name: "light_blue_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1082}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17638, - MaxStateID: 17639, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowCandleCake = Block{ - ID: 799, - DisplayName: "Air", - Name: "yellow_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1083}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17640, - MaxStateID: 17641, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeCandleCake = Block{ - ID: 800, - DisplayName: "Air", - Name: "lime_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1084}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17642, - MaxStateID: 17643, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkCandleCake = Block{ - ID: 801, - DisplayName: "Air", - Name: "pink_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1085}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17644, - MaxStateID: 17645, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayCandleCake = Block{ - ID: 802, - DisplayName: "Air", - Name: "gray_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1086}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17646, - MaxStateID: 17647, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayCandleCake = Block{ - ID: 803, - DisplayName: "Air", - Name: "light_gray_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1087}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17648, - MaxStateID: 17649, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanCandleCake = Block{ - ID: 804, - DisplayName: "Air", - Name: "cyan_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1088}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17650, - MaxStateID: 17651, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleCandleCake = Block{ - ID: 805, - DisplayName: "Air", - Name: "purple_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1089}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17652, - MaxStateID: 17653, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueCandleCake = Block{ - ID: 806, - DisplayName: "Air", - Name: "blue_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1090}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17654, - MaxStateID: 17655, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownCandleCake = Block{ - ID: 807, - DisplayName: "Air", - Name: "brown_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1091}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17656, - MaxStateID: 17657, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenCandleCake = Block{ - ID: 808, - DisplayName: "Air", - Name: "green_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1092}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17658, - MaxStateID: 17659, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedCandleCake = Block{ - ID: 809, - DisplayName: "Air", - Name: "red_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1093}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17660, - MaxStateID: 17661, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackCandleCake = Block{ - ID: 810, - DisplayName: "Air", - Name: "black_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1094}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17662, - MaxStateID: 17663, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AmethystBlock = Block{ - ID: 811, - DisplayName: "Block of Amethyst", - Name: "amethyst_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{63}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17664, - MaxStateID: 17664, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BuddingAmethyst = Block{ - ID: 812, - DisplayName: "Budding Amethyst", - Name: "budding_amethyst", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17665, - MaxStateID: 17665, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AmethystCluster = Block{ - ID: 813, - DisplayName: "Amethyst Cluster", - Name: "amethyst_cluster", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{690}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17666, - MaxStateID: 17677, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 5, - } - LargeAmethystBud = Block{ - ID: 814, - DisplayName: "Large Amethyst Bud", - Name: "large_amethyst_bud", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17678, - MaxStateID: 17689, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 4, - } - MediumAmethystBud = Block{ - ID: 815, - DisplayName: "Medium Amethyst Bud", - Name: "medium_amethyst_bud", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17690, - MaxStateID: 17701, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 2, - } - SmallAmethystBud = Block{ - ID: 816, - DisplayName: "Small Amethyst Bud", - Name: "small_amethyst_bud", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17702, - MaxStateID: 17713, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - Tuff = Block{ - ID: 817, - DisplayName: "Tuff", - Name: "tuff", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{12}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17714, - MaxStateID: 17714, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Calcite = Block{ - ID: 818, - DisplayName: "Calcite", - Name: "calcite", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{11}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17715, - MaxStateID: 17715, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - TintedGlass = Block{ - ID: 819, - DisplayName: "Tinted Glass", - Name: "tinted_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{144}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17716, - MaxStateID: 17716, - Transparent: true, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PowderSnow = Block{ - ID: 820, - DisplayName: "Powder Snow Bucket", - Name: "powder_snow", - Hardness: 0.25, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17717, - MaxStateID: 17717, - Transparent: false, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - SculkSensor = Block{ - ID: 821, - DisplayName: "Sculk Sensor", - Name: "sculk_sensor", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{603}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17718, - MaxStateID: 17813, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - OxidizedCopper = Block{ - ID: 822, - DisplayName: "Oxidized Copper", - Name: "oxidized_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{72}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17814, - MaxStateID: 17814, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WeatheredCopper = Block{ - ID: 823, - DisplayName: "Weathered Copper", - Name: "weathered_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{71}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17815, - MaxStateID: 17815, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ExposedCopper = Block{ - ID: 824, - DisplayName: "Exposed Copper", - Name: "exposed_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{70}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17816, - MaxStateID: 17816, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CopperBlock = Block{ - ID: 825, - DisplayName: "Block of Copper", - Name: "copper_block", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{66}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17817, - MaxStateID: 17817, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CopperOre = Block{ - ID: 826, - DisplayName: "Copper Ore", - Name: "copper_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{693}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17818, - MaxStateID: 17818, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateCopperOre = Block{ - ID: 827, - DisplayName: "Deepslate Copper Ore", - Name: "deepslate_copper_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{693}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17819, - MaxStateID: 17819, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OxidizedCutCopper = Block{ - ID: 828, - DisplayName: "Oxidized Cut Copper", - Name: "oxidized_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{76}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17820, - MaxStateID: 17820, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WeatheredCutCopper = Block{ - ID: 829, - DisplayName: "Weathered Cut Copper", - Name: "weathered_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{75}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17821, - MaxStateID: 17821, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ExposedCutCopper = Block{ - ID: 830, - DisplayName: "Exposed Cut Copper", - Name: "exposed_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{74}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17822, - MaxStateID: 17822, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CutCopper = Block{ - ID: 831, - DisplayName: "Cut Copper", - Name: "cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{73}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17823, - MaxStateID: 17823, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OxidizedCutCopperStairs = Block{ - ID: 832, - DisplayName: "Oxidized Cut Copper Stairs", - Name: "oxidized_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{80}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17824, - MaxStateID: 17903, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WeatheredCutCopperStairs = Block{ - ID: 833, - DisplayName: "Weathered Cut Copper Stairs", - Name: "weathered_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{79}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17904, - MaxStateID: 17983, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ExposedCutCopperStairs = Block{ - ID: 834, - DisplayName: "Exposed Cut Copper Stairs", - Name: "exposed_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{78}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17984, - MaxStateID: 18063, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CutCopperStairs = Block{ - ID: 835, - DisplayName: "Cut Copper Stairs", - Name: "cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{77}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18064, - MaxStateID: 18143, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OxidizedCutCopperSlab = Block{ - ID: 836, - DisplayName: "Oxidized Cut Copper Slab", - Name: "oxidized_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{84}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18144, - MaxStateID: 18149, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WeatheredCutCopperSlab = Block{ - ID: 837, - DisplayName: "Weathered Cut Copper Slab", - Name: "weathered_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{83}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18150, - MaxStateID: 18155, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ExposedCutCopperSlab = Block{ - ID: 838, - DisplayName: "Exposed Cut Copper Slab", - Name: "exposed_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{82}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18156, - MaxStateID: 18161, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CutCopperSlab = Block{ - ID: 839, - DisplayName: "Cut Copper Slab", - Name: "cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{81}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18162, - MaxStateID: 18167, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedCopperBlock = Block{ - ID: 840, - DisplayName: "Waxed Block of Copper", - Name: "waxed_copper_block", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{85}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18168, - MaxStateID: 18168, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedWeatheredCopper = Block{ - ID: 841, - DisplayName: "Waxed Weathered Copper", - Name: "waxed_weathered_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{87}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18169, - MaxStateID: 18169, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedExposedCopper = Block{ - ID: 842, - DisplayName: "Waxed Exposed Copper", - Name: "waxed_exposed_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{86}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18170, - MaxStateID: 18170, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedOxidizedCopper = Block{ - ID: 843, - DisplayName: "Waxed Oxidized Copper", - Name: "waxed_oxidized_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{88}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18171, - MaxStateID: 18171, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedOxidizedCutCopper = Block{ - ID: 844, - DisplayName: "Waxed Oxidized Cut Copper", - Name: "waxed_oxidized_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{92}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18172, - MaxStateID: 18172, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedWeatheredCutCopper = Block{ - ID: 845, - DisplayName: "Waxed Weathered Cut Copper", - Name: "waxed_weathered_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{91}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18173, - MaxStateID: 18173, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedExposedCutCopper = Block{ - ID: 846, - DisplayName: "Waxed Exposed Cut Copper", - Name: "waxed_exposed_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{90}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18174, - MaxStateID: 18174, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedCutCopper = Block{ - ID: 847, - DisplayName: "Waxed Cut Copper", - Name: "waxed_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{89}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18175, - MaxStateID: 18175, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedOxidizedCutCopperStairs = Block{ - ID: 848, - DisplayName: "Waxed Oxidized Cut Copper Stairs", - Name: "waxed_oxidized_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{96}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18176, - MaxStateID: 18255, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedWeatheredCutCopperStairs = Block{ - ID: 849, - DisplayName: "Waxed Weathered Cut Copper Stairs", - Name: "waxed_weathered_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{95}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18256, - MaxStateID: 18335, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedExposedCutCopperStairs = Block{ - ID: 850, - DisplayName: "Waxed Exposed Cut Copper Stairs", - Name: "waxed_exposed_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{94}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18336, - MaxStateID: 18415, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedCutCopperStairs = Block{ - ID: 851, - DisplayName: "Waxed Cut Copper Stairs", - Name: "waxed_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{93}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18416, - MaxStateID: 18495, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedOxidizedCutCopperSlab = Block{ - ID: 852, - DisplayName: "Waxed Oxidized Cut Copper Slab", - Name: "waxed_oxidized_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{100}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18496, - MaxStateID: 18501, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedWeatheredCutCopperSlab = Block{ - ID: 853, - DisplayName: "Waxed Weathered Cut Copper Slab", - Name: "waxed_weathered_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{99}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18502, - MaxStateID: 18507, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedExposedCutCopperSlab = Block{ - ID: 854, - DisplayName: "Waxed Exposed Cut Copper Slab", - Name: "waxed_exposed_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{98}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18508, - MaxStateID: 18513, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedCutCopperSlab = Block{ - ID: 855, - DisplayName: "Waxed Cut Copper Slab", - Name: "waxed_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{97}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18514, - MaxStateID: 18519, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightningRod = Block{ - ID: 856, - DisplayName: "Lightning Rod", - Name: "lightning_rod", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{601}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18520, - MaxStateID: 18543, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PointedDripstone = Block{ - ID: 857, - DisplayName: "Pointed Dripstone", - Name: "pointed_dripstone", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1099}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18544, - MaxStateID: 18563, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DripstoneBlock = Block{ - ID: 858, - DisplayName: "Dripstone Block", - Name: "dripstone_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{13}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18564, - MaxStateID: 18564, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CaveVines = Block{ - ID: 859, - DisplayName: "Glow Berries", - Name: "cave_vines", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18565, - MaxStateID: 18616, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CaveVinesPlant = Block{ - ID: 860, - DisplayName: "Air", - Name: "cave_vines_plant", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18617, - MaxStateID: 18618, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SporeBlossom = Block{ - ID: 861, - DisplayName: "Spore Blossom", - Name: "spore_blossom", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{186}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18619, - MaxStateID: 18619, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Azalea = Block{ - ID: 862, - DisplayName: "Azalea", - Name: "azalea", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{152}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18620, - MaxStateID: 18620, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - FloweringAzalea = Block{ - ID: 863, - DisplayName: "Flowering Azalea", - Name: "flowering_azalea", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{153}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18621, - MaxStateID: 18621, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossCarpet = Block{ - ID: 864, - DisplayName: "Moss Carpet", - Name: "moss_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{198}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18622, - MaxStateID: 18622, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossBlock = Block{ - ID: 865, - DisplayName: "Moss Block", - Name: "moss_block", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{199}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18623, - MaxStateID: 18623, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BigDripleaf = Block{ - ID: 866, - DisplayName: "Big Dripleaf", - Name: "big_dripleaf", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{201}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18624, - MaxStateID: 18655, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BigDripleafStem = Block{ - ID: 867, - DisplayName: "Air", - Name: "big_dripleaf_stem", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{201}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18656, - MaxStateID: 18663, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmallDripleaf = Block{ - ID: 868, - DisplayName: "Small Dripleaf", - Name: "small_dripleaf", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18664, - MaxStateID: 18679, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - HangingRoots = Block{ - ID: 869, - DisplayName: "Hanging Roots", - Name: "hanging_roots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18680, - MaxStateID: 18681, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RootedDirt = Block{ - ID: 870, - DisplayName: "Rooted Dirt", - Name: "rooted_dirt", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{18}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18682, - MaxStateID: 18682, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Deepslate = Block{ - ID: 871, - DisplayName: "Deepslate", - Name: "deepslate", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{9}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18683, - MaxStateID: 18685, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CobbledDeepslate = Block{ - ID: 872, - DisplayName: "Cobbled Deepslate", - Name: "cobbled_deepslate", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{9}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18686, - MaxStateID: 18686, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CobbledDeepslateStairs = Block{ - ID: 873, - DisplayName: "Cobbled Deepslate Stairs", - Name: "cobbled_deepslate_stairs", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{563}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18687, - MaxStateID: 18766, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CobbledDeepslateSlab = Block{ - ID: 874, - DisplayName: "Cobbled Deepslate Slab", - Name: "cobbled_deepslate_slab", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{580}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18767, - MaxStateID: 18772, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CobbledDeepslateWall = Block{ - ID: 875, - DisplayName: "Cobbled Deepslate Wall", - Name: "cobbled_deepslate_wall", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{342}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18773, - MaxStateID: 19096, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedDeepslate = Block{ - ID: 876, - DisplayName: "Polished Deepslate", - Name: "polished_deepslate", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{10}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19097, - MaxStateID: 19097, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedDeepslateStairs = Block{ - ID: 877, - DisplayName: "Polished Deepslate Stairs", - Name: "polished_deepslate_stairs", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{564}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19098, - MaxStateID: 19177, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedDeepslateSlab = Block{ - ID: 878, - DisplayName: "Polished Deepslate Slab", - Name: "polished_deepslate_slab", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{581}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19178, - MaxStateID: 19183, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedDeepslateWall = Block{ - ID: 879, - DisplayName: "Polished Deepslate Wall", - Name: "polished_deepslate_wall", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{343}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19184, - MaxStateID: 19507, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateTiles = Block{ - ID: 880, - DisplayName: "Deepslate Tiles", - Name: "deepslate_tiles", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{289}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19508, - MaxStateID: 19508, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateTileStairs = Block{ - ID: 881, - DisplayName: "Deepslate Tile Stairs", - Name: "deepslate_tile_stairs", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{566}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19509, - MaxStateID: 19588, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateTileSlab = Block{ - ID: 882, - DisplayName: "Deepslate Tile Slab", - Name: "deepslate_tile_slab", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{583}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19589, - MaxStateID: 19594, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateTileWall = Block{ - ID: 883, - DisplayName: "Deepslate Tile Wall", - Name: "deepslate_tile_wall", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{345}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19595, - MaxStateID: 19918, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateBricks = Block{ - ID: 884, - DisplayName: "Deepslate Bricks", - Name: "deepslate_bricks", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{287}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19919, - MaxStateID: 19919, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateBrickStairs = Block{ - ID: 885, - DisplayName: "Deepslate Brick Stairs", - Name: "deepslate_brick_stairs", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{565}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19920, - MaxStateID: 19999, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateBrickSlab = Block{ - ID: 886, - DisplayName: "Deepslate Brick Slab", - Name: "deepslate_brick_slab", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{582}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20000, - MaxStateID: 20005, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateBrickWall = Block{ - ID: 887, - DisplayName: "Deepslate Brick Wall", - Name: "deepslate_brick_wall", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{344}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20006, - MaxStateID: 20329, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ChiseledDeepslate = Block{ - ID: 888, - DisplayName: "Chiseled Deepslate", - Name: "chiseled_deepslate", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{291}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20330, - MaxStateID: 20330, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrackedDeepslateBricks = Block{ - ID: 889, - DisplayName: "Cracked Deepslate Bricks", - Name: "cracked_deepslate_bricks", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{288}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20331, - MaxStateID: 20331, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrackedDeepslateTiles = Block{ - ID: 890, - DisplayName: "Cracked Deepslate Tiles", - Name: "cracked_deepslate_tiles", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{290}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20332, - MaxStateID: 20332, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedDeepslate = Block{ - ID: 891, - DisplayName: "Infested Deepslate", - Name: "infested_deepslate", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 20333, - MaxStateID: 20335, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SmoothBasalt = Block{ - ID: 892, - DisplayName: "Smooth Basalt", - Name: "smooth_basalt", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{273}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20336, - MaxStateID: 20336, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RawIronBlock = Block{ - ID: 893, - DisplayName: "Block of Raw Iron", - Name: "raw_iron_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{60}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 20337, - MaxStateID: 20337, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RawCopperBlock = Block{ - ID: 894, - DisplayName: "Block of Raw Copper", - Name: "raw_copper_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{61}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 20338, - MaxStateID: 20338, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RawGoldBlock = Block{ - ID: 895, - DisplayName: "Block of Raw Gold", - Name: "raw_gold_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{62}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 20339, - MaxStateID: 20339, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PottedAzaleaBush = Block{ - ID: 896, - DisplayName: "Air", - Name: "potted_azalea_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 152}, - NeedsTools: map[uint32]bool{}, - MinStateID: 20340, - MaxStateID: 20340, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedFloweringAzaleaBush = Block{ - ID: 897, - DisplayName: "Air", - Name: "potted_flowering_azalea_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 153}, - NeedsTools: map[uint32]bool{}, - MinStateID: 20341, - MaxStateID: 20341, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } -) - -// ByID is an index of minecraft blocks by their ID. -var ByID = map[ID]*Block{ - 0: &Air, - 1: &Stone, - 2: &Granite, - 3: &PolishedGranite, - 4: &Diorite, - 5: &PolishedDiorite, - 6: &Andesite, - 7: &PolishedAndesite, - 8: &GrassBlock, - 9: &Dirt, - 10: &CoarseDirt, - 11: &Podzol, - 12: &Cobblestone, - 13: &OakPlanks, - 14: &SprucePlanks, - 15: &BirchPlanks, - 16: &JunglePlanks, - 17: &AcaciaPlanks, - 18: &DarkOakPlanks, - 19: &OakSapling, - 20: &SpruceSapling, - 21: &BirchSapling, - 22: &JungleSapling, - 23: &AcaciaSapling, - 24: &DarkOakSapling, - 25: &Bedrock, - 26: &Water, - 27: &Lava, - 28: &Sand, - 29: &RedSand, - 30: &Gravel, - 31: &GoldOre, - 32: &DeepslateGoldOre, - 33: &IronOre, - 34: &DeepslateIronOre, - 35: &CoalOre, - 36: &DeepslateCoalOre, - 37: &NetherGoldOre, - 38: &OakLog, - 39: &SpruceLog, - 40: &BirchLog, - 41: &JungleLog, - 42: &AcaciaLog, - 43: &DarkOakLog, - 44: &StrippedSpruceLog, - 45: &StrippedBirchLog, - 46: &StrippedJungleLog, - 47: &StrippedAcaciaLog, - 48: &StrippedDarkOakLog, - 49: &StrippedOakLog, - 50: &OakWood, - 51: &SpruceWood, - 52: &BirchWood, - 53: &JungleWood, - 54: &AcaciaWood, - 55: &DarkOakWood, - 56: &StrippedOakWood, - 57: &StrippedSpruceWood, - 58: &StrippedBirchWood, - 59: &StrippedJungleWood, - 60: &StrippedAcaciaWood, - 61: &StrippedDarkOakWood, - 62: &OakLeaves, - 63: &SpruceLeaves, - 64: &BirchLeaves, - 65: &JungleLeaves, - 66: &AcaciaLeaves, - 67: &DarkOakLeaves, - 68: &AzaleaLeaves, - 69: &FloweringAzaleaLeaves, - 70: &Sponge, - 71: &WetSponge, - 72: &Glass, - 73: &LapisOre, - 74: &DeepslateLapisOre, - 75: &LapisBlock, - 76: &Dispenser, - 77: &Sandstone, - 78: &ChiseledSandstone, - 79: &CutSandstone, - 80: &NoteBlock, - 81: &WhiteBed, - 82: &OrangeBed, - 83: &MagentaBed, - 84: &LightBlueBed, - 85: &YellowBed, - 86: &LimeBed, - 87: &PinkBed, - 88: &GrayBed, - 89: &LightGrayBed, - 90: &CyanBed, - 91: &PurpleBed, - 92: &BlueBed, - 93: &BrownBed, - 94: &GreenBed, - 95: &RedBed, - 96: &BlackBed, - 97: &PoweredRail, - 98: &DetectorRail, - 99: &StickyPiston, - 100: &Cobweb, - 101: &Grass, - 102: &Fern, - 103: &DeadBush, - 104: &Seagrass, - 105: &TallSeagrass, - 106: &Piston, - 107: &PistonHead, - 108: &WhiteWool, - 109: &OrangeWool, - 110: &MagentaWool, - 111: &LightBlueWool, - 112: &YellowWool, - 113: &LimeWool, - 114: &PinkWool, - 115: &GrayWool, - 116: &LightGrayWool, - 117: &CyanWool, - 118: &PurpleWool, - 119: &BlueWool, - 120: &BrownWool, - 121: &GreenWool, - 122: &RedWool, - 123: &BlackWool, - 124: &MovingPiston, - 125: &Dandelion, - 126: &Poppy, - 127: &BlueOrchid, - 128: &Allium, - 129: &AzureBluet, - 130: &RedTulip, - 131: &OrangeTulip, - 132: &WhiteTulip, - 133: &PinkTulip, - 134: &OxeyeDaisy, - 135: &Cornflower, - 136: &WitherRose, - 137: &LilyOfTheValley, - 138: &BrownMushroom, - 139: &RedMushroom, - 140: &GoldBlock, - 141: &IronBlock, - 142: &Bricks, - 143: &Tnt, - 144: &Bookshelf, - 145: &MossyCobblestone, - 146: &Obsidian, - 147: &Torch, - 148: &WallTorch, - 149: &Fire, - 150: &SoulFire, - 151: &Spawner, - 152: &OakStairs, - 153: &Chest, - 154: &RedstoneWire, - 155: &DiamondOre, - 156: &DeepslateDiamondOre, - 157: &DiamondBlock, - 158: &CraftingTable, - 159: &Wheat, - 160: &Farmland, - 161: &Furnace, - 162: &OakSign, - 163: &SpruceSign, - 164: &BirchSign, - 165: &AcaciaSign, - 166: &JungleSign, - 167: &DarkOakSign, - 168: &OakDoor, - 169: &Ladder, - 170: &Rail, - 171: &CobblestoneStairs, - 172: &OakWallSign, - 173: &SpruceWallSign, - 174: &BirchWallSign, - 175: &AcaciaWallSign, - 176: &JungleWallSign, - 177: &DarkOakWallSign, - 178: &Lever, - 179: &StonePressurePlate, - 180: &IronDoor, - 181: &OakPressurePlate, - 182: &SprucePressurePlate, - 183: &BirchPressurePlate, - 184: &JunglePressurePlate, - 185: &AcaciaPressurePlate, - 186: &DarkOakPressurePlate, - 187: &RedstoneOre, - 188: &DeepslateRedstoneOre, - 189: &RedstoneTorch, - 190: &RedstoneWallTorch, - 191: &StoneButton, - 192: &Snow, - 193: &Ice, - 194: &SnowBlock, - 195: &Cactus, - 196: &Clay, - 197: &SugarCane, - 198: &Jukebox, - 199: &OakFence, - 200: &Pumpkin, - 201: &Netherrack, - 202: &SoulSand, - 203: &SoulSoil, - 204: &Basalt, - 205: &PolishedBasalt, - 206: &SoulTorch, - 207: &SoulWallTorch, - 208: &Glowstone, - 209: &NetherPortal, - 210: &CarvedPumpkin, - 211: &JackOLantern, - 212: &Cake, - 213: &Repeater, - 214: &WhiteStainedGlass, - 215: &OrangeStainedGlass, - 216: &MagentaStainedGlass, - 217: &LightBlueStainedGlass, - 218: &YellowStainedGlass, - 219: &LimeStainedGlass, - 220: &PinkStainedGlass, - 221: &GrayStainedGlass, - 222: &LightGrayStainedGlass, - 223: &CyanStainedGlass, - 224: &PurpleStainedGlass, - 225: &BlueStainedGlass, - 226: &BrownStainedGlass, - 227: &GreenStainedGlass, - 228: &RedStainedGlass, - 229: &BlackStainedGlass, - 230: &OakTrapdoor, - 231: &SpruceTrapdoor, - 232: &BirchTrapdoor, - 233: &JungleTrapdoor, - 234: &AcaciaTrapdoor, - 235: &DarkOakTrapdoor, - 236: &StoneBricks, - 237: &MossyStoneBricks, - 238: &CrackedStoneBricks, - 239: &ChiseledStoneBricks, - 240: &InfestedStone, - 241: &InfestedCobblestone, - 242: &InfestedStoneBricks, - 243: &InfestedMossyStoneBricks, - 244: &InfestedCrackedStoneBricks, - 245: &InfestedChiseledStoneBricks, - 246: &BrownMushroomBlock, - 247: &RedMushroomBlock, - 248: &MushroomStem, - 249: &IronBars, - 250: &Chain, - 251: &GlassPane, - 252: &Melon, - 253: &AttachedPumpkinStem, - 254: &AttachedMelonStem, - 255: &PumpkinStem, - 256: &MelonStem, - 257: &Vine, - 258: &GlowLichen, - 259: &OakFenceGate, - 260: &BrickStairs, - 261: &StoneBrickStairs, - 262: &Mycelium, - 263: &LilyPad, - 264: &NetherBricks, - 265: &NetherBrickFence, - 266: &NetherBrickStairs, - 267: &NetherWart, - 268: &EnchantingTable, - 269: &BrewingStand, - 270: &Cauldron, - 271: &WaterCauldron, - 272: &LavaCauldron, - 273: &PowderSnowCauldron, - 274: &EndPortal, - 275: &EndPortalFrame, - 276: &EndStone, - 277: &DragonEgg, - 278: &RedstoneLamp, - 279: &Cocoa, - 280: &SandstoneStairs, - 281: &EmeraldOre, - 282: &DeepslateEmeraldOre, - 283: &EnderChest, - 284: &TripwireHook, - 285: &Tripwire, - 286: &EmeraldBlock, - 287: &SpruceStairs, - 288: &BirchStairs, - 289: &JungleStairs, - 290: &CommandBlock, - 291: &Beacon, - 292: &CobblestoneWall, - 293: &MossyCobblestoneWall, - 294: &FlowerPot, - 295: &PottedOakSapling, - 296: &PottedSpruceSapling, - 297: &PottedBirchSapling, - 298: &PottedJungleSapling, - 299: &PottedAcaciaSapling, - 300: &PottedDarkOakSapling, - 301: &PottedFern, - 302: &PottedDandelion, - 303: &PottedPoppy, - 304: &PottedBlueOrchid, - 305: &PottedAllium, - 306: &PottedAzureBluet, - 307: &PottedRedTulip, - 308: &PottedOrangeTulip, - 309: &PottedWhiteTulip, - 310: &PottedPinkTulip, - 311: &PottedOxeyeDaisy, - 312: &PottedCornflower, - 313: &PottedLilyOfTheValley, - 314: &PottedWitherRose, - 315: &PottedRedMushroom, - 316: &PottedBrownMushroom, - 317: &PottedDeadBush, - 318: &PottedCactus, - 319: &Carrots, - 320: &Potatoes, - 321: &OakButton, - 322: &SpruceButton, - 323: &BirchButton, - 324: &JungleButton, - 325: &AcaciaButton, - 326: &DarkOakButton, - 327: &SkeletonSkull, - 328: &SkeletonWallSkull, - 329: &WitherSkeletonSkull, - 330: &WitherSkeletonWallSkull, - 331: &ZombieHead, - 332: &ZombieWallHead, - 333: &PlayerHead, - 334: &PlayerWallHead, - 335: &CreeperHead, - 336: &CreeperWallHead, - 337: &DragonHead, - 338: &DragonWallHead, - 339: &Anvil, - 340: &ChippedAnvil, - 341: &DamagedAnvil, - 342: &TrappedChest, - 343: &LightWeightedPressurePlate, - 344: &HeavyWeightedPressurePlate, - 345: &Comparator, - 346: &DaylightDetector, - 347: &RedstoneBlock, - 348: &NetherQuartzOre, - 349: &Hopper, - 350: &QuartzBlock, - 351: &ChiseledQuartzBlock, - 352: &QuartzPillar, - 353: &QuartzStairs, - 354: &ActivatorRail, - 355: &Dropper, - 356: &WhiteTerracotta, - 357: &OrangeTerracotta, - 358: &MagentaTerracotta, - 359: &LightBlueTerracotta, - 360: &YellowTerracotta, - 361: &LimeTerracotta, - 362: &PinkTerracotta, - 363: &GrayTerracotta, - 364: &LightGrayTerracotta, - 365: &CyanTerracotta, - 366: &PurpleTerracotta, - 367: &BlueTerracotta, - 368: &BrownTerracotta, - 369: &GreenTerracotta, - 370: &RedTerracotta, - 371: &BlackTerracotta, - 372: &WhiteStainedGlassPane, - 373: &OrangeStainedGlassPane, - 374: &MagentaStainedGlassPane, - 375: &LightBlueStainedGlassPane, - 376: &YellowStainedGlassPane, - 377: &LimeStainedGlassPane, - 378: &PinkStainedGlassPane, - 379: &GrayStainedGlassPane, - 380: &LightGrayStainedGlassPane, - 381: &CyanStainedGlassPane, - 382: &PurpleStainedGlassPane, - 383: &BlueStainedGlassPane, - 384: &BrownStainedGlassPane, - 385: &GreenStainedGlassPane, - 386: &RedStainedGlassPane, - 387: &BlackStainedGlassPane, - 388: &AcaciaStairs, - 389: &DarkOakStairs, - 390: &SlimeBlock, - 391: &Barrier, - 392: &Light, - 393: &IronTrapdoor, - 394: &Prismarine, - 395: &PrismarineBricks, - 396: &DarkPrismarine, - 397: &PrismarineStairs, - 398: &PrismarineBrickStairs, - 399: &DarkPrismarineStairs, - 400: &PrismarineSlab, - 401: &PrismarineBrickSlab, - 402: &DarkPrismarineSlab, - 403: &SeaLantern, - 404: &HayBlock, - 405: &WhiteCarpet, - 406: &OrangeCarpet, - 407: &MagentaCarpet, - 408: &LightBlueCarpet, - 409: &YellowCarpet, - 410: &LimeCarpet, - 411: &PinkCarpet, - 412: &GrayCarpet, - 413: &LightGrayCarpet, - 414: &CyanCarpet, - 415: &PurpleCarpet, - 416: &BlueCarpet, - 417: &BrownCarpet, - 418: &GreenCarpet, - 419: &RedCarpet, - 420: &BlackCarpet, - 421: &Terracotta, - 422: &CoalBlock, - 423: &PackedIce, - 424: &Sunflower, - 425: &Lilac, - 426: &RoseBush, - 427: &Peony, - 428: &TallGrass, - 429: &LargeFern, - 430: &WhiteBanner, - 431: &OrangeBanner, - 432: &MagentaBanner, - 433: &LightBlueBanner, - 434: &YellowBanner, - 435: &LimeBanner, - 436: &PinkBanner, - 437: &GrayBanner, - 438: &LightGrayBanner, - 439: &CyanBanner, - 440: &PurpleBanner, - 441: &BlueBanner, - 442: &BrownBanner, - 443: &GreenBanner, - 444: &RedBanner, - 445: &BlackBanner, - 446: &WhiteWallBanner, - 447: &OrangeWallBanner, - 448: &MagentaWallBanner, - 449: &LightBlueWallBanner, - 450: &YellowWallBanner, - 451: &LimeWallBanner, - 452: &PinkWallBanner, - 453: &GrayWallBanner, - 454: &LightGrayWallBanner, - 455: &CyanWallBanner, - 456: &PurpleWallBanner, - 457: &BlueWallBanner, - 458: &BrownWallBanner, - 459: &GreenWallBanner, - 460: &RedWallBanner, - 461: &BlackWallBanner, - 462: &RedSandstone, - 463: &ChiseledRedSandstone, - 464: &CutRedSandstone, - 465: &RedSandstoneStairs, - 466: &OakSlab, - 467: &SpruceSlab, - 468: &BirchSlab, - 469: &JungleSlab, - 470: &AcaciaSlab, - 471: &DarkOakSlab, - 472: &StoneSlab, - 473: &SmoothStoneSlab, - 474: &SandstoneSlab, - 475: &CutSandstoneSlab, - 476: &PetrifiedOakSlab, - 477: &CobblestoneSlab, - 478: &BrickSlab, - 479: &StoneBrickSlab, - 480: &NetherBrickSlab, - 481: &QuartzSlab, - 482: &RedSandstoneSlab, - 483: &CutRedSandstoneSlab, - 484: &PurpurSlab, - 485: &SmoothStone, - 486: &SmoothSandstone, - 487: &SmoothQuartz, - 488: &SmoothRedSandstone, - 489: &SpruceFenceGate, - 490: &BirchFenceGate, - 491: &JungleFenceGate, - 492: &AcaciaFenceGate, - 493: &DarkOakFenceGate, - 494: &SpruceFence, - 495: &BirchFence, - 496: &JungleFence, - 497: &AcaciaFence, - 498: &DarkOakFence, - 499: &SpruceDoor, - 500: &BirchDoor, - 501: &JungleDoor, - 502: &AcaciaDoor, - 503: &DarkOakDoor, - 504: &EndRod, - 505: &ChorusPlant, - 506: &ChorusFlower, - 507: &PurpurBlock, - 508: &PurpurPillar, - 509: &PurpurStairs, - 510: &EndStoneBricks, - 511: &Beetroots, - 512: &DirtPath, - 513: &EndGateway, - 514: &RepeatingCommandBlock, - 515: &ChainCommandBlock, - 516: &FrostedIce, - 517: &MagmaBlock, - 518: &NetherWartBlock, - 519: &RedNetherBricks, - 520: &BoneBlock, - 521: &StructureVoid, - 522: &Observer, - 523: &ShulkerBox, - 524: &WhiteShulkerBox, - 525: &OrangeShulkerBox, - 526: &MagentaShulkerBox, - 527: &LightBlueShulkerBox, - 528: &YellowShulkerBox, - 529: &LimeShulkerBox, - 530: &PinkShulkerBox, - 531: &GrayShulkerBox, - 532: &LightGrayShulkerBox, - 533: &CyanShulkerBox, - 534: &PurpleShulkerBox, - 535: &BlueShulkerBox, - 536: &BrownShulkerBox, - 537: &GreenShulkerBox, - 538: &RedShulkerBox, - 539: &BlackShulkerBox, - 540: &WhiteGlazedTerracotta, - 541: &OrangeGlazedTerracotta, - 542: &MagentaGlazedTerracotta, - 543: &LightBlueGlazedTerracotta, - 544: &YellowGlazedTerracotta, - 545: &LimeGlazedTerracotta, - 546: &PinkGlazedTerracotta, - 547: &GrayGlazedTerracotta, - 548: &LightGrayGlazedTerracotta, - 549: &CyanGlazedTerracotta, - 550: &PurpleGlazedTerracotta, - 551: &BlueGlazedTerracotta, - 552: &BrownGlazedTerracotta, - 553: &GreenGlazedTerracotta, - 554: &RedGlazedTerracotta, - 555: &BlackGlazedTerracotta, - 556: &WhiteConcrete, - 557: &OrangeConcrete, - 558: &MagentaConcrete, - 559: &LightBlueConcrete, - 560: &YellowConcrete, - 561: &LimeConcrete, - 562: &PinkConcrete, - 563: &GrayConcrete, - 564: &LightGrayConcrete, - 565: &CyanConcrete, - 566: &PurpleConcrete, - 567: &BlueConcrete, - 568: &BrownConcrete, - 569: &GreenConcrete, - 570: &RedConcrete, - 571: &BlackConcrete, - 572: &WhiteConcretePowder, - 573: &OrangeConcretePowder, - 574: &MagentaConcretePowder, - 575: &LightBlueConcretePowder, - 576: &YellowConcretePowder, - 577: &LimeConcretePowder, - 578: &PinkConcretePowder, - 579: &GrayConcretePowder, - 580: &LightGrayConcretePowder, - 581: &CyanConcretePowder, - 582: &PurpleConcretePowder, - 583: &BlueConcretePowder, - 584: &BrownConcretePowder, - 585: &GreenConcretePowder, - 586: &RedConcretePowder, - 587: &BlackConcretePowder, - 588: &Kelp, - 589: &KelpPlant, - 590: &DriedKelpBlock, - 591: &TurtleEgg, - 592: &DeadTubeCoralBlock, - 593: &DeadBrainCoralBlock, - 594: &DeadBubbleCoralBlock, - 595: &DeadFireCoralBlock, - 596: &DeadHornCoralBlock, - 597: &TubeCoralBlock, - 598: &BrainCoralBlock, - 599: &BubbleCoralBlock, - 600: &FireCoralBlock, - 601: &HornCoralBlock, - 602: &DeadTubeCoral, - 603: &DeadBrainCoral, - 604: &DeadBubbleCoral, - 605: &DeadFireCoral, - 606: &DeadHornCoral, - 607: &TubeCoral, - 608: &BrainCoral, - 609: &BubbleCoral, - 610: &FireCoral, - 611: &HornCoral, - 612: &DeadTubeCoralFan, - 613: &DeadBrainCoralFan, - 614: &DeadBubbleCoralFan, - 615: &DeadFireCoralFan, - 616: &DeadHornCoralFan, - 617: &TubeCoralFan, - 618: &BrainCoralFan, - 619: &BubbleCoralFan, - 620: &FireCoralFan, - 621: &HornCoralFan, - 622: &DeadTubeCoralWallFan, - 623: &DeadBrainCoralWallFan, - 624: &DeadBubbleCoralWallFan, - 625: &DeadFireCoralWallFan, - 626: &DeadHornCoralWallFan, - 627: &TubeCoralWallFan, - 628: &BrainCoralWallFan, - 629: &BubbleCoralWallFan, - 630: &FireCoralWallFan, - 631: &HornCoralWallFan, - 632: &SeaPickle, - 633: &BlueIce, - 634: &Conduit, - 635: &BambooSapling, - 636: &Bamboo, - 637: &PottedBamboo, - 638: &VoidAir, - 639: &CaveAir, - 640: &BubbleColumn, - 641: &PolishedGraniteStairs, - 642: &SmoothRedSandstoneStairs, - 643: &MossyStoneBrickStairs, - 644: &PolishedDioriteStairs, - 645: &MossyCobblestoneStairs, - 646: &EndStoneBrickStairs, - 647: &StoneStairs, - 648: &SmoothSandstoneStairs, - 649: &SmoothQuartzStairs, - 650: &GraniteStairs, - 651: &AndesiteStairs, - 652: &RedNetherBrickStairs, - 653: &PolishedAndesiteStairs, - 654: &DioriteStairs, - 655: &PolishedGraniteSlab, - 656: &SmoothRedSandstoneSlab, - 657: &MossyStoneBrickSlab, - 658: &PolishedDioriteSlab, - 659: &MossyCobblestoneSlab, - 660: &EndStoneBrickSlab, - 661: &SmoothSandstoneSlab, - 662: &SmoothQuartzSlab, - 663: &GraniteSlab, - 664: &AndesiteSlab, - 665: &RedNetherBrickSlab, - 666: &PolishedAndesiteSlab, - 667: &DioriteSlab, - 668: &BrickWall, - 669: &PrismarineWall, - 670: &RedSandstoneWall, - 671: &MossyStoneBrickWall, - 672: &GraniteWall, - 673: &StoneBrickWall, - 674: &NetherBrickWall, - 675: &AndesiteWall, - 676: &RedNetherBrickWall, - 677: &SandstoneWall, - 678: &EndStoneBrickWall, - 679: &DioriteWall, - 680: &Scaffolding, - 681: &Loom, - 682: &Barrel, - 683: &Smoker, - 684: &BlastFurnace, - 685: &CartographyTable, - 686: &FletchingTable, - 687: &Grindstone, - 688: &Lectern, - 689: &SmithingTable, - 690: &Stonecutter, - 691: &Bell, - 692: &Lantern, - 693: &SoulLantern, - 694: &Campfire, - 695: &SoulCampfire, - 696: &SweetBerryBush, - 697: &WarpedStem, - 698: &StrippedWarpedStem, - 699: &WarpedHyphae, - 700: &StrippedWarpedHyphae, - 701: &WarpedNylium, - 702: &WarpedFungus, - 703: &WarpedWartBlock, - 704: &WarpedRoots, - 705: &NetherSprouts, - 706: &CrimsonStem, - 707: &StrippedCrimsonStem, - 708: &CrimsonHyphae, - 709: &StrippedCrimsonHyphae, - 710: &CrimsonNylium, - 711: &CrimsonFungus, - 712: &Shroomlight, - 713: &WeepingVines, - 714: &WeepingVinesPlant, - 715: &TwistingVines, - 716: &TwistingVinesPlant, - 717: &CrimsonRoots, - 718: &CrimsonPlanks, - 719: &WarpedPlanks, - 720: &CrimsonSlab, - 721: &WarpedSlab, - 722: &CrimsonPressurePlate, - 723: &WarpedPressurePlate, - 724: &CrimsonFence, - 725: &WarpedFence, - 726: &CrimsonTrapdoor, - 727: &WarpedTrapdoor, - 728: &CrimsonFenceGate, - 729: &WarpedFenceGate, - 730: &CrimsonStairs, - 731: &WarpedStairs, - 732: &CrimsonButton, - 733: &WarpedButton, - 734: &CrimsonDoor, - 735: &WarpedDoor, - 736: &CrimsonSign, - 737: &WarpedSign, - 738: &CrimsonWallSign, - 739: &WarpedWallSign, - 740: &StructureBlock, - 741: &Jigsaw, - 742: &Composter, - 743: &Target, - 744: &BeeNest, - 745: &Beehive, - 746: &HoneyBlock, - 747: &HoneycombBlock, - 748: &NetheriteBlock, - 749: &AncientDebris, - 750: &CryingObsidian, - 751: &RespawnAnchor, - 752: &PottedCrimsonFungus, - 753: &PottedWarpedFungus, - 754: &PottedCrimsonRoots, - 755: &PottedWarpedRoots, - 756: &Lodestone, - 757: &Blackstone, - 758: &BlackstoneStairs, - 759: &BlackstoneWall, - 760: &BlackstoneSlab, - 761: &PolishedBlackstone, - 762: &PolishedBlackstoneBricks, - 763: &CrackedPolishedBlackstoneBricks, - 764: &ChiseledPolishedBlackstone, - 765: &PolishedBlackstoneBrickSlab, - 766: &PolishedBlackstoneBrickStairs, - 767: &PolishedBlackstoneBrickWall, - 768: &GildedBlackstone, - 769: &PolishedBlackstoneStairs, - 770: &PolishedBlackstoneSlab, - 771: &PolishedBlackstonePressurePlate, - 772: &PolishedBlackstoneButton, - 773: &PolishedBlackstoneWall, - 774: &ChiseledNetherBricks, - 775: &CrackedNetherBricks, - 776: &QuartzBricks, - 777: &Candle, - 778: &WhiteCandle, - 779: &OrangeCandle, - 780: &MagentaCandle, - 781: &LightBlueCandle, - 782: &YellowCandle, - 783: &LimeCandle, - 784: &PinkCandle, - 785: &GrayCandle, - 786: &LightGrayCandle, - 787: &CyanCandle, - 788: &PurpleCandle, - 789: &BlueCandle, - 790: &BrownCandle, - 791: &GreenCandle, - 792: &RedCandle, - 793: &BlackCandle, - 794: &CandleCake, - 795: &WhiteCandleCake, - 796: &OrangeCandleCake, - 797: &MagentaCandleCake, - 798: &LightBlueCandleCake, - 799: &YellowCandleCake, - 800: &LimeCandleCake, - 801: &PinkCandleCake, - 802: &GrayCandleCake, - 803: &LightGrayCandleCake, - 804: &CyanCandleCake, - 805: &PurpleCandleCake, - 806: &BlueCandleCake, - 807: &BrownCandleCake, - 808: &GreenCandleCake, - 809: &RedCandleCake, - 810: &BlackCandleCake, - 811: &AmethystBlock, - 812: &BuddingAmethyst, - 813: &AmethystCluster, - 814: &LargeAmethystBud, - 815: &MediumAmethystBud, - 816: &SmallAmethystBud, - 817: &Tuff, - 818: &Calcite, - 819: &TintedGlass, - 820: &PowderSnow, - 821: &SculkSensor, - 822: &OxidizedCopper, - 823: &WeatheredCopper, - 824: &ExposedCopper, - 825: &CopperBlock, - 826: &CopperOre, - 827: &DeepslateCopperOre, - 828: &OxidizedCutCopper, - 829: &WeatheredCutCopper, - 830: &ExposedCutCopper, - 831: &CutCopper, - 832: &OxidizedCutCopperStairs, - 833: &WeatheredCutCopperStairs, - 834: &ExposedCutCopperStairs, - 835: &CutCopperStairs, - 836: &OxidizedCutCopperSlab, - 837: &WeatheredCutCopperSlab, - 838: &ExposedCutCopperSlab, - 839: &CutCopperSlab, - 840: &WaxedCopperBlock, - 841: &WaxedWeatheredCopper, - 842: &WaxedExposedCopper, - 843: &WaxedOxidizedCopper, - 844: &WaxedOxidizedCutCopper, - 845: &WaxedWeatheredCutCopper, - 846: &WaxedExposedCutCopper, - 847: &WaxedCutCopper, - 848: &WaxedOxidizedCutCopperStairs, - 849: &WaxedWeatheredCutCopperStairs, - 850: &WaxedExposedCutCopperStairs, - 851: &WaxedCutCopperStairs, - 852: &WaxedOxidizedCutCopperSlab, - 853: &WaxedWeatheredCutCopperSlab, - 854: &WaxedExposedCutCopperSlab, - 855: &WaxedCutCopperSlab, - 856: &LightningRod, - 857: &PointedDripstone, - 858: &DripstoneBlock, - 859: &CaveVines, - 860: &CaveVinesPlant, - 861: &SporeBlossom, - 862: &Azalea, - 863: &FloweringAzalea, - 864: &MossCarpet, - 865: &MossBlock, - 866: &BigDripleaf, - 867: &BigDripleafStem, - 868: &SmallDripleaf, - 869: &HangingRoots, - 870: &RootedDirt, - 871: &Deepslate, - 872: &CobbledDeepslate, - 873: &CobbledDeepslateStairs, - 874: &CobbledDeepslateSlab, - 875: &CobbledDeepslateWall, - 876: &PolishedDeepslate, - 877: &PolishedDeepslateStairs, - 878: &PolishedDeepslateSlab, - 879: &PolishedDeepslateWall, - 880: &DeepslateTiles, - 881: &DeepslateTileStairs, - 882: &DeepslateTileSlab, - 883: &DeepslateTileWall, - 884: &DeepslateBricks, - 885: &DeepslateBrickStairs, - 886: &DeepslateBrickSlab, - 887: &DeepslateBrickWall, - 888: &ChiseledDeepslate, - 889: &CrackedDeepslateBricks, - 890: &CrackedDeepslateTiles, - 891: &InfestedDeepslate, - 892: &SmoothBasalt, - 893: &RawIronBlock, - 894: &RawCopperBlock, - 895: &RawGoldBlock, - 896: &PottedAzaleaBush, - 897: &PottedFloweringAzaleaBush, -} - -// StateID maps all possible state IDs to a corresponding block ID. -var StateID = map[uint32]ID{ - 0: 0, - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - 8: 8, - 9: 8, - 10: 9, - 11: 10, - 12: 11, - 13: 11, - 14: 12, - 15: 13, - 16: 14, - 17: 15, - 18: 16, - 19: 17, - 20: 18, - 21: 19, - 22: 19, - 23: 20, - 24: 20, - 25: 21, - 26: 21, - 27: 22, - 28: 22, - 29: 23, - 30: 23, - 31: 24, - 32: 24, - 33: 25, - 34: 26, - 35: 26, - 36: 26, - 37: 26, - 38: 26, - 39: 26, - 40: 26, - 41: 26, - 42: 26, - 43: 26, - 44: 26, - 45: 26, - 46: 26, - 47: 26, - 48: 26, - 49: 26, - 50: 27, - 51: 27, - 52: 27, - 53: 27, - 54: 27, - 55: 27, - 56: 27, - 57: 27, - 58: 27, - 59: 27, - 60: 27, - 61: 27, - 62: 27, - 63: 27, - 64: 27, - 65: 27, - 66: 28, - 67: 29, - 68: 30, - 69: 31, - 70: 32, - 71: 33, - 72: 34, - 73: 35, - 74: 36, - 75: 37, - 76: 38, - 77: 38, - 78: 38, - 79: 39, - 80: 39, - 81: 39, - 82: 40, - 83: 40, - 84: 40, - 85: 41, - 86: 41, - 87: 41, - 88: 42, - 89: 42, - 90: 42, - 91: 43, - 92: 43, - 93: 43, - 94: 44, - 95: 44, - 96: 44, - 97: 45, - 98: 45, - 99: 45, - 100: 46, - 101: 46, - 102: 46, - 103: 47, - 104: 47, - 105: 47, - 106: 48, - 107: 48, - 108: 48, - 109: 49, - 110: 49, - 111: 49, - 112: 50, - 113: 50, - 114: 50, - 115: 51, - 116: 51, - 117: 51, - 118: 52, - 119: 52, - 120: 52, - 121: 53, - 122: 53, - 123: 53, - 124: 54, - 125: 54, - 126: 54, - 127: 55, - 128: 55, - 129: 55, - 130: 56, - 131: 56, - 132: 56, - 133: 57, - 134: 57, - 135: 57, - 136: 58, - 137: 58, - 138: 58, - 139: 59, - 140: 59, - 141: 59, - 142: 60, - 143: 60, - 144: 60, - 145: 61, - 146: 61, - 147: 61, - 148: 62, - 149: 62, - 150: 62, - 151: 62, - 152: 62, - 153: 62, - 154: 62, - 155: 62, - 156: 62, - 157: 62, - 158: 62, - 159: 62, - 160: 62, - 161: 62, - 162: 63, - 163: 63, - 164: 63, - 165: 63, - 166: 63, - 167: 63, - 168: 63, - 169: 63, - 170: 63, - 171: 63, - 172: 63, - 173: 63, - 174: 63, - 175: 63, - 176: 64, - 177: 64, - 178: 64, - 179: 64, - 180: 64, - 181: 64, - 182: 64, - 183: 64, - 184: 64, - 185: 64, - 186: 64, - 187: 64, - 188: 64, - 189: 64, - 190: 65, - 191: 65, - 192: 65, - 193: 65, - 194: 65, - 195: 65, - 196: 65, - 197: 65, - 198: 65, - 199: 65, - 200: 65, - 201: 65, - 202: 65, - 203: 65, - 204: 66, - 205: 66, - 206: 66, - 207: 66, - 208: 66, - 209: 66, - 210: 66, - 211: 66, - 212: 66, - 213: 66, - 214: 66, - 215: 66, - 216: 66, - 217: 66, - 218: 67, - 219: 67, - 220: 67, - 221: 67, - 222: 67, - 223: 67, - 224: 67, - 225: 67, - 226: 67, - 227: 67, - 228: 67, - 229: 67, - 230: 67, - 231: 67, - 232: 68, - 233: 68, - 234: 68, - 235: 68, - 236: 68, - 237: 68, - 238: 68, - 239: 68, - 240: 68, - 241: 68, - 242: 68, - 243: 68, - 244: 68, - 245: 68, - 246: 69, - 247: 69, - 248: 69, - 249: 69, - 250: 69, - 251: 69, - 252: 69, - 253: 69, - 254: 69, - 255: 69, - 256: 69, - 257: 69, - 258: 69, - 259: 69, - 260: 70, - 261: 71, - 262: 72, - 263: 73, - 264: 74, - 265: 75, - 266: 76, - 267: 76, - 268: 76, - 269: 76, - 270: 76, - 271: 76, - 272: 76, - 273: 76, - 274: 76, - 275: 76, - 276: 76, - 277: 76, - 278: 77, - 279: 78, - 280: 79, - 281: 80, - 282: 80, - 283: 80, - 284: 80, - 285: 80, - 286: 80, - 287: 80, - 288: 80, - 289: 80, - 290: 80, - 291: 80, - 292: 80, - 293: 80, - 294: 80, - 295: 80, - 296: 80, - 297: 80, - 298: 80, - 299: 80, - 300: 80, - 301: 80, - 302: 80, - 303: 80, - 304: 80, - 305: 80, - 306: 80, - 307: 80, - 308: 80, - 309: 80, - 310: 80, - 311: 80, - 312: 80, - 313: 80, - 314: 80, - 315: 80, - 316: 80, - 317: 80, - 318: 80, - 319: 80, - 320: 80, - 321: 80, - 322: 80, - 323: 80, - 324: 80, - 325: 80, - 326: 80, - 327: 80, - 328: 80, - 329: 80, - 330: 80, - 331: 80, - 332: 80, - 333: 80, - 334: 80, - 335: 80, - 336: 80, - 337: 80, - 338: 80, - 339: 80, - 340: 80, - 341: 80, - 342: 80, - 343: 80, - 344: 80, - 345: 80, - 346: 80, - 347: 80, - 348: 80, - 349: 80, - 350: 80, - 351: 80, - 352: 80, - 353: 80, - 354: 80, - 355: 80, - 356: 80, - 357: 80, - 358: 80, - 359: 80, - 360: 80, - 361: 80, - 362: 80, - 363: 80, - 364: 80, - 365: 80, - 366: 80, - 367: 80, - 368: 80, - 369: 80, - 370: 80, - 371: 80, - 372: 80, - 373: 80, - 374: 80, - 375: 80, - 376: 80, - 377: 80, - 378: 80, - 379: 80, - 380: 80, - 381: 80, - 382: 80, - 383: 80, - 384: 80, - 385: 80, - 386: 80, - 387: 80, - 388: 80, - 389: 80, - 390: 80, - 391: 80, - 392: 80, - 393: 80, - 394: 80, - 395: 80, - 396: 80, - 397: 80, - 398: 80, - 399: 80, - 400: 80, - 401: 80, - 402: 80, - 403: 80, - 404: 80, - 405: 80, - 406: 80, - 407: 80, - 408: 80, - 409: 80, - 410: 80, - 411: 80, - 412: 80, - 413: 80, - 414: 80, - 415: 80, - 416: 80, - 417: 80, - 418: 80, - 419: 80, - 420: 80, - 421: 80, - 422: 80, - 423: 80, - 424: 80, - 425: 80, - 426: 80, - 427: 80, - 428: 80, - 429: 80, - 430: 80, - 431: 80, - 432: 80, - 433: 80, - 434: 80, - 435: 80, - 436: 80, - 437: 80, - 438: 80, - 439: 80, - 440: 80, - 441: 80, - 442: 80, - 443: 80, - 444: 80, - 445: 80, - 446: 80, - 447: 80, - 448: 80, - 449: 80, - 450: 80, - 451: 80, - 452: 80, - 453: 80, - 454: 80, - 455: 80, - 456: 80, - 457: 80, - 458: 80, - 459: 80, - 460: 80, - 461: 80, - 462: 80, - 463: 80, - 464: 80, - 465: 80, - 466: 80, - 467: 80, - 468: 80, - 469: 80, - 470: 80, - 471: 80, - 472: 80, - 473: 80, - 474: 80, - 475: 80, - 476: 80, - 477: 80, - 478: 80, - 479: 80, - 480: 80, - 481: 80, - 482: 80, - 483: 80, - 484: 80, - 485: 80, - 486: 80, - 487: 80, - 488: 80, - 489: 80, - 490: 80, - 491: 80, - 492: 80, - 493: 80, - 494: 80, - 495: 80, - 496: 80, - 497: 80, - 498: 80, - 499: 80, - 500: 80, - 501: 80, - 502: 80, - 503: 80, - 504: 80, - 505: 80, - 506: 80, - 507: 80, - 508: 80, - 509: 80, - 510: 80, - 511: 80, - 512: 80, - 513: 80, - 514: 80, - 515: 80, - 516: 80, - 517: 80, - 518: 80, - 519: 80, - 520: 80, - 521: 80, - 522: 80, - 523: 80, - 524: 80, - 525: 80, - 526: 80, - 527: 80, - 528: 80, - 529: 80, - 530: 80, - 531: 80, - 532: 80, - 533: 80, - 534: 80, - 535: 80, - 536: 80, - 537: 80, - 538: 80, - 539: 80, - 540: 80, - 541: 80, - 542: 80, - 543: 80, - 544: 80, - 545: 80, - 546: 80, - 547: 80, - 548: 80, - 549: 80, - 550: 80, - 551: 80, - 552: 80, - 553: 80, - 554: 80, - 555: 80, - 556: 80, - 557: 80, - 558: 80, - 559: 80, - 560: 80, - 561: 80, - 562: 80, - 563: 80, - 564: 80, - 565: 80, - 566: 80, - 567: 80, - 568: 80, - 569: 80, - 570: 80, - 571: 80, - 572: 80, - 573: 80, - 574: 80, - 575: 80, - 576: 80, - 577: 80, - 578: 80, - 579: 80, - 580: 80, - 581: 80, - 582: 80, - 583: 80, - 584: 80, - 585: 80, - 586: 80, - 587: 80, - 588: 80, - 589: 80, - 590: 80, - 591: 80, - 592: 80, - 593: 80, - 594: 80, - 595: 80, - 596: 80, - 597: 80, - 598: 80, - 599: 80, - 600: 80, - 601: 80, - 602: 80, - 603: 80, - 604: 80, - 605: 80, - 606: 80, - 607: 80, - 608: 80, - 609: 80, - 610: 80, - 611: 80, - 612: 80, - 613: 80, - 614: 80, - 615: 80, - 616: 80, - 617: 80, - 618: 80, - 619: 80, - 620: 80, - 621: 80, - 622: 80, - 623: 80, - 624: 80, - 625: 80, - 626: 80, - 627: 80, - 628: 80, - 629: 80, - 630: 80, - 631: 80, - 632: 80, - 633: 80, - 634: 80, - 635: 80, - 636: 80, - 637: 80, - 638: 80, - 639: 80, - 640: 80, - 641: 80, - 642: 80, - 643: 80, - 644: 80, - 645: 80, - 646: 80, - 647: 80, - 648: 80, - 649: 80, - 650: 80, - 651: 80, - 652: 80, - 653: 80, - 654: 80, - 655: 80, - 656: 80, - 657: 80, - 658: 80, - 659: 80, - 660: 80, - 661: 80, - 662: 80, - 663: 80, - 664: 80, - 665: 80, - 666: 80, - 667: 80, - 668: 80, - 669: 80, - 670: 80, - 671: 80, - 672: 80, - 673: 80, - 674: 80, - 675: 80, - 676: 80, - 677: 80, - 678: 80, - 679: 80, - 680: 80, - 681: 80, - 682: 80, - 683: 80, - 684: 80, - 685: 80, - 686: 80, - 687: 80, - 688: 80, - 689: 80, - 690: 80, - 691: 80, - 692: 80, - 693: 80, - 694: 80, - 695: 80, - 696: 80, - 697: 80, - 698: 80, - 699: 80, - 700: 80, - 701: 80, - 702: 80, - 703: 80, - 704: 80, - 705: 80, - 706: 80, - 707: 80, - 708: 80, - 709: 80, - 710: 80, - 711: 80, - 712: 80, - 713: 80, - 714: 80, - 715: 80, - 716: 80, - 717: 80, - 718: 80, - 719: 80, - 720: 80, - 721: 80, - 722: 80, - 723: 80, - 724: 80, - 725: 80, - 726: 80, - 727: 80, - 728: 80, - 729: 80, - 730: 80, - 731: 80, - 732: 80, - 733: 80, - 734: 80, - 735: 80, - 736: 80, - 737: 80, - 738: 80, - 739: 80, - 740: 80, - 741: 80, - 742: 80, - 743: 80, - 744: 80, - 745: 80, - 746: 80, - 747: 80, - 748: 80, - 749: 80, - 750: 80, - 751: 80, - 752: 80, - 753: 80, - 754: 80, - 755: 80, - 756: 80, - 757: 80, - 758: 80, - 759: 80, - 760: 80, - 761: 80, - 762: 80, - 763: 80, - 764: 80, - 765: 80, - 766: 80, - 767: 80, - 768: 80, - 769: 80, - 770: 80, - 771: 80, - 772: 80, - 773: 80, - 774: 80, - 775: 80, - 776: 80, - 777: 80, - 778: 80, - 779: 80, - 780: 80, - 781: 80, - 782: 80, - 783: 80, - 784: 80, - 785: 80, - 786: 80, - 787: 80, - 788: 80, - 789: 80, - 790: 80, - 791: 80, - 792: 80, - 793: 80, - 794: 80, - 795: 80, - 796: 80, - 797: 80, - 798: 80, - 799: 80, - 800: 80, - 801: 80, - 802: 80, - 803: 80, - 804: 80, - 805: 80, - 806: 80, - 807: 80, - 808: 80, - 809: 80, - 810: 80, - 811: 80, - 812: 80, - 813: 80, - 814: 80, - 815: 80, - 816: 80, - 817: 80, - 818: 80, - 819: 80, - 820: 80, - 821: 80, - 822: 80, - 823: 80, - 824: 80, - 825: 80, - 826: 80, - 827: 80, - 828: 80, - 829: 80, - 830: 80, - 831: 80, - 832: 80, - 833: 80, - 834: 80, - 835: 80, - 836: 80, - 837: 80, - 838: 80, - 839: 80, - 840: 80, - 841: 80, - 842: 80, - 843: 80, - 844: 80, - 845: 80, - 846: 80, - 847: 80, - 848: 80, - 849: 80, - 850: 80, - 851: 80, - 852: 80, - 853: 80, - 854: 80, - 855: 80, - 856: 80, - 857: 80, - 858: 80, - 859: 80, - 860: 80, - 861: 80, - 862: 80, - 863: 80, - 864: 80, - 865: 80, - 866: 80, - 867: 80, - 868: 80, - 869: 80, - 870: 80, - 871: 80, - 872: 80, - 873: 80, - 874: 80, - 875: 80, - 876: 80, - 877: 80, - 878: 80, - 879: 80, - 880: 80, - 881: 80, - 882: 80, - 883: 80, - 884: 80, - 885: 80, - 886: 80, - 887: 80, - 888: 80, - 889: 80, - 890: 80, - 891: 80, - 892: 80, - 893: 80, - 894: 80, - 895: 80, - 896: 80, - 897: 80, - 898: 80, - 899: 80, - 900: 80, - 901: 80, - 902: 80, - 903: 80, - 904: 80, - 905: 80, - 906: 80, - 907: 80, - 908: 80, - 909: 80, - 910: 80, - 911: 80, - 912: 80, - 913: 80, - 914: 80, - 915: 80, - 916: 80, - 917: 80, - 918: 80, - 919: 80, - 920: 80, - 921: 80, - 922: 80, - 923: 80, - 924: 80, - 925: 80, - 926: 80, - 927: 80, - 928: 80, - 929: 80, - 930: 80, - 931: 80, - 932: 80, - 933: 80, - 934: 80, - 935: 80, - 936: 80, - 937: 80, - 938: 80, - 939: 80, - 940: 80, - 941: 80, - 942: 80, - 943: 80, - 944: 80, - 945: 80, - 946: 80, - 947: 80, - 948: 80, - 949: 80, - 950: 80, - 951: 80, - 952: 80, - 953: 80, - 954: 80, - 955: 80, - 956: 80, - 957: 80, - 958: 80, - 959: 80, - 960: 80, - 961: 80, - 962: 80, - 963: 80, - 964: 80, - 965: 80, - 966: 80, - 967: 80, - 968: 80, - 969: 80, - 970: 80, - 971: 80, - 972: 80, - 973: 80, - 974: 80, - 975: 80, - 976: 80, - 977: 80, - 978: 80, - 979: 80, - 980: 80, - 981: 80, - 982: 80, - 983: 80, - 984: 80, - 985: 80, - 986: 80, - 987: 80, - 988: 80, - 989: 80, - 990: 80, - 991: 80, - 992: 80, - 993: 80, - 994: 80, - 995: 80, - 996: 80, - 997: 80, - 998: 80, - 999: 80, - 1000: 80, - 1001: 80, - 1002: 80, - 1003: 80, - 1004: 80, - 1005: 80, - 1006: 80, - 1007: 80, - 1008: 80, - 1009: 80, - 1010: 80, - 1011: 80, - 1012: 80, - 1013: 80, - 1014: 80, - 1015: 80, - 1016: 80, - 1017: 80, - 1018: 80, - 1019: 80, - 1020: 80, - 1021: 80, - 1022: 80, - 1023: 80, - 1024: 80, - 1025: 80, - 1026: 80, - 1027: 80, - 1028: 80, - 1029: 80, - 1030: 80, - 1031: 80, - 1032: 80, - 1033: 80, - 1034: 80, - 1035: 80, - 1036: 80, - 1037: 80, - 1038: 80, - 1039: 80, - 1040: 80, - 1041: 80, - 1042: 80, - 1043: 80, - 1044: 80, - 1045: 80, - 1046: 80, - 1047: 80, - 1048: 80, - 1049: 80, - 1050: 80, - 1051: 80, - 1052: 80, - 1053: 80, - 1054: 80, - 1055: 80, - 1056: 80, - 1057: 80, - 1058: 80, - 1059: 80, - 1060: 80, - 1061: 80, - 1062: 80, - 1063: 80, - 1064: 80, - 1065: 80, - 1066: 80, - 1067: 80, - 1068: 80, - 1069: 80, - 1070: 80, - 1071: 80, - 1072: 80, - 1073: 80, - 1074: 80, - 1075: 80, - 1076: 80, - 1077: 80, - 1078: 80, - 1079: 80, - 1080: 80, - 1081: 81, - 1082: 81, - 1083: 81, - 1084: 81, - 1085: 81, - 1086: 81, - 1087: 81, - 1088: 81, - 1089: 81, - 1090: 81, - 1091: 81, - 1092: 81, - 1093: 81, - 1094: 81, - 1095: 81, - 1096: 81, - 1097: 82, - 1098: 82, - 1099: 82, - 1100: 82, - 1101: 82, - 1102: 82, - 1103: 82, - 1104: 82, - 1105: 82, - 1106: 82, - 1107: 82, - 1108: 82, - 1109: 82, - 1110: 82, - 1111: 82, - 1112: 82, - 1113: 83, - 1114: 83, - 1115: 83, - 1116: 83, - 1117: 83, - 1118: 83, - 1119: 83, - 1120: 83, - 1121: 83, - 1122: 83, - 1123: 83, - 1124: 83, - 1125: 83, - 1126: 83, - 1127: 83, - 1128: 83, - 1129: 84, - 1130: 84, - 1131: 84, - 1132: 84, - 1133: 84, - 1134: 84, - 1135: 84, - 1136: 84, - 1137: 84, - 1138: 84, - 1139: 84, - 1140: 84, - 1141: 84, - 1142: 84, - 1143: 84, - 1144: 84, - 1145: 85, - 1146: 85, - 1147: 85, - 1148: 85, - 1149: 85, - 1150: 85, - 1151: 85, - 1152: 85, - 1153: 85, - 1154: 85, - 1155: 85, - 1156: 85, - 1157: 85, - 1158: 85, - 1159: 85, - 1160: 85, - 1161: 86, - 1162: 86, - 1163: 86, - 1164: 86, - 1165: 86, - 1166: 86, - 1167: 86, - 1168: 86, - 1169: 86, - 1170: 86, - 1171: 86, - 1172: 86, - 1173: 86, - 1174: 86, - 1175: 86, - 1176: 86, - 1177: 87, - 1178: 87, - 1179: 87, - 1180: 87, - 1181: 87, - 1182: 87, - 1183: 87, - 1184: 87, - 1185: 87, - 1186: 87, - 1187: 87, - 1188: 87, - 1189: 87, - 1190: 87, - 1191: 87, - 1192: 87, - 1193: 88, - 1194: 88, - 1195: 88, - 1196: 88, - 1197: 88, - 1198: 88, - 1199: 88, - 1200: 88, - 1201: 88, - 1202: 88, - 1203: 88, - 1204: 88, - 1205: 88, - 1206: 88, - 1207: 88, - 1208: 88, - 1209: 89, - 1210: 89, - 1211: 89, - 1212: 89, - 1213: 89, - 1214: 89, - 1215: 89, - 1216: 89, - 1217: 89, - 1218: 89, - 1219: 89, - 1220: 89, - 1221: 89, - 1222: 89, - 1223: 89, - 1224: 89, - 1225: 90, - 1226: 90, - 1227: 90, - 1228: 90, - 1229: 90, - 1230: 90, - 1231: 90, - 1232: 90, - 1233: 90, - 1234: 90, - 1235: 90, - 1236: 90, - 1237: 90, - 1238: 90, - 1239: 90, - 1240: 90, - 1241: 91, - 1242: 91, - 1243: 91, - 1244: 91, - 1245: 91, - 1246: 91, - 1247: 91, - 1248: 91, - 1249: 91, - 1250: 91, - 1251: 91, - 1252: 91, - 1253: 91, - 1254: 91, - 1255: 91, - 1256: 91, - 1257: 92, - 1258: 92, - 1259: 92, - 1260: 92, - 1261: 92, - 1262: 92, - 1263: 92, - 1264: 92, - 1265: 92, - 1266: 92, - 1267: 92, - 1268: 92, - 1269: 92, - 1270: 92, - 1271: 92, - 1272: 92, - 1273: 93, - 1274: 93, - 1275: 93, - 1276: 93, - 1277: 93, - 1278: 93, - 1279: 93, - 1280: 93, - 1281: 93, - 1282: 93, - 1283: 93, - 1284: 93, - 1285: 93, - 1286: 93, - 1287: 93, - 1288: 93, - 1289: 94, - 1290: 94, - 1291: 94, - 1292: 94, - 1293: 94, - 1294: 94, - 1295: 94, - 1296: 94, - 1297: 94, - 1298: 94, - 1299: 94, - 1300: 94, - 1301: 94, - 1302: 94, - 1303: 94, - 1304: 94, - 1305: 95, - 1306: 95, - 1307: 95, - 1308: 95, - 1309: 95, - 1310: 95, - 1311: 95, - 1312: 95, - 1313: 95, - 1314: 95, - 1315: 95, - 1316: 95, - 1317: 95, - 1318: 95, - 1319: 95, - 1320: 95, - 1321: 96, - 1322: 96, - 1323: 96, - 1324: 96, - 1325: 96, - 1326: 96, - 1327: 96, - 1328: 96, - 1329: 96, - 1330: 96, - 1331: 96, - 1332: 96, - 1333: 96, - 1334: 96, - 1335: 96, - 1336: 96, - 1337: 97, - 1338: 97, - 1339: 97, - 1340: 97, - 1341: 97, - 1342: 97, - 1343: 97, - 1344: 97, - 1345: 97, - 1346: 97, - 1347: 97, - 1348: 97, - 1349: 97, - 1350: 97, - 1351: 97, - 1352: 97, - 1353: 97, - 1354: 97, - 1355: 97, - 1356: 97, - 1357: 97, - 1358: 97, - 1359: 97, - 1360: 97, - 1361: 98, - 1362: 98, - 1363: 98, - 1364: 98, - 1365: 98, - 1366: 98, - 1367: 98, - 1368: 98, - 1369: 98, - 1370: 98, - 1371: 98, - 1372: 98, - 1373: 98, - 1374: 98, - 1375: 98, - 1376: 98, - 1377: 98, - 1378: 98, - 1379: 98, - 1380: 98, - 1381: 98, - 1382: 98, - 1383: 98, - 1384: 98, - 1385: 99, - 1386: 99, - 1387: 99, - 1388: 99, - 1389: 99, - 1390: 99, - 1391: 99, - 1392: 99, - 1393: 99, - 1394: 99, - 1395: 99, - 1396: 99, - 1397: 100, - 1398: 101, - 1399: 102, - 1400: 103, - 1401: 104, - 1402: 105, - 1403: 105, - 1404: 106, - 1405: 106, - 1406: 106, - 1407: 106, - 1408: 106, - 1409: 106, - 1410: 106, - 1411: 106, - 1412: 106, - 1413: 106, - 1414: 106, - 1415: 106, - 1416: 107, - 1417: 107, - 1418: 107, - 1419: 107, - 1420: 107, - 1421: 107, - 1422: 107, - 1423: 107, - 1424: 107, - 1425: 107, - 1426: 107, - 1427: 107, - 1428: 107, - 1429: 107, - 1430: 107, - 1431: 107, - 1432: 107, - 1433: 107, - 1434: 107, - 1435: 107, - 1436: 107, - 1437: 107, - 1438: 107, - 1439: 107, - 1440: 108, - 1441: 109, - 1442: 110, - 1443: 111, - 1444: 112, - 1445: 113, - 1446: 114, - 1447: 115, - 1448: 116, - 1449: 117, - 1450: 118, - 1451: 119, - 1452: 120, - 1453: 121, - 1454: 122, - 1455: 123, - 1456: 124, - 1457: 124, - 1458: 124, - 1459: 124, - 1460: 124, - 1461: 124, - 1462: 124, - 1463: 124, - 1464: 124, - 1465: 124, - 1466: 124, - 1467: 124, - 1468: 125, - 1469: 126, - 1470: 127, - 1471: 128, - 1472: 129, - 1473: 130, - 1474: 131, - 1475: 132, - 1476: 133, - 1477: 134, - 1478: 135, - 1479: 136, - 1480: 137, - 1481: 138, - 1482: 139, - 1483: 140, - 1484: 141, - 1485: 142, - 1486: 143, - 1487: 143, - 1488: 144, - 1489: 145, - 1490: 146, - 1491: 147, - 1492: 148, - 1493: 148, - 1494: 148, - 1495: 148, - 1496: 149, - 1497: 149, - 1498: 149, - 1499: 149, - 1500: 149, - 1501: 149, - 1502: 149, - 1503: 149, - 1504: 149, - 1505: 149, - 1506: 149, - 1507: 149, - 1508: 149, - 1509: 149, - 1510: 149, - 1511: 149, - 1512: 149, - 1513: 149, - 1514: 149, - 1515: 149, - 1516: 149, - 1517: 149, - 1518: 149, - 1519: 149, - 1520: 149, - 1521: 149, - 1522: 149, - 1523: 149, - 1524: 149, - 1525: 149, - 1526: 149, - 1527: 149, - 1528: 149, - 1529: 149, - 1530: 149, - 1531: 149, - 1532: 149, - 1533: 149, - 1534: 149, - 1535: 149, - 1536: 149, - 1537: 149, - 1538: 149, - 1539: 149, - 1540: 149, - 1541: 149, - 1542: 149, - 1543: 149, - 1544: 149, - 1545: 149, - 1546: 149, - 1547: 149, - 1548: 149, - 1549: 149, - 1550: 149, - 1551: 149, - 1552: 149, - 1553: 149, - 1554: 149, - 1555: 149, - 1556: 149, - 1557: 149, - 1558: 149, - 1559: 149, - 1560: 149, - 1561: 149, - 1562: 149, - 1563: 149, - 1564: 149, - 1565: 149, - 1566: 149, - 1567: 149, - 1568: 149, - 1569: 149, - 1570: 149, - 1571: 149, - 1572: 149, - 1573: 149, - 1574: 149, - 1575: 149, - 1576: 149, - 1577: 149, - 1578: 149, - 1579: 149, - 1580: 149, - 1581: 149, - 1582: 149, - 1583: 149, - 1584: 149, - 1585: 149, - 1586: 149, - 1587: 149, - 1588: 149, - 1589: 149, - 1590: 149, - 1591: 149, - 1592: 149, - 1593: 149, - 1594: 149, - 1595: 149, - 1596: 149, - 1597: 149, - 1598: 149, - 1599: 149, - 1600: 149, - 1601: 149, - 1602: 149, - 1603: 149, - 1604: 149, - 1605: 149, - 1606: 149, - 1607: 149, - 1608: 149, - 1609: 149, - 1610: 149, - 1611: 149, - 1612: 149, - 1613: 149, - 1614: 149, - 1615: 149, - 1616: 149, - 1617: 149, - 1618: 149, - 1619: 149, - 1620: 149, - 1621: 149, - 1622: 149, - 1623: 149, - 1624: 149, - 1625: 149, - 1626: 149, - 1627: 149, - 1628: 149, - 1629: 149, - 1630: 149, - 1631: 149, - 1632: 149, - 1633: 149, - 1634: 149, - 1635: 149, - 1636: 149, - 1637: 149, - 1638: 149, - 1639: 149, - 1640: 149, - 1641: 149, - 1642: 149, - 1643: 149, - 1644: 149, - 1645: 149, - 1646: 149, - 1647: 149, - 1648: 149, - 1649: 149, - 1650: 149, - 1651: 149, - 1652: 149, - 1653: 149, - 1654: 149, - 1655: 149, - 1656: 149, - 1657: 149, - 1658: 149, - 1659: 149, - 1660: 149, - 1661: 149, - 1662: 149, - 1663: 149, - 1664: 149, - 1665: 149, - 1666: 149, - 1667: 149, - 1668: 149, - 1669: 149, - 1670: 149, - 1671: 149, - 1672: 149, - 1673: 149, - 1674: 149, - 1675: 149, - 1676: 149, - 1677: 149, - 1678: 149, - 1679: 149, - 1680: 149, - 1681: 149, - 1682: 149, - 1683: 149, - 1684: 149, - 1685: 149, - 1686: 149, - 1687: 149, - 1688: 149, - 1689: 149, - 1690: 149, - 1691: 149, - 1692: 149, - 1693: 149, - 1694: 149, - 1695: 149, - 1696: 149, - 1697: 149, - 1698: 149, - 1699: 149, - 1700: 149, - 1701: 149, - 1702: 149, - 1703: 149, - 1704: 149, - 1705: 149, - 1706: 149, - 1707: 149, - 1708: 149, - 1709: 149, - 1710: 149, - 1711: 149, - 1712: 149, - 1713: 149, - 1714: 149, - 1715: 149, - 1716: 149, - 1717: 149, - 1718: 149, - 1719: 149, - 1720: 149, - 1721: 149, - 1722: 149, - 1723: 149, - 1724: 149, - 1725: 149, - 1726: 149, - 1727: 149, - 1728: 149, - 1729: 149, - 1730: 149, - 1731: 149, - 1732: 149, - 1733: 149, - 1734: 149, - 1735: 149, - 1736: 149, - 1737: 149, - 1738: 149, - 1739: 149, - 1740: 149, - 1741: 149, - 1742: 149, - 1743: 149, - 1744: 149, - 1745: 149, - 1746: 149, - 1747: 149, - 1748: 149, - 1749: 149, - 1750: 149, - 1751: 149, - 1752: 149, - 1753: 149, - 1754: 149, - 1755: 149, - 1756: 149, - 1757: 149, - 1758: 149, - 1759: 149, - 1760: 149, - 1761: 149, - 1762: 149, - 1763: 149, - 1764: 149, - 1765: 149, - 1766: 149, - 1767: 149, - 1768: 149, - 1769: 149, - 1770: 149, - 1771: 149, - 1772: 149, - 1773: 149, - 1774: 149, - 1775: 149, - 1776: 149, - 1777: 149, - 1778: 149, - 1779: 149, - 1780: 149, - 1781: 149, - 1782: 149, - 1783: 149, - 1784: 149, - 1785: 149, - 1786: 149, - 1787: 149, - 1788: 149, - 1789: 149, - 1790: 149, - 1791: 149, - 1792: 149, - 1793: 149, - 1794: 149, - 1795: 149, - 1796: 149, - 1797: 149, - 1798: 149, - 1799: 149, - 1800: 149, - 1801: 149, - 1802: 149, - 1803: 149, - 1804: 149, - 1805: 149, - 1806: 149, - 1807: 149, - 1808: 149, - 1809: 149, - 1810: 149, - 1811: 149, - 1812: 149, - 1813: 149, - 1814: 149, - 1815: 149, - 1816: 149, - 1817: 149, - 1818: 149, - 1819: 149, - 1820: 149, - 1821: 149, - 1822: 149, - 1823: 149, - 1824: 149, - 1825: 149, - 1826: 149, - 1827: 149, - 1828: 149, - 1829: 149, - 1830: 149, - 1831: 149, - 1832: 149, - 1833: 149, - 1834: 149, - 1835: 149, - 1836: 149, - 1837: 149, - 1838: 149, - 1839: 149, - 1840: 149, - 1841: 149, - 1842: 149, - 1843: 149, - 1844: 149, - 1845: 149, - 1846: 149, - 1847: 149, - 1848: 149, - 1849: 149, - 1850: 149, - 1851: 149, - 1852: 149, - 1853: 149, - 1854: 149, - 1855: 149, - 1856: 149, - 1857: 149, - 1858: 149, - 1859: 149, - 1860: 149, - 1861: 149, - 1862: 149, - 1863: 149, - 1864: 149, - 1865: 149, - 1866: 149, - 1867: 149, - 1868: 149, - 1869: 149, - 1870: 149, - 1871: 149, - 1872: 149, - 1873: 149, - 1874: 149, - 1875: 149, - 1876: 149, - 1877: 149, - 1878: 149, - 1879: 149, - 1880: 149, - 1881: 149, - 1882: 149, - 1883: 149, - 1884: 149, - 1885: 149, - 1886: 149, - 1887: 149, - 1888: 149, - 1889: 149, - 1890: 149, - 1891: 149, - 1892: 149, - 1893: 149, - 1894: 149, - 1895: 149, - 1896: 149, - 1897: 149, - 1898: 149, - 1899: 149, - 1900: 149, - 1901: 149, - 1902: 149, - 1903: 149, - 1904: 149, - 1905: 149, - 1906: 149, - 1907: 149, - 1908: 149, - 1909: 149, - 1910: 149, - 1911: 149, - 1912: 149, - 1913: 149, - 1914: 149, - 1915: 149, - 1916: 149, - 1917: 149, - 1918: 149, - 1919: 149, - 1920: 149, - 1921: 149, - 1922: 149, - 1923: 149, - 1924: 149, - 1925: 149, - 1926: 149, - 1927: 149, - 1928: 149, - 1929: 149, - 1930: 149, - 1931: 149, - 1932: 149, - 1933: 149, - 1934: 149, - 1935: 149, - 1936: 149, - 1937: 149, - 1938: 149, - 1939: 149, - 1940: 149, - 1941: 149, - 1942: 149, - 1943: 149, - 1944: 149, - 1945: 149, - 1946: 149, - 1947: 149, - 1948: 149, - 1949: 149, - 1950: 149, - 1951: 149, - 1952: 149, - 1953: 149, - 1954: 149, - 1955: 149, - 1956: 149, - 1957: 149, - 1958: 149, - 1959: 149, - 1960: 149, - 1961: 149, - 1962: 149, - 1963: 149, - 1964: 149, - 1965: 149, - 1966: 149, - 1967: 149, - 1968: 149, - 1969: 149, - 1970: 149, - 1971: 149, - 1972: 149, - 1973: 149, - 1974: 149, - 1975: 149, - 1976: 149, - 1977: 149, - 1978: 149, - 1979: 149, - 1980: 149, - 1981: 149, - 1982: 149, - 1983: 149, - 1984: 149, - 1985: 149, - 1986: 149, - 1987: 149, - 1988: 149, - 1989: 149, - 1990: 149, - 1991: 149, - 1992: 149, - 1993: 149, - 1994: 149, - 1995: 149, - 1996: 149, - 1997: 149, - 1998: 149, - 1999: 149, - 2000: 149, - 2001: 149, - 2002: 149, - 2003: 149, - 2004: 149, - 2005: 149, - 2006: 149, - 2007: 149, - 2008: 150, - 2009: 151, - 2010: 152, - 2011: 152, - 2012: 152, - 2013: 152, - 2014: 152, - 2015: 152, - 2016: 152, - 2017: 152, - 2018: 152, - 2019: 152, - 2020: 152, - 2021: 152, - 2022: 152, - 2023: 152, - 2024: 152, - 2025: 152, - 2026: 152, - 2027: 152, - 2028: 152, - 2029: 152, - 2030: 152, - 2031: 152, - 2032: 152, - 2033: 152, - 2034: 152, - 2035: 152, - 2036: 152, - 2037: 152, - 2038: 152, - 2039: 152, - 2040: 152, - 2041: 152, - 2042: 152, - 2043: 152, - 2044: 152, - 2045: 152, - 2046: 152, - 2047: 152, - 2048: 152, - 2049: 152, - 2050: 152, - 2051: 152, - 2052: 152, - 2053: 152, - 2054: 152, - 2055: 152, - 2056: 152, - 2057: 152, - 2058: 152, - 2059: 152, - 2060: 152, - 2061: 152, - 2062: 152, - 2063: 152, - 2064: 152, - 2065: 152, - 2066: 152, - 2067: 152, - 2068: 152, - 2069: 152, - 2070: 152, - 2071: 152, - 2072: 152, - 2073: 152, - 2074: 152, - 2075: 152, - 2076: 152, - 2077: 152, - 2078: 152, - 2079: 152, - 2080: 152, - 2081: 152, - 2082: 152, - 2083: 152, - 2084: 152, - 2085: 152, - 2086: 152, - 2087: 152, - 2088: 152, - 2089: 152, - 2090: 153, - 2091: 153, - 2092: 153, - 2093: 153, - 2094: 153, - 2095: 153, - 2096: 153, - 2097: 153, - 2098: 153, - 2099: 153, - 2100: 153, - 2101: 153, - 2102: 153, - 2103: 153, - 2104: 153, - 2105: 153, - 2106: 153, - 2107: 153, - 2108: 153, - 2109: 153, - 2110: 153, - 2111: 153, - 2112: 153, - 2113: 153, - 2114: 154, - 2115: 154, - 2116: 154, - 2117: 154, - 2118: 154, - 2119: 154, - 2120: 154, - 2121: 154, - 2122: 154, - 2123: 154, - 2124: 154, - 2125: 154, - 2126: 154, - 2127: 154, - 2128: 154, - 2129: 154, - 2130: 154, - 2131: 154, - 2132: 154, - 2133: 154, - 2134: 154, - 2135: 154, - 2136: 154, - 2137: 154, - 2138: 154, - 2139: 154, - 2140: 154, - 2141: 154, - 2142: 154, - 2143: 154, - 2144: 154, - 2145: 154, - 2146: 154, - 2147: 154, - 2148: 154, - 2149: 154, - 2150: 154, - 2151: 154, - 2152: 154, - 2153: 154, - 2154: 154, - 2155: 154, - 2156: 154, - 2157: 154, - 2158: 154, - 2159: 154, - 2160: 154, - 2161: 154, - 2162: 154, - 2163: 154, - 2164: 154, - 2165: 154, - 2166: 154, - 2167: 154, - 2168: 154, - 2169: 154, - 2170: 154, - 2171: 154, - 2172: 154, - 2173: 154, - 2174: 154, - 2175: 154, - 2176: 154, - 2177: 154, - 2178: 154, - 2179: 154, - 2180: 154, - 2181: 154, - 2182: 154, - 2183: 154, - 2184: 154, - 2185: 154, - 2186: 154, - 2187: 154, - 2188: 154, - 2189: 154, - 2190: 154, - 2191: 154, - 2192: 154, - 2193: 154, - 2194: 154, - 2195: 154, - 2196: 154, - 2197: 154, - 2198: 154, - 2199: 154, - 2200: 154, - 2201: 154, - 2202: 154, - 2203: 154, - 2204: 154, - 2205: 154, - 2206: 154, - 2207: 154, - 2208: 154, - 2209: 154, - 2210: 154, - 2211: 154, - 2212: 154, - 2213: 154, - 2214: 154, - 2215: 154, - 2216: 154, - 2217: 154, - 2218: 154, - 2219: 154, - 2220: 154, - 2221: 154, - 2222: 154, - 2223: 154, - 2224: 154, - 2225: 154, - 2226: 154, - 2227: 154, - 2228: 154, - 2229: 154, - 2230: 154, - 2231: 154, - 2232: 154, - 2233: 154, - 2234: 154, - 2235: 154, - 2236: 154, - 2237: 154, - 2238: 154, - 2239: 154, - 2240: 154, - 2241: 154, - 2242: 154, - 2243: 154, - 2244: 154, - 2245: 154, - 2246: 154, - 2247: 154, - 2248: 154, - 2249: 154, - 2250: 154, - 2251: 154, - 2252: 154, - 2253: 154, - 2254: 154, - 2255: 154, - 2256: 154, - 2257: 154, - 2258: 154, - 2259: 154, - 2260: 154, - 2261: 154, - 2262: 154, - 2263: 154, - 2264: 154, - 2265: 154, - 2266: 154, - 2267: 154, - 2268: 154, - 2269: 154, - 2270: 154, - 2271: 154, - 2272: 154, - 2273: 154, - 2274: 154, - 2275: 154, - 2276: 154, - 2277: 154, - 2278: 154, - 2279: 154, - 2280: 154, - 2281: 154, - 2282: 154, - 2283: 154, - 2284: 154, - 2285: 154, - 2286: 154, - 2287: 154, - 2288: 154, - 2289: 154, - 2290: 154, - 2291: 154, - 2292: 154, - 2293: 154, - 2294: 154, - 2295: 154, - 2296: 154, - 2297: 154, - 2298: 154, - 2299: 154, - 2300: 154, - 2301: 154, - 2302: 154, - 2303: 154, - 2304: 154, - 2305: 154, - 2306: 154, - 2307: 154, - 2308: 154, - 2309: 154, - 2310: 154, - 2311: 154, - 2312: 154, - 2313: 154, - 2314: 154, - 2315: 154, - 2316: 154, - 2317: 154, - 2318: 154, - 2319: 154, - 2320: 154, - 2321: 154, - 2322: 154, - 2323: 154, - 2324: 154, - 2325: 154, - 2326: 154, - 2327: 154, - 2328: 154, - 2329: 154, - 2330: 154, - 2331: 154, - 2332: 154, - 2333: 154, - 2334: 154, - 2335: 154, - 2336: 154, - 2337: 154, - 2338: 154, - 2339: 154, - 2340: 154, - 2341: 154, - 2342: 154, - 2343: 154, - 2344: 154, - 2345: 154, - 2346: 154, - 2347: 154, - 2348: 154, - 2349: 154, - 2350: 154, - 2351: 154, - 2352: 154, - 2353: 154, - 2354: 154, - 2355: 154, - 2356: 154, - 2357: 154, - 2358: 154, - 2359: 154, - 2360: 154, - 2361: 154, - 2362: 154, - 2363: 154, - 2364: 154, - 2365: 154, - 2366: 154, - 2367: 154, - 2368: 154, - 2369: 154, - 2370: 154, - 2371: 154, - 2372: 154, - 2373: 154, - 2374: 154, - 2375: 154, - 2376: 154, - 2377: 154, - 2378: 154, - 2379: 154, - 2380: 154, - 2381: 154, - 2382: 154, - 2383: 154, - 2384: 154, - 2385: 154, - 2386: 154, - 2387: 154, - 2388: 154, - 2389: 154, - 2390: 154, - 2391: 154, - 2392: 154, - 2393: 154, - 2394: 154, - 2395: 154, - 2396: 154, - 2397: 154, - 2398: 154, - 2399: 154, - 2400: 154, - 2401: 154, - 2402: 154, - 2403: 154, - 2404: 154, - 2405: 154, - 2406: 154, - 2407: 154, - 2408: 154, - 2409: 154, - 2410: 154, - 2411: 154, - 2412: 154, - 2413: 154, - 2414: 154, - 2415: 154, - 2416: 154, - 2417: 154, - 2418: 154, - 2419: 154, - 2420: 154, - 2421: 154, - 2422: 154, - 2423: 154, - 2424: 154, - 2425: 154, - 2426: 154, - 2427: 154, - 2428: 154, - 2429: 154, - 2430: 154, - 2431: 154, - 2432: 154, - 2433: 154, - 2434: 154, - 2435: 154, - 2436: 154, - 2437: 154, - 2438: 154, - 2439: 154, - 2440: 154, - 2441: 154, - 2442: 154, - 2443: 154, - 2444: 154, - 2445: 154, - 2446: 154, - 2447: 154, - 2448: 154, - 2449: 154, - 2450: 154, - 2451: 154, - 2452: 154, - 2453: 154, - 2454: 154, - 2455: 154, - 2456: 154, - 2457: 154, - 2458: 154, - 2459: 154, - 2460: 154, - 2461: 154, - 2462: 154, - 2463: 154, - 2464: 154, - 2465: 154, - 2466: 154, - 2467: 154, - 2468: 154, - 2469: 154, - 2470: 154, - 2471: 154, - 2472: 154, - 2473: 154, - 2474: 154, - 2475: 154, - 2476: 154, - 2477: 154, - 2478: 154, - 2479: 154, - 2480: 154, - 2481: 154, - 2482: 154, - 2483: 154, - 2484: 154, - 2485: 154, - 2486: 154, - 2487: 154, - 2488: 154, - 2489: 154, - 2490: 154, - 2491: 154, - 2492: 154, - 2493: 154, - 2494: 154, - 2495: 154, - 2496: 154, - 2497: 154, - 2498: 154, - 2499: 154, - 2500: 154, - 2501: 154, - 2502: 154, - 2503: 154, - 2504: 154, - 2505: 154, - 2506: 154, - 2507: 154, - 2508: 154, - 2509: 154, - 2510: 154, - 2511: 154, - 2512: 154, - 2513: 154, - 2514: 154, - 2515: 154, - 2516: 154, - 2517: 154, - 2518: 154, - 2519: 154, - 2520: 154, - 2521: 154, - 2522: 154, - 2523: 154, - 2524: 154, - 2525: 154, - 2526: 154, - 2527: 154, - 2528: 154, - 2529: 154, - 2530: 154, - 2531: 154, - 2532: 154, - 2533: 154, - 2534: 154, - 2535: 154, - 2536: 154, - 2537: 154, - 2538: 154, - 2539: 154, - 2540: 154, - 2541: 154, - 2542: 154, - 2543: 154, - 2544: 154, - 2545: 154, - 2546: 154, - 2547: 154, - 2548: 154, - 2549: 154, - 2550: 154, - 2551: 154, - 2552: 154, - 2553: 154, - 2554: 154, - 2555: 154, - 2556: 154, - 2557: 154, - 2558: 154, - 2559: 154, - 2560: 154, - 2561: 154, - 2562: 154, - 2563: 154, - 2564: 154, - 2565: 154, - 2566: 154, - 2567: 154, - 2568: 154, - 2569: 154, - 2570: 154, - 2571: 154, - 2572: 154, - 2573: 154, - 2574: 154, - 2575: 154, - 2576: 154, - 2577: 154, - 2578: 154, - 2579: 154, - 2580: 154, - 2581: 154, - 2582: 154, - 2583: 154, - 2584: 154, - 2585: 154, - 2586: 154, - 2587: 154, - 2588: 154, - 2589: 154, - 2590: 154, - 2591: 154, - 2592: 154, - 2593: 154, - 2594: 154, - 2595: 154, - 2596: 154, - 2597: 154, - 2598: 154, - 2599: 154, - 2600: 154, - 2601: 154, - 2602: 154, - 2603: 154, - 2604: 154, - 2605: 154, - 2606: 154, - 2607: 154, - 2608: 154, - 2609: 154, - 2610: 154, - 2611: 154, - 2612: 154, - 2613: 154, - 2614: 154, - 2615: 154, - 2616: 154, - 2617: 154, - 2618: 154, - 2619: 154, - 2620: 154, - 2621: 154, - 2622: 154, - 2623: 154, - 2624: 154, - 2625: 154, - 2626: 154, - 2627: 154, - 2628: 154, - 2629: 154, - 2630: 154, - 2631: 154, - 2632: 154, - 2633: 154, - 2634: 154, - 2635: 154, - 2636: 154, - 2637: 154, - 2638: 154, - 2639: 154, - 2640: 154, - 2641: 154, - 2642: 154, - 2643: 154, - 2644: 154, - 2645: 154, - 2646: 154, - 2647: 154, - 2648: 154, - 2649: 154, - 2650: 154, - 2651: 154, - 2652: 154, - 2653: 154, - 2654: 154, - 2655: 154, - 2656: 154, - 2657: 154, - 2658: 154, - 2659: 154, - 2660: 154, - 2661: 154, - 2662: 154, - 2663: 154, - 2664: 154, - 2665: 154, - 2666: 154, - 2667: 154, - 2668: 154, - 2669: 154, - 2670: 154, - 2671: 154, - 2672: 154, - 2673: 154, - 2674: 154, - 2675: 154, - 2676: 154, - 2677: 154, - 2678: 154, - 2679: 154, - 2680: 154, - 2681: 154, - 2682: 154, - 2683: 154, - 2684: 154, - 2685: 154, - 2686: 154, - 2687: 154, - 2688: 154, - 2689: 154, - 2690: 154, - 2691: 154, - 2692: 154, - 2693: 154, - 2694: 154, - 2695: 154, - 2696: 154, - 2697: 154, - 2698: 154, - 2699: 154, - 2700: 154, - 2701: 154, - 2702: 154, - 2703: 154, - 2704: 154, - 2705: 154, - 2706: 154, - 2707: 154, - 2708: 154, - 2709: 154, - 2710: 154, - 2711: 154, - 2712: 154, - 2713: 154, - 2714: 154, - 2715: 154, - 2716: 154, - 2717: 154, - 2718: 154, - 2719: 154, - 2720: 154, - 2721: 154, - 2722: 154, - 2723: 154, - 2724: 154, - 2725: 154, - 2726: 154, - 2727: 154, - 2728: 154, - 2729: 154, - 2730: 154, - 2731: 154, - 2732: 154, - 2733: 154, - 2734: 154, - 2735: 154, - 2736: 154, - 2737: 154, - 2738: 154, - 2739: 154, - 2740: 154, - 2741: 154, - 2742: 154, - 2743: 154, - 2744: 154, - 2745: 154, - 2746: 154, - 2747: 154, - 2748: 154, - 2749: 154, - 2750: 154, - 2751: 154, - 2752: 154, - 2753: 154, - 2754: 154, - 2755: 154, - 2756: 154, - 2757: 154, - 2758: 154, - 2759: 154, - 2760: 154, - 2761: 154, - 2762: 154, - 2763: 154, - 2764: 154, - 2765: 154, - 2766: 154, - 2767: 154, - 2768: 154, - 2769: 154, - 2770: 154, - 2771: 154, - 2772: 154, - 2773: 154, - 2774: 154, - 2775: 154, - 2776: 154, - 2777: 154, - 2778: 154, - 2779: 154, - 2780: 154, - 2781: 154, - 2782: 154, - 2783: 154, - 2784: 154, - 2785: 154, - 2786: 154, - 2787: 154, - 2788: 154, - 2789: 154, - 2790: 154, - 2791: 154, - 2792: 154, - 2793: 154, - 2794: 154, - 2795: 154, - 2796: 154, - 2797: 154, - 2798: 154, - 2799: 154, - 2800: 154, - 2801: 154, - 2802: 154, - 2803: 154, - 2804: 154, - 2805: 154, - 2806: 154, - 2807: 154, - 2808: 154, - 2809: 154, - 2810: 154, - 2811: 154, - 2812: 154, - 2813: 154, - 2814: 154, - 2815: 154, - 2816: 154, - 2817: 154, - 2818: 154, - 2819: 154, - 2820: 154, - 2821: 154, - 2822: 154, - 2823: 154, - 2824: 154, - 2825: 154, - 2826: 154, - 2827: 154, - 2828: 154, - 2829: 154, - 2830: 154, - 2831: 154, - 2832: 154, - 2833: 154, - 2834: 154, - 2835: 154, - 2836: 154, - 2837: 154, - 2838: 154, - 2839: 154, - 2840: 154, - 2841: 154, - 2842: 154, - 2843: 154, - 2844: 154, - 2845: 154, - 2846: 154, - 2847: 154, - 2848: 154, - 2849: 154, - 2850: 154, - 2851: 154, - 2852: 154, - 2853: 154, - 2854: 154, - 2855: 154, - 2856: 154, - 2857: 154, - 2858: 154, - 2859: 154, - 2860: 154, - 2861: 154, - 2862: 154, - 2863: 154, - 2864: 154, - 2865: 154, - 2866: 154, - 2867: 154, - 2868: 154, - 2869: 154, - 2870: 154, - 2871: 154, - 2872: 154, - 2873: 154, - 2874: 154, - 2875: 154, - 2876: 154, - 2877: 154, - 2878: 154, - 2879: 154, - 2880: 154, - 2881: 154, - 2882: 154, - 2883: 154, - 2884: 154, - 2885: 154, - 2886: 154, - 2887: 154, - 2888: 154, - 2889: 154, - 2890: 154, - 2891: 154, - 2892: 154, - 2893: 154, - 2894: 154, - 2895: 154, - 2896: 154, - 2897: 154, - 2898: 154, - 2899: 154, - 2900: 154, - 2901: 154, - 2902: 154, - 2903: 154, - 2904: 154, - 2905: 154, - 2906: 154, - 2907: 154, - 2908: 154, - 2909: 154, - 2910: 154, - 2911: 154, - 2912: 154, - 2913: 154, - 2914: 154, - 2915: 154, - 2916: 154, - 2917: 154, - 2918: 154, - 2919: 154, - 2920: 154, - 2921: 154, - 2922: 154, - 2923: 154, - 2924: 154, - 2925: 154, - 2926: 154, - 2927: 154, - 2928: 154, - 2929: 154, - 2930: 154, - 2931: 154, - 2932: 154, - 2933: 154, - 2934: 154, - 2935: 154, - 2936: 154, - 2937: 154, - 2938: 154, - 2939: 154, - 2940: 154, - 2941: 154, - 2942: 154, - 2943: 154, - 2944: 154, - 2945: 154, - 2946: 154, - 2947: 154, - 2948: 154, - 2949: 154, - 2950: 154, - 2951: 154, - 2952: 154, - 2953: 154, - 2954: 154, - 2955: 154, - 2956: 154, - 2957: 154, - 2958: 154, - 2959: 154, - 2960: 154, - 2961: 154, - 2962: 154, - 2963: 154, - 2964: 154, - 2965: 154, - 2966: 154, - 2967: 154, - 2968: 154, - 2969: 154, - 2970: 154, - 2971: 154, - 2972: 154, - 2973: 154, - 2974: 154, - 2975: 154, - 2976: 154, - 2977: 154, - 2978: 154, - 2979: 154, - 2980: 154, - 2981: 154, - 2982: 154, - 2983: 154, - 2984: 154, - 2985: 154, - 2986: 154, - 2987: 154, - 2988: 154, - 2989: 154, - 2990: 154, - 2991: 154, - 2992: 154, - 2993: 154, - 2994: 154, - 2995: 154, - 2996: 154, - 2997: 154, - 2998: 154, - 2999: 154, - 3000: 154, - 3001: 154, - 3002: 154, - 3003: 154, - 3004: 154, - 3005: 154, - 3006: 154, - 3007: 154, - 3008: 154, - 3009: 154, - 3010: 154, - 3011: 154, - 3012: 154, - 3013: 154, - 3014: 154, - 3015: 154, - 3016: 154, - 3017: 154, - 3018: 154, - 3019: 154, - 3020: 154, - 3021: 154, - 3022: 154, - 3023: 154, - 3024: 154, - 3025: 154, - 3026: 154, - 3027: 154, - 3028: 154, - 3029: 154, - 3030: 154, - 3031: 154, - 3032: 154, - 3033: 154, - 3034: 154, - 3035: 154, - 3036: 154, - 3037: 154, - 3038: 154, - 3039: 154, - 3040: 154, - 3041: 154, - 3042: 154, - 3043: 154, - 3044: 154, - 3045: 154, - 3046: 154, - 3047: 154, - 3048: 154, - 3049: 154, - 3050: 154, - 3051: 154, - 3052: 154, - 3053: 154, - 3054: 154, - 3055: 154, - 3056: 154, - 3057: 154, - 3058: 154, - 3059: 154, - 3060: 154, - 3061: 154, - 3062: 154, - 3063: 154, - 3064: 154, - 3065: 154, - 3066: 154, - 3067: 154, - 3068: 154, - 3069: 154, - 3070: 154, - 3071: 154, - 3072: 154, - 3073: 154, - 3074: 154, - 3075: 154, - 3076: 154, - 3077: 154, - 3078: 154, - 3079: 154, - 3080: 154, - 3081: 154, - 3082: 154, - 3083: 154, - 3084: 154, - 3085: 154, - 3086: 154, - 3087: 154, - 3088: 154, - 3089: 154, - 3090: 154, - 3091: 154, - 3092: 154, - 3093: 154, - 3094: 154, - 3095: 154, - 3096: 154, - 3097: 154, - 3098: 154, - 3099: 154, - 3100: 154, - 3101: 154, - 3102: 154, - 3103: 154, - 3104: 154, - 3105: 154, - 3106: 154, - 3107: 154, - 3108: 154, - 3109: 154, - 3110: 154, - 3111: 154, - 3112: 154, - 3113: 154, - 3114: 154, - 3115: 154, - 3116: 154, - 3117: 154, - 3118: 154, - 3119: 154, - 3120: 154, - 3121: 154, - 3122: 154, - 3123: 154, - 3124: 154, - 3125: 154, - 3126: 154, - 3127: 154, - 3128: 154, - 3129: 154, - 3130: 154, - 3131: 154, - 3132: 154, - 3133: 154, - 3134: 154, - 3135: 154, - 3136: 154, - 3137: 154, - 3138: 154, - 3139: 154, - 3140: 154, - 3141: 154, - 3142: 154, - 3143: 154, - 3144: 154, - 3145: 154, - 3146: 154, - 3147: 154, - 3148: 154, - 3149: 154, - 3150: 154, - 3151: 154, - 3152: 154, - 3153: 154, - 3154: 154, - 3155: 154, - 3156: 154, - 3157: 154, - 3158: 154, - 3159: 154, - 3160: 154, - 3161: 154, - 3162: 154, - 3163: 154, - 3164: 154, - 3165: 154, - 3166: 154, - 3167: 154, - 3168: 154, - 3169: 154, - 3170: 154, - 3171: 154, - 3172: 154, - 3173: 154, - 3174: 154, - 3175: 154, - 3176: 154, - 3177: 154, - 3178: 154, - 3179: 154, - 3180: 154, - 3181: 154, - 3182: 154, - 3183: 154, - 3184: 154, - 3185: 154, - 3186: 154, - 3187: 154, - 3188: 154, - 3189: 154, - 3190: 154, - 3191: 154, - 3192: 154, - 3193: 154, - 3194: 154, - 3195: 154, - 3196: 154, - 3197: 154, - 3198: 154, - 3199: 154, - 3200: 154, - 3201: 154, - 3202: 154, - 3203: 154, - 3204: 154, - 3205: 154, - 3206: 154, - 3207: 154, - 3208: 154, - 3209: 154, - 3210: 154, - 3211: 154, - 3212: 154, - 3213: 154, - 3214: 154, - 3215: 154, - 3216: 154, - 3217: 154, - 3218: 154, - 3219: 154, - 3220: 154, - 3221: 154, - 3222: 154, - 3223: 154, - 3224: 154, - 3225: 154, - 3226: 154, - 3227: 154, - 3228: 154, - 3229: 154, - 3230: 154, - 3231: 154, - 3232: 154, - 3233: 154, - 3234: 154, - 3235: 154, - 3236: 154, - 3237: 154, - 3238: 154, - 3239: 154, - 3240: 154, - 3241: 154, - 3242: 154, - 3243: 154, - 3244: 154, - 3245: 154, - 3246: 154, - 3247: 154, - 3248: 154, - 3249: 154, - 3250: 154, - 3251: 154, - 3252: 154, - 3253: 154, - 3254: 154, - 3255: 154, - 3256: 154, - 3257: 154, - 3258: 154, - 3259: 154, - 3260: 154, - 3261: 154, - 3262: 154, - 3263: 154, - 3264: 154, - 3265: 154, - 3266: 154, - 3267: 154, - 3268: 154, - 3269: 154, - 3270: 154, - 3271: 154, - 3272: 154, - 3273: 154, - 3274: 154, - 3275: 154, - 3276: 154, - 3277: 154, - 3278: 154, - 3279: 154, - 3280: 154, - 3281: 154, - 3282: 154, - 3283: 154, - 3284: 154, - 3285: 154, - 3286: 154, - 3287: 154, - 3288: 154, - 3289: 154, - 3290: 154, - 3291: 154, - 3292: 154, - 3293: 154, - 3294: 154, - 3295: 154, - 3296: 154, - 3297: 154, - 3298: 154, - 3299: 154, - 3300: 154, - 3301: 154, - 3302: 154, - 3303: 154, - 3304: 154, - 3305: 154, - 3306: 154, - 3307: 154, - 3308: 154, - 3309: 154, - 3310: 154, - 3311: 154, - 3312: 154, - 3313: 154, - 3314: 154, - 3315: 154, - 3316: 154, - 3317: 154, - 3318: 154, - 3319: 154, - 3320: 154, - 3321: 154, - 3322: 154, - 3323: 154, - 3324: 154, - 3325: 154, - 3326: 154, - 3327: 154, - 3328: 154, - 3329: 154, - 3330: 154, - 3331: 154, - 3332: 154, - 3333: 154, - 3334: 154, - 3335: 154, - 3336: 154, - 3337: 154, - 3338: 154, - 3339: 154, - 3340: 154, - 3341: 154, - 3342: 154, - 3343: 154, - 3344: 154, - 3345: 154, - 3346: 154, - 3347: 154, - 3348: 154, - 3349: 154, - 3350: 154, - 3351: 154, - 3352: 154, - 3353: 154, - 3354: 154, - 3355: 154, - 3356: 154, - 3357: 154, - 3358: 154, - 3359: 154, - 3360: 154, - 3361: 154, - 3362: 154, - 3363: 154, - 3364: 154, - 3365: 154, - 3366: 154, - 3367: 154, - 3368: 154, - 3369: 154, - 3370: 154, - 3371: 154, - 3372: 154, - 3373: 154, - 3374: 154, - 3375: 154, - 3376: 154, - 3377: 154, - 3378: 154, - 3379: 154, - 3380: 154, - 3381: 154, - 3382: 154, - 3383: 154, - 3384: 154, - 3385: 154, - 3386: 154, - 3387: 154, - 3388: 154, - 3389: 154, - 3390: 154, - 3391: 154, - 3392: 154, - 3393: 154, - 3394: 154, - 3395: 154, - 3396: 154, - 3397: 154, - 3398: 154, - 3399: 154, - 3400: 154, - 3401: 154, - 3402: 154, - 3403: 154, - 3404: 154, - 3405: 154, - 3406: 154, - 3407: 154, - 3408: 154, - 3409: 154, - 3410: 155, - 3411: 156, - 3412: 157, - 3413: 158, - 3414: 159, - 3415: 159, - 3416: 159, - 3417: 159, - 3418: 159, - 3419: 159, - 3420: 159, - 3421: 159, - 3422: 160, - 3423: 160, - 3424: 160, - 3425: 160, - 3426: 160, - 3427: 160, - 3428: 160, - 3429: 160, - 3430: 161, - 3431: 161, - 3432: 161, - 3433: 161, - 3434: 161, - 3435: 161, - 3436: 161, - 3437: 161, - 3438: 162, - 3439: 162, - 3440: 162, - 3441: 162, - 3442: 162, - 3443: 162, - 3444: 162, - 3445: 162, - 3446: 162, - 3447: 162, - 3448: 162, - 3449: 162, - 3450: 162, - 3451: 162, - 3452: 162, - 3453: 162, - 3454: 162, - 3455: 162, - 3456: 162, - 3457: 162, - 3458: 162, - 3459: 162, - 3460: 162, - 3461: 162, - 3462: 162, - 3463: 162, - 3464: 162, - 3465: 162, - 3466: 162, - 3467: 162, - 3468: 162, - 3469: 162, - 3470: 163, - 3471: 163, - 3472: 163, - 3473: 163, - 3474: 163, - 3475: 163, - 3476: 163, - 3477: 163, - 3478: 163, - 3479: 163, - 3480: 163, - 3481: 163, - 3482: 163, - 3483: 163, - 3484: 163, - 3485: 163, - 3486: 163, - 3487: 163, - 3488: 163, - 3489: 163, - 3490: 163, - 3491: 163, - 3492: 163, - 3493: 163, - 3494: 163, - 3495: 163, - 3496: 163, - 3497: 163, - 3498: 163, - 3499: 163, - 3500: 163, - 3501: 163, - 3502: 164, - 3503: 164, - 3504: 164, - 3505: 164, - 3506: 164, - 3507: 164, - 3508: 164, - 3509: 164, - 3510: 164, - 3511: 164, - 3512: 164, - 3513: 164, - 3514: 164, - 3515: 164, - 3516: 164, - 3517: 164, - 3518: 164, - 3519: 164, - 3520: 164, - 3521: 164, - 3522: 164, - 3523: 164, - 3524: 164, - 3525: 164, - 3526: 164, - 3527: 164, - 3528: 164, - 3529: 164, - 3530: 164, - 3531: 164, - 3532: 164, - 3533: 164, - 3534: 165, - 3535: 165, - 3536: 165, - 3537: 165, - 3538: 165, - 3539: 165, - 3540: 165, - 3541: 165, - 3542: 165, - 3543: 165, - 3544: 165, - 3545: 165, - 3546: 165, - 3547: 165, - 3548: 165, - 3549: 165, - 3550: 165, - 3551: 165, - 3552: 165, - 3553: 165, - 3554: 165, - 3555: 165, - 3556: 165, - 3557: 165, - 3558: 165, - 3559: 165, - 3560: 165, - 3561: 165, - 3562: 165, - 3563: 165, - 3564: 165, - 3565: 165, - 3566: 166, - 3567: 166, - 3568: 166, - 3569: 166, - 3570: 166, - 3571: 166, - 3572: 166, - 3573: 166, - 3574: 166, - 3575: 166, - 3576: 166, - 3577: 166, - 3578: 166, - 3579: 166, - 3580: 166, - 3581: 166, - 3582: 166, - 3583: 166, - 3584: 166, - 3585: 166, - 3586: 166, - 3587: 166, - 3588: 166, - 3589: 166, - 3590: 166, - 3591: 166, - 3592: 166, - 3593: 166, - 3594: 166, - 3595: 166, - 3596: 166, - 3597: 166, - 3598: 167, - 3599: 167, - 3600: 167, - 3601: 167, - 3602: 167, - 3603: 167, - 3604: 167, - 3605: 167, - 3606: 167, - 3607: 167, - 3608: 167, - 3609: 167, - 3610: 167, - 3611: 167, - 3612: 167, - 3613: 167, - 3614: 167, - 3615: 167, - 3616: 167, - 3617: 167, - 3618: 167, - 3619: 167, - 3620: 167, - 3621: 167, - 3622: 167, - 3623: 167, - 3624: 167, - 3625: 167, - 3626: 167, - 3627: 167, - 3628: 167, - 3629: 167, - 3630: 168, - 3631: 168, - 3632: 168, - 3633: 168, - 3634: 168, - 3635: 168, - 3636: 168, - 3637: 168, - 3638: 168, - 3639: 168, - 3640: 168, - 3641: 168, - 3642: 168, - 3643: 168, - 3644: 168, - 3645: 168, - 3646: 168, - 3647: 168, - 3648: 168, - 3649: 168, - 3650: 168, - 3651: 168, - 3652: 168, - 3653: 168, - 3654: 168, - 3655: 168, - 3656: 168, - 3657: 168, - 3658: 168, - 3659: 168, - 3660: 168, - 3661: 168, - 3662: 168, - 3663: 168, - 3664: 168, - 3665: 168, - 3666: 168, - 3667: 168, - 3668: 168, - 3669: 168, - 3670: 168, - 3671: 168, - 3672: 168, - 3673: 168, - 3674: 168, - 3675: 168, - 3676: 168, - 3677: 168, - 3678: 168, - 3679: 168, - 3680: 168, - 3681: 168, - 3682: 168, - 3683: 168, - 3684: 168, - 3685: 168, - 3686: 168, - 3687: 168, - 3688: 168, - 3689: 168, - 3690: 168, - 3691: 168, - 3692: 168, - 3693: 168, - 3694: 169, - 3695: 169, - 3696: 169, - 3697: 169, - 3698: 169, - 3699: 169, - 3700: 169, - 3701: 169, - 3702: 170, - 3703: 170, - 3704: 170, - 3705: 170, - 3706: 170, - 3707: 170, - 3708: 170, - 3709: 170, - 3710: 170, - 3711: 170, - 3712: 170, - 3713: 170, - 3714: 170, - 3715: 170, - 3716: 170, - 3717: 170, - 3718: 170, - 3719: 170, - 3720: 170, - 3721: 170, - 3722: 171, - 3723: 171, - 3724: 171, - 3725: 171, - 3726: 171, - 3727: 171, - 3728: 171, - 3729: 171, - 3730: 171, - 3731: 171, - 3732: 171, - 3733: 171, - 3734: 171, - 3735: 171, - 3736: 171, - 3737: 171, - 3738: 171, - 3739: 171, - 3740: 171, - 3741: 171, - 3742: 171, - 3743: 171, - 3744: 171, - 3745: 171, - 3746: 171, - 3747: 171, - 3748: 171, - 3749: 171, - 3750: 171, - 3751: 171, - 3752: 171, - 3753: 171, - 3754: 171, - 3755: 171, - 3756: 171, - 3757: 171, - 3758: 171, - 3759: 171, - 3760: 171, - 3761: 171, - 3762: 171, - 3763: 171, - 3764: 171, - 3765: 171, - 3766: 171, - 3767: 171, - 3768: 171, - 3769: 171, - 3770: 171, - 3771: 171, - 3772: 171, - 3773: 171, - 3774: 171, - 3775: 171, - 3776: 171, - 3777: 171, - 3778: 171, - 3779: 171, - 3780: 171, - 3781: 171, - 3782: 171, - 3783: 171, - 3784: 171, - 3785: 171, - 3786: 171, - 3787: 171, - 3788: 171, - 3789: 171, - 3790: 171, - 3791: 171, - 3792: 171, - 3793: 171, - 3794: 171, - 3795: 171, - 3796: 171, - 3797: 171, - 3798: 171, - 3799: 171, - 3800: 171, - 3801: 171, - 3802: 172, - 3803: 172, - 3804: 172, - 3805: 172, - 3806: 172, - 3807: 172, - 3808: 172, - 3809: 172, - 3810: 173, - 3811: 173, - 3812: 173, - 3813: 173, - 3814: 173, - 3815: 173, - 3816: 173, - 3817: 173, - 3818: 174, - 3819: 174, - 3820: 174, - 3821: 174, - 3822: 174, - 3823: 174, - 3824: 174, - 3825: 174, - 3826: 175, - 3827: 175, - 3828: 175, - 3829: 175, - 3830: 175, - 3831: 175, - 3832: 175, - 3833: 175, - 3834: 176, - 3835: 176, - 3836: 176, - 3837: 176, - 3838: 176, - 3839: 176, - 3840: 176, - 3841: 176, - 3842: 177, - 3843: 177, - 3844: 177, - 3845: 177, - 3846: 177, - 3847: 177, - 3848: 177, - 3849: 177, - 3850: 178, - 3851: 178, - 3852: 178, - 3853: 178, - 3854: 178, - 3855: 178, - 3856: 178, - 3857: 178, - 3858: 178, - 3859: 178, - 3860: 178, - 3861: 178, - 3862: 178, - 3863: 178, - 3864: 178, - 3865: 178, - 3866: 178, - 3867: 178, - 3868: 178, - 3869: 178, - 3870: 178, - 3871: 178, - 3872: 178, - 3873: 178, - 3874: 179, - 3875: 179, - 3876: 180, - 3877: 180, - 3878: 180, - 3879: 180, - 3880: 180, - 3881: 180, - 3882: 180, - 3883: 180, - 3884: 180, - 3885: 180, - 3886: 180, - 3887: 180, - 3888: 180, - 3889: 180, - 3890: 180, - 3891: 180, - 3892: 180, - 3893: 180, - 3894: 180, - 3895: 180, - 3896: 180, - 3897: 180, - 3898: 180, - 3899: 180, - 3900: 180, - 3901: 180, - 3902: 180, - 3903: 180, - 3904: 180, - 3905: 180, - 3906: 180, - 3907: 180, - 3908: 180, - 3909: 180, - 3910: 180, - 3911: 180, - 3912: 180, - 3913: 180, - 3914: 180, - 3915: 180, - 3916: 180, - 3917: 180, - 3918: 180, - 3919: 180, - 3920: 180, - 3921: 180, - 3922: 180, - 3923: 180, - 3924: 180, - 3925: 180, - 3926: 180, - 3927: 180, - 3928: 180, - 3929: 180, - 3930: 180, - 3931: 180, - 3932: 180, - 3933: 180, - 3934: 180, - 3935: 180, - 3936: 180, - 3937: 180, - 3938: 180, - 3939: 180, - 3940: 181, - 3941: 181, - 3942: 182, - 3943: 182, - 3944: 183, - 3945: 183, - 3946: 184, - 3947: 184, - 3948: 185, - 3949: 185, - 3950: 186, - 3951: 186, - 3952: 187, - 3953: 187, - 3954: 188, - 3955: 188, - 3956: 189, - 3957: 189, - 3958: 190, - 3959: 190, - 3960: 190, - 3961: 190, - 3962: 190, - 3963: 190, - 3964: 190, - 3965: 190, - 3966: 191, - 3967: 191, - 3968: 191, - 3969: 191, - 3970: 191, - 3971: 191, - 3972: 191, - 3973: 191, - 3974: 191, - 3975: 191, - 3976: 191, - 3977: 191, - 3978: 191, - 3979: 191, - 3980: 191, - 3981: 191, - 3982: 191, - 3983: 191, - 3984: 191, - 3985: 191, - 3986: 191, - 3987: 191, - 3988: 191, - 3989: 191, - 3990: 192, - 3991: 192, - 3992: 192, - 3993: 192, - 3994: 192, - 3995: 192, - 3996: 192, - 3997: 192, - 3998: 193, - 3999: 194, - 4000: 195, - 4001: 195, - 4002: 195, - 4003: 195, - 4004: 195, - 4005: 195, - 4006: 195, - 4007: 195, - 4008: 195, - 4009: 195, - 4010: 195, - 4011: 195, - 4012: 195, - 4013: 195, - 4014: 195, - 4015: 195, - 4016: 196, - 4017: 197, - 4018: 197, - 4019: 197, - 4020: 197, - 4021: 197, - 4022: 197, - 4023: 197, - 4024: 197, - 4025: 197, - 4026: 197, - 4027: 197, - 4028: 197, - 4029: 197, - 4030: 197, - 4031: 197, - 4032: 197, - 4033: 198, - 4034: 198, - 4035: 199, - 4036: 199, - 4037: 199, - 4038: 199, - 4039: 199, - 4040: 199, - 4041: 199, - 4042: 199, - 4043: 199, - 4044: 199, - 4045: 199, - 4046: 199, - 4047: 199, - 4048: 199, - 4049: 199, - 4050: 199, - 4051: 199, - 4052: 199, - 4053: 199, - 4054: 199, - 4055: 199, - 4056: 199, - 4057: 199, - 4058: 199, - 4059: 199, - 4060: 199, - 4061: 199, - 4062: 199, - 4063: 199, - 4064: 199, - 4065: 199, - 4066: 199, - 4067: 200, - 4068: 201, - 4069: 202, - 4070: 203, - 4071: 204, - 4072: 204, - 4073: 204, - 4074: 205, - 4075: 205, - 4076: 205, - 4077: 206, - 4078: 207, - 4079: 207, - 4080: 207, - 4081: 207, - 4082: 208, - 4083: 209, - 4084: 209, - 4085: 210, - 4086: 210, - 4087: 210, - 4088: 210, - 4089: 211, - 4090: 211, - 4091: 211, - 4092: 211, - 4093: 212, - 4094: 212, - 4095: 212, - 4096: 212, - 4097: 212, - 4098: 212, - 4099: 212, - 4100: 213, - 4101: 213, - 4102: 213, - 4103: 213, - 4104: 213, - 4105: 213, - 4106: 213, - 4107: 213, - 4108: 213, - 4109: 213, - 4110: 213, - 4111: 213, - 4112: 213, - 4113: 213, - 4114: 213, - 4115: 213, - 4116: 213, - 4117: 213, - 4118: 213, - 4119: 213, - 4120: 213, - 4121: 213, - 4122: 213, - 4123: 213, - 4124: 213, - 4125: 213, - 4126: 213, - 4127: 213, - 4128: 213, - 4129: 213, - 4130: 213, - 4131: 213, - 4132: 213, - 4133: 213, - 4134: 213, - 4135: 213, - 4136: 213, - 4137: 213, - 4138: 213, - 4139: 213, - 4140: 213, - 4141: 213, - 4142: 213, - 4143: 213, - 4144: 213, - 4145: 213, - 4146: 213, - 4147: 213, - 4148: 213, - 4149: 213, - 4150: 213, - 4151: 213, - 4152: 213, - 4153: 213, - 4154: 213, - 4155: 213, - 4156: 213, - 4157: 213, - 4158: 213, - 4159: 213, - 4160: 213, - 4161: 213, - 4162: 213, - 4163: 213, - 4164: 214, - 4165: 215, - 4166: 216, - 4167: 217, - 4168: 218, - 4169: 219, - 4170: 220, - 4171: 221, - 4172: 222, - 4173: 223, - 4174: 224, - 4175: 225, - 4176: 226, - 4177: 227, - 4178: 228, - 4179: 229, - 4180: 230, - 4181: 230, - 4182: 230, - 4183: 230, - 4184: 230, - 4185: 230, - 4186: 230, - 4187: 230, - 4188: 230, - 4189: 230, - 4190: 230, - 4191: 230, - 4192: 230, - 4193: 230, - 4194: 230, - 4195: 230, - 4196: 230, - 4197: 230, - 4198: 230, - 4199: 230, - 4200: 230, - 4201: 230, - 4202: 230, - 4203: 230, - 4204: 230, - 4205: 230, - 4206: 230, - 4207: 230, - 4208: 230, - 4209: 230, - 4210: 230, - 4211: 230, - 4212: 230, - 4213: 230, - 4214: 230, - 4215: 230, - 4216: 230, - 4217: 230, - 4218: 230, - 4219: 230, - 4220: 230, - 4221: 230, - 4222: 230, - 4223: 230, - 4224: 230, - 4225: 230, - 4226: 230, - 4227: 230, - 4228: 230, - 4229: 230, - 4230: 230, - 4231: 230, - 4232: 230, - 4233: 230, - 4234: 230, - 4235: 230, - 4236: 230, - 4237: 230, - 4238: 230, - 4239: 230, - 4240: 230, - 4241: 230, - 4242: 230, - 4243: 230, - 4244: 231, - 4245: 231, - 4246: 231, - 4247: 231, - 4248: 231, - 4249: 231, - 4250: 231, - 4251: 231, - 4252: 231, - 4253: 231, - 4254: 231, - 4255: 231, - 4256: 231, - 4257: 231, - 4258: 231, - 4259: 231, - 4260: 231, - 4261: 231, - 4262: 231, - 4263: 231, - 4264: 231, - 4265: 231, - 4266: 231, - 4267: 231, - 4268: 231, - 4269: 231, - 4270: 231, - 4271: 231, - 4272: 231, - 4273: 231, - 4274: 231, - 4275: 231, - 4276: 231, - 4277: 231, - 4278: 231, - 4279: 231, - 4280: 231, - 4281: 231, - 4282: 231, - 4283: 231, - 4284: 231, - 4285: 231, - 4286: 231, - 4287: 231, - 4288: 231, - 4289: 231, - 4290: 231, - 4291: 231, - 4292: 231, - 4293: 231, - 4294: 231, - 4295: 231, - 4296: 231, - 4297: 231, - 4298: 231, - 4299: 231, - 4300: 231, - 4301: 231, - 4302: 231, - 4303: 231, - 4304: 231, - 4305: 231, - 4306: 231, - 4307: 231, - 4308: 232, - 4309: 232, - 4310: 232, - 4311: 232, - 4312: 232, - 4313: 232, - 4314: 232, - 4315: 232, - 4316: 232, - 4317: 232, - 4318: 232, - 4319: 232, - 4320: 232, - 4321: 232, - 4322: 232, - 4323: 232, - 4324: 232, - 4325: 232, - 4326: 232, - 4327: 232, - 4328: 232, - 4329: 232, - 4330: 232, - 4331: 232, - 4332: 232, - 4333: 232, - 4334: 232, - 4335: 232, - 4336: 232, - 4337: 232, - 4338: 232, - 4339: 232, - 4340: 232, - 4341: 232, - 4342: 232, - 4343: 232, - 4344: 232, - 4345: 232, - 4346: 232, - 4347: 232, - 4348: 232, - 4349: 232, - 4350: 232, - 4351: 232, - 4352: 232, - 4353: 232, - 4354: 232, - 4355: 232, - 4356: 232, - 4357: 232, - 4358: 232, - 4359: 232, - 4360: 232, - 4361: 232, - 4362: 232, - 4363: 232, - 4364: 232, - 4365: 232, - 4366: 232, - 4367: 232, - 4368: 232, - 4369: 232, - 4370: 232, - 4371: 232, - 4372: 233, - 4373: 233, - 4374: 233, - 4375: 233, - 4376: 233, - 4377: 233, - 4378: 233, - 4379: 233, - 4380: 233, - 4381: 233, - 4382: 233, - 4383: 233, - 4384: 233, - 4385: 233, - 4386: 233, - 4387: 233, - 4388: 233, - 4389: 233, - 4390: 233, - 4391: 233, - 4392: 233, - 4393: 233, - 4394: 233, - 4395: 233, - 4396: 233, - 4397: 233, - 4398: 233, - 4399: 233, - 4400: 233, - 4401: 233, - 4402: 233, - 4403: 233, - 4404: 233, - 4405: 233, - 4406: 233, - 4407: 233, - 4408: 233, - 4409: 233, - 4410: 233, - 4411: 233, - 4412: 233, - 4413: 233, - 4414: 233, - 4415: 233, - 4416: 233, - 4417: 233, - 4418: 233, - 4419: 233, - 4420: 233, - 4421: 233, - 4422: 233, - 4423: 233, - 4424: 233, - 4425: 233, - 4426: 233, - 4427: 233, - 4428: 233, - 4429: 233, - 4430: 233, - 4431: 233, - 4432: 233, - 4433: 233, - 4434: 233, - 4435: 233, - 4436: 234, - 4437: 234, - 4438: 234, - 4439: 234, - 4440: 234, - 4441: 234, - 4442: 234, - 4443: 234, - 4444: 234, - 4445: 234, - 4446: 234, - 4447: 234, - 4448: 234, - 4449: 234, - 4450: 234, - 4451: 234, - 4452: 234, - 4453: 234, - 4454: 234, - 4455: 234, - 4456: 234, - 4457: 234, - 4458: 234, - 4459: 234, - 4460: 234, - 4461: 234, - 4462: 234, - 4463: 234, - 4464: 234, - 4465: 234, - 4466: 234, - 4467: 234, - 4468: 234, - 4469: 234, - 4470: 234, - 4471: 234, - 4472: 234, - 4473: 234, - 4474: 234, - 4475: 234, - 4476: 234, - 4477: 234, - 4478: 234, - 4479: 234, - 4480: 234, - 4481: 234, - 4482: 234, - 4483: 234, - 4484: 234, - 4485: 234, - 4486: 234, - 4487: 234, - 4488: 234, - 4489: 234, - 4490: 234, - 4491: 234, - 4492: 234, - 4493: 234, - 4494: 234, - 4495: 234, - 4496: 234, - 4497: 234, - 4498: 234, - 4499: 234, - 4500: 235, - 4501: 235, - 4502: 235, - 4503: 235, - 4504: 235, - 4505: 235, - 4506: 235, - 4507: 235, - 4508: 235, - 4509: 235, - 4510: 235, - 4511: 235, - 4512: 235, - 4513: 235, - 4514: 235, - 4515: 235, - 4516: 235, - 4517: 235, - 4518: 235, - 4519: 235, - 4520: 235, - 4521: 235, - 4522: 235, - 4523: 235, - 4524: 235, - 4525: 235, - 4526: 235, - 4527: 235, - 4528: 235, - 4529: 235, - 4530: 235, - 4531: 235, - 4532: 235, - 4533: 235, - 4534: 235, - 4535: 235, - 4536: 235, - 4537: 235, - 4538: 235, - 4539: 235, - 4540: 235, - 4541: 235, - 4542: 235, - 4543: 235, - 4544: 235, - 4545: 235, - 4546: 235, - 4547: 235, - 4548: 235, - 4549: 235, - 4550: 235, - 4551: 235, - 4552: 235, - 4553: 235, - 4554: 235, - 4555: 235, - 4556: 235, - 4557: 235, - 4558: 235, - 4559: 235, - 4560: 235, - 4561: 235, - 4562: 235, - 4563: 235, - 4564: 236, - 4565: 237, - 4566: 238, - 4567: 239, - 4568: 240, - 4569: 241, - 4570: 242, - 4571: 243, - 4572: 244, - 4573: 245, - 4574: 246, - 4575: 246, - 4576: 246, - 4577: 246, - 4578: 246, - 4579: 246, - 4580: 246, - 4581: 246, - 4582: 246, - 4583: 246, - 4584: 246, - 4585: 246, - 4586: 246, - 4587: 246, - 4588: 246, - 4589: 246, - 4590: 246, - 4591: 246, - 4592: 246, - 4593: 246, - 4594: 246, - 4595: 246, - 4596: 246, - 4597: 246, - 4598: 246, - 4599: 246, - 4600: 246, - 4601: 246, - 4602: 246, - 4603: 246, - 4604: 246, - 4605: 246, - 4606: 246, - 4607: 246, - 4608: 246, - 4609: 246, - 4610: 246, - 4611: 246, - 4612: 246, - 4613: 246, - 4614: 246, - 4615: 246, - 4616: 246, - 4617: 246, - 4618: 246, - 4619: 246, - 4620: 246, - 4621: 246, - 4622: 246, - 4623: 246, - 4624: 246, - 4625: 246, - 4626: 246, - 4627: 246, - 4628: 246, - 4629: 246, - 4630: 246, - 4631: 246, - 4632: 246, - 4633: 246, - 4634: 246, - 4635: 246, - 4636: 246, - 4637: 246, - 4638: 247, - 4639: 247, - 4640: 247, - 4641: 247, - 4642: 247, - 4643: 247, - 4644: 247, - 4645: 247, - 4646: 247, - 4647: 247, - 4648: 247, - 4649: 247, - 4650: 247, - 4651: 247, - 4652: 247, - 4653: 247, - 4654: 247, - 4655: 247, - 4656: 247, - 4657: 247, - 4658: 247, - 4659: 247, - 4660: 247, - 4661: 247, - 4662: 247, - 4663: 247, - 4664: 247, - 4665: 247, - 4666: 247, - 4667: 247, - 4668: 247, - 4669: 247, - 4670: 247, - 4671: 247, - 4672: 247, - 4673: 247, - 4674: 247, - 4675: 247, - 4676: 247, - 4677: 247, - 4678: 247, - 4679: 247, - 4680: 247, - 4681: 247, - 4682: 247, - 4683: 247, - 4684: 247, - 4685: 247, - 4686: 247, - 4687: 247, - 4688: 247, - 4689: 247, - 4690: 247, - 4691: 247, - 4692: 247, - 4693: 247, - 4694: 247, - 4695: 247, - 4696: 247, - 4697: 247, - 4698: 247, - 4699: 247, - 4700: 247, - 4701: 247, - 4702: 248, - 4703: 248, - 4704: 248, - 4705: 248, - 4706: 248, - 4707: 248, - 4708: 248, - 4709: 248, - 4710: 248, - 4711: 248, - 4712: 248, - 4713: 248, - 4714: 248, - 4715: 248, - 4716: 248, - 4717: 248, - 4718: 248, - 4719: 248, - 4720: 248, - 4721: 248, - 4722: 248, - 4723: 248, - 4724: 248, - 4725: 248, - 4726: 248, - 4727: 248, - 4728: 248, - 4729: 248, - 4730: 248, - 4731: 248, - 4732: 248, - 4733: 248, - 4734: 248, - 4735: 248, - 4736: 248, - 4737: 248, - 4738: 248, - 4739: 248, - 4740: 248, - 4741: 248, - 4742: 248, - 4743: 248, - 4744: 248, - 4745: 248, - 4746: 248, - 4747: 248, - 4748: 248, - 4749: 248, - 4750: 248, - 4751: 248, - 4752: 248, - 4753: 248, - 4754: 248, - 4755: 248, - 4756: 248, - 4757: 248, - 4758: 248, - 4759: 248, - 4760: 248, - 4761: 248, - 4762: 248, - 4763: 248, - 4764: 248, - 4765: 248, - 4766: 249, - 4767: 249, - 4768: 249, - 4769: 249, - 4770: 249, - 4771: 249, - 4772: 249, - 4773: 249, - 4774: 249, - 4775: 249, - 4776: 249, - 4777: 249, - 4778: 249, - 4779: 249, - 4780: 249, - 4781: 249, - 4782: 249, - 4783: 249, - 4784: 249, - 4785: 249, - 4786: 249, - 4787: 249, - 4788: 249, - 4789: 249, - 4790: 249, - 4791: 249, - 4792: 249, - 4793: 249, - 4794: 249, - 4795: 249, - 4796: 249, - 4797: 249, - 4798: 250, - 4799: 250, - 4800: 250, - 4801: 250, - 4802: 250, - 4803: 250, - 4804: 251, - 4805: 251, - 4806: 251, - 4807: 251, - 4808: 251, - 4809: 251, - 4810: 251, - 4811: 251, - 4812: 251, - 4813: 251, - 4814: 251, - 4815: 251, - 4816: 251, - 4817: 251, - 4818: 251, - 4819: 251, - 4820: 251, - 4821: 251, - 4822: 251, - 4823: 251, - 4824: 251, - 4825: 251, - 4826: 251, - 4827: 251, - 4828: 251, - 4829: 251, - 4830: 251, - 4831: 251, - 4832: 251, - 4833: 251, - 4834: 251, - 4835: 251, - 4836: 252, - 4837: 253, - 4838: 253, - 4839: 253, - 4840: 253, - 4841: 254, - 4842: 254, - 4843: 254, - 4844: 254, - 4845: 255, - 4846: 255, - 4847: 255, - 4848: 255, - 4849: 255, - 4850: 255, - 4851: 255, - 4852: 255, - 4853: 256, - 4854: 256, - 4855: 256, - 4856: 256, - 4857: 256, - 4858: 256, - 4859: 256, - 4860: 256, - 4861: 257, - 4862: 257, - 4863: 257, - 4864: 257, - 4865: 257, - 4866: 257, - 4867: 257, - 4868: 257, - 4869: 257, - 4870: 257, - 4871: 257, - 4872: 257, - 4873: 257, - 4874: 257, - 4875: 257, - 4876: 257, - 4877: 257, - 4878: 257, - 4879: 257, - 4880: 257, - 4881: 257, - 4882: 257, - 4883: 257, - 4884: 257, - 4885: 257, - 4886: 257, - 4887: 257, - 4888: 257, - 4889: 257, - 4890: 257, - 4891: 257, - 4892: 257, - 4893: 258, - 4894: 258, - 4895: 258, - 4896: 258, - 4897: 258, - 4898: 258, - 4899: 258, - 4900: 258, - 4901: 258, - 4902: 258, - 4903: 258, - 4904: 258, - 4905: 258, - 4906: 258, - 4907: 258, - 4908: 258, - 4909: 258, - 4910: 258, - 4911: 258, - 4912: 258, - 4913: 258, - 4914: 258, - 4915: 258, - 4916: 258, - 4917: 258, - 4918: 258, - 4919: 258, - 4920: 258, - 4921: 258, - 4922: 258, - 4923: 258, - 4924: 258, - 4925: 258, - 4926: 258, - 4927: 258, - 4928: 258, - 4929: 258, - 4930: 258, - 4931: 258, - 4932: 258, - 4933: 258, - 4934: 258, - 4935: 258, - 4936: 258, - 4937: 258, - 4938: 258, - 4939: 258, - 4940: 258, - 4941: 258, - 4942: 258, - 4943: 258, - 4944: 258, - 4945: 258, - 4946: 258, - 4947: 258, - 4948: 258, - 4949: 258, - 4950: 258, - 4951: 258, - 4952: 258, - 4953: 258, - 4954: 258, - 4955: 258, - 4956: 258, - 4957: 258, - 4958: 258, - 4959: 258, - 4960: 258, - 4961: 258, - 4962: 258, - 4963: 258, - 4964: 258, - 4965: 258, - 4966: 258, - 4967: 258, - 4968: 258, - 4969: 258, - 4970: 258, - 4971: 258, - 4972: 258, - 4973: 258, - 4974: 258, - 4975: 258, - 4976: 258, - 4977: 258, - 4978: 258, - 4979: 258, - 4980: 258, - 4981: 258, - 4982: 258, - 4983: 258, - 4984: 258, - 4985: 258, - 4986: 258, - 4987: 258, - 4988: 258, - 4989: 258, - 4990: 258, - 4991: 258, - 4992: 258, - 4993: 258, - 4994: 258, - 4995: 258, - 4996: 258, - 4997: 258, - 4998: 258, - 4999: 258, - 5000: 258, - 5001: 258, - 5002: 258, - 5003: 258, - 5004: 258, - 5005: 258, - 5006: 258, - 5007: 258, - 5008: 258, - 5009: 258, - 5010: 258, - 5011: 258, - 5012: 258, - 5013: 258, - 5014: 258, - 5015: 258, - 5016: 258, - 5017: 258, - 5018: 258, - 5019: 258, - 5020: 258, - 5021: 259, - 5022: 259, - 5023: 259, - 5024: 259, - 5025: 259, - 5026: 259, - 5027: 259, - 5028: 259, - 5029: 259, - 5030: 259, - 5031: 259, - 5032: 259, - 5033: 259, - 5034: 259, - 5035: 259, - 5036: 259, - 5037: 259, - 5038: 259, - 5039: 259, - 5040: 259, - 5041: 259, - 5042: 259, - 5043: 259, - 5044: 259, - 5045: 259, - 5046: 259, - 5047: 259, - 5048: 259, - 5049: 259, - 5050: 259, - 5051: 259, - 5052: 259, - 5053: 260, - 5054: 260, - 5055: 260, - 5056: 260, - 5057: 260, - 5058: 260, - 5059: 260, - 5060: 260, - 5061: 260, - 5062: 260, - 5063: 260, - 5064: 260, - 5065: 260, - 5066: 260, - 5067: 260, - 5068: 260, - 5069: 260, - 5070: 260, - 5071: 260, - 5072: 260, - 5073: 260, - 5074: 260, - 5075: 260, - 5076: 260, - 5077: 260, - 5078: 260, - 5079: 260, - 5080: 260, - 5081: 260, - 5082: 260, - 5083: 260, - 5084: 260, - 5085: 260, - 5086: 260, - 5087: 260, - 5088: 260, - 5089: 260, - 5090: 260, - 5091: 260, - 5092: 260, - 5093: 260, - 5094: 260, - 5095: 260, - 5096: 260, - 5097: 260, - 5098: 260, - 5099: 260, - 5100: 260, - 5101: 260, - 5102: 260, - 5103: 260, - 5104: 260, - 5105: 260, - 5106: 260, - 5107: 260, - 5108: 260, - 5109: 260, - 5110: 260, - 5111: 260, - 5112: 260, - 5113: 260, - 5114: 260, - 5115: 260, - 5116: 260, - 5117: 260, - 5118: 260, - 5119: 260, - 5120: 260, - 5121: 260, - 5122: 260, - 5123: 260, - 5124: 260, - 5125: 260, - 5126: 260, - 5127: 260, - 5128: 260, - 5129: 260, - 5130: 260, - 5131: 260, - 5132: 260, - 5133: 261, - 5134: 261, - 5135: 261, - 5136: 261, - 5137: 261, - 5138: 261, - 5139: 261, - 5140: 261, - 5141: 261, - 5142: 261, - 5143: 261, - 5144: 261, - 5145: 261, - 5146: 261, - 5147: 261, - 5148: 261, - 5149: 261, - 5150: 261, - 5151: 261, - 5152: 261, - 5153: 261, - 5154: 261, - 5155: 261, - 5156: 261, - 5157: 261, - 5158: 261, - 5159: 261, - 5160: 261, - 5161: 261, - 5162: 261, - 5163: 261, - 5164: 261, - 5165: 261, - 5166: 261, - 5167: 261, - 5168: 261, - 5169: 261, - 5170: 261, - 5171: 261, - 5172: 261, - 5173: 261, - 5174: 261, - 5175: 261, - 5176: 261, - 5177: 261, - 5178: 261, - 5179: 261, - 5180: 261, - 5181: 261, - 5182: 261, - 5183: 261, - 5184: 261, - 5185: 261, - 5186: 261, - 5187: 261, - 5188: 261, - 5189: 261, - 5190: 261, - 5191: 261, - 5192: 261, - 5193: 261, - 5194: 261, - 5195: 261, - 5196: 261, - 5197: 261, - 5198: 261, - 5199: 261, - 5200: 261, - 5201: 261, - 5202: 261, - 5203: 261, - 5204: 261, - 5205: 261, - 5206: 261, - 5207: 261, - 5208: 261, - 5209: 261, - 5210: 261, - 5211: 261, - 5212: 261, - 5213: 262, - 5214: 262, - 5215: 263, - 5216: 264, - 5217: 265, - 5218: 265, - 5219: 265, - 5220: 265, - 5221: 265, - 5222: 265, - 5223: 265, - 5224: 265, - 5225: 265, - 5226: 265, - 5227: 265, - 5228: 265, - 5229: 265, - 5230: 265, - 5231: 265, - 5232: 265, - 5233: 265, - 5234: 265, - 5235: 265, - 5236: 265, - 5237: 265, - 5238: 265, - 5239: 265, - 5240: 265, - 5241: 265, - 5242: 265, - 5243: 265, - 5244: 265, - 5245: 265, - 5246: 265, - 5247: 265, - 5248: 265, - 5249: 266, - 5250: 266, - 5251: 266, - 5252: 266, - 5253: 266, - 5254: 266, - 5255: 266, - 5256: 266, - 5257: 266, - 5258: 266, - 5259: 266, - 5260: 266, - 5261: 266, - 5262: 266, - 5263: 266, - 5264: 266, - 5265: 266, - 5266: 266, - 5267: 266, - 5268: 266, - 5269: 266, - 5270: 266, - 5271: 266, - 5272: 266, - 5273: 266, - 5274: 266, - 5275: 266, - 5276: 266, - 5277: 266, - 5278: 266, - 5279: 266, - 5280: 266, - 5281: 266, - 5282: 266, - 5283: 266, - 5284: 266, - 5285: 266, - 5286: 266, - 5287: 266, - 5288: 266, - 5289: 266, - 5290: 266, - 5291: 266, - 5292: 266, - 5293: 266, - 5294: 266, - 5295: 266, - 5296: 266, - 5297: 266, - 5298: 266, - 5299: 266, - 5300: 266, - 5301: 266, - 5302: 266, - 5303: 266, - 5304: 266, - 5305: 266, - 5306: 266, - 5307: 266, - 5308: 266, - 5309: 266, - 5310: 266, - 5311: 266, - 5312: 266, - 5313: 266, - 5314: 266, - 5315: 266, - 5316: 266, - 5317: 266, - 5318: 266, - 5319: 266, - 5320: 266, - 5321: 266, - 5322: 266, - 5323: 266, - 5324: 266, - 5325: 266, - 5326: 266, - 5327: 266, - 5328: 266, - 5329: 267, - 5330: 267, - 5331: 267, - 5332: 267, - 5333: 268, - 5334: 269, - 5335: 269, - 5336: 269, - 5337: 269, - 5338: 269, - 5339: 269, - 5340: 269, - 5341: 269, - 5342: 270, - 5343: 271, - 5344: 271, - 5345: 271, - 5346: 272, - 5347: 273, - 5348: 273, - 5349: 273, - 5350: 274, - 5351: 275, - 5352: 275, - 5353: 275, - 5354: 275, - 5355: 275, - 5356: 275, - 5357: 275, - 5358: 275, - 5359: 276, - 5360: 277, - 5361: 278, - 5362: 278, - 5363: 279, - 5364: 279, - 5365: 279, - 5366: 279, - 5367: 279, - 5368: 279, - 5369: 279, - 5370: 279, - 5371: 279, - 5372: 279, - 5373: 279, - 5374: 279, - 5375: 280, - 5376: 280, - 5377: 280, - 5378: 280, - 5379: 280, - 5380: 280, - 5381: 280, - 5382: 280, - 5383: 280, - 5384: 280, - 5385: 280, - 5386: 280, - 5387: 280, - 5388: 280, - 5389: 280, - 5390: 280, - 5391: 280, - 5392: 280, - 5393: 280, - 5394: 280, - 5395: 280, - 5396: 280, - 5397: 280, - 5398: 280, - 5399: 280, - 5400: 280, - 5401: 280, - 5402: 280, - 5403: 280, - 5404: 280, - 5405: 280, - 5406: 280, - 5407: 280, - 5408: 280, - 5409: 280, - 5410: 280, - 5411: 280, - 5412: 280, - 5413: 280, - 5414: 280, - 5415: 280, - 5416: 280, - 5417: 280, - 5418: 280, - 5419: 280, - 5420: 280, - 5421: 280, - 5422: 280, - 5423: 280, - 5424: 280, - 5425: 280, - 5426: 280, - 5427: 280, - 5428: 280, - 5429: 280, - 5430: 280, - 5431: 280, - 5432: 280, - 5433: 280, - 5434: 280, - 5435: 280, - 5436: 280, - 5437: 280, - 5438: 280, - 5439: 280, - 5440: 280, - 5441: 280, - 5442: 280, - 5443: 280, - 5444: 280, - 5445: 280, - 5446: 280, - 5447: 280, - 5448: 280, - 5449: 280, - 5450: 280, - 5451: 280, - 5452: 280, - 5453: 280, - 5454: 280, - 5455: 281, - 5456: 282, - 5457: 283, - 5458: 283, - 5459: 283, - 5460: 283, - 5461: 283, - 5462: 283, - 5463: 283, - 5464: 283, - 5465: 284, - 5466: 284, - 5467: 284, - 5468: 284, - 5469: 284, - 5470: 284, - 5471: 284, - 5472: 284, - 5473: 284, - 5474: 284, - 5475: 284, - 5476: 284, - 5477: 284, - 5478: 284, - 5479: 284, - 5480: 284, - 5481: 285, - 5482: 285, - 5483: 285, - 5484: 285, - 5485: 285, - 5486: 285, - 5487: 285, - 5488: 285, - 5489: 285, - 5490: 285, - 5491: 285, - 5492: 285, - 5493: 285, - 5494: 285, - 5495: 285, - 5496: 285, - 5497: 285, - 5498: 285, - 5499: 285, - 5500: 285, - 5501: 285, - 5502: 285, - 5503: 285, - 5504: 285, - 5505: 285, - 5506: 285, - 5507: 285, - 5508: 285, - 5509: 285, - 5510: 285, - 5511: 285, - 5512: 285, - 5513: 285, - 5514: 285, - 5515: 285, - 5516: 285, - 5517: 285, - 5518: 285, - 5519: 285, - 5520: 285, - 5521: 285, - 5522: 285, - 5523: 285, - 5524: 285, - 5525: 285, - 5526: 285, - 5527: 285, - 5528: 285, - 5529: 285, - 5530: 285, - 5531: 285, - 5532: 285, - 5533: 285, - 5534: 285, - 5535: 285, - 5536: 285, - 5537: 285, - 5538: 285, - 5539: 285, - 5540: 285, - 5541: 285, - 5542: 285, - 5543: 285, - 5544: 285, - 5545: 285, - 5546: 285, - 5547: 285, - 5548: 285, - 5549: 285, - 5550: 285, - 5551: 285, - 5552: 285, - 5553: 285, - 5554: 285, - 5555: 285, - 5556: 285, - 5557: 285, - 5558: 285, - 5559: 285, - 5560: 285, - 5561: 285, - 5562: 285, - 5563: 285, - 5564: 285, - 5565: 285, - 5566: 285, - 5567: 285, - 5568: 285, - 5569: 285, - 5570: 285, - 5571: 285, - 5572: 285, - 5573: 285, - 5574: 285, - 5575: 285, - 5576: 285, - 5577: 285, - 5578: 285, - 5579: 285, - 5580: 285, - 5581: 285, - 5582: 285, - 5583: 285, - 5584: 285, - 5585: 285, - 5586: 285, - 5587: 285, - 5588: 285, - 5589: 285, - 5590: 285, - 5591: 285, - 5592: 285, - 5593: 285, - 5594: 285, - 5595: 285, - 5596: 285, - 5597: 285, - 5598: 285, - 5599: 285, - 5600: 285, - 5601: 285, - 5602: 285, - 5603: 285, - 5604: 285, - 5605: 285, - 5606: 285, - 5607: 285, - 5608: 285, - 5609: 286, - 5610: 287, - 5611: 287, - 5612: 287, - 5613: 287, - 5614: 287, - 5615: 287, - 5616: 287, - 5617: 287, - 5618: 287, - 5619: 287, - 5620: 287, - 5621: 287, - 5622: 287, - 5623: 287, - 5624: 287, - 5625: 287, - 5626: 287, - 5627: 287, - 5628: 287, - 5629: 287, - 5630: 287, - 5631: 287, - 5632: 287, - 5633: 287, - 5634: 287, - 5635: 287, - 5636: 287, - 5637: 287, - 5638: 287, - 5639: 287, - 5640: 287, - 5641: 287, - 5642: 287, - 5643: 287, - 5644: 287, - 5645: 287, - 5646: 287, - 5647: 287, - 5648: 287, - 5649: 287, - 5650: 287, - 5651: 287, - 5652: 287, - 5653: 287, - 5654: 287, - 5655: 287, - 5656: 287, - 5657: 287, - 5658: 287, - 5659: 287, - 5660: 287, - 5661: 287, - 5662: 287, - 5663: 287, - 5664: 287, - 5665: 287, - 5666: 287, - 5667: 287, - 5668: 287, - 5669: 287, - 5670: 287, - 5671: 287, - 5672: 287, - 5673: 287, - 5674: 287, - 5675: 287, - 5676: 287, - 5677: 287, - 5678: 287, - 5679: 287, - 5680: 287, - 5681: 287, - 5682: 287, - 5683: 287, - 5684: 287, - 5685: 287, - 5686: 287, - 5687: 287, - 5688: 287, - 5689: 287, - 5690: 288, - 5691: 288, - 5692: 288, - 5693: 288, - 5694: 288, - 5695: 288, - 5696: 288, - 5697: 288, - 5698: 288, - 5699: 288, - 5700: 288, - 5701: 288, - 5702: 288, - 5703: 288, - 5704: 288, - 5705: 288, - 5706: 288, - 5707: 288, - 5708: 288, - 5709: 288, - 5710: 288, - 5711: 288, - 5712: 288, - 5713: 288, - 5714: 288, - 5715: 288, - 5716: 288, - 5717: 288, - 5718: 288, - 5719: 288, - 5720: 288, - 5721: 288, - 5722: 288, - 5723: 288, - 5724: 288, - 5725: 288, - 5726: 288, - 5727: 288, - 5728: 288, - 5729: 288, - 5730: 288, - 5731: 288, - 5732: 288, - 5733: 288, - 5734: 288, - 5735: 288, - 5736: 288, - 5737: 288, - 5738: 288, - 5739: 288, - 5740: 288, - 5741: 288, - 5742: 288, - 5743: 288, - 5744: 288, - 5745: 288, - 5746: 288, - 5747: 288, - 5748: 288, - 5749: 288, - 5750: 288, - 5751: 288, - 5752: 288, - 5753: 288, - 5754: 288, - 5755: 288, - 5756: 288, - 5757: 288, - 5758: 288, - 5759: 288, - 5760: 288, - 5761: 288, - 5762: 288, - 5763: 288, - 5764: 288, - 5765: 288, - 5766: 288, - 5767: 288, - 5768: 288, - 5769: 288, - 5770: 289, - 5771: 289, - 5772: 289, - 5773: 289, - 5774: 289, - 5775: 289, - 5776: 289, - 5777: 289, - 5778: 289, - 5779: 289, - 5780: 289, - 5781: 289, - 5782: 289, - 5783: 289, - 5784: 289, - 5785: 289, - 5786: 289, - 5787: 289, - 5788: 289, - 5789: 289, - 5790: 289, - 5791: 289, - 5792: 289, - 5793: 289, - 5794: 289, - 5795: 289, - 5796: 289, - 5797: 289, - 5798: 289, - 5799: 289, - 5800: 289, - 5801: 289, - 5802: 289, - 5803: 289, - 5804: 289, - 5805: 289, - 5806: 289, - 5807: 289, - 5808: 289, - 5809: 289, - 5810: 289, - 5811: 289, - 5812: 289, - 5813: 289, - 5814: 289, - 5815: 289, - 5816: 289, - 5817: 289, - 5818: 289, - 5819: 289, - 5820: 289, - 5821: 289, - 5822: 289, - 5823: 289, - 5824: 289, - 5825: 289, - 5826: 289, - 5827: 289, - 5828: 289, - 5829: 289, - 5830: 289, - 5831: 289, - 5832: 289, - 5833: 289, - 5834: 289, - 5835: 289, - 5836: 289, - 5837: 289, - 5838: 289, - 5839: 289, - 5840: 289, - 5841: 289, - 5842: 289, - 5843: 289, - 5844: 289, - 5845: 289, - 5846: 289, - 5847: 289, - 5848: 289, - 5849: 289, - 5850: 290, - 5851: 290, - 5852: 290, - 5853: 290, - 5854: 290, - 5855: 290, - 5856: 290, - 5857: 290, - 5858: 290, - 5859: 290, - 5860: 290, - 5861: 290, - 5862: 291, - 5863: 292, - 5864: 292, - 5865: 292, - 5866: 292, - 5867: 292, - 5868: 292, - 5869: 292, - 5870: 292, - 5871: 292, - 5872: 292, - 5873: 292, - 5874: 292, - 5875: 292, - 5876: 292, - 5877: 292, - 5878: 292, - 5879: 292, - 5880: 292, - 5881: 292, - 5882: 292, - 5883: 292, - 5884: 292, - 5885: 292, - 5886: 292, - 5887: 292, - 5888: 292, - 5889: 292, - 5890: 292, - 5891: 292, - 5892: 292, - 5893: 292, - 5894: 292, - 5895: 292, - 5896: 292, - 5897: 292, - 5898: 292, - 5899: 292, - 5900: 292, - 5901: 292, - 5902: 292, - 5903: 292, - 5904: 292, - 5905: 292, - 5906: 292, - 5907: 292, - 5908: 292, - 5909: 292, - 5910: 292, - 5911: 292, - 5912: 292, - 5913: 292, - 5914: 292, - 5915: 292, - 5916: 292, - 5917: 292, - 5918: 292, - 5919: 292, - 5920: 292, - 5921: 292, - 5922: 292, - 5923: 292, - 5924: 292, - 5925: 292, - 5926: 292, - 5927: 292, - 5928: 292, - 5929: 292, - 5930: 292, - 5931: 292, - 5932: 292, - 5933: 292, - 5934: 292, - 5935: 292, - 5936: 292, - 5937: 292, - 5938: 292, - 5939: 292, - 5940: 292, - 5941: 292, - 5942: 292, - 5943: 292, - 5944: 292, - 5945: 292, - 5946: 292, - 5947: 292, - 5948: 292, - 5949: 292, - 5950: 292, - 5951: 292, - 5952: 292, - 5953: 292, - 5954: 292, - 5955: 292, - 5956: 292, - 5957: 292, - 5958: 292, - 5959: 292, - 5960: 292, - 5961: 292, - 5962: 292, - 5963: 292, - 5964: 292, - 5965: 292, - 5966: 292, - 5967: 292, - 5968: 292, - 5969: 292, - 5970: 292, - 5971: 292, - 5972: 292, - 5973: 292, - 5974: 292, - 5975: 292, - 5976: 292, - 5977: 292, - 5978: 292, - 5979: 292, - 5980: 292, - 5981: 292, - 5982: 292, - 5983: 292, - 5984: 292, - 5985: 292, - 5986: 292, - 5987: 292, - 5988: 292, - 5989: 292, - 5990: 292, - 5991: 292, - 5992: 292, - 5993: 292, - 5994: 292, - 5995: 292, - 5996: 292, - 5997: 292, - 5998: 292, - 5999: 292, - 6000: 292, - 6001: 292, - 6002: 292, - 6003: 292, - 6004: 292, - 6005: 292, - 6006: 292, - 6007: 292, - 6008: 292, - 6009: 292, - 6010: 292, - 6011: 292, - 6012: 292, - 6013: 292, - 6014: 292, - 6015: 292, - 6016: 292, - 6017: 292, - 6018: 292, - 6019: 292, - 6020: 292, - 6021: 292, - 6022: 292, - 6023: 292, - 6024: 292, - 6025: 292, - 6026: 292, - 6027: 292, - 6028: 292, - 6029: 292, - 6030: 292, - 6031: 292, - 6032: 292, - 6033: 292, - 6034: 292, - 6035: 292, - 6036: 292, - 6037: 292, - 6038: 292, - 6039: 292, - 6040: 292, - 6041: 292, - 6042: 292, - 6043: 292, - 6044: 292, - 6045: 292, - 6046: 292, - 6047: 292, - 6048: 292, - 6049: 292, - 6050: 292, - 6051: 292, - 6052: 292, - 6053: 292, - 6054: 292, - 6055: 292, - 6056: 292, - 6057: 292, - 6058: 292, - 6059: 292, - 6060: 292, - 6061: 292, - 6062: 292, - 6063: 292, - 6064: 292, - 6065: 292, - 6066: 292, - 6067: 292, - 6068: 292, - 6069: 292, - 6070: 292, - 6071: 292, - 6072: 292, - 6073: 292, - 6074: 292, - 6075: 292, - 6076: 292, - 6077: 292, - 6078: 292, - 6079: 292, - 6080: 292, - 6081: 292, - 6082: 292, - 6083: 292, - 6084: 292, - 6085: 292, - 6086: 292, - 6087: 292, - 6088: 292, - 6089: 292, - 6090: 292, - 6091: 292, - 6092: 292, - 6093: 292, - 6094: 292, - 6095: 292, - 6096: 292, - 6097: 292, - 6098: 292, - 6099: 292, - 6100: 292, - 6101: 292, - 6102: 292, - 6103: 292, - 6104: 292, - 6105: 292, - 6106: 292, - 6107: 292, - 6108: 292, - 6109: 292, - 6110: 292, - 6111: 292, - 6112: 292, - 6113: 292, - 6114: 292, - 6115: 292, - 6116: 292, - 6117: 292, - 6118: 292, - 6119: 292, - 6120: 292, - 6121: 292, - 6122: 292, - 6123: 292, - 6124: 292, - 6125: 292, - 6126: 292, - 6127: 292, - 6128: 292, - 6129: 292, - 6130: 292, - 6131: 292, - 6132: 292, - 6133: 292, - 6134: 292, - 6135: 292, - 6136: 292, - 6137: 292, - 6138: 292, - 6139: 292, - 6140: 292, - 6141: 292, - 6142: 292, - 6143: 292, - 6144: 292, - 6145: 292, - 6146: 292, - 6147: 292, - 6148: 292, - 6149: 292, - 6150: 292, - 6151: 292, - 6152: 292, - 6153: 292, - 6154: 292, - 6155: 292, - 6156: 292, - 6157: 292, - 6158: 292, - 6159: 292, - 6160: 292, - 6161: 292, - 6162: 292, - 6163: 292, - 6164: 292, - 6165: 292, - 6166: 292, - 6167: 292, - 6168: 292, - 6169: 292, - 6170: 292, - 6171: 292, - 6172: 292, - 6173: 292, - 6174: 292, - 6175: 292, - 6176: 292, - 6177: 292, - 6178: 292, - 6179: 292, - 6180: 292, - 6181: 292, - 6182: 292, - 6183: 292, - 6184: 292, - 6185: 292, - 6186: 292, - 6187: 293, - 6188: 293, - 6189: 293, - 6190: 293, - 6191: 293, - 6192: 293, - 6193: 293, - 6194: 293, - 6195: 293, - 6196: 293, - 6197: 293, - 6198: 293, - 6199: 293, - 6200: 293, - 6201: 293, - 6202: 293, - 6203: 293, - 6204: 293, - 6205: 293, - 6206: 293, - 6207: 293, - 6208: 293, - 6209: 293, - 6210: 293, - 6211: 293, - 6212: 293, - 6213: 293, - 6214: 293, - 6215: 293, - 6216: 293, - 6217: 293, - 6218: 293, - 6219: 293, - 6220: 293, - 6221: 293, - 6222: 293, - 6223: 293, - 6224: 293, - 6225: 293, - 6226: 293, - 6227: 293, - 6228: 293, - 6229: 293, - 6230: 293, - 6231: 293, - 6232: 293, - 6233: 293, - 6234: 293, - 6235: 293, - 6236: 293, - 6237: 293, - 6238: 293, - 6239: 293, - 6240: 293, - 6241: 293, - 6242: 293, - 6243: 293, - 6244: 293, - 6245: 293, - 6246: 293, - 6247: 293, - 6248: 293, - 6249: 293, - 6250: 293, - 6251: 293, - 6252: 293, - 6253: 293, - 6254: 293, - 6255: 293, - 6256: 293, - 6257: 293, - 6258: 293, - 6259: 293, - 6260: 293, - 6261: 293, - 6262: 293, - 6263: 293, - 6264: 293, - 6265: 293, - 6266: 293, - 6267: 293, - 6268: 293, - 6269: 293, - 6270: 293, - 6271: 293, - 6272: 293, - 6273: 293, - 6274: 293, - 6275: 293, - 6276: 293, - 6277: 293, - 6278: 293, - 6279: 293, - 6280: 293, - 6281: 293, - 6282: 293, - 6283: 293, - 6284: 293, - 6285: 293, - 6286: 293, - 6287: 293, - 6288: 293, - 6289: 293, - 6290: 293, - 6291: 293, - 6292: 293, - 6293: 293, - 6294: 293, - 6295: 293, - 6296: 293, - 6297: 293, - 6298: 293, - 6299: 293, - 6300: 293, - 6301: 293, - 6302: 293, - 6303: 293, - 6304: 293, - 6305: 293, - 6306: 293, - 6307: 293, - 6308: 293, - 6309: 293, - 6310: 293, - 6311: 293, - 6312: 293, - 6313: 293, - 6314: 293, - 6315: 293, - 6316: 293, - 6317: 293, - 6318: 293, - 6319: 293, - 6320: 293, - 6321: 293, - 6322: 293, - 6323: 293, - 6324: 293, - 6325: 293, - 6326: 293, - 6327: 293, - 6328: 293, - 6329: 293, - 6330: 293, - 6331: 293, - 6332: 293, - 6333: 293, - 6334: 293, - 6335: 293, - 6336: 293, - 6337: 293, - 6338: 293, - 6339: 293, - 6340: 293, - 6341: 293, - 6342: 293, - 6343: 293, - 6344: 293, - 6345: 293, - 6346: 293, - 6347: 293, - 6348: 293, - 6349: 293, - 6350: 293, - 6351: 293, - 6352: 293, - 6353: 293, - 6354: 293, - 6355: 293, - 6356: 293, - 6357: 293, - 6358: 293, - 6359: 293, - 6360: 293, - 6361: 293, - 6362: 293, - 6363: 293, - 6364: 293, - 6365: 293, - 6366: 293, - 6367: 293, - 6368: 293, - 6369: 293, - 6370: 293, - 6371: 293, - 6372: 293, - 6373: 293, - 6374: 293, - 6375: 293, - 6376: 293, - 6377: 293, - 6378: 293, - 6379: 293, - 6380: 293, - 6381: 293, - 6382: 293, - 6383: 293, - 6384: 293, - 6385: 293, - 6386: 293, - 6387: 293, - 6388: 293, - 6389: 293, - 6390: 293, - 6391: 293, - 6392: 293, - 6393: 293, - 6394: 293, - 6395: 293, - 6396: 293, - 6397: 293, - 6398: 293, - 6399: 293, - 6400: 293, - 6401: 293, - 6402: 293, - 6403: 293, - 6404: 293, - 6405: 293, - 6406: 293, - 6407: 293, - 6408: 293, - 6409: 293, - 6410: 293, - 6411: 293, - 6412: 293, - 6413: 293, - 6414: 293, - 6415: 293, - 6416: 293, - 6417: 293, - 6418: 293, - 6419: 293, - 6420: 293, - 6421: 293, - 6422: 293, - 6423: 293, - 6424: 293, - 6425: 293, - 6426: 293, - 6427: 293, - 6428: 293, - 6429: 293, - 6430: 293, - 6431: 293, - 6432: 293, - 6433: 293, - 6434: 293, - 6435: 293, - 6436: 293, - 6437: 293, - 6438: 293, - 6439: 293, - 6440: 293, - 6441: 293, - 6442: 293, - 6443: 293, - 6444: 293, - 6445: 293, - 6446: 293, - 6447: 293, - 6448: 293, - 6449: 293, - 6450: 293, - 6451: 293, - 6452: 293, - 6453: 293, - 6454: 293, - 6455: 293, - 6456: 293, - 6457: 293, - 6458: 293, - 6459: 293, - 6460: 293, - 6461: 293, - 6462: 293, - 6463: 293, - 6464: 293, - 6465: 293, - 6466: 293, - 6467: 293, - 6468: 293, - 6469: 293, - 6470: 293, - 6471: 293, - 6472: 293, - 6473: 293, - 6474: 293, - 6475: 293, - 6476: 293, - 6477: 293, - 6478: 293, - 6479: 293, - 6480: 293, - 6481: 293, - 6482: 293, - 6483: 293, - 6484: 293, - 6485: 293, - 6486: 293, - 6487: 293, - 6488: 293, - 6489: 293, - 6490: 293, - 6491: 293, - 6492: 293, - 6493: 293, - 6494: 293, - 6495: 293, - 6496: 293, - 6497: 293, - 6498: 293, - 6499: 293, - 6500: 293, - 6501: 293, - 6502: 293, - 6503: 293, - 6504: 293, - 6505: 293, - 6506: 293, - 6507: 293, - 6508: 293, - 6509: 293, - 6510: 293, - 6511: 294, - 6512: 295, - 6513: 296, - 6514: 297, - 6515: 298, - 6516: 299, - 6517: 300, - 6518: 301, - 6519: 302, - 6520: 303, - 6521: 304, - 6522: 305, - 6523: 306, - 6524: 307, - 6525: 308, - 6526: 309, - 6527: 310, - 6528: 311, - 6529: 312, - 6530: 313, - 6531: 314, - 6532: 315, - 6533: 316, - 6534: 317, - 6535: 318, - 6536: 319, - 6537: 319, - 6538: 319, - 6539: 319, - 6540: 319, - 6541: 319, - 6542: 319, - 6543: 319, - 6544: 320, - 6545: 320, - 6546: 320, - 6547: 320, - 6548: 320, - 6549: 320, - 6550: 320, - 6551: 320, - 6552: 321, - 6553: 321, - 6554: 321, - 6555: 321, - 6556: 321, - 6557: 321, - 6558: 321, - 6559: 321, - 6560: 321, - 6561: 321, - 6562: 321, - 6563: 321, - 6564: 321, - 6565: 321, - 6566: 321, - 6567: 321, - 6568: 321, - 6569: 321, - 6570: 321, - 6571: 321, - 6572: 321, - 6573: 321, - 6574: 321, - 6575: 321, - 6576: 322, - 6577: 322, - 6578: 322, - 6579: 322, - 6580: 322, - 6581: 322, - 6582: 322, - 6583: 322, - 6584: 322, - 6585: 322, - 6586: 322, - 6587: 322, - 6588: 322, - 6589: 322, - 6590: 322, - 6591: 322, - 6592: 322, - 6593: 322, - 6594: 322, - 6595: 322, - 6596: 322, - 6597: 322, - 6598: 322, - 6599: 322, - 6600: 323, - 6601: 323, - 6602: 323, - 6603: 323, - 6604: 323, - 6605: 323, - 6606: 323, - 6607: 323, - 6608: 323, - 6609: 323, - 6610: 323, - 6611: 323, - 6612: 323, - 6613: 323, - 6614: 323, - 6615: 323, - 6616: 323, - 6617: 323, - 6618: 323, - 6619: 323, - 6620: 323, - 6621: 323, - 6622: 323, - 6623: 323, - 6624: 324, - 6625: 324, - 6626: 324, - 6627: 324, - 6628: 324, - 6629: 324, - 6630: 324, - 6631: 324, - 6632: 324, - 6633: 324, - 6634: 324, - 6635: 324, - 6636: 324, - 6637: 324, - 6638: 324, - 6639: 324, - 6640: 324, - 6641: 324, - 6642: 324, - 6643: 324, - 6644: 324, - 6645: 324, - 6646: 324, - 6647: 324, - 6648: 325, - 6649: 325, - 6650: 325, - 6651: 325, - 6652: 325, - 6653: 325, - 6654: 325, - 6655: 325, - 6656: 325, - 6657: 325, - 6658: 325, - 6659: 325, - 6660: 325, - 6661: 325, - 6662: 325, - 6663: 325, - 6664: 325, - 6665: 325, - 6666: 325, - 6667: 325, - 6668: 325, - 6669: 325, - 6670: 325, - 6671: 325, - 6672: 326, - 6673: 326, - 6674: 326, - 6675: 326, - 6676: 326, - 6677: 326, - 6678: 326, - 6679: 326, - 6680: 326, - 6681: 326, - 6682: 326, - 6683: 326, - 6684: 326, - 6685: 326, - 6686: 326, - 6687: 326, - 6688: 326, - 6689: 326, - 6690: 326, - 6691: 326, - 6692: 326, - 6693: 326, - 6694: 326, - 6695: 326, - 6696: 327, - 6697: 327, - 6698: 327, - 6699: 327, - 6700: 327, - 6701: 327, - 6702: 327, - 6703: 327, - 6704: 327, - 6705: 327, - 6706: 327, - 6707: 327, - 6708: 327, - 6709: 327, - 6710: 327, - 6711: 327, - 6712: 328, - 6713: 328, - 6714: 328, - 6715: 328, - 6716: 329, - 6717: 329, - 6718: 329, - 6719: 329, - 6720: 329, - 6721: 329, - 6722: 329, - 6723: 329, - 6724: 329, - 6725: 329, - 6726: 329, - 6727: 329, - 6728: 329, - 6729: 329, - 6730: 329, - 6731: 329, - 6732: 330, - 6733: 330, - 6734: 330, - 6735: 330, - 6736: 331, - 6737: 331, - 6738: 331, - 6739: 331, - 6740: 331, - 6741: 331, - 6742: 331, - 6743: 331, - 6744: 331, - 6745: 331, - 6746: 331, - 6747: 331, - 6748: 331, - 6749: 331, - 6750: 331, - 6751: 331, - 6752: 332, - 6753: 332, - 6754: 332, - 6755: 332, - 6756: 333, - 6757: 333, - 6758: 333, - 6759: 333, - 6760: 333, - 6761: 333, - 6762: 333, - 6763: 333, - 6764: 333, - 6765: 333, - 6766: 333, - 6767: 333, - 6768: 333, - 6769: 333, - 6770: 333, - 6771: 333, - 6772: 334, - 6773: 334, - 6774: 334, - 6775: 334, - 6776: 335, - 6777: 335, - 6778: 335, - 6779: 335, - 6780: 335, - 6781: 335, - 6782: 335, - 6783: 335, - 6784: 335, - 6785: 335, - 6786: 335, - 6787: 335, - 6788: 335, - 6789: 335, - 6790: 335, - 6791: 335, - 6792: 336, - 6793: 336, - 6794: 336, - 6795: 336, - 6796: 337, - 6797: 337, - 6798: 337, - 6799: 337, - 6800: 337, - 6801: 337, - 6802: 337, - 6803: 337, - 6804: 337, - 6805: 337, - 6806: 337, - 6807: 337, - 6808: 337, - 6809: 337, - 6810: 337, - 6811: 337, - 6812: 338, - 6813: 338, - 6814: 338, - 6815: 338, - 6816: 339, - 6817: 339, - 6818: 339, - 6819: 339, - 6820: 340, - 6821: 340, - 6822: 340, - 6823: 340, - 6824: 341, - 6825: 341, - 6826: 341, - 6827: 341, - 6828: 342, - 6829: 342, - 6830: 342, - 6831: 342, - 6832: 342, - 6833: 342, - 6834: 342, - 6835: 342, - 6836: 342, - 6837: 342, - 6838: 342, - 6839: 342, - 6840: 342, - 6841: 342, - 6842: 342, - 6843: 342, - 6844: 342, - 6845: 342, - 6846: 342, - 6847: 342, - 6848: 342, - 6849: 342, - 6850: 342, - 6851: 342, - 6852: 343, - 6853: 343, - 6854: 343, - 6855: 343, - 6856: 343, - 6857: 343, - 6858: 343, - 6859: 343, - 6860: 343, - 6861: 343, - 6862: 343, - 6863: 343, - 6864: 343, - 6865: 343, - 6866: 343, - 6867: 343, - 6868: 344, - 6869: 344, - 6870: 344, - 6871: 344, - 6872: 344, - 6873: 344, - 6874: 344, - 6875: 344, - 6876: 344, - 6877: 344, - 6878: 344, - 6879: 344, - 6880: 344, - 6881: 344, - 6882: 344, - 6883: 344, - 6884: 345, - 6885: 345, - 6886: 345, - 6887: 345, - 6888: 345, - 6889: 345, - 6890: 345, - 6891: 345, - 6892: 345, - 6893: 345, - 6894: 345, - 6895: 345, - 6896: 345, - 6897: 345, - 6898: 345, - 6899: 345, - 6900: 346, - 6901: 346, - 6902: 346, - 6903: 346, - 6904: 346, - 6905: 346, - 6906: 346, - 6907: 346, - 6908: 346, - 6909: 346, - 6910: 346, - 6911: 346, - 6912: 346, - 6913: 346, - 6914: 346, - 6915: 346, - 6916: 346, - 6917: 346, - 6918: 346, - 6919: 346, - 6920: 346, - 6921: 346, - 6922: 346, - 6923: 346, - 6924: 346, - 6925: 346, - 6926: 346, - 6927: 346, - 6928: 346, - 6929: 346, - 6930: 346, - 6931: 346, - 6932: 347, - 6933: 348, - 6934: 349, - 6935: 349, - 6936: 349, - 6937: 349, - 6938: 349, - 6939: 349, - 6940: 349, - 6941: 349, - 6942: 349, - 6943: 349, - 6944: 350, - 6945: 351, - 6946: 352, - 6947: 352, - 6948: 352, - 6949: 353, - 6950: 353, - 6951: 353, - 6952: 353, - 6953: 353, - 6954: 353, - 6955: 353, - 6956: 353, - 6957: 353, - 6958: 353, - 6959: 353, - 6960: 353, - 6961: 353, - 6962: 353, - 6963: 353, - 6964: 353, - 6965: 353, - 6966: 353, - 6967: 353, - 6968: 353, - 6969: 353, - 6970: 353, - 6971: 353, - 6972: 353, - 6973: 353, - 6974: 353, - 6975: 353, - 6976: 353, - 6977: 353, - 6978: 353, - 6979: 353, - 6980: 353, - 6981: 353, - 6982: 353, - 6983: 353, - 6984: 353, - 6985: 353, - 6986: 353, - 6987: 353, - 6988: 353, - 6989: 353, - 6990: 353, - 6991: 353, - 6992: 353, - 6993: 353, - 6994: 353, - 6995: 353, - 6996: 353, - 6997: 353, - 6998: 353, - 6999: 353, - 7000: 353, - 7001: 353, - 7002: 353, - 7003: 353, - 7004: 353, - 7005: 353, - 7006: 353, - 7007: 353, - 7008: 353, - 7009: 353, - 7010: 353, - 7011: 353, - 7012: 353, - 7013: 353, - 7014: 353, - 7015: 353, - 7016: 353, - 7017: 353, - 7018: 353, - 7019: 353, - 7020: 353, - 7021: 353, - 7022: 353, - 7023: 353, - 7024: 353, - 7025: 353, - 7026: 353, - 7027: 353, - 7028: 353, - 7029: 354, - 7030: 354, - 7031: 354, - 7032: 354, - 7033: 354, - 7034: 354, - 7035: 354, - 7036: 354, - 7037: 354, - 7038: 354, - 7039: 354, - 7040: 354, - 7041: 354, - 7042: 354, - 7043: 354, - 7044: 354, - 7045: 354, - 7046: 354, - 7047: 354, - 7048: 354, - 7049: 354, - 7050: 354, - 7051: 354, - 7052: 354, - 7053: 355, - 7054: 355, - 7055: 355, - 7056: 355, - 7057: 355, - 7058: 355, - 7059: 355, - 7060: 355, - 7061: 355, - 7062: 355, - 7063: 355, - 7064: 355, - 7065: 356, - 7066: 357, - 7067: 358, - 7068: 359, - 7069: 360, - 7070: 361, - 7071: 362, - 7072: 363, - 7073: 364, - 7074: 365, - 7075: 366, - 7076: 367, - 7077: 368, - 7078: 369, - 7079: 370, - 7080: 371, - 7081: 372, - 7082: 372, - 7083: 372, - 7084: 372, - 7085: 372, - 7086: 372, - 7087: 372, - 7088: 372, - 7089: 372, - 7090: 372, - 7091: 372, - 7092: 372, - 7093: 372, - 7094: 372, - 7095: 372, - 7096: 372, - 7097: 372, - 7098: 372, - 7099: 372, - 7100: 372, - 7101: 372, - 7102: 372, - 7103: 372, - 7104: 372, - 7105: 372, - 7106: 372, - 7107: 372, - 7108: 372, - 7109: 372, - 7110: 372, - 7111: 372, - 7112: 372, - 7113: 373, - 7114: 373, - 7115: 373, - 7116: 373, - 7117: 373, - 7118: 373, - 7119: 373, - 7120: 373, - 7121: 373, - 7122: 373, - 7123: 373, - 7124: 373, - 7125: 373, - 7126: 373, - 7127: 373, - 7128: 373, - 7129: 373, - 7130: 373, - 7131: 373, - 7132: 373, - 7133: 373, - 7134: 373, - 7135: 373, - 7136: 373, - 7137: 373, - 7138: 373, - 7139: 373, - 7140: 373, - 7141: 373, - 7142: 373, - 7143: 373, - 7144: 373, - 7145: 374, - 7146: 374, - 7147: 374, - 7148: 374, - 7149: 374, - 7150: 374, - 7151: 374, - 7152: 374, - 7153: 374, - 7154: 374, - 7155: 374, - 7156: 374, - 7157: 374, - 7158: 374, - 7159: 374, - 7160: 374, - 7161: 374, - 7162: 374, - 7163: 374, - 7164: 374, - 7165: 374, - 7166: 374, - 7167: 374, - 7168: 374, - 7169: 374, - 7170: 374, - 7171: 374, - 7172: 374, - 7173: 374, - 7174: 374, - 7175: 374, - 7176: 374, - 7177: 375, - 7178: 375, - 7179: 375, - 7180: 375, - 7181: 375, - 7182: 375, - 7183: 375, - 7184: 375, - 7185: 375, - 7186: 375, - 7187: 375, - 7188: 375, - 7189: 375, - 7190: 375, - 7191: 375, - 7192: 375, - 7193: 375, - 7194: 375, - 7195: 375, - 7196: 375, - 7197: 375, - 7198: 375, - 7199: 375, - 7200: 375, - 7201: 375, - 7202: 375, - 7203: 375, - 7204: 375, - 7205: 375, - 7206: 375, - 7207: 375, - 7208: 375, - 7209: 376, - 7210: 376, - 7211: 376, - 7212: 376, - 7213: 376, - 7214: 376, - 7215: 376, - 7216: 376, - 7217: 376, - 7218: 376, - 7219: 376, - 7220: 376, - 7221: 376, - 7222: 376, - 7223: 376, - 7224: 376, - 7225: 376, - 7226: 376, - 7227: 376, - 7228: 376, - 7229: 376, - 7230: 376, - 7231: 376, - 7232: 376, - 7233: 376, - 7234: 376, - 7235: 376, - 7236: 376, - 7237: 376, - 7238: 376, - 7239: 376, - 7240: 376, - 7241: 377, - 7242: 377, - 7243: 377, - 7244: 377, - 7245: 377, - 7246: 377, - 7247: 377, - 7248: 377, - 7249: 377, - 7250: 377, - 7251: 377, - 7252: 377, - 7253: 377, - 7254: 377, - 7255: 377, - 7256: 377, - 7257: 377, - 7258: 377, - 7259: 377, - 7260: 377, - 7261: 377, - 7262: 377, - 7263: 377, - 7264: 377, - 7265: 377, - 7266: 377, - 7267: 377, - 7268: 377, - 7269: 377, - 7270: 377, - 7271: 377, - 7272: 377, - 7273: 378, - 7274: 378, - 7275: 378, - 7276: 378, - 7277: 378, - 7278: 378, - 7279: 378, - 7280: 378, - 7281: 378, - 7282: 378, - 7283: 378, - 7284: 378, - 7285: 378, - 7286: 378, - 7287: 378, - 7288: 378, - 7289: 378, - 7290: 378, - 7291: 378, - 7292: 378, - 7293: 378, - 7294: 378, - 7295: 378, - 7296: 378, - 7297: 378, - 7298: 378, - 7299: 378, - 7300: 378, - 7301: 378, - 7302: 378, - 7303: 378, - 7304: 378, - 7305: 379, - 7306: 379, - 7307: 379, - 7308: 379, - 7309: 379, - 7310: 379, - 7311: 379, - 7312: 379, - 7313: 379, - 7314: 379, - 7315: 379, - 7316: 379, - 7317: 379, - 7318: 379, - 7319: 379, - 7320: 379, - 7321: 379, - 7322: 379, - 7323: 379, - 7324: 379, - 7325: 379, - 7326: 379, - 7327: 379, - 7328: 379, - 7329: 379, - 7330: 379, - 7331: 379, - 7332: 379, - 7333: 379, - 7334: 379, - 7335: 379, - 7336: 379, - 7337: 380, - 7338: 380, - 7339: 380, - 7340: 380, - 7341: 380, - 7342: 380, - 7343: 380, - 7344: 380, - 7345: 380, - 7346: 380, - 7347: 380, - 7348: 380, - 7349: 380, - 7350: 380, - 7351: 380, - 7352: 380, - 7353: 380, - 7354: 380, - 7355: 380, - 7356: 380, - 7357: 380, - 7358: 380, - 7359: 380, - 7360: 380, - 7361: 380, - 7362: 380, - 7363: 380, - 7364: 380, - 7365: 380, - 7366: 380, - 7367: 380, - 7368: 380, - 7369: 381, - 7370: 381, - 7371: 381, - 7372: 381, - 7373: 381, - 7374: 381, - 7375: 381, - 7376: 381, - 7377: 381, - 7378: 381, - 7379: 381, - 7380: 381, - 7381: 381, - 7382: 381, - 7383: 381, - 7384: 381, - 7385: 381, - 7386: 381, - 7387: 381, - 7388: 381, - 7389: 381, - 7390: 381, - 7391: 381, - 7392: 381, - 7393: 381, - 7394: 381, - 7395: 381, - 7396: 381, - 7397: 381, - 7398: 381, - 7399: 381, - 7400: 381, - 7401: 382, - 7402: 382, - 7403: 382, - 7404: 382, - 7405: 382, - 7406: 382, - 7407: 382, - 7408: 382, - 7409: 382, - 7410: 382, - 7411: 382, - 7412: 382, - 7413: 382, - 7414: 382, - 7415: 382, - 7416: 382, - 7417: 382, - 7418: 382, - 7419: 382, - 7420: 382, - 7421: 382, - 7422: 382, - 7423: 382, - 7424: 382, - 7425: 382, - 7426: 382, - 7427: 382, - 7428: 382, - 7429: 382, - 7430: 382, - 7431: 382, - 7432: 382, - 7433: 383, - 7434: 383, - 7435: 383, - 7436: 383, - 7437: 383, - 7438: 383, - 7439: 383, - 7440: 383, - 7441: 383, - 7442: 383, - 7443: 383, - 7444: 383, - 7445: 383, - 7446: 383, - 7447: 383, - 7448: 383, - 7449: 383, - 7450: 383, - 7451: 383, - 7452: 383, - 7453: 383, - 7454: 383, - 7455: 383, - 7456: 383, - 7457: 383, - 7458: 383, - 7459: 383, - 7460: 383, - 7461: 383, - 7462: 383, - 7463: 383, - 7464: 383, - 7465: 384, - 7466: 384, - 7467: 384, - 7468: 384, - 7469: 384, - 7470: 384, - 7471: 384, - 7472: 384, - 7473: 384, - 7474: 384, - 7475: 384, - 7476: 384, - 7477: 384, - 7478: 384, - 7479: 384, - 7480: 384, - 7481: 384, - 7482: 384, - 7483: 384, - 7484: 384, - 7485: 384, - 7486: 384, - 7487: 384, - 7488: 384, - 7489: 384, - 7490: 384, - 7491: 384, - 7492: 384, - 7493: 384, - 7494: 384, - 7495: 384, - 7496: 384, - 7497: 385, - 7498: 385, - 7499: 385, - 7500: 385, - 7501: 385, - 7502: 385, - 7503: 385, - 7504: 385, - 7505: 385, - 7506: 385, - 7507: 385, - 7508: 385, - 7509: 385, - 7510: 385, - 7511: 385, - 7512: 385, - 7513: 385, - 7514: 385, - 7515: 385, - 7516: 385, - 7517: 385, - 7518: 385, - 7519: 385, - 7520: 385, - 7521: 385, - 7522: 385, - 7523: 385, - 7524: 385, - 7525: 385, - 7526: 385, - 7527: 385, - 7528: 385, - 7529: 386, - 7530: 386, - 7531: 386, - 7532: 386, - 7533: 386, - 7534: 386, - 7535: 386, - 7536: 386, - 7537: 386, - 7538: 386, - 7539: 386, - 7540: 386, - 7541: 386, - 7542: 386, - 7543: 386, - 7544: 386, - 7545: 386, - 7546: 386, - 7547: 386, - 7548: 386, - 7549: 386, - 7550: 386, - 7551: 386, - 7552: 386, - 7553: 386, - 7554: 386, - 7555: 386, - 7556: 386, - 7557: 386, - 7558: 386, - 7559: 386, - 7560: 386, - 7561: 387, - 7562: 387, - 7563: 387, - 7564: 387, - 7565: 387, - 7566: 387, - 7567: 387, - 7568: 387, - 7569: 387, - 7570: 387, - 7571: 387, - 7572: 387, - 7573: 387, - 7574: 387, - 7575: 387, - 7576: 387, - 7577: 387, - 7578: 387, - 7579: 387, - 7580: 387, - 7581: 387, - 7582: 387, - 7583: 387, - 7584: 387, - 7585: 387, - 7586: 387, - 7587: 387, - 7588: 387, - 7589: 387, - 7590: 387, - 7591: 387, - 7592: 387, - 7593: 388, - 7594: 388, - 7595: 388, - 7596: 388, - 7597: 388, - 7598: 388, - 7599: 388, - 7600: 388, - 7601: 388, - 7602: 388, - 7603: 388, - 7604: 388, - 7605: 388, - 7606: 388, - 7607: 388, - 7608: 388, - 7609: 388, - 7610: 388, - 7611: 388, - 7612: 388, - 7613: 388, - 7614: 388, - 7615: 388, - 7616: 388, - 7617: 388, - 7618: 388, - 7619: 388, - 7620: 388, - 7621: 388, - 7622: 388, - 7623: 388, - 7624: 388, - 7625: 388, - 7626: 388, - 7627: 388, - 7628: 388, - 7629: 388, - 7630: 388, - 7631: 388, - 7632: 388, - 7633: 388, - 7634: 388, - 7635: 388, - 7636: 388, - 7637: 388, - 7638: 388, - 7639: 388, - 7640: 388, - 7641: 388, - 7642: 388, - 7643: 388, - 7644: 388, - 7645: 388, - 7646: 388, - 7647: 388, - 7648: 388, - 7649: 388, - 7650: 388, - 7651: 388, - 7652: 388, - 7653: 388, - 7654: 388, - 7655: 388, - 7656: 388, - 7657: 388, - 7658: 388, - 7659: 388, - 7660: 388, - 7661: 388, - 7662: 388, - 7663: 388, - 7664: 388, - 7665: 388, - 7666: 388, - 7667: 388, - 7668: 388, - 7669: 388, - 7670: 388, - 7671: 388, - 7672: 388, - 7673: 389, - 7674: 389, - 7675: 389, - 7676: 389, - 7677: 389, - 7678: 389, - 7679: 389, - 7680: 389, - 7681: 389, - 7682: 389, - 7683: 389, - 7684: 389, - 7685: 389, - 7686: 389, - 7687: 389, - 7688: 389, - 7689: 389, - 7690: 389, - 7691: 389, - 7692: 389, - 7693: 389, - 7694: 389, - 7695: 389, - 7696: 389, - 7697: 389, - 7698: 389, - 7699: 389, - 7700: 389, - 7701: 389, - 7702: 389, - 7703: 389, - 7704: 389, - 7705: 389, - 7706: 389, - 7707: 389, - 7708: 389, - 7709: 389, - 7710: 389, - 7711: 389, - 7712: 389, - 7713: 389, - 7714: 389, - 7715: 389, - 7716: 389, - 7717: 389, - 7718: 389, - 7719: 389, - 7720: 389, - 7721: 389, - 7722: 389, - 7723: 389, - 7724: 389, - 7725: 389, - 7726: 389, - 7727: 389, - 7728: 389, - 7729: 389, - 7730: 389, - 7731: 389, - 7732: 389, - 7733: 389, - 7734: 389, - 7735: 389, - 7736: 389, - 7737: 389, - 7738: 389, - 7739: 389, - 7740: 389, - 7741: 389, - 7742: 389, - 7743: 389, - 7744: 389, - 7745: 389, - 7746: 389, - 7747: 389, - 7748: 389, - 7749: 389, - 7750: 389, - 7751: 389, - 7752: 389, - 7753: 390, - 7754: 391, - 7755: 392, - 7756: 392, - 7757: 392, - 7758: 392, - 7759: 392, - 7760: 392, - 7761: 392, - 7762: 392, - 7763: 392, - 7764: 392, - 7765: 392, - 7766: 392, - 7767: 392, - 7768: 392, - 7769: 392, - 7770: 392, - 7771: 392, - 7772: 392, - 7773: 392, - 7774: 392, - 7775: 392, - 7776: 392, - 7777: 392, - 7778: 392, - 7779: 392, - 7780: 392, - 7781: 392, - 7782: 392, - 7783: 392, - 7784: 392, - 7785: 392, - 7786: 392, - 7787: 393, - 7788: 393, - 7789: 393, - 7790: 393, - 7791: 393, - 7792: 393, - 7793: 393, - 7794: 393, - 7795: 393, - 7796: 393, - 7797: 393, - 7798: 393, - 7799: 393, - 7800: 393, - 7801: 393, - 7802: 393, - 7803: 393, - 7804: 393, - 7805: 393, - 7806: 393, - 7807: 393, - 7808: 393, - 7809: 393, - 7810: 393, - 7811: 393, - 7812: 393, - 7813: 393, - 7814: 393, - 7815: 393, - 7816: 393, - 7817: 393, - 7818: 393, - 7819: 393, - 7820: 393, - 7821: 393, - 7822: 393, - 7823: 393, - 7824: 393, - 7825: 393, - 7826: 393, - 7827: 393, - 7828: 393, - 7829: 393, - 7830: 393, - 7831: 393, - 7832: 393, - 7833: 393, - 7834: 393, - 7835: 393, - 7836: 393, - 7837: 393, - 7838: 393, - 7839: 393, - 7840: 393, - 7841: 393, - 7842: 393, - 7843: 393, - 7844: 393, - 7845: 393, - 7846: 393, - 7847: 393, - 7848: 393, - 7849: 393, - 7850: 393, - 7851: 394, - 7852: 395, - 7853: 396, - 7854: 397, - 7855: 397, - 7856: 397, - 7857: 397, - 7858: 397, - 7859: 397, - 7860: 397, - 7861: 397, - 7862: 397, - 7863: 397, - 7864: 397, - 7865: 397, - 7866: 397, - 7867: 397, - 7868: 397, - 7869: 397, - 7870: 397, - 7871: 397, - 7872: 397, - 7873: 397, - 7874: 397, - 7875: 397, - 7876: 397, - 7877: 397, - 7878: 397, - 7879: 397, - 7880: 397, - 7881: 397, - 7882: 397, - 7883: 397, - 7884: 397, - 7885: 397, - 7886: 397, - 7887: 397, - 7888: 397, - 7889: 397, - 7890: 397, - 7891: 397, - 7892: 397, - 7893: 397, - 7894: 397, - 7895: 397, - 7896: 397, - 7897: 397, - 7898: 397, - 7899: 397, - 7900: 397, - 7901: 397, - 7902: 397, - 7903: 397, - 7904: 397, - 7905: 397, - 7906: 397, - 7907: 397, - 7908: 397, - 7909: 397, - 7910: 397, - 7911: 397, - 7912: 397, - 7913: 397, - 7914: 397, - 7915: 397, - 7916: 397, - 7917: 397, - 7918: 397, - 7919: 397, - 7920: 397, - 7921: 397, - 7922: 397, - 7923: 397, - 7924: 397, - 7925: 397, - 7926: 397, - 7927: 397, - 7928: 397, - 7929: 397, - 7930: 397, - 7931: 397, - 7932: 397, - 7933: 397, - 7934: 398, - 7935: 398, - 7936: 398, - 7937: 398, - 7938: 398, - 7939: 398, - 7940: 398, - 7941: 398, - 7942: 398, - 7943: 398, - 7944: 398, - 7945: 398, - 7946: 398, - 7947: 398, - 7948: 398, - 7949: 398, - 7950: 398, - 7951: 398, - 7952: 398, - 7953: 398, - 7954: 398, - 7955: 398, - 7956: 398, - 7957: 398, - 7958: 398, - 7959: 398, - 7960: 398, - 7961: 398, - 7962: 398, - 7963: 398, - 7964: 398, - 7965: 398, - 7966: 398, - 7967: 398, - 7968: 398, - 7969: 398, - 7970: 398, - 7971: 398, - 7972: 398, - 7973: 398, - 7974: 398, - 7975: 398, - 7976: 398, - 7977: 398, - 7978: 398, - 7979: 398, - 7980: 398, - 7981: 398, - 7982: 398, - 7983: 398, - 7984: 398, - 7985: 398, - 7986: 398, - 7987: 398, - 7988: 398, - 7989: 398, - 7990: 398, - 7991: 398, - 7992: 398, - 7993: 398, - 7994: 398, - 7995: 398, - 7996: 398, - 7997: 398, - 7998: 398, - 7999: 398, - 8000: 398, - 8001: 398, - 8002: 398, - 8003: 398, - 8004: 398, - 8005: 398, - 8006: 398, - 8007: 398, - 8008: 398, - 8009: 398, - 8010: 398, - 8011: 398, - 8012: 398, - 8013: 398, - 8014: 399, - 8015: 399, - 8016: 399, - 8017: 399, - 8018: 399, - 8019: 399, - 8020: 399, - 8021: 399, - 8022: 399, - 8023: 399, - 8024: 399, - 8025: 399, - 8026: 399, - 8027: 399, - 8028: 399, - 8029: 399, - 8030: 399, - 8031: 399, - 8032: 399, - 8033: 399, - 8034: 399, - 8035: 399, - 8036: 399, - 8037: 399, - 8038: 399, - 8039: 399, - 8040: 399, - 8041: 399, - 8042: 399, - 8043: 399, - 8044: 399, - 8045: 399, - 8046: 399, - 8047: 399, - 8048: 399, - 8049: 399, - 8050: 399, - 8051: 399, - 8052: 399, - 8053: 399, - 8054: 399, - 8055: 399, - 8056: 399, - 8057: 399, - 8058: 399, - 8059: 399, - 8060: 399, - 8061: 399, - 8062: 399, - 8063: 399, - 8064: 399, - 8065: 399, - 8066: 399, - 8067: 399, - 8068: 399, - 8069: 399, - 8070: 399, - 8071: 399, - 8072: 399, - 8073: 399, - 8074: 399, - 8075: 399, - 8076: 399, - 8077: 399, - 8078: 399, - 8079: 399, - 8080: 399, - 8081: 399, - 8082: 399, - 8083: 399, - 8084: 399, - 8085: 399, - 8086: 399, - 8087: 399, - 8088: 399, - 8089: 399, - 8090: 399, - 8091: 399, - 8092: 399, - 8093: 399, - 8094: 400, - 8095: 400, - 8096: 400, - 8097: 400, - 8098: 400, - 8099: 400, - 8100: 401, - 8101: 401, - 8102: 401, - 8103: 401, - 8104: 401, - 8105: 401, - 8106: 402, - 8107: 402, - 8108: 402, - 8109: 402, - 8110: 402, - 8111: 402, - 8112: 403, - 8113: 404, - 8114: 404, - 8115: 404, - 8116: 405, - 8117: 406, - 8118: 407, - 8119: 408, - 8120: 409, - 8121: 410, - 8122: 411, - 8123: 412, - 8124: 413, - 8125: 414, - 8126: 415, - 8127: 416, - 8128: 417, - 8129: 418, - 8130: 419, - 8131: 420, - 8132: 421, - 8133: 422, - 8134: 423, - 8135: 424, - 8136: 424, - 8137: 425, - 8138: 425, - 8139: 426, - 8140: 426, - 8141: 427, - 8142: 427, - 8143: 428, - 8144: 428, - 8145: 429, - 8146: 429, - 8147: 430, - 8148: 430, - 8149: 430, - 8150: 430, - 8151: 430, - 8152: 430, - 8153: 430, - 8154: 430, - 8155: 430, - 8156: 430, - 8157: 430, - 8158: 430, - 8159: 430, - 8160: 430, - 8161: 430, - 8162: 430, - 8163: 431, - 8164: 431, - 8165: 431, - 8166: 431, - 8167: 431, - 8168: 431, - 8169: 431, - 8170: 431, - 8171: 431, - 8172: 431, - 8173: 431, - 8174: 431, - 8175: 431, - 8176: 431, - 8177: 431, - 8178: 431, - 8179: 432, - 8180: 432, - 8181: 432, - 8182: 432, - 8183: 432, - 8184: 432, - 8185: 432, - 8186: 432, - 8187: 432, - 8188: 432, - 8189: 432, - 8190: 432, - 8191: 432, - 8192: 432, - 8193: 432, - 8194: 432, - 8195: 433, - 8196: 433, - 8197: 433, - 8198: 433, - 8199: 433, - 8200: 433, - 8201: 433, - 8202: 433, - 8203: 433, - 8204: 433, - 8205: 433, - 8206: 433, - 8207: 433, - 8208: 433, - 8209: 433, - 8210: 433, - 8211: 434, - 8212: 434, - 8213: 434, - 8214: 434, - 8215: 434, - 8216: 434, - 8217: 434, - 8218: 434, - 8219: 434, - 8220: 434, - 8221: 434, - 8222: 434, - 8223: 434, - 8224: 434, - 8225: 434, - 8226: 434, - 8227: 435, - 8228: 435, - 8229: 435, - 8230: 435, - 8231: 435, - 8232: 435, - 8233: 435, - 8234: 435, - 8235: 435, - 8236: 435, - 8237: 435, - 8238: 435, - 8239: 435, - 8240: 435, - 8241: 435, - 8242: 435, - 8243: 436, - 8244: 436, - 8245: 436, - 8246: 436, - 8247: 436, - 8248: 436, - 8249: 436, - 8250: 436, - 8251: 436, - 8252: 436, - 8253: 436, - 8254: 436, - 8255: 436, - 8256: 436, - 8257: 436, - 8258: 436, - 8259: 437, - 8260: 437, - 8261: 437, - 8262: 437, - 8263: 437, - 8264: 437, - 8265: 437, - 8266: 437, - 8267: 437, - 8268: 437, - 8269: 437, - 8270: 437, - 8271: 437, - 8272: 437, - 8273: 437, - 8274: 437, - 8275: 438, - 8276: 438, - 8277: 438, - 8278: 438, - 8279: 438, - 8280: 438, - 8281: 438, - 8282: 438, - 8283: 438, - 8284: 438, - 8285: 438, - 8286: 438, - 8287: 438, - 8288: 438, - 8289: 438, - 8290: 438, - 8291: 439, - 8292: 439, - 8293: 439, - 8294: 439, - 8295: 439, - 8296: 439, - 8297: 439, - 8298: 439, - 8299: 439, - 8300: 439, - 8301: 439, - 8302: 439, - 8303: 439, - 8304: 439, - 8305: 439, - 8306: 439, - 8307: 440, - 8308: 440, - 8309: 440, - 8310: 440, - 8311: 440, - 8312: 440, - 8313: 440, - 8314: 440, - 8315: 440, - 8316: 440, - 8317: 440, - 8318: 440, - 8319: 440, - 8320: 440, - 8321: 440, - 8322: 440, - 8323: 441, - 8324: 441, - 8325: 441, - 8326: 441, - 8327: 441, - 8328: 441, - 8329: 441, - 8330: 441, - 8331: 441, - 8332: 441, - 8333: 441, - 8334: 441, - 8335: 441, - 8336: 441, - 8337: 441, - 8338: 441, - 8339: 442, - 8340: 442, - 8341: 442, - 8342: 442, - 8343: 442, - 8344: 442, - 8345: 442, - 8346: 442, - 8347: 442, - 8348: 442, - 8349: 442, - 8350: 442, - 8351: 442, - 8352: 442, - 8353: 442, - 8354: 442, - 8355: 443, - 8356: 443, - 8357: 443, - 8358: 443, - 8359: 443, - 8360: 443, - 8361: 443, - 8362: 443, - 8363: 443, - 8364: 443, - 8365: 443, - 8366: 443, - 8367: 443, - 8368: 443, - 8369: 443, - 8370: 443, - 8371: 444, - 8372: 444, - 8373: 444, - 8374: 444, - 8375: 444, - 8376: 444, - 8377: 444, - 8378: 444, - 8379: 444, - 8380: 444, - 8381: 444, - 8382: 444, - 8383: 444, - 8384: 444, - 8385: 444, - 8386: 444, - 8387: 445, - 8388: 445, - 8389: 445, - 8390: 445, - 8391: 445, - 8392: 445, - 8393: 445, - 8394: 445, - 8395: 445, - 8396: 445, - 8397: 445, - 8398: 445, - 8399: 445, - 8400: 445, - 8401: 445, - 8402: 445, - 8403: 446, - 8404: 446, - 8405: 446, - 8406: 446, - 8407: 447, - 8408: 447, - 8409: 447, - 8410: 447, - 8411: 448, - 8412: 448, - 8413: 448, - 8414: 448, - 8415: 449, - 8416: 449, - 8417: 449, - 8418: 449, - 8419: 450, - 8420: 450, - 8421: 450, - 8422: 450, - 8423: 451, - 8424: 451, - 8425: 451, - 8426: 451, - 8427: 452, - 8428: 452, - 8429: 452, - 8430: 452, - 8431: 453, - 8432: 453, - 8433: 453, - 8434: 453, - 8435: 454, - 8436: 454, - 8437: 454, - 8438: 454, - 8439: 455, - 8440: 455, - 8441: 455, - 8442: 455, - 8443: 456, - 8444: 456, - 8445: 456, - 8446: 456, - 8447: 457, - 8448: 457, - 8449: 457, - 8450: 457, - 8451: 458, - 8452: 458, - 8453: 458, - 8454: 458, - 8455: 459, - 8456: 459, - 8457: 459, - 8458: 459, - 8459: 460, - 8460: 460, - 8461: 460, - 8462: 460, - 8463: 461, - 8464: 461, - 8465: 461, - 8466: 461, - 8467: 462, - 8468: 463, - 8469: 464, - 8470: 465, - 8471: 465, - 8472: 465, - 8473: 465, - 8474: 465, - 8475: 465, - 8476: 465, - 8477: 465, - 8478: 465, - 8479: 465, - 8480: 465, - 8481: 465, - 8482: 465, - 8483: 465, - 8484: 465, - 8485: 465, - 8486: 465, - 8487: 465, - 8488: 465, - 8489: 465, - 8490: 465, - 8491: 465, - 8492: 465, - 8493: 465, - 8494: 465, - 8495: 465, - 8496: 465, - 8497: 465, - 8498: 465, - 8499: 465, - 8500: 465, - 8501: 465, - 8502: 465, - 8503: 465, - 8504: 465, - 8505: 465, - 8506: 465, - 8507: 465, - 8508: 465, - 8509: 465, - 8510: 465, - 8511: 465, - 8512: 465, - 8513: 465, - 8514: 465, - 8515: 465, - 8516: 465, - 8517: 465, - 8518: 465, - 8519: 465, - 8520: 465, - 8521: 465, - 8522: 465, - 8523: 465, - 8524: 465, - 8525: 465, - 8526: 465, - 8527: 465, - 8528: 465, - 8529: 465, - 8530: 465, - 8531: 465, - 8532: 465, - 8533: 465, - 8534: 465, - 8535: 465, - 8536: 465, - 8537: 465, - 8538: 465, - 8539: 465, - 8540: 465, - 8541: 465, - 8542: 465, - 8543: 465, - 8544: 465, - 8545: 465, - 8546: 465, - 8547: 465, - 8548: 465, - 8549: 465, - 8550: 466, - 8551: 466, - 8552: 466, - 8553: 466, - 8554: 466, - 8555: 466, - 8556: 467, - 8557: 467, - 8558: 467, - 8559: 467, - 8560: 467, - 8561: 467, - 8562: 468, - 8563: 468, - 8564: 468, - 8565: 468, - 8566: 468, - 8567: 468, - 8568: 469, - 8569: 469, - 8570: 469, - 8571: 469, - 8572: 469, - 8573: 469, - 8574: 470, - 8575: 470, - 8576: 470, - 8577: 470, - 8578: 470, - 8579: 470, - 8580: 471, - 8581: 471, - 8582: 471, - 8583: 471, - 8584: 471, - 8585: 471, - 8586: 472, - 8587: 472, - 8588: 472, - 8589: 472, - 8590: 472, - 8591: 472, - 8592: 473, - 8593: 473, - 8594: 473, - 8595: 473, - 8596: 473, - 8597: 473, - 8598: 474, - 8599: 474, - 8600: 474, - 8601: 474, - 8602: 474, - 8603: 474, - 8604: 475, - 8605: 475, - 8606: 475, - 8607: 475, - 8608: 475, - 8609: 475, - 8610: 476, - 8611: 476, - 8612: 476, - 8613: 476, - 8614: 476, - 8615: 476, - 8616: 477, - 8617: 477, - 8618: 477, - 8619: 477, - 8620: 477, - 8621: 477, - 8622: 478, - 8623: 478, - 8624: 478, - 8625: 478, - 8626: 478, - 8627: 478, - 8628: 479, - 8629: 479, - 8630: 479, - 8631: 479, - 8632: 479, - 8633: 479, - 8634: 480, - 8635: 480, - 8636: 480, - 8637: 480, - 8638: 480, - 8639: 480, - 8640: 481, - 8641: 481, - 8642: 481, - 8643: 481, - 8644: 481, - 8645: 481, - 8646: 482, - 8647: 482, - 8648: 482, - 8649: 482, - 8650: 482, - 8651: 482, - 8652: 483, - 8653: 483, - 8654: 483, - 8655: 483, - 8656: 483, - 8657: 483, - 8658: 484, - 8659: 484, - 8660: 484, - 8661: 484, - 8662: 484, - 8663: 484, - 8664: 485, - 8665: 486, - 8666: 487, - 8667: 488, - 8668: 489, - 8669: 489, - 8670: 489, - 8671: 489, - 8672: 489, - 8673: 489, - 8674: 489, - 8675: 489, - 8676: 489, - 8677: 489, - 8678: 489, - 8679: 489, - 8680: 489, - 8681: 489, - 8682: 489, - 8683: 489, - 8684: 489, - 8685: 489, - 8686: 489, - 8687: 489, - 8688: 489, - 8689: 489, - 8690: 489, - 8691: 489, - 8692: 489, - 8693: 489, - 8694: 489, - 8695: 489, - 8696: 489, - 8697: 489, - 8698: 489, - 8699: 489, - 8700: 490, - 8701: 490, - 8702: 490, - 8703: 490, - 8704: 490, - 8705: 490, - 8706: 490, - 8707: 490, - 8708: 490, - 8709: 490, - 8710: 490, - 8711: 490, - 8712: 490, - 8713: 490, - 8714: 490, - 8715: 490, - 8716: 490, - 8717: 490, - 8718: 490, - 8719: 490, - 8720: 490, - 8721: 490, - 8722: 490, - 8723: 490, - 8724: 490, - 8725: 490, - 8726: 490, - 8727: 490, - 8728: 490, - 8729: 490, - 8730: 490, - 8731: 490, - 8732: 491, - 8733: 491, - 8734: 491, - 8735: 491, - 8736: 491, - 8737: 491, - 8738: 491, - 8739: 491, - 8740: 491, - 8741: 491, - 8742: 491, - 8743: 491, - 8744: 491, - 8745: 491, - 8746: 491, - 8747: 491, - 8748: 491, - 8749: 491, - 8750: 491, - 8751: 491, - 8752: 491, - 8753: 491, - 8754: 491, - 8755: 491, - 8756: 491, - 8757: 491, - 8758: 491, - 8759: 491, - 8760: 491, - 8761: 491, - 8762: 491, - 8763: 491, - 8764: 492, - 8765: 492, - 8766: 492, - 8767: 492, - 8768: 492, - 8769: 492, - 8770: 492, - 8771: 492, - 8772: 492, - 8773: 492, - 8774: 492, - 8775: 492, - 8776: 492, - 8777: 492, - 8778: 492, - 8779: 492, - 8780: 492, - 8781: 492, - 8782: 492, - 8783: 492, - 8784: 492, - 8785: 492, - 8786: 492, - 8787: 492, - 8788: 492, - 8789: 492, - 8790: 492, - 8791: 492, - 8792: 492, - 8793: 492, - 8794: 492, - 8795: 492, - 8796: 493, - 8797: 493, - 8798: 493, - 8799: 493, - 8800: 493, - 8801: 493, - 8802: 493, - 8803: 493, - 8804: 493, - 8805: 493, - 8806: 493, - 8807: 493, - 8808: 493, - 8809: 493, - 8810: 493, - 8811: 493, - 8812: 493, - 8813: 493, - 8814: 493, - 8815: 493, - 8816: 493, - 8817: 493, - 8818: 493, - 8819: 493, - 8820: 493, - 8821: 493, - 8822: 493, - 8823: 493, - 8824: 493, - 8825: 493, - 8826: 493, - 8827: 493, - 8828: 494, - 8829: 494, - 8830: 494, - 8831: 494, - 8832: 494, - 8833: 494, - 8834: 494, - 8835: 494, - 8836: 494, - 8837: 494, - 8838: 494, - 8839: 494, - 8840: 494, - 8841: 494, - 8842: 494, - 8843: 494, - 8844: 494, - 8845: 494, - 8846: 494, - 8847: 494, - 8848: 494, - 8849: 494, - 8850: 494, - 8851: 494, - 8852: 494, - 8853: 494, - 8854: 494, - 8855: 494, - 8856: 494, - 8857: 494, - 8858: 494, - 8859: 494, - 8860: 495, - 8861: 495, - 8862: 495, - 8863: 495, - 8864: 495, - 8865: 495, - 8866: 495, - 8867: 495, - 8868: 495, - 8869: 495, - 8870: 495, - 8871: 495, - 8872: 495, - 8873: 495, - 8874: 495, - 8875: 495, - 8876: 495, - 8877: 495, - 8878: 495, - 8879: 495, - 8880: 495, - 8881: 495, - 8882: 495, - 8883: 495, - 8884: 495, - 8885: 495, - 8886: 495, - 8887: 495, - 8888: 495, - 8889: 495, - 8890: 495, - 8891: 495, - 8892: 496, - 8893: 496, - 8894: 496, - 8895: 496, - 8896: 496, - 8897: 496, - 8898: 496, - 8899: 496, - 8900: 496, - 8901: 496, - 8902: 496, - 8903: 496, - 8904: 496, - 8905: 496, - 8906: 496, - 8907: 496, - 8908: 496, - 8909: 496, - 8910: 496, - 8911: 496, - 8912: 496, - 8913: 496, - 8914: 496, - 8915: 496, - 8916: 496, - 8917: 496, - 8918: 496, - 8919: 496, - 8920: 496, - 8921: 496, - 8922: 496, - 8923: 496, - 8924: 497, - 8925: 497, - 8926: 497, - 8927: 497, - 8928: 497, - 8929: 497, - 8930: 497, - 8931: 497, - 8932: 497, - 8933: 497, - 8934: 497, - 8935: 497, - 8936: 497, - 8937: 497, - 8938: 497, - 8939: 497, - 8940: 497, - 8941: 497, - 8942: 497, - 8943: 497, - 8944: 497, - 8945: 497, - 8946: 497, - 8947: 497, - 8948: 497, - 8949: 497, - 8950: 497, - 8951: 497, - 8952: 497, - 8953: 497, - 8954: 497, - 8955: 497, - 8956: 498, - 8957: 498, - 8958: 498, - 8959: 498, - 8960: 498, - 8961: 498, - 8962: 498, - 8963: 498, - 8964: 498, - 8965: 498, - 8966: 498, - 8967: 498, - 8968: 498, - 8969: 498, - 8970: 498, - 8971: 498, - 8972: 498, - 8973: 498, - 8974: 498, - 8975: 498, - 8976: 498, - 8977: 498, - 8978: 498, - 8979: 498, - 8980: 498, - 8981: 498, - 8982: 498, - 8983: 498, - 8984: 498, - 8985: 498, - 8986: 498, - 8987: 498, - 8988: 499, - 8989: 499, - 8990: 499, - 8991: 499, - 8992: 499, - 8993: 499, - 8994: 499, - 8995: 499, - 8996: 499, - 8997: 499, - 8998: 499, - 8999: 499, - 9000: 499, - 9001: 499, - 9002: 499, - 9003: 499, - 9004: 499, - 9005: 499, - 9006: 499, - 9007: 499, - 9008: 499, - 9009: 499, - 9010: 499, - 9011: 499, - 9012: 499, - 9013: 499, - 9014: 499, - 9015: 499, - 9016: 499, - 9017: 499, - 9018: 499, - 9019: 499, - 9020: 499, - 9021: 499, - 9022: 499, - 9023: 499, - 9024: 499, - 9025: 499, - 9026: 499, - 9027: 499, - 9028: 499, - 9029: 499, - 9030: 499, - 9031: 499, - 9032: 499, - 9033: 499, - 9034: 499, - 9035: 499, - 9036: 499, - 9037: 499, - 9038: 499, - 9039: 499, - 9040: 499, - 9041: 499, - 9042: 499, - 9043: 499, - 9044: 499, - 9045: 499, - 9046: 499, - 9047: 499, - 9048: 499, - 9049: 499, - 9050: 499, - 9051: 499, - 9052: 500, - 9053: 500, - 9054: 500, - 9055: 500, - 9056: 500, - 9057: 500, - 9058: 500, - 9059: 500, - 9060: 500, - 9061: 500, - 9062: 500, - 9063: 500, - 9064: 500, - 9065: 500, - 9066: 500, - 9067: 500, - 9068: 500, - 9069: 500, - 9070: 500, - 9071: 500, - 9072: 500, - 9073: 500, - 9074: 500, - 9075: 500, - 9076: 500, - 9077: 500, - 9078: 500, - 9079: 500, - 9080: 500, - 9081: 500, - 9082: 500, - 9083: 500, - 9084: 500, - 9085: 500, - 9086: 500, - 9087: 500, - 9088: 500, - 9089: 500, - 9090: 500, - 9091: 500, - 9092: 500, - 9093: 500, - 9094: 500, - 9095: 500, - 9096: 500, - 9097: 500, - 9098: 500, - 9099: 500, - 9100: 500, - 9101: 500, - 9102: 500, - 9103: 500, - 9104: 500, - 9105: 500, - 9106: 500, - 9107: 500, - 9108: 500, - 9109: 500, - 9110: 500, - 9111: 500, - 9112: 500, - 9113: 500, - 9114: 500, - 9115: 500, - 9116: 501, - 9117: 501, - 9118: 501, - 9119: 501, - 9120: 501, - 9121: 501, - 9122: 501, - 9123: 501, - 9124: 501, - 9125: 501, - 9126: 501, - 9127: 501, - 9128: 501, - 9129: 501, - 9130: 501, - 9131: 501, - 9132: 501, - 9133: 501, - 9134: 501, - 9135: 501, - 9136: 501, - 9137: 501, - 9138: 501, - 9139: 501, - 9140: 501, - 9141: 501, - 9142: 501, - 9143: 501, - 9144: 501, - 9145: 501, - 9146: 501, - 9147: 501, - 9148: 501, - 9149: 501, - 9150: 501, - 9151: 501, - 9152: 501, - 9153: 501, - 9154: 501, - 9155: 501, - 9156: 501, - 9157: 501, - 9158: 501, - 9159: 501, - 9160: 501, - 9161: 501, - 9162: 501, - 9163: 501, - 9164: 501, - 9165: 501, - 9166: 501, - 9167: 501, - 9168: 501, - 9169: 501, - 9170: 501, - 9171: 501, - 9172: 501, - 9173: 501, - 9174: 501, - 9175: 501, - 9176: 501, - 9177: 501, - 9178: 501, - 9179: 501, - 9180: 502, - 9181: 502, - 9182: 502, - 9183: 502, - 9184: 502, - 9185: 502, - 9186: 502, - 9187: 502, - 9188: 502, - 9189: 502, - 9190: 502, - 9191: 502, - 9192: 502, - 9193: 502, - 9194: 502, - 9195: 502, - 9196: 502, - 9197: 502, - 9198: 502, - 9199: 502, - 9200: 502, - 9201: 502, - 9202: 502, - 9203: 502, - 9204: 502, - 9205: 502, - 9206: 502, - 9207: 502, - 9208: 502, - 9209: 502, - 9210: 502, - 9211: 502, - 9212: 502, - 9213: 502, - 9214: 502, - 9215: 502, - 9216: 502, - 9217: 502, - 9218: 502, - 9219: 502, - 9220: 502, - 9221: 502, - 9222: 502, - 9223: 502, - 9224: 502, - 9225: 502, - 9226: 502, - 9227: 502, - 9228: 502, - 9229: 502, - 9230: 502, - 9231: 502, - 9232: 502, - 9233: 502, - 9234: 502, - 9235: 502, - 9236: 502, - 9237: 502, - 9238: 502, - 9239: 502, - 9240: 502, - 9241: 502, - 9242: 502, - 9243: 502, - 9244: 503, - 9245: 503, - 9246: 503, - 9247: 503, - 9248: 503, - 9249: 503, - 9250: 503, - 9251: 503, - 9252: 503, - 9253: 503, - 9254: 503, - 9255: 503, - 9256: 503, - 9257: 503, - 9258: 503, - 9259: 503, - 9260: 503, - 9261: 503, - 9262: 503, - 9263: 503, - 9264: 503, - 9265: 503, - 9266: 503, - 9267: 503, - 9268: 503, - 9269: 503, - 9270: 503, - 9271: 503, - 9272: 503, - 9273: 503, - 9274: 503, - 9275: 503, - 9276: 503, - 9277: 503, - 9278: 503, - 9279: 503, - 9280: 503, - 9281: 503, - 9282: 503, - 9283: 503, - 9284: 503, - 9285: 503, - 9286: 503, - 9287: 503, - 9288: 503, - 9289: 503, - 9290: 503, - 9291: 503, - 9292: 503, - 9293: 503, - 9294: 503, - 9295: 503, - 9296: 503, - 9297: 503, - 9298: 503, - 9299: 503, - 9300: 503, - 9301: 503, - 9302: 503, - 9303: 503, - 9304: 503, - 9305: 503, - 9306: 503, - 9307: 503, - 9308: 504, - 9309: 504, - 9310: 504, - 9311: 504, - 9312: 504, - 9313: 504, - 9314: 505, - 9315: 505, - 9316: 505, - 9317: 505, - 9318: 505, - 9319: 505, - 9320: 505, - 9321: 505, - 9322: 505, - 9323: 505, - 9324: 505, - 9325: 505, - 9326: 505, - 9327: 505, - 9328: 505, - 9329: 505, - 9330: 505, - 9331: 505, - 9332: 505, - 9333: 505, - 9334: 505, - 9335: 505, - 9336: 505, - 9337: 505, - 9338: 505, - 9339: 505, - 9340: 505, - 9341: 505, - 9342: 505, - 9343: 505, - 9344: 505, - 9345: 505, - 9346: 505, - 9347: 505, - 9348: 505, - 9349: 505, - 9350: 505, - 9351: 505, - 9352: 505, - 9353: 505, - 9354: 505, - 9355: 505, - 9356: 505, - 9357: 505, - 9358: 505, - 9359: 505, - 9360: 505, - 9361: 505, - 9362: 505, - 9363: 505, - 9364: 505, - 9365: 505, - 9366: 505, - 9367: 505, - 9368: 505, - 9369: 505, - 9370: 505, - 9371: 505, - 9372: 505, - 9373: 505, - 9374: 505, - 9375: 505, - 9376: 505, - 9377: 505, - 9378: 506, - 9379: 506, - 9380: 506, - 9381: 506, - 9382: 506, - 9383: 506, - 9384: 507, - 9385: 508, - 9386: 508, - 9387: 508, - 9388: 509, - 9389: 509, - 9390: 509, - 9391: 509, - 9392: 509, - 9393: 509, - 9394: 509, - 9395: 509, - 9396: 509, - 9397: 509, - 9398: 509, - 9399: 509, - 9400: 509, - 9401: 509, - 9402: 509, - 9403: 509, - 9404: 509, - 9405: 509, - 9406: 509, - 9407: 509, - 9408: 509, - 9409: 509, - 9410: 509, - 9411: 509, - 9412: 509, - 9413: 509, - 9414: 509, - 9415: 509, - 9416: 509, - 9417: 509, - 9418: 509, - 9419: 509, - 9420: 509, - 9421: 509, - 9422: 509, - 9423: 509, - 9424: 509, - 9425: 509, - 9426: 509, - 9427: 509, - 9428: 509, - 9429: 509, - 9430: 509, - 9431: 509, - 9432: 509, - 9433: 509, - 9434: 509, - 9435: 509, - 9436: 509, - 9437: 509, - 9438: 509, - 9439: 509, - 9440: 509, - 9441: 509, - 9442: 509, - 9443: 509, - 9444: 509, - 9445: 509, - 9446: 509, - 9447: 509, - 9448: 509, - 9449: 509, - 9450: 509, - 9451: 509, - 9452: 509, - 9453: 509, - 9454: 509, - 9455: 509, - 9456: 509, - 9457: 509, - 9458: 509, - 9459: 509, - 9460: 509, - 9461: 509, - 9462: 509, - 9463: 509, - 9464: 509, - 9465: 509, - 9466: 509, - 9467: 509, - 9468: 510, - 9469: 511, - 9470: 511, - 9471: 511, - 9472: 511, - 9473: 512, - 9474: 513, - 9475: 514, - 9476: 514, - 9477: 514, - 9478: 514, - 9479: 514, - 9480: 514, - 9481: 514, - 9482: 514, - 9483: 514, - 9484: 514, - 9485: 514, - 9486: 514, - 9487: 515, - 9488: 515, - 9489: 515, - 9490: 515, - 9491: 515, - 9492: 515, - 9493: 515, - 9494: 515, - 9495: 515, - 9496: 515, - 9497: 515, - 9498: 515, - 9499: 516, - 9500: 516, - 9501: 516, - 9502: 516, - 9503: 517, - 9504: 518, - 9505: 519, - 9506: 520, - 9507: 520, - 9508: 520, - 9509: 521, - 9510: 522, - 9511: 522, - 9512: 522, - 9513: 522, - 9514: 522, - 9515: 522, - 9516: 522, - 9517: 522, - 9518: 522, - 9519: 522, - 9520: 522, - 9521: 522, - 9522: 523, - 9523: 523, - 9524: 523, - 9525: 523, - 9526: 523, - 9527: 523, - 9528: 524, - 9529: 524, - 9530: 524, - 9531: 524, - 9532: 524, - 9533: 524, - 9534: 525, - 9535: 525, - 9536: 525, - 9537: 525, - 9538: 525, - 9539: 525, - 9540: 526, - 9541: 526, - 9542: 526, - 9543: 526, - 9544: 526, - 9545: 526, - 9546: 527, - 9547: 527, - 9548: 527, - 9549: 527, - 9550: 527, - 9551: 527, - 9552: 528, - 9553: 528, - 9554: 528, - 9555: 528, - 9556: 528, - 9557: 528, - 9558: 529, - 9559: 529, - 9560: 529, - 9561: 529, - 9562: 529, - 9563: 529, - 9564: 530, - 9565: 530, - 9566: 530, - 9567: 530, - 9568: 530, - 9569: 530, - 9570: 531, - 9571: 531, - 9572: 531, - 9573: 531, - 9574: 531, - 9575: 531, - 9576: 532, - 9577: 532, - 9578: 532, - 9579: 532, - 9580: 532, - 9581: 532, - 9582: 533, - 9583: 533, - 9584: 533, - 9585: 533, - 9586: 533, - 9587: 533, - 9588: 534, - 9589: 534, - 9590: 534, - 9591: 534, - 9592: 534, - 9593: 534, - 9594: 535, - 9595: 535, - 9596: 535, - 9597: 535, - 9598: 535, - 9599: 535, - 9600: 536, - 9601: 536, - 9602: 536, - 9603: 536, - 9604: 536, - 9605: 536, - 9606: 537, - 9607: 537, - 9608: 537, - 9609: 537, - 9610: 537, - 9611: 537, - 9612: 538, - 9613: 538, - 9614: 538, - 9615: 538, - 9616: 538, - 9617: 538, - 9618: 539, - 9619: 539, - 9620: 539, - 9621: 539, - 9622: 539, - 9623: 539, - 9624: 540, - 9625: 540, - 9626: 540, - 9627: 540, - 9628: 541, - 9629: 541, - 9630: 541, - 9631: 541, - 9632: 542, - 9633: 542, - 9634: 542, - 9635: 542, - 9636: 543, - 9637: 543, - 9638: 543, - 9639: 543, - 9640: 544, - 9641: 544, - 9642: 544, - 9643: 544, - 9644: 545, - 9645: 545, - 9646: 545, - 9647: 545, - 9648: 546, - 9649: 546, - 9650: 546, - 9651: 546, - 9652: 547, - 9653: 547, - 9654: 547, - 9655: 547, - 9656: 548, - 9657: 548, - 9658: 548, - 9659: 548, - 9660: 549, - 9661: 549, - 9662: 549, - 9663: 549, - 9664: 550, - 9665: 550, - 9666: 550, - 9667: 550, - 9668: 551, - 9669: 551, - 9670: 551, - 9671: 551, - 9672: 552, - 9673: 552, - 9674: 552, - 9675: 552, - 9676: 553, - 9677: 553, - 9678: 553, - 9679: 553, - 9680: 554, - 9681: 554, - 9682: 554, - 9683: 554, - 9684: 555, - 9685: 555, - 9686: 555, - 9687: 555, - 9688: 556, - 9689: 557, - 9690: 558, - 9691: 559, - 9692: 560, - 9693: 561, - 9694: 562, - 9695: 563, - 9696: 564, - 9697: 565, - 9698: 566, - 9699: 567, - 9700: 568, - 9701: 569, - 9702: 570, - 9703: 571, - 9704: 572, - 9705: 573, - 9706: 574, - 9707: 575, - 9708: 576, - 9709: 577, - 9710: 578, - 9711: 579, - 9712: 580, - 9713: 581, - 9714: 582, - 9715: 583, - 9716: 584, - 9717: 585, - 9718: 586, - 9719: 587, - 9720: 588, - 9721: 588, - 9722: 588, - 9723: 588, - 9724: 588, - 9725: 588, - 9726: 588, - 9727: 588, - 9728: 588, - 9729: 588, - 9730: 588, - 9731: 588, - 9732: 588, - 9733: 588, - 9734: 588, - 9735: 588, - 9736: 588, - 9737: 588, - 9738: 588, - 9739: 588, - 9740: 588, - 9741: 588, - 9742: 588, - 9743: 588, - 9744: 588, - 9745: 588, - 9746: 589, - 9747: 590, - 9748: 591, - 9749: 591, - 9750: 591, - 9751: 591, - 9752: 591, - 9753: 591, - 9754: 591, - 9755: 591, - 9756: 591, - 9757: 591, - 9758: 591, - 9759: 591, - 9760: 592, - 9761: 593, - 9762: 594, - 9763: 595, - 9764: 596, - 9765: 597, - 9766: 598, - 9767: 599, - 9768: 600, - 9769: 601, - 9770: 602, - 9771: 602, - 9772: 603, - 9773: 603, - 9774: 604, - 9775: 604, - 9776: 605, - 9777: 605, - 9778: 606, - 9779: 606, - 9780: 607, - 9781: 607, - 9782: 608, - 9783: 608, - 9784: 609, - 9785: 609, - 9786: 610, - 9787: 610, - 9788: 611, - 9789: 611, - 9790: 612, - 9791: 612, - 9792: 613, - 9793: 613, - 9794: 614, - 9795: 614, - 9796: 615, - 9797: 615, - 9798: 616, - 9799: 616, - 9800: 617, - 9801: 617, - 9802: 618, - 9803: 618, - 9804: 619, - 9805: 619, - 9806: 620, - 9807: 620, - 9808: 621, - 9809: 621, - 9810: 622, - 9811: 622, - 9812: 622, - 9813: 622, - 9814: 622, - 9815: 622, - 9816: 622, - 9817: 622, - 9818: 623, - 9819: 623, - 9820: 623, - 9821: 623, - 9822: 623, - 9823: 623, - 9824: 623, - 9825: 623, - 9826: 624, - 9827: 624, - 9828: 624, - 9829: 624, - 9830: 624, - 9831: 624, - 9832: 624, - 9833: 624, - 9834: 625, - 9835: 625, - 9836: 625, - 9837: 625, - 9838: 625, - 9839: 625, - 9840: 625, - 9841: 625, - 9842: 626, - 9843: 626, - 9844: 626, - 9845: 626, - 9846: 626, - 9847: 626, - 9848: 626, - 9849: 626, - 9850: 627, - 9851: 627, - 9852: 627, - 9853: 627, - 9854: 627, - 9855: 627, - 9856: 627, - 9857: 627, - 9858: 628, - 9859: 628, - 9860: 628, - 9861: 628, - 9862: 628, - 9863: 628, - 9864: 628, - 9865: 628, - 9866: 629, - 9867: 629, - 9868: 629, - 9869: 629, - 9870: 629, - 9871: 629, - 9872: 629, - 9873: 629, - 9874: 630, - 9875: 630, - 9876: 630, - 9877: 630, - 9878: 630, - 9879: 630, - 9880: 630, - 9881: 630, - 9882: 631, - 9883: 631, - 9884: 631, - 9885: 631, - 9886: 631, - 9887: 631, - 9888: 631, - 9889: 631, - 9890: 632, - 9891: 632, - 9892: 632, - 9893: 632, - 9894: 632, - 9895: 632, - 9896: 632, - 9897: 632, - 9898: 633, - 9899: 634, - 9900: 634, - 9901: 635, - 9902: 636, - 9903: 636, - 9904: 636, - 9905: 636, - 9906: 636, - 9907: 636, - 9908: 636, - 9909: 636, - 9910: 636, - 9911: 636, - 9912: 636, - 9913: 636, - 9914: 637, - 9915: 638, - 9916: 639, - 9917: 640, - 9918: 640, - 9919: 641, - 9920: 641, - 9921: 641, - 9922: 641, - 9923: 641, - 9924: 641, - 9925: 641, - 9926: 641, - 9927: 641, - 9928: 641, - 9929: 641, - 9930: 641, - 9931: 641, - 9932: 641, - 9933: 641, - 9934: 641, - 9935: 641, - 9936: 641, - 9937: 641, - 9938: 641, - 9939: 641, - 9940: 641, - 9941: 641, - 9942: 641, - 9943: 641, - 9944: 641, - 9945: 641, - 9946: 641, - 9947: 641, - 9948: 641, - 9949: 641, - 9950: 641, - 9951: 641, - 9952: 641, - 9953: 641, - 9954: 641, - 9955: 641, - 9956: 641, - 9957: 641, - 9958: 641, - 9959: 641, - 9960: 641, - 9961: 641, - 9962: 641, - 9963: 641, - 9964: 641, - 9965: 641, - 9966: 641, - 9967: 641, - 9968: 641, - 9969: 641, - 9970: 641, - 9971: 641, - 9972: 641, - 9973: 641, - 9974: 641, - 9975: 641, - 9976: 641, - 9977: 641, - 9978: 641, - 9979: 641, - 9980: 641, - 9981: 641, - 9982: 641, - 9983: 641, - 9984: 641, - 9985: 641, - 9986: 641, - 9987: 641, - 9988: 641, - 9989: 641, - 9990: 641, - 9991: 641, - 9992: 641, - 9993: 641, - 9994: 641, - 9995: 641, - 9996: 641, - 9997: 641, - 9998: 641, - 9999: 642, - 10000: 642, - 10001: 642, - 10002: 642, - 10003: 642, - 10004: 642, - 10005: 642, - 10006: 642, - 10007: 642, - 10008: 642, - 10009: 642, - 10010: 642, - 10011: 642, - 10012: 642, - 10013: 642, - 10014: 642, - 10015: 642, - 10016: 642, - 10017: 642, - 10018: 642, - 10019: 642, - 10020: 642, - 10021: 642, - 10022: 642, - 10023: 642, - 10024: 642, - 10025: 642, - 10026: 642, - 10027: 642, - 10028: 642, - 10029: 642, - 10030: 642, - 10031: 642, - 10032: 642, - 10033: 642, - 10034: 642, - 10035: 642, - 10036: 642, - 10037: 642, - 10038: 642, - 10039: 642, - 10040: 642, - 10041: 642, - 10042: 642, - 10043: 642, - 10044: 642, - 10045: 642, - 10046: 642, - 10047: 642, - 10048: 642, - 10049: 642, - 10050: 642, - 10051: 642, - 10052: 642, - 10053: 642, - 10054: 642, - 10055: 642, - 10056: 642, - 10057: 642, - 10058: 642, - 10059: 642, - 10060: 642, - 10061: 642, - 10062: 642, - 10063: 642, - 10064: 642, - 10065: 642, - 10066: 642, - 10067: 642, - 10068: 642, - 10069: 642, - 10070: 642, - 10071: 642, - 10072: 642, - 10073: 642, - 10074: 642, - 10075: 642, - 10076: 642, - 10077: 642, - 10078: 642, - 10079: 643, - 10080: 643, - 10081: 643, - 10082: 643, - 10083: 643, - 10084: 643, - 10085: 643, - 10086: 643, - 10087: 643, - 10088: 643, - 10089: 643, - 10090: 643, - 10091: 643, - 10092: 643, - 10093: 643, - 10094: 643, - 10095: 643, - 10096: 643, - 10097: 643, - 10098: 643, - 10099: 643, - 10100: 643, - 10101: 643, - 10102: 643, - 10103: 643, - 10104: 643, - 10105: 643, - 10106: 643, - 10107: 643, - 10108: 643, - 10109: 643, - 10110: 643, - 10111: 643, - 10112: 643, - 10113: 643, - 10114: 643, - 10115: 643, - 10116: 643, - 10117: 643, - 10118: 643, - 10119: 643, - 10120: 643, - 10121: 643, - 10122: 643, - 10123: 643, - 10124: 643, - 10125: 643, - 10126: 643, - 10127: 643, - 10128: 643, - 10129: 643, - 10130: 643, - 10131: 643, - 10132: 643, - 10133: 643, - 10134: 643, - 10135: 643, - 10136: 643, - 10137: 643, - 10138: 643, - 10139: 643, - 10140: 643, - 10141: 643, - 10142: 643, - 10143: 643, - 10144: 643, - 10145: 643, - 10146: 643, - 10147: 643, - 10148: 643, - 10149: 643, - 10150: 643, - 10151: 643, - 10152: 643, - 10153: 643, - 10154: 643, - 10155: 643, - 10156: 643, - 10157: 643, - 10158: 643, - 10159: 644, - 10160: 644, - 10161: 644, - 10162: 644, - 10163: 644, - 10164: 644, - 10165: 644, - 10166: 644, - 10167: 644, - 10168: 644, - 10169: 644, - 10170: 644, - 10171: 644, - 10172: 644, - 10173: 644, - 10174: 644, - 10175: 644, - 10176: 644, - 10177: 644, - 10178: 644, - 10179: 644, - 10180: 644, - 10181: 644, - 10182: 644, - 10183: 644, - 10184: 644, - 10185: 644, - 10186: 644, - 10187: 644, - 10188: 644, - 10189: 644, - 10190: 644, - 10191: 644, - 10192: 644, - 10193: 644, - 10194: 644, - 10195: 644, - 10196: 644, - 10197: 644, - 10198: 644, - 10199: 644, - 10200: 644, - 10201: 644, - 10202: 644, - 10203: 644, - 10204: 644, - 10205: 644, - 10206: 644, - 10207: 644, - 10208: 644, - 10209: 644, - 10210: 644, - 10211: 644, - 10212: 644, - 10213: 644, - 10214: 644, - 10215: 644, - 10216: 644, - 10217: 644, - 10218: 644, - 10219: 644, - 10220: 644, - 10221: 644, - 10222: 644, - 10223: 644, - 10224: 644, - 10225: 644, - 10226: 644, - 10227: 644, - 10228: 644, - 10229: 644, - 10230: 644, - 10231: 644, - 10232: 644, - 10233: 644, - 10234: 644, - 10235: 644, - 10236: 644, - 10237: 644, - 10238: 644, - 10239: 645, - 10240: 645, - 10241: 645, - 10242: 645, - 10243: 645, - 10244: 645, - 10245: 645, - 10246: 645, - 10247: 645, - 10248: 645, - 10249: 645, - 10250: 645, - 10251: 645, - 10252: 645, - 10253: 645, - 10254: 645, - 10255: 645, - 10256: 645, - 10257: 645, - 10258: 645, - 10259: 645, - 10260: 645, - 10261: 645, - 10262: 645, - 10263: 645, - 10264: 645, - 10265: 645, - 10266: 645, - 10267: 645, - 10268: 645, - 10269: 645, - 10270: 645, - 10271: 645, - 10272: 645, - 10273: 645, - 10274: 645, - 10275: 645, - 10276: 645, - 10277: 645, - 10278: 645, - 10279: 645, - 10280: 645, - 10281: 645, - 10282: 645, - 10283: 645, - 10284: 645, - 10285: 645, - 10286: 645, - 10287: 645, - 10288: 645, - 10289: 645, - 10290: 645, - 10291: 645, - 10292: 645, - 10293: 645, - 10294: 645, - 10295: 645, - 10296: 645, - 10297: 645, - 10298: 645, - 10299: 645, - 10300: 645, - 10301: 645, - 10302: 645, - 10303: 645, - 10304: 645, - 10305: 645, - 10306: 645, - 10307: 645, - 10308: 645, - 10309: 645, - 10310: 645, - 10311: 645, - 10312: 645, - 10313: 645, - 10314: 645, - 10315: 645, - 10316: 645, - 10317: 645, - 10318: 645, - 10319: 646, - 10320: 646, - 10321: 646, - 10322: 646, - 10323: 646, - 10324: 646, - 10325: 646, - 10326: 646, - 10327: 646, - 10328: 646, - 10329: 646, - 10330: 646, - 10331: 646, - 10332: 646, - 10333: 646, - 10334: 646, - 10335: 646, - 10336: 646, - 10337: 646, - 10338: 646, - 10339: 646, - 10340: 646, - 10341: 646, - 10342: 646, - 10343: 646, - 10344: 646, - 10345: 646, - 10346: 646, - 10347: 646, - 10348: 646, - 10349: 646, - 10350: 646, - 10351: 646, - 10352: 646, - 10353: 646, - 10354: 646, - 10355: 646, - 10356: 646, - 10357: 646, - 10358: 646, - 10359: 646, - 10360: 646, - 10361: 646, - 10362: 646, - 10363: 646, - 10364: 646, - 10365: 646, - 10366: 646, - 10367: 646, - 10368: 646, - 10369: 646, - 10370: 646, - 10371: 646, - 10372: 646, - 10373: 646, - 10374: 646, - 10375: 646, - 10376: 646, - 10377: 646, - 10378: 646, - 10379: 646, - 10380: 646, - 10381: 646, - 10382: 646, - 10383: 646, - 10384: 646, - 10385: 646, - 10386: 646, - 10387: 646, - 10388: 646, - 10389: 646, - 10390: 646, - 10391: 646, - 10392: 646, - 10393: 646, - 10394: 646, - 10395: 646, - 10396: 646, - 10397: 646, - 10398: 646, - 10399: 647, - 10400: 647, - 10401: 647, - 10402: 647, - 10403: 647, - 10404: 647, - 10405: 647, - 10406: 647, - 10407: 647, - 10408: 647, - 10409: 647, - 10410: 647, - 10411: 647, - 10412: 647, - 10413: 647, - 10414: 647, - 10415: 647, - 10416: 647, - 10417: 647, - 10418: 647, - 10419: 647, - 10420: 647, - 10421: 647, - 10422: 647, - 10423: 647, - 10424: 647, - 10425: 647, - 10426: 647, - 10427: 647, - 10428: 647, - 10429: 647, - 10430: 647, - 10431: 647, - 10432: 647, - 10433: 647, - 10434: 647, - 10435: 647, - 10436: 647, - 10437: 647, - 10438: 647, - 10439: 647, - 10440: 647, - 10441: 647, - 10442: 647, - 10443: 647, - 10444: 647, - 10445: 647, - 10446: 647, - 10447: 647, - 10448: 647, - 10449: 647, - 10450: 647, - 10451: 647, - 10452: 647, - 10453: 647, - 10454: 647, - 10455: 647, - 10456: 647, - 10457: 647, - 10458: 647, - 10459: 647, - 10460: 647, - 10461: 647, - 10462: 647, - 10463: 647, - 10464: 647, - 10465: 647, - 10466: 647, - 10467: 647, - 10468: 647, - 10469: 647, - 10470: 647, - 10471: 647, - 10472: 647, - 10473: 647, - 10474: 647, - 10475: 647, - 10476: 647, - 10477: 647, - 10478: 647, - 10479: 648, - 10480: 648, - 10481: 648, - 10482: 648, - 10483: 648, - 10484: 648, - 10485: 648, - 10486: 648, - 10487: 648, - 10488: 648, - 10489: 648, - 10490: 648, - 10491: 648, - 10492: 648, - 10493: 648, - 10494: 648, - 10495: 648, - 10496: 648, - 10497: 648, - 10498: 648, - 10499: 648, - 10500: 648, - 10501: 648, - 10502: 648, - 10503: 648, - 10504: 648, - 10505: 648, - 10506: 648, - 10507: 648, - 10508: 648, - 10509: 648, - 10510: 648, - 10511: 648, - 10512: 648, - 10513: 648, - 10514: 648, - 10515: 648, - 10516: 648, - 10517: 648, - 10518: 648, - 10519: 648, - 10520: 648, - 10521: 648, - 10522: 648, - 10523: 648, - 10524: 648, - 10525: 648, - 10526: 648, - 10527: 648, - 10528: 648, - 10529: 648, - 10530: 648, - 10531: 648, - 10532: 648, - 10533: 648, - 10534: 648, - 10535: 648, - 10536: 648, - 10537: 648, - 10538: 648, - 10539: 648, - 10540: 648, - 10541: 648, - 10542: 648, - 10543: 648, - 10544: 648, - 10545: 648, - 10546: 648, - 10547: 648, - 10548: 648, - 10549: 648, - 10550: 648, - 10551: 648, - 10552: 648, - 10553: 648, - 10554: 648, - 10555: 648, - 10556: 648, - 10557: 648, - 10558: 648, - 10559: 649, - 10560: 649, - 10561: 649, - 10562: 649, - 10563: 649, - 10564: 649, - 10565: 649, - 10566: 649, - 10567: 649, - 10568: 649, - 10569: 649, - 10570: 649, - 10571: 649, - 10572: 649, - 10573: 649, - 10574: 649, - 10575: 649, - 10576: 649, - 10577: 649, - 10578: 649, - 10579: 649, - 10580: 649, - 10581: 649, - 10582: 649, - 10583: 649, - 10584: 649, - 10585: 649, - 10586: 649, - 10587: 649, - 10588: 649, - 10589: 649, - 10590: 649, - 10591: 649, - 10592: 649, - 10593: 649, - 10594: 649, - 10595: 649, - 10596: 649, - 10597: 649, - 10598: 649, - 10599: 649, - 10600: 649, - 10601: 649, - 10602: 649, - 10603: 649, - 10604: 649, - 10605: 649, - 10606: 649, - 10607: 649, - 10608: 649, - 10609: 649, - 10610: 649, - 10611: 649, - 10612: 649, - 10613: 649, - 10614: 649, - 10615: 649, - 10616: 649, - 10617: 649, - 10618: 649, - 10619: 649, - 10620: 649, - 10621: 649, - 10622: 649, - 10623: 649, - 10624: 649, - 10625: 649, - 10626: 649, - 10627: 649, - 10628: 649, - 10629: 649, - 10630: 649, - 10631: 649, - 10632: 649, - 10633: 649, - 10634: 649, - 10635: 649, - 10636: 649, - 10637: 649, - 10638: 649, - 10639: 650, - 10640: 650, - 10641: 650, - 10642: 650, - 10643: 650, - 10644: 650, - 10645: 650, - 10646: 650, - 10647: 650, - 10648: 650, - 10649: 650, - 10650: 650, - 10651: 650, - 10652: 650, - 10653: 650, - 10654: 650, - 10655: 650, - 10656: 650, - 10657: 650, - 10658: 650, - 10659: 650, - 10660: 650, - 10661: 650, - 10662: 650, - 10663: 650, - 10664: 650, - 10665: 650, - 10666: 650, - 10667: 650, - 10668: 650, - 10669: 650, - 10670: 650, - 10671: 650, - 10672: 650, - 10673: 650, - 10674: 650, - 10675: 650, - 10676: 650, - 10677: 650, - 10678: 650, - 10679: 650, - 10680: 650, - 10681: 650, - 10682: 650, - 10683: 650, - 10684: 650, - 10685: 650, - 10686: 650, - 10687: 650, - 10688: 650, - 10689: 650, - 10690: 650, - 10691: 650, - 10692: 650, - 10693: 650, - 10694: 650, - 10695: 650, - 10696: 650, - 10697: 650, - 10698: 650, - 10699: 650, - 10700: 650, - 10701: 650, - 10702: 650, - 10703: 650, - 10704: 650, - 10705: 650, - 10706: 650, - 10707: 650, - 10708: 650, - 10709: 650, - 10710: 650, - 10711: 650, - 10712: 650, - 10713: 650, - 10714: 650, - 10715: 650, - 10716: 650, - 10717: 650, - 10718: 650, - 10719: 651, - 10720: 651, - 10721: 651, - 10722: 651, - 10723: 651, - 10724: 651, - 10725: 651, - 10726: 651, - 10727: 651, - 10728: 651, - 10729: 651, - 10730: 651, - 10731: 651, - 10732: 651, - 10733: 651, - 10734: 651, - 10735: 651, - 10736: 651, - 10737: 651, - 10738: 651, - 10739: 651, - 10740: 651, - 10741: 651, - 10742: 651, - 10743: 651, - 10744: 651, - 10745: 651, - 10746: 651, - 10747: 651, - 10748: 651, - 10749: 651, - 10750: 651, - 10751: 651, - 10752: 651, - 10753: 651, - 10754: 651, - 10755: 651, - 10756: 651, - 10757: 651, - 10758: 651, - 10759: 651, - 10760: 651, - 10761: 651, - 10762: 651, - 10763: 651, - 10764: 651, - 10765: 651, - 10766: 651, - 10767: 651, - 10768: 651, - 10769: 651, - 10770: 651, - 10771: 651, - 10772: 651, - 10773: 651, - 10774: 651, - 10775: 651, - 10776: 651, - 10777: 651, - 10778: 651, - 10779: 651, - 10780: 651, - 10781: 651, - 10782: 651, - 10783: 651, - 10784: 651, - 10785: 651, - 10786: 651, - 10787: 651, - 10788: 651, - 10789: 651, - 10790: 651, - 10791: 651, - 10792: 651, - 10793: 651, - 10794: 651, - 10795: 651, - 10796: 651, - 10797: 651, - 10798: 651, - 10799: 652, - 10800: 652, - 10801: 652, - 10802: 652, - 10803: 652, - 10804: 652, - 10805: 652, - 10806: 652, - 10807: 652, - 10808: 652, - 10809: 652, - 10810: 652, - 10811: 652, - 10812: 652, - 10813: 652, - 10814: 652, - 10815: 652, - 10816: 652, - 10817: 652, - 10818: 652, - 10819: 652, - 10820: 652, - 10821: 652, - 10822: 652, - 10823: 652, - 10824: 652, - 10825: 652, - 10826: 652, - 10827: 652, - 10828: 652, - 10829: 652, - 10830: 652, - 10831: 652, - 10832: 652, - 10833: 652, - 10834: 652, - 10835: 652, - 10836: 652, - 10837: 652, - 10838: 652, - 10839: 652, - 10840: 652, - 10841: 652, - 10842: 652, - 10843: 652, - 10844: 652, - 10845: 652, - 10846: 652, - 10847: 652, - 10848: 652, - 10849: 652, - 10850: 652, - 10851: 652, - 10852: 652, - 10853: 652, - 10854: 652, - 10855: 652, - 10856: 652, - 10857: 652, - 10858: 652, - 10859: 652, - 10860: 652, - 10861: 652, - 10862: 652, - 10863: 652, - 10864: 652, - 10865: 652, - 10866: 652, - 10867: 652, - 10868: 652, - 10869: 652, - 10870: 652, - 10871: 652, - 10872: 652, - 10873: 652, - 10874: 652, - 10875: 652, - 10876: 652, - 10877: 652, - 10878: 652, - 10879: 653, - 10880: 653, - 10881: 653, - 10882: 653, - 10883: 653, - 10884: 653, - 10885: 653, - 10886: 653, - 10887: 653, - 10888: 653, - 10889: 653, - 10890: 653, - 10891: 653, - 10892: 653, - 10893: 653, - 10894: 653, - 10895: 653, - 10896: 653, - 10897: 653, - 10898: 653, - 10899: 653, - 10900: 653, - 10901: 653, - 10902: 653, - 10903: 653, - 10904: 653, - 10905: 653, - 10906: 653, - 10907: 653, - 10908: 653, - 10909: 653, - 10910: 653, - 10911: 653, - 10912: 653, - 10913: 653, - 10914: 653, - 10915: 653, - 10916: 653, - 10917: 653, - 10918: 653, - 10919: 653, - 10920: 653, - 10921: 653, - 10922: 653, - 10923: 653, - 10924: 653, - 10925: 653, - 10926: 653, - 10927: 653, - 10928: 653, - 10929: 653, - 10930: 653, - 10931: 653, - 10932: 653, - 10933: 653, - 10934: 653, - 10935: 653, - 10936: 653, - 10937: 653, - 10938: 653, - 10939: 653, - 10940: 653, - 10941: 653, - 10942: 653, - 10943: 653, - 10944: 653, - 10945: 653, - 10946: 653, - 10947: 653, - 10948: 653, - 10949: 653, - 10950: 653, - 10951: 653, - 10952: 653, - 10953: 653, - 10954: 653, - 10955: 653, - 10956: 653, - 10957: 653, - 10958: 653, - 10959: 654, - 10960: 654, - 10961: 654, - 10962: 654, - 10963: 654, - 10964: 654, - 10965: 654, - 10966: 654, - 10967: 654, - 10968: 654, - 10969: 654, - 10970: 654, - 10971: 654, - 10972: 654, - 10973: 654, - 10974: 654, - 10975: 654, - 10976: 654, - 10977: 654, - 10978: 654, - 10979: 654, - 10980: 654, - 10981: 654, - 10982: 654, - 10983: 654, - 10984: 654, - 10985: 654, - 10986: 654, - 10987: 654, - 10988: 654, - 10989: 654, - 10990: 654, - 10991: 654, - 10992: 654, - 10993: 654, - 10994: 654, - 10995: 654, - 10996: 654, - 10997: 654, - 10998: 654, - 10999: 654, - 11000: 654, - 11001: 654, - 11002: 654, - 11003: 654, - 11004: 654, - 11005: 654, - 11006: 654, - 11007: 654, - 11008: 654, - 11009: 654, - 11010: 654, - 11011: 654, - 11012: 654, - 11013: 654, - 11014: 654, - 11015: 654, - 11016: 654, - 11017: 654, - 11018: 654, - 11019: 654, - 11020: 654, - 11021: 654, - 11022: 654, - 11023: 654, - 11024: 654, - 11025: 654, - 11026: 654, - 11027: 654, - 11028: 654, - 11029: 654, - 11030: 654, - 11031: 654, - 11032: 654, - 11033: 654, - 11034: 654, - 11035: 654, - 11036: 654, - 11037: 654, - 11038: 654, - 11039: 655, - 11040: 655, - 11041: 655, - 11042: 655, - 11043: 655, - 11044: 655, - 11045: 656, - 11046: 656, - 11047: 656, - 11048: 656, - 11049: 656, - 11050: 656, - 11051: 657, - 11052: 657, - 11053: 657, - 11054: 657, - 11055: 657, - 11056: 657, - 11057: 658, - 11058: 658, - 11059: 658, - 11060: 658, - 11061: 658, - 11062: 658, - 11063: 659, - 11064: 659, - 11065: 659, - 11066: 659, - 11067: 659, - 11068: 659, - 11069: 660, - 11070: 660, - 11071: 660, - 11072: 660, - 11073: 660, - 11074: 660, - 11075: 661, - 11076: 661, - 11077: 661, - 11078: 661, - 11079: 661, - 11080: 661, - 11081: 662, - 11082: 662, - 11083: 662, - 11084: 662, - 11085: 662, - 11086: 662, - 11087: 663, - 11088: 663, - 11089: 663, - 11090: 663, - 11091: 663, - 11092: 663, - 11093: 664, - 11094: 664, - 11095: 664, - 11096: 664, - 11097: 664, - 11098: 664, - 11099: 665, - 11100: 665, - 11101: 665, - 11102: 665, - 11103: 665, - 11104: 665, - 11105: 666, - 11106: 666, - 11107: 666, - 11108: 666, - 11109: 666, - 11110: 666, - 11111: 667, - 11112: 667, - 11113: 667, - 11114: 667, - 11115: 667, - 11116: 667, - 11117: 668, - 11118: 668, - 11119: 668, - 11120: 668, - 11121: 668, - 11122: 668, - 11123: 668, - 11124: 668, - 11125: 668, - 11126: 668, - 11127: 668, - 11128: 668, - 11129: 668, - 11130: 668, - 11131: 668, - 11132: 668, - 11133: 668, - 11134: 668, - 11135: 668, - 11136: 668, - 11137: 668, - 11138: 668, - 11139: 668, - 11140: 668, - 11141: 668, - 11142: 668, - 11143: 668, - 11144: 668, - 11145: 668, - 11146: 668, - 11147: 668, - 11148: 668, - 11149: 668, - 11150: 668, - 11151: 668, - 11152: 668, - 11153: 668, - 11154: 668, - 11155: 668, - 11156: 668, - 11157: 668, - 11158: 668, - 11159: 668, - 11160: 668, - 11161: 668, - 11162: 668, - 11163: 668, - 11164: 668, - 11165: 668, - 11166: 668, - 11167: 668, - 11168: 668, - 11169: 668, - 11170: 668, - 11171: 668, - 11172: 668, - 11173: 668, - 11174: 668, - 11175: 668, - 11176: 668, - 11177: 668, - 11178: 668, - 11179: 668, - 11180: 668, - 11181: 668, - 11182: 668, - 11183: 668, - 11184: 668, - 11185: 668, - 11186: 668, - 11187: 668, - 11188: 668, - 11189: 668, - 11190: 668, - 11191: 668, - 11192: 668, - 11193: 668, - 11194: 668, - 11195: 668, - 11196: 668, - 11197: 668, - 11198: 668, - 11199: 668, - 11200: 668, - 11201: 668, - 11202: 668, - 11203: 668, - 11204: 668, - 11205: 668, - 11206: 668, - 11207: 668, - 11208: 668, - 11209: 668, - 11210: 668, - 11211: 668, - 11212: 668, - 11213: 668, - 11214: 668, - 11215: 668, - 11216: 668, - 11217: 668, - 11218: 668, - 11219: 668, - 11220: 668, - 11221: 668, - 11222: 668, - 11223: 668, - 11224: 668, - 11225: 668, - 11226: 668, - 11227: 668, - 11228: 668, - 11229: 668, - 11230: 668, - 11231: 668, - 11232: 668, - 11233: 668, - 11234: 668, - 11235: 668, - 11236: 668, - 11237: 668, - 11238: 668, - 11239: 668, - 11240: 668, - 11241: 668, - 11242: 668, - 11243: 668, - 11244: 668, - 11245: 668, - 11246: 668, - 11247: 668, - 11248: 668, - 11249: 668, - 11250: 668, - 11251: 668, - 11252: 668, - 11253: 668, - 11254: 668, - 11255: 668, - 11256: 668, - 11257: 668, - 11258: 668, - 11259: 668, - 11260: 668, - 11261: 668, - 11262: 668, - 11263: 668, - 11264: 668, - 11265: 668, - 11266: 668, - 11267: 668, - 11268: 668, - 11269: 668, - 11270: 668, - 11271: 668, - 11272: 668, - 11273: 668, - 11274: 668, - 11275: 668, - 11276: 668, - 11277: 668, - 11278: 668, - 11279: 668, - 11280: 668, - 11281: 668, - 11282: 668, - 11283: 668, - 11284: 668, - 11285: 668, - 11286: 668, - 11287: 668, - 11288: 668, - 11289: 668, - 11290: 668, - 11291: 668, - 11292: 668, - 11293: 668, - 11294: 668, - 11295: 668, - 11296: 668, - 11297: 668, - 11298: 668, - 11299: 668, - 11300: 668, - 11301: 668, - 11302: 668, - 11303: 668, - 11304: 668, - 11305: 668, - 11306: 668, - 11307: 668, - 11308: 668, - 11309: 668, - 11310: 668, - 11311: 668, - 11312: 668, - 11313: 668, - 11314: 668, - 11315: 668, - 11316: 668, - 11317: 668, - 11318: 668, - 11319: 668, - 11320: 668, - 11321: 668, - 11322: 668, - 11323: 668, - 11324: 668, - 11325: 668, - 11326: 668, - 11327: 668, - 11328: 668, - 11329: 668, - 11330: 668, - 11331: 668, - 11332: 668, - 11333: 668, - 11334: 668, - 11335: 668, - 11336: 668, - 11337: 668, - 11338: 668, - 11339: 668, - 11340: 668, - 11341: 668, - 11342: 668, - 11343: 668, - 11344: 668, - 11345: 668, - 11346: 668, - 11347: 668, - 11348: 668, - 11349: 668, - 11350: 668, - 11351: 668, - 11352: 668, - 11353: 668, - 11354: 668, - 11355: 668, - 11356: 668, - 11357: 668, - 11358: 668, - 11359: 668, - 11360: 668, - 11361: 668, - 11362: 668, - 11363: 668, - 11364: 668, - 11365: 668, - 11366: 668, - 11367: 668, - 11368: 668, - 11369: 668, - 11370: 668, - 11371: 668, - 11372: 668, - 11373: 668, - 11374: 668, - 11375: 668, - 11376: 668, - 11377: 668, - 11378: 668, - 11379: 668, - 11380: 668, - 11381: 668, - 11382: 668, - 11383: 668, - 11384: 668, - 11385: 668, - 11386: 668, - 11387: 668, - 11388: 668, - 11389: 668, - 11390: 668, - 11391: 668, - 11392: 668, - 11393: 668, - 11394: 668, - 11395: 668, - 11396: 668, - 11397: 668, - 11398: 668, - 11399: 668, - 11400: 668, - 11401: 668, - 11402: 668, - 11403: 668, - 11404: 668, - 11405: 668, - 11406: 668, - 11407: 668, - 11408: 668, - 11409: 668, - 11410: 668, - 11411: 668, - 11412: 668, - 11413: 668, - 11414: 668, - 11415: 668, - 11416: 668, - 11417: 668, - 11418: 668, - 11419: 668, - 11420: 668, - 11421: 668, - 11422: 668, - 11423: 668, - 11424: 668, - 11425: 668, - 11426: 668, - 11427: 668, - 11428: 668, - 11429: 668, - 11430: 668, - 11431: 668, - 11432: 668, - 11433: 668, - 11434: 668, - 11435: 668, - 11436: 668, - 11437: 668, - 11438: 668, - 11439: 668, - 11440: 668, - 11441: 669, - 11442: 669, - 11443: 669, - 11444: 669, - 11445: 669, - 11446: 669, - 11447: 669, - 11448: 669, - 11449: 669, - 11450: 669, - 11451: 669, - 11452: 669, - 11453: 669, - 11454: 669, - 11455: 669, - 11456: 669, - 11457: 669, - 11458: 669, - 11459: 669, - 11460: 669, - 11461: 669, - 11462: 669, - 11463: 669, - 11464: 669, - 11465: 669, - 11466: 669, - 11467: 669, - 11468: 669, - 11469: 669, - 11470: 669, - 11471: 669, - 11472: 669, - 11473: 669, - 11474: 669, - 11475: 669, - 11476: 669, - 11477: 669, - 11478: 669, - 11479: 669, - 11480: 669, - 11481: 669, - 11482: 669, - 11483: 669, - 11484: 669, - 11485: 669, - 11486: 669, - 11487: 669, - 11488: 669, - 11489: 669, - 11490: 669, - 11491: 669, - 11492: 669, - 11493: 669, - 11494: 669, - 11495: 669, - 11496: 669, - 11497: 669, - 11498: 669, - 11499: 669, - 11500: 669, - 11501: 669, - 11502: 669, - 11503: 669, - 11504: 669, - 11505: 669, - 11506: 669, - 11507: 669, - 11508: 669, - 11509: 669, - 11510: 669, - 11511: 669, - 11512: 669, - 11513: 669, - 11514: 669, - 11515: 669, - 11516: 669, - 11517: 669, - 11518: 669, - 11519: 669, - 11520: 669, - 11521: 669, - 11522: 669, - 11523: 669, - 11524: 669, - 11525: 669, - 11526: 669, - 11527: 669, - 11528: 669, - 11529: 669, - 11530: 669, - 11531: 669, - 11532: 669, - 11533: 669, - 11534: 669, - 11535: 669, - 11536: 669, - 11537: 669, - 11538: 669, - 11539: 669, - 11540: 669, - 11541: 669, - 11542: 669, - 11543: 669, - 11544: 669, - 11545: 669, - 11546: 669, - 11547: 669, - 11548: 669, - 11549: 669, - 11550: 669, - 11551: 669, - 11552: 669, - 11553: 669, - 11554: 669, - 11555: 669, - 11556: 669, - 11557: 669, - 11558: 669, - 11559: 669, - 11560: 669, - 11561: 669, - 11562: 669, - 11563: 669, - 11564: 669, - 11565: 669, - 11566: 669, - 11567: 669, - 11568: 669, - 11569: 669, - 11570: 669, - 11571: 669, - 11572: 669, - 11573: 669, - 11574: 669, - 11575: 669, - 11576: 669, - 11577: 669, - 11578: 669, - 11579: 669, - 11580: 669, - 11581: 669, - 11582: 669, - 11583: 669, - 11584: 669, - 11585: 669, - 11586: 669, - 11587: 669, - 11588: 669, - 11589: 669, - 11590: 669, - 11591: 669, - 11592: 669, - 11593: 669, - 11594: 669, - 11595: 669, - 11596: 669, - 11597: 669, - 11598: 669, - 11599: 669, - 11600: 669, - 11601: 669, - 11602: 669, - 11603: 669, - 11604: 669, - 11605: 669, - 11606: 669, - 11607: 669, - 11608: 669, - 11609: 669, - 11610: 669, - 11611: 669, - 11612: 669, - 11613: 669, - 11614: 669, - 11615: 669, - 11616: 669, - 11617: 669, - 11618: 669, - 11619: 669, - 11620: 669, - 11621: 669, - 11622: 669, - 11623: 669, - 11624: 669, - 11625: 669, - 11626: 669, - 11627: 669, - 11628: 669, - 11629: 669, - 11630: 669, - 11631: 669, - 11632: 669, - 11633: 669, - 11634: 669, - 11635: 669, - 11636: 669, - 11637: 669, - 11638: 669, - 11639: 669, - 11640: 669, - 11641: 669, - 11642: 669, - 11643: 669, - 11644: 669, - 11645: 669, - 11646: 669, - 11647: 669, - 11648: 669, - 11649: 669, - 11650: 669, - 11651: 669, - 11652: 669, - 11653: 669, - 11654: 669, - 11655: 669, - 11656: 669, - 11657: 669, - 11658: 669, - 11659: 669, - 11660: 669, - 11661: 669, - 11662: 669, - 11663: 669, - 11664: 669, - 11665: 669, - 11666: 669, - 11667: 669, - 11668: 669, - 11669: 669, - 11670: 669, - 11671: 669, - 11672: 669, - 11673: 669, - 11674: 669, - 11675: 669, - 11676: 669, - 11677: 669, - 11678: 669, - 11679: 669, - 11680: 669, - 11681: 669, - 11682: 669, - 11683: 669, - 11684: 669, - 11685: 669, - 11686: 669, - 11687: 669, - 11688: 669, - 11689: 669, - 11690: 669, - 11691: 669, - 11692: 669, - 11693: 669, - 11694: 669, - 11695: 669, - 11696: 669, - 11697: 669, - 11698: 669, - 11699: 669, - 11700: 669, - 11701: 669, - 11702: 669, - 11703: 669, - 11704: 669, - 11705: 669, - 11706: 669, - 11707: 669, - 11708: 669, - 11709: 669, - 11710: 669, - 11711: 669, - 11712: 669, - 11713: 669, - 11714: 669, - 11715: 669, - 11716: 669, - 11717: 669, - 11718: 669, - 11719: 669, - 11720: 669, - 11721: 669, - 11722: 669, - 11723: 669, - 11724: 669, - 11725: 669, - 11726: 669, - 11727: 669, - 11728: 669, - 11729: 669, - 11730: 669, - 11731: 669, - 11732: 669, - 11733: 669, - 11734: 669, - 11735: 669, - 11736: 669, - 11737: 669, - 11738: 669, - 11739: 669, - 11740: 669, - 11741: 669, - 11742: 669, - 11743: 669, - 11744: 669, - 11745: 669, - 11746: 669, - 11747: 669, - 11748: 669, - 11749: 669, - 11750: 669, - 11751: 669, - 11752: 669, - 11753: 669, - 11754: 669, - 11755: 669, - 11756: 669, - 11757: 669, - 11758: 669, - 11759: 669, - 11760: 669, - 11761: 669, - 11762: 669, - 11763: 669, - 11764: 669, - 11765: 670, - 11766: 670, - 11767: 670, - 11768: 670, - 11769: 670, - 11770: 670, - 11771: 670, - 11772: 670, - 11773: 670, - 11774: 670, - 11775: 670, - 11776: 670, - 11777: 670, - 11778: 670, - 11779: 670, - 11780: 670, - 11781: 670, - 11782: 670, - 11783: 670, - 11784: 670, - 11785: 670, - 11786: 670, - 11787: 670, - 11788: 670, - 11789: 670, - 11790: 670, - 11791: 670, - 11792: 670, - 11793: 670, - 11794: 670, - 11795: 670, - 11796: 670, - 11797: 670, - 11798: 670, - 11799: 670, - 11800: 670, - 11801: 670, - 11802: 670, - 11803: 670, - 11804: 670, - 11805: 670, - 11806: 670, - 11807: 670, - 11808: 670, - 11809: 670, - 11810: 670, - 11811: 670, - 11812: 670, - 11813: 670, - 11814: 670, - 11815: 670, - 11816: 670, - 11817: 670, - 11818: 670, - 11819: 670, - 11820: 670, - 11821: 670, - 11822: 670, - 11823: 670, - 11824: 670, - 11825: 670, - 11826: 670, - 11827: 670, - 11828: 670, - 11829: 670, - 11830: 670, - 11831: 670, - 11832: 670, - 11833: 670, - 11834: 670, - 11835: 670, - 11836: 670, - 11837: 670, - 11838: 670, - 11839: 670, - 11840: 670, - 11841: 670, - 11842: 670, - 11843: 670, - 11844: 670, - 11845: 670, - 11846: 670, - 11847: 670, - 11848: 670, - 11849: 670, - 11850: 670, - 11851: 670, - 11852: 670, - 11853: 670, - 11854: 670, - 11855: 670, - 11856: 670, - 11857: 670, - 11858: 670, - 11859: 670, - 11860: 670, - 11861: 670, - 11862: 670, - 11863: 670, - 11864: 670, - 11865: 670, - 11866: 670, - 11867: 670, - 11868: 670, - 11869: 670, - 11870: 670, - 11871: 670, - 11872: 670, - 11873: 670, - 11874: 670, - 11875: 670, - 11876: 670, - 11877: 670, - 11878: 670, - 11879: 670, - 11880: 670, - 11881: 670, - 11882: 670, - 11883: 670, - 11884: 670, - 11885: 670, - 11886: 670, - 11887: 670, - 11888: 670, - 11889: 670, - 11890: 670, - 11891: 670, - 11892: 670, - 11893: 670, - 11894: 670, - 11895: 670, - 11896: 670, - 11897: 670, - 11898: 670, - 11899: 670, - 11900: 670, - 11901: 670, - 11902: 670, - 11903: 670, - 11904: 670, - 11905: 670, - 11906: 670, - 11907: 670, - 11908: 670, - 11909: 670, - 11910: 670, - 11911: 670, - 11912: 670, - 11913: 670, - 11914: 670, - 11915: 670, - 11916: 670, - 11917: 670, - 11918: 670, - 11919: 670, - 11920: 670, - 11921: 670, - 11922: 670, - 11923: 670, - 11924: 670, - 11925: 670, - 11926: 670, - 11927: 670, - 11928: 670, - 11929: 670, - 11930: 670, - 11931: 670, - 11932: 670, - 11933: 670, - 11934: 670, - 11935: 670, - 11936: 670, - 11937: 670, - 11938: 670, - 11939: 670, - 11940: 670, - 11941: 670, - 11942: 670, - 11943: 670, - 11944: 670, - 11945: 670, - 11946: 670, - 11947: 670, - 11948: 670, - 11949: 670, - 11950: 670, - 11951: 670, - 11952: 670, - 11953: 670, - 11954: 670, - 11955: 670, - 11956: 670, - 11957: 670, - 11958: 670, - 11959: 670, - 11960: 670, - 11961: 670, - 11962: 670, - 11963: 670, - 11964: 670, - 11965: 670, - 11966: 670, - 11967: 670, - 11968: 670, - 11969: 670, - 11970: 670, - 11971: 670, - 11972: 670, - 11973: 670, - 11974: 670, - 11975: 670, - 11976: 670, - 11977: 670, - 11978: 670, - 11979: 670, - 11980: 670, - 11981: 670, - 11982: 670, - 11983: 670, - 11984: 670, - 11985: 670, - 11986: 670, - 11987: 670, - 11988: 670, - 11989: 670, - 11990: 670, - 11991: 670, - 11992: 670, - 11993: 670, - 11994: 670, - 11995: 670, - 11996: 670, - 11997: 670, - 11998: 670, - 11999: 670, - 12000: 670, - 12001: 670, - 12002: 670, - 12003: 670, - 12004: 670, - 12005: 670, - 12006: 670, - 12007: 670, - 12008: 670, - 12009: 670, - 12010: 670, - 12011: 670, - 12012: 670, - 12013: 670, - 12014: 670, - 12015: 670, - 12016: 670, - 12017: 670, - 12018: 670, - 12019: 670, - 12020: 670, - 12021: 670, - 12022: 670, - 12023: 670, - 12024: 670, - 12025: 670, - 12026: 670, - 12027: 670, - 12028: 670, - 12029: 670, - 12030: 670, - 12031: 670, - 12032: 670, - 12033: 670, - 12034: 670, - 12035: 670, - 12036: 670, - 12037: 670, - 12038: 670, - 12039: 670, - 12040: 670, - 12041: 670, - 12042: 670, - 12043: 670, - 12044: 670, - 12045: 670, - 12046: 670, - 12047: 670, - 12048: 670, - 12049: 670, - 12050: 670, - 12051: 670, - 12052: 670, - 12053: 670, - 12054: 670, - 12055: 670, - 12056: 670, - 12057: 670, - 12058: 670, - 12059: 670, - 12060: 670, - 12061: 670, - 12062: 670, - 12063: 670, - 12064: 670, - 12065: 670, - 12066: 670, - 12067: 670, - 12068: 670, - 12069: 670, - 12070: 670, - 12071: 670, - 12072: 670, - 12073: 670, - 12074: 670, - 12075: 670, - 12076: 670, - 12077: 670, - 12078: 670, - 12079: 670, - 12080: 670, - 12081: 670, - 12082: 670, - 12083: 670, - 12084: 670, - 12085: 670, - 12086: 670, - 12087: 670, - 12088: 670, - 12089: 671, - 12090: 671, - 12091: 671, - 12092: 671, - 12093: 671, - 12094: 671, - 12095: 671, - 12096: 671, - 12097: 671, - 12098: 671, - 12099: 671, - 12100: 671, - 12101: 671, - 12102: 671, - 12103: 671, - 12104: 671, - 12105: 671, - 12106: 671, - 12107: 671, - 12108: 671, - 12109: 671, - 12110: 671, - 12111: 671, - 12112: 671, - 12113: 671, - 12114: 671, - 12115: 671, - 12116: 671, - 12117: 671, - 12118: 671, - 12119: 671, - 12120: 671, - 12121: 671, - 12122: 671, - 12123: 671, - 12124: 671, - 12125: 671, - 12126: 671, - 12127: 671, - 12128: 671, - 12129: 671, - 12130: 671, - 12131: 671, - 12132: 671, - 12133: 671, - 12134: 671, - 12135: 671, - 12136: 671, - 12137: 671, - 12138: 671, - 12139: 671, - 12140: 671, - 12141: 671, - 12142: 671, - 12143: 671, - 12144: 671, - 12145: 671, - 12146: 671, - 12147: 671, - 12148: 671, - 12149: 671, - 12150: 671, - 12151: 671, - 12152: 671, - 12153: 671, - 12154: 671, - 12155: 671, - 12156: 671, - 12157: 671, - 12158: 671, - 12159: 671, - 12160: 671, - 12161: 671, - 12162: 671, - 12163: 671, - 12164: 671, - 12165: 671, - 12166: 671, - 12167: 671, - 12168: 671, - 12169: 671, - 12170: 671, - 12171: 671, - 12172: 671, - 12173: 671, - 12174: 671, - 12175: 671, - 12176: 671, - 12177: 671, - 12178: 671, - 12179: 671, - 12180: 671, - 12181: 671, - 12182: 671, - 12183: 671, - 12184: 671, - 12185: 671, - 12186: 671, - 12187: 671, - 12188: 671, - 12189: 671, - 12190: 671, - 12191: 671, - 12192: 671, - 12193: 671, - 12194: 671, - 12195: 671, - 12196: 671, - 12197: 671, - 12198: 671, - 12199: 671, - 12200: 671, - 12201: 671, - 12202: 671, - 12203: 671, - 12204: 671, - 12205: 671, - 12206: 671, - 12207: 671, - 12208: 671, - 12209: 671, - 12210: 671, - 12211: 671, - 12212: 671, - 12213: 671, - 12214: 671, - 12215: 671, - 12216: 671, - 12217: 671, - 12218: 671, - 12219: 671, - 12220: 671, - 12221: 671, - 12222: 671, - 12223: 671, - 12224: 671, - 12225: 671, - 12226: 671, - 12227: 671, - 12228: 671, - 12229: 671, - 12230: 671, - 12231: 671, - 12232: 671, - 12233: 671, - 12234: 671, - 12235: 671, - 12236: 671, - 12237: 671, - 12238: 671, - 12239: 671, - 12240: 671, - 12241: 671, - 12242: 671, - 12243: 671, - 12244: 671, - 12245: 671, - 12246: 671, - 12247: 671, - 12248: 671, - 12249: 671, - 12250: 671, - 12251: 671, - 12252: 671, - 12253: 671, - 12254: 671, - 12255: 671, - 12256: 671, - 12257: 671, - 12258: 671, - 12259: 671, - 12260: 671, - 12261: 671, - 12262: 671, - 12263: 671, - 12264: 671, - 12265: 671, - 12266: 671, - 12267: 671, - 12268: 671, - 12269: 671, - 12270: 671, - 12271: 671, - 12272: 671, - 12273: 671, - 12274: 671, - 12275: 671, - 12276: 671, - 12277: 671, - 12278: 671, - 12279: 671, - 12280: 671, - 12281: 671, - 12282: 671, - 12283: 671, - 12284: 671, - 12285: 671, - 12286: 671, - 12287: 671, - 12288: 671, - 12289: 671, - 12290: 671, - 12291: 671, - 12292: 671, - 12293: 671, - 12294: 671, - 12295: 671, - 12296: 671, - 12297: 671, - 12298: 671, - 12299: 671, - 12300: 671, - 12301: 671, - 12302: 671, - 12303: 671, - 12304: 671, - 12305: 671, - 12306: 671, - 12307: 671, - 12308: 671, - 12309: 671, - 12310: 671, - 12311: 671, - 12312: 671, - 12313: 671, - 12314: 671, - 12315: 671, - 12316: 671, - 12317: 671, - 12318: 671, - 12319: 671, - 12320: 671, - 12321: 671, - 12322: 671, - 12323: 671, - 12324: 671, - 12325: 671, - 12326: 671, - 12327: 671, - 12328: 671, - 12329: 671, - 12330: 671, - 12331: 671, - 12332: 671, - 12333: 671, - 12334: 671, - 12335: 671, - 12336: 671, - 12337: 671, - 12338: 671, - 12339: 671, - 12340: 671, - 12341: 671, - 12342: 671, - 12343: 671, - 12344: 671, - 12345: 671, - 12346: 671, - 12347: 671, - 12348: 671, - 12349: 671, - 12350: 671, - 12351: 671, - 12352: 671, - 12353: 671, - 12354: 671, - 12355: 671, - 12356: 671, - 12357: 671, - 12358: 671, - 12359: 671, - 12360: 671, - 12361: 671, - 12362: 671, - 12363: 671, - 12364: 671, - 12365: 671, - 12366: 671, - 12367: 671, - 12368: 671, - 12369: 671, - 12370: 671, - 12371: 671, - 12372: 671, - 12373: 671, - 12374: 671, - 12375: 671, - 12376: 671, - 12377: 671, - 12378: 671, - 12379: 671, - 12380: 671, - 12381: 671, - 12382: 671, - 12383: 671, - 12384: 671, - 12385: 671, - 12386: 671, - 12387: 671, - 12388: 671, - 12389: 671, - 12390: 671, - 12391: 671, - 12392: 671, - 12393: 671, - 12394: 671, - 12395: 671, - 12396: 671, - 12397: 671, - 12398: 671, - 12399: 671, - 12400: 671, - 12401: 671, - 12402: 671, - 12403: 671, - 12404: 671, - 12405: 671, - 12406: 671, - 12407: 671, - 12408: 671, - 12409: 671, - 12410: 671, - 12411: 671, - 12412: 671, - 12413: 672, - 12414: 672, - 12415: 672, - 12416: 672, - 12417: 672, - 12418: 672, - 12419: 672, - 12420: 672, - 12421: 672, - 12422: 672, - 12423: 672, - 12424: 672, - 12425: 672, - 12426: 672, - 12427: 672, - 12428: 672, - 12429: 672, - 12430: 672, - 12431: 672, - 12432: 672, - 12433: 672, - 12434: 672, - 12435: 672, - 12436: 672, - 12437: 672, - 12438: 672, - 12439: 672, - 12440: 672, - 12441: 672, - 12442: 672, - 12443: 672, - 12444: 672, - 12445: 672, - 12446: 672, - 12447: 672, - 12448: 672, - 12449: 672, - 12450: 672, - 12451: 672, - 12452: 672, - 12453: 672, - 12454: 672, - 12455: 672, - 12456: 672, - 12457: 672, - 12458: 672, - 12459: 672, - 12460: 672, - 12461: 672, - 12462: 672, - 12463: 672, - 12464: 672, - 12465: 672, - 12466: 672, - 12467: 672, - 12468: 672, - 12469: 672, - 12470: 672, - 12471: 672, - 12472: 672, - 12473: 672, - 12474: 672, - 12475: 672, - 12476: 672, - 12477: 672, - 12478: 672, - 12479: 672, - 12480: 672, - 12481: 672, - 12482: 672, - 12483: 672, - 12484: 672, - 12485: 672, - 12486: 672, - 12487: 672, - 12488: 672, - 12489: 672, - 12490: 672, - 12491: 672, - 12492: 672, - 12493: 672, - 12494: 672, - 12495: 672, - 12496: 672, - 12497: 672, - 12498: 672, - 12499: 672, - 12500: 672, - 12501: 672, - 12502: 672, - 12503: 672, - 12504: 672, - 12505: 672, - 12506: 672, - 12507: 672, - 12508: 672, - 12509: 672, - 12510: 672, - 12511: 672, - 12512: 672, - 12513: 672, - 12514: 672, - 12515: 672, - 12516: 672, - 12517: 672, - 12518: 672, - 12519: 672, - 12520: 672, - 12521: 672, - 12522: 672, - 12523: 672, - 12524: 672, - 12525: 672, - 12526: 672, - 12527: 672, - 12528: 672, - 12529: 672, - 12530: 672, - 12531: 672, - 12532: 672, - 12533: 672, - 12534: 672, - 12535: 672, - 12536: 672, - 12537: 672, - 12538: 672, - 12539: 672, - 12540: 672, - 12541: 672, - 12542: 672, - 12543: 672, - 12544: 672, - 12545: 672, - 12546: 672, - 12547: 672, - 12548: 672, - 12549: 672, - 12550: 672, - 12551: 672, - 12552: 672, - 12553: 672, - 12554: 672, - 12555: 672, - 12556: 672, - 12557: 672, - 12558: 672, - 12559: 672, - 12560: 672, - 12561: 672, - 12562: 672, - 12563: 672, - 12564: 672, - 12565: 672, - 12566: 672, - 12567: 672, - 12568: 672, - 12569: 672, - 12570: 672, - 12571: 672, - 12572: 672, - 12573: 672, - 12574: 672, - 12575: 672, - 12576: 672, - 12577: 672, - 12578: 672, - 12579: 672, - 12580: 672, - 12581: 672, - 12582: 672, - 12583: 672, - 12584: 672, - 12585: 672, - 12586: 672, - 12587: 672, - 12588: 672, - 12589: 672, - 12590: 672, - 12591: 672, - 12592: 672, - 12593: 672, - 12594: 672, - 12595: 672, - 12596: 672, - 12597: 672, - 12598: 672, - 12599: 672, - 12600: 672, - 12601: 672, - 12602: 672, - 12603: 672, - 12604: 672, - 12605: 672, - 12606: 672, - 12607: 672, - 12608: 672, - 12609: 672, - 12610: 672, - 12611: 672, - 12612: 672, - 12613: 672, - 12614: 672, - 12615: 672, - 12616: 672, - 12617: 672, - 12618: 672, - 12619: 672, - 12620: 672, - 12621: 672, - 12622: 672, - 12623: 672, - 12624: 672, - 12625: 672, - 12626: 672, - 12627: 672, - 12628: 672, - 12629: 672, - 12630: 672, - 12631: 672, - 12632: 672, - 12633: 672, - 12634: 672, - 12635: 672, - 12636: 672, - 12637: 672, - 12638: 672, - 12639: 672, - 12640: 672, - 12641: 672, - 12642: 672, - 12643: 672, - 12644: 672, - 12645: 672, - 12646: 672, - 12647: 672, - 12648: 672, - 12649: 672, - 12650: 672, - 12651: 672, - 12652: 672, - 12653: 672, - 12654: 672, - 12655: 672, - 12656: 672, - 12657: 672, - 12658: 672, - 12659: 672, - 12660: 672, - 12661: 672, - 12662: 672, - 12663: 672, - 12664: 672, - 12665: 672, - 12666: 672, - 12667: 672, - 12668: 672, - 12669: 672, - 12670: 672, - 12671: 672, - 12672: 672, - 12673: 672, - 12674: 672, - 12675: 672, - 12676: 672, - 12677: 672, - 12678: 672, - 12679: 672, - 12680: 672, - 12681: 672, - 12682: 672, - 12683: 672, - 12684: 672, - 12685: 672, - 12686: 672, - 12687: 672, - 12688: 672, - 12689: 672, - 12690: 672, - 12691: 672, - 12692: 672, - 12693: 672, - 12694: 672, - 12695: 672, - 12696: 672, - 12697: 672, - 12698: 672, - 12699: 672, - 12700: 672, - 12701: 672, - 12702: 672, - 12703: 672, - 12704: 672, - 12705: 672, - 12706: 672, - 12707: 672, - 12708: 672, - 12709: 672, - 12710: 672, - 12711: 672, - 12712: 672, - 12713: 672, - 12714: 672, - 12715: 672, - 12716: 672, - 12717: 672, - 12718: 672, - 12719: 672, - 12720: 672, - 12721: 672, - 12722: 672, - 12723: 672, - 12724: 672, - 12725: 672, - 12726: 672, - 12727: 672, - 12728: 672, - 12729: 672, - 12730: 672, - 12731: 672, - 12732: 672, - 12733: 672, - 12734: 672, - 12735: 672, - 12736: 672, - 12737: 673, - 12738: 673, - 12739: 673, - 12740: 673, - 12741: 673, - 12742: 673, - 12743: 673, - 12744: 673, - 12745: 673, - 12746: 673, - 12747: 673, - 12748: 673, - 12749: 673, - 12750: 673, - 12751: 673, - 12752: 673, - 12753: 673, - 12754: 673, - 12755: 673, - 12756: 673, - 12757: 673, - 12758: 673, - 12759: 673, - 12760: 673, - 12761: 673, - 12762: 673, - 12763: 673, - 12764: 673, - 12765: 673, - 12766: 673, - 12767: 673, - 12768: 673, - 12769: 673, - 12770: 673, - 12771: 673, - 12772: 673, - 12773: 673, - 12774: 673, - 12775: 673, - 12776: 673, - 12777: 673, - 12778: 673, - 12779: 673, - 12780: 673, - 12781: 673, - 12782: 673, - 12783: 673, - 12784: 673, - 12785: 673, - 12786: 673, - 12787: 673, - 12788: 673, - 12789: 673, - 12790: 673, - 12791: 673, - 12792: 673, - 12793: 673, - 12794: 673, - 12795: 673, - 12796: 673, - 12797: 673, - 12798: 673, - 12799: 673, - 12800: 673, - 12801: 673, - 12802: 673, - 12803: 673, - 12804: 673, - 12805: 673, - 12806: 673, - 12807: 673, - 12808: 673, - 12809: 673, - 12810: 673, - 12811: 673, - 12812: 673, - 12813: 673, - 12814: 673, - 12815: 673, - 12816: 673, - 12817: 673, - 12818: 673, - 12819: 673, - 12820: 673, - 12821: 673, - 12822: 673, - 12823: 673, - 12824: 673, - 12825: 673, - 12826: 673, - 12827: 673, - 12828: 673, - 12829: 673, - 12830: 673, - 12831: 673, - 12832: 673, - 12833: 673, - 12834: 673, - 12835: 673, - 12836: 673, - 12837: 673, - 12838: 673, - 12839: 673, - 12840: 673, - 12841: 673, - 12842: 673, - 12843: 673, - 12844: 673, - 12845: 673, - 12846: 673, - 12847: 673, - 12848: 673, - 12849: 673, - 12850: 673, - 12851: 673, - 12852: 673, - 12853: 673, - 12854: 673, - 12855: 673, - 12856: 673, - 12857: 673, - 12858: 673, - 12859: 673, - 12860: 673, - 12861: 673, - 12862: 673, - 12863: 673, - 12864: 673, - 12865: 673, - 12866: 673, - 12867: 673, - 12868: 673, - 12869: 673, - 12870: 673, - 12871: 673, - 12872: 673, - 12873: 673, - 12874: 673, - 12875: 673, - 12876: 673, - 12877: 673, - 12878: 673, - 12879: 673, - 12880: 673, - 12881: 673, - 12882: 673, - 12883: 673, - 12884: 673, - 12885: 673, - 12886: 673, - 12887: 673, - 12888: 673, - 12889: 673, - 12890: 673, - 12891: 673, - 12892: 673, - 12893: 673, - 12894: 673, - 12895: 673, - 12896: 673, - 12897: 673, - 12898: 673, - 12899: 673, - 12900: 673, - 12901: 673, - 12902: 673, - 12903: 673, - 12904: 673, - 12905: 673, - 12906: 673, - 12907: 673, - 12908: 673, - 12909: 673, - 12910: 673, - 12911: 673, - 12912: 673, - 12913: 673, - 12914: 673, - 12915: 673, - 12916: 673, - 12917: 673, - 12918: 673, - 12919: 673, - 12920: 673, - 12921: 673, - 12922: 673, - 12923: 673, - 12924: 673, - 12925: 673, - 12926: 673, - 12927: 673, - 12928: 673, - 12929: 673, - 12930: 673, - 12931: 673, - 12932: 673, - 12933: 673, - 12934: 673, - 12935: 673, - 12936: 673, - 12937: 673, - 12938: 673, - 12939: 673, - 12940: 673, - 12941: 673, - 12942: 673, - 12943: 673, - 12944: 673, - 12945: 673, - 12946: 673, - 12947: 673, - 12948: 673, - 12949: 673, - 12950: 673, - 12951: 673, - 12952: 673, - 12953: 673, - 12954: 673, - 12955: 673, - 12956: 673, - 12957: 673, - 12958: 673, - 12959: 673, - 12960: 673, - 12961: 673, - 12962: 673, - 12963: 673, - 12964: 673, - 12965: 673, - 12966: 673, - 12967: 673, - 12968: 673, - 12969: 673, - 12970: 673, - 12971: 673, - 12972: 673, - 12973: 673, - 12974: 673, - 12975: 673, - 12976: 673, - 12977: 673, - 12978: 673, - 12979: 673, - 12980: 673, - 12981: 673, - 12982: 673, - 12983: 673, - 12984: 673, - 12985: 673, - 12986: 673, - 12987: 673, - 12988: 673, - 12989: 673, - 12990: 673, - 12991: 673, - 12992: 673, - 12993: 673, - 12994: 673, - 12995: 673, - 12996: 673, - 12997: 673, - 12998: 673, - 12999: 673, - 13000: 673, - 13001: 673, - 13002: 673, - 13003: 673, - 13004: 673, - 13005: 673, - 13006: 673, - 13007: 673, - 13008: 673, - 13009: 673, - 13010: 673, - 13011: 673, - 13012: 673, - 13013: 673, - 13014: 673, - 13015: 673, - 13016: 673, - 13017: 673, - 13018: 673, - 13019: 673, - 13020: 673, - 13021: 673, - 13022: 673, - 13023: 673, - 13024: 673, - 13025: 673, - 13026: 673, - 13027: 673, - 13028: 673, - 13029: 673, - 13030: 673, - 13031: 673, - 13032: 673, - 13033: 673, - 13034: 673, - 13035: 673, - 13036: 673, - 13037: 673, - 13038: 673, - 13039: 673, - 13040: 673, - 13041: 673, - 13042: 673, - 13043: 673, - 13044: 673, - 13045: 673, - 13046: 673, - 13047: 673, - 13048: 673, - 13049: 673, - 13050: 673, - 13051: 673, - 13052: 673, - 13053: 673, - 13054: 673, - 13055: 673, - 13056: 673, - 13057: 673, - 13058: 673, - 13059: 673, - 13060: 673, - 13061: 674, - 13062: 674, - 13063: 674, - 13064: 674, - 13065: 674, - 13066: 674, - 13067: 674, - 13068: 674, - 13069: 674, - 13070: 674, - 13071: 674, - 13072: 674, - 13073: 674, - 13074: 674, - 13075: 674, - 13076: 674, - 13077: 674, - 13078: 674, - 13079: 674, - 13080: 674, - 13081: 674, - 13082: 674, - 13083: 674, - 13084: 674, - 13085: 674, - 13086: 674, - 13087: 674, - 13088: 674, - 13089: 674, - 13090: 674, - 13091: 674, - 13092: 674, - 13093: 674, - 13094: 674, - 13095: 674, - 13096: 674, - 13097: 674, - 13098: 674, - 13099: 674, - 13100: 674, - 13101: 674, - 13102: 674, - 13103: 674, - 13104: 674, - 13105: 674, - 13106: 674, - 13107: 674, - 13108: 674, - 13109: 674, - 13110: 674, - 13111: 674, - 13112: 674, - 13113: 674, - 13114: 674, - 13115: 674, - 13116: 674, - 13117: 674, - 13118: 674, - 13119: 674, - 13120: 674, - 13121: 674, - 13122: 674, - 13123: 674, - 13124: 674, - 13125: 674, - 13126: 674, - 13127: 674, - 13128: 674, - 13129: 674, - 13130: 674, - 13131: 674, - 13132: 674, - 13133: 674, - 13134: 674, - 13135: 674, - 13136: 674, - 13137: 674, - 13138: 674, - 13139: 674, - 13140: 674, - 13141: 674, - 13142: 674, - 13143: 674, - 13144: 674, - 13145: 674, - 13146: 674, - 13147: 674, - 13148: 674, - 13149: 674, - 13150: 674, - 13151: 674, - 13152: 674, - 13153: 674, - 13154: 674, - 13155: 674, - 13156: 674, - 13157: 674, - 13158: 674, - 13159: 674, - 13160: 674, - 13161: 674, - 13162: 674, - 13163: 674, - 13164: 674, - 13165: 674, - 13166: 674, - 13167: 674, - 13168: 674, - 13169: 674, - 13170: 674, - 13171: 674, - 13172: 674, - 13173: 674, - 13174: 674, - 13175: 674, - 13176: 674, - 13177: 674, - 13178: 674, - 13179: 674, - 13180: 674, - 13181: 674, - 13182: 674, - 13183: 674, - 13184: 674, - 13185: 674, - 13186: 674, - 13187: 674, - 13188: 674, - 13189: 674, - 13190: 674, - 13191: 674, - 13192: 674, - 13193: 674, - 13194: 674, - 13195: 674, - 13196: 674, - 13197: 674, - 13198: 674, - 13199: 674, - 13200: 674, - 13201: 674, - 13202: 674, - 13203: 674, - 13204: 674, - 13205: 674, - 13206: 674, - 13207: 674, - 13208: 674, - 13209: 674, - 13210: 674, - 13211: 674, - 13212: 674, - 13213: 674, - 13214: 674, - 13215: 674, - 13216: 674, - 13217: 674, - 13218: 674, - 13219: 674, - 13220: 674, - 13221: 674, - 13222: 674, - 13223: 674, - 13224: 674, - 13225: 674, - 13226: 674, - 13227: 674, - 13228: 674, - 13229: 674, - 13230: 674, - 13231: 674, - 13232: 674, - 13233: 674, - 13234: 674, - 13235: 674, - 13236: 674, - 13237: 674, - 13238: 674, - 13239: 674, - 13240: 674, - 13241: 674, - 13242: 674, - 13243: 674, - 13244: 674, - 13245: 674, - 13246: 674, - 13247: 674, - 13248: 674, - 13249: 674, - 13250: 674, - 13251: 674, - 13252: 674, - 13253: 674, - 13254: 674, - 13255: 674, - 13256: 674, - 13257: 674, - 13258: 674, - 13259: 674, - 13260: 674, - 13261: 674, - 13262: 674, - 13263: 674, - 13264: 674, - 13265: 674, - 13266: 674, - 13267: 674, - 13268: 674, - 13269: 674, - 13270: 674, - 13271: 674, - 13272: 674, - 13273: 674, - 13274: 674, - 13275: 674, - 13276: 674, - 13277: 674, - 13278: 674, - 13279: 674, - 13280: 674, - 13281: 674, - 13282: 674, - 13283: 674, - 13284: 674, - 13285: 674, - 13286: 674, - 13287: 674, - 13288: 674, - 13289: 674, - 13290: 674, - 13291: 674, - 13292: 674, - 13293: 674, - 13294: 674, - 13295: 674, - 13296: 674, - 13297: 674, - 13298: 674, - 13299: 674, - 13300: 674, - 13301: 674, - 13302: 674, - 13303: 674, - 13304: 674, - 13305: 674, - 13306: 674, - 13307: 674, - 13308: 674, - 13309: 674, - 13310: 674, - 13311: 674, - 13312: 674, - 13313: 674, - 13314: 674, - 13315: 674, - 13316: 674, - 13317: 674, - 13318: 674, - 13319: 674, - 13320: 674, - 13321: 674, - 13322: 674, - 13323: 674, - 13324: 674, - 13325: 674, - 13326: 674, - 13327: 674, - 13328: 674, - 13329: 674, - 13330: 674, - 13331: 674, - 13332: 674, - 13333: 674, - 13334: 674, - 13335: 674, - 13336: 674, - 13337: 674, - 13338: 674, - 13339: 674, - 13340: 674, - 13341: 674, - 13342: 674, - 13343: 674, - 13344: 674, - 13345: 674, - 13346: 674, - 13347: 674, - 13348: 674, - 13349: 674, - 13350: 674, - 13351: 674, - 13352: 674, - 13353: 674, - 13354: 674, - 13355: 674, - 13356: 674, - 13357: 674, - 13358: 674, - 13359: 674, - 13360: 674, - 13361: 674, - 13362: 674, - 13363: 674, - 13364: 674, - 13365: 674, - 13366: 674, - 13367: 674, - 13368: 674, - 13369: 674, - 13370: 674, - 13371: 674, - 13372: 674, - 13373: 674, - 13374: 674, - 13375: 674, - 13376: 674, - 13377: 674, - 13378: 674, - 13379: 674, - 13380: 674, - 13381: 674, - 13382: 674, - 13383: 674, - 13384: 674, - 13385: 675, - 13386: 675, - 13387: 675, - 13388: 675, - 13389: 675, - 13390: 675, - 13391: 675, - 13392: 675, - 13393: 675, - 13394: 675, - 13395: 675, - 13396: 675, - 13397: 675, - 13398: 675, - 13399: 675, - 13400: 675, - 13401: 675, - 13402: 675, - 13403: 675, - 13404: 675, - 13405: 675, - 13406: 675, - 13407: 675, - 13408: 675, - 13409: 675, - 13410: 675, - 13411: 675, - 13412: 675, - 13413: 675, - 13414: 675, - 13415: 675, - 13416: 675, - 13417: 675, - 13418: 675, - 13419: 675, - 13420: 675, - 13421: 675, - 13422: 675, - 13423: 675, - 13424: 675, - 13425: 675, - 13426: 675, - 13427: 675, - 13428: 675, - 13429: 675, - 13430: 675, - 13431: 675, - 13432: 675, - 13433: 675, - 13434: 675, - 13435: 675, - 13436: 675, - 13437: 675, - 13438: 675, - 13439: 675, - 13440: 675, - 13441: 675, - 13442: 675, - 13443: 675, - 13444: 675, - 13445: 675, - 13446: 675, - 13447: 675, - 13448: 675, - 13449: 675, - 13450: 675, - 13451: 675, - 13452: 675, - 13453: 675, - 13454: 675, - 13455: 675, - 13456: 675, - 13457: 675, - 13458: 675, - 13459: 675, - 13460: 675, - 13461: 675, - 13462: 675, - 13463: 675, - 13464: 675, - 13465: 675, - 13466: 675, - 13467: 675, - 13468: 675, - 13469: 675, - 13470: 675, - 13471: 675, - 13472: 675, - 13473: 675, - 13474: 675, - 13475: 675, - 13476: 675, - 13477: 675, - 13478: 675, - 13479: 675, - 13480: 675, - 13481: 675, - 13482: 675, - 13483: 675, - 13484: 675, - 13485: 675, - 13486: 675, - 13487: 675, - 13488: 675, - 13489: 675, - 13490: 675, - 13491: 675, - 13492: 675, - 13493: 675, - 13494: 675, - 13495: 675, - 13496: 675, - 13497: 675, - 13498: 675, - 13499: 675, - 13500: 675, - 13501: 675, - 13502: 675, - 13503: 675, - 13504: 675, - 13505: 675, - 13506: 675, - 13507: 675, - 13508: 675, - 13509: 675, - 13510: 675, - 13511: 675, - 13512: 675, - 13513: 675, - 13514: 675, - 13515: 675, - 13516: 675, - 13517: 675, - 13518: 675, - 13519: 675, - 13520: 675, - 13521: 675, - 13522: 675, - 13523: 675, - 13524: 675, - 13525: 675, - 13526: 675, - 13527: 675, - 13528: 675, - 13529: 675, - 13530: 675, - 13531: 675, - 13532: 675, - 13533: 675, - 13534: 675, - 13535: 675, - 13536: 675, - 13537: 675, - 13538: 675, - 13539: 675, - 13540: 675, - 13541: 675, - 13542: 675, - 13543: 675, - 13544: 675, - 13545: 675, - 13546: 675, - 13547: 675, - 13548: 675, - 13549: 675, - 13550: 675, - 13551: 675, - 13552: 675, - 13553: 675, - 13554: 675, - 13555: 675, - 13556: 675, - 13557: 675, - 13558: 675, - 13559: 675, - 13560: 675, - 13561: 675, - 13562: 675, - 13563: 675, - 13564: 675, - 13565: 675, - 13566: 675, - 13567: 675, - 13568: 675, - 13569: 675, - 13570: 675, - 13571: 675, - 13572: 675, - 13573: 675, - 13574: 675, - 13575: 675, - 13576: 675, - 13577: 675, - 13578: 675, - 13579: 675, - 13580: 675, - 13581: 675, - 13582: 675, - 13583: 675, - 13584: 675, - 13585: 675, - 13586: 675, - 13587: 675, - 13588: 675, - 13589: 675, - 13590: 675, - 13591: 675, - 13592: 675, - 13593: 675, - 13594: 675, - 13595: 675, - 13596: 675, - 13597: 675, - 13598: 675, - 13599: 675, - 13600: 675, - 13601: 675, - 13602: 675, - 13603: 675, - 13604: 675, - 13605: 675, - 13606: 675, - 13607: 675, - 13608: 675, - 13609: 675, - 13610: 675, - 13611: 675, - 13612: 675, - 13613: 675, - 13614: 675, - 13615: 675, - 13616: 675, - 13617: 675, - 13618: 675, - 13619: 675, - 13620: 675, - 13621: 675, - 13622: 675, - 13623: 675, - 13624: 675, - 13625: 675, - 13626: 675, - 13627: 675, - 13628: 675, - 13629: 675, - 13630: 675, - 13631: 675, - 13632: 675, - 13633: 675, - 13634: 675, - 13635: 675, - 13636: 675, - 13637: 675, - 13638: 675, - 13639: 675, - 13640: 675, - 13641: 675, - 13642: 675, - 13643: 675, - 13644: 675, - 13645: 675, - 13646: 675, - 13647: 675, - 13648: 675, - 13649: 675, - 13650: 675, - 13651: 675, - 13652: 675, - 13653: 675, - 13654: 675, - 13655: 675, - 13656: 675, - 13657: 675, - 13658: 675, - 13659: 675, - 13660: 675, - 13661: 675, - 13662: 675, - 13663: 675, - 13664: 675, - 13665: 675, - 13666: 675, - 13667: 675, - 13668: 675, - 13669: 675, - 13670: 675, - 13671: 675, - 13672: 675, - 13673: 675, - 13674: 675, - 13675: 675, - 13676: 675, - 13677: 675, - 13678: 675, - 13679: 675, - 13680: 675, - 13681: 675, - 13682: 675, - 13683: 675, - 13684: 675, - 13685: 675, - 13686: 675, - 13687: 675, - 13688: 675, - 13689: 675, - 13690: 675, - 13691: 675, - 13692: 675, - 13693: 675, - 13694: 675, - 13695: 675, - 13696: 675, - 13697: 675, - 13698: 675, - 13699: 675, - 13700: 675, - 13701: 675, - 13702: 675, - 13703: 675, - 13704: 675, - 13705: 675, - 13706: 675, - 13707: 675, - 13708: 675, - 13709: 676, - 13710: 676, - 13711: 676, - 13712: 676, - 13713: 676, - 13714: 676, - 13715: 676, - 13716: 676, - 13717: 676, - 13718: 676, - 13719: 676, - 13720: 676, - 13721: 676, - 13722: 676, - 13723: 676, - 13724: 676, - 13725: 676, - 13726: 676, - 13727: 676, - 13728: 676, - 13729: 676, - 13730: 676, - 13731: 676, - 13732: 676, - 13733: 676, - 13734: 676, - 13735: 676, - 13736: 676, - 13737: 676, - 13738: 676, - 13739: 676, - 13740: 676, - 13741: 676, - 13742: 676, - 13743: 676, - 13744: 676, - 13745: 676, - 13746: 676, - 13747: 676, - 13748: 676, - 13749: 676, - 13750: 676, - 13751: 676, - 13752: 676, - 13753: 676, - 13754: 676, - 13755: 676, - 13756: 676, - 13757: 676, - 13758: 676, - 13759: 676, - 13760: 676, - 13761: 676, - 13762: 676, - 13763: 676, - 13764: 676, - 13765: 676, - 13766: 676, - 13767: 676, - 13768: 676, - 13769: 676, - 13770: 676, - 13771: 676, - 13772: 676, - 13773: 676, - 13774: 676, - 13775: 676, - 13776: 676, - 13777: 676, - 13778: 676, - 13779: 676, - 13780: 676, - 13781: 676, - 13782: 676, - 13783: 676, - 13784: 676, - 13785: 676, - 13786: 676, - 13787: 676, - 13788: 676, - 13789: 676, - 13790: 676, - 13791: 676, - 13792: 676, - 13793: 676, - 13794: 676, - 13795: 676, - 13796: 676, - 13797: 676, - 13798: 676, - 13799: 676, - 13800: 676, - 13801: 676, - 13802: 676, - 13803: 676, - 13804: 676, - 13805: 676, - 13806: 676, - 13807: 676, - 13808: 676, - 13809: 676, - 13810: 676, - 13811: 676, - 13812: 676, - 13813: 676, - 13814: 676, - 13815: 676, - 13816: 676, - 13817: 676, - 13818: 676, - 13819: 676, - 13820: 676, - 13821: 676, - 13822: 676, - 13823: 676, - 13824: 676, - 13825: 676, - 13826: 676, - 13827: 676, - 13828: 676, - 13829: 676, - 13830: 676, - 13831: 676, - 13832: 676, - 13833: 676, - 13834: 676, - 13835: 676, - 13836: 676, - 13837: 676, - 13838: 676, - 13839: 676, - 13840: 676, - 13841: 676, - 13842: 676, - 13843: 676, - 13844: 676, - 13845: 676, - 13846: 676, - 13847: 676, - 13848: 676, - 13849: 676, - 13850: 676, - 13851: 676, - 13852: 676, - 13853: 676, - 13854: 676, - 13855: 676, - 13856: 676, - 13857: 676, - 13858: 676, - 13859: 676, - 13860: 676, - 13861: 676, - 13862: 676, - 13863: 676, - 13864: 676, - 13865: 676, - 13866: 676, - 13867: 676, - 13868: 676, - 13869: 676, - 13870: 676, - 13871: 676, - 13872: 676, - 13873: 676, - 13874: 676, - 13875: 676, - 13876: 676, - 13877: 676, - 13878: 676, - 13879: 676, - 13880: 676, - 13881: 676, - 13882: 676, - 13883: 676, - 13884: 676, - 13885: 676, - 13886: 676, - 13887: 676, - 13888: 676, - 13889: 676, - 13890: 676, - 13891: 676, - 13892: 676, - 13893: 676, - 13894: 676, - 13895: 676, - 13896: 676, - 13897: 676, - 13898: 676, - 13899: 676, - 13900: 676, - 13901: 676, - 13902: 676, - 13903: 676, - 13904: 676, - 13905: 676, - 13906: 676, - 13907: 676, - 13908: 676, - 13909: 676, - 13910: 676, - 13911: 676, - 13912: 676, - 13913: 676, - 13914: 676, - 13915: 676, - 13916: 676, - 13917: 676, - 13918: 676, - 13919: 676, - 13920: 676, - 13921: 676, - 13922: 676, - 13923: 676, - 13924: 676, - 13925: 676, - 13926: 676, - 13927: 676, - 13928: 676, - 13929: 676, - 13930: 676, - 13931: 676, - 13932: 676, - 13933: 676, - 13934: 676, - 13935: 676, - 13936: 676, - 13937: 676, - 13938: 676, - 13939: 676, - 13940: 676, - 13941: 676, - 13942: 676, - 13943: 676, - 13944: 676, - 13945: 676, - 13946: 676, - 13947: 676, - 13948: 676, - 13949: 676, - 13950: 676, - 13951: 676, - 13952: 676, - 13953: 676, - 13954: 676, - 13955: 676, - 13956: 676, - 13957: 676, - 13958: 676, - 13959: 676, - 13960: 676, - 13961: 676, - 13962: 676, - 13963: 676, - 13964: 676, - 13965: 676, - 13966: 676, - 13967: 676, - 13968: 676, - 13969: 676, - 13970: 676, - 13971: 676, - 13972: 676, - 13973: 676, - 13974: 676, - 13975: 676, - 13976: 676, - 13977: 676, - 13978: 676, - 13979: 676, - 13980: 676, - 13981: 676, - 13982: 676, - 13983: 676, - 13984: 676, - 13985: 676, - 13986: 676, - 13987: 676, - 13988: 676, - 13989: 676, - 13990: 676, - 13991: 676, - 13992: 676, - 13993: 676, - 13994: 676, - 13995: 676, - 13996: 676, - 13997: 676, - 13998: 676, - 13999: 676, - 14000: 676, - 14001: 676, - 14002: 676, - 14003: 676, - 14004: 676, - 14005: 676, - 14006: 676, - 14007: 676, - 14008: 676, - 14009: 676, - 14010: 676, - 14011: 676, - 14012: 676, - 14013: 676, - 14014: 676, - 14015: 676, - 14016: 676, - 14017: 676, - 14018: 676, - 14019: 676, - 14020: 676, - 14021: 676, - 14022: 676, - 14023: 676, - 14024: 676, - 14025: 676, - 14026: 676, - 14027: 676, - 14028: 676, - 14029: 676, - 14030: 676, - 14031: 676, - 14032: 676, - 14033: 677, - 14034: 677, - 14035: 677, - 14036: 677, - 14037: 677, - 14038: 677, - 14039: 677, - 14040: 677, - 14041: 677, - 14042: 677, - 14043: 677, - 14044: 677, - 14045: 677, - 14046: 677, - 14047: 677, - 14048: 677, - 14049: 677, - 14050: 677, - 14051: 677, - 14052: 677, - 14053: 677, - 14054: 677, - 14055: 677, - 14056: 677, - 14057: 677, - 14058: 677, - 14059: 677, - 14060: 677, - 14061: 677, - 14062: 677, - 14063: 677, - 14064: 677, - 14065: 677, - 14066: 677, - 14067: 677, - 14068: 677, - 14069: 677, - 14070: 677, - 14071: 677, - 14072: 677, - 14073: 677, - 14074: 677, - 14075: 677, - 14076: 677, - 14077: 677, - 14078: 677, - 14079: 677, - 14080: 677, - 14081: 677, - 14082: 677, - 14083: 677, - 14084: 677, - 14085: 677, - 14086: 677, - 14087: 677, - 14088: 677, - 14089: 677, - 14090: 677, - 14091: 677, - 14092: 677, - 14093: 677, - 14094: 677, - 14095: 677, - 14096: 677, - 14097: 677, - 14098: 677, - 14099: 677, - 14100: 677, - 14101: 677, - 14102: 677, - 14103: 677, - 14104: 677, - 14105: 677, - 14106: 677, - 14107: 677, - 14108: 677, - 14109: 677, - 14110: 677, - 14111: 677, - 14112: 677, - 14113: 677, - 14114: 677, - 14115: 677, - 14116: 677, - 14117: 677, - 14118: 677, - 14119: 677, - 14120: 677, - 14121: 677, - 14122: 677, - 14123: 677, - 14124: 677, - 14125: 677, - 14126: 677, - 14127: 677, - 14128: 677, - 14129: 677, - 14130: 677, - 14131: 677, - 14132: 677, - 14133: 677, - 14134: 677, - 14135: 677, - 14136: 677, - 14137: 677, - 14138: 677, - 14139: 677, - 14140: 677, - 14141: 677, - 14142: 677, - 14143: 677, - 14144: 677, - 14145: 677, - 14146: 677, - 14147: 677, - 14148: 677, - 14149: 677, - 14150: 677, - 14151: 677, - 14152: 677, - 14153: 677, - 14154: 677, - 14155: 677, - 14156: 677, - 14157: 677, - 14158: 677, - 14159: 677, - 14160: 677, - 14161: 677, - 14162: 677, - 14163: 677, - 14164: 677, - 14165: 677, - 14166: 677, - 14167: 677, - 14168: 677, - 14169: 677, - 14170: 677, - 14171: 677, - 14172: 677, - 14173: 677, - 14174: 677, - 14175: 677, - 14176: 677, - 14177: 677, - 14178: 677, - 14179: 677, - 14180: 677, - 14181: 677, - 14182: 677, - 14183: 677, - 14184: 677, - 14185: 677, - 14186: 677, - 14187: 677, - 14188: 677, - 14189: 677, - 14190: 677, - 14191: 677, - 14192: 677, - 14193: 677, - 14194: 677, - 14195: 677, - 14196: 677, - 14197: 677, - 14198: 677, - 14199: 677, - 14200: 677, - 14201: 677, - 14202: 677, - 14203: 677, - 14204: 677, - 14205: 677, - 14206: 677, - 14207: 677, - 14208: 677, - 14209: 677, - 14210: 677, - 14211: 677, - 14212: 677, - 14213: 677, - 14214: 677, - 14215: 677, - 14216: 677, - 14217: 677, - 14218: 677, - 14219: 677, - 14220: 677, - 14221: 677, - 14222: 677, - 14223: 677, - 14224: 677, - 14225: 677, - 14226: 677, - 14227: 677, - 14228: 677, - 14229: 677, - 14230: 677, - 14231: 677, - 14232: 677, - 14233: 677, - 14234: 677, - 14235: 677, - 14236: 677, - 14237: 677, - 14238: 677, - 14239: 677, - 14240: 677, - 14241: 677, - 14242: 677, - 14243: 677, - 14244: 677, - 14245: 677, - 14246: 677, - 14247: 677, - 14248: 677, - 14249: 677, - 14250: 677, - 14251: 677, - 14252: 677, - 14253: 677, - 14254: 677, - 14255: 677, - 14256: 677, - 14257: 677, - 14258: 677, - 14259: 677, - 14260: 677, - 14261: 677, - 14262: 677, - 14263: 677, - 14264: 677, - 14265: 677, - 14266: 677, - 14267: 677, - 14268: 677, - 14269: 677, - 14270: 677, - 14271: 677, - 14272: 677, - 14273: 677, - 14274: 677, - 14275: 677, - 14276: 677, - 14277: 677, - 14278: 677, - 14279: 677, - 14280: 677, - 14281: 677, - 14282: 677, - 14283: 677, - 14284: 677, - 14285: 677, - 14286: 677, - 14287: 677, - 14288: 677, - 14289: 677, - 14290: 677, - 14291: 677, - 14292: 677, - 14293: 677, - 14294: 677, - 14295: 677, - 14296: 677, - 14297: 677, - 14298: 677, - 14299: 677, - 14300: 677, - 14301: 677, - 14302: 677, - 14303: 677, - 14304: 677, - 14305: 677, - 14306: 677, - 14307: 677, - 14308: 677, - 14309: 677, - 14310: 677, - 14311: 677, - 14312: 677, - 14313: 677, - 14314: 677, - 14315: 677, - 14316: 677, - 14317: 677, - 14318: 677, - 14319: 677, - 14320: 677, - 14321: 677, - 14322: 677, - 14323: 677, - 14324: 677, - 14325: 677, - 14326: 677, - 14327: 677, - 14328: 677, - 14329: 677, - 14330: 677, - 14331: 677, - 14332: 677, - 14333: 677, - 14334: 677, - 14335: 677, - 14336: 677, - 14337: 677, - 14338: 677, - 14339: 677, - 14340: 677, - 14341: 677, - 14342: 677, - 14343: 677, - 14344: 677, - 14345: 677, - 14346: 677, - 14347: 677, - 14348: 677, - 14349: 677, - 14350: 677, - 14351: 677, - 14352: 677, - 14353: 677, - 14354: 677, - 14355: 677, - 14356: 677, - 14357: 678, - 14358: 678, - 14359: 678, - 14360: 678, - 14361: 678, - 14362: 678, - 14363: 678, - 14364: 678, - 14365: 678, - 14366: 678, - 14367: 678, - 14368: 678, - 14369: 678, - 14370: 678, - 14371: 678, - 14372: 678, - 14373: 678, - 14374: 678, - 14375: 678, - 14376: 678, - 14377: 678, - 14378: 678, - 14379: 678, - 14380: 678, - 14381: 678, - 14382: 678, - 14383: 678, - 14384: 678, - 14385: 678, - 14386: 678, - 14387: 678, - 14388: 678, - 14389: 678, - 14390: 678, - 14391: 678, - 14392: 678, - 14393: 678, - 14394: 678, - 14395: 678, - 14396: 678, - 14397: 678, - 14398: 678, - 14399: 678, - 14400: 678, - 14401: 678, - 14402: 678, - 14403: 678, - 14404: 678, - 14405: 678, - 14406: 678, - 14407: 678, - 14408: 678, - 14409: 678, - 14410: 678, - 14411: 678, - 14412: 678, - 14413: 678, - 14414: 678, - 14415: 678, - 14416: 678, - 14417: 678, - 14418: 678, - 14419: 678, - 14420: 678, - 14421: 678, - 14422: 678, - 14423: 678, - 14424: 678, - 14425: 678, - 14426: 678, - 14427: 678, - 14428: 678, - 14429: 678, - 14430: 678, - 14431: 678, - 14432: 678, - 14433: 678, - 14434: 678, - 14435: 678, - 14436: 678, - 14437: 678, - 14438: 678, - 14439: 678, - 14440: 678, - 14441: 678, - 14442: 678, - 14443: 678, - 14444: 678, - 14445: 678, - 14446: 678, - 14447: 678, - 14448: 678, - 14449: 678, - 14450: 678, - 14451: 678, - 14452: 678, - 14453: 678, - 14454: 678, - 14455: 678, - 14456: 678, - 14457: 678, - 14458: 678, - 14459: 678, - 14460: 678, - 14461: 678, - 14462: 678, - 14463: 678, - 14464: 678, - 14465: 678, - 14466: 678, - 14467: 678, - 14468: 678, - 14469: 678, - 14470: 678, - 14471: 678, - 14472: 678, - 14473: 678, - 14474: 678, - 14475: 678, - 14476: 678, - 14477: 678, - 14478: 678, - 14479: 678, - 14480: 678, - 14481: 678, - 14482: 678, - 14483: 678, - 14484: 678, - 14485: 678, - 14486: 678, - 14487: 678, - 14488: 678, - 14489: 678, - 14490: 678, - 14491: 678, - 14492: 678, - 14493: 678, - 14494: 678, - 14495: 678, - 14496: 678, - 14497: 678, - 14498: 678, - 14499: 678, - 14500: 678, - 14501: 678, - 14502: 678, - 14503: 678, - 14504: 678, - 14505: 678, - 14506: 678, - 14507: 678, - 14508: 678, - 14509: 678, - 14510: 678, - 14511: 678, - 14512: 678, - 14513: 678, - 14514: 678, - 14515: 678, - 14516: 678, - 14517: 678, - 14518: 678, - 14519: 678, - 14520: 678, - 14521: 678, - 14522: 678, - 14523: 678, - 14524: 678, - 14525: 678, - 14526: 678, - 14527: 678, - 14528: 678, - 14529: 678, - 14530: 678, - 14531: 678, - 14532: 678, - 14533: 678, - 14534: 678, - 14535: 678, - 14536: 678, - 14537: 678, - 14538: 678, - 14539: 678, - 14540: 678, - 14541: 678, - 14542: 678, - 14543: 678, - 14544: 678, - 14545: 678, - 14546: 678, - 14547: 678, - 14548: 678, - 14549: 678, - 14550: 678, - 14551: 678, - 14552: 678, - 14553: 678, - 14554: 678, - 14555: 678, - 14556: 678, - 14557: 678, - 14558: 678, - 14559: 678, - 14560: 678, - 14561: 678, - 14562: 678, - 14563: 678, - 14564: 678, - 14565: 678, - 14566: 678, - 14567: 678, - 14568: 678, - 14569: 678, - 14570: 678, - 14571: 678, - 14572: 678, - 14573: 678, - 14574: 678, - 14575: 678, - 14576: 678, - 14577: 678, - 14578: 678, - 14579: 678, - 14580: 678, - 14581: 678, - 14582: 678, - 14583: 678, - 14584: 678, - 14585: 678, - 14586: 678, - 14587: 678, - 14588: 678, - 14589: 678, - 14590: 678, - 14591: 678, - 14592: 678, - 14593: 678, - 14594: 678, - 14595: 678, - 14596: 678, - 14597: 678, - 14598: 678, - 14599: 678, - 14600: 678, - 14601: 678, - 14602: 678, - 14603: 678, - 14604: 678, - 14605: 678, - 14606: 678, - 14607: 678, - 14608: 678, - 14609: 678, - 14610: 678, - 14611: 678, - 14612: 678, - 14613: 678, - 14614: 678, - 14615: 678, - 14616: 678, - 14617: 678, - 14618: 678, - 14619: 678, - 14620: 678, - 14621: 678, - 14622: 678, - 14623: 678, - 14624: 678, - 14625: 678, - 14626: 678, - 14627: 678, - 14628: 678, - 14629: 678, - 14630: 678, - 14631: 678, - 14632: 678, - 14633: 678, - 14634: 678, - 14635: 678, - 14636: 678, - 14637: 678, - 14638: 678, - 14639: 678, - 14640: 678, - 14641: 678, - 14642: 678, - 14643: 678, - 14644: 678, - 14645: 678, - 14646: 678, - 14647: 678, - 14648: 678, - 14649: 678, - 14650: 678, - 14651: 678, - 14652: 678, - 14653: 678, - 14654: 678, - 14655: 678, - 14656: 678, - 14657: 678, - 14658: 678, - 14659: 678, - 14660: 678, - 14661: 678, - 14662: 678, - 14663: 678, - 14664: 678, - 14665: 678, - 14666: 678, - 14667: 678, - 14668: 678, - 14669: 678, - 14670: 678, - 14671: 678, - 14672: 678, - 14673: 678, - 14674: 678, - 14675: 678, - 14676: 678, - 14677: 678, - 14678: 678, - 14679: 678, - 14680: 678, - 14681: 679, - 14682: 679, - 14683: 679, - 14684: 679, - 14685: 679, - 14686: 679, - 14687: 679, - 14688: 679, - 14689: 679, - 14690: 679, - 14691: 679, - 14692: 679, - 14693: 679, - 14694: 679, - 14695: 679, - 14696: 679, - 14697: 679, - 14698: 679, - 14699: 679, - 14700: 679, - 14701: 679, - 14702: 679, - 14703: 679, - 14704: 679, - 14705: 679, - 14706: 679, - 14707: 679, - 14708: 679, - 14709: 679, - 14710: 679, - 14711: 679, - 14712: 679, - 14713: 679, - 14714: 679, - 14715: 679, - 14716: 679, - 14717: 679, - 14718: 679, - 14719: 679, - 14720: 679, - 14721: 679, - 14722: 679, - 14723: 679, - 14724: 679, - 14725: 679, - 14726: 679, - 14727: 679, - 14728: 679, - 14729: 679, - 14730: 679, - 14731: 679, - 14732: 679, - 14733: 679, - 14734: 679, - 14735: 679, - 14736: 679, - 14737: 679, - 14738: 679, - 14739: 679, - 14740: 679, - 14741: 679, - 14742: 679, - 14743: 679, - 14744: 679, - 14745: 679, - 14746: 679, - 14747: 679, - 14748: 679, - 14749: 679, - 14750: 679, - 14751: 679, - 14752: 679, - 14753: 679, - 14754: 679, - 14755: 679, - 14756: 679, - 14757: 679, - 14758: 679, - 14759: 679, - 14760: 679, - 14761: 679, - 14762: 679, - 14763: 679, - 14764: 679, - 14765: 679, - 14766: 679, - 14767: 679, - 14768: 679, - 14769: 679, - 14770: 679, - 14771: 679, - 14772: 679, - 14773: 679, - 14774: 679, - 14775: 679, - 14776: 679, - 14777: 679, - 14778: 679, - 14779: 679, - 14780: 679, - 14781: 679, - 14782: 679, - 14783: 679, - 14784: 679, - 14785: 679, - 14786: 679, - 14787: 679, - 14788: 679, - 14789: 679, - 14790: 679, - 14791: 679, - 14792: 679, - 14793: 679, - 14794: 679, - 14795: 679, - 14796: 679, - 14797: 679, - 14798: 679, - 14799: 679, - 14800: 679, - 14801: 679, - 14802: 679, - 14803: 679, - 14804: 679, - 14805: 679, - 14806: 679, - 14807: 679, - 14808: 679, - 14809: 679, - 14810: 679, - 14811: 679, - 14812: 679, - 14813: 679, - 14814: 679, - 14815: 679, - 14816: 679, - 14817: 679, - 14818: 679, - 14819: 679, - 14820: 679, - 14821: 679, - 14822: 679, - 14823: 679, - 14824: 679, - 14825: 679, - 14826: 679, - 14827: 679, - 14828: 679, - 14829: 679, - 14830: 679, - 14831: 679, - 14832: 679, - 14833: 679, - 14834: 679, - 14835: 679, - 14836: 679, - 14837: 679, - 14838: 679, - 14839: 679, - 14840: 679, - 14841: 679, - 14842: 679, - 14843: 679, - 14844: 679, - 14845: 679, - 14846: 679, - 14847: 679, - 14848: 679, - 14849: 679, - 14850: 679, - 14851: 679, - 14852: 679, - 14853: 679, - 14854: 679, - 14855: 679, - 14856: 679, - 14857: 679, - 14858: 679, - 14859: 679, - 14860: 679, - 14861: 679, - 14862: 679, - 14863: 679, - 14864: 679, - 14865: 679, - 14866: 679, - 14867: 679, - 14868: 679, - 14869: 679, - 14870: 679, - 14871: 679, - 14872: 679, - 14873: 679, - 14874: 679, - 14875: 679, - 14876: 679, - 14877: 679, - 14878: 679, - 14879: 679, - 14880: 679, - 14881: 679, - 14882: 679, - 14883: 679, - 14884: 679, - 14885: 679, - 14886: 679, - 14887: 679, - 14888: 679, - 14889: 679, - 14890: 679, - 14891: 679, - 14892: 679, - 14893: 679, - 14894: 679, - 14895: 679, - 14896: 679, - 14897: 679, - 14898: 679, - 14899: 679, - 14900: 679, - 14901: 679, - 14902: 679, - 14903: 679, - 14904: 679, - 14905: 679, - 14906: 679, - 14907: 679, - 14908: 679, - 14909: 679, - 14910: 679, - 14911: 679, - 14912: 679, - 14913: 679, - 14914: 679, - 14915: 679, - 14916: 679, - 14917: 679, - 14918: 679, - 14919: 679, - 14920: 679, - 14921: 679, - 14922: 679, - 14923: 679, - 14924: 679, - 14925: 679, - 14926: 679, - 14927: 679, - 14928: 679, - 14929: 679, - 14930: 679, - 14931: 679, - 14932: 679, - 14933: 679, - 14934: 679, - 14935: 679, - 14936: 679, - 14937: 679, - 14938: 679, - 14939: 679, - 14940: 679, - 14941: 679, - 14942: 679, - 14943: 679, - 14944: 679, - 14945: 679, - 14946: 679, - 14947: 679, - 14948: 679, - 14949: 679, - 14950: 679, - 14951: 679, - 14952: 679, - 14953: 679, - 14954: 679, - 14955: 679, - 14956: 679, - 14957: 679, - 14958: 679, - 14959: 679, - 14960: 679, - 14961: 679, - 14962: 679, - 14963: 679, - 14964: 679, - 14965: 679, - 14966: 679, - 14967: 679, - 14968: 679, - 14969: 679, - 14970: 679, - 14971: 679, - 14972: 679, - 14973: 679, - 14974: 679, - 14975: 679, - 14976: 679, - 14977: 679, - 14978: 679, - 14979: 679, - 14980: 679, - 14981: 679, - 14982: 679, - 14983: 679, - 14984: 679, - 14985: 679, - 14986: 679, - 14987: 679, - 14988: 679, - 14989: 679, - 14990: 679, - 14991: 679, - 14992: 679, - 14993: 679, - 14994: 679, - 14995: 679, - 14996: 679, - 14997: 679, - 14998: 679, - 14999: 679, - 15000: 679, - 15001: 679, - 15002: 679, - 15003: 679, - 15004: 679, - 15005: 680, - 15006: 680, - 15007: 680, - 15008: 680, - 15009: 680, - 15010: 680, - 15011: 680, - 15012: 680, - 15013: 680, - 15014: 680, - 15015: 680, - 15016: 680, - 15017: 680, - 15018: 680, - 15019: 680, - 15020: 680, - 15021: 680, - 15022: 680, - 15023: 680, - 15024: 680, - 15025: 680, - 15026: 680, - 15027: 680, - 15028: 680, - 15029: 680, - 15030: 680, - 15031: 680, - 15032: 680, - 15033: 680, - 15034: 680, - 15035: 680, - 15036: 680, - 15037: 681, - 15038: 681, - 15039: 681, - 15040: 681, - 15041: 682, - 15042: 682, - 15043: 682, - 15044: 682, - 15045: 682, - 15046: 682, - 15047: 682, - 15048: 682, - 15049: 682, - 15050: 682, - 15051: 682, - 15052: 682, - 15053: 683, - 15054: 683, - 15055: 683, - 15056: 683, - 15057: 683, - 15058: 683, - 15059: 683, - 15060: 683, - 15061: 684, - 15062: 684, - 15063: 684, - 15064: 684, - 15065: 684, - 15066: 684, - 15067: 684, - 15068: 684, - 15069: 685, - 15070: 686, - 15071: 687, - 15072: 687, - 15073: 687, - 15074: 687, - 15075: 687, - 15076: 687, - 15077: 687, - 15078: 687, - 15079: 687, - 15080: 687, - 15081: 687, - 15082: 687, - 15083: 688, - 15084: 688, - 15085: 688, - 15086: 688, - 15087: 688, - 15088: 688, - 15089: 688, - 15090: 688, - 15091: 688, - 15092: 688, - 15093: 688, - 15094: 688, - 15095: 688, - 15096: 688, - 15097: 688, - 15098: 688, - 15099: 689, - 15100: 690, - 15101: 690, - 15102: 690, - 15103: 690, - 15104: 691, - 15105: 691, - 15106: 691, - 15107: 691, - 15108: 691, - 15109: 691, - 15110: 691, - 15111: 691, - 15112: 691, - 15113: 691, - 15114: 691, - 15115: 691, - 15116: 691, - 15117: 691, - 15118: 691, - 15119: 691, - 15120: 691, - 15121: 691, - 15122: 691, - 15123: 691, - 15124: 691, - 15125: 691, - 15126: 691, - 15127: 691, - 15128: 691, - 15129: 691, - 15130: 691, - 15131: 691, - 15132: 691, - 15133: 691, - 15134: 691, - 15135: 691, - 15136: 692, - 15137: 692, - 15138: 692, - 15139: 692, - 15140: 693, - 15141: 693, - 15142: 693, - 15143: 693, - 15144: 694, - 15145: 694, - 15146: 694, - 15147: 694, - 15148: 694, - 15149: 694, - 15150: 694, - 15151: 694, - 15152: 694, - 15153: 694, - 15154: 694, - 15155: 694, - 15156: 694, - 15157: 694, - 15158: 694, - 15159: 694, - 15160: 694, - 15161: 694, - 15162: 694, - 15163: 694, - 15164: 694, - 15165: 694, - 15166: 694, - 15167: 694, - 15168: 694, - 15169: 694, - 15170: 694, - 15171: 694, - 15172: 694, - 15173: 694, - 15174: 694, - 15175: 694, - 15176: 695, - 15177: 695, - 15178: 695, - 15179: 695, - 15180: 695, - 15181: 695, - 15182: 695, - 15183: 695, - 15184: 695, - 15185: 695, - 15186: 695, - 15187: 695, - 15188: 695, - 15189: 695, - 15190: 695, - 15191: 695, - 15192: 695, - 15193: 695, - 15194: 695, - 15195: 695, - 15196: 695, - 15197: 695, - 15198: 695, - 15199: 695, - 15200: 695, - 15201: 695, - 15202: 695, - 15203: 695, - 15204: 695, - 15205: 695, - 15206: 695, - 15207: 695, - 15208: 696, - 15209: 696, - 15210: 696, - 15211: 696, - 15212: 697, - 15213: 697, - 15214: 697, - 15215: 698, - 15216: 698, - 15217: 698, - 15218: 699, - 15219: 699, - 15220: 699, - 15221: 700, - 15222: 700, - 15223: 700, - 15224: 701, - 15225: 702, - 15226: 703, - 15227: 704, - 15228: 705, - 15229: 706, - 15230: 706, - 15231: 706, - 15232: 707, - 15233: 707, - 15234: 707, - 15235: 708, - 15236: 708, - 15237: 708, - 15238: 709, - 15239: 709, - 15240: 709, - 15241: 710, - 15242: 711, - 15243: 712, - 15244: 713, - 15245: 713, - 15246: 713, - 15247: 713, - 15248: 713, - 15249: 713, - 15250: 713, - 15251: 713, - 15252: 713, - 15253: 713, - 15254: 713, - 15255: 713, - 15256: 713, - 15257: 713, - 15258: 713, - 15259: 713, - 15260: 713, - 15261: 713, - 15262: 713, - 15263: 713, - 15264: 713, - 15265: 713, - 15266: 713, - 15267: 713, - 15268: 713, - 15269: 713, - 15270: 714, - 15271: 715, - 15272: 715, - 15273: 715, - 15274: 715, - 15275: 715, - 15276: 715, - 15277: 715, - 15278: 715, - 15279: 715, - 15280: 715, - 15281: 715, - 15282: 715, - 15283: 715, - 15284: 715, - 15285: 715, - 15286: 715, - 15287: 715, - 15288: 715, - 15289: 715, - 15290: 715, - 15291: 715, - 15292: 715, - 15293: 715, - 15294: 715, - 15295: 715, - 15296: 715, - 15297: 716, - 15298: 717, - 15299: 718, - 15300: 719, - 15301: 720, - 15302: 720, - 15303: 720, - 15304: 720, - 15305: 720, - 15306: 720, - 15307: 721, - 15308: 721, - 15309: 721, - 15310: 721, - 15311: 721, - 15312: 721, - 15313: 722, - 15314: 722, - 15315: 723, - 15316: 723, - 15317: 724, - 15318: 724, - 15319: 724, - 15320: 724, - 15321: 724, - 15322: 724, - 15323: 724, - 15324: 724, - 15325: 724, - 15326: 724, - 15327: 724, - 15328: 724, - 15329: 724, - 15330: 724, - 15331: 724, - 15332: 724, - 15333: 724, - 15334: 724, - 15335: 724, - 15336: 724, - 15337: 724, - 15338: 724, - 15339: 724, - 15340: 724, - 15341: 724, - 15342: 724, - 15343: 724, - 15344: 724, - 15345: 724, - 15346: 724, - 15347: 724, - 15348: 724, - 15349: 725, - 15350: 725, - 15351: 725, - 15352: 725, - 15353: 725, - 15354: 725, - 15355: 725, - 15356: 725, - 15357: 725, - 15358: 725, - 15359: 725, - 15360: 725, - 15361: 725, - 15362: 725, - 15363: 725, - 15364: 725, - 15365: 725, - 15366: 725, - 15367: 725, - 15368: 725, - 15369: 725, - 15370: 725, - 15371: 725, - 15372: 725, - 15373: 725, - 15374: 725, - 15375: 725, - 15376: 725, - 15377: 725, - 15378: 725, - 15379: 725, - 15380: 725, - 15381: 726, - 15382: 726, - 15383: 726, - 15384: 726, - 15385: 726, - 15386: 726, - 15387: 726, - 15388: 726, - 15389: 726, - 15390: 726, - 15391: 726, - 15392: 726, - 15393: 726, - 15394: 726, - 15395: 726, - 15396: 726, - 15397: 726, - 15398: 726, - 15399: 726, - 15400: 726, - 15401: 726, - 15402: 726, - 15403: 726, - 15404: 726, - 15405: 726, - 15406: 726, - 15407: 726, - 15408: 726, - 15409: 726, - 15410: 726, - 15411: 726, - 15412: 726, - 15413: 726, - 15414: 726, - 15415: 726, - 15416: 726, - 15417: 726, - 15418: 726, - 15419: 726, - 15420: 726, - 15421: 726, - 15422: 726, - 15423: 726, - 15424: 726, - 15425: 726, - 15426: 726, - 15427: 726, - 15428: 726, - 15429: 726, - 15430: 726, - 15431: 726, - 15432: 726, - 15433: 726, - 15434: 726, - 15435: 726, - 15436: 726, - 15437: 726, - 15438: 726, - 15439: 726, - 15440: 726, - 15441: 726, - 15442: 726, - 15443: 726, - 15444: 726, - 15445: 727, - 15446: 727, - 15447: 727, - 15448: 727, - 15449: 727, - 15450: 727, - 15451: 727, - 15452: 727, - 15453: 727, - 15454: 727, - 15455: 727, - 15456: 727, - 15457: 727, - 15458: 727, - 15459: 727, - 15460: 727, - 15461: 727, - 15462: 727, - 15463: 727, - 15464: 727, - 15465: 727, - 15466: 727, - 15467: 727, - 15468: 727, - 15469: 727, - 15470: 727, - 15471: 727, - 15472: 727, - 15473: 727, - 15474: 727, - 15475: 727, - 15476: 727, - 15477: 727, - 15478: 727, - 15479: 727, - 15480: 727, - 15481: 727, - 15482: 727, - 15483: 727, - 15484: 727, - 15485: 727, - 15486: 727, - 15487: 727, - 15488: 727, - 15489: 727, - 15490: 727, - 15491: 727, - 15492: 727, - 15493: 727, - 15494: 727, - 15495: 727, - 15496: 727, - 15497: 727, - 15498: 727, - 15499: 727, - 15500: 727, - 15501: 727, - 15502: 727, - 15503: 727, - 15504: 727, - 15505: 727, - 15506: 727, - 15507: 727, - 15508: 727, - 15509: 728, - 15510: 728, - 15511: 728, - 15512: 728, - 15513: 728, - 15514: 728, - 15515: 728, - 15516: 728, - 15517: 728, - 15518: 728, - 15519: 728, - 15520: 728, - 15521: 728, - 15522: 728, - 15523: 728, - 15524: 728, - 15525: 728, - 15526: 728, - 15527: 728, - 15528: 728, - 15529: 728, - 15530: 728, - 15531: 728, - 15532: 728, - 15533: 728, - 15534: 728, - 15535: 728, - 15536: 728, - 15537: 728, - 15538: 728, - 15539: 728, - 15540: 728, - 15541: 729, - 15542: 729, - 15543: 729, - 15544: 729, - 15545: 729, - 15546: 729, - 15547: 729, - 15548: 729, - 15549: 729, - 15550: 729, - 15551: 729, - 15552: 729, - 15553: 729, - 15554: 729, - 15555: 729, - 15556: 729, - 15557: 729, - 15558: 729, - 15559: 729, - 15560: 729, - 15561: 729, - 15562: 729, - 15563: 729, - 15564: 729, - 15565: 729, - 15566: 729, - 15567: 729, - 15568: 729, - 15569: 729, - 15570: 729, - 15571: 729, - 15572: 729, - 15573: 730, - 15574: 730, - 15575: 730, - 15576: 730, - 15577: 730, - 15578: 730, - 15579: 730, - 15580: 730, - 15581: 730, - 15582: 730, - 15583: 730, - 15584: 730, - 15585: 730, - 15586: 730, - 15587: 730, - 15588: 730, - 15589: 730, - 15590: 730, - 15591: 730, - 15592: 730, - 15593: 730, - 15594: 730, - 15595: 730, - 15596: 730, - 15597: 730, - 15598: 730, - 15599: 730, - 15600: 730, - 15601: 730, - 15602: 730, - 15603: 730, - 15604: 730, - 15605: 730, - 15606: 730, - 15607: 730, - 15608: 730, - 15609: 730, - 15610: 730, - 15611: 730, - 15612: 730, - 15613: 730, - 15614: 730, - 15615: 730, - 15616: 730, - 15617: 730, - 15618: 730, - 15619: 730, - 15620: 730, - 15621: 730, - 15622: 730, - 15623: 730, - 15624: 730, - 15625: 730, - 15626: 730, - 15627: 730, - 15628: 730, - 15629: 730, - 15630: 730, - 15631: 730, - 15632: 730, - 15633: 730, - 15634: 730, - 15635: 730, - 15636: 730, - 15637: 730, - 15638: 730, - 15639: 730, - 15640: 730, - 15641: 730, - 15642: 730, - 15643: 730, - 15644: 730, - 15645: 730, - 15646: 730, - 15647: 730, - 15648: 730, - 15649: 730, - 15650: 730, - 15651: 730, - 15652: 730, - 15653: 731, - 15654: 731, - 15655: 731, - 15656: 731, - 15657: 731, - 15658: 731, - 15659: 731, - 15660: 731, - 15661: 731, - 15662: 731, - 15663: 731, - 15664: 731, - 15665: 731, - 15666: 731, - 15667: 731, - 15668: 731, - 15669: 731, - 15670: 731, - 15671: 731, - 15672: 731, - 15673: 731, - 15674: 731, - 15675: 731, - 15676: 731, - 15677: 731, - 15678: 731, - 15679: 731, - 15680: 731, - 15681: 731, - 15682: 731, - 15683: 731, - 15684: 731, - 15685: 731, - 15686: 731, - 15687: 731, - 15688: 731, - 15689: 731, - 15690: 731, - 15691: 731, - 15692: 731, - 15693: 731, - 15694: 731, - 15695: 731, - 15696: 731, - 15697: 731, - 15698: 731, - 15699: 731, - 15700: 731, - 15701: 731, - 15702: 731, - 15703: 731, - 15704: 731, - 15705: 731, - 15706: 731, - 15707: 731, - 15708: 731, - 15709: 731, - 15710: 731, - 15711: 731, - 15712: 731, - 15713: 731, - 15714: 731, - 15715: 731, - 15716: 731, - 15717: 731, - 15718: 731, - 15719: 731, - 15720: 731, - 15721: 731, - 15722: 731, - 15723: 731, - 15724: 731, - 15725: 731, - 15726: 731, - 15727: 731, - 15728: 731, - 15729: 731, - 15730: 731, - 15731: 731, - 15732: 731, - 15733: 732, - 15734: 732, - 15735: 732, - 15736: 732, - 15737: 732, - 15738: 732, - 15739: 732, - 15740: 732, - 15741: 732, - 15742: 732, - 15743: 732, - 15744: 732, - 15745: 732, - 15746: 732, - 15747: 732, - 15748: 732, - 15749: 732, - 15750: 732, - 15751: 732, - 15752: 732, - 15753: 732, - 15754: 732, - 15755: 732, - 15756: 732, - 15757: 733, - 15758: 733, - 15759: 733, - 15760: 733, - 15761: 733, - 15762: 733, - 15763: 733, - 15764: 733, - 15765: 733, - 15766: 733, - 15767: 733, - 15768: 733, - 15769: 733, - 15770: 733, - 15771: 733, - 15772: 733, - 15773: 733, - 15774: 733, - 15775: 733, - 15776: 733, - 15777: 733, - 15778: 733, - 15779: 733, - 15780: 733, - 15781: 734, - 15782: 734, - 15783: 734, - 15784: 734, - 15785: 734, - 15786: 734, - 15787: 734, - 15788: 734, - 15789: 734, - 15790: 734, - 15791: 734, - 15792: 734, - 15793: 734, - 15794: 734, - 15795: 734, - 15796: 734, - 15797: 734, - 15798: 734, - 15799: 734, - 15800: 734, - 15801: 734, - 15802: 734, - 15803: 734, - 15804: 734, - 15805: 734, - 15806: 734, - 15807: 734, - 15808: 734, - 15809: 734, - 15810: 734, - 15811: 734, - 15812: 734, - 15813: 734, - 15814: 734, - 15815: 734, - 15816: 734, - 15817: 734, - 15818: 734, - 15819: 734, - 15820: 734, - 15821: 734, - 15822: 734, - 15823: 734, - 15824: 734, - 15825: 734, - 15826: 734, - 15827: 734, - 15828: 734, - 15829: 734, - 15830: 734, - 15831: 734, - 15832: 734, - 15833: 734, - 15834: 734, - 15835: 734, - 15836: 734, - 15837: 734, - 15838: 734, - 15839: 734, - 15840: 734, - 15841: 734, - 15842: 734, - 15843: 734, - 15844: 734, - 15845: 735, - 15846: 735, - 15847: 735, - 15848: 735, - 15849: 735, - 15850: 735, - 15851: 735, - 15852: 735, - 15853: 735, - 15854: 735, - 15855: 735, - 15856: 735, - 15857: 735, - 15858: 735, - 15859: 735, - 15860: 735, - 15861: 735, - 15862: 735, - 15863: 735, - 15864: 735, - 15865: 735, - 15866: 735, - 15867: 735, - 15868: 735, - 15869: 735, - 15870: 735, - 15871: 735, - 15872: 735, - 15873: 735, - 15874: 735, - 15875: 735, - 15876: 735, - 15877: 735, - 15878: 735, - 15879: 735, - 15880: 735, - 15881: 735, - 15882: 735, - 15883: 735, - 15884: 735, - 15885: 735, - 15886: 735, - 15887: 735, - 15888: 735, - 15889: 735, - 15890: 735, - 15891: 735, - 15892: 735, - 15893: 735, - 15894: 735, - 15895: 735, - 15896: 735, - 15897: 735, - 15898: 735, - 15899: 735, - 15900: 735, - 15901: 735, - 15902: 735, - 15903: 735, - 15904: 735, - 15905: 735, - 15906: 735, - 15907: 735, - 15908: 735, - 15909: 736, - 15910: 736, - 15911: 736, - 15912: 736, - 15913: 736, - 15914: 736, - 15915: 736, - 15916: 736, - 15917: 736, - 15918: 736, - 15919: 736, - 15920: 736, - 15921: 736, - 15922: 736, - 15923: 736, - 15924: 736, - 15925: 736, - 15926: 736, - 15927: 736, - 15928: 736, - 15929: 736, - 15930: 736, - 15931: 736, - 15932: 736, - 15933: 736, - 15934: 736, - 15935: 736, - 15936: 736, - 15937: 736, - 15938: 736, - 15939: 736, - 15940: 736, - 15941: 737, - 15942: 737, - 15943: 737, - 15944: 737, - 15945: 737, - 15946: 737, - 15947: 737, - 15948: 737, - 15949: 737, - 15950: 737, - 15951: 737, - 15952: 737, - 15953: 737, - 15954: 737, - 15955: 737, - 15956: 737, - 15957: 737, - 15958: 737, - 15959: 737, - 15960: 737, - 15961: 737, - 15962: 737, - 15963: 737, - 15964: 737, - 15965: 737, - 15966: 737, - 15967: 737, - 15968: 737, - 15969: 737, - 15970: 737, - 15971: 737, - 15972: 737, - 15973: 738, - 15974: 738, - 15975: 738, - 15976: 738, - 15977: 738, - 15978: 738, - 15979: 738, - 15980: 738, - 15981: 739, - 15982: 739, - 15983: 739, - 15984: 739, - 15985: 739, - 15986: 739, - 15987: 739, - 15988: 739, - 15989: 740, - 15990: 740, - 15991: 740, - 15992: 740, - 15993: 741, - 15994: 741, - 15995: 741, - 15996: 741, - 15997: 741, - 15998: 741, - 15999: 741, - 16000: 741, - 16001: 741, - 16002: 741, - 16003: 741, - 16004: 741, - 16005: 742, - 16006: 742, - 16007: 742, - 16008: 742, - 16009: 742, - 16010: 742, - 16011: 742, - 16012: 742, - 16013: 742, - 16014: 743, - 16015: 743, - 16016: 743, - 16017: 743, - 16018: 743, - 16019: 743, - 16020: 743, - 16021: 743, - 16022: 743, - 16023: 743, - 16024: 743, - 16025: 743, - 16026: 743, - 16027: 743, - 16028: 743, - 16029: 743, - 16030: 744, - 16031: 744, - 16032: 744, - 16033: 744, - 16034: 744, - 16035: 744, - 16036: 744, - 16037: 744, - 16038: 744, - 16039: 744, - 16040: 744, - 16041: 744, - 16042: 744, - 16043: 744, - 16044: 744, - 16045: 744, - 16046: 744, - 16047: 744, - 16048: 744, - 16049: 744, - 16050: 744, - 16051: 744, - 16052: 744, - 16053: 744, - 16054: 745, - 16055: 745, - 16056: 745, - 16057: 745, - 16058: 745, - 16059: 745, - 16060: 745, - 16061: 745, - 16062: 745, - 16063: 745, - 16064: 745, - 16065: 745, - 16066: 745, - 16067: 745, - 16068: 745, - 16069: 745, - 16070: 745, - 16071: 745, - 16072: 745, - 16073: 745, - 16074: 745, - 16075: 745, - 16076: 745, - 16077: 745, - 16078: 746, - 16079: 747, - 16080: 748, - 16081: 749, - 16082: 750, - 16083: 751, - 16084: 751, - 16085: 751, - 16086: 751, - 16087: 751, - 16088: 752, - 16089: 753, - 16090: 754, - 16091: 755, - 16092: 756, - 16093: 757, - 16094: 758, - 16095: 758, - 16096: 758, - 16097: 758, - 16098: 758, - 16099: 758, - 16100: 758, - 16101: 758, - 16102: 758, - 16103: 758, - 16104: 758, - 16105: 758, - 16106: 758, - 16107: 758, - 16108: 758, - 16109: 758, - 16110: 758, - 16111: 758, - 16112: 758, - 16113: 758, - 16114: 758, - 16115: 758, - 16116: 758, - 16117: 758, - 16118: 758, - 16119: 758, - 16120: 758, - 16121: 758, - 16122: 758, - 16123: 758, - 16124: 758, - 16125: 758, - 16126: 758, - 16127: 758, - 16128: 758, - 16129: 758, - 16130: 758, - 16131: 758, - 16132: 758, - 16133: 758, - 16134: 758, - 16135: 758, - 16136: 758, - 16137: 758, - 16138: 758, - 16139: 758, - 16140: 758, - 16141: 758, - 16142: 758, - 16143: 758, - 16144: 758, - 16145: 758, - 16146: 758, - 16147: 758, - 16148: 758, - 16149: 758, - 16150: 758, - 16151: 758, - 16152: 758, - 16153: 758, - 16154: 758, - 16155: 758, - 16156: 758, - 16157: 758, - 16158: 758, - 16159: 758, - 16160: 758, - 16161: 758, - 16162: 758, - 16163: 758, - 16164: 758, - 16165: 758, - 16166: 758, - 16167: 758, - 16168: 758, - 16169: 758, - 16170: 758, - 16171: 758, - 16172: 758, - 16173: 758, - 16174: 759, - 16175: 759, - 16176: 759, - 16177: 759, - 16178: 759, - 16179: 759, - 16180: 759, - 16181: 759, - 16182: 759, - 16183: 759, - 16184: 759, - 16185: 759, - 16186: 759, - 16187: 759, - 16188: 759, - 16189: 759, - 16190: 759, - 16191: 759, - 16192: 759, - 16193: 759, - 16194: 759, - 16195: 759, - 16196: 759, - 16197: 759, - 16198: 759, - 16199: 759, - 16200: 759, - 16201: 759, - 16202: 759, - 16203: 759, - 16204: 759, - 16205: 759, - 16206: 759, - 16207: 759, - 16208: 759, - 16209: 759, - 16210: 759, - 16211: 759, - 16212: 759, - 16213: 759, - 16214: 759, - 16215: 759, - 16216: 759, - 16217: 759, - 16218: 759, - 16219: 759, - 16220: 759, - 16221: 759, - 16222: 759, - 16223: 759, - 16224: 759, - 16225: 759, - 16226: 759, - 16227: 759, - 16228: 759, - 16229: 759, - 16230: 759, - 16231: 759, - 16232: 759, - 16233: 759, - 16234: 759, - 16235: 759, - 16236: 759, - 16237: 759, - 16238: 759, - 16239: 759, - 16240: 759, - 16241: 759, - 16242: 759, - 16243: 759, - 16244: 759, - 16245: 759, - 16246: 759, - 16247: 759, - 16248: 759, - 16249: 759, - 16250: 759, - 16251: 759, - 16252: 759, - 16253: 759, - 16254: 759, - 16255: 759, - 16256: 759, - 16257: 759, - 16258: 759, - 16259: 759, - 16260: 759, - 16261: 759, - 16262: 759, - 16263: 759, - 16264: 759, - 16265: 759, - 16266: 759, - 16267: 759, - 16268: 759, - 16269: 759, - 16270: 759, - 16271: 759, - 16272: 759, - 16273: 759, - 16274: 759, - 16275: 759, - 16276: 759, - 16277: 759, - 16278: 759, - 16279: 759, - 16280: 759, - 16281: 759, - 16282: 759, - 16283: 759, - 16284: 759, - 16285: 759, - 16286: 759, - 16287: 759, - 16288: 759, - 16289: 759, - 16290: 759, - 16291: 759, - 16292: 759, - 16293: 759, - 16294: 759, - 16295: 759, - 16296: 759, - 16297: 759, - 16298: 759, - 16299: 759, - 16300: 759, - 16301: 759, - 16302: 759, - 16303: 759, - 16304: 759, - 16305: 759, - 16306: 759, - 16307: 759, - 16308: 759, - 16309: 759, - 16310: 759, - 16311: 759, - 16312: 759, - 16313: 759, - 16314: 759, - 16315: 759, - 16316: 759, - 16317: 759, - 16318: 759, - 16319: 759, - 16320: 759, - 16321: 759, - 16322: 759, - 16323: 759, - 16324: 759, - 16325: 759, - 16326: 759, - 16327: 759, - 16328: 759, - 16329: 759, - 16330: 759, - 16331: 759, - 16332: 759, - 16333: 759, - 16334: 759, - 16335: 759, - 16336: 759, - 16337: 759, - 16338: 759, - 16339: 759, - 16340: 759, - 16341: 759, - 16342: 759, - 16343: 759, - 16344: 759, - 16345: 759, - 16346: 759, - 16347: 759, - 16348: 759, - 16349: 759, - 16350: 759, - 16351: 759, - 16352: 759, - 16353: 759, - 16354: 759, - 16355: 759, - 16356: 759, - 16357: 759, - 16358: 759, - 16359: 759, - 16360: 759, - 16361: 759, - 16362: 759, - 16363: 759, - 16364: 759, - 16365: 759, - 16366: 759, - 16367: 759, - 16368: 759, - 16369: 759, - 16370: 759, - 16371: 759, - 16372: 759, - 16373: 759, - 16374: 759, - 16375: 759, - 16376: 759, - 16377: 759, - 16378: 759, - 16379: 759, - 16380: 759, - 16381: 759, - 16382: 759, - 16383: 759, - 16384: 759, - 16385: 759, - 16386: 759, - 16387: 759, - 16388: 759, - 16389: 759, - 16390: 759, - 16391: 759, - 16392: 759, - 16393: 759, - 16394: 759, - 16395: 759, - 16396: 759, - 16397: 759, - 16398: 759, - 16399: 759, - 16400: 759, - 16401: 759, - 16402: 759, - 16403: 759, - 16404: 759, - 16405: 759, - 16406: 759, - 16407: 759, - 16408: 759, - 16409: 759, - 16410: 759, - 16411: 759, - 16412: 759, - 16413: 759, - 16414: 759, - 16415: 759, - 16416: 759, - 16417: 759, - 16418: 759, - 16419: 759, - 16420: 759, - 16421: 759, - 16422: 759, - 16423: 759, - 16424: 759, - 16425: 759, - 16426: 759, - 16427: 759, - 16428: 759, - 16429: 759, - 16430: 759, - 16431: 759, - 16432: 759, - 16433: 759, - 16434: 759, - 16435: 759, - 16436: 759, - 16437: 759, - 16438: 759, - 16439: 759, - 16440: 759, - 16441: 759, - 16442: 759, - 16443: 759, - 16444: 759, - 16445: 759, - 16446: 759, - 16447: 759, - 16448: 759, - 16449: 759, - 16450: 759, - 16451: 759, - 16452: 759, - 16453: 759, - 16454: 759, - 16455: 759, - 16456: 759, - 16457: 759, - 16458: 759, - 16459: 759, - 16460: 759, - 16461: 759, - 16462: 759, - 16463: 759, - 16464: 759, - 16465: 759, - 16466: 759, - 16467: 759, - 16468: 759, - 16469: 759, - 16470: 759, - 16471: 759, - 16472: 759, - 16473: 759, - 16474: 759, - 16475: 759, - 16476: 759, - 16477: 759, - 16478: 759, - 16479: 759, - 16480: 759, - 16481: 759, - 16482: 759, - 16483: 759, - 16484: 759, - 16485: 759, - 16486: 759, - 16487: 759, - 16488: 759, - 16489: 759, - 16490: 759, - 16491: 759, - 16492: 759, - 16493: 759, - 16494: 759, - 16495: 759, - 16496: 759, - 16497: 759, - 16498: 760, - 16499: 760, - 16500: 760, - 16501: 760, - 16502: 760, - 16503: 760, - 16504: 761, - 16505: 762, - 16506: 763, - 16507: 764, - 16508: 765, - 16509: 765, - 16510: 765, - 16511: 765, - 16512: 765, - 16513: 765, - 16514: 766, - 16515: 766, - 16516: 766, - 16517: 766, - 16518: 766, - 16519: 766, - 16520: 766, - 16521: 766, - 16522: 766, - 16523: 766, - 16524: 766, - 16525: 766, - 16526: 766, - 16527: 766, - 16528: 766, - 16529: 766, - 16530: 766, - 16531: 766, - 16532: 766, - 16533: 766, - 16534: 766, - 16535: 766, - 16536: 766, - 16537: 766, - 16538: 766, - 16539: 766, - 16540: 766, - 16541: 766, - 16542: 766, - 16543: 766, - 16544: 766, - 16545: 766, - 16546: 766, - 16547: 766, - 16548: 766, - 16549: 766, - 16550: 766, - 16551: 766, - 16552: 766, - 16553: 766, - 16554: 766, - 16555: 766, - 16556: 766, - 16557: 766, - 16558: 766, - 16559: 766, - 16560: 766, - 16561: 766, - 16562: 766, - 16563: 766, - 16564: 766, - 16565: 766, - 16566: 766, - 16567: 766, - 16568: 766, - 16569: 766, - 16570: 766, - 16571: 766, - 16572: 766, - 16573: 766, - 16574: 766, - 16575: 766, - 16576: 766, - 16577: 766, - 16578: 766, - 16579: 766, - 16580: 766, - 16581: 766, - 16582: 766, - 16583: 766, - 16584: 766, - 16585: 766, - 16586: 766, - 16587: 766, - 16588: 766, - 16589: 766, - 16590: 766, - 16591: 766, - 16592: 766, - 16593: 766, - 16594: 767, - 16595: 767, - 16596: 767, - 16597: 767, - 16598: 767, - 16599: 767, - 16600: 767, - 16601: 767, - 16602: 767, - 16603: 767, - 16604: 767, - 16605: 767, - 16606: 767, - 16607: 767, - 16608: 767, - 16609: 767, - 16610: 767, - 16611: 767, - 16612: 767, - 16613: 767, - 16614: 767, - 16615: 767, - 16616: 767, - 16617: 767, - 16618: 767, - 16619: 767, - 16620: 767, - 16621: 767, - 16622: 767, - 16623: 767, - 16624: 767, - 16625: 767, - 16626: 767, - 16627: 767, - 16628: 767, - 16629: 767, - 16630: 767, - 16631: 767, - 16632: 767, - 16633: 767, - 16634: 767, - 16635: 767, - 16636: 767, - 16637: 767, - 16638: 767, - 16639: 767, - 16640: 767, - 16641: 767, - 16642: 767, - 16643: 767, - 16644: 767, - 16645: 767, - 16646: 767, - 16647: 767, - 16648: 767, - 16649: 767, - 16650: 767, - 16651: 767, - 16652: 767, - 16653: 767, - 16654: 767, - 16655: 767, - 16656: 767, - 16657: 767, - 16658: 767, - 16659: 767, - 16660: 767, - 16661: 767, - 16662: 767, - 16663: 767, - 16664: 767, - 16665: 767, - 16666: 767, - 16667: 767, - 16668: 767, - 16669: 767, - 16670: 767, - 16671: 767, - 16672: 767, - 16673: 767, - 16674: 767, - 16675: 767, - 16676: 767, - 16677: 767, - 16678: 767, - 16679: 767, - 16680: 767, - 16681: 767, - 16682: 767, - 16683: 767, - 16684: 767, - 16685: 767, - 16686: 767, - 16687: 767, - 16688: 767, - 16689: 767, - 16690: 767, - 16691: 767, - 16692: 767, - 16693: 767, - 16694: 767, - 16695: 767, - 16696: 767, - 16697: 767, - 16698: 767, - 16699: 767, - 16700: 767, - 16701: 767, - 16702: 767, - 16703: 767, - 16704: 767, - 16705: 767, - 16706: 767, - 16707: 767, - 16708: 767, - 16709: 767, - 16710: 767, - 16711: 767, - 16712: 767, - 16713: 767, - 16714: 767, - 16715: 767, - 16716: 767, - 16717: 767, - 16718: 767, - 16719: 767, - 16720: 767, - 16721: 767, - 16722: 767, - 16723: 767, - 16724: 767, - 16725: 767, - 16726: 767, - 16727: 767, - 16728: 767, - 16729: 767, - 16730: 767, - 16731: 767, - 16732: 767, - 16733: 767, - 16734: 767, - 16735: 767, - 16736: 767, - 16737: 767, - 16738: 767, - 16739: 767, - 16740: 767, - 16741: 767, - 16742: 767, - 16743: 767, - 16744: 767, - 16745: 767, - 16746: 767, - 16747: 767, - 16748: 767, - 16749: 767, - 16750: 767, - 16751: 767, - 16752: 767, - 16753: 767, - 16754: 767, - 16755: 767, - 16756: 767, - 16757: 767, - 16758: 767, - 16759: 767, - 16760: 767, - 16761: 767, - 16762: 767, - 16763: 767, - 16764: 767, - 16765: 767, - 16766: 767, - 16767: 767, - 16768: 767, - 16769: 767, - 16770: 767, - 16771: 767, - 16772: 767, - 16773: 767, - 16774: 767, - 16775: 767, - 16776: 767, - 16777: 767, - 16778: 767, - 16779: 767, - 16780: 767, - 16781: 767, - 16782: 767, - 16783: 767, - 16784: 767, - 16785: 767, - 16786: 767, - 16787: 767, - 16788: 767, - 16789: 767, - 16790: 767, - 16791: 767, - 16792: 767, - 16793: 767, - 16794: 767, - 16795: 767, - 16796: 767, - 16797: 767, - 16798: 767, - 16799: 767, - 16800: 767, - 16801: 767, - 16802: 767, - 16803: 767, - 16804: 767, - 16805: 767, - 16806: 767, - 16807: 767, - 16808: 767, - 16809: 767, - 16810: 767, - 16811: 767, - 16812: 767, - 16813: 767, - 16814: 767, - 16815: 767, - 16816: 767, - 16817: 767, - 16818: 767, - 16819: 767, - 16820: 767, - 16821: 767, - 16822: 767, - 16823: 767, - 16824: 767, - 16825: 767, - 16826: 767, - 16827: 767, - 16828: 767, - 16829: 767, - 16830: 767, - 16831: 767, - 16832: 767, - 16833: 767, - 16834: 767, - 16835: 767, - 16836: 767, - 16837: 767, - 16838: 767, - 16839: 767, - 16840: 767, - 16841: 767, - 16842: 767, - 16843: 767, - 16844: 767, - 16845: 767, - 16846: 767, - 16847: 767, - 16848: 767, - 16849: 767, - 16850: 767, - 16851: 767, - 16852: 767, - 16853: 767, - 16854: 767, - 16855: 767, - 16856: 767, - 16857: 767, - 16858: 767, - 16859: 767, - 16860: 767, - 16861: 767, - 16862: 767, - 16863: 767, - 16864: 767, - 16865: 767, - 16866: 767, - 16867: 767, - 16868: 767, - 16869: 767, - 16870: 767, - 16871: 767, - 16872: 767, - 16873: 767, - 16874: 767, - 16875: 767, - 16876: 767, - 16877: 767, - 16878: 767, - 16879: 767, - 16880: 767, - 16881: 767, - 16882: 767, - 16883: 767, - 16884: 767, - 16885: 767, - 16886: 767, - 16887: 767, - 16888: 767, - 16889: 767, - 16890: 767, - 16891: 767, - 16892: 767, - 16893: 767, - 16894: 767, - 16895: 767, - 16896: 767, - 16897: 767, - 16898: 767, - 16899: 767, - 16900: 767, - 16901: 767, - 16902: 767, - 16903: 767, - 16904: 767, - 16905: 767, - 16906: 767, - 16907: 767, - 16908: 767, - 16909: 767, - 16910: 767, - 16911: 767, - 16912: 767, - 16913: 767, - 16914: 767, - 16915: 767, - 16916: 767, - 16917: 767, - 16918: 768, - 16919: 769, - 16920: 769, - 16921: 769, - 16922: 769, - 16923: 769, - 16924: 769, - 16925: 769, - 16926: 769, - 16927: 769, - 16928: 769, - 16929: 769, - 16930: 769, - 16931: 769, - 16932: 769, - 16933: 769, - 16934: 769, - 16935: 769, - 16936: 769, - 16937: 769, - 16938: 769, - 16939: 769, - 16940: 769, - 16941: 769, - 16942: 769, - 16943: 769, - 16944: 769, - 16945: 769, - 16946: 769, - 16947: 769, - 16948: 769, - 16949: 769, - 16950: 769, - 16951: 769, - 16952: 769, - 16953: 769, - 16954: 769, - 16955: 769, - 16956: 769, - 16957: 769, - 16958: 769, - 16959: 769, - 16960: 769, - 16961: 769, - 16962: 769, - 16963: 769, - 16964: 769, - 16965: 769, - 16966: 769, - 16967: 769, - 16968: 769, - 16969: 769, - 16970: 769, - 16971: 769, - 16972: 769, - 16973: 769, - 16974: 769, - 16975: 769, - 16976: 769, - 16977: 769, - 16978: 769, - 16979: 769, - 16980: 769, - 16981: 769, - 16982: 769, - 16983: 769, - 16984: 769, - 16985: 769, - 16986: 769, - 16987: 769, - 16988: 769, - 16989: 769, - 16990: 769, - 16991: 769, - 16992: 769, - 16993: 769, - 16994: 769, - 16995: 769, - 16996: 769, - 16997: 769, - 16998: 769, - 16999: 770, - 17000: 770, - 17001: 770, - 17002: 770, - 17003: 770, - 17004: 770, - 17005: 771, - 17006: 771, - 17007: 772, - 17008: 772, - 17009: 772, - 17010: 772, - 17011: 772, - 17012: 772, - 17013: 772, - 17014: 772, - 17015: 772, - 17016: 772, - 17017: 772, - 17018: 772, - 17019: 772, - 17020: 772, - 17021: 772, - 17022: 772, - 17023: 772, - 17024: 772, - 17025: 772, - 17026: 772, - 17027: 772, - 17028: 772, - 17029: 772, - 17030: 772, - 17031: 773, - 17032: 773, - 17033: 773, - 17034: 773, - 17035: 773, - 17036: 773, - 17037: 773, - 17038: 773, - 17039: 773, - 17040: 773, - 17041: 773, - 17042: 773, - 17043: 773, - 17044: 773, - 17045: 773, - 17046: 773, - 17047: 773, - 17048: 773, - 17049: 773, - 17050: 773, - 17051: 773, - 17052: 773, - 17053: 773, - 17054: 773, - 17055: 773, - 17056: 773, - 17057: 773, - 17058: 773, - 17059: 773, - 17060: 773, - 17061: 773, - 17062: 773, - 17063: 773, - 17064: 773, - 17065: 773, - 17066: 773, - 17067: 773, - 17068: 773, - 17069: 773, - 17070: 773, - 17071: 773, - 17072: 773, - 17073: 773, - 17074: 773, - 17075: 773, - 17076: 773, - 17077: 773, - 17078: 773, - 17079: 773, - 17080: 773, - 17081: 773, - 17082: 773, - 17083: 773, - 17084: 773, - 17085: 773, - 17086: 773, - 17087: 773, - 17088: 773, - 17089: 773, - 17090: 773, - 17091: 773, - 17092: 773, - 17093: 773, - 17094: 773, - 17095: 773, - 17096: 773, - 17097: 773, - 17098: 773, - 17099: 773, - 17100: 773, - 17101: 773, - 17102: 773, - 17103: 773, - 17104: 773, - 17105: 773, - 17106: 773, - 17107: 773, - 17108: 773, - 17109: 773, - 17110: 773, - 17111: 773, - 17112: 773, - 17113: 773, - 17114: 773, - 17115: 773, - 17116: 773, - 17117: 773, - 17118: 773, - 17119: 773, - 17120: 773, - 17121: 773, - 17122: 773, - 17123: 773, - 17124: 773, - 17125: 773, - 17126: 773, - 17127: 773, - 17128: 773, - 17129: 773, - 17130: 773, - 17131: 773, - 17132: 773, - 17133: 773, - 17134: 773, - 17135: 773, - 17136: 773, - 17137: 773, - 17138: 773, - 17139: 773, - 17140: 773, - 17141: 773, - 17142: 773, - 17143: 773, - 17144: 773, - 17145: 773, - 17146: 773, - 17147: 773, - 17148: 773, - 17149: 773, - 17150: 773, - 17151: 773, - 17152: 773, - 17153: 773, - 17154: 773, - 17155: 773, - 17156: 773, - 17157: 773, - 17158: 773, - 17159: 773, - 17160: 773, - 17161: 773, - 17162: 773, - 17163: 773, - 17164: 773, - 17165: 773, - 17166: 773, - 17167: 773, - 17168: 773, - 17169: 773, - 17170: 773, - 17171: 773, - 17172: 773, - 17173: 773, - 17174: 773, - 17175: 773, - 17176: 773, - 17177: 773, - 17178: 773, - 17179: 773, - 17180: 773, - 17181: 773, - 17182: 773, - 17183: 773, - 17184: 773, - 17185: 773, - 17186: 773, - 17187: 773, - 17188: 773, - 17189: 773, - 17190: 773, - 17191: 773, - 17192: 773, - 17193: 773, - 17194: 773, - 17195: 773, - 17196: 773, - 17197: 773, - 17198: 773, - 17199: 773, - 17200: 773, - 17201: 773, - 17202: 773, - 17203: 773, - 17204: 773, - 17205: 773, - 17206: 773, - 17207: 773, - 17208: 773, - 17209: 773, - 17210: 773, - 17211: 773, - 17212: 773, - 17213: 773, - 17214: 773, - 17215: 773, - 17216: 773, - 17217: 773, - 17218: 773, - 17219: 773, - 17220: 773, - 17221: 773, - 17222: 773, - 17223: 773, - 17224: 773, - 17225: 773, - 17226: 773, - 17227: 773, - 17228: 773, - 17229: 773, - 17230: 773, - 17231: 773, - 17232: 773, - 17233: 773, - 17234: 773, - 17235: 773, - 17236: 773, - 17237: 773, - 17238: 773, - 17239: 773, - 17240: 773, - 17241: 773, - 17242: 773, - 17243: 773, - 17244: 773, - 17245: 773, - 17246: 773, - 17247: 773, - 17248: 773, - 17249: 773, - 17250: 773, - 17251: 773, - 17252: 773, - 17253: 773, - 17254: 773, - 17255: 773, - 17256: 773, - 17257: 773, - 17258: 773, - 17259: 773, - 17260: 773, - 17261: 773, - 17262: 773, - 17263: 773, - 17264: 773, - 17265: 773, - 17266: 773, - 17267: 773, - 17268: 773, - 17269: 773, - 17270: 773, - 17271: 773, - 17272: 773, - 17273: 773, - 17274: 773, - 17275: 773, - 17276: 773, - 17277: 773, - 17278: 773, - 17279: 773, - 17280: 773, - 17281: 773, - 17282: 773, - 17283: 773, - 17284: 773, - 17285: 773, - 17286: 773, - 17287: 773, - 17288: 773, - 17289: 773, - 17290: 773, - 17291: 773, - 17292: 773, - 17293: 773, - 17294: 773, - 17295: 773, - 17296: 773, - 17297: 773, - 17298: 773, - 17299: 773, - 17300: 773, - 17301: 773, - 17302: 773, - 17303: 773, - 17304: 773, - 17305: 773, - 17306: 773, - 17307: 773, - 17308: 773, - 17309: 773, - 17310: 773, - 17311: 773, - 17312: 773, - 17313: 773, - 17314: 773, - 17315: 773, - 17316: 773, - 17317: 773, - 17318: 773, - 17319: 773, - 17320: 773, - 17321: 773, - 17322: 773, - 17323: 773, - 17324: 773, - 17325: 773, - 17326: 773, - 17327: 773, - 17328: 773, - 17329: 773, - 17330: 773, - 17331: 773, - 17332: 773, - 17333: 773, - 17334: 773, - 17335: 773, - 17336: 773, - 17337: 773, - 17338: 773, - 17339: 773, - 17340: 773, - 17341: 773, - 17342: 773, - 17343: 773, - 17344: 773, - 17345: 773, - 17346: 773, - 17347: 773, - 17348: 773, - 17349: 773, - 17350: 773, - 17351: 773, - 17352: 773, - 17353: 773, - 17354: 773, - 17355: 774, - 17356: 775, - 17357: 776, - 17358: 777, - 17359: 777, - 17360: 777, - 17361: 777, - 17362: 777, - 17363: 777, - 17364: 777, - 17365: 777, - 17366: 777, - 17367: 777, - 17368: 777, - 17369: 777, - 17370: 777, - 17371: 777, - 17372: 777, - 17373: 777, - 17374: 778, - 17375: 778, - 17376: 778, - 17377: 778, - 17378: 778, - 17379: 778, - 17380: 778, - 17381: 778, - 17382: 778, - 17383: 778, - 17384: 778, - 17385: 778, - 17386: 778, - 17387: 778, - 17388: 778, - 17389: 778, - 17390: 779, - 17391: 779, - 17392: 779, - 17393: 779, - 17394: 779, - 17395: 779, - 17396: 779, - 17397: 779, - 17398: 779, - 17399: 779, - 17400: 779, - 17401: 779, - 17402: 779, - 17403: 779, - 17404: 779, - 17405: 779, - 17406: 780, - 17407: 780, - 17408: 780, - 17409: 780, - 17410: 780, - 17411: 780, - 17412: 780, - 17413: 780, - 17414: 780, - 17415: 780, - 17416: 780, - 17417: 780, - 17418: 780, - 17419: 780, - 17420: 780, - 17421: 780, - 17422: 781, - 17423: 781, - 17424: 781, - 17425: 781, - 17426: 781, - 17427: 781, - 17428: 781, - 17429: 781, - 17430: 781, - 17431: 781, - 17432: 781, - 17433: 781, - 17434: 781, - 17435: 781, - 17436: 781, - 17437: 781, - 17438: 782, - 17439: 782, - 17440: 782, - 17441: 782, - 17442: 782, - 17443: 782, - 17444: 782, - 17445: 782, - 17446: 782, - 17447: 782, - 17448: 782, - 17449: 782, - 17450: 782, - 17451: 782, - 17452: 782, - 17453: 782, - 17454: 783, - 17455: 783, - 17456: 783, - 17457: 783, - 17458: 783, - 17459: 783, - 17460: 783, - 17461: 783, - 17462: 783, - 17463: 783, - 17464: 783, - 17465: 783, - 17466: 783, - 17467: 783, - 17468: 783, - 17469: 783, - 17470: 784, - 17471: 784, - 17472: 784, - 17473: 784, - 17474: 784, - 17475: 784, - 17476: 784, - 17477: 784, - 17478: 784, - 17479: 784, - 17480: 784, - 17481: 784, - 17482: 784, - 17483: 784, - 17484: 784, - 17485: 784, - 17486: 785, - 17487: 785, - 17488: 785, - 17489: 785, - 17490: 785, - 17491: 785, - 17492: 785, - 17493: 785, - 17494: 785, - 17495: 785, - 17496: 785, - 17497: 785, - 17498: 785, - 17499: 785, - 17500: 785, - 17501: 785, - 17502: 786, - 17503: 786, - 17504: 786, - 17505: 786, - 17506: 786, - 17507: 786, - 17508: 786, - 17509: 786, - 17510: 786, - 17511: 786, - 17512: 786, - 17513: 786, - 17514: 786, - 17515: 786, - 17516: 786, - 17517: 786, - 17518: 787, - 17519: 787, - 17520: 787, - 17521: 787, - 17522: 787, - 17523: 787, - 17524: 787, - 17525: 787, - 17526: 787, - 17527: 787, - 17528: 787, - 17529: 787, - 17530: 787, - 17531: 787, - 17532: 787, - 17533: 787, - 17534: 788, - 17535: 788, - 17536: 788, - 17537: 788, - 17538: 788, - 17539: 788, - 17540: 788, - 17541: 788, - 17542: 788, - 17543: 788, - 17544: 788, - 17545: 788, - 17546: 788, - 17547: 788, - 17548: 788, - 17549: 788, - 17550: 789, - 17551: 789, - 17552: 789, - 17553: 789, - 17554: 789, - 17555: 789, - 17556: 789, - 17557: 789, - 17558: 789, - 17559: 789, - 17560: 789, - 17561: 789, - 17562: 789, - 17563: 789, - 17564: 789, - 17565: 789, - 17566: 790, - 17567: 790, - 17568: 790, - 17569: 790, - 17570: 790, - 17571: 790, - 17572: 790, - 17573: 790, - 17574: 790, - 17575: 790, - 17576: 790, - 17577: 790, - 17578: 790, - 17579: 790, - 17580: 790, - 17581: 790, - 17582: 791, - 17583: 791, - 17584: 791, - 17585: 791, - 17586: 791, - 17587: 791, - 17588: 791, - 17589: 791, - 17590: 791, - 17591: 791, - 17592: 791, - 17593: 791, - 17594: 791, - 17595: 791, - 17596: 791, - 17597: 791, - 17598: 792, - 17599: 792, - 17600: 792, - 17601: 792, - 17602: 792, - 17603: 792, - 17604: 792, - 17605: 792, - 17606: 792, - 17607: 792, - 17608: 792, - 17609: 792, - 17610: 792, - 17611: 792, - 17612: 792, - 17613: 792, - 17614: 793, - 17615: 793, - 17616: 793, - 17617: 793, - 17618: 793, - 17619: 793, - 17620: 793, - 17621: 793, - 17622: 793, - 17623: 793, - 17624: 793, - 17625: 793, - 17626: 793, - 17627: 793, - 17628: 793, - 17629: 793, - 17630: 794, - 17631: 794, - 17632: 795, - 17633: 795, - 17634: 796, - 17635: 796, - 17636: 797, - 17637: 797, - 17638: 798, - 17639: 798, - 17640: 799, - 17641: 799, - 17642: 800, - 17643: 800, - 17644: 801, - 17645: 801, - 17646: 802, - 17647: 802, - 17648: 803, - 17649: 803, - 17650: 804, - 17651: 804, - 17652: 805, - 17653: 805, - 17654: 806, - 17655: 806, - 17656: 807, - 17657: 807, - 17658: 808, - 17659: 808, - 17660: 809, - 17661: 809, - 17662: 810, - 17663: 810, - 17664: 811, - 17665: 812, - 17666: 813, - 17667: 813, - 17668: 813, - 17669: 813, - 17670: 813, - 17671: 813, - 17672: 813, - 17673: 813, - 17674: 813, - 17675: 813, - 17676: 813, - 17677: 813, - 17678: 814, - 17679: 814, - 17680: 814, - 17681: 814, - 17682: 814, - 17683: 814, - 17684: 814, - 17685: 814, - 17686: 814, - 17687: 814, - 17688: 814, - 17689: 814, - 17690: 815, - 17691: 815, - 17692: 815, - 17693: 815, - 17694: 815, - 17695: 815, - 17696: 815, - 17697: 815, - 17698: 815, - 17699: 815, - 17700: 815, - 17701: 815, - 17702: 816, - 17703: 816, - 17704: 816, - 17705: 816, - 17706: 816, - 17707: 816, - 17708: 816, - 17709: 816, - 17710: 816, - 17711: 816, - 17712: 816, - 17713: 816, - 17714: 817, - 17715: 818, - 17716: 819, - 17717: 820, - 17718: 821, - 17719: 821, - 17720: 821, - 17721: 821, - 17722: 821, - 17723: 821, - 17724: 821, - 17725: 821, - 17726: 821, - 17727: 821, - 17728: 821, - 17729: 821, - 17730: 821, - 17731: 821, - 17732: 821, - 17733: 821, - 17734: 821, - 17735: 821, - 17736: 821, - 17737: 821, - 17738: 821, - 17739: 821, - 17740: 821, - 17741: 821, - 17742: 821, - 17743: 821, - 17744: 821, - 17745: 821, - 17746: 821, - 17747: 821, - 17748: 821, - 17749: 821, - 17750: 821, - 17751: 821, - 17752: 821, - 17753: 821, - 17754: 821, - 17755: 821, - 17756: 821, - 17757: 821, - 17758: 821, - 17759: 821, - 17760: 821, - 17761: 821, - 17762: 821, - 17763: 821, - 17764: 821, - 17765: 821, - 17766: 821, - 17767: 821, - 17768: 821, - 17769: 821, - 17770: 821, - 17771: 821, - 17772: 821, - 17773: 821, - 17774: 821, - 17775: 821, - 17776: 821, - 17777: 821, - 17778: 821, - 17779: 821, - 17780: 821, - 17781: 821, - 17782: 821, - 17783: 821, - 17784: 821, - 17785: 821, - 17786: 821, - 17787: 821, - 17788: 821, - 17789: 821, - 17790: 821, - 17791: 821, - 17792: 821, - 17793: 821, - 17794: 821, - 17795: 821, - 17796: 821, - 17797: 821, - 17798: 821, - 17799: 821, - 17800: 821, - 17801: 821, - 17802: 821, - 17803: 821, - 17804: 821, - 17805: 821, - 17806: 821, - 17807: 821, - 17808: 821, - 17809: 821, - 17810: 821, - 17811: 821, - 17812: 821, - 17813: 821, - 17814: 822, - 17815: 823, - 17816: 824, - 17817: 825, - 17818: 826, - 17819: 827, - 17820: 828, - 17821: 829, - 17822: 830, - 17823: 831, - 17824: 832, - 17825: 832, - 17826: 832, - 17827: 832, - 17828: 832, - 17829: 832, - 17830: 832, - 17831: 832, - 17832: 832, - 17833: 832, - 17834: 832, - 17835: 832, - 17836: 832, - 17837: 832, - 17838: 832, - 17839: 832, - 17840: 832, - 17841: 832, - 17842: 832, - 17843: 832, - 17844: 832, - 17845: 832, - 17846: 832, - 17847: 832, - 17848: 832, - 17849: 832, - 17850: 832, - 17851: 832, - 17852: 832, - 17853: 832, - 17854: 832, - 17855: 832, - 17856: 832, - 17857: 832, - 17858: 832, - 17859: 832, - 17860: 832, - 17861: 832, - 17862: 832, - 17863: 832, - 17864: 832, - 17865: 832, - 17866: 832, - 17867: 832, - 17868: 832, - 17869: 832, - 17870: 832, - 17871: 832, - 17872: 832, - 17873: 832, - 17874: 832, - 17875: 832, - 17876: 832, - 17877: 832, - 17878: 832, - 17879: 832, - 17880: 832, - 17881: 832, - 17882: 832, - 17883: 832, - 17884: 832, - 17885: 832, - 17886: 832, - 17887: 832, - 17888: 832, - 17889: 832, - 17890: 832, - 17891: 832, - 17892: 832, - 17893: 832, - 17894: 832, - 17895: 832, - 17896: 832, - 17897: 832, - 17898: 832, - 17899: 832, - 17900: 832, - 17901: 832, - 17902: 832, - 17903: 832, - 17904: 833, - 17905: 833, - 17906: 833, - 17907: 833, - 17908: 833, - 17909: 833, - 17910: 833, - 17911: 833, - 17912: 833, - 17913: 833, - 17914: 833, - 17915: 833, - 17916: 833, - 17917: 833, - 17918: 833, - 17919: 833, - 17920: 833, - 17921: 833, - 17922: 833, - 17923: 833, - 17924: 833, - 17925: 833, - 17926: 833, - 17927: 833, - 17928: 833, - 17929: 833, - 17930: 833, - 17931: 833, - 17932: 833, - 17933: 833, - 17934: 833, - 17935: 833, - 17936: 833, - 17937: 833, - 17938: 833, - 17939: 833, - 17940: 833, - 17941: 833, - 17942: 833, - 17943: 833, - 17944: 833, - 17945: 833, - 17946: 833, - 17947: 833, - 17948: 833, - 17949: 833, - 17950: 833, - 17951: 833, - 17952: 833, - 17953: 833, - 17954: 833, - 17955: 833, - 17956: 833, - 17957: 833, - 17958: 833, - 17959: 833, - 17960: 833, - 17961: 833, - 17962: 833, - 17963: 833, - 17964: 833, - 17965: 833, - 17966: 833, - 17967: 833, - 17968: 833, - 17969: 833, - 17970: 833, - 17971: 833, - 17972: 833, - 17973: 833, - 17974: 833, - 17975: 833, - 17976: 833, - 17977: 833, - 17978: 833, - 17979: 833, - 17980: 833, - 17981: 833, - 17982: 833, - 17983: 833, - 17984: 834, - 17985: 834, - 17986: 834, - 17987: 834, - 17988: 834, - 17989: 834, - 17990: 834, - 17991: 834, - 17992: 834, - 17993: 834, - 17994: 834, - 17995: 834, - 17996: 834, - 17997: 834, - 17998: 834, - 17999: 834, - 18000: 834, - 18001: 834, - 18002: 834, - 18003: 834, - 18004: 834, - 18005: 834, - 18006: 834, - 18007: 834, - 18008: 834, - 18009: 834, - 18010: 834, - 18011: 834, - 18012: 834, - 18013: 834, - 18014: 834, - 18015: 834, - 18016: 834, - 18017: 834, - 18018: 834, - 18019: 834, - 18020: 834, - 18021: 834, - 18022: 834, - 18023: 834, - 18024: 834, - 18025: 834, - 18026: 834, - 18027: 834, - 18028: 834, - 18029: 834, - 18030: 834, - 18031: 834, - 18032: 834, - 18033: 834, - 18034: 834, - 18035: 834, - 18036: 834, - 18037: 834, - 18038: 834, - 18039: 834, - 18040: 834, - 18041: 834, - 18042: 834, - 18043: 834, - 18044: 834, - 18045: 834, - 18046: 834, - 18047: 834, - 18048: 834, - 18049: 834, - 18050: 834, - 18051: 834, - 18052: 834, - 18053: 834, - 18054: 834, - 18055: 834, - 18056: 834, - 18057: 834, - 18058: 834, - 18059: 834, - 18060: 834, - 18061: 834, - 18062: 834, - 18063: 834, - 18064: 835, - 18065: 835, - 18066: 835, - 18067: 835, - 18068: 835, - 18069: 835, - 18070: 835, - 18071: 835, - 18072: 835, - 18073: 835, - 18074: 835, - 18075: 835, - 18076: 835, - 18077: 835, - 18078: 835, - 18079: 835, - 18080: 835, - 18081: 835, - 18082: 835, - 18083: 835, - 18084: 835, - 18085: 835, - 18086: 835, - 18087: 835, - 18088: 835, - 18089: 835, - 18090: 835, - 18091: 835, - 18092: 835, - 18093: 835, - 18094: 835, - 18095: 835, - 18096: 835, - 18097: 835, - 18098: 835, - 18099: 835, - 18100: 835, - 18101: 835, - 18102: 835, - 18103: 835, - 18104: 835, - 18105: 835, - 18106: 835, - 18107: 835, - 18108: 835, - 18109: 835, - 18110: 835, - 18111: 835, - 18112: 835, - 18113: 835, - 18114: 835, - 18115: 835, - 18116: 835, - 18117: 835, - 18118: 835, - 18119: 835, - 18120: 835, - 18121: 835, - 18122: 835, - 18123: 835, - 18124: 835, - 18125: 835, - 18126: 835, - 18127: 835, - 18128: 835, - 18129: 835, - 18130: 835, - 18131: 835, - 18132: 835, - 18133: 835, - 18134: 835, - 18135: 835, - 18136: 835, - 18137: 835, - 18138: 835, - 18139: 835, - 18140: 835, - 18141: 835, - 18142: 835, - 18143: 835, - 18144: 836, - 18145: 836, - 18146: 836, - 18147: 836, - 18148: 836, - 18149: 836, - 18150: 837, - 18151: 837, - 18152: 837, - 18153: 837, - 18154: 837, - 18155: 837, - 18156: 838, - 18157: 838, - 18158: 838, - 18159: 838, - 18160: 838, - 18161: 838, - 18162: 839, - 18163: 839, - 18164: 839, - 18165: 839, - 18166: 839, - 18167: 839, - 18168: 840, - 18169: 841, - 18170: 842, - 18171: 843, - 18172: 844, - 18173: 845, - 18174: 846, - 18175: 847, - 18176: 848, - 18177: 848, - 18178: 848, - 18179: 848, - 18180: 848, - 18181: 848, - 18182: 848, - 18183: 848, - 18184: 848, - 18185: 848, - 18186: 848, - 18187: 848, - 18188: 848, - 18189: 848, - 18190: 848, - 18191: 848, - 18192: 848, - 18193: 848, - 18194: 848, - 18195: 848, - 18196: 848, - 18197: 848, - 18198: 848, - 18199: 848, - 18200: 848, - 18201: 848, - 18202: 848, - 18203: 848, - 18204: 848, - 18205: 848, - 18206: 848, - 18207: 848, - 18208: 848, - 18209: 848, - 18210: 848, - 18211: 848, - 18212: 848, - 18213: 848, - 18214: 848, - 18215: 848, - 18216: 848, - 18217: 848, - 18218: 848, - 18219: 848, - 18220: 848, - 18221: 848, - 18222: 848, - 18223: 848, - 18224: 848, - 18225: 848, - 18226: 848, - 18227: 848, - 18228: 848, - 18229: 848, - 18230: 848, - 18231: 848, - 18232: 848, - 18233: 848, - 18234: 848, - 18235: 848, - 18236: 848, - 18237: 848, - 18238: 848, - 18239: 848, - 18240: 848, - 18241: 848, - 18242: 848, - 18243: 848, - 18244: 848, - 18245: 848, - 18246: 848, - 18247: 848, - 18248: 848, - 18249: 848, - 18250: 848, - 18251: 848, - 18252: 848, - 18253: 848, - 18254: 848, - 18255: 848, - 18256: 849, - 18257: 849, - 18258: 849, - 18259: 849, - 18260: 849, - 18261: 849, - 18262: 849, - 18263: 849, - 18264: 849, - 18265: 849, - 18266: 849, - 18267: 849, - 18268: 849, - 18269: 849, - 18270: 849, - 18271: 849, - 18272: 849, - 18273: 849, - 18274: 849, - 18275: 849, - 18276: 849, - 18277: 849, - 18278: 849, - 18279: 849, - 18280: 849, - 18281: 849, - 18282: 849, - 18283: 849, - 18284: 849, - 18285: 849, - 18286: 849, - 18287: 849, - 18288: 849, - 18289: 849, - 18290: 849, - 18291: 849, - 18292: 849, - 18293: 849, - 18294: 849, - 18295: 849, - 18296: 849, - 18297: 849, - 18298: 849, - 18299: 849, - 18300: 849, - 18301: 849, - 18302: 849, - 18303: 849, - 18304: 849, - 18305: 849, - 18306: 849, - 18307: 849, - 18308: 849, - 18309: 849, - 18310: 849, - 18311: 849, - 18312: 849, - 18313: 849, - 18314: 849, - 18315: 849, - 18316: 849, - 18317: 849, - 18318: 849, - 18319: 849, - 18320: 849, - 18321: 849, - 18322: 849, - 18323: 849, - 18324: 849, - 18325: 849, - 18326: 849, - 18327: 849, - 18328: 849, - 18329: 849, - 18330: 849, - 18331: 849, - 18332: 849, - 18333: 849, - 18334: 849, - 18335: 849, - 18336: 850, - 18337: 850, - 18338: 850, - 18339: 850, - 18340: 850, - 18341: 850, - 18342: 850, - 18343: 850, - 18344: 850, - 18345: 850, - 18346: 850, - 18347: 850, - 18348: 850, - 18349: 850, - 18350: 850, - 18351: 850, - 18352: 850, - 18353: 850, - 18354: 850, - 18355: 850, - 18356: 850, - 18357: 850, - 18358: 850, - 18359: 850, - 18360: 850, - 18361: 850, - 18362: 850, - 18363: 850, - 18364: 850, - 18365: 850, - 18366: 850, - 18367: 850, - 18368: 850, - 18369: 850, - 18370: 850, - 18371: 850, - 18372: 850, - 18373: 850, - 18374: 850, - 18375: 850, - 18376: 850, - 18377: 850, - 18378: 850, - 18379: 850, - 18380: 850, - 18381: 850, - 18382: 850, - 18383: 850, - 18384: 850, - 18385: 850, - 18386: 850, - 18387: 850, - 18388: 850, - 18389: 850, - 18390: 850, - 18391: 850, - 18392: 850, - 18393: 850, - 18394: 850, - 18395: 850, - 18396: 850, - 18397: 850, - 18398: 850, - 18399: 850, - 18400: 850, - 18401: 850, - 18402: 850, - 18403: 850, - 18404: 850, - 18405: 850, - 18406: 850, - 18407: 850, - 18408: 850, - 18409: 850, - 18410: 850, - 18411: 850, - 18412: 850, - 18413: 850, - 18414: 850, - 18415: 850, - 18416: 851, - 18417: 851, - 18418: 851, - 18419: 851, - 18420: 851, - 18421: 851, - 18422: 851, - 18423: 851, - 18424: 851, - 18425: 851, - 18426: 851, - 18427: 851, - 18428: 851, - 18429: 851, - 18430: 851, - 18431: 851, - 18432: 851, - 18433: 851, - 18434: 851, - 18435: 851, - 18436: 851, - 18437: 851, - 18438: 851, - 18439: 851, - 18440: 851, - 18441: 851, - 18442: 851, - 18443: 851, - 18444: 851, - 18445: 851, - 18446: 851, - 18447: 851, - 18448: 851, - 18449: 851, - 18450: 851, - 18451: 851, - 18452: 851, - 18453: 851, - 18454: 851, - 18455: 851, - 18456: 851, - 18457: 851, - 18458: 851, - 18459: 851, - 18460: 851, - 18461: 851, - 18462: 851, - 18463: 851, - 18464: 851, - 18465: 851, - 18466: 851, - 18467: 851, - 18468: 851, - 18469: 851, - 18470: 851, - 18471: 851, - 18472: 851, - 18473: 851, - 18474: 851, - 18475: 851, - 18476: 851, - 18477: 851, - 18478: 851, - 18479: 851, - 18480: 851, - 18481: 851, - 18482: 851, - 18483: 851, - 18484: 851, - 18485: 851, - 18486: 851, - 18487: 851, - 18488: 851, - 18489: 851, - 18490: 851, - 18491: 851, - 18492: 851, - 18493: 851, - 18494: 851, - 18495: 851, - 18496: 852, - 18497: 852, - 18498: 852, - 18499: 852, - 18500: 852, - 18501: 852, - 18502: 853, - 18503: 853, - 18504: 853, - 18505: 853, - 18506: 853, - 18507: 853, - 18508: 854, - 18509: 854, - 18510: 854, - 18511: 854, - 18512: 854, - 18513: 854, - 18514: 855, - 18515: 855, - 18516: 855, - 18517: 855, - 18518: 855, - 18519: 855, - 18520: 856, - 18521: 856, - 18522: 856, - 18523: 856, - 18524: 856, - 18525: 856, - 18526: 856, - 18527: 856, - 18528: 856, - 18529: 856, - 18530: 856, - 18531: 856, - 18532: 856, - 18533: 856, - 18534: 856, - 18535: 856, - 18536: 856, - 18537: 856, - 18538: 856, - 18539: 856, - 18540: 856, - 18541: 856, - 18542: 856, - 18543: 856, - 18544: 857, - 18545: 857, - 18546: 857, - 18547: 857, - 18548: 857, - 18549: 857, - 18550: 857, - 18551: 857, - 18552: 857, - 18553: 857, - 18554: 857, - 18555: 857, - 18556: 857, - 18557: 857, - 18558: 857, - 18559: 857, - 18560: 857, - 18561: 857, - 18562: 857, - 18563: 857, - 18564: 858, - 18565: 859, - 18566: 859, - 18567: 859, - 18568: 859, - 18569: 859, - 18570: 859, - 18571: 859, - 18572: 859, - 18573: 859, - 18574: 859, - 18575: 859, - 18576: 859, - 18577: 859, - 18578: 859, - 18579: 859, - 18580: 859, - 18581: 859, - 18582: 859, - 18583: 859, - 18584: 859, - 18585: 859, - 18586: 859, - 18587: 859, - 18588: 859, - 18589: 859, - 18590: 859, - 18591: 859, - 18592: 859, - 18593: 859, - 18594: 859, - 18595: 859, - 18596: 859, - 18597: 859, - 18598: 859, - 18599: 859, - 18600: 859, - 18601: 859, - 18602: 859, - 18603: 859, - 18604: 859, - 18605: 859, - 18606: 859, - 18607: 859, - 18608: 859, - 18609: 859, - 18610: 859, - 18611: 859, - 18612: 859, - 18613: 859, - 18614: 859, - 18615: 859, - 18616: 859, - 18617: 860, - 18618: 860, - 18619: 861, - 18620: 862, - 18621: 863, - 18622: 864, - 18623: 865, - 18624: 866, - 18625: 866, - 18626: 866, - 18627: 866, - 18628: 866, - 18629: 866, - 18630: 866, - 18631: 866, - 18632: 866, - 18633: 866, - 18634: 866, - 18635: 866, - 18636: 866, - 18637: 866, - 18638: 866, - 18639: 866, - 18640: 866, - 18641: 866, - 18642: 866, - 18643: 866, - 18644: 866, - 18645: 866, - 18646: 866, - 18647: 866, - 18648: 866, - 18649: 866, - 18650: 866, - 18651: 866, - 18652: 866, - 18653: 866, - 18654: 866, - 18655: 866, - 18656: 867, - 18657: 867, - 18658: 867, - 18659: 867, - 18660: 867, - 18661: 867, - 18662: 867, - 18663: 867, - 18664: 868, - 18665: 868, - 18666: 868, - 18667: 868, - 18668: 868, - 18669: 868, - 18670: 868, - 18671: 868, - 18672: 868, - 18673: 868, - 18674: 868, - 18675: 868, - 18676: 868, - 18677: 868, - 18678: 868, - 18679: 868, - 18680: 869, - 18681: 869, - 18682: 870, - 18683: 871, - 18684: 871, - 18685: 871, - 18686: 872, - 18687: 873, - 18688: 873, - 18689: 873, - 18690: 873, - 18691: 873, - 18692: 873, - 18693: 873, - 18694: 873, - 18695: 873, - 18696: 873, - 18697: 873, - 18698: 873, - 18699: 873, - 18700: 873, - 18701: 873, - 18702: 873, - 18703: 873, - 18704: 873, - 18705: 873, - 18706: 873, - 18707: 873, - 18708: 873, - 18709: 873, - 18710: 873, - 18711: 873, - 18712: 873, - 18713: 873, - 18714: 873, - 18715: 873, - 18716: 873, - 18717: 873, - 18718: 873, - 18719: 873, - 18720: 873, - 18721: 873, - 18722: 873, - 18723: 873, - 18724: 873, - 18725: 873, - 18726: 873, - 18727: 873, - 18728: 873, - 18729: 873, - 18730: 873, - 18731: 873, - 18732: 873, - 18733: 873, - 18734: 873, - 18735: 873, - 18736: 873, - 18737: 873, - 18738: 873, - 18739: 873, - 18740: 873, - 18741: 873, - 18742: 873, - 18743: 873, - 18744: 873, - 18745: 873, - 18746: 873, - 18747: 873, - 18748: 873, - 18749: 873, - 18750: 873, - 18751: 873, - 18752: 873, - 18753: 873, - 18754: 873, - 18755: 873, - 18756: 873, - 18757: 873, - 18758: 873, - 18759: 873, - 18760: 873, - 18761: 873, - 18762: 873, - 18763: 873, - 18764: 873, - 18765: 873, - 18766: 873, - 18767: 874, - 18768: 874, - 18769: 874, - 18770: 874, - 18771: 874, - 18772: 874, - 18773: 875, - 18774: 875, - 18775: 875, - 18776: 875, - 18777: 875, - 18778: 875, - 18779: 875, - 18780: 875, - 18781: 875, - 18782: 875, - 18783: 875, - 18784: 875, - 18785: 875, - 18786: 875, - 18787: 875, - 18788: 875, - 18789: 875, - 18790: 875, - 18791: 875, - 18792: 875, - 18793: 875, - 18794: 875, - 18795: 875, - 18796: 875, - 18797: 875, - 18798: 875, - 18799: 875, - 18800: 875, - 18801: 875, - 18802: 875, - 18803: 875, - 18804: 875, - 18805: 875, - 18806: 875, - 18807: 875, - 18808: 875, - 18809: 875, - 18810: 875, - 18811: 875, - 18812: 875, - 18813: 875, - 18814: 875, - 18815: 875, - 18816: 875, - 18817: 875, - 18818: 875, - 18819: 875, - 18820: 875, - 18821: 875, - 18822: 875, - 18823: 875, - 18824: 875, - 18825: 875, - 18826: 875, - 18827: 875, - 18828: 875, - 18829: 875, - 18830: 875, - 18831: 875, - 18832: 875, - 18833: 875, - 18834: 875, - 18835: 875, - 18836: 875, - 18837: 875, - 18838: 875, - 18839: 875, - 18840: 875, - 18841: 875, - 18842: 875, - 18843: 875, - 18844: 875, - 18845: 875, - 18846: 875, - 18847: 875, - 18848: 875, - 18849: 875, - 18850: 875, - 18851: 875, - 18852: 875, - 18853: 875, - 18854: 875, - 18855: 875, - 18856: 875, - 18857: 875, - 18858: 875, - 18859: 875, - 18860: 875, - 18861: 875, - 18862: 875, - 18863: 875, - 18864: 875, - 18865: 875, - 18866: 875, - 18867: 875, - 18868: 875, - 18869: 875, - 18870: 875, - 18871: 875, - 18872: 875, - 18873: 875, - 18874: 875, - 18875: 875, - 18876: 875, - 18877: 875, - 18878: 875, - 18879: 875, - 18880: 875, - 18881: 875, - 18882: 875, - 18883: 875, - 18884: 875, - 18885: 875, - 18886: 875, - 18887: 875, - 18888: 875, - 18889: 875, - 18890: 875, - 18891: 875, - 18892: 875, - 18893: 875, - 18894: 875, - 18895: 875, - 18896: 875, - 18897: 875, - 18898: 875, - 18899: 875, - 18900: 875, - 18901: 875, - 18902: 875, - 18903: 875, - 18904: 875, - 18905: 875, - 18906: 875, - 18907: 875, - 18908: 875, - 18909: 875, - 18910: 875, - 18911: 875, - 18912: 875, - 18913: 875, - 18914: 875, - 18915: 875, - 18916: 875, - 18917: 875, - 18918: 875, - 18919: 875, - 18920: 875, - 18921: 875, - 18922: 875, - 18923: 875, - 18924: 875, - 18925: 875, - 18926: 875, - 18927: 875, - 18928: 875, - 18929: 875, - 18930: 875, - 18931: 875, - 18932: 875, - 18933: 875, - 18934: 875, - 18935: 875, - 18936: 875, - 18937: 875, - 18938: 875, - 18939: 875, - 18940: 875, - 18941: 875, - 18942: 875, - 18943: 875, - 18944: 875, - 18945: 875, - 18946: 875, - 18947: 875, - 18948: 875, - 18949: 875, - 18950: 875, - 18951: 875, - 18952: 875, - 18953: 875, - 18954: 875, - 18955: 875, - 18956: 875, - 18957: 875, - 18958: 875, - 18959: 875, - 18960: 875, - 18961: 875, - 18962: 875, - 18963: 875, - 18964: 875, - 18965: 875, - 18966: 875, - 18967: 875, - 18968: 875, - 18969: 875, - 18970: 875, - 18971: 875, - 18972: 875, - 18973: 875, - 18974: 875, - 18975: 875, - 18976: 875, - 18977: 875, - 18978: 875, - 18979: 875, - 18980: 875, - 18981: 875, - 18982: 875, - 18983: 875, - 18984: 875, - 18985: 875, - 18986: 875, - 18987: 875, - 18988: 875, - 18989: 875, - 18990: 875, - 18991: 875, - 18992: 875, - 18993: 875, - 18994: 875, - 18995: 875, - 18996: 875, - 18997: 875, - 18998: 875, - 18999: 875, - 19000: 875, - 19001: 875, - 19002: 875, - 19003: 875, - 19004: 875, - 19005: 875, - 19006: 875, - 19007: 875, - 19008: 875, - 19009: 875, - 19010: 875, - 19011: 875, - 19012: 875, - 19013: 875, - 19014: 875, - 19015: 875, - 19016: 875, - 19017: 875, - 19018: 875, - 19019: 875, - 19020: 875, - 19021: 875, - 19022: 875, - 19023: 875, - 19024: 875, - 19025: 875, - 19026: 875, - 19027: 875, - 19028: 875, - 19029: 875, - 19030: 875, - 19031: 875, - 19032: 875, - 19033: 875, - 19034: 875, - 19035: 875, - 19036: 875, - 19037: 875, - 19038: 875, - 19039: 875, - 19040: 875, - 19041: 875, - 19042: 875, - 19043: 875, - 19044: 875, - 19045: 875, - 19046: 875, - 19047: 875, - 19048: 875, - 19049: 875, - 19050: 875, - 19051: 875, - 19052: 875, - 19053: 875, - 19054: 875, - 19055: 875, - 19056: 875, - 19057: 875, - 19058: 875, - 19059: 875, - 19060: 875, - 19061: 875, - 19062: 875, - 19063: 875, - 19064: 875, - 19065: 875, - 19066: 875, - 19067: 875, - 19068: 875, - 19069: 875, - 19070: 875, - 19071: 875, - 19072: 875, - 19073: 875, - 19074: 875, - 19075: 875, - 19076: 875, - 19077: 875, - 19078: 875, - 19079: 875, - 19080: 875, - 19081: 875, - 19082: 875, - 19083: 875, - 19084: 875, - 19085: 875, - 19086: 875, - 19087: 875, - 19088: 875, - 19089: 875, - 19090: 875, - 19091: 875, - 19092: 875, - 19093: 875, - 19094: 875, - 19095: 875, - 19096: 875, - 19097: 876, - 19098: 877, - 19099: 877, - 19100: 877, - 19101: 877, - 19102: 877, - 19103: 877, - 19104: 877, - 19105: 877, - 19106: 877, - 19107: 877, - 19108: 877, - 19109: 877, - 19110: 877, - 19111: 877, - 19112: 877, - 19113: 877, - 19114: 877, - 19115: 877, - 19116: 877, - 19117: 877, - 19118: 877, - 19119: 877, - 19120: 877, - 19121: 877, - 19122: 877, - 19123: 877, - 19124: 877, - 19125: 877, - 19126: 877, - 19127: 877, - 19128: 877, - 19129: 877, - 19130: 877, - 19131: 877, - 19132: 877, - 19133: 877, - 19134: 877, - 19135: 877, - 19136: 877, - 19137: 877, - 19138: 877, - 19139: 877, - 19140: 877, - 19141: 877, - 19142: 877, - 19143: 877, - 19144: 877, - 19145: 877, - 19146: 877, - 19147: 877, - 19148: 877, - 19149: 877, - 19150: 877, - 19151: 877, - 19152: 877, - 19153: 877, - 19154: 877, - 19155: 877, - 19156: 877, - 19157: 877, - 19158: 877, - 19159: 877, - 19160: 877, - 19161: 877, - 19162: 877, - 19163: 877, - 19164: 877, - 19165: 877, - 19166: 877, - 19167: 877, - 19168: 877, - 19169: 877, - 19170: 877, - 19171: 877, - 19172: 877, - 19173: 877, - 19174: 877, - 19175: 877, - 19176: 877, - 19177: 877, - 19178: 878, - 19179: 878, - 19180: 878, - 19181: 878, - 19182: 878, - 19183: 878, - 19184: 879, - 19185: 879, - 19186: 879, - 19187: 879, - 19188: 879, - 19189: 879, - 19190: 879, - 19191: 879, - 19192: 879, - 19193: 879, - 19194: 879, - 19195: 879, - 19196: 879, - 19197: 879, - 19198: 879, - 19199: 879, - 19200: 879, - 19201: 879, - 19202: 879, - 19203: 879, - 19204: 879, - 19205: 879, - 19206: 879, - 19207: 879, - 19208: 879, - 19209: 879, - 19210: 879, - 19211: 879, - 19212: 879, - 19213: 879, - 19214: 879, - 19215: 879, - 19216: 879, - 19217: 879, - 19218: 879, - 19219: 879, - 19220: 879, - 19221: 879, - 19222: 879, - 19223: 879, - 19224: 879, - 19225: 879, - 19226: 879, - 19227: 879, - 19228: 879, - 19229: 879, - 19230: 879, - 19231: 879, - 19232: 879, - 19233: 879, - 19234: 879, - 19235: 879, - 19236: 879, - 19237: 879, - 19238: 879, - 19239: 879, - 19240: 879, - 19241: 879, - 19242: 879, - 19243: 879, - 19244: 879, - 19245: 879, - 19246: 879, - 19247: 879, - 19248: 879, - 19249: 879, - 19250: 879, - 19251: 879, - 19252: 879, - 19253: 879, - 19254: 879, - 19255: 879, - 19256: 879, - 19257: 879, - 19258: 879, - 19259: 879, - 19260: 879, - 19261: 879, - 19262: 879, - 19263: 879, - 19264: 879, - 19265: 879, - 19266: 879, - 19267: 879, - 19268: 879, - 19269: 879, - 19270: 879, - 19271: 879, - 19272: 879, - 19273: 879, - 19274: 879, - 19275: 879, - 19276: 879, - 19277: 879, - 19278: 879, - 19279: 879, - 19280: 879, - 19281: 879, - 19282: 879, - 19283: 879, - 19284: 879, - 19285: 879, - 19286: 879, - 19287: 879, - 19288: 879, - 19289: 879, - 19290: 879, - 19291: 879, - 19292: 879, - 19293: 879, - 19294: 879, - 19295: 879, - 19296: 879, - 19297: 879, - 19298: 879, - 19299: 879, - 19300: 879, - 19301: 879, - 19302: 879, - 19303: 879, - 19304: 879, - 19305: 879, - 19306: 879, - 19307: 879, - 19308: 879, - 19309: 879, - 19310: 879, - 19311: 879, - 19312: 879, - 19313: 879, - 19314: 879, - 19315: 879, - 19316: 879, - 19317: 879, - 19318: 879, - 19319: 879, - 19320: 879, - 19321: 879, - 19322: 879, - 19323: 879, - 19324: 879, - 19325: 879, - 19326: 879, - 19327: 879, - 19328: 879, - 19329: 879, - 19330: 879, - 19331: 879, - 19332: 879, - 19333: 879, - 19334: 879, - 19335: 879, - 19336: 879, - 19337: 879, - 19338: 879, - 19339: 879, - 19340: 879, - 19341: 879, - 19342: 879, - 19343: 879, - 19344: 879, - 19345: 879, - 19346: 879, - 19347: 879, - 19348: 879, - 19349: 879, - 19350: 879, - 19351: 879, - 19352: 879, - 19353: 879, - 19354: 879, - 19355: 879, - 19356: 879, - 19357: 879, - 19358: 879, - 19359: 879, - 19360: 879, - 19361: 879, - 19362: 879, - 19363: 879, - 19364: 879, - 19365: 879, - 19366: 879, - 19367: 879, - 19368: 879, - 19369: 879, - 19370: 879, - 19371: 879, - 19372: 879, - 19373: 879, - 19374: 879, - 19375: 879, - 19376: 879, - 19377: 879, - 19378: 879, - 19379: 879, - 19380: 879, - 19381: 879, - 19382: 879, - 19383: 879, - 19384: 879, - 19385: 879, - 19386: 879, - 19387: 879, - 19388: 879, - 19389: 879, - 19390: 879, - 19391: 879, - 19392: 879, - 19393: 879, - 19394: 879, - 19395: 879, - 19396: 879, - 19397: 879, - 19398: 879, - 19399: 879, - 19400: 879, - 19401: 879, - 19402: 879, - 19403: 879, - 19404: 879, - 19405: 879, - 19406: 879, - 19407: 879, - 19408: 879, - 19409: 879, - 19410: 879, - 19411: 879, - 19412: 879, - 19413: 879, - 19414: 879, - 19415: 879, - 19416: 879, - 19417: 879, - 19418: 879, - 19419: 879, - 19420: 879, - 19421: 879, - 19422: 879, - 19423: 879, - 19424: 879, - 19425: 879, - 19426: 879, - 19427: 879, - 19428: 879, - 19429: 879, - 19430: 879, - 19431: 879, - 19432: 879, - 19433: 879, - 19434: 879, - 19435: 879, - 19436: 879, - 19437: 879, - 19438: 879, - 19439: 879, - 19440: 879, - 19441: 879, - 19442: 879, - 19443: 879, - 19444: 879, - 19445: 879, - 19446: 879, - 19447: 879, - 19448: 879, - 19449: 879, - 19450: 879, - 19451: 879, - 19452: 879, - 19453: 879, - 19454: 879, - 19455: 879, - 19456: 879, - 19457: 879, - 19458: 879, - 19459: 879, - 19460: 879, - 19461: 879, - 19462: 879, - 19463: 879, - 19464: 879, - 19465: 879, - 19466: 879, - 19467: 879, - 19468: 879, - 19469: 879, - 19470: 879, - 19471: 879, - 19472: 879, - 19473: 879, - 19474: 879, - 19475: 879, - 19476: 879, - 19477: 879, - 19478: 879, - 19479: 879, - 19480: 879, - 19481: 879, - 19482: 879, - 19483: 879, - 19484: 879, - 19485: 879, - 19486: 879, - 19487: 879, - 19488: 879, - 19489: 879, - 19490: 879, - 19491: 879, - 19492: 879, - 19493: 879, - 19494: 879, - 19495: 879, - 19496: 879, - 19497: 879, - 19498: 879, - 19499: 879, - 19500: 879, - 19501: 879, - 19502: 879, - 19503: 879, - 19504: 879, - 19505: 879, - 19506: 879, - 19507: 879, - 19508: 880, - 19509: 881, - 19510: 881, - 19511: 881, - 19512: 881, - 19513: 881, - 19514: 881, - 19515: 881, - 19516: 881, - 19517: 881, - 19518: 881, - 19519: 881, - 19520: 881, - 19521: 881, - 19522: 881, - 19523: 881, - 19524: 881, - 19525: 881, - 19526: 881, - 19527: 881, - 19528: 881, - 19529: 881, - 19530: 881, - 19531: 881, - 19532: 881, - 19533: 881, - 19534: 881, - 19535: 881, - 19536: 881, - 19537: 881, - 19538: 881, - 19539: 881, - 19540: 881, - 19541: 881, - 19542: 881, - 19543: 881, - 19544: 881, - 19545: 881, - 19546: 881, - 19547: 881, - 19548: 881, - 19549: 881, - 19550: 881, - 19551: 881, - 19552: 881, - 19553: 881, - 19554: 881, - 19555: 881, - 19556: 881, - 19557: 881, - 19558: 881, - 19559: 881, - 19560: 881, - 19561: 881, - 19562: 881, - 19563: 881, - 19564: 881, - 19565: 881, - 19566: 881, - 19567: 881, - 19568: 881, - 19569: 881, - 19570: 881, - 19571: 881, - 19572: 881, - 19573: 881, - 19574: 881, - 19575: 881, - 19576: 881, - 19577: 881, - 19578: 881, - 19579: 881, - 19580: 881, - 19581: 881, - 19582: 881, - 19583: 881, - 19584: 881, - 19585: 881, - 19586: 881, - 19587: 881, - 19588: 881, - 19589: 882, - 19590: 882, - 19591: 882, - 19592: 882, - 19593: 882, - 19594: 882, - 19595: 883, - 19596: 883, - 19597: 883, - 19598: 883, - 19599: 883, - 19600: 883, - 19601: 883, - 19602: 883, - 19603: 883, - 19604: 883, - 19605: 883, - 19606: 883, - 19607: 883, - 19608: 883, - 19609: 883, - 19610: 883, - 19611: 883, - 19612: 883, - 19613: 883, - 19614: 883, - 19615: 883, - 19616: 883, - 19617: 883, - 19618: 883, - 19619: 883, - 19620: 883, - 19621: 883, - 19622: 883, - 19623: 883, - 19624: 883, - 19625: 883, - 19626: 883, - 19627: 883, - 19628: 883, - 19629: 883, - 19630: 883, - 19631: 883, - 19632: 883, - 19633: 883, - 19634: 883, - 19635: 883, - 19636: 883, - 19637: 883, - 19638: 883, - 19639: 883, - 19640: 883, - 19641: 883, - 19642: 883, - 19643: 883, - 19644: 883, - 19645: 883, - 19646: 883, - 19647: 883, - 19648: 883, - 19649: 883, - 19650: 883, - 19651: 883, - 19652: 883, - 19653: 883, - 19654: 883, - 19655: 883, - 19656: 883, - 19657: 883, - 19658: 883, - 19659: 883, - 19660: 883, - 19661: 883, - 19662: 883, - 19663: 883, - 19664: 883, - 19665: 883, - 19666: 883, - 19667: 883, - 19668: 883, - 19669: 883, - 19670: 883, - 19671: 883, - 19672: 883, - 19673: 883, - 19674: 883, - 19675: 883, - 19676: 883, - 19677: 883, - 19678: 883, - 19679: 883, - 19680: 883, - 19681: 883, - 19682: 883, - 19683: 883, - 19684: 883, - 19685: 883, - 19686: 883, - 19687: 883, - 19688: 883, - 19689: 883, - 19690: 883, - 19691: 883, - 19692: 883, - 19693: 883, - 19694: 883, - 19695: 883, - 19696: 883, - 19697: 883, - 19698: 883, - 19699: 883, - 19700: 883, - 19701: 883, - 19702: 883, - 19703: 883, - 19704: 883, - 19705: 883, - 19706: 883, - 19707: 883, - 19708: 883, - 19709: 883, - 19710: 883, - 19711: 883, - 19712: 883, - 19713: 883, - 19714: 883, - 19715: 883, - 19716: 883, - 19717: 883, - 19718: 883, - 19719: 883, - 19720: 883, - 19721: 883, - 19722: 883, - 19723: 883, - 19724: 883, - 19725: 883, - 19726: 883, - 19727: 883, - 19728: 883, - 19729: 883, - 19730: 883, - 19731: 883, - 19732: 883, - 19733: 883, - 19734: 883, - 19735: 883, - 19736: 883, - 19737: 883, - 19738: 883, - 19739: 883, - 19740: 883, - 19741: 883, - 19742: 883, - 19743: 883, - 19744: 883, - 19745: 883, - 19746: 883, - 19747: 883, - 19748: 883, - 19749: 883, - 19750: 883, - 19751: 883, - 19752: 883, - 19753: 883, - 19754: 883, - 19755: 883, - 19756: 883, - 19757: 883, - 19758: 883, - 19759: 883, - 19760: 883, - 19761: 883, - 19762: 883, - 19763: 883, - 19764: 883, - 19765: 883, - 19766: 883, - 19767: 883, - 19768: 883, - 19769: 883, - 19770: 883, - 19771: 883, - 19772: 883, - 19773: 883, - 19774: 883, - 19775: 883, - 19776: 883, - 19777: 883, - 19778: 883, - 19779: 883, - 19780: 883, - 19781: 883, - 19782: 883, - 19783: 883, - 19784: 883, - 19785: 883, - 19786: 883, - 19787: 883, - 19788: 883, - 19789: 883, - 19790: 883, - 19791: 883, - 19792: 883, - 19793: 883, - 19794: 883, - 19795: 883, - 19796: 883, - 19797: 883, - 19798: 883, - 19799: 883, - 19800: 883, - 19801: 883, - 19802: 883, - 19803: 883, - 19804: 883, - 19805: 883, - 19806: 883, - 19807: 883, - 19808: 883, - 19809: 883, - 19810: 883, - 19811: 883, - 19812: 883, - 19813: 883, - 19814: 883, - 19815: 883, - 19816: 883, - 19817: 883, - 19818: 883, - 19819: 883, - 19820: 883, - 19821: 883, - 19822: 883, - 19823: 883, - 19824: 883, - 19825: 883, - 19826: 883, - 19827: 883, - 19828: 883, - 19829: 883, - 19830: 883, - 19831: 883, - 19832: 883, - 19833: 883, - 19834: 883, - 19835: 883, - 19836: 883, - 19837: 883, - 19838: 883, - 19839: 883, - 19840: 883, - 19841: 883, - 19842: 883, - 19843: 883, - 19844: 883, - 19845: 883, - 19846: 883, - 19847: 883, - 19848: 883, - 19849: 883, - 19850: 883, - 19851: 883, - 19852: 883, - 19853: 883, - 19854: 883, - 19855: 883, - 19856: 883, - 19857: 883, - 19858: 883, - 19859: 883, - 19860: 883, - 19861: 883, - 19862: 883, - 19863: 883, - 19864: 883, - 19865: 883, - 19866: 883, - 19867: 883, - 19868: 883, - 19869: 883, - 19870: 883, - 19871: 883, - 19872: 883, - 19873: 883, - 19874: 883, - 19875: 883, - 19876: 883, - 19877: 883, - 19878: 883, - 19879: 883, - 19880: 883, - 19881: 883, - 19882: 883, - 19883: 883, - 19884: 883, - 19885: 883, - 19886: 883, - 19887: 883, - 19888: 883, - 19889: 883, - 19890: 883, - 19891: 883, - 19892: 883, - 19893: 883, - 19894: 883, - 19895: 883, - 19896: 883, - 19897: 883, - 19898: 883, - 19899: 883, - 19900: 883, - 19901: 883, - 19902: 883, - 19903: 883, - 19904: 883, - 19905: 883, - 19906: 883, - 19907: 883, - 19908: 883, - 19909: 883, - 19910: 883, - 19911: 883, - 19912: 883, - 19913: 883, - 19914: 883, - 19915: 883, - 19916: 883, - 19917: 883, - 19918: 883, - 19919: 884, - 19920: 885, - 19921: 885, - 19922: 885, - 19923: 885, - 19924: 885, - 19925: 885, - 19926: 885, - 19927: 885, - 19928: 885, - 19929: 885, - 19930: 885, - 19931: 885, - 19932: 885, - 19933: 885, - 19934: 885, - 19935: 885, - 19936: 885, - 19937: 885, - 19938: 885, - 19939: 885, - 19940: 885, - 19941: 885, - 19942: 885, - 19943: 885, - 19944: 885, - 19945: 885, - 19946: 885, - 19947: 885, - 19948: 885, - 19949: 885, - 19950: 885, - 19951: 885, - 19952: 885, - 19953: 885, - 19954: 885, - 19955: 885, - 19956: 885, - 19957: 885, - 19958: 885, - 19959: 885, - 19960: 885, - 19961: 885, - 19962: 885, - 19963: 885, - 19964: 885, - 19965: 885, - 19966: 885, - 19967: 885, - 19968: 885, - 19969: 885, - 19970: 885, - 19971: 885, - 19972: 885, - 19973: 885, - 19974: 885, - 19975: 885, - 19976: 885, - 19977: 885, - 19978: 885, - 19979: 885, - 19980: 885, - 19981: 885, - 19982: 885, - 19983: 885, - 19984: 885, - 19985: 885, - 19986: 885, - 19987: 885, - 19988: 885, - 19989: 885, - 19990: 885, - 19991: 885, - 19992: 885, - 19993: 885, - 19994: 885, - 19995: 885, - 19996: 885, - 19997: 885, - 19998: 885, - 19999: 885, - 20000: 886, - 20001: 886, - 20002: 886, - 20003: 886, - 20004: 886, - 20005: 886, - 20006: 887, - 20007: 887, - 20008: 887, - 20009: 887, - 20010: 887, - 20011: 887, - 20012: 887, - 20013: 887, - 20014: 887, - 20015: 887, - 20016: 887, - 20017: 887, - 20018: 887, - 20019: 887, - 20020: 887, - 20021: 887, - 20022: 887, - 20023: 887, - 20024: 887, - 20025: 887, - 20026: 887, - 20027: 887, - 20028: 887, - 20029: 887, - 20030: 887, - 20031: 887, - 20032: 887, - 20033: 887, - 20034: 887, - 20035: 887, - 20036: 887, - 20037: 887, - 20038: 887, - 20039: 887, - 20040: 887, - 20041: 887, - 20042: 887, - 20043: 887, - 20044: 887, - 20045: 887, - 20046: 887, - 20047: 887, - 20048: 887, - 20049: 887, - 20050: 887, - 20051: 887, - 20052: 887, - 20053: 887, - 20054: 887, - 20055: 887, - 20056: 887, - 20057: 887, - 20058: 887, - 20059: 887, - 20060: 887, - 20061: 887, - 20062: 887, - 20063: 887, - 20064: 887, - 20065: 887, - 20066: 887, - 20067: 887, - 20068: 887, - 20069: 887, - 20070: 887, - 20071: 887, - 20072: 887, - 20073: 887, - 20074: 887, - 20075: 887, - 20076: 887, - 20077: 887, - 20078: 887, - 20079: 887, - 20080: 887, - 20081: 887, - 20082: 887, - 20083: 887, - 20084: 887, - 20085: 887, - 20086: 887, - 20087: 887, - 20088: 887, - 20089: 887, - 20090: 887, - 20091: 887, - 20092: 887, - 20093: 887, - 20094: 887, - 20095: 887, - 20096: 887, - 20097: 887, - 20098: 887, - 20099: 887, - 20100: 887, - 20101: 887, - 20102: 887, - 20103: 887, - 20104: 887, - 20105: 887, - 20106: 887, - 20107: 887, - 20108: 887, - 20109: 887, - 20110: 887, - 20111: 887, - 20112: 887, - 20113: 887, - 20114: 887, - 20115: 887, - 20116: 887, - 20117: 887, - 20118: 887, - 20119: 887, - 20120: 887, - 20121: 887, - 20122: 887, - 20123: 887, - 20124: 887, - 20125: 887, - 20126: 887, - 20127: 887, - 20128: 887, - 20129: 887, - 20130: 887, - 20131: 887, - 20132: 887, - 20133: 887, - 20134: 887, - 20135: 887, - 20136: 887, - 20137: 887, - 20138: 887, - 20139: 887, - 20140: 887, - 20141: 887, - 20142: 887, - 20143: 887, - 20144: 887, - 20145: 887, - 20146: 887, - 20147: 887, - 20148: 887, - 20149: 887, - 20150: 887, - 20151: 887, - 20152: 887, - 20153: 887, - 20154: 887, - 20155: 887, - 20156: 887, - 20157: 887, - 20158: 887, - 20159: 887, - 20160: 887, - 20161: 887, - 20162: 887, - 20163: 887, - 20164: 887, - 20165: 887, - 20166: 887, - 20167: 887, - 20168: 887, - 20169: 887, - 20170: 887, - 20171: 887, - 20172: 887, - 20173: 887, - 20174: 887, - 20175: 887, - 20176: 887, - 20177: 887, - 20178: 887, - 20179: 887, - 20180: 887, - 20181: 887, - 20182: 887, - 20183: 887, - 20184: 887, - 20185: 887, - 20186: 887, - 20187: 887, - 20188: 887, - 20189: 887, - 20190: 887, - 20191: 887, - 20192: 887, - 20193: 887, - 20194: 887, - 20195: 887, - 20196: 887, - 20197: 887, - 20198: 887, - 20199: 887, - 20200: 887, - 20201: 887, - 20202: 887, - 20203: 887, - 20204: 887, - 20205: 887, - 20206: 887, - 20207: 887, - 20208: 887, - 20209: 887, - 20210: 887, - 20211: 887, - 20212: 887, - 20213: 887, - 20214: 887, - 20215: 887, - 20216: 887, - 20217: 887, - 20218: 887, - 20219: 887, - 20220: 887, - 20221: 887, - 20222: 887, - 20223: 887, - 20224: 887, - 20225: 887, - 20226: 887, - 20227: 887, - 20228: 887, - 20229: 887, - 20230: 887, - 20231: 887, - 20232: 887, - 20233: 887, - 20234: 887, - 20235: 887, - 20236: 887, - 20237: 887, - 20238: 887, - 20239: 887, - 20240: 887, - 20241: 887, - 20242: 887, - 20243: 887, - 20244: 887, - 20245: 887, - 20246: 887, - 20247: 887, - 20248: 887, - 20249: 887, - 20250: 887, - 20251: 887, - 20252: 887, - 20253: 887, - 20254: 887, - 20255: 887, - 20256: 887, - 20257: 887, - 20258: 887, - 20259: 887, - 20260: 887, - 20261: 887, - 20262: 887, - 20263: 887, - 20264: 887, - 20265: 887, - 20266: 887, - 20267: 887, - 20268: 887, - 20269: 887, - 20270: 887, - 20271: 887, - 20272: 887, - 20273: 887, - 20274: 887, - 20275: 887, - 20276: 887, - 20277: 887, - 20278: 887, - 20279: 887, - 20280: 887, - 20281: 887, - 20282: 887, - 20283: 887, - 20284: 887, - 20285: 887, - 20286: 887, - 20287: 887, - 20288: 887, - 20289: 887, - 20290: 887, - 20291: 887, - 20292: 887, - 20293: 887, - 20294: 887, - 20295: 887, - 20296: 887, - 20297: 887, - 20298: 887, - 20299: 887, - 20300: 887, - 20301: 887, - 20302: 887, - 20303: 887, - 20304: 887, - 20305: 887, - 20306: 887, - 20307: 887, - 20308: 887, - 20309: 887, - 20310: 887, - 20311: 887, - 20312: 887, - 20313: 887, - 20314: 887, - 20315: 887, - 20316: 887, - 20317: 887, - 20318: 887, - 20319: 887, - 20320: 887, - 20321: 887, - 20322: 887, - 20323: 887, - 20324: 887, - 20325: 887, - 20326: 887, - 20327: 887, - 20328: 887, - 20329: 887, - 20330: 888, - 20331: 889, - 20332: 890, - 20333: 891, - 20334: 891, - 20335: 891, - 20336: 892, - 20337: 893, - 20338: 894, - 20339: 895, - 20340: 896, - 20341: 897, -} diff --git a/data/block/gen_block.go b/data/block/gen_block.go deleted file mode 100644 index 94ced0f..0000000 --- a/data/block/gen_block.go +++ /dev/null @@ -1,152 +0,0 @@ -//go:build generate -// +build generate - -// gen_blocks.go generates block information. -package main - -import ( - "encoding/json" - "fmt" - "net/http" - "os" - "text/template" - - "github.com/iancoleman/strcase" -) - -const ( - version = "1.17" - infoURL = "https://raw.githubusercontent.com/PrismarineJS/minecraft-data/master/data/pc/" + version + "/blocks.json" - //language=gohtml - blockTmpl = `// Code generated by gen_block.go; DO NOT EDIT. - -// Package block stores information about blocks in Minecraft. -package block - -import ( - "math/bits" -) - -// BitsPerBlock indicates how many bits are needed to represent all possible -// block states. This value is used to determine the size of the global palette. -var BitsPerBlock = bits.Len(uint(len(StateID))) - -// ID describes the numeric ID of a block. -type ID uint32 - -// Block describes information about a type of block. -type Block struct { - ID ID - DisplayName string - Name string - - Hardness float64 - Diggable bool - DropIDs []uint32 - NeedsTools map[uint32]bool - - MinStateID uint32 - MaxStateID uint32 - - Transparent bool - FilterLightLevel int - EmitLightLevel int -} - -var ( - {{- range .}} - {{.CamelName}} = Block{ - ID: {{.ID}}, - DisplayName: "{{.DisplayName}}", - Name: "{{.Name}}", - Hardness: {{.Hardness}}, - Diggable: {{.Diggable}}, - DropIDs: []uint32{ {{- range .DropIDs}}{{.}},{{end -}} }, - NeedsTools: map[uint32]bool{ {{- range $key, $val := .NeedsTools}}{{$key}}: {{$val}},{{end -}} }, - MinStateID: {{.MinStateID}}, - MaxStateID: {{.MaxStateID}}, - Transparent: {{.Transparent}}, - FilterLightLevel: {{.FilterLightLevel}}, - EmitLightLevel: {{.EmitLightLevel}}, - }{{end}} -) - -// ByID is an index of minecraft blocks by their ID. -var ByID = map[ID]*Block{ {{range .}} - {{.ID}}: &{{.CamelName}},{{end}} -} - -// StateID maps all possible state IDs to a corresponding block ID. -var StateID = map[uint32]ID{ {{range $block := .}} - {{- range .States}} - {{.}}: {{$block.ID}}, - {{- end}}{{end}} -}` -) - -type Block struct { - ID uint32 `json:"id"` - CamelName string `json:"-"` - DisplayName string `json:"displayName"` - Name string `json:"name"` - - Hardness float64 `json:"hardness"` - Diggable bool `json:"diggable"` - DropIDs []uint32 `json:"drops"` - NeedsTools map[uint32]bool `json:"harvestTools"` - - MinStateID uint32 `json:"minStateId"` - MaxStateID uint32 `json:"maxStateId"` - - Transparent bool `json:"transparent"` - FilterLightLevel int `json:"filterLight"` - EmitLightLevel int `json:"emitLight"` -} - -func (b Block) States() []uint32 { - if b.MinStateID == b.MaxStateID { - return []uint32{b.MinStateID} - } - states := make([]uint32, 0) - for i := b.MinStateID; i <= b.MaxStateID; i++ { - states = append(states, i) - } - return states -} - -func downloadInfo() ([]*Block, error) { - resp, err := http.Get(infoURL) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - var data []*Block - if err := json.NewDecoder(resp.Body).Decode(&data); err != nil { - return nil, err - } - for _, d := range data { - d.CamelName = strcase.ToCamel(d.Name) - } - return data, nil -} - -//go:generate go run $GOFILE -//go:generate go fmt block.go -func main() { - fmt.Println("generating block.go") - blocks, err := downloadInfo() - if err != nil { - panic(err) - } - - f, err := os.Create("block.go") - if err != nil { - panic(err) - } - defer f.Close() - - if err := template.Must(template.New("").Parse(blockTmpl)).Execute(f, blocks); err != nil { - panic(err) - } -} diff --git a/examples/genmaps/colors.gob b/examples/genmaps/colors.gob deleted file mode 100644 index 72f07f80ecd036aa50bab35f48f14b7a46caefa6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 9213 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 diff --git a/examples/genmaps/genmaps.go b/examples/genmaps/genmaps.go deleted file mode 100644 index c1039a5..0000000 --- a/examples/genmaps/genmaps.go +++ /dev/null @@ -1,219 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "image" - "image/color" - "image/draw" - "log" - "os" - "path/filepath" - "runtime" - "strings" - "sync" - "unsafe" - - "github.com/Tnze/go-mc/data/block" - "github.com/Tnze/go-mc/level" - "github.com/Tnze/go-mc/save" - "github.com/Tnze/go-mc/save/region" -) - -var colors []color.RGBA64 -var sectionWorkerNum = 1 - -var ( - regionWorkerNum = flag.Int("workers", runtime.NumCPU(), "worker numbers") - regionsFold = flag.String("region", filepath.Join(os.Getenv("AppData"), ".minecraft", "saves", "World", "region"), "region directory path") - drawBigPicture = flag.Bool("bigmap", true, "draw the big map") -) - -func main() { - flag.Parse() - - de, err := os.ReadDir(*regionsFold) - if err != nil { - log.Fatal(err) - } - - var min, max [2]int - updateMinMax := func(pos [2]int) { - mkmax(&max[0], &pos[0]) - mkmax(&max[1], &pos[1]) - mkmin(&min[0], &pos[0]) - mkmin(&min[1], &pos[1]) - } - - if *drawBigPicture { - for _, dir := range de { - name := dir.Name() - var pos [2]int // {x, z} - if _, err := fmt.Sscanf(name, "r.%d.%d.mca", &pos[0], &pos[1]); err != nil { - log.Printf("Error parsing file name of %s: %v, ignoring", name, err) - continue - } - updateMinMax(pos) - } - } - - type regions struct { - pos [2]int - *region.Region - } - // Open mca files - var rs = make(chan regions, *regionWorkerNum) - go func() { - for _, dir := range de { - name := dir.Name() - path := filepath.Join(*regionsFold, name) - var pos [2]int // {x, z} - if _, err := fmt.Sscanf(name, "r.%d.%d.mca", &pos[0], &pos[1]); err != nil { - log.Printf("Error parsing file name of %s: %v, ignoring", name, err) - continue - } - - r, err := region.Open(path) - if err != nil { - log.Printf("Error when opening %s: %v, ignoring", name, err) - continue - } - rs <- regions{pos: pos, Region: r} - } - close(rs) - }() - var bigPicture *image.RGBA - if *drawBigPicture { - bigPicture = image.NewRGBA(image.Rect(min[0]*512, min[1]*512, max[0]*512+512, max[1]*512+512)) - } - var bigWg sync.WaitGroup - // draw columns - for r := range rs { - img := image.NewRGBA(image.Rect(0, 0, 32*16, 32*16)) - type task struct { - data []byte - pos [2]int - } - c := make(chan task) - var wg sync.WaitGroup - for i := 0; i < *regionWorkerNum; i++ { - go func() { - var column save.Chunk - for task := range c { - if err := column.Load(task.data); err != nil { - log.Printf("UnmarshalNBT column (%d.%d) error: %v", task.pos[0], task.pos[1], err) - } - //pos := [2]int{int(column.Level.PosX), int(column.Level.PosZ)} - //if pos != task.pos { - // fmt.Printf("chunk position not match: want %v, get %v\n", task.pos, pos) - //} - draw.Draw( - img, image.Rect(task.pos[0]*16, task.pos[1]*16, task.pos[0]*16+16, task.pos[1]*16+16), - drawColumn(&column), image.Pt(0, 0), - draw.Over, - ) - wg.Done() - } - }() - } - - for x := 0; x < 32; x++ { - for z := 0; z < 32; z++ { - if !r.ExistSector(x, z) { - continue - } - data, err := r.ReadSector(x, z) - if err != nil { - log.Printf("Read sector (%d.%d) error: %v", x, z, err) - } - wg.Add(1) - c <- task{data: data, pos: [2]int{x, z}} - } - } - close(c) - wg.Wait() - // Save pictures - bigWg.Add(1) - log.Print("Draw: ", r.pos) - go func(img image.Image, pos [2]int) { - savePng(img, fmt.Sprintf("r.%d.%d.png", pos[0], pos[1])) - if *drawBigPicture { - draw.Draw( - bigPicture, image.Rect(pos[0]*512, pos[1]*512, pos[0]*512+512, pos[1]*512+512), - img, image.Pt(0, 0), draw.Src, - ) - } - bigWg.Done() - }(img, r.pos) - // To close mca files - if err := r.Close(); err != nil { - log.Printf("Close r.%d.%d.mca error: %v", r.pos[0], r.pos[1], err) - } - } - bigWg.Wait() - if *drawBigPicture { - savePng(bigPicture, "maps.png") - } -} - -func drawColumn(column *save.Chunk) (img *image.RGBA) { - img = image.NewRGBA(image.Rect(0, 0, 16, 16)) - s := column.Sections - c := make(chan *save.Section) - var wg sync.WaitGroup - for i := 0; i < sectionWorkerNum; i++ { - go func() { - for s := range c { - drawSection(s, img) - wg.Done() - } - }() - } - defer close(c) - - wg.Add(len(s)) - for i := range s { - c <- &s[i] - } - wg.Wait() - - return -} - -func drawSection(s *save.Section, img *image.RGBA) { - data := *(*[]uint64)((unsafe.Pointer)(&s.BlockStates.Data)) - palette := s.BlockStates.Palette - rawPalette := make([]int, len(palette)) - for i, v := range palette { - // TODO: Consider the properties of block, not only index the block name - rawPalette[i] = int(stateIDs[strings.TrimPrefix(v.Name, "minecraft:")]) - } - c := level.NewStatesPaletteContainerWithData(16*16*16, data, rawPalette) - for y := 0; y < 16; y++ { - layerImg := image.NewRGBA(image.Rect(0, 0, 16, 16)) - for i := 16*16 - 1; i >= 0; i-- { - var bid block.ID - bid = block.ID(c.Get(i)) - c := colors[block.ByID[bid].ID] - layerImg.Set(i%16, i/16, c) - } - draw.Draw( - img, image.Rect(0, 0, 16, 16), - layerImg, image.Pt(0, 0), - draw.Over, - ) - } - return -} - -// TODO: This map should be moved to data/block. -var stateIDs map[string]uint32 - -func init() { - for i, v := range block.StateID { - name := block.ByID[v].Name - if _, ok := stateIDs[name]; !ok { - stateIDs[name] = i - } - } -} diff --git a/examples/genmaps/util_funcs.go b/examples/genmaps/util_funcs.go deleted file mode 100644 index 4165ea2..0000000 --- a/examples/genmaps/util_funcs.go +++ /dev/null @@ -1,56 +0,0 @@ -package main - -import ( - "bytes" - _ "embed" - "encoding/gob" - "github.com/Tnze/go-mc/data/block" - "image" - "image/png" - "log" - "os" -) - -func savePng(img image.Image, name string) { - f, err := os.Create(name) - if err != nil { - log.Fatal(err) - } - - if err := png.Encode(f, img); err != nil { - f.Close() - log.Fatal(err) - } - - if err := f.Close(); err != nil { - log.Fatal(err) - } -} - -//go:embed colors.gob -var colorsBin []byte // gob([]color.RGBA64) - -func init() { - if err := gob.NewDecoder(bytes.NewReader(colorsBin)).Decode(&colors); err != nil { - panic(err) - } -} - -func mkmax(c, n *int) { - if *c < *n { - *c = *n - } -} -func mkmin(c, n *int) { - if *c > *n { - *c = *n - } -} - -var idByName = make(map[string]uint32, len(block.ByID)) - -func init() { - for _, v := range block.ByID { - idByName["minecraft:"+v.Name] = uint32(v.ID) - } -} diff --git a/level/block/block.go b/level/block/block.go index c10593f..ac7642e 100644 --- a/level/block/block.go +++ b/level/block/block.go @@ -5,6 +5,7 @@ import ( "compress/zlib" _ "embed" "fmt" + "math/bits" "github.com/Tnze/go-mc/nbt" ) @@ -17,21 +18,20 @@ type Block interface { //go:embed block_states.nbt var blockStates []byte -var toStateID = make(map[Block]int) +var toStateID map[Block]int var fromStateID []Block +// BitsPerBlock indicates how many bits are needed to represent all possible +// block states. This value is used to determine the size of the global palette. +var BitsPerBlock int + +type State struct { + Name string + Properties nbt.RawMessage +} + func init() { - regState := func(s Block) { - if _, ok := toStateID[s]; ok { - panic(fmt.Errorf("state %#v already exist", s)) - } - toStateID[s] = len(fromStateID) - fromStateID = append(fromStateID, s) - } - var states []struct { - Name string - Properties nbt.RawMessage - } + var states []State // decompress z, err := zlib.NewReader(bytes.NewReader(blockStates)) if err != nil { @@ -41,6 +41,8 @@ func init() { if _, err = nbt.NewDecoder(z).Decode(&states); err != nil { panic(err) } + toStateID = make(map[Block]int, len(states)) + fromStateID = make([]Block, 0, len(states)) for _, state := range states { block := fromID[state.Name] if state.Properties.Type != nbt.TagEnd { @@ -49,14 +51,29 @@ func init() { panic(err) } } - regState(block) + if _, ok := toStateID[block]; ok { + panic(fmt.Errorf("state %#v already exist", block)) + } + toStateID[block] = len(fromStateID) + fromStateID = append(fromStateID, block) } + BitsPerBlock = bits.Len(uint(len(fromStateID))) } -func FromStateID(stateID int) Block { - return fromStateID[stateID] +func FromStateID(stateID int) (b Block, ok bool) { + if stateID >= 0 && stateID < len(fromStateID) { + b = fromStateID[stateID] + ok = true + } + return } -func ToStateID(b Block) int { - return toStateID[b] +func DefaultBlock(id string) (b Block, ok bool) { + b, ok = fromID[id] + return +} + +func ToStateID(b Block) (i int, ok bool) { + i, ok = toStateID[b] + return } diff --git a/level/chunk.go b/level/chunk.go index bfcb7e5..21d0519 100644 --- a/level/chunk.go +++ b/level/chunk.go @@ -2,13 +2,14 @@ package level import ( "bytes" + "fmt" "io" "math/bits" "strings" "sync" "unsafe" - "github.com/Tnze/go-mc/data/block" + "github.com/Tnze/go-mc/level/block" pk "github.com/Tnze/go-mc/net/packet" "github.com/Tnze/go-mc/save" ) @@ -113,11 +114,18 @@ func ChunkFromSave(c *save.Chunk, secs int) *Chunk { statePalette := v.BlockStates.Palette stateRawPalette := make([]int, len(statePalette)) for i, v := range statePalette { - // TODO: Consider the properties of block, not only index the block name - stateRawPalette[i] = int(stateIDs[strings.TrimPrefix(v.Name, "minecraft:")]) - if v.Name != "minecraft:air" { + b := v.Block() + if b == nil { + panic(fmt.Errorf("block not found: %#v", v)) + } + if !isAir(b) { blockCount++ } + var ok bool + stateRawPalette[i], ok = block.ToStateID(b) + if !ok { + panic(fmt.Errorf("state id not found: %#v", b)) + } } biomesData := *(*[]uint64)((unsafe.Pointer)(&v.Biomes.Data)) @@ -153,18 +161,6 @@ func ChunkFromSave(c *save.Chunk, secs int) *Chunk { } } -// TODO: This map should be moved to data/block. -var stateIDs = make(map[string]uint32) - -func init() { - for i, v := range block.StateID { - name := block.ByID[v].Name - if _, ok := stateIDs[name]; !ok { - stateIDs[name] = i - } - } -} - func (c *Chunk) WriteTo(w io.Writer) (int64, error) { data, err := c.Data() if err != nil { @@ -211,8 +207,8 @@ func (s *Section) GetBlock(i int) int { return s.States.Get(i) } func (s *Section) SetBlock(i int, v int) { - // TODO: Handle cave air and void air - if s.States.Get(i) != 0 { + b, _ := block.FromStateID(s.States.Get(i)) + if isAir(b) { s.blockCount-- } if v != 0 { @@ -263,3 +259,12 @@ func (l *lightData) WriteTo(w io.Writer) (int64, error) { pk.Array(l.BlockLight), }.WriteTo(w) } + +func isAir(b block.Block) bool { + switch b.(type) { + case block.Air, block.CaveAir, block.VoidAir: + return true + default: + return false + } +} diff --git a/save/chunk.go b/save/chunk.go index 122a76a..b3029a4 100644 --- a/save/chunk.go +++ b/save/chunk.go @@ -5,8 +5,10 @@ import ( "compress/gzip" "compress/zlib" "errors" - "github.com/Tnze/go-mc/nbt" "io" + + "github.com/Tnze/go-mc/level/block" + "github.com/Tnze/go-mc/nbt" ) // Chunk is 16* chunk @@ -45,6 +47,19 @@ type BlockState struct { Properties nbt.RawMessage } +func (s *BlockState) Block() block.Block { + b, ok := block.DefaultBlock(s.Name) + if !ok { + return nil + } + if s.Properties.Type != nbt.TagEnd { + if err := s.Properties.Unmarshal(&b); err != nil { + return nil + } + } + return b +} + // Load read column data from []byte func (c *Chunk) Load(data []byte) (err error) { var r io.Reader = bytes.NewReader(data[1:]) From 46b021e1ef83167d84ef00978a61e7536d329668 Mon Sep 17 00:00:00 2001 From: Tnze Date: Thu, 10 Mar 2022 12:29:03 +0800 Subject: [PATCH 4/4] update to 1.18.2 & fix bug in snbt encoding --- README.md | 2 +- bot/basic/info.go | 11 +- bot/mcbot.go | 28 +- level/block/{testdata => }/blocks.nbt | Bin level/block/generator/main.go | 2 +- nbt/snbt.go | 2 +- nbt/snbt_encode_test.go | 3 + net/conn.go | 4 +- server/Dimension.snbt | 30 +- server/DimensionCodec.snbt | 2094 +------------------------ server/chat.go | 10 +- server/command/component.go | 4 +- server/dimension.go | 4 +- server/gameplay.go | 8 +- server/keepalive.go | 4 +- server/player.go | 5 +- server/playerlist.go | 2 +- server/server.go | 4 +- 18 files changed, 70 insertions(+), 2147 deletions(-) rename level/block/{testdata => }/blocks.nbt (100%) create mode 100644 nbt/snbt_encode_test.go diff --git a/README.md b/README.md index 4af34d3..52eb40f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Go-MC -![Version](https://img.shields.io/badge/Minecraft-1.18-blue.svg) +![Version](https://img.shields.io/badge/Minecraft-1.18.2-blue.svg) [![Go Reference](https://pkg.go.dev/badge/github.com/Tnze/go-mc.svg)](https://pkg.go.dev/github.com/Tnze/go-mc) [![Go Report Card](https://goreportcard.com/badge/github.com/Tnze/go-mc)](https://goreportcard.com/report/github.com/Tnze/go-mc) [![Build Status](https://travis-ci.org/Tnze/go-mc.svg?branch=master)](https://travis-ci.org/Tnze/go-mc) diff --git a/bot/basic/info.go b/bot/basic/info.go index b549157..25eb066 100644 --- a/bot/basic/info.go +++ b/bot/basic/info.go @@ -10,11 +10,8 @@ import ( // WorldInfo content player info in server. type WorldInfo struct { - DimensionCodec struct { - DimensionType interface{} `nbt:"minecraft:dimension_type"` - WorldgenBiome interface{} `nbt:"minecraft:worldgen/biome"` - } - Dimension interface{} + DimensionCodec nbt.StringifiedMessage + Dimension nbt.StringifiedMessage WorldNames []string // Identifiers for all worlds on the server. WorldName string // Name of the world being spawned into. HashedSeed int64 // First 8 bytes of the SHA-256 hash of the world's seed. Used client side for biome noise @@ -49,8 +46,8 @@ func (p *Player) handleLoginPacket(packet pk.Packet) error { (*pk.Byte)(&p.PrevGamemode), &WorldCount, pk.Ary{Len: &WorldCount, Ary: &WorldNames}, - pk.NBT(new(nbt.RawMessage)), - pk.NBT(new(nbt.RawMessage)), + pk.NBT(&p.WorldInfo.DimensionCodec), + pk.NBT(&p.WorldInfo.Dimension), (*pk.Identifier)(&p.WorldName), (*pk.Long)(&p.HashedSeed), (*pk.VarInt)(&p.MaxPlayers), diff --git a/bot/mcbot.go b/bot/mcbot.go index 8315dfc..bd57aef 100644 --- a/bot/mcbot.go +++ b/bot/mcbot.go @@ -6,6 +6,7 @@ package bot import ( "context" + "errors" "net" "strconv" @@ -16,7 +17,7 @@ import ( ) // ProtocolVersion is the protocol version number of minecraft net protocol -const ProtocolVersion = 757 +const ProtocolVersion = 758 const DefaultPort = mcnet.DefaultPort // JoinServer connect a Minecraft server for playing the game. @@ -27,20 +28,31 @@ func (c *Client) JoinServer(addr string) (err error) { // JoinServerWithDialer is similar to JoinServer but using a Dialer. func (c *Client) JoinServerWithDialer(d *net.Dialer, addr string) (err error) { - return c.join(context.Background(), &mcnet.Dialer{Dialer: d}, addr) + var dialer *mcnet.Dialer + if d != nil { + dialer = &mcnet.Dialer{Dialer: *d} + } + return c.join(context.Background(), dialer, addr) } func (c *Client) join(ctx context.Context, d *mcnet.Dialer, addr string) error { const Handshake = 0x00 - // Split Host and Port host, portStr, err := net.SplitHostPort(addr) + var port uint64 if err != nil { - return LoginErr{"split address", err} - } - port, err := strconv.ParseUint(portStr, 0, 16) - if err != nil { - return LoginErr{"parse port", err} + var addrErr *net.AddrError + const missingPort = "missing port in address" + if errors.As(err, &addrErr) && addrErr.Err == missingPort { + port = 25565 + } else { + return LoginErr{"split address", err} + } + } else { + port, err = strconv.ParseUint(portStr, 0, 16) + if err != nil { + return LoginErr{"parse port", err} + } } // Dial connection diff --git a/level/block/testdata/blocks.nbt b/level/block/blocks.nbt similarity index 100% rename from level/block/testdata/blocks.nbt rename to level/block/blocks.nbt diff --git a/level/block/generator/main.go b/level/block/generator/main.go index 857fc81..757c0ec 100644 --- a/level/block/generator/main.go +++ b/level/block/generator/main.go @@ -39,7 +39,7 @@ func main() { func readBlockStates(states *[]State) { // open block_states data file - f, err := os.Open("testdata/blocks.nbt") + f, err := os.Open("blocks.nbt") if err != nil { log.Panic(err) } diff --git a/nbt/snbt.go b/nbt/snbt.go index 3080778..0ed787e 100644 --- a/nbt/snbt.go +++ b/nbt/snbt.go @@ -94,7 +94,7 @@ func (m *StringifiedMessage) encode(d *Decoder, sb *strings.Builder, tagType byt return err case TagInt: i, err := d.readInt32() - sb.WriteString(strconv.FormatInt(int64(i), 10) + "I") + sb.WriteString(strconv.FormatInt(int64(i), 10)) return err case TagFloat: i, err := d.readInt32() diff --git a/nbt/snbt_encode_test.go b/nbt/snbt_encode_test.go new file mode 100644 index 0000000..9235409 --- /dev/null +++ b/nbt/snbt_encode_test.go @@ -0,0 +1,3 @@ +package nbt + +//TODO: Test SNBT encode diff --git a/net/conn.go b/net/conn.go index 88e05d1..3e99c40 100644 --- a/net/conn.go +++ b/net/conn.go @@ -63,11 +63,11 @@ func DialMCTimeout(addr string, timeout time.Duration) (*Conn, error) { } type Dialer struct { - *net.Dialer + net.Dialer } func (d *Dialer) resolver() *net.Resolver { - if d.Resolver != nil { + if d != nil && d.Resolver != nil { return d.Resolver } return net.DefaultResolver diff --git a/server/Dimension.snbt b/server/Dimension.snbt index 2b9092d..86fe858 100644 --- a/server/Dimension.snbt +++ b/server/Dimension.snbt @@ -1,17 +1,17 @@ { - piglin_safe: 0b, - natural: 1b, - ambient_light: 0.0f, - infiniburn: "minecraft:infiniburn_overworld", - respawn_anchor_works: 0b, - has_skylight: 1b, - bed_works: 1b, - effects: "minecraft:overworld", - has_raids: 1b, - min_y: 0, - height: 256, - logical_height: 256, - coordinate_scale: 1.0d, - ultrawarm: 0b, - has_ceiling: 0b + piglin_safe:0B, + natural:1B, + ambient_light:0.0000000000F, + infiniburn:"#minecraft:infiniburn_overworld", + respawn_anchor_works:0B, + has_skylight:1B, + bed_works:1B, + effects:"minecraft:overworld", + has_raids:1B, + logical_height:384, + coordinate_scale:1.0000000000D, + min_y:-64, + has_ceiling:0B, + ultrawarm:0B, + height:384 } \ No newline at end of file diff --git a/server/DimensionCodec.snbt b/server/DimensionCodec.snbt index 69072ab..59e3b9a 100644 --- a/server/DimensionCodec.snbt +++ b/server/DimensionCodec.snbt @@ -1,2093 +1 @@ -{ - "minecraft:dimension_type": { - type: "minecraft:dimension_type", - value: [ - { - name: "minecraft:overworld", - id: 0, - element: { - piglin_safe: 0b, - natural: 1b, - ambient_light: 0.0f, - infiniburn: "minecraft:infiniburn_overworld", - respawn_anchor_works: 0b, - has_skylight: 1b, - bed_works: 1b, - effects: "minecraft:overworld", - has_raids: 1b, - min_y: 0, - height: 256, - logical_height: 256, - coordinate_scale: 1.0d, - ultrawarm: 0b, - has_ceiling: 0b - } - }, - { - name: "minecraft:overworld_caves", - id: 1, - element: { - piglin_safe: 0b, - natural: 1b, - ambient_light: 0.0f, - infiniburn: "minecraft:infiniburn_overworld", - respawn_anchor_works: 0b, - has_skylight: 1b, - bed_works: 1b, - effects: "minecraft:overworld", - has_raids: 1b, - min_y: 0, - height: 256, - logical_height: 256, - coordinate_scale: 1.0d, - ultrawarm: 0b, - has_ceiling: 1b - } - }, - { - name: "minecraft:the_nether", - id: 2, - element: { - piglin_safe: 1b, - natural: 0b, - ambient_light: 0.1f, - infiniburn: "minecraft:infiniburn_nether", - respawn_anchor_works: 1b, - has_skylight: 0b, - bed_works: 0b, - effects: "minecraft:the_nether", - fixed_time: 18000L, - has_raids: 0b, - min_y: 0, - height: 256, - logical_height: 128, - coordinate_scale: 8.0d, - ultrawarm: 1b, - has_ceiling: 1b - } - }, - { - name: "minecraft:the_end", - id: 3, - element: { - piglin_safe: 0b, - natural: 0b, - ambient_light: 0.0f, - infiniburn: "minecraft:infiniburn_end", - respawn_anchor_works: 0b, - has_skylight: 0b, - bed_works: 0b, - effects: "minecraft:the_end", - fixed_time: 6000L, - has_raids: 1b, - min_y: 0, - height: 256, - logical_height: 256, - coordinate_scale: 1.0d, - ultrawarm: 0b, - has_ceiling: 0b - } - } - ] - }, - "minecraft:worldgen/biome": { - type: "minecraft:worldgen/biome", - value: [ - { - name: "minecraft:ocean", - id: 0, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.0f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:plains", - id: 1, - element: { - precipitation: "rain", - effects: { - sky_color: 7907327, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.125f, - temperature: 0.8f, - scale: 0.05f, - downfall: 0.4f, - category: "plains" - } - }, - { - name: "minecraft:desert", - id: 2, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.125f, - temperature: 2.0f, - scale: 0.05f, - downfall: 0.0f, - category: "desert" - } - }, - { - name: "minecraft:mountains", - id: 3, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.0f, - temperature: 0.2f, - scale: 0.5f, - downfall: 0.3f, - category: "extreme_hills" - } - }, - { - name: "minecraft:forest", - id: 4, - element: { - precipitation: "rain", - effects: { - sky_color: 7972607, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.7f, - scale: 0.2f, - downfall: 0.8f, - category: "forest" - } - }, - { - name: "minecraft:taiga", - id: 5, - element: { - precipitation: "rain", - effects: { - sky_color: 8233983, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.25f, - scale: 0.2f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:swamp", - id: 6, - element: { - precipitation: "rain", - effects: { - grass_color_modifier: "swamp", - sky_color: 7907327, - foliage_color: 6975545, - water_fog_color: 2302743, - fog_color: 12638463, - water_color: 6388580, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -0.2f, - temperature: 0.8f, - scale: 0.1f, - downfall: 0.9f, - category: "swamp" - } - }, - { - name: "minecraft:river", - id: 7, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -0.5f, - temperature: 0.5f, - scale: 0.0f, - downfall: 0.5f, - category: "river" - } - }, - { - name: "minecraft:nether_wastes", - id: 8, - element: { - precipitation: "none", - effects: { - music: { - replace_current_music: 0b, - max_delay: 24000, - sound: "minecraft:music.nether.nether_wastes", - min_delay: 12000 - }, - sky_color: 7254527, - ambient_sound: "minecraft:ambient.nether_wastes.loop", - additions_sound: { - sound: "minecraft:ambient.nether_wastes.additions", - tick_chance: 0.0111d - }, - water_fog_color: 329011, - fog_color: 3344392, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.nether_wastes.mood", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "nether" - } - }, - { - name: "minecraft:the_end", - id: 9, - element: { - precipitation: "none", - effects: { - sky_color: 0, - water_fog_color: 329011, - fog_color: 10518688, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "the_end" - } - }, - { - name: "minecraft:frozen_ocean", - id: 10, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 3750089, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.0f, - temperature: 0.0f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean", - temperature_modifier: "frozen" - } - }, - { - name: "minecraft:frozen_river", - id: 11, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 3750089, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -0.5f, - temperature: 0.0f, - scale: 0.0f, - downfall: 0.5f, - category: "river" - } - }, - { - name: "minecraft:snowy_tundra", - id: 12, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.125f, - temperature: 0.0f, - scale: 0.05f, - downfall: 0.5f, - category: "icy" - } - }, - { - name: "minecraft:snowy_mountains", - id: 13, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.0f, - scale: 0.3f, - downfall: 0.5f, - category: "icy" - } - }, - { - name: "minecraft:mushroom_fields", - id: 14, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.9f, - scale: 0.3f, - downfall: 1.0f, - category: "mushroom" - } - }, - { - name: "minecraft:mushroom_field_shore", - id: 15, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.0f, - temperature: 0.9f, - scale: 0.025f, - downfall: 1.0f, - category: "mushroom" - } - }, - { - name: "minecraft:beach", - id: 16, - element: { - precipitation: "rain", - effects: { - sky_color: 7907327, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.0f, - temperature: 0.8f, - scale: 0.025f, - downfall: 0.4f, - category: "beach" - } - }, - { - name: "minecraft:desert_hills", - id: 17, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 2.0f, - scale: 0.3f, - downfall: 0.0f, - category: "desert" - } - }, - { - name: "minecraft:wooded_hills", - id: 18, - element: { - precipitation: "rain", - effects: { - sky_color: 7972607, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.7f, - scale: 0.3f, - downfall: 0.8f, - category: "forest" - } - }, - { - name: "minecraft:taiga_hills", - id: 19, - element: { - precipitation: "rain", - effects: { - sky_color: 8233983, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.25f, - scale: 0.3f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:mountain_edge", - id: 20, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.8f, - temperature: 0.2f, - scale: 0.3f, - downfall: 0.3f, - category: "extreme_hills" - } - }, - { - name: "minecraft:jungle", - id: 21, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.95f, - scale: 0.2f, - downfall: 0.9f, - category: "jungle" - } - }, - { - name: "minecraft:jungle_hills", - id: 22, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.95f, - scale: 0.3f, - downfall: 0.9f, - category: "jungle" - } - }, - { - name: "minecraft:jungle_edge", - id: 23, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.95f, - scale: 0.2f, - downfall: 0.8f, - category: "jungle" - } - }, - { - name: "minecraft:deep_ocean", - id: 24, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.8f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:stone_shore", - id: 25, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.2f, - scale: 0.8f, - downfall: 0.3f, - category: "none" - } - }, - { - name: "minecraft:snowy_beach", - id: 26, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.0f, - temperature: 0.05f, - scale: 0.025f, - downfall: 0.3f, - category: "beach" - } - }, - { - name: "minecraft:birch_forest", - id: 27, - element: { - precipitation: "rain", - effects: { - sky_color: 8037887, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.6f, - scale: 0.2f, - downfall: 0.6f, - category: "forest" - } - }, - { - name: "minecraft:birch_forest_hills", - id: 28, - element: { - precipitation: "rain", - effects: { - sky_color: 8037887, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.6f, - scale: 0.3f, - downfall: 0.6f, - category: "forest" - } - }, - { - name: "minecraft:dark_forest", - id: 29, - element: { - precipitation: "rain", - effects: { - grass_color_modifier: "dark_forest", - sky_color: 7972607, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.7f, - scale: 0.2f, - downfall: 0.8f, - category: "forest" - } - }, - { - name: "minecraft:snowy_taiga", - id: 30, - element: { - precipitation: "snow", - effects: { - sky_color: 8625919, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: -0.5f, - scale: 0.2f, - downfall: 0.4f, - category: "taiga" - } - }, - { - name: "minecraft:snowy_taiga_hills", - id: 31, - element: { - precipitation: "snow", - effects: { - sky_color: 8625919, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: -0.5f, - scale: 0.3f, - downfall: 0.4f, - category: "taiga" - } - }, - { - name: "minecraft:giant_tree_taiga", - id: 32, - element: { - precipitation: "rain", - effects: { - sky_color: 8168447, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.3f, - scale: 0.2f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:giant_tree_taiga_hills", - id: 33, - element: { - precipitation: "rain", - effects: { - sky_color: 8168447, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.3f, - scale: 0.3f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:wooded_mountains", - id: 34, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.0f, - temperature: 0.2f, - scale: 0.5f, - downfall: 0.3f, - category: "extreme_hills" - } - }, - { - name: "minecraft:savanna", - id: 35, - element: { - precipitation: "none", - effects: { - sky_color: 7711487, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.125f, - temperature: 1.2f, - scale: 0.05f, - downfall: 0.0f, - category: "savanna" - } - }, - { - name: "minecraft:savanna_plateau", - id: 36, - element: { - precipitation: "none", - effects: { - sky_color: 7776511, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.5f, - temperature: 1.0f, - scale: 0.025f, - downfall: 0.0f, - category: "savanna" - } - }, - { - name: "minecraft:badlands", - id: 37, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:wooded_badlands_plateau", - id: 38, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.5f, - temperature: 2.0f, - scale: 0.025f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:badlands_plateau", - id: 39, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.5f, - temperature: 2.0f, - scale: 0.025f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:small_end_islands", - id: 40, - element: { - precipitation: "none", - effects: { - sky_color: 0, - water_fog_color: 329011, - fog_color: 10518688, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "the_end" - } - }, - { - name: "minecraft:end_midlands", - id: 41, - element: { - precipitation: "none", - effects: { - sky_color: 0, - water_fog_color: 329011, - fog_color: 10518688, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "the_end" - } - }, - { - name: "minecraft:end_highlands", - id: 42, - element: { - precipitation: "none", - effects: { - sky_color: 0, - water_fog_color: 329011, - fog_color: 10518688, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "the_end" - } - }, - { - name: "minecraft:end_barrens", - id: 43, - element: { - precipitation: "none", - effects: { - sky_color: 0, - water_fog_color: 329011, - fog_color: 10518688, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "the_end" - } - }, - { - name: "minecraft:warm_ocean", - id: 44, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 270131, - fog_color: 12638463, - water_color: 4445678, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.0f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:lukewarm_ocean", - id: 45, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 267827, - fog_color: 12638463, - water_color: 4566514, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.0f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:cold_ocean", - id: 46, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.0f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:deep_warm_ocean", - id: 47, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 270131, - fog_color: 12638463, - water_color: 4445678, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.8f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:deep_lukewarm_ocean", - id: 48, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 267827, - fog_color: 12638463, - water_color: 4566514, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.8f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:deep_cold_ocean", - id: 49, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.8f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:deep_frozen_ocean", - id: 50, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 3750089, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.8f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean", - temperature_modifier: "frozen" - } - }, - { - name: "minecraft:the_void", - id: 127, - element: { - precipitation: "none", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "none" - } - }, - { - name: "minecraft:sunflower_plains", - id: 129, - element: { - precipitation: "rain", - effects: { - sky_color: 7907327, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.125f, - temperature: 0.8f, - scale: 0.05f, - downfall: 0.4f, - category: "plains" - } - }, - { - name: "minecraft:desert_lakes", - id: 130, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.225f, - temperature: 2.0f, - scale: 0.25f, - downfall: 0.0f, - category: "desert" - } - }, - { - name: "minecraft:gravelly_mountains", - id: 131, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.0f, - temperature: 0.2f, - scale: 0.5f, - downfall: 0.3f, - category: "extreme_hills" - } - }, - { - name: "minecraft:flower_forest", - id: 132, - element: { - precipitation: "rain", - effects: { - sky_color: 7972607, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.7f, - scale: 0.4f, - downfall: 0.8f, - category: "forest" - } - }, - { - name: "minecraft:taiga_mountains", - id: 133, - element: { - precipitation: "rain", - effects: { - sky_color: 8233983, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.3f, - temperature: 0.25f, - scale: 0.4f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:swamp_hills", - id: 134, - element: { - precipitation: "rain", - effects: { - grass_color_modifier: "swamp", - sky_color: 7907327, - foliage_color: 6975545, - water_fog_color: 2302743, - fog_color: 12638463, - water_color: 6388580, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -0.1f, - temperature: 0.8f, - scale: 0.3f, - downfall: 0.9f, - category: "swamp" - } - }, - { - name: "minecraft:ice_spikes", - id: 140, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.425f, - temperature: 0.0f, - scale: 0.45000002f, - downfall: 0.5f, - category: "icy" - } - }, - { - name: "minecraft:modified_jungle", - id: 149, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.95f, - scale: 0.4f, - downfall: 0.9f, - category: "jungle" - } - }, - { - name: "minecraft:modified_jungle_edge", - id: 151, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.95f, - scale: 0.4f, - downfall: 0.8f, - category: "jungle" - } - }, - { - name: "minecraft:tall_birch_forest", - id: 155, - element: { - precipitation: "rain", - effects: { - sky_color: 8037887, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.6f, - scale: 0.4f, - downfall: 0.6f, - category: "forest" - } - }, - { - name: "minecraft:tall_birch_hills", - id: 156, - element: { - precipitation: "rain", - effects: { - sky_color: 8037887, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.55f, - temperature: 0.6f, - scale: 0.5f, - downfall: 0.6f, - category: "forest" - } - }, - { - name: "minecraft:dark_forest_hills", - id: 157, - element: { - precipitation: "rain", - effects: { - grass_color_modifier: "dark_forest", - sky_color: 7972607, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.7f, - scale: 0.4f, - downfall: 0.8f, - category: "forest" - } - }, - { - name: "minecraft:snowy_taiga_mountains", - id: 158, - element: { - precipitation: "snow", - effects: { - sky_color: 8625919, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.3f, - temperature: -0.5f, - scale: 0.4f, - downfall: 0.4f, - category: "taiga" - } - }, - { - name: "minecraft:giant_spruce_taiga", - id: 160, - element: { - precipitation: "rain", - effects: { - sky_color: 8233983, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.25f, - scale: 0.2f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:giant_spruce_taiga_hills", - id: 161, - element: { - precipitation: "rain", - effects: { - sky_color: 8233983, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.25f, - scale: 0.2f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:modified_gravelly_mountains", - id: 162, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.0f, - temperature: 0.2f, - scale: 0.5f, - downfall: 0.3f, - category: "extreme_hills" - } - }, - { - name: "minecraft:shattered_savanna", - id: 163, - element: { - precipitation: "none", - effects: { - sky_color: 7776767, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.3625f, - temperature: 1.1f, - scale: 1.225f, - downfall: 0.0f, - category: "savanna" - } - }, - { - name: "minecraft:shattered_savanna_plateau", - id: 164, - element: { - precipitation: "none", - effects: { - sky_color: 7776511, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.05f, - temperature: 1.0f, - scale: 1.2125001f, - downfall: 0.0f, - category: "savanna" - } - }, - { - name: "minecraft:eroded_badlands", - id: 165, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:modified_wooded_badlands_plateau", - id: 166, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 2.0f, - scale: 0.3f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:modified_badlands_plateau", - id: 167, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 2.0f, - scale: 0.3f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:bamboo_jungle", - id: 168, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.95f, - scale: 0.2f, - downfall: 0.9f, - category: "jungle" - } - }, - { - name: "minecraft:bamboo_jungle_hills", - id: 169, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.95f, - scale: 0.3f, - downfall: 0.9f, - category: "jungle" - } - }, - { - name: "minecraft:soul_sand_valley", - id: 170, - element: { - precipitation: "none", - effects: { - music: { - replace_current_music: 0b, - max_delay: 24000, - sound: "minecraft:music.nether.soul_sand_valley", - min_delay: 12000 - }, - sky_color: 7254527, - ambient_sound: "minecraft:ambient.soul_sand_valley.loop", - additions_sound: { - sound: "minecraft:ambient.soul_sand_valley.additions", - tick_chance: 0.0111d - }, - particle: { - probability: 0.00625f, - options: { - type: "minecraft:ash" - } - }, - water_fog_color: 329011, - fog_color: 1787717, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.soul_sand_valley.mood", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "nether" - } - }, - { - name: "minecraft:crimson_forest", - id: 171, - element: { - precipitation: "none", - effects: { - music: { - replace_current_music: 0b, - max_delay: 24000, - sound: "minecraft:music.nether.crimson_forest", - min_delay: 12000 - }, - sky_color: 7254527, - ambient_sound: "minecraft:ambient.crimson_forest.loop", - additions_sound: { - sound: "minecraft:ambient.crimson_forest.additions", - tick_chance: 0.0111d - }, - particle: { - probability: 0.025f, - options: { - type: "minecraft:crimson_spore" - } - }, - water_fog_color: 329011, - fog_color: 3343107, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.crimson_forest.mood", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "nether" - } - }, - { - name: "minecraft:warped_forest", - id: 172, - element: { - precipitation: "none", - effects: { - music: { - replace_current_music: 0b, - max_delay: 24000, - sound: "minecraft:music.nether.warped_forest", - min_delay: 12000 - }, - sky_color: 7254527, - ambient_sound: "minecraft:ambient.warped_forest.loop", - additions_sound: { - sound: "minecraft:ambient.warped_forest.additions", - tick_chance: 0.0111d - }, - particle: { - probability: 0.01428f, - options: { - type: "minecraft:warped_spore" - } - }, - water_fog_color: 329011, - fog_color: 1705242, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.warped_forest.mood", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "nether" - } - }, - { - name: "minecraft:basalt_deltas", - id: 173, - element: { - precipitation: "none", - effects: { - music: { - replace_current_music: 0b, - max_delay: 24000, - sound: "minecraft:music.nether.basalt_deltas", - min_delay: 12000 - }, - sky_color: 7254527, - ambient_sound: "minecraft:ambient.basalt_deltas.loop", - additions_sound: { - sound: "minecraft:ambient.basalt_deltas.additions", - tick_chance: 0.0111d - }, - particle: { - probability: 0.118093334f, - options: { - type: "minecraft:white_ash" - } - }, - water_fog_color: 4341314, - fog_color: 6840176, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.basalt_deltas.mood", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "nether" - } - } - ] - } -} \ No newline at end of file +{"minecraft:dimension_type":{type:"minecraft:dimension_type",value:[{name:"minecraft:overworld",id:0,element:{piglin_safe:0B,natural:1B,ambient_light:0.0000000000F,infiniburn:"#minecraft:infiniburn_overworld",respawn_anchor_works:0B,has_skylight:1B,bed_works:1B,effects:"minecraft:overworld",has_raids:1B,logical_height:384,coordinate_scale:1.0000000000D,min_y:-64,has_ceiling:0B,ultrawarm:0B,height:384}},{name:"minecraft:overworld_caves",id:1,element:{piglin_safe:0B,natural:1B,ambient_light:0.0000000000F,infiniburn:"#minecraft:infiniburn_overworld",respawn_anchor_works:0B,has_skylight:1B,bed_works:1B,effects:"minecraft:overworld",has_raids:1B,logical_height:384,coordinate_scale:1.0000000000D,min_y:-64,has_ceiling:1B,ultrawarm:0B,height:384}},{name:"minecraft:the_nether",id:2,element:{piglin_safe:1B,natural:0B,ambient_light:0.1000000015F,infiniburn:"#minecraft:infiniburn_nether",respawn_anchor_works:1B,has_skylight:0B,bed_works:0B,effects:"minecraft:the_nether",fixed_time:18000L,has_raids:0B,logical_height:128,coordinate_scale:8.0000000000D,min_y:0,has_ceiling:1B,ultrawarm:1B,height:256}},{name:"minecraft:the_end",id:3,element:{piglin_safe:0B,natural:0B,ambient_light:0.0000000000F,infiniburn:"#minecraft:infiniburn_end",respawn_anchor_works:0B,has_skylight:0B,bed_works:0B,effects:"minecraft:the_end",fixed_time:6000L,has_raids:1B,logical_height:256,coordinate_scale:1.0000000000D,min_y:0,has_ceiling:0B,ultrawarm:0B,height:256}}]},"minecraft:worldgen/biome":{type:"minecraft:worldgen/biome",value:[{name:"minecraft:the_void",id:0,element:{precipitation:none,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:none}},{name:"minecraft:plains",id:1,element:{precipitation:rain,effects:{sky_color:7907327,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8000000119F,downfall:0.4000000060F,category:plains}},{name:"minecraft:sunflower_plains",id:2,element:{precipitation:rain,effects:{sky_color:7907327,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8000000119F,downfall:0.4000000060F,category:plains}},{name:"minecraft:snowy_plains",id:3,element:{precipitation:snow,effects:{sky_color:8364543,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.0000000000F,downfall:0.5000000000F,category:icy}},{name:"minecraft:ice_spikes",id:4,element:{precipitation:snow,effects:{sky_color:8364543,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.0000000000F,downfall:0.5000000000F,category:icy}},{name:"minecraft:desert",id:5,element:{precipitation:none,effects:{sky_color:7254527,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:desert}},{name:"minecraft:swamp",id:6,element:{precipitation:rain,effects:{grass_color_modifier:swamp,sky_color:7907327,foliage_color:6975545,water_fog_color:2302743,fog_color:12638463,water_color:6388580,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8000000119F,downfall:0.8999999762F,category:swamp}},{name:"minecraft:forest",id:7,element:{precipitation:rain,effects:{sky_color:7972607,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.6999999881F,downfall:0.8000000119F,category:forest}},{name:"minecraft:flower_forest",id:8,element:{precipitation:rain,effects:{sky_color:7972607,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.6999999881F,downfall:0.8000000119F,category:forest}},{name:"minecraft:birch_forest",id:9,element:{precipitation:rain,effects:{sky_color:8037887,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.6000000238F,downfall:0.6000000238F,category:forest}},{name:"minecraft:dark_forest",id:10,element:{precipitation:rain,effects:{grass_color_modifier:dark_forest,sky_color:7972607,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.6999999881F,downfall:0.8000000119F,category:forest}},{name:"minecraft:old_growth_birch_forest",id:11,element:{precipitation:rain,effects:{sky_color:8037887,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.6000000238F,downfall:0.6000000238F,category:forest}},{name:"minecraft:old_growth_pine_taiga",id:12,element:{precipitation:rain,effects:{sky_color:8168447,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.3000000119F,downfall:0.8000000119F,category:taiga}},{name:"minecraft:old_growth_spruce_taiga",id:13,element:{precipitation:rain,effects:{sky_color:8233983,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2500000000F,downfall:0.8000000119F,category:taiga}},{name:"minecraft:taiga",id:14,element:{precipitation:rain,effects:{sky_color:8233983,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2500000000F,downfall:0.8000000119F,category:taiga}},{name:"minecraft:snowy_taiga",id:15,element:{precipitation:snow,effects:{sky_color:8625919,water_fog_color:329011,fog_color:12638463,water_color:4020182,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:-0.5000000000F,downfall:0.4000000060F,category:taiga}},{name:"minecraft:savanna",id:16,element:{precipitation:none,effects:{sky_color:7254527,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:savanna}},{name:"minecraft:savanna_plateau",id:17,element:{precipitation:none,effects:{sky_color:7254527,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:savanna}},{name:"minecraft:windswept_hills",id:18,element:{precipitation:rain,effects:{sky_color:8233727,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2000000030F,downfall:0.3000000119F,category:extreme_hills}},{name:"minecraft:windswept_gravelly_hills",id:19,element:{precipitation:rain,effects:{sky_color:8233727,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2000000030F,downfall:0.3000000119F,category:extreme_hills}},{name:"minecraft:windswept_forest",id:20,element:{precipitation:rain,effects:{sky_color:8233727,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2000000030F,downfall:0.3000000119F,category:extreme_hills}},{name:"minecraft:windswept_savanna",id:21,element:{precipitation:none,effects:{sky_color:7254527,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:savanna}},{name:"minecraft:jungle",id:22,element:{precipitation:rain,effects:{sky_color:7842047,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.9499999881F,downfall:0.8999999762F,category:jungle}},{name:"minecraft:sparse_jungle",id:23,element:{precipitation:rain,effects:{sky_color:7842047,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.9499999881F,downfall:0.8000000119F,category:jungle}},{name:"minecraft:bamboo_jungle",id:24,element:{precipitation:rain,effects:{sky_color:7842047,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.9499999881F,downfall:0.8999999762F,category:jungle}},{name:"minecraft:badlands",id:25,element:{precipitation:none,effects:{sky_color:7254527,grass_color:9470285,foliage_color:10387789,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:mesa}},{name:"minecraft:eroded_badlands",id:26,element:{precipitation:none,effects:{sky_color:7254527,grass_color:9470285,foliage_color:10387789,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:mesa}},{name:"minecraft:wooded_badlands",id:27,element:{precipitation:none,effects:{sky_color:7254527,grass_color:9470285,foliage_color:10387789,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:mesa}},{name:"minecraft:meadow",id:28,element:{precipitation:rain,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.meadow",min_delay:12000},sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:937679,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.8000000119F,category:mountain}},{name:"minecraft:grove",id:29,element:{precipitation:snow,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.grove",min_delay:12000},sky_color:8495359,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:-0.2000000030F,downfall:0.8000000119F,category:forest}},{name:"minecraft:snowy_slopes",id:30,element:{precipitation:snow,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.snowy_slopes",min_delay:12000},sky_color:8560639,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:-0.3000000119F,downfall:0.8999999762F,category:mountain}},{name:"minecraft:frozen_peaks",id:31,element:{precipitation:snow,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.frozen_peaks",min_delay:12000},sky_color:8756735,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:-0.6999999881F,downfall:0.8999999762F,category:mountain}},{name:"minecraft:jagged_peaks",id:32,element:{precipitation:snow,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.jagged_peaks",min_delay:12000},sky_color:8756735,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:-0.6999999881F,downfall:0.8999999762F,category:mountain}},{name:"minecraft:stony_peaks",id:33,element:{precipitation:rain,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.stony_peaks",min_delay:12000},sky_color:7776511,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:1.0000000000F,downfall:0.3000000119F,category:mountain}},{name:"minecraft:river",id:34,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:river}},{name:"minecraft:frozen_river",id:35,element:{precipitation:snow,effects:{sky_color:8364543,water_fog_color:329011,fog_color:12638463,water_color:3750089,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.0000000000F,downfall:0.5000000000F,category:river}},{name:"minecraft:beach",id:36,element:{precipitation:rain,effects:{sky_color:7907327,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8000000119F,downfall:0.4000000060F,category:beach}},{name:"minecraft:snowy_beach",id:37,element:{precipitation:snow,effects:{sky_color:8364543,water_fog_color:329011,fog_color:12638463,water_color:4020182,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.0500000007F,downfall:0.3000000119F,category:beach}},{name:"minecraft:stony_shore",id:38,element:{precipitation:rain,effects:{sky_color:8233727,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2000000030F,downfall:0.3000000119F,category:beach}},{name:"minecraft:warm_ocean",id:39,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:270131,fog_color:12638463,water_color:4445678,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:lukewarm_ocean",id:40,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:267827,fog_color:12638463,water_color:4566514,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:deep_lukewarm_ocean",id:41,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:267827,fog_color:12638463,water_color:4566514,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:ocean",id:42,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:deep_ocean",id:43,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:cold_ocean",id:44,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4020182,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:deep_cold_ocean",id:45,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4020182,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:frozen_ocean",id:46,element:{precipitation:snow,effects:{sky_color:8364543,water_fog_color:329011,fog_color:12638463,water_color:3750089,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.0000000000F,downfall:0.5000000000F,category:ocean,temperature_modifier:frozen}},{name:"minecraft:deep_frozen_ocean",id:47,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:3750089,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean,temperature_modifier:frozen}},{name:"minecraft:mushroom_fields",id:48,element:{precipitation:rain,effects:{sky_color:7842047,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8999999762F,downfall:1.0000000000F,category:mushroom}},{name:"minecraft:dripstone_caves",id:49,element:{precipitation:rain,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.dripstone_caves",min_delay:12000},sky_color:7907327,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8000000119F,downfall:0.4000000060F,category:underground}},{name:"minecraft:lush_caves",id:50,element:{precipitation:rain,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.lush_caves",min_delay:12000},sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:underground}},{name:"minecraft:nether_wastes",id:51,element:{precipitation:none,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.nether.nether_wastes",min_delay:12000},sky_color:7254527,ambient_sound:"minecraft:ambient.nether_wastes.loop",additions_sound:{sound:"minecraft:ambient.nether_wastes.additions",tick_chance:0.0111000000D},water_fog_color:329011,fog_color:3344392,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.nether_wastes.mood",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:nether}},{name:"minecraft:warped_forest",id:52,element:{precipitation:none,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.nether.warped_forest",min_delay:12000},sky_color:7254527,ambient_sound:"minecraft:ambient.warped_forest.loop",additions_sound:{sound:"minecraft:ambient.warped_forest.additions",tick_chance:0.0111000000D},particle:{probability:0.0142799998F,options:{type:"minecraft:warped_spore"}},water_fog_color:329011,fog_color:1705242,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.warped_forest.mood",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:nether}},{name:"minecraft:crimson_forest",id:53,element:{precipitation:none,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.nether.crimson_forest",min_delay:12000},sky_color:7254527,ambient_sound:"minecraft:ambient.crimson_forest.loop",additions_sound:{sound:"minecraft:ambient.crimson_forest.additions",tick_chance:0.0111000000D},particle:{probability:0.0250000004F,options:{type:"minecraft:crimson_spore"}},water_fog_color:329011,fog_color:3343107,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.crimson_forest.mood",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:nether}},{name:"minecraft:soul_sand_valley",id:54,element:{precipitation:none,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.nether.soul_sand_valley",min_delay:12000},sky_color:7254527,ambient_sound:"minecraft:ambient.soul_sand_valley.loop",additions_sound:{sound:"minecraft:ambient.soul_sand_valley.additions",tick_chance:0.0111000000D},particle:{probability:0.0062500001F,options:{type:"minecraft:ash"}},water_fog_color:329011,fog_color:1787717,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.soul_sand_valley.mood",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:nether}},{name:"minecraft:basalt_deltas",id:55,element:{precipitation:none,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.nether.basalt_deltas",min_delay:12000},sky_color:7254527,ambient_sound:"minecraft:ambient.basalt_deltas.loop",additions_sound:{sound:"minecraft:ambient.basalt_deltas.additions",tick_chance:0.0111000000D},particle:{probability:0.1180933341F,options:{type:"minecraft:white_ash"}},water_fog_color:329011,fog_color:6840176,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.basalt_deltas.mood",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:nether}},{name:"minecraft:the_end",id:56,element:{precipitation:none,effects:{sky_color:0,water_fog_color:329011,fog_color:10518688,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:the_end}},{name:"minecraft:end_highlands",id:57,element:{precipitation:none,effects:{sky_color:0,water_fog_color:329011,fog_color:10518688,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:the_end}},{name:"minecraft:end_midlands",id:58,element:{precipitation:none,effects:{sky_color:0,water_fog_color:329011,fog_color:10518688,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:the_end}},{name:"minecraft:small_end_islands",id:59,element:{precipitation:none,effects:{sky_color:0,water_fog_color:329011,fog_color:10518688,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:the_end}},{name:"minecraft:end_barrens",id:60,element:{precipitation:none,effects:{sky_color:0,water_fog_color:329011,fog_color:10518688,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:the_end}}]}} \ No newline at end of file diff --git a/server/chat.go b/server/chat.go index 329448a..b3463bd 100644 --- a/server/chat.go +++ b/server/chat.go @@ -35,7 +35,7 @@ func NewGlobalChat() *GlobalChat { func (g *GlobalChat) Init(game *Game) { game.AddHandler(&PacketHandler{ ID: packetid.ServerboundChat, - F: func(player *Player, packet Packet757) error { + F: func(player *Player, packet Packet758) error { var msg pk.String if err := pk.Packet(packet).Scan(&msg); err != nil { return err @@ -59,14 +59,14 @@ func (g *GlobalChat) Run(ctx context.Context) { case <-ctx.Done(): return case item := <-g.msg: - g.broadcast(Packet757(pk.Marshal( + g.broadcast(Packet758(pk.Marshal( packetid.ClientboundChat, item.toMessage(), pk.Byte(chatPosChat), pk.UUID(item.p.UUID), ))) case p := <-g.join: - g.broadcast(Packet757(pk.Marshal( + g.broadcast(Packet758(pk.Marshal( packetid.ClientboundChat, chat.TranslateMsg("multiplayer.player.joined", chat.Text(p.Name)).SetColor(chat.Yellow), pk.Byte(chatPosSystem), @@ -74,7 +74,7 @@ func (g *GlobalChat) Run(ctx context.Context) { ))) g.players[p.UUID] = p case p := <-g.quit: - g.broadcast(Packet757(pk.Marshal( + g.broadcast(Packet758(pk.Marshal( packetid.ClientboundChat, chat.TranslateMsg("multiplayer.player.left", chat.Text(p.Name)).SetColor(chat.Yellow), pk.Byte(chatPosSystem), @@ -85,7 +85,7 @@ func (g *GlobalChat) Run(ctx context.Context) { } } -func (g *GlobalChat) broadcast(packet Packet757) { +func (g *GlobalChat) broadcast(packet Packet758) { for _, p := range g.players { p.WritePacket(packet) } diff --git a/server/command/component.go b/server/command/component.go index bd811e1..8bf2297 100644 --- a/server/command/component.go +++ b/server/command/component.go @@ -13,7 +13,7 @@ import ( func (g *Graph) Init(game *server.Game) { game.AddHandler(&server.PacketHandler{ ID: packetid.ServerboundChat, - F: func(player *server.Player, packet server.Packet757) error { + F: func(player *server.Player, packet server.Packet758) error { var msg pk.String if err := pk.Packet(packet).Scan(&msg); err != nil { return err @@ -35,7 +35,7 @@ func (g *Graph) Run(ctx context.Context) {} // AddPlayer implement server.Component for Graph func (g *Graph) AddPlayer(p *server.Player) { - p.WritePacket(server.Packet757(pk.Marshal( + p.WritePacket(server.Packet758(pk.Marshal( packetid.ClientboundCommands, g, ))) } diff --git a/server/dimension.go b/server/dimension.go index c539693..0a7707b 100644 --- a/server/dimension.go +++ b/server/dimension.go @@ -50,10 +50,10 @@ func (s *SimpleDim) PlayerJoin(p *Player) { ) column.Unlock() - p.WritePacket(Packet757(packet)) + p.WritePacket(Packet758(packet)) } - p.WritePacket(Packet757(pk.Marshal( + p.WritePacket(Packet758(pk.Marshal( packetid.ClientboundPlayerPosition, pk.Double(0), pk.Double(143), pk.Double(0), pk.Float(0), pk.Float(0), diff --git a/server/gameplay.go b/server/gameplay.go index aa1103b..10c3778 100644 --- a/server/gameplay.go +++ b/server/gameplay.go @@ -42,7 +42,7 @@ type PacketHandler struct { F packetHandlerFunc } -type packetHandlerFunc func(player *Player, packet Packet757) error +type packetHandlerFunc func(player *Player, packet Packet758) error //go:embed DimensionCodec.snbt var dimensionCodecSNBT string @@ -95,7 +95,9 @@ func (g *Game) AcceptPlayer(name string, id uuid.UUID, protocol int32, conn *net pk.Boolean(false), // Is hardcore pk.Byte(p.Gamemode), // Gamemode pk.Byte(-1), // Prev Gamemode - pk.Array([]pk.Identifier{pk.Identifier(dimInfo.Name)}), + pk.Array([]pk.Identifier{ + pk.Identifier(dimInfo.Name), + }), pk.NBT(nbt.StringifiedMessage(dimensionCodecSNBT)), pk.NBT(nbt.StringifiedMessage(dimensionSNBT)), pk.Identifier(dimInfo.Name), // World Name @@ -145,7 +147,7 @@ func (g *Game) AcceptPlayer(name string, id uuid.UUID, protocol int32, conn *net return } for _, ph := range g.handlers[packet.ID] { - if err := ph.F(p, Packet757(packet)); err != nil { + if err := ph.F(p, Packet758(packet)); err != nil { return } if err := p.GetErr(); err != nil { diff --git a/server/keepalive.go b/server/keepalive.go index a34787b..f560b1f 100644 --- a/server/keepalive.go +++ b/server/keepalive.go @@ -60,7 +60,7 @@ func (k *KeepAlive) AddPlayerDelayUpdateHandler(f func(p *Player, delay time.Dur func (k *KeepAlive) Init(g *Game) { g.AddHandler(&PacketHandler{ ID: packetid.ServerboundKeepAlive, - F: func(player *Player, packet Packet757) error { + F: func(player *Player, packet Packet758) error { var KeepAliveID pk.Long if err := pk.Packet(packet).Scan(&KeepAliveID); err != nil { return err @@ -121,7 +121,7 @@ func (k *KeepAlive) pingPlayer(now time.Time) { if elem := k.pingList.Front(); elem != nil { p := k.pingList.Remove(elem).(keepAliveItem).player // Send Clientbound KeepAlive packet. - p.WritePacket(Packet757(pk.Marshal( + p.WritePacket(Packet758(pk.Marshal( packetid.ClientboundKeepAlive, pk.Long(k.keepAliveID), ))) diff --git a/server/player.go b/server/player.go index 9fbb418..9cae52f 100644 --- a/server/player.go +++ b/server/player.go @@ -22,12 +22,13 @@ type Player struct { errChan chan error } -// Packet757 is a packet in protocol 757. +// Packet758 is a packet in protocol 757. // We are using type system to force programmers to update packets. +type Packet758 pk.Packet type Packet757 pk.Packet // WritePacket to player client. The type of parameter will update per version. -func (p *Player) WritePacket(packet Packet757) { +func (p *Player) WritePacket(packet Packet758) { p.packetQueue.Push(pk.Packet(packet)) } diff --git a/server/playerlist.go b/server/playerlist.go index 42231a6..c70bdee 100644 --- a/server/playerlist.go +++ b/server/playerlist.go @@ -42,7 +42,7 @@ func (p *PlayerList) AddPlayer(player *Player) { defer p.playersLock.Unlock() if len(p.players) >= p.maxPlayer { - player.WritePacket(Packet757(pk.Marshal( + player.WritePacket(Packet758(pk.Marshal( packetid.ClientboundDisconnect, chat.TranslateMsg("multiplayer.disconnect.server_full"), ))) diff --git a/server/server.go b/server/server.go index 52cd67f..1162b83 100644 --- a/server/server.go +++ b/server/server.go @@ -30,8 +30,8 @@ import ( "github.com/Tnze/go-mc/net" ) -const ProtocolName = "1.18.1" -const ProtocolVersion = 757 +const ProtocolName = "1.18.2" +const ProtocolVersion = 758 type Server struct { ListPingHandler