Skip to main content

ghast_data/generated/v1_12/
blocks.rs

1//! 1.12 block table: per-block info, per-state (`id << 4 | meta`) collision shapes and flags.
2//!
3//! @generated by `cargo run -p ghast-codegen-data` from PrismarineJS minecraft-data 3.119.0 — do not edit.
4//! Sources: pc/1.12/blocks.json, codegen/data/src/facts.rs, tests/golden/1.12.2/collision_boxes.jsonl.gz, tests/golden/1.12.2/selection_boxes.jsonl.gz, tests/golden/1.12.2/face_shapes.jsonl.gz.
5
6#![allow(clippy::all, clippy::pedantic, clippy::nursery, missing_docs)]
7
8use crate::common::*;
9use crate::v1_12::{Material, MaterialKind};
10
11pub(crate) static BLOCKS: [BlockInfo; 254] = [
12    BlockInfo { id: 0, name: "air", display_name: "Air", hardness: Some(0.0), resistance: 0.0, stack_size: 0, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[Drop { item: 0, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
13    BlockInfo { id: 1, name: "stone", display_name: "Stone", hardness: Some(1.5), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 4, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
14    BlockInfo { id: 2, name: "grass", display_name: "Grass Block", hardness: Some(0.6), resistance: 0.6, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[], drops: &[Drop { item: 3, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
15    BlockInfo { id: 3, name: "dirt", display_name: "Dirt", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[], drops: &[Drop { item: 3, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
16    BlockInfo { id: 4, name: "cobblestone", display_name: "Cobblestone", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 4, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
17    BlockInfo { id: 5, name: "planks", display_name: "Wood Planks", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 5, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
18    BlockInfo { id: 6, name: "sapling", display_name: "Sapling", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 6, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
19    BlockInfo { id: 7, name: "bedrock", display_name: "Bedrock", hardness: None, resistance: 3600000.0, stack_size: 64, diggable: false, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
20    BlockInfo { id: 8, name: "flowing_water", display_name: "Water", hardness: Some(100.0), resistance: 100.0, stack_size: 0, diggable: false, transparent: true, emit_light: 0, filter_light: 2, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0002) } },
21    BlockInfo { id: 9, name: "water", display_name: "Stationary Water", hardness: Some(100.0), resistance: 100.0, stack_size: 0, diggable: false, transparent: true, emit_light: 0, filter_light: 2, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0002) } },
22    BlockInfo { id: 10, name: "flowing_lava", display_name: "Lava", hardness: Some(100.0), resistance: 100.0, stack_size: 0, diggable: false, transparent: true, emit_light: 15, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0004) } },
23    BlockInfo { id: 11, name: "lava", display_name: "Stationary Lava", hardness: Some(100.0), resistance: 100.0, stack_size: 0, diggable: false, transparent: true, emit_light: 15, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0004) } },
24    BlockInfo { id: 12, name: "sand", display_name: "Sand", hardness: Some(0.5), resistance: 0.5, stack_size: 0, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[], drops: &[Drop { item: 12, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
25    BlockInfo { id: 13, name: "gravel", display_name: "Gravel", hardness: Some(0.6), resistance: 0.6, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[], drops: &[Drop { item: 13, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
26    BlockInfo { id: 14, name: "gold_ore", display_name: "Gold Ore", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 278], drops: &[Drop { item: 14, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
27    BlockInfo { id: 15, name: "iron_ore", display_name: "Iron Ore", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 274, 278], drops: &[Drop { item: 15, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
28    BlockInfo { id: 16, name: "coal_ore", display_name: "Coal Ore", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 263, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
29    BlockInfo { id: 17, name: "log", display_name: "Wood", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 17, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
30    BlockInfo { id: 18, name: "leaves", display_name: "Leaves", hardness: Some(0.2), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 6, meta: None, min: 0, max: 1 }, Drop { item: 260, meta: None, min: 0, max: 1 }], physics: BlockPhysics::DEFAULT },
31    BlockInfo { id: 19, name: "sponge", display_name: "Sponge", hardness: Some(0.6), resistance: 0.6, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 19, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
32    BlockInfo { id: 20, name: "glass", display_name: "Glass", hardness: Some(0.3), resistance: 0.3, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
33    BlockInfo { id: 21, name: "lapis_ore", display_name: "Lapis Lazuli Ore", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 274, 278], drops: &[Drop { item: 351, meta: Some(4), min: 4, max: 8 }], physics: BlockPhysics::DEFAULT },
34    BlockInfo { id: 22, name: "lapis_block", display_name: "Lapis Lazuli Block", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 274, 278], drops: &[Drop { item: 22, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
35    BlockInfo { id: 23, name: "dispenser", display_name: "Dispenser", hardness: Some(3.5), resistance: 3.5, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 23, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
36    BlockInfo { id: 24, name: "sandstone", display_name: "Sandstone", hardness: Some(0.8), resistance: 0.8, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 24, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
37    BlockInfo { id: 25, name: "noteblock", display_name: "Note Block", hardness: Some(0.8), resistance: 0.8, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 25, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
38    BlockInfo { id: 26, name: "bed", display_name: "Bed", hardness: Some(0.2), resistance: 0.2, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 26, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0020) } },
39    BlockInfo { id: 27, name: "golden_rail", display_name: "Powered Rail", hardness: Some(0.7), resistance: 0.7, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Rock), harvest_tools: &[], drops: &[Drop { item: 27, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
40    BlockInfo { id: 28, name: "detector_rail", display_name: "Detector Rail", hardness: Some(0.7), resistance: 0.7, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Rock), harvest_tools: &[], drops: &[Drop { item: 28, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
41    BlockInfo { id: 29, name: "sticky_piston", display_name: "Sticky Piston", hardness: Some(0.5), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 29, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
42    BlockInfo { id: 30, name: "web", display_name: "Cobweb", hardness: Some(4.0), resistance: 4.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Web), harvest_tools: &[267, 268, 272, 276, 283, 359], drops: &[Drop { item: 287, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [0.25, 0.05000000074505806, 0.25], flags: PhysicsFlags(0x0008) } },
43    BlockInfo { id: 31, name: "tallgrass", display_name: "Grass", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 295, meta: None, min: 0, max: 1 }], physics: BlockPhysics::DEFAULT },
44    BlockInfo { id: 32, name: "deadbush", display_name: "Dead Bush", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 280, meta: None, min: 0, max: 2 }], physics: BlockPhysics::DEFAULT },
45    BlockInfo { id: 33, name: "piston", display_name: "Piston", hardness: Some(0.5), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 33, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
46    BlockInfo { id: 34, name: "piston_head", display_name: "Piston Head", hardness: Some(0.5), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 34, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
47    BlockInfo { id: 35, name: "wool", display_name: "Wool", hardness: Some(0.8), resistance: 0.8, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wool), harvest_tools: &[], drops: &[Drop { item: 35, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
48    BlockInfo { id: 36, name: "piston_extension", display_name: "Block moved by Piston", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[Drop { item: 36, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
49    BlockInfo { id: 37, name: "yellow_flower", display_name: "Dandelion", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 37, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
50    BlockInfo { id: 38, name: "red_flower", display_name: "Poppy", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 38, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
51    BlockInfo { id: 39, name: "brown_mushroom", display_name: "Mushroom", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 1, filter_light: 15, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 39, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
52    BlockInfo { id: 40, name: "red_mushroom", display_name: "Mushroom", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 1, filter_light: 15, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 40, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
53    BlockInfo { id: 41, name: "gold_block", display_name: "Block of Gold", hardness: Some(3.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 278], drops: &[Drop { item: 41, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
54    BlockInfo { id: 42, name: "iron_block", display_name: "Block of Iron", hardness: Some(5.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 274, 278], drops: &[Drop { item: 42, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
55    BlockInfo { id: 43, name: "double_stone_slab", display_name: "Double Stone Slab", hardness: Some(0.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 44, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
56    BlockInfo { id: 44, name: "stone_slab", display_name: "Stone Slab", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 44, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
57    BlockInfo { id: 45, name: "brick_block", display_name: "Bricks", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 45, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
58    BlockInfo { id: 46, name: "tnt", display_name: "TNT", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 46, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
59    BlockInfo { id: 47, name: "bookshelf", display_name: "Bookshelf", hardness: Some(1.5), resistance: 1.5, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 340, meta: None, min: 3, max: 3 }], physics: BlockPhysics::DEFAULT },
60    BlockInfo { id: 48, name: "mossy_cobblestone", display_name: "Moss Stone", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 48, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
61    BlockInfo { id: 49, name: "obsidian", display_name: "Obsidian", hardness: Some(50.0), resistance: 1200.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[278], drops: &[Drop { item: 49, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
62    BlockInfo { id: 50, name: "torch", display_name: "Torch", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 14, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[Drop { item: 50, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
63    BlockInfo { id: 51, name: "fire", display_name: "Fire", hardness: Some(0.0), resistance: 0.0, stack_size: 0, diggable: true, transparent: true, emit_light: 15, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
64    BlockInfo { id: 52, name: "mob_spawner", display_name: "Monster Spawner", hardness: Some(5.0), resistance: 5.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[], physics: BlockPhysics::DEFAULT },
65    BlockInfo { id: 53, name: "oak_stairs", display_name: "Oak Wood Stairs", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 53, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
66    BlockInfo { id: 54, name: "chest", display_name: "Chest", hardness: Some(2.5), resistance: 2.5, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 54, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
67    BlockInfo { id: 55, name: "redstone_wire", display_name: "Redstone Wire", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[Drop { item: 331, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
68    BlockInfo { id: 56, name: "diamond_ore", display_name: "Diamond Ore", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 278], drops: &[Drop { item: 264, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
69    BlockInfo { id: 57, name: "diamond_block", display_name: "Block of Diamond", hardness: Some(5.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 278], drops: &[Drop { item: 57, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
70    BlockInfo { id: 58, name: "crafting_table", display_name: "Crafting Table", hardness: Some(2.5), resistance: 2.5, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 58, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
71    BlockInfo { id: 59, name: "wheat", display_name: "Wheat", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 295, meta: None, min: 1, max: 1 }, Drop { item: 295, meta: None, min: 0, max: 3 }, Drop { item: 296, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
72    BlockInfo { id: 60, name: "farmland", display_name: "Farmland", hardness: Some(0.6), resistance: 0.6, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[], drops: &[Drop { item: 3, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
73    BlockInfo { id: 61, name: "furnace", display_name: "Furnace", hardness: Some(3.5), resistance: 3.5, stack_size: 64, diggable: true, transparent: true, emit_light: 13, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 61, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
74    BlockInfo { id: 62, name: "lit_furnace", display_name: "Burning Furnace", hardness: Some(3.5), resistance: 3.5, stack_size: 64, diggable: true, transparent: true, emit_light: 13, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 61, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
75    BlockInfo { id: 63, name: "standing_sign", display_name: "Standing Sign", hardness: Some(1.0), resistance: 1.0, stack_size: 16, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 323, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
76    BlockInfo { id: 64, name: "wooden_door", display_name: "Oak Door", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 64, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
77    BlockInfo { id: 65, name: "ladder", display_name: "Ladder", hardness: Some(0.4), resistance: 0.4, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 65, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0001) } },
78    BlockInfo { id: 66, name: "rail", display_name: "Rail", hardness: Some(0.7), resistance: 0.7, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Rock), harvest_tools: &[], drops: &[Drop { item: 66, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
79    BlockInfo { id: 67, name: "stone_stairs", display_name: "Cobblestone Stairs", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 67, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
80    BlockInfo { id: 68, name: "wall_sign", display_name: "Wall Sign", hardness: Some(1.0), resistance: 1.0, stack_size: 16, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 323, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
81    BlockInfo { id: 69, name: "lever", display_name: "Lever", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[Drop { item: 69, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
82    BlockInfo { id: 70, name: "stone_pressure_plate", display_name: "Stone Pressure Plate", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 70, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
83    BlockInfo { id: 71, name: "iron_door", display_name: "Iron Door", hardness: Some(5.0), resistance: 5.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 71, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
84    BlockInfo { id: 72, name: "wooden_pressure_plate", display_name: "Wooden Pressure Plate", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 72, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
85    BlockInfo { id: 73, name: "redstone_ore", display_name: "Redstone Ore", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 9, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 278], drops: &[Drop { item: 331, meta: None, min: 4, max: 5 }], physics: BlockPhysics::DEFAULT },
86    BlockInfo { id: 74, name: "lit_redstone_ore", display_name: "Glowing Redstone Ore", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 9, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 278], drops: &[Drop { item: 331, meta: None, min: 4, max: 5 }], physics: BlockPhysics::DEFAULT },
87    BlockInfo { id: 75, name: "unlit_redstone_torch", display_name: "Redstone Torch (inactive)", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 7, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[Drop { item: 75, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
88    BlockInfo { id: 76, name: "redstone_torch", display_name: "Redstone Torch (active)", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 7, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[Drop { item: 76, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
89    BlockInfo { id: 77, name: "stone_button", display_name: "Stone Button", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Rock), harvest_tools: &[], drops: &[Drop { item: 77, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
90    BlockInfo { id: 78, name: "snow_layer", display_name: "Snow", hardness: Some(0.2), resistance: 0.1, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[256, 269, 273, 277, 284], drops: &[Drop { item: 332, meta: None, min: 2, max: 9 }], physics: BlockPhysics::DEFAULT },
91    BlockInfo { id: 79, name: "ice", display_name: "Ice", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[], drops: &[], physics: BlockPhysics { slipperiness: 0.98, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0000) } },
92    BlockInfo { id: 80, name: "snow", display_name: "Snow", hardness: Some(0.2), resistance: 0.2, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[256, 269, 273, 277, 284], drops: &[Drop { item: 332, meta: None, min: 4, max: 4 }], physics: BlockPhysics::DEFAULT },
93    BlockInfo { id: 81, name: "cactus", display_name: "Cactus", hardness: Some(0.4), resistance: 0.4, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 81, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
94    BlockInfo { id: 82, name: "clay", display_name: "Clay", hardness: Some(0.6), resistance: 0.6, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[], drops: &[Drop { item: 337, meta: None, min: 4, max: 4 }], physics: BlockPhysics::DEFAULT },
95    BlockInfo { id: 83, name: "reeds", display_name: "Sugar Cane", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 83, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
96    BlockInfo { id: 84, name: "jukebox", display_name: "Jukebox", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 84, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
97    BlockInfo { id: 85, name: "fence", display_name: "Oak Fence", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 85, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0200) } },
98    BlockInfo { id: 86, name: "pumpkin", display_name: "Pumpkin", hardness: Some(1.0), resistance: 1.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 86, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
99    BlockInfo { id: 87, name: "netherrack", display_name: "Netherrack", hardness: Some(0.4), resistance: 0.4, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 87, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
100    BlockInfo { id: 88, name: "soul_sand", display_name: "Soul Sand", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[], drops: &[Drop { item: 88, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 0.4, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0100) } },
101    BlockInfo { id: 89, name: "glowstone", display_name: "Glowstone", hardness: Some(0.3), resistance: 0.3, stack_size: 64, diggable: true, transparent: true, emit_light: 15, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 348, meta: None, min: 2, max: 4 }], physics: BlockPhysics::DEFAULT },
102    BlockInfo { id: 90, name: "portal", display_name: "Nether Portal", hardness: None, resistance: -1.0, stack_size: 0, diggable: false, transparent: true, emit_light: 11, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
103    BlockInfo { id: 91, name: "lit_pumpkin", display_name: "Jack o'Lantern", hardness: Some(1.0), resistance: 1.0, stack_size: 64, diggable: true, transparent: true, emit_light: 15, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 91, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
104    BlockInfo { id: 92, name: "cake", display_name: "Cake", hardness: Some(0.5), resistance: 0.5, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
105    BlockInfo { id: 93, name: "unpowered_repeater", display_name: "Redstone Repeater", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 356, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
106    BlockInfo { id: 94, name: "powered_repeater", display_name: "Redstone Repeater", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 356, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
107    BlockInfo { id: 95, name: "stained_glass", display_name: "Stained Glass", hardness: Some(0.3), resistance: 0.3, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
108    BlockInfo { id: 96, name: "trapdoor", display_name: "Wooden Trapdoor", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 96, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x1000) } },
109    BlockInfo { id: 97, name: "monster_egg", display_name: "Monster Egg", hardness: Some(0.75), resistance: 0.75, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
110    BlockInfo { id: 98, name: "stonebrick", display_name: "Stone Bricks", hardness: Some(1.5), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 98, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
111    BlockInfo { id: 99, name: "brown_mushroom_block", display_name: "Mushroom", hardness: Some(0.0), resistance: 0.2, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 40, meta: None, min: 0, max: 2 }], physics: BlockPhysics::DEFAULT },
112    BlockInfo { id: 100, name: "red_mushroom_block", display_name: "Mushroom", hardness: Some(0.0), resistance: 0.2, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 40, meta: None, min: 0, max: 2 }], physics: BlockPhysics::DEFAULT },
113    BlockInfo { id: 101, name: "iron_bars", display_name: "Iron Bars", hardness: Some(5.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 101, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
114    BlockInfo { id: 102, name: "glass_pane", display_name: "Glass Pane", hardness: Some(0.3), resistance: 0.3, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
115    BlockInfo { id: 103, name: "melon_block", display_name: "Melon", hardness: Some(1.0), resistance: 1.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 360, meta: None, min: 3, max: 7 }], physics: BlockPhysics::DEFAULT },
116    BlockInfo { id: 104, name: "pumpkin_stem", display_name: "Pumpkin Stem", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 361, meta: None, min: 0, max: 3 }], physics: BlockPhysics::DEFAULT },
117    BlockInfo { id: 105, name: "melon_stem", display_name: "Melon Stem", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 362, meta: None, min: 0, max: 3 }], physics: BlockPhysics::DEFAULT },
118    BlockInfo { id: 106, name: "vine", display_name: "Vines", hardness: Some(0.2), resistance: 0.2, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 106, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0001) } },
119    BlockInfo { id: 107, name: "fence_gate", display_name: "Fence Gate", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 107, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0800) } },
120    BlockInfo { id: 108, name: "brick_stairs", display_name: "Brick Stairs", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 108, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
121    BlockInfo { id: 109, name: "stone_brick_stairs", display_name: "Stone Brick Stairs", hardness: Some(1.5), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 109, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
122    BlockInfo { id: 110, name: "mycelium", display_name: "Mycelium", hardness: Some(0.6), resistance: 0.6, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[], drops: &[Drop { item: 3, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
123    BlockInfo { id: 111, name: "waterlily", display_name: "Lily Pad", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 111, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
124    BlockInfo { id: 112, name: "nether_brick", display_name: "Nether Brick", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 112, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
125    BlockInfo { id: 113, name: "nether_brick_fence", display_name: "Nether Brick Fence", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 113, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0200) } },
126    BlockInfo { id: 114, name: "nether_brick_stairs", display_name: "Nether Brick Stairs", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 114, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
127    BlockInfo { id: 115, name: "nether_wart", display_name: "Nether Wart", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 372, meta: None, min: 1, max: 1 }, Drop { item: 372, meta: None, min: 2, max: 4 }], physics: BlockPhysics::DEFAULT },
128    BlockInfo { id: 116, name: "enchanting_table", display_name: "Enchantment Table", hardness: Some(5.0), resistance: 1200.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 116, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
129    BlockInfo { id: 117, name: "brewing_stand", display_name: "Brewing Stand", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: true, emit_light: 1, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 379, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
130    BlockInfo { id: 118, name: "cauldron", display_name: "Cauldron", hardness: Some(2.0), resistance: 2.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 380, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
131    BlockInfo { id: 119, name: "end_portal", display_name: "End Portal", hardness: None, resistance: 3600000.0, stack_size: 0, diggable: false, transparent: true, emit_light: 15, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
132    BlockInfo { id: 120, name: "end_portal_frame", display_name: "End Portal", hardness: None, resistance: 3600000.0, stack_size: 64, diggable: false, transparent: true, emit_light: 1, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 120, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
133    BlockInfo { id: 121, name: "end_stone", display_name: "End Stone", hardness: Some(3.0), resistance: 9.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 121, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
134    BlockInfo { id: 122, name: "dragon_egg", display_name: "Dragon Egg", hardness: Some(3.0), resistance: 9.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 122, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
135    BlockInfo { id: 123, name: "redstone_lamp", display_name: "Redstone Lamp", hardness: Some(0.3), resistance: 0.3, stack_size: 64, diggable: true, transparent: true, emit_light: 15, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 123, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
136    BlockInfo { id: 124, name: "lit_redstone_lamp", display_name: "Redstone Lamp", hardness: Some(0.3), resistance: 0.3, stack_size: 64, diggable: true, transparent: true, emit_light: 15, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 124, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
137    BlockInfo { id: 125, name: "double_wooden_slab", display_name: "Double Wooden Slab", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 44, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
138    BlockInfo { id: 126, name: "wooden_slab", display_name: "Wooden Slab", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 44, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
139    BlockInfo { id: 127, name: "cocoa", display_name: "Cocoa", hardness: Some(0.2), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 351, meta: Some(3), min: 1, max: 1 }, Drop { item: 351, meta: Some(3), min: 3, max: 3 }], physics: BlockPhysics::DEFAULT },
140    BlockInfo { id: 128, name: "sandstone_stairs", display_name: "Sandstone Stairs", hardness: Some(0.8), resistance: 0.8, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 128, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
141    BlockInfo { id: 129, name: "emerald_ore", display_name: "Emerald Ore", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 278], drops: &[Drop { item: 388, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
142    BlockInfo { id: 130, name: "ender_chest", display_name: "Ender Chest", hardness: Some(22.5), resistance: 600.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 49, meta: None, min: 8, max: 8 }], physics: BlockPhysics::DEFAULT },
143    BlockInfo { id: 131, name: "tripwire_hook", display_name: "Tripwire Hook", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[Drop { item: 131, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
144    BlockInfo { id: 132, name: "tripwire", display_name: "Tripwire", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[Drop { item: 287, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
145    BlockInfo { id: 133, name: "emerald_block", display_name: "Block of Emerald", hardness: Some(5.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 278], drops: &[Drop { item: 133, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
146    BlockInfo { id: 134, name: "spruce_stairs", display_name: "Spruce Wood Stairs", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 134, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
147    BlockInfo { id: 135, name: "birch_stairs", display_name: "Birch Wood Stairs", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 135, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
148    BlockInfo { id: 136, name: "jungle_stairs", display_name: "Jungle Wood Stairs", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 136, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
149    BlockInfo { id: 137, name: "command_block", display_name: "Command Block", hardness: None, resistance: 3600000.0, stack_size: 64, diggable: false, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
150    BlockInfo { id: 138, name: "beacon", display_name: "Beacon", hardness: Some(3.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 15, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 138, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
151    BlockInfo { id: 139, name: "cobblestone_wall", display_name: "Cobblestone Wall", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 139, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0400) } },
152    BlockInfo { id: 140, name: "flower_pot", display_name: "Flower Pot", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 140, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
153    BlockInfo { id: 141, name: "carrots", display_name: "Carrot", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 141, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
154    BlockInfo { id: 142, name: "potatoes", display_name: "Potato", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 142, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
155    BlockInfo { id: 143, name: "wooden_button", display_name: "Wooden Button", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 143, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
156    BlockInfo { id: 144, name: "skull", display_name: "Mob head", hardness: Some(1.0), resistance: 1.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 144, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
157    BlockInfo { id: 145, name: "anvil", display_name: "Anvil", hardness: Some(5.0), resistance: 1200.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 145, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
158    BlockInfo { id: 146, name: "trapped_chest", display_name: "Trapped Chest", hardness: Some(2.5), resistance: 2.5, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 146, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
159    BlockInfo { id: 147, name: "light_weighted_pressure_plate", display_name: "Weighted Pressure Plate (Light)", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 147, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
160    BlockInfo { id: 148, name: "heavy_weighted_pressure_plate", display_name: "Weighted Pressure Plate (Heavy)", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 148, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
161    BlockInfo { id: 149, name: "unpowered_comparator", display_name: "Redstone Comparator", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 404, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
162    BlockInfo { id: 150, name: "powered_comparator", display_name: "Redstone Comparator (deprecated)", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 404, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
163    BlockInfo { id: 151, name: "daylight_detector", display_name: "Daylight Sensor", hardness: Some(0.2), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 151, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
164    BlockInfo { id: 152, name: "redstone_block", display_name: "Block of Redstone", hardness: Some(5.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 152, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
165    BlockInfo { id: 153, name: "quartz_ore", display_name: "Nether Quartz Ore", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 406, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
166    BlockInfo { id: 154, name: "hopper", display_name: "Hopper", hardness: Some(3.0), resistance: 4.8, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 154, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
167    BlockInfo { id: 155, name: "quartz_block", display_name: "Block of Quartz", hardness: Some(0.8), resistance: 0.8, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 155, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
168    BlockInfo { id: 156, name: "quartz_stairs", display_name: "Quartz Stairs", hardness: Some(0.8), resistance: 0.8, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 156, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
169    BlockInfo { id: 157, name: "activator_rail", display_name: "Activator Rail", hardness: Some(0.7), resistance: 0.7, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Rock), harvest_tools: &[], drops: &[Drop { item: 157, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
170    BlockInfo { id: 158, name: "dropper", display_name: "Dropper", hardness: Some(3.5), resistance: 3.5, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 158, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
171    BlockInfo { id: 159, name: "stained_hardened_clay", display_name: "Stained Clay", hardness: Some(1.25), resistance: 4.2, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 159, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
172    BlockInfo { id: 160, name: "stained_glass_pane", display_name: "Stained Glass Pane", hardness: Some(0.3), resistance: 0.3, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
173    BlockInfo { id: 161, name: "leaves2", display_name: "Leaves (Acacia/Dark Oak)", hardness: Some(0.2), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 6, meta: None, min: 0, max: 1 }, Drop { item: 260, meta: None, min: 0, max: 1 }], physics: BlockPhysics::DEFAULT },
174    BlockInfo { id: 162, name: "log2", display_name: "Wood (Acacia/Dark Oak)", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 162, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
175    BlockInfo { id: 163, name: "acacia_stairs", display_name: "Acacia Wood Stairs", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 163, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
176    BlockInfo { id: 164, name: "dark_oak_stairs", display_name: "Dark Oak Wood Stairs", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 164, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
177    BlockInfo { id: 165, name: "slime", display_name: "Slime Block", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 165, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.8, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0010) } },
178    BlockInfo { id: 166, name: "barrier", display_name: "Barrier", hardness: None, resistance: 0.0, stack_size: 64, diggable: false, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
179    BlockInfo { id: 167, name: "iron_trapdoor", display_name: "Iron Trapdoor", hardness: Some(5.0), resistance: 5.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 167, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x1000) } },
180    BlockInfo { id: 168, name: "prismarine", display_name: "Prismarine", hardness: Some(1.5), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 168, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
181    BlockInfo { id: 169, name: "sea_lantern", display_name: "Sea Lantern", hardness: Some(0.3), resistance: 0.3, stack_size: 64, diggable: true, transparent: true, emit_light: 15, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 410, meta: None, min: 2, max: 3 }], physics: BlockPhysics::DEFAULT },
182    BlockInfo { id: 170, name: "hay_block", display_name: "Hay Bale", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 170, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
183    BlockInfo { id: 171, name: "carpet", display_name: "Carpet", hardness: Some(0.1), resistance: 0.1, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 171, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
184    BlockInfo { id: 172, name: "hardened_clay", display_name: "Hardened Clay", hardness: Some(1.25), resistance: 4.2, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 172, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
185    BlockInfo { id: 173, name: "coal_block", display_name: "Block of Coal", hardness: Some(5.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 173, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
186    BlockInfo { id: 174, name: "packed_ice", display_name: "Packed Ice", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[], drops: &[], physics: BlockPhysics { slipperiness: 0.98, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0000) } },
187    BlockInfo { id: 175, name: "double_plant", display_name: "Large Flowers", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[Drop { item: 175, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
188    BlockInfo { id: 176, name: "standing_banner", display_name: "Standing Banner", hardness: Some(1.0), resistance: 1.0, stack_size: 16, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 176, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
189    BlockInfo { id: 177, name: "wall_banner", display_name: "Wall Banner", hardness: Some(1.0), resistance: 1.0, stack_size: 16, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 177, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
190    BlockInfo { id: 178, name: "daylight_detector_inverted", display_name: "Inverted Daylight Sensor", hardness: Some(0.2), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 178, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
191    BlockInfo { id: 179, name: "red_sandstone", display_name: "Red Sandstone", hardness: Some(0.8), resistance: 0.8, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 179, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
192    BlockInfo { id: 180, name: "red_sandstone_stairs", display_name: "Red Sandstone Stairs", hardness: Some(0.8), resistance: 0.8, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 180, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
193    BlockInfo { id: 181, name: "double_stone_slab2", display_name: "Double Red Sandstone Slab", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 44, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
194    BlockInfo { id: 182, name: "stone_slab2", display_name: "Red Sandstone Slab", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 44, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
195    BlockInfo { id: 183, name: "spruce_fence_gate", display_name: "Spruce Fence Gate", hardness: Some(0.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 183, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0800) } },
196    BlockInfo { id: 184, name: "birch_fence_gate", display_name: "Birch Fence Gate", hardness: Some(0.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 184, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0800) } },
197    BlockInfo { id: 185, name: "jungle_fence_gate", display_name: "Jungle Fence Gate", hardness: Some(0.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 185, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0800) } },
198    BlockInfo { id: 186, name: "dark_oak_fence_gate", display_name: "Dark Oak Fence Gate", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 186, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0800) } },
199    BlockInfo { id: 187, name: "acacia_fence_gate", display_name: "Acacia Fence Gate", hardness: Some(0.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 187, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0800) } },
200    BlockInfo { id: 188, name: "spruce_fence", display_name: "Spruce Fence", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 188, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0200) } },
201    BlockInfo { id: 189, name: "birch_fence", display_name: "Birch Fence", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 189, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0200) } },
202    BlockInfo { id: 190, name: "jungle_fence", display_name: "Jungle Fence", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 190, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0200) } },
203    BlockInfo { id: 191, name: "dark_oak_fence", display_name: "Dark Oak Fence", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 191, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0200) } },
204    BlockInfo { id: 192, name: "acacia_fence", display_name: "Acacia Fence", hardness: Some(2.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 192, meta: None, min: 1, max: 1 }], physics: BlockPhysics { slipperiness: 0.6, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0200) } },
205    BlockInfo { id: 193, name: "spruce_door", display_name: "Spruce Door", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 193, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
206    BlockInfo { id: 194, name: "birch_door", display_name: "Birch Door", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 194, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
207    BlockInfo { id: 195, name: "jungle_door", display_name: "Jungle Door", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 195, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
208    BlockInfo { id: 196, name: "acacia_door", display_name: "Acacia Door", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 196, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
209    BlockInfo { id: 197, name: "dark_oak_door", display_name: "Dark Oak Door", hardness: Some(3.0), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Wood), harvest_tools: &[], drops: &[Drop { item: 197, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
210    BlockInfo { id: 198, name: "end_rod", display_name: "End Rod", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 14, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 198, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
211    BlockInfo { id: 199, name: "chorus_plant", display_name: "Chorus Plant", hardness: Some(0.4), resistance: 0.4, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 432, meta: None, min: 0, max: 1 }], physics: BlockPhysics::DEFAULT },
212    BlockInfo { id: 200, name: "chorus_flower", display_name: "Chorus Flower", hardness: Some(0.4), resistance: 0.4, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 200, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
213    BlockInfo { id: 201, name: "purpur_block", display_name: "Purpur Block", hardness: Some(1.5), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 201, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
214    BlockInfo { id: 202, name: "purpur_pillar", display_name: "Purpur Pillar", hardness: Some(1.5), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 202, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
215    BlockInfo { id: 203, name: "purpur_stairs", display_name: "Purpur Stairs", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 203, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
216    BlockInfo { id: 204, name: "purpur_double_slab", display_name: "Purpur Double Slab", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 44, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
217    BlockInfo { id: 205, name: "purpur_slab", display_name: "Purpur Slab", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 44, meta: Some(0), min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
218    BlockInfo { id: 206, name: "end_bricks", display_name: "End Stone Bricks", hardness: Some(0.8), resistance: 0.8, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 206, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
219    BlockInfo { id: 207, name: "beetroots", display_name: "Beetroot Seeds", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Empty, material: Some(DigMaterial::Plant), harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
220    BlockInfo { id: 208, name: "grass_path", display_name: "Grass Path", hardness: Some(0.6), resistance: 0.65, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
221    BlockInfo { id: 209, name: "end_gateway", display_name: "End Gateway", hardness: None, resistance: 3600000.0, stack_size: 0, diggable: false, transparent: false, emit_light: 15, filter_light: 15, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
222    BlockInfo { id: 210, name: "repeating_command_block", display_name: "Repeating Command Block", hardness: None, resistance: 3600000.0, stack_size: 64, diggable: false, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
223    BlockInfo { id: 211, name: "chain_command_block", display_name: "Chain Command Block", hardness: None, resistance: 3600000.0, stack_size: 64, diggable: false, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
224    BlockInfo { id: 212, name: "frosted_ice", display_name: "Frosted Ice", hardness: Some(0.5), resistance: 0.5, stack_size: 0, diggable: true, transparent: true, emit_light: 0, filter_light: 2, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics { slipperiness: 0.98, speed_factor: 1.0, jump_factor: 1.0, stuck_multiplier: [1.0, 1.0, 1.0], flags: PhysicsFlags(0x0000) } },
225    BlockInfo { id: 213, name: "magma", display_name: "Magma Block", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 213, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
226    BlockInfo { id: 214, name: "nether_wart_block", display_name: "Nether Wart Block", hardness: Some(1.0), resistance: 1.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 214, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
227    BlockInfo { id: 215, name: "red_nether_brick", display_name: "Red Nether Brick", hardness: Some(2.0), resistance: 6.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 215, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
228    BlockInfo { id: 216, name: "bone_block", display_name: "Bone Block", hardness: Some(2.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 216, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
229    BlockInfo { id: 217, name: "structure_void", display_name: "Structure Void", hardness: Some(0.0), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Empty, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
230    BlockInfo { id: 218, name: "observer", display_name: "Observer", hardness: Some(3.5), resistance: 3.0, stack_size: 64, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 218, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
231    BlockInfo { id: 219, name: "white_shulker_box", display_name: "White Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 219, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
232    BlockInfo { id: 220, name: "orange_shulker_box", display_name: "Orange Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 220, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
233    BlockInfo { id: 221, name: "magenta_shulker_box", display_name: "Magenta Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 221, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
234    BlockInfo { id: 222, name: "light_blue_shulker_box", display_name: "Light Blue Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 222, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
235    BlockInfo { id: 223, name: "yellow_shulker_box", display_name: "Yellow Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 223, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
236    BlockInfo { id: 224, name: "lime_shulker_box", display_name: "Lime Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 224, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
237    BlockInfo { id: 225, name: "pink_shulker_box", display_name: "Pink Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 225, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
238    BlockInfo { id: 226, name: "gray_shulker_box", display_name: "Gray Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 226, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
239    BlockInfo { id: 227, name: "light_gray_shulker_box", display_name: "Light Gray Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 227, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
240    BlockInfo { id: 228, name: "cyan_shulker_box", display_name: "Cyan Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 228, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
241    BlockInfo { id: 229, name: "purple_shulker_box", display_name: "Purple Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 229, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
242    BlockInfo { id: 230, name: "blue_shulker_box", display_name: "Blue Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 230, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
243    BlockInfo { id: 231, name: "brown_shulker_box", display_name: "Brown Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 231, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
244    BlockInfo { id: 232, name: "green_shulker_box", display_name: "Green Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 232, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
245    BlockInfo { id: 233, name: "red_shulker_box", display_name: "Red Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 233, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
246    BlockInfo { id: 234, name: "black_shulker_box", display_name: "Black Shulker Box", hardness: Some(2.0), resistance: 2.0, stack_size: 1, diggable: true, transparent: true, emit_light: 0, filter_light: 0, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[Drop { item: 234, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
247    BlockInfo { id: 235, name: "white_glazed_terracotta", display_name: "White Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 235, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
248    BlockInfo { id: 236, name: "orange_glazed_terracotta", display_name: "Orange Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 236, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
249    BlockInfo { id: 237, name: "magenta_glazed_terracotta", display_name: "Magenta Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 237, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
250    BlockInfo { id: 238, name: "light_blue_glazed_terracotta", display_name: "Light Blue Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 238, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
251    BlockInfo { id: 239, name: "yellow_glazed_terracotta", display_name: "Yellow Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 239, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
252    BlockInfo { id: 240, name: "lime_glazed_terracotta", display_name: "Lime Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 240, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
253    BlockInfo { id: 241, name: "pink_glazed_terracotta", display_name: "Pink Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 241, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
254    BlockInfo { id: 242, name: "gray_glazed_terracotta", display_name: "Gray Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 242, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
255    BlockInfo { id: 243, name: "light_gray_glazed_terracotta", display_name: "Light Gray Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 243, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
256    BlockInfo { id: 244, name: "cyan_glazed_terracotta", display_name: "Cyan Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 244, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
257    BlockInfo { id: 245, name: "purple_glazed_terracotta", display_name: "Purple Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 245, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
258    BlockInfo { id: 246, name: "blue_glazed_terracotta", display_name: "Blue Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 246, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
259    BlockInfo { id: 247, name: "brown_glazed_terracotta", display_name: "Brown Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 247, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
260    BlockInfo { id: 248, name: "green_glazed_terracotta", display_name: "Green Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 248, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
261    BlockInfo { id: 249, name: "red_glazed_terracotta", display_name: "Red Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 249, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
262    BlockInfo { id: 250, name: "black_glazed_terracotta", display_name: "Black Glazed Terracotta", hardness: Some(1.4), resistance: 0.0, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 250, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
263    BlockInfo { id: 251, name: "concrete", display_name: "Concrete", hardness: Some(1.8), resistance: 1.8, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Rock), harvest_tools: &[257, 270, 274, 278, 285], drops: &[Drop { item: 251, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
264    BlockInfo { id: 252, name: "concrete_powder", display_name: "Concrete Powder", hardness: Some(0.5), resistance: 0.5, stack_size: 64, diggable: true, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: Some(DigMaterial::Dirt), harvest_tools: &[], drops: &[Drop { item: 252, meta: None, min: 1, max: 1 }], physics: BlockPhysics::DEFAULT },
265    BlockInfo { id: 255, name: "structure_block", display_name: "Structure Block", hardness: None, resistance: 3600000.0, stack_size: 64, diggable: false, transparent: false, emit_light: 0, filter_light: 15, bounding_box: BoundingBox::Block, material: None, harvest_tools: &[], drops: &[], physics: BlockPhysics::DEFAULT },
266];
267
268pub(crate) static BLOCK_NAMES: [(&str, u8); 254] = [
269    ("acacia_door", 196),
270    ("acacia_fence", 192),
271    ("acacia_fence_gate", 187),
272    ("acacia_stairs", 163),
273    ("activator_rail", 157),
274    ("air", 0),
275    ("anvil", 145),
276    ("barrier", 166),
277    ("beacon", 138),
278    ("bed", 26),
279    ("bedrock", 7),
280    ("beetroots", 207),
281    ("birch_door", 194),
282    ("birch_fence", 189),
283    ("birch_fence_gate", 184),
284    ("birch_stairs", 135),
285    ("black_glazed_terracotta", 250),
286    ("black_shulker_box", 234),
287    ("blue_glazed_terracotta", 246),
288    ("blue_shulker_box", 230),
289    ("bone_block", 216),
290    ("bookshelf", 47),
291    ("brewing_stand", 117),
292    ("brick_block", 45),
293    ("brick_stairs", 108),
294    ("brown_glazed_terracotta", 247),
295    ("brown_mushroom", 39),
296    ("brown_mushroom_block", 99),
297    ("brown_shulker_box", 231),
298    ("cactus", 81),
299    ("cake", 92),
300    ("carpet", 171),
301    ("carrots", 141),
302    ("cauldron", 118),
303    ("chain_command_block", 211),
304    ("chest", 54),
305    ("chorus_flower", 200),
306    ("chorus_plant", 199),
307    ("clay", 82),
308    ("coal_block", 173),
309    ("coal_ore", 16),
310    ("cobblestone", 4),
311    ("cobblestone_wall", 139),
312    ("cocoa", 127),
313    ("command_block", 137),
314    ("concrete", 251),
315    ("concrete_powder", 252),
316    ("crafting_table", 58),
317    ("cyan_glazed_terracotta", 244),
318    ("cyan_shulker_box", 228),
319    ("dark_oak_door", 197),
320    ("dark_oak_fence", 191),
321    ("dark_oak_fence_gate", 186),
322    ("dark_oak_stairs", 164),
323    ("daylight_detector", 151),
324    ("daylight_detector_inverted", 178),
325    ("deadbush", 32),
326    ("detector_rail", 28),
327    ("diamond_block", 57),
328    ("diamond_ore", 56),
329    ("dirt", 3),
330    ("dispenser", 23),
331    ("double_plant", 175),
332    ("double_stone_slab", 43),
333    ("double_stone_slab2", 181),
334    ("double_wooden_slab", 125),
335    ("dragon_egg", 122),
336    ("dropper", 158),
337    ("emerald_block", 133),
338    ("emerald_ore", 129),
339    ("enchanting_table", 116),
340    ("end_bricks", 206),
341    ("end_gateway", 209),
342    ("end_portal", 119),
343    ("end_portal_frame", 120),
344    ("end_rod", 198),
345    ("end_stone", 121),
346    ("ender_chest", 130),
347    ("farmland", 60),
348    ("fence", 85),
349    ("fence_gate", 107),
350    ("fire", 51),
351    ("flower_pot", 140),
352    ("flowing_lava", 10),
353    ("flowing_water", 8),
354    ("frosted_ice", 212),
355    ("furnace", 61),
356    ("glass", 20),
357    ("glass_pane", 102),
358    ("glowstone", 89),
359    ("gold_block", 41),
360    ("gold_ore", 14),
361    ("golden_rail", 27),
362    ("grass", 2),
363    ("grass_path", 208),
364    ("gravel", 13),
365    ("gray_glazed_terracotta", 242),
366    ("gray_shulker_box", 226),
367    ("green_glazed_terracotta", 248),
368    ("green_shulker_box", 232),
369    ("hardened_clay", 172),
370    ("hay_block", 170),
371    ("heavy_weighted_pressure_plate", 148),
372    ("hopper", 154),
373    ("ice", 79),
374    ("iron_bars", 101),
375    ("iron_block", 42),
376    ("iron_door", 71),
377    ("iron_ore", 15),
378    ("iron_trapdoor", 167),
379    ("jukebox", 84),
380    ("jungle_door", 195),
381    ("jungle_fence", 190),
382    ("jungle_fence_gate", 185),
383    ("jungle_stairs", 136),
384    ("ladder", 65),
385    ("lapis_block", 22),
386    ("lapis_ore", 21),
387    ("lava", 11),
388    ("leaves", 18),
389    ("leaves2", 161),
390    ("lever", 69),
391    ("light_blue_glazed_terracotta", 238),
392    ("light_blue_shulker_box", 222),
393    ("light_gray_glazed_terracotta", 243),
394    ("light_gray_shulker_box", 227),
395    ("light_weighted_pressure_plate", 147),
396    ("lime_glazed_terracotta", 240),
397    ("lime_shulker_box", 224),
398    ("lit_furnace", 62),
399    ("lit_pumpkin", 91),
400    ("lit_redstone_lamp", 124),
401    ("lit_redstone_ore", 74),
402    ("log", 17),
403    ("log2", 162),
404    ("magenta_glazed_terracotta", 237),
405    ("magenta_shulker_box", 221),
406    ("magma", 213),
407    ("melon_block", 103),
408    ("melon_stem", 105),
409    ("mob_spawner", 52),
410    ("monster_egg", 97),
411    ("mossy_cobblestone", 48),
412    ("mycelium", 110),
413    ("nether_brick", 112),
414    ("nether_brick_fence", 113),
415    ("nether_brick_stairs", 114),
416    ("nether_wart", 115),
417    ("nether_wart_block", 214),
418    ("netherrack", 87),
419    ("noteblock", 25),
420    ("oak_stairs", 53),
421    ("observer", 218),
422    ("obsidian", 49),
423    ("orange_glazed_terracotta", 236),
424    ("orange_shulker_box", 220),
425    ("packed_ice", 174),
426    ("pink_glazed_terracotta", 241),
427    ("pink_shulker_box", 225),
428    ("piston", 33),
429    ("piston_extension", 36),
430    ("piston_head", 34),
431    ("planks", 5),
432    ("portal", 90),
433    ("potatoes", 142),
434    ("powered_comparator", 150),
435    ("powered_repeater", 94),
436    ("prismarine", 168),
437    ("pumpkin", 86),
438    ("pumpkin_stem", 104),
439    ("purple_glazed_terracotta", 245),
440    ("purple_shulker_box", 229),
441    ("purpur_block", 201),
442    ("purpur_double_slab", 204),
443    ("purpur_pillar", 202),
444    ("purpur_slab", 205),
445    ("purpur_stairs", 203),
446    ("quartz_block", 155),
447    ("quartz_ore", 153),
448    ("quartz_stairs", 156),
449    ("rail", 66),
450    ("red_flower", 38),
451    ("red_glazed_terracotta", 249),
452    ("red_mushroom", 40),
453    ("red_mushroom_block", 100),
454    ("red_nether_brick", 215),
455    ("red_sandstone", 179),
456    ("red_sandstone_stairs", 180),
457    ("red_shulker_box", 233),
458    ("redstone_block", 152),
459    ("redstone_lamp", 123),
460    ("redstone_ore", 73),
461    ("redstone_torch", 76),
462    ("redstone_wire", 55),
463    ("reeds", 83),
464    ("repeating_command_block", 210),
465    ("sand", 12),
466    ("sandstone", 24),
467    ("sandstone_stairs", 128),
468    ("sapling", 6),
469    ("sea_lantern", 169),
470    ("skull", 144),
471    ("slime", 165),
472    ("snow", 80),
473    ("snow_layer", 78),
474    ("soul_sand", 88),
475    ("sponge", 19),
476    ("spruce_door", 193),
477    ("spruce_fence", 188),
478    ("spruce_fence_gate", 183),
479    ("spruce_stairs", 134),
480    ("stained_glass", 95),
481    ("stained_glass_pane", 160),
482    ("stained_hardened_clay", 159),
483    ("standing_banner", 176),
484    ("standing_sign", 63),
485    ("sticky_piston", 29),
486    ("stone", 1),
487    ("stone_brick_stairs", 109),
488    ("stone_button", 77),
489    ("stone_pressure_plate", 70),
490    ("stone_slab", 44),
491    ("stone_slab2", 182),
492    ("stone_stairs", 67),
493    ("stonebrick", 98),
494    ("structure_block", 255),
495    ("structure_void", 217),
496    ("tallgrass", 31),
497    ("tnt", 46),
498    ("torch", 50),
499    ("trapdoor", 96),
500    ("trapped_chest", 146),
501    ("tripwire", 132),
502    ("tripwire_hook", 131),
503    ("unlit_redstone_torch", 75),
504    ("unpowered_comparator", 149),
505    ("unpowered_repeater", 93),
506    ("vine", 106),
507    ("wall_banner", 177),
508    ("wall_sign", 68),
509    ("water", 9),
510    ("waterlily", 111),
511    ("web", 30),
512    ("wheat", 59),
513    ("white_glazed_terracotta", 235),
514    ("white_shulker_box", 219),
515    ("wooden_button", 143),
516    ("wooden_door", 64),
517    ("wooden_pressure_plate", 72),
518    ("wooden_slab", 126),
519    ("wool", 35),
520    ("yellow_flower", 37),
521    ("yellow_glazed_terracotta", 239),
522    ("yellow_shulker_box", 223),
523];
524
525/// Block constants.
526impl crate::v1_12::Block {
527    /// `air` (Air).
528    pub const AIR: Self = Self(0);
529    /// `stone` (Stone).
530    pub const STONE: Self = Self(1);
531    /// `grass` (Grass Block).
532    pub const GRASS: Self = Self(2);
533    /// `dirt` (Dirt).
534    pub const DIRT: Self = Self(3);
535    /// `cobblestone` (Cobblestone).
536    pub const COBBLESTONE: Self = Self(4);
537    /// `planks` (Wood Planks).
538    pub const PLANKS: Self = Self(5);
539    /// `sapling` (Sapling).
540    pub const SAPLING: Self = Self(6);
541    /// `bedrock` (Bedrock).
542    pub const BEDROCK: Self = Self(7);
543    /// `flowing_water` (Water).
544    pub const FLOWING_WATER: Self = Self(8);
545    /// `water` (Stationary Water).
546    pub const WATER: Self = Self(9);
547    /// `flowing_lava` (Lava).
548    pub const FLOWING_LAVA: Self = Self(10);
549    /// `lava` (Stationary Lava).
550    pub const LAVA: Self = Self(11);
551    /// `sand` (Sand).
552    pub const SAND: Self = Self(12);
553    /// `gravel` (Gravel).
554    pub const GRAVEL: Self = Self(13);
555    /// `gold_ore` (Gold Ore).
556    pub const GOLD_ORE: Self = Self(14);
557    /// `iron_ore` (Iron Ore).
558    pub const IRON_ORE: Self = Self(15);
559    /// `coal_ore` (Coal Ore).
560    pub const COAL_ORE: Self = Self(16);
561    /// `log` (Wood).
562    pub const LOG: Self = Self(17);
563    /// `leaves` (Leaves).
564    pub const LEAVES: Self = Self(18);
565    /// `sponge` (Sponge).
566    pub const SPONGE: Self = Self(19);
567    /// `glass` (Glass).
568    pub const GLASS: Self = Self(20);
569    /// `lapis_ore` (Lapis Lazuli Ore).
570    pub const LAPIS_ORE: Self = Self(21);
571    /// `lapis_block` (Lapis Lazuli Block).
572    pub const LAPIS_BLOCK: Self = Self(22);
573    /// `dispenser` (Dispenser).
574    pub const DISPENSER: Self = Self(23);
575    /// `sandstone` (Sandstone).
576    pub const SANDSTONE: Self = Self(24);
577    /// `noteblock` (Note Block).
578    pub const NOTEBLOCK: Self = Self(25);
579    /// `bed` (Bed).
580    pub const BED: Self = Self(26);
581    /// `golden_rail` (Powered Rail).
582    pub const GOLDEN_RAIL: Self = Self(27);
583    /// `detector_rail` (Detector Rail).
584    pub const DETECTOR_RAIL: Self = Self(28);
585    /// `sticky_piston` (Sticky Piston).
586    pub const STICKY_PISTON: Self = Self(29);
587    /// `web` (Cobweb).
588    pub const WEB: Self = Self(30);
589    /// `tallgrass` (Grass).
590    pub const TALLGRASS: Self = Self(31);
591    /// `deadbush` (Dead Bush).
592    pub const DEADBUSH: Self = Self(32);
593    /// `piston` (Piston).
594    pub const PISTON: Self = Self(33);
595    /// `piston_head` (Piston Head).
596    pub const PISTON_HEAD: Self = Self(34);
597    /// `wool` (Wool).
598    pub const WOOL: Self = Self(35);
599    /// `piston_extension` (Block moved by Piston).
600    pub const PISTON_EXTENSION: Self = Self(36);
601    /// `yellow_flower` (Dandelion).
602    pub const YELLOW_FLOWER: Self = Self(37);
603    /// `red_flower` (Poppy).
604    pub const RED_FLOWER: Self = Self(38);
605    /// `brown_mushroom` (Mushroom).
606    pub const BROWN_MUSHROOM: Self = Self(39);
607    /// `red_mushroom` (Mushroom).
608    pub const RED_MUSHROOM: Self = Self(40);
609    /// `gold_block` (Block of Gold).
610    pub const GOLD_BLOCK: Self = Self(41);
611    /// `iron_block` (Block of Iron).
612    pub const IRON_BLOCK: Self = Self(42);
613    /// `double_stone_slab` (Double Stone Slab).
614    pub const DOUBLE_STONE_SLAB: Self = Self(43);
615    /// `stone_slab` (Stone Slab).
616    pub const STONE_SLAB: Self = Self(44);
617    /// `brick_block` (Bricks).
618    pub const BRICK_BLOCK: Self = Self(45);
619    /// `tnt` (TNT).
620    pub const TNT: Self = Self(46);
621    /// `bookshelf` (Bookshelf).
622    pub const BOOKSHELF: Self = Self(47);
623    /// `mossy_cobblestone` (Moss Stone).
624    pub const MOSSY_COBBLESTONE: Self = Self(48);
625    /// `obsidian` (Obsidian).
626    pub const OBSIDIAN: Self = Self(49);
627    /// `torch` (Torch).
628    pub const TORCH: Self = Self(50);
629    /// `fire` (Fire).
630    pub const FIRE: Self = Self(51);
631    /// `mob_spawner` (Monster Spawner).
632    pub const MOB_SPAWNER: Self = Self(52);
633    /// `oak_stairs` (Oak Wood Stairs).
634    pub const OAK_STAIRS: Self = Self(53);
635    /// `chest` (Chest).
636    pub const CHEST: Self = Self(54);
637    /// `redstone_wire` (Redstone Wire).
638    pub const REDSTONE_WIRE: Self = Self(55);
639    /// `diamond_ore` (Diamond Ore).
640    pub const DIAMOND_ORE: Self = Self(56);
641    /// `diamond_block` (Block of Diamond).
642    pub const DIAMOND_BLOCK: Self = Self(57);
643    /// `crafting_table` (Crafting Table).
644    pub const CRAFTING_TABLE: Self = Self(58);
645    /// `wheat` (Wheat).
646    pub const WHEAT: Self = Self(59);
647    /// `farmland` (Farmland).
648    pub const FARMLAND: Self = Self(60);
649    /// `furnace` (Furnace).
650    pub const FURNACE: Self = Self(61);
651    /// `lit_furnace` (Burning Furnace).
652    pub const LIT_FURNACE: Self = Self(62);
653    /// `standing_sign` (Standing Sign).
654    pub const STANDING_SIGN: Self = Self(63);
655    /// `wooden_door` (Oak Door).
656    pub const WOODEN_DOOR: Self = Self(64);
657    /// `ladder` (Ladder).
658    pub const LADDER: Self = Self(65);
659    /// `rail` (Rail).
660    pub const RAIL: Self = Self(66);
661    /// `stone_stairs` (Cobblestone Stairs).
662    pub const STONE_STAIRS: Self = Self(67);
663    /// `wall_sign` (Wall Sign).
664    pub const WALL_SIGN: Self = Self(68);
665    /// `lever` (Lever).
666    pub const LEVER: Self = Self(69);
667    /// `stone_pressure_plate` (Stone Pressure Plate).
668    pub const STONE_PRESSURE_PLATE: Self = Self(70);
669    /// `iron_door` (Iron Door).
670    pub const IRON_DOOR: Self = Self(71);
671    /// `wooden_pressure_plate` (Wooden Pressure Plate).
672    pub const WOODEN_PRESSURE_PLATE: Self = Self(72);
673    /// `redstone_ore` (Redstone Ore).
674    pub const REDSTONE_ORE: Self = Self(73);
675    /// `lit_redstone_ore` (Glowing Redstone Ore).
676    pub const LIT_REDSTONE_ORE: Self = Self(74);
677    /// `unlit_redstone_torch` (Redstone Torch (inactive)).
678    pub const UNLIT_REDSTONE_TORCH: Self = Self(75);
679    /// `redstone_torch` (Redstone Torch (active)).
680    pub const REDSTONE_TORCH: Self = Self(76);
681    /// `stone_button` (Stone Button).
682    pub const STONE_BUTTON: Self = Self(77);
683    /// `snow_layer` (Snow).
684    pub const SNOW_LAYER: Self = Self(78);
685    /// `ice` (Ice).
686    pub const ICE: Self = Self(79);
687    /// `snow` (Snow).
688    pub const SNOW: Self = Self(80);
689    /// `cactus` (Cactus).
690    pub const CACTUS: Self = Self(81);
691    /// `clay` (Clay).
692    pub const CLAY: Self = Self(82);
693    /// `reeds` (Sugar Cane).
694    pub const REEDS: Self = Self(83);
695    /// `jukebox` (Jukebox).
696    pub const JUKEBOX: Self = Self(84);
697    /// `fence` (Oak Fence).
698    pub const FENCE: Self = Self(85);
699    /// `pumpkin` (Pumpkin).
700    pub const PUMPKIN: Self = Self(86);
701    /// `netherrack` (Netherrack).
702    pub const NETHERRACK: Self = Self(87);
703    /// `soul_sand` (Soul Sand).
704    pub const SOUL_SAND: Self = Self(88);
705    /// `glowstone` (Glowstone).
706    pub const GLOWSTONE: Self = Self(89);
707    /// `portal` (Nether Portal).
708    pub const PORTAL: Self = Self(90);
709    /// `lit_pumpkin` (Jack o'Lantern).
710    pub const LIT_PUMPKIN: Self = Self(91);
711    /// `cake` (Cake).
712    pub const CAKE: Self = Self(92);
713    /// `unpowered_repeater` (Redstone Repeater).
714    pub const UNPOWERED_REPEATER: Self = Self(93);
715    /// `powered_repeater` (Redstone Repeater).
716    pub const POWERED_REPEATER: Self = Self(94);
717    /// `stained_glass` (Stained Glass).
718    pub const STAINED_GLASS: Self = Self(95);
719    /// `trapdoor` (Wooden Trapdoor).
720    pub const TRAPDOOR: Self = Self(96);
721    /// `monster_egg` (Monster Egg).
722    pub const MONSTER_EGG: Self = Self(97);
723    /// `stonebrick` (Stone Bricks).
724    pub const STONEBRICK: Self = Self(98);
725    /// `brown_mushroom_block` (Mushroom).
726    pub const BROWN_MUSHROOM_BLOCK: Self = Self(99);
727    /// `red_mushroom_block` (Mushroom).
728    pub const RED_MUSHROOM_BLOCK: Self = Self(100);
729    /// `iron_bars` (Iron Bars).
730    pub const IRON_BARS: Self = Self(101);
731    /// `glass_pane` (Glass Pane).
732    pub const GLASS_PANE: Self = Self(102);
733    /// `melon_block` (Melon).
734    pub const MELON_BLOCK: Self = Self(103);
735    /// `pumpkin_stem` (Pumpkin Stem).
736    pub const PUMPKIN_STEM: Self = Self(104);
737    /// `melon_stem` (Melon Stem).
738    pub const MELON_STEM: Self = Self(105);
739    /// `vine` (Vines).
740    pub const VINE: Self = Self(106);
741    /// `fence_gate` (Fence Gate).
742    pub const FENCE_GATE: Self = Self(107);
743    /// `brick_stairs` (Brick Stairs).
744    pub const BRICK_STAIRS: Self = Self(108);
745    /// `stone_brick_stairs` (Stone Brick Stairs).
746    pub const STONE_BRICK_STAIRS: Self = Self(109);
747    /// `mycelium` (Mycelium).
748    pub const MYCELIUM: Self = Self(110);
749    /// `waterlily` (Lily Pad).
750    pub const WATERLILY: Self = Self(111);
751    /// `nether_brick` (Nether Brick).
752    pub const NETHER_BRICK: Self = Self(112);
753    /// `nether_brick_fence` (Nether Brick Fence).
754    pub const NETHER_BRICK_FENCE: Self = Self(113);
755    /// `nether_brick_stairs` (Nether Brick Stairs).
756    pub const NETHER_BRICK_STAIRS: Self = Self(114);
757    /// `nether_wart` (Nether Wart).
758    pub const NETHER_WART: Self = Self(115);
759    /// `enchanting_table` (Enchantment Table).
760    pub const ENCHANTING_TABLE: Self = Self(116);
761    /// `brewing_stand` (Brewing Stand).
762    pub const BREWING_STAND: Self = Self(117);
763    /// `cauldron` (Cauldron).
764    pub const CAULDRON: Self = Self(118);
765    /// `end_portal` (End Portal).
766    pub const END_PORTAL: Self = Self(119);
767    /// `end_portal_frame` (End Portal).
768    pub const END_PORTAL_FRAME: Self = Self(120);
769    /// `end_stone` (End Stone).
770    pub const END_STONE: Self = Self(121);
771    /// `dragon_egg` (Dragon Egg).
772    pub const DRAGON_EGG: Self = Self(122);
773    /// `redstone_lamp` (Redstone Lamp).
774    pub const REDSTONE_LAMP: Self = Self(123);
775    /// `lit_redstone_lamp` (Redstone Lamp).
776    pub const LIT_REDSTONE_LAMP: Self = Self(124);
777    /// `double_wooden_slab` (Double Wooden Slab).
778    pub const DOUBLE_WOODEN_SLAB: Self = Self(125);
779    /// `wooden_slab` (Wooden Slab).
780    pub const WOODEN_SLAB: Self = Self(126);
781    /// `cocoa` (Cocoa).
782    pub const COCOA: Self = Self(127);
783    /// `sandstone_stairs` (Sandstone Stairs).
784    pub const SANDSTONE_STAIRS: Self = Self(128);
785    /// `emerald_ore` (Emerald Ore).
786    pub const EMERALD_ORE: Self = Self(129);
787    /// `ender_chest` (Ender Chest).
788    pub const ENDER_CHEST: Self = Self(130);
789    /// `tripwire_hook` (Tripwire Hook).
790    pub const TRIPWIRE_HOOK: Self = Self(131);
791    /// `tripwire` (Tripwire).
792    pub const TRIPWIRE: Self = Self(132);
793    /// `emerald_block` (Block of Emerald).
794    pub const EMERALD_BLOCK: Self = Self(133);
795    /// `spruce_stairs` (Spruce Wood Stairs).
796    pub const SPRUCE_STAIRS: Self = Self(134);
797    /// `birch_stairs` (Birch Wood Stairs).
798    pub const BIRCH_STAIRS: Self = Self(135);
799    /// `jungle_stairs` (Jungle Wood Stairs).
800    pub const JUNGLE_STAIRS: Self = Self(136);
801    /// `command_block` (Command Block).
802    pub const COMMAND_BLOCK: Self = Self(137);
803    /// `beacon` (Beacon).
804    pub const BEACON: Self = Self(138);
805    /// `cobblestone_wall` (Cobblestone Wall).
806    pub const COBBLESTONE_WALL: Self = Self(139);
807    /// `flower_pot` (Flower Pot).
808    pub const FLOWER_POT: Self = Self(140);
809    /// `carrots` (Carrot).
810    pub const CARROTS: Self = Self(141);
811    /// `potatoes` (Potato).
812    pub const POTATOES: Self = Self(142);
813    /// `wooden_button` (Wooden Button).
814    pub const WOODEN_BUTTON: Self = Self(143);
815    /// `skull` (Mob head).
816    pub const SKULL: Self = Self(144);
817    /// `anvil` (Anvil).
818    pub const ANVIL: Self = Self(145);
819    /// `trapped_chest` (Trapped Chest).
820    pub const TRAPPED_CHEST: Self = Self(146);
821    /// `light_weighted_pressure_plate` (Weighted Pressure Plate (Light)).
822    pub const LIGHT_WEIGHTED_PRESSURE_PLATE: Self = Self(147);
823    /// `heavy_weighted_pressure_plate` (Weighted Pressure Plate (Heavy)).
824    pub const HEAVY_WEIGHTED_PRESSURE_PLATE: Self = Self(148);
825    /// `unpowered_comparator` (Redstone Comparator).
826    pub const UNPOWERED_COMPARATOR: Self = Self(149);
827    /// `powered_comparator` (Redstone Comparator (deprecated)).
828    pub const POWERED_COMPARATOR: Self = Self(150);
829    /// `daylight_detector` (Daylight Sensor).
830    pub const DAYLIGHT_DETECTOR: Self = Self(151);
831    /// `redstone_block` (Block of Redstone).
832    pub const REDSTONE_BLOCK: Self = Self(152);
833    /// `quartz_ore` (Nether Quartz Ore).
834    pub const QUARTZ_ORE: Self = Self(153);
835    /// `hopper` (Hopper).
836    pub const HOPPER: Self = Self(154);
837    /// `quartz_block` (Block of Quartz).
838    pub const QUARTZ_BLOCK: Self = Self(155);
839    /// `quartz_stairs` (Quartz Stairs).
840    pub const QUARTZ_STAIRS: Self = Self(156);
841    /// `activator_rail` (Activator Rail).
842    pub const ACTIVATOR_RAIL: Self = Self(157);
843    /// `dropper` (Dropper).
844    pub const DROPPER: Self = Self(158);
845    /// `stained_hardened_clay` (Stained Clay).
846    pub const STAINED_HARDENED_CLAY: Self = Self(159);
847    /// `stained_glass_pane` (Stained Glass Pane).
848    pub const STAINED_GLASS_PANE: Self = Self(160);
849    /// `leaves2` (Leaves (Acacia/Dark Oak)).
850    pub const LEAVES2: Self = Self(161);
851    /// `log2` (Wood (Acacia/Dark Oak)).
852    pub const LOG2: Self = Self(162);
853    /// `acacia_stairs` (Acacia Wood Stairs).
854    pub const ACACIA_STAIRS: Self = Self(163);
855    /// `dark_oak_stairs` (Dark Oak Wood Stairs).
856    pub const DARK_OAK_STAIRS: Self = Self(164);
857    /// `slime` (Slime Block).
858    pub const SLIME: Self = Self(165);
859    /// `barrier` (Barrier).
860    pub const BARRIER: Self = Self(166);
861    /// `iron_trapdoor` (Iron Trapdoor).
862    pub const IRON_TRAPDOOR: Self = Self(167);
863    /// `prismarine` (Prismarine).
864    pub const PRISMARINE: Self = Self(168);
865    /// `sea_lantern` (Sea Lantern).
866    pub const SEA_LANTERN: Self = Self(169);
867    /// `hay_block` (Hay Bale).
868    pub const HAY_BLOCK: Self = Self(170);
869    /// `carpet` (Carpet).
870    pub const CARPET: Self = Self(171);
871    /// `hardened_clay` (Hardened Clay).
872    pub const HARDENED_CLAY: Self = Self(172);
873    /// `coal_block` (Block of Coal).
874    pub const COAL_BLOCK: Self = Self(173);
875    /// `packed_ice` (Packed Ice).
876    pub const PACKED_ICE: Self = Self(174);
877    /// `double_plant` (Large Flowers).
878    pub const DOUBLE_PLANT: Self = Self(175);
879    /// `standing_banner` (Standing Banner).
880    pub const STANDING_BANNER: Self = Self(176);
881    /// `wall_banner` (Wall Banner).
882    pub const WALL_BANNER: Self = Self(177);
883    /// `daylight_detector_inverted` (Inverted Daylight Sensor).
884    pub const DAYLIGHT_DETECTOR_INVERTED: Self = Self(178);
885    /// `red_sandstone` (Red Sandstone).
886    pub const RED_SANDSTONE: Self = Self(179);
887    /// `red_sandstone_stairs` (Red Sandstone Stairs).
888    pub const RED_SANDSTONE_STAIRS: Self = Self(180);
889    /// `double_stone_slab2` (Double Red Sandstone Slab).
890    pub const DOUBLE_STONE_SLAB2: Self = Self(181);
891    /// `stone_slab2` (Red Sandstone Slab).
892    pub const STONE_SLAB2: Self = Self(182);
893    /// `spruce_fence_gate` (Spruce Fence Gate).
894    pub const SPRUCE_FENCE_GATE: Self = Self(183);
895    /// `birch_fence_gate` (Birch Fence Gate).
896    pub const BIRCH_FENCE_GATE: Self = Self(184);
897    /// `jungle_fence_gate` (Jungle Fence Gate).
898    pub const JUNGLE_FENCE_GATE: Self = Self(185);
899    /// `dark_oak_fence_gate` (Dark Oak Fence Gate).
900    pub const DARK_OAK_FENCE_GATE: Self = Self(186);
901    /// `acacia_fence_gate` (Acacia Fence Gate).
902    pub const ACACIA_FENCE_GATE: Self = Self(187);
903    /// `spruce_fence` (Spruce Fence).
904    pub const SPRUCE_FENCE: Self = Self(188);
905    /// `birch_fence` (Birch Fence).
906    pub const BIRCH_FENCE: Self = Self(189);
907    /// `jungle_fence` (Jungle Fence).
908    pub const JUNGLE_FENCE: Self = Self(190);
909    /// `dark_oak_fence` (Dark Oak Fence).
910    pub const DARK_OAK_FENCE: Self = Self(191);
911    /// `acacia_fence` (Acacia Fence).
912    pub const ACACIA_FENCE: Self = Self(192);
913    /// `spruce_door` (Spruce Door).
914    pub const SPRUCE_DOOR: Self = Self(193);
915    /// `birch_door` (Birch Door).
916    pub const BIRCH_DOOR: Self = Self(194);
917    /// `jungle_door` (Jungle Door).
918    pub const JUNGLE_DOOR: Self = Self(195);
919    /// `acacia_door` (Acacia Door).
920    pub const ACACIA_DOOR: Self = Self(196);
921    /// `dark_oak_door` (Dark Oak Door).
922    pub const DARK_OAK_DOOR: Self = Self(197);
923    /// `end_rod` (End Rod).
924    pub const END_ROD: Self = Self(198);
925    /// `chorus_plant` (Chorus Plant).
926    pub const CHORUS_PLANT: Self = Self(199);
927    /// `chorus_flower` (Chorus Flower).
928    pub const CHORUS_FLOWER: Self = Self(200);
929    /// `purpur_block` (Purpur Block).
930    pub const PURPUR_BLOCK: Self = Self(201);
931    /// `purpur_pillar` (Purpur Pillar).
932    pub const PURPUR_PILLAR: Self = Self(202);
933    /// `purpur_stairs` (Purpur Stairs).
934    pub const PURPUR_STAIRS: Self = Self(203);
935    /// `purpur_double_slab` (Purpur Double Slab).
936    pub const PURPUR_DOUBLE_SLAB: Self = Self(204);
937    /// `purpur_slab` (Purpur Slab).
938    pub const PURPUR_SLAB: Self = Self(205);
939    /// `end_bricks` (End Stone Bricks).
940    pub const END_BRICKS: Self = Self(206);
941    /// `beetroots` (Beetroot Seeds).
942    pub const BEETROOTS: Self = Self(207);
943    /// `grass_path` (Grass Path).
944    pub const GRASS_PATH: Self = Self(208);
945    /// `end_gateway` (End Gateway).
946    pub const END_GATEWAY: Self = Self(209);
947    /// `repeating_command_block` (Repeating Command Block).
948    pub const REPEATING_COMMAND_BLOCK: Self = Self(210);
949    /// `chain_command_block` (Chain Command Block).
950    pub const CHAIN_COMMAND_BLOCK: Self = Self(211);
951    /// `frosted_ice` (Frosted Ice).
952    pub const FROSTED_ICE: Self = Self(212);
953    /// `magma` (Magma Block).
954    pub const MAGMA: Self = Self(213);
955    /// `nether_wart_block` (Nether Wart Block).
956    pub const NETHER_WART_BLOCK: Self = Self(214);
957    /// `red_nether_brick` (Red Nether Brick).
958    pub const RED_NETHER_BRICK: Self = Self(215);
959    /// `bone_block` (Bone Block).
960    pub const BONE_BLOCK: Self = Self(216);
961    /// `structure_void` (Structure Void).
962    pub const STRUCTURE_VOID: Self = Self(217);
963    /// `observer` (Observer).
964    pub const OBSERVER: Self = Self(218);
965    /// `white_shulker_box` (White Shulker Box).
966    pub const WHITE_SHULKER_BOX: Self = Self(219);
967    /// `orange_shulker_box` (Orange Shulker Box).
968    pub const ORANGE_SHULKER_BOX: Self = Self(220);
969    /// `magenta_shulker_box` (Magenta Shulker Box).
970    pub const MAGENTA_SHULKER_BOX: Self = Self(221);
971    /// `light_blue_shulker_box` (Light Blue Shulker Box).
972    pub const LIGHT_BLUE_SHULKER_BOX: Self = Self(222);
973    /// `yellow_shulker_box` (Yellow Shulker Box).
974    pub const YELLOW_SHULKER_BOX: Self = Self(223);
975    /// `lime_shulker_box` (Lime Shulker Box).
976    pub const LIME_SHULKER_BOX: Self = Self(224);
977    /// `pink_shulker_box` (Pink Shulker Box).
978    pub const PINK_SHULKER_BOX: Self = Self(225);
979    /// `gray_shulker_box` (Gray Shulker Box).
980    pub const GRAY_SHULKER_BOX: Self = Self(226);
981    /// `light_gray_shulker_box` (Light Gray Shulker Box).
982    pub const LIGHT_GRAY_SHULKER_BOX: Self = Self(227);
983    /// `cyan_shulker_box` (Cyan Shulker Box).
984    pub const CYAN_SHULKER_BOX: Self = Self(228);
985    /// `purple_shulker_box` (Purple Shulker Box).
986    pub const PURPLE_SHULKER_BOX: Self = Self(229);
987    /// `blue_shulker_box` (Blue Shulker Box).
988    pub const BLUE_SHULKER_BOX: Self = Self(230);
989    /// `brown_shulker_box` (Brown Shulker Box).
990    pub const BROWN_SHULKER_BOX: Self = Self(231);
991    /// `green_shulker_box` (Green Shulker Box).
992    pub const GREEN_SHULKER_BOX: Self = Self(232);
993    /// `red_shulker_box` (Red Shulker Box).
994    pub const RED_SHULKER_BOX: Self = Self(233);
995    /// `black_shulker_box` (Black Shulker Box).
996    pub const BLACK_SHULKER_BOX: Self = Self(234);
997    /// `white_glazed_terracotta` (White Glazed Terracotta).
998    pub const WHITE_GLAZED_TERRACOTTA: Self = Self(235);
999    /// `orange_glazed_terracotta` (Orange Glazed Terracotta).
1000    pub const ORANGE_GLAZED_TERRACOTTA: Self = Self(236);
1001    /// `magenta_glazed_terracotta` (Magenta Glazed Terracotta).
1002    pub const MAGENTA_GLAZED_TERRACOTTA: Self = Self(237);
1003    /// `light_blue_glazed_terracotta` (Light Blue Glazed Terracotta).
1004    pub const LIGHT_BLUE_GLAZED_TERRACOTTA: Self = Self(238);
1005    /// `yellow_glazed_terracotta` (Yellow Glazed Terracotta).
1006    pub const YELLOW_GLAZED_TERRACOTTA: Self = Self(239);
1007    /// `lime_glazed_terracotta` (Lime Glazed Terracotta).
1008    pub const LIME_GLAZED_TERRACOTTA: Self = Self(240);
1009    /// `pink_glazed_terracotta` (Pink Glazed Terracotta).
1010    pub const PINK_GLAZED_TERRACOTTA: Self = Self(241);
1011    /// `gray_glazed_terracotta` (Gray Glazed Terracotta).
1012    pub const GRAY_GLAZED_TERRACOTTA: Self = Self(242);
1013    /// `light_gray_glazed_terracotta` (Light Gray Glazed Terracotta).
1014    pub const LIGHT_GRAY_GLAZED_TERRACOTTA: Self = Self(243);
1015    /// `cyan_glazed_terracotta` (Cyan Glazed Terracotta).
1016    pub const CYAN_GLAZED_TERRACOTTA: Self = Self(244);
1017    /// `purple_glazed_terracotta` (Purple Glazed Terracotta).
1018    pub const PURPLE_GLAZED_TERRACOTTA: Self = Self(245);
1019    /// `blue_glazed_terracotta` (Blue Glazed Terracotta).
1020    pub const BLUE_GLAZED_TERRACOTTA: Self = Self(246);
1021    /// `brown_glazed_terracotta` (Brown Glazed Terracotta).
1022    pub const BROWN_GLAZED_TERRACOTTA: Self = Self(247);
1023    /// `green_glazed_terracotta` (Green Glazed Terracotta).
1024    pub const GREEN_GLAZED_TERRACOTTA: Self = Self(248);
1025    /// `red_glazed_terracotta` (Red Glazed Terracotta).
1026    pub const RED_GLAZED_TERRACOTTA: Self = Self(249);
1027    /// `black_glazed_terracotta` (Black Glazed Terracotta).
1028    pub const BLACK_GLAZED_TERRACOTTA: Self = Self(250);
1029    /// `concrete` (Concrete).
1030    pub const CONCRETE: Self = Self(251);
1031    /// `concrete_powder` (Concrete Powder).
1032    pub const CONCRETE_POWDER: Self = Self(252);
1033    /// `structure_block` (Structure Block).
1034    pub const STRUCTURE_BLOCK: Self = Self(255);
1035}
1036
1037/// Index into `BLOCKS` per block id (255 = no block with this id).
1038pub(crate) static BLOCK_SLOT: [u8; 256] = [
1039    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31,
1040    32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63,
1041    64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95,
1042    96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127,
1043    128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159,
1044    160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
1045    192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223,
1046    224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 255, 255, 253,
1047];
1048
1049/// Distinct collision shapes (oracle `alone` boxes, block-local; index 0 = empty).
1050pub(crate) static SHAPES: [&[Aabb]; 84] = [
1051    &[],
1052    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 1.0)],
1053    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.5625, 1.0)],
1054    &[Aabb::new(0.0, 0.25, 0.0, 1.0, 1.0, 1.0)],
1055    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.75, 1.0)],
1056    &[Aabb::new(0.0, 0.0, 0.25, 1.0, 1.0, 1.0)],
1057    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 0.75)],
1058    &[Aabb::new(0.25, 0.0, 0.0, 1.0, 1.0, 1.0)],
1059    &[Aabb::new(0.0, 0.0, 0.0, 0.75, 1.0, 1.0)],
1060    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.25, 1.0), Aabb::new(0.375, 0.25, 0.375, 0.625, 1.25, 0.625)],
1061    &[Aabb::new(0.0, 0.75, 0.0, 1.0, 1.0, 1.0), Aabb::new(0.375, -0.25, 0.375, 0.625, 0.75, 0.625)],
1062    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 0.25), Aabb::new(0.375, 0.375, 0.25, 0.625, 0.625, 1.25)],
1063    &[Aabb::new(0.0, 0.0, 0.75, 1.0, 1.0, 1.0), Aabb::new(0.375, 0.375, -0.25, 0.625, 0.625, 0.75)],
1064    &[Aabb::new(0.0, 0.0, 0.0, 0.25, 1.0, 1.0), Aabb::new(0.25, 0.375, 0.375, 1.25, 0.625, 0.625)],
1065    &[Aabb::new(0.75, 0.0, 0.0, 1.0, 1.0, 1.0), Aabb::new(-0.25, 0.375, 0.375, 0.75, 0.625, 0.625)],
1066    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.5, 1.0)],
1067    &[Aabb::new(0.0, 0.5, 0.0, 1.0, 1.0, 1.0)],
1068    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.5, 1.0), Aabb::new(0.5, 0.5, 0.0, 1.0, 1.0, 1.0)],
1069    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.5, 1.0), Aabb::new(0.0, 0.5, 0.0, 0.5, 1.0, 1.0)],
1070    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.5, 1.0), Aabb::new(0.0, 0.5, 0.5, 1.0, 1.0, 1.0)],
1071    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.5, 1.0), Aabb::new(0.0, 0.5, 0.0, 1.0, 1.0, 0.5)],
1072    &[Aabb::new(0.0, 0.5, 0.0, 1.0, 1.0, 1.0), Aabb::new(0.5, 0.0, 0.0, 1.0, 0.5, 1.0)],
1073    &[Aabb::new(0.0, 0.5, 0.0, 1.0, 1.0, 1.0), Aabb::new(0.0, 0.0, 0.0, 0.5, 0.5, 1.0)],
1074    &[Aabb::new(0.0, 0.5, 0.0, 1.0, 1.0, 1.0), Aabb::new(0.0, 0.0, 0.5, 1.0, 0.5, 1.0)],
1075    &[Aabb::new(0.0, 0.5, 0.0, 1.0, 1.0, 1.0), Aabb::new(0.0, 0.0, 0.0, 1.0, 0.5, 0.5)],
1076    &[Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 0.875, 0.9375)],
1077    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.9375, 1.0)],
1078    &[Aabb::new(0.0, 0.0, 0.0, 0.1875, 1.0, 1.0)],
1079    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 0.1875)],
1080    &[Aabb::new(0.8125, 0.0, 0.0, 1.0, 1.0, 1.0)],
1081    &[Aabb::new(0.0, 0.0, 0.8125, 1.0, 1.0, 1.0)],
1082    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.0, 1.0)],
1083    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.125, 1.0)],
1084    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.25, 1.0)],
1085    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.375, 1.0)],
1086    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.625, 1.0)],
1087    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.875, 1.0)],
1088    &[Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 0.9375, 0.9375)],
1089    &[Aabb::new(0.375, 0.0, 0.375, 0.625, 1.5, 0.625)],
1090    &[Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 0.5, 0.9375)],
1091    &[Aabb::new(0.1875, 0.0, 0.0625, 0.9375, 0.5, 0.9375)],
1092    &[Aabb::new(0.3125, 0.0, 0.0625, 0.9375, 0.5, 0.9375)],
1093    &[Aabb::new(0.4375, 0.0, 0.0625, 0.9375, 0.5, 0.9375)],
1094    &[Aabb::new(0.5625, 0.0, 0.0625, 0.9375, 0.5, 0.9375)],
1095    &[Aabb::new(0.6875, 0.0, 0.0625, 0.9375, 0.5, 0.9375)],
1096    &[Aabb::new(0.8125, 0.0, 0.0625, 0.9375, 0.5, 0.9375)],
1097    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.1875, 1.0)],
1098    &[Aabb::new(0.0, 0.8125, 0.0, 1.0, 1.0, 1.0)],
1099    &[Aabb::new(0.4375, 0.0, 0.4375, 0.5625, 1.0, 0.5625)],
1100    &[Aabb::new(0.0, 0.0, 0.375, 1.0, 1.5, 0.625)],
1101    &[Aabb::new(0.375, 0.0, 0.0, 0.625, 1.5, 1.0)],
1102    &[Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 0.09375, 0.9375)],
1103    &[Aabb::new(0.4375, 0.0, 0.4375, 0.5625, 0.875, 0.5625), Aabb::new(0.0, 0.0, 0.0, 1.0, 0.125, 1.0)],
1104    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.3125, 1.0), Aabb::new(0.0, 0.0, 0.0, 0.125, 1.0, 1.0), Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 0.125), Aabb::new(0.875, 0.0, 0.0, 1.0, 1.0, 1.0), Aabb::new(0.0, 0.0, 0.875, 1.0, 1.0, 1.0)],
1105    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.8125, 1.0)],
1106    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.8125, 1.0), Aabb::new(0.3125, 0.8125, 0.3125, 0.6875, 1.0, 0.6875)],
1107    &[Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 1.0, 0.9375)],
1108    &[Aabb::new(0.375, 0.4375, 0.6875, 0.625, 0.75, 0.9375)],
1109    &[Aabb::new(0.0625, 0.4375, 0.375, 0.3125, 0.75, 0.625)],
1110    &[Aabb::new(0.375, 0.4375, 0.0625, 0.625, 0.75, 0.3125)],
1111    &[Aabb::new(0.6875, 0.4375, 0.375, 0.9375, 0.75, 0.625)],
1112    &[Aabb::new(0.3125, 0.3125, 0.5625, 0.6875, 0.75, 0.9375)],
1113    &[Aabb::new(0.0625, 0.3125, 0.3125, 0.4375, 0.75, 0.6875)],
1114    &[Aabb::new(0.3125, 0.3125, 0.0625, 0.6875, 0.75, 0.4375)],
1115    &[Aabb::new(0.5625, 0.3125, 0.3125, 0.9375, 0.75, 0.6875)],
1116    &[Aabb::new(0.25, 0.1875, 0.4375, 0.75, 0.75, 0.9375)],
1117    &[Aabb::new(0.0625, 0.1875, 0.25, 0.5625, 0.75, 0.75)],
1118    &[Aabb::new(0.25, 0.1875, 0.0625, 0.75, 0.75, 0.5625)],
1119    &[Aabb::new(0.4375, 0.1875, 0.25, 0.9375, 0.75, 0.75)],
1120    &[Aabb::new(0.25, 0.0, 0.25, 0.75, 1.5, 0.75)],
1121    &[Aabb::new(0.3125, 0.0, 0.3125, 0.6875, 0.375, 0.6875)],
1122    &[Aabb::new(0.25, 0.0, 0.25, 0.75, 0.5, 0.75)],
1123    &[Aabb::new(0.25, 0.25, 0.5, 0.75, 0.75, 1.0)],
1124    &[Aabb::new(0.25, 0.25, 0.0, 0.75, 0.75, 0.5)],
1125    &[Aabb::new(0.5, 0.25, 0.25, 1.0, 0.75, 0.75)],
1126    &[Aabb::new(0.0, 0.25, 0.25, 0.5, 0.75, 0.75)],
1127    &[Aabb::new(0.125, 0.0, 0.0, 0.875, 1.0, 1.0)],
1128    &[Aabb::new(0.0, 0.0, 0.125, 1.0, 1.0, 0.875)],
1129    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.625, 1.0), Aabb::new(0.0, 0.0, 0.0, 0.125, 1.0, 1.0), Aabb::new(0.875, 0.0, 0.0, 1.0, 1.0, 1.0), Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 0.125), Aabb::new(0.0, 0.0, 0.875, 1.0, 1.0, 1.0)],
1130    &[Aabb::new(0.0, 0.0, 0.0, 1.0, 0.0625, 1.0)],
1131    &[Aabb::new(0.375, 0.0, 0.375, 0.625, 1.0, 0.625)],
1132    &[Aabb::new(0.375, 0.375, 0.0, 0.625, 0.625, 1.0)],
1133    &[Aabb::new(0.0, 0.375, 0.375, 1.0, 0.625, 0.625)],
1134    &[Aabb::new(0.1875, 0.1875, 0.1875, 0.8125, 0.8125, 0.8125)],
1135];
1136
1137pub(crate) static BLOCK_SHAPE_DEPENDENCY: [ShapeDependency; 256] = [
1138    ShapeDependency::None,
1139    ShapeDependency::None,
1140    ShapeDependency::None,
1141    ShapeDependency::None,
1142    ShapeDependency::None,
1143    ShapeDependency::None,
1144    ShapeDependency::None,
1145    ShapeDependency::None,
1146    ShapeDependency::None,
1147    ShapeDependency::None,
1148    ShapeDependency::None,
1149    ShapeDependency::None,
1150    ShapeDependency::None,
1151    ShapeDependency::None,
1152    ShapeDependency::None,
1153    ShapeDependency::None,
1154    ShapeDependency::None,
1155    ShapeDependency::None,
1156    ShapeDependency::None,
1157    ShapeDependency::None,
1158    ShapeDependency::None,
1159    ShapeDependency::None,
1160    ShapeDependency::None,
1161    ShapeDependency::None,
1162    ShapeDependency::None,
1163    ShapeDependency::None,
1164    ShapeDependency::None,
1165    ShapeDependency::None,
1166    ShapeDependency::None,
1167    ShapeDependency::None,
1168    ShapeDependency::None,
1169    ShapeDependency::None,
1170    ShapeDependency::None,
1171    ShapeDependency::None,
1172    ShapeDependency::None,
1173    ShapeDependency::None,
1174    ShapeDependency::BlockEntity,
1175    ShapeDependency::None,
1176    ShapeDependency::None,
1177    ShapeDependency::None,
1178    ShapeDependency::None,
1179    ShapeDependency::None,
1180    ShapeDependency::None,
1181    ShapeDependency::None,
1182    ShapeDependency::None,
1183    ShapeDependency::None,
1184    ShapeDependency::None,
1185    ShapeDependency::None,
1186    ShapeDependency::None,
1187    ShapeDependency::None,
1188    ShapeDependency::None,
1189    ShapeDependency::None,
1190    ShapeDependency::None,
1191    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1192    ShapeDependency::Neighbours(NeighbourShape::Chest),
1193    ShapeDependency::None,
1194    ShapeDependency::None,
1195    ShapeDependency::None,
1196    ShapeDependency::None,
1197    ShapeDependency::None,
1198    ShapeDependency::None,
1199    ShapeDependency::None,
1200    ShapeDependency::None,
1201    ShapeDependency::None,
1202    ShapeDependency::Neighbours(NeighbourShape::Door),
1203    ShapeDependency::None,
1204    ShapeDependency::None,
1205    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1206    ShapeDependency::None,
1207    ShapeDependency::None,
1208    ShapeDependency::None,
1209    ShapeDependency::Neighbours(NeighbourShape::Door),
1210    ShapeDependency::None,
1211    ShapeDependency::None,
1212    ShapeDependency::None,
1213    ShapeDependency::None,
1214    ShapeDependency::None,
1215    ShapeDependency::None,
1216    ShapeDependency::None,
1217    ShapeDependency::None,
1218    ShapeDependency::None,
1219    ShapeDependency::None,
1220    ShapeDependency::None,
1221    ShapeDependency::None,
1222    ShapeDependency::None,
1223    ShapeDependency::Neighbours(NeighbourShape::Fence),
1224    ShapeDependency::None,
1225    ShapeDependency::None,
1226    ShapeDependency::None,
1227    ShapeDependency::None,
1228    ShapeDependency::None,
1229    ShapeDependency::None,
1230    ShapeDependency::None,
1231    ShapeDependency::None,
1232    ShapeDependency::None,
1233    ShapeDependency::None,
1234    ShapeDependency::None,
1235    ShapeDependency::None,
1236    ShapeDependency::None,
1237    ShapeDependency::None,
1238    ShapeDependency::None,
1239    ShapeDependency::Neighbours(NeighbourShape::Pane),
1240    ShapeDependency::Neighbours(NeighbourShape::Pane),
1241    ShapeDependency::None,
1242    ShapeDependency::None,
1243    ShapeDependency::None,
1244    ShapeDependency::None,
1245    ShapeDependency::None,
1246    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1247    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1248    ShapeDependency::None,
1249    ShapeDependency::None,
1250    ShapeDependency::None,
1251    ShapeDependency::Neighbours(NeighbourShape::Fence),
1252    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1253    ShapeDependency::None,
1254    ShapeDependency::None,
1255    ShapeDependency::None,
1256    ShapeDependency::None,
1257    ShapeDependency::None,
1258    ShapeDependency::None,
1259    ShapeDependency::None,
1260    ShapeDependency::None,
1261    ShapeDependency::None,
1262    ShapeDependency::None,
1263    ShapeDependency::None,
1264    ShapeDependency::None,
1265    ShapeDependency::None,
1266    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1267    ShapeDependency::None,
1268    ShapeDependency::None,
1269    ShapeDependency::None,
1270    ShapeDependency::None,
1271    ShapeDependency::None,
1272    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1273    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1274    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1275    ShapeDependency::None,
1276    ShapeDependency::None,
1277    ShapeDependency::Neighbours(NeighbourShape::Wall),
1278    ShapeDependency::None,
1279    ShapeDependency::None,
1280    ShapeDependency::None,
1281    ShapeDependency::None,
1282    ShapeDependency::None,
1283    ShapeDependency::None,
1284    ShapeDependency::Neighbours(NeighbourShape::Chest),
1285    ShapeDependency::None,
1286    ShapeDependency::None,
1287    ShapeDependency::None,
1288    ShapeDependency::None,
1289    ShapeDependency::None,
1290    ShapeDependency::None,
1291    ShapeDependency::None,
1292    ShapeDependency::None,
1293    ShapeDependency::None,
1294    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1295    ShapeDependency::None,
1296    ShapeDependency::None,
1297    ShapeDependency::None,
1298    ShapeDependency::Neighbours(NeighbourShape::Pane),
1299    ShapeDependency::None,
1300    ShapeDependency::None,
1301    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1302    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1303    ShapeDependency::None,
1304    ShapeDependency::None,
1305    ShapeDependency::None,
1306    ShapeDependency::None,
1307    ShapeDependency::None,
1308    ShapeDependency::None,
1309    ShapeDependency::None,
1310    ShapeDependency::None,
1311    ShapeDependency::None,
1312    ShapeDependency::None,
1313    ShapeDependency::None,
1314    ShapeDependency::None,
1315    ShapeDependency::None,
1316    ShapeDependency::None,
1317    ShapeDependency::None,
1318    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1319    ShapeDependency::None,
1320    ShapeDependency::None,
1321    ShapeDependency::None,
1322    ShapeDependency::None,
1323    ShapeDependency::None,
1324    ShapeDependency::None,
1325    ShapeDependency::None,
1326    ShapeDependency::Neighbours(NeighbourShape::Fence),
1327    ShapeDependency::Neighbours(NeighbourShape::Fence),
1328    ShapeDependency::Neighbours(NeighbourShape::Fence),
1329    ShapeDependency::Neighbours(NeighbourShape::Fence),
1330    ShapeDependency::Neighbours(NeighbourShape::Fence),
1331    ShapeDependency::Neighbours(NeighbourShape::Door),
1332    ShapeDependency::Neighbours(NeighbourShape::Door),
1333    ShapeDependency::Neighbours(NeighbourShape::Door),
1334    ShapeDependency::Neighbours(NeighbourShape::Door),
1335    ShapeDependency::Neighbours(NeighbourShape::Door),
1336    ShapeDependency::None,
1337    ShapeDependency::Neighbours(NeighbourShape::ChorusPlant),
1338    ShapeDependency::None,
1339    ShapeDependency::None,
1340    ShapeDependency::None,
1341    ShapeDependency::Neighbours(NeighbourShape::Stairs),
1342    ShapeDependency::None,
1343    ShapeDependency::None,
1344    ShapeDependency::None,
1345    ShapeDependency::None,
1346    ShapeDependency::None,
1347    ShapeDependency::None,
1348    ShapeDependency::None,
1349    ShapeDependency::None,
1350    ShapeDependency::None,
1351    ShapeDependency::None,
1352    ShapeDependency::None,
1353    ShapeDependency::None,
1354    ShapeDependency::None,
1355    ShapeDependency::None,
1356    ShapeDependency::None,
1357    ShapeDependency::BlockEntity,
1358    ShapeDependency::BlockEntity,
1359    ShapeDependency::BlockEntity,
1360    ShapeDependency::BlockEntity,
1361    ShapeDependency::BlockEntity,
1362    ShapeDependency::BlockEntity,
1363    ShapeDependency::BlockEntity,
1364    ShapeDependency::BlockEntity,
1365    ShapeDependency::BlockEntity,
1366    ShapeDependency::BlockEntity,
1367    ShapeDependency::BlockEntity,
1368    ShapeDependency::BlockEntity,
1369    ShapeDependency::BlockEntity,
1370    ShapeDependency::BlockEntity,
1371    ShapeDependency::BlockEntity,
1372    ShapeDependency::BlockEntity,
1373    ShapeDependency::None,
1374    ShapeDependency::None,
1375    ShapeDependency::None,
1376    ShapeDependency::None,
1377    ShapeDependency::None,
1378    ShapeDependency::None,
1379    ShapeDependency::None,
1380    ShapeDependency::None,
1381    ShapeDependency::None,
1382    ShapeDependency::None,
1383    ShapeDependency::None,
1384    ShapeDependency::None,
1385    ShapeDependency::None,
1386    ShapeDependency::None,
1387    ShapeDependency::None,
1388    ShapeDependency::None,
1389    ShapeDependency::None,
1390    ShapeDependency::None,
1391    ShapeDependency::None,
1392    ShapeDependency::None,
1393    ShapeDependency::None,
1394];
1395
1396/// Shape index per raw state `id << 4 | meta`.
1397pub(crate) static STATE_SHAPE: [u16; 4096] = [
1398    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1399    1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1400    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1401    1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1402    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1403    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1404    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1405    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1406    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1407    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1408    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1409    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1410    1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1411    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1412    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1413    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1414    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1415    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1416    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1417    1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1418    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1419    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1420    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1421    1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
1422    1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1423    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1424    2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
1425    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1426    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1427    1, 1, 1, 1, 1, 1, 0, 0, 3, 4, 5, 6, 7, 8, 0, 0,
1428    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1429    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1430    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1431    1, 1, 1, 1, 1, 1, 0, 0, 3, 4, 5, 6, 7, 8, 0, 0,
1432    9, 10, 11, 12, 13, 14, 0, 0, 9, 10, 11, 12, 13, 14, 0, 0,
1433    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1434    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1435    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1436    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1437    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1438    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1439    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1440    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1441    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1442    15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16,
1443    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1444    1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1445    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1446    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1447    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1448    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1449    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1450    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1451    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1452    0, 0, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1453    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1454    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1455    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1456    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1457    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1458    26, 26, 26, 26, 26, 26, 26, 26, 0, 0, 0, 0, 0, 0, 0, 0,
1459    0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1460    0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1461    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1462    27, 28, 29, 30, 30, 27, 28, 29, 27, 27, 27, 27, 0, 0, 0, 0,
1463    0, 0, 30, 28, 29, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1464    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1465    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1466    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1467    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1468    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1469    27, 28, 29, 30, 30, 27, 28, 29, 27, 27, 27, 27, 0, 0, 0, 0,
1470    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1471    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1472    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1473    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1474    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1475    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1476    31, 32, 33, 34, 15, 35, 4, 36, 0, 0, 0, 0, 0, 0, 0, 0,
1477    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1478    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1479    37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37, 37,
1480    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1481    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1482    1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1483    38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1484    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1485    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1486    36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1487    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1488    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1489    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1490    39, 40, 41, 42, 43, 44, 45, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1491    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1492    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1493    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1494    46, 46, 46, 46, 30, 28, 29, 27, 47, 47, 47, 47, 30, 28, 29, 27,
1495    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1496    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1497    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,
1498    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 1, 1,
1499    48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1500    48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1501    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1502    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1503    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1504    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1505    49, 50, 49, 50, 0, 0, 0, 0, 49, 50, 49, 50, 0, 0, 0, 0,
1506    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1507    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1508    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1509    51, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1510    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1511    38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1512    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1513    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1514    4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1515    52, 52, 52, 52, 52, 52, 52, 52, 0, 0, 0, 0, 0, 0, 0, 0,
1516    53, 53, 53, 53, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1517    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1518    54, 54, 54, 54, 55, 55, 55, 55, 0, 0, 0, 0, 0, 0, 0, 0,
1519    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1520    56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1521    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1522    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1523    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1524    15, 15, 15, 15, 15, 15, 0, 0, 16, 16, 16, 16, 16, 16, 0, 0,
1525    57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 0, 0, 0, 0,
1526    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1527    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1528    0, 0, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1529    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1530    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1531    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1532    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1533    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1534    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1535    1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
1536    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1537    69, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1538    70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70,
1539    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1540    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1541    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1542    71, 71, 72, 73, 74, 75, 0, 0, 71, 71, 72, 73, 74, 75, 0, 0,
1543    76, 77, 76, 77, 76, 77, 76, 77, 76, 77, 76, 77, 0, 0, 0, 0,
1544    0, 0, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1545    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1546    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1547    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1548    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
1549    34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1550    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1551    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1552    78, 0, 78, 78, 78, 78, 0, 0, 78, 0, 78, 78, 78, 78, 0, 0,
1553    1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1554    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1555    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1556    1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
1557    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1558    48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48, 48,
1559    1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
1560    1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,
1561    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1562    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1563    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1564    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1565    46, 46, 46, 46, 30, 28, 29, 27, 47, 47, 47, 47, 30, 28, 29, 27,
1566    1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1567    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1568    1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
1569    79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79,
1570    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1571    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1572    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1573    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1574    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1575    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1576    34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34, 34,
1577    1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1578    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1579    1, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
1580    15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
1581    49, 50, 49, 50, 0, 0, 0, 0, 49, 50, 49, 50, 0, 0, 0, 0,
1582    49, 50, 49, 50, 0, 0, 0, 0, 49, 50, 49, 50, 0, 0, 0, 0,
1583    49, 50, 49, 50, 0, 0, 0, 0, 49, 50, 49, 50, 0, 0, 0, 0,
1584    49, 50, 49, 50, 0, 0, 0, 0, 49, 50, 49, 50, 0, 0, 0, 0,
1585    49, 50, 49, 50, 0, 0, 0, 0, 49, 50, 49, 50, 0, 0, 0, 0,
1586    38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1587    38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1588    38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1589    38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1590    38, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1591    27, 28, 29, 30, 30, 27, 28, 29, 27, 27, 27, 27, 0, 0, 0, 0,
1592    27, 28, 29, 30, 30, 27, 28, 29, 27, 27, 27, 27, 0, 0, 0, 0,
1593    27, 28, 29, 30, 30, 27, 28, 29, 27, 27, 27, 27, 0, 0, 0, 0,
1594    27, 28, 29, 30, 30, 27, 28, 29, 27, 27, 27, 27, 0, 0, 0, 0,
1595    27, 28, 29, 30, 30, 27, 28, 29, 27, 27, 27, 27, 0, 0, 0, 0,
1596    80, 80, 81, 81, 82, 82, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1597    83, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1598    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1599    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1600    1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
1601    17, 18, 19, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0,
1602    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1603    15, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0,
1604    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1605    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1606    26, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1607    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1608    1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
1609    1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
1610    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1611    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1612    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1613    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1614    1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0,
1615    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1616    1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
1617    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1618    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1619    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1620    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1621    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1622    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1623    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1624    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1625    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1626    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1627    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1628    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1629    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1630    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1631    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1632    1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1633    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1634    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1635    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1636    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1637    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1638    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1639    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1640    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1641    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1642    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1643    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1644    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1645    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1646    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1647    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1648    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1649    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1650    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1651    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1652    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1653    1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1654];
1655
1656/// Per raw state (oracle): bit 0 full cube, 1 normal cube, 2 block-normal cube, 3 top solid,
1657/// 4 opaque cube, 5 full block, 6 causes suffocation.
1658pub(crate) static STATE_FLAGS: [u8; 4096] = [
1659    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1660    127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1661    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1662    127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1663    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1664    127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1665    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1666    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1667    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1668    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1669    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1670    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1671    127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1672    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1673    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1674    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1675    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1676    127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1677    53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53, 53,
1678    127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1679    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1680    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1681    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1682    127, 127, 127, 127, 127, 127, 0, 0, 127, 127, 127, 127, 127, 127, 0, 0,
1683    127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1684    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1685    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1686    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1687    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1688    72, 72, 72, 72, 72, 72, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
1689    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1690    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1691    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1692    72, 72, 72, 72, 72, 72, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
1693    0, 8, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0,
1694    127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1695    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1696    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1697    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1698    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1699    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1700    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1701    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1702    127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1703    0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8,
1704    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1705    117, 117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1706    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1707    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1708    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1709    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1710    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1711    79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1712    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1713    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1714    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1715    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1716    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1717    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1718    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1719    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1720    0, 0, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1721    0, 0, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1722    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1723    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1724    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1725    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1726    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1727    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1728    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1729    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1730    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1731    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1732    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1733    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1734    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1735    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1736    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1737    0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1738    69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1739    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1740    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1741    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1742    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1743    127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1744    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1745    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1746    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1747    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1748    117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1749    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1750    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1751    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1752    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1753    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1754    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1755    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1756    127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1757    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1758    127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 127, 127,
1759    127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 0, 0, 0, 127, 127,
1760    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1761    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1762    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1763    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1764    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1765    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1766    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1767    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1768    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1769    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1770    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1771    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1772    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1773    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1774    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1775    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1776    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1777    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1778    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1779    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1780    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1781    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1782    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1783    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1784    127, 127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1785    0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 0, 0,
1786    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1787    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1788    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1789    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1790    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1791    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1792    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1793    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1794    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1795    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1796    127, 127, 127, 127, 127, 127, 0, 0, 127, 127, 127, 127, 127, 127, 0, 0,
1797    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1798    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1799    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1800    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1801    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1802    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1803    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1804    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1805    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1806    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1807    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1808    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1809    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1810    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1811    125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1812    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1813    8, 0, 8, 8, 8, 8, 0, 0, 8, 0, 8, 8, 8, 8, 0, 0,
1814    127, 127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1815    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1816    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1817    127, 127, 127, 127, 127, 127, 0, 0, 127, 127, 127, 127, 127, 127, 0, 0,
1818    127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1819    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1820    53, 53, 0, 0, 53, 53, 0, 0, 53, 53, 0, 0, 53, 53, 0, 0,
1821    127, 127, 0, 0, 127, 127, 0, 0, 127, 127, 0, 0, 127, 127, 0, 0,
1822    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1823    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1824    79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1825    79, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1826    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1827    127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1828    117, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1829    127, 0, 0, 0, 127, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0,
1830    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1831    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1832    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1833    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1834    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1835    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1836    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1837    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1838    127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1839    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1840    127, 0, 0, 0, 0, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0,
1841    0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
1842    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1843    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1844    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1845    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1846    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1847    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1848    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1849    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1850    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1851    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1852    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1853    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1854    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1855    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1856    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1857    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1858    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1859    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1860    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1861    127, 0, 0, 0, 127, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0,
1862    0, 0, 0, 0, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0,
1863    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1864    0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 0, 0, 0, 0,
1865    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1866    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1867    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1868    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1869    127, 127, 127, 127, 127, 127, 0, 0, 127, 127, 127, 127, 127, 127, 0, 0,
1870    127, 127, 127, 127, 127, 127, 0, 0, 127, 127, 127, 127, 127, 127, 0, 0,
1871    69, 69, 69, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1872    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1873    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1874    127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1875    127, 0, 0, 0, 127, 0, 0, 0, 127, 0, 0, 0, 0, 0, 0, 0,
1876    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1877    125, 125, 125, 125, 125, 125, 0, 0, 125, 125, 125, 125, 125, 125, 0, 0,
1878    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1879    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1880    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1881    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1882    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1883    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1884    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1885    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1886    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1887    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1888    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1889    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1890    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1891    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1892    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1893    64, 64, 64, 64, 64, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1894    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1895    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1896    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1897    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1898    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1899    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1900    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1901    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1902    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1903    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1904    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1905    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1906    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1907    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1908    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1909    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1910    127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1911    127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127, 127,
1912    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1913    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1914    127, 127, 127, 127, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
1915];
1916
1917/// Bit `m` set = meta `m` is a registered state of the block (1.12.2 oracle).
1918pub(crate) static REGISTERED_METAS: [u16; 256] = [
1919    1, 127, 1, 7, 1, 63, 16191, 1, 65535, 65535, 65535, 65535, 3, 1, 1, 1,
1920    1, 65535, 65535, 3, 1, 1, 1, 16191, 7, 1, 65295, 16191, 16191, 16191, 1, 7,
1921    1, 16191, 16191, 65535, 16191, 1, 511, 1, 1, 1, 1, 65535, 65535, 1, 3, 1,
1922    1, 1, 62, 65535, 1, 255, 60, 65535, 1, 1, 1, 255, 255, 60, 60, 65535,
1923    4095, 60, 1023, 255, 60, 65535, 3, 4095, 3, 1, 1, 62, 62, 16191, 255, 1,
1924    1, 65535, 1, 65535, 3, 1, 15, 1, 1, 1, 6, 15, 127, 65535, 65535, 65535,
1925    65535, 63, 15, 51199, 51199, 1, 1, 1, 255, 255, 65535, 65535, 255, 255, 1, 1,
1926    1, 1, 255, 15, 1, 255, 15, 1, 255, 1, 1, 1, 1, 63, 16191, 4095,
1927    255, 1, 60, 65535, 32767, 1, 255, 255, 255, 16191, 1, 3, 65535, 255, 255, 16191,
1928    16191, 4095, 60, 65535, 65535, 65535, 65535, 65535, 1, 1, 15677, 31, 255, 16191, 16191, 65535,
1929    65535, 13107, 13107, 255, 255, 1, 1, 65535, 7, 1, 273, 65535, 1, 1, 1, 3903,
1930    65535, 60, 65535, 7, 255, 257, 257, 65535, 65535, 65535, 65535, 65535, 1, 1, 1, 1,
1931    1, 4095, 4095, 4095, 4095, 4095, 63, 1, 63, 1, 273, 255, 1, 257, 1, 15,
1932    1, 1, 16191, 16191, 15, 1, 1, 1, 273, 1, 16191, 63, 63, 63, 63, 63,
1933    63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 63, 15, 15, 15, 15, 15,
1934    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 65535, 65535, 0, 0, 15,
1935];
1936
1937/// Every 1.12.2 block material (oracle; names are ours, from the Yarn field names).
1938pub(crate) static MATERIALS: [Material; 35] = [
1939    Material { name: "air", kind: MaterialKind::Air, blocks_movement: false, solid: false, liquid: false, opaque: false, replaceable: true },
1940    Material { name: "anvil", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1941    Material { name: "barrier", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1942    Material { name: "cactus", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: false, replaceable: false },
1943    Material { name: "cake", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1944    Material { name: "carpet", kind: MaterialKind::Other, blocks_movement: false, solid: false, liquid: false, opaque: false, replaceable: false },
1945    Material { name: "cave_air", kind: MaterialKind::Other, blocks_movement: false, solid: false, liquid: false, opaque: false, replaceable: true },
1946    Material { name: "clay", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1947    Material { name: "cobweb", kind: MaterialKind::Other, blocks_movement: false, solid: true, liquid: false, opaque: false, replaceable: false },
1948    Material { name: "decoration", kind: MaterialKind::Other, blocks_movement: false, solid: false, liquid: false, opaque: false, replaceable: false },
1949    Material { name: "dirt", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1950    Material { name: "egg", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1951    Material { name: "fire", kind: MaterialKind::Other, blocks_movement: false, solid: false, liquid: false, opaque: false, replaceable: true },
1952    Material { name: "foliage", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: false, replaceable: false },
1953    Material { name: "glass", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: false, replaceable: false },
1954    Material { name: "grass", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1955    Material { name: "ice", kind: MaterialKind::Ice, blocks_movement: true, solid: true, liquid: false, opaque: false, replaceable: false },
1956    Material { name: "iron", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1957    Material { name: "lava", kind: MaterialKind::Lava, blocks_movement: false, solid: false, liquid: true, opaque: false, replaceable: true },
1958    Material { name: "packed_ice", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1959    Material { name: "piston", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1960    Material { name: "plant", kind: MaterialKind::Other, blocks_movement: false, solid: false, liquid: false, opaque: false, replaceable: false },
1961    Material { name: "portal", kind: MaterialKind::Other, blocks_movement: false, solid: false, liquid: false, opaque: false, replaceable: false },
1962    Material { name: "pumpkin", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1963    Material { name: "redstone_lamp", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1964    Material { name: "replaceable_plant", kind: MaterialKind::Other, blocks_movement: false, solid: false, liquid: false, opaque: false, replaceable: true },
1965    Material { name: "sand", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1966    Material { name: "snow", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1967    Material { name: "snow_layer", kind: MaterialKind::Other, blocks_movement: false, solid: false, liquid: false, opaque: false, replaceable: true },
1968    Material { name: "sponge", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1969    Material { name: "stone", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1970    Material { name: "tnt", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: false, replaceable: false },
1971    Material { name: "water", kind: MaterialKind::Water, blocks_movement: false, solid: false, liquid: true, opaque: false, replaceable: true },
1972    Material { name: "wood", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1973    Material { name: "wool", kind: MaterialKind::Other, blocks_movement: true, solid: true, liquid: false, opaque: true, replaceable: false },
1974];
1975
1976/// Material index per block id.
1977pub(crate) static BLOCK_MATERIAL: [u8; 256] = [
1978    0, 30, 15, 10, 30, 33, 21, 30, 32, 32, 18, 18, 26, 26, 30, 30, 30, 33, 13, 29, 14, 30, 17, 30, 30, 33, 34, 9, 9, 20, 8, 25,
1979    25, 20, 20, 34, 20, 21, 21, 21, 21, 17, 17, 30, 30, 30, 31, 33, 30, 30, 9, 12, 30, 33, 33, 9, 30, 17, 33, 21, 10, 30, 30, 33,
1980    33, 9, 9, 30, 33, 9, 30, 17, 33, 30, 30, 9, 9, 9, 28, 16, 27, 3, 7, 21, 33, 33, 23, 30, 26, 14, 22, 23, 4, 9, 9, 14,
1981    33, 7, 30, 33, 33, 17, 14, 23, 21, 21, 25, 33, 30, 30, 15, 21, 30, 30, 30, 21, 30, 17, 17, 22, 30, 30, 11, 24, 24, 33, 33, 21,
1982    30, 30, 30, 9, 9, 17, 33, 33, 33, 17, 14, 30, 9, 21, 21, 9, 9, 1, 33, 17, 17, 9, 9, 33, 17, 30, 17, 30, 30, 9, 30, 30,
1983    14, 13, 33, 33, 33, 7, 2, 17, 30, 14, 15, 5, 30, 30, 19, 25, 33, 33, 33, 30, 30, 30, 30, 33, 33, 33, 33, 33, 33, 33, 33, 33,
1984    33, 33, 33, 33, 33, 33, 9, 21, 21, 30, 30, 30, 30, 30, 30, 21, 10, 22, 17, 17, 16, 30, 15, 30, 30, 6, 30, 30, 30, 30, 30, 30,
1985    30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 30, 26, 0, 0, 17,
1986];
1987
1988/// Per block id: bit 0 `Block.isCollidable` (ray tests), 1 excluded from fence connections,
1989/// 2 excluded from wall connections, 3 excluded from pane connections.
1990pub(crate) static BLOCK_BITS: [u8; 256] = [
1991    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 1, 7, 1, 1, 1, 1, 1, 1, 1, 1, 15, 1, 1,
1992    1, 15, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1993    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 1, 1, 1, 1, 1, 1, 15, 1, 1, 15, 1, 15, 1, 1, 1, 7,
1994    7, 1, 1, 1, 1, 1, 1, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1995    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1996    1, 15, 1, 1, 1, 1, 15, 7, 1, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
1997    1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 15, 15, 15, 15, 15,
1998    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1,
1999];
2000
2001/// Per raw state: face shape per face (4 bits each: down, up, north, south, west, east), the
2002/// block alone (air neighbours).
2003pub(crate) static STATE_FACES: [u32; 4096] = [
2004    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2005    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2006    0, 0, 0, 0, 0, 0, 0, 8947848,
2007    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2008    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2009    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2010    0, 0, 0, 8947848, 8947848, 8947848, 8947848, 8947848,
2011    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2012    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2013    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2014    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2015    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2016    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2017    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2018    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2019    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2020    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2021    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2022    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2023    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2024    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2025    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2026    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2027    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2028    0, 0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2029    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2030    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2031    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2032    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2033    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2034    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2035    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2036    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2037    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2038    0, 0, 0, 0, 0, 0, 0, 0,
2039    0, 0, 0, 0, 0, 0, 0, 0,
2040    0, 0, 0, 0, 0, 0, 0, 0,
2041    0, 0, 0, 0, 0, 0, 0, 0,
2042    0, 0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2043    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2044    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2045    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2046    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2047    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2048    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2049    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2050    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2051    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2052    0, 0, 0, 8947848, 8947848, 8947848, 8947848, 8947848,
2053    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2054    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2055    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2056    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2057    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2058    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2059    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2060    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2061    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2062    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2063    8947720, 8947840, 8915080, 8945800, 559240, 8423560, 8947848, 8947848,
2064    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2065    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2066    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2067    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2068    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2069    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2070    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2071    8947720, 8947840, 8915080, 8945800, 559240, 8423560, 8947848, 8947848,
2072    8947840, 8947720, 8945800, 8915080, 8423560, 559240, 8947848, 8947848,
2073    8947840, 8947720, 8945800, 8915080, 8423560, 559240, 8947848, 8947848,
2074    0, 0, 0, 0, 0, 0, 0, 0,
2075    0, 0, 0, 0, 0, 0, 0, 0,
2076    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2077    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2078    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2079    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2080    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2081    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2082    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2083    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2084    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2085    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2086    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2087    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2088    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2089    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2090    0, 0, 0, 0, 0, 0, 0, 0,
2091    0, 0, 0, 0, 0, 0, 0, 0,
2092    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2093    8947720, 8947720, 8947720, 8947720, 8947720, 8947720, 8947720, 8947720,
2094    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2095    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2096    0, 0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2097    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2098    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2099    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2100    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2101    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2102    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2103    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2104    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2105    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2106    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2107    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2108    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2109    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2110    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2111    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2112    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2113    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2114    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2115    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2116    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2117    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2118    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2119    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2120    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2121    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2122    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2123    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2124    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2125    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2126    8947848, 8947848, 0, 0, 0, 0, 8947848, 8947848,
2127    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2128    8947848, 8947848, 0, 0, 0, 0, 8947848, 8947848,
2129    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2130    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2131    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2132    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2133    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2134    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2135    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2136    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2137    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2138    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2139    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2140    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2141    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2142    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2143    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2144    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2145    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2146    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2147    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2148    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2149    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2150    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2151    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2152    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2153    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2154    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2155    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2156    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2157    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2158    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2159    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2160    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2161    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2162    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2163    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2164    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2165    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2166    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2167    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2168    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2169    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2170    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2171    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2172    0, 0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2173    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2174    5592388, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2175    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2176    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2177    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2178    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2179    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2180    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2181    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2182    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2183    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2184    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2185    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2186    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2187    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2188    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2189    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2190    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2191    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2192    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2193    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2194    0, 0, 0, 0, 0, 0, 0, 0,
2195    0, 0, 0, 0, 0, 0, 0, 0,
2196    8947840, 8947840, 8947840, 8947840, 8947848, 8947848, 8947848, 8947848,
2197    8947720, 8947720, 8947720, 8947720, 8947848, 8947848, 8947848, 8947848,
2198    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2199    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2200    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2201    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2202    0, 0, 0, 0, 0, 0, 0, 0,
2203    0, 0, 0, 8947848, 8947848, 8947848, 0, 0,
2204    0, 0, 0, 0, 0, 0, 0, 0,
2205    0, 0, 0, 8947848, 8947848, 8947848, 0, 0,
2206    3355426, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2207    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2208    3355426, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2209    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2210    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2211    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2212    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2213    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2214    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2215    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2216    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2217    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2218    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2219    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2220    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2221    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2222    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2223    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2224    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2225    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2226    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2227    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2228    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2229    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2230    5592388, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2231    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2232    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2233    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2234    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2235    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2236    8947840, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2237    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2238    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2239    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2240    24, 24, 24, 24, 8947848, 8947848, 8947848, 8947848,
2241    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2242    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2243    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2244    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2245    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2246    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2247    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2248    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2249    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2250    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2251    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2252    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2253    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2254    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2255    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2256    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947848, 8947848,
2257    8947720, 8947720, 8947720, 8947720, 8947720, 8947720, 8947848, 8947848,
2258    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2259    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2260    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2261    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2262    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2263    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2264    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2265    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2266    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2267    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2268    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2269    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2270    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2271    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2272    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2273    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2274    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2275    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2276    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2277    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2278    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2279    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2280    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2281    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2282    7829350, 7829350, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2283    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2284    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2285    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2286    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2287    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2288    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2289    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2290    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2291    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2292    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2293    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2294    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2295    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2296    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2297    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2298    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2299    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2300    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2301    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2302    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2303    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2304    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2305    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2306    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2307    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2308    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2309    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2310    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2311    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2312    8947736, 8947848, 8947736, 8947736, 8947736, 8947736, 8947848, 8947848,
2313    8947736, 8947848, 8947736, 8947736, 8947736, 8947736, 8947848, 8947848,
2314    0, 0, 0, 0, 0, 8947848, 8947848, 8947848,
2315    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2316    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2317    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2318    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2319    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2320    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2321    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2322    0, 0, 0, 0, 0, 0, 0, 0,
2323    0, 0, 0, 0, 0, 0, 0, 0,
2324    3355426, 3355426, 3355426, 3355426, 3355426, 3355426, 3355426, 3355426,
2325    3355426, 3355426, 3355426, 3355426, 3355426, 3355426, 3355426, 3355426,
2326    0, 0, 8947848, 8947848, 0, 0, 8947848, 8947848,
2327    0, 0, 8947848, 8947848, 0, 0, 8947848, 8947848,
2328    0, 0, 8947848, 8947848, 0, 0, 8947848, 8947848,
2329    0, 0, 8947848, 8947848, 0, 0, 8947848, 8947848,
2330    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2331    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2332    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2333    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2334    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2335    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2336    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2337    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2338    8947840, 8947840, 8947840, 8947840, 8947848, 8947848, 8947848, 8947848,
2339    8947720, 8947720, 8947720, 8947720, 8947848, 8947848, 8947848, 8947848,
2340    0, 0, 0, 8947848, 8947848, 8947848, 8947848, 8947848,
2341    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2342    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2343    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2344    0, 8947848, 8947848, 8947848, 0, 8947848, 8947848, 8947848,
2345    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2346    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2347    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2348    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2349    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2350    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2351    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2352    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2353    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2354    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2355    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2356    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2357    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2358    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2359    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2360    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2361    8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840, 8947840,
2362    0, 0, 0, 8947848, 8947848, 8947848, 8947848, 8947848,
2363    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2364    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2365    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2366    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2367    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2368    8947840, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2369    8947720, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2370    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2371    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2372    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2373    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2374    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2375    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2376    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2377    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2378    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2379    5605512, 8934792, 5605512, 8934792, 5605512, 8934792, 5605512, 8934792,
2380    5592388, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2381    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2382    5592388, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2383    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2384    5592388, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2385    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2386    5592388, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2387    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2388    5592388, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2389    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2390    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2391    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2392    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2393    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2394    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2395    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2396    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2397    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2398    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2399    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2400    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2401    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2402    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2403    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2404    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2405    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2406    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2407    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2408    0, 8947848, 8947848, 8947848, 0, 8947848, 8947848, 8947848,
2409    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2410    559232, 8423552, 8915072, 8945792, 559112, 8423432, 8914952, 8945672,
2411    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2412    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2413    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2414    8947840, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2415    8947720, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2416    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2417    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2418    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2419    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2420    8947840, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2421    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2422    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2423    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2424    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2425    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2426    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2427    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2428    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2429    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2430    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2431    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2432    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2433    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2434    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2435    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2436    0, 8947848, 8947848, 8947848, 0, 8947848, 8947848, 8947848,
2437    0, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2438    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2439    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2440    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2441    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2442    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2443    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2444    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2445    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2446    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2447    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2448    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2449    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2450    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2451    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2452    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2453    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2454    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2455    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2456    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2457    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2458    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2459    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2460    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2461    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2462    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2463    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2464    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2465    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2466    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2467    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2468    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2469    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2470    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2471    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2472    0, 0, 0, 0, 0, 0, 8947848, 8947848,
2473    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2474    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2475    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2476    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2477    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2478    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2479    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2480    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2481    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2482    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2483    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2484    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2485    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2486    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2487    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2488    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2489    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2490    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2491    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2492    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2493    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2494    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2495    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2496    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2497    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2498    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2499    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2500    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2501    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2502    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2503    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2504    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2505    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2506    0, 0, 0, 0, 0, 0, 0, 0,
2507    0, 0, 0, 0, 0, 0, 0, 0,
2508    0, 0, 0, 0, 0, 0, 0, 0,
2509    0, 0, 0, 0, 0, 0, 0, 0,
2510    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2511    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2512    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2513    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2514    0, 0, 0, 0, 8947848, 8947848, 8947848, 8947848,
2515    8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848, 8947848,
2516];
2517
2518/// Distinct 1.12.2 selection (ray-test) bounds, block-local (oracle).
2519pub(crate) static SELECTION_BOUNDS: [Aabb; 125] = [
2520    Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 1.0),
2521    Aabb::new(0.09999999403953552, 0.0, 0.09999999403953552, 0.8999999761581421, 0.800000011920929, 0.8999999761581421),
2522    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.5625, 1.0),
2523    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.125, 1.0),
2524    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.5, 1.0),
2525    Aabb::new(0.0, 0.25, 0.0, 1.0, 1.0, 1.0),
2526    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.75, 1.0),
2527    Aabb::new(0.0, 0.0, 0.25, 1.0, 1.0, 1.0),
2528    Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 0.75),
2529    Aabb::new(0.25, 0.0, 0.0, 1.0, 1.0, 1.0),
2530    Aabb::new(0.0, 0.0, 0.0, 0.75, 1.0, 1.0),
2531    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.25, 1.0),
2532    Aabb::new(0.0, 0.75, 0.0, 1.0, 1.0, 1.0),
2533    Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 0.25),
2534    Aabb::new(0.0, 0.0, 0.75, 1.0, 1.0, 1.0),
2535    Aabb::new(0.0, 0.0, 0.0, 0.25, 1.0, 1.0),
2536    Aabb::new(0.75, 0.0, 0.0, 1.0, 1.0, 1.0),
2537    Aabb::new(0.050000011920928955, 0.0, 0.050000011920928955, 0.44999998807907104, 0.6000000238418579, 0.44999998807907104),
2538    Aabb::new(0.30000001192092896, 0.0, 0.30000001192092896, 0.699999988079071, 0.4000000059604645, 0.699999988079071),
2539    Aabb::new(0.0, 0.5, 0.0, 1.0, 1.0, 1.0),
2540    Aabb::new(0.0, 0.20000000298023224, 0.3499999940395355, 0.30000001192092896, 0.800000011920929, 0.6499999761581421),
2541    Aabb::new(0.699999988079071, 0.20000000298023224, 0.3499999940395355, 1.0, 0.800000011920929, 0.6499999761581421),
2542    Aabb::new(0.3499999940395355, 0.20000000298023224, 0.0, 0.6499999761581421, 0.800000011920929, 0.30000001192092896),
2543    Aabb::new(0.3499999940395355, 0.20000000298023224, 0.699999988079071, 0.6499999761581421, 0.800000011920929, 1.0),
2544    Aabb::new(0.4000000059604645, 0.0, 0.4000000059604645, 0.6000000238418579, 0.6000000238418579, 0.6000000238418579),
2545    Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 0.875, 0.9375),
2546    Aabb::new(0.1875, 0.0, 0.1875, 0.8125, 0.0625, 0.8125),
2547    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.375, 1.0),
2548    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.625, 1.0),
2549    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.875, 1.0),
2550    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.9375, 1.0),
2551    Aabb::new(0.25, 0.0, 0.25, 0.75, 1.0, 0.75),
2552    Aabb::new(0.0, 0.0, 0.0, 0.1875, 1.0, 1.0),
2553    Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 0.1875),
2554    Aabb::new(0.8125, 0.0, 0.0, 1.0, 1.0, 1.0),
2555    Aabb::new(0.0, 0.0, 0.8125, 1.0, 1.0, 1.0),
2556    Aabb::new(0.0, 0.28125, 0.875, 1.0, 0.78125, 1.0),
2557    Aabb::new(0.0, 0.28125, 0.0, 1.0, 0.78125, 0.125),
2558    Aabb::new(0.875, 0.28125, 0.0, 1.0, 0.78125, 1.0),
2559    Aabb::new(0.0, 0.28125, 0.0, 0.125, 0.78125, 1.0),
2560    Aabb::new(0.25, 0.4000000059604645, 0.25, 0.75, 1.0, 0.75),
2561    Aabb::new(0.0, 0.20000000298023224, 0.3125, 0.375, 0.800000011920929, 0.6875),
2562    Aabb::new(0.625, 0.20000000298023224, 0.3125, 1.0, 0.800000011920929, 0.6875),
2563    Aabb::new(0.3125, 0.20000000298023224, 0.0, 0.6875, 0.800000011920929, 0.375),
2564    Aabb::new(0.3125, 0.20000000298023224, 0.625, 0.6875, 0.800000011920929, 1.0),
2565    Aabb::new(0.25, 0.0, 0.25, 0.75, 0.6000000238418579, 0.75),
2566    Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 0.0625, 0.9375),
2567    Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 0.03125, 0.9375),
2568    Aabb::new(0.3125, 0.875, 0.375, 0.6875, 1.0, 0.625),
2569    Aabb::new(0.0, 0.375, 0.3125, 0.125, 0.625, 0.6875),
2570    Aabb::new(0.875, 0.375, 0.3125, 1.0, 0.625, 0.6875),
2571    Aabb::new(0.3125, 0.375, 0.0, 0.6875, 0.625, 0.125),
2572    Aabb::new(0.3125, 0.375, 0.875, 0.6875, 0.625, 1.0),
2573    Aabb::new(0.3125, 0.0, 0.375, 0.6875, 0.125, 0.625),
2574    Aabb::new(0.3125, 0.9375, 0.375, 0.6875, 1.0, 0.625),
2575    Aabb::new(0.0, 0.375, 0.3125, 0.0625, 0.625, 0.6875),
2576    Aabb::new(0.9375, 0.375, 0.3125, 1.0, 0.625, 0.6875),
2577    Aabb::new(0.3125, 0.375, 0.0, 0.6875, 0.625, 0.0625),
2578    Aabb::new(0.3125, 0.375, 0.9375, 0.6875, 0.625, 1.0),
2579    Aabb::new(0.3125, 0.0, 0.375, 0.6875, 0.0625, 0.625),
2580    Aabb::new(0.125, 0.0, 0.125, 0.875, 1.0, 0.875),
2581    Aabb::new(0.375, 0.0, 0.375, 0.625, 1.0, 0.625),
2582    Aabb::new(0.0, 0.0, 0.375, 1.0, 1.0, 0.625),
2583    Aabb::new(0.375, 0.0, 0.0, 0.625, 1.0, 1.0),
2584    Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 0.5, 0.9375),
2585    Aabb::new(0.1875, 0.0, 0.0625, 0.9375, 0.5, 0.9375),
2586    Aabb::new(0.3125, 0.0, 0.0625, 0.9375, 0.5, 0.9375),
2587    Aabb::new(0.4375, 0.0, 0.0625, 0.9375, 0.5, 0.9375),
2588    Aabb::new(0.5625, 0.0, 0.0625, 0.9375, 0.5, 0.9375),
2589    Aabb::new(0.6875, 0.0, 0.0625, 0.9375, 0.5, 0.9375),
2590    Aabb::new(0.8125, 0.0, 0.0625, 0.9375, 0.5, 0.9375),
2591    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.1875, 1.0),
2592    Aabb::new(0.0, 0.8125, 0.0, 1.0, 1.0, 1.0),
2593    Aabb::new(0.4375, 0.0, 0.4375, 0.5625, 1.0, 0.5625),
2594    Aabb::new(0.375, 0.0, 0.375, 0.625, 0.125, 0.625),
2595    Aabb::new(0.375, 0.0, 0.375, 0.625, 0.25, 0.625),
2596    Aabb::new(0.375, 0.0, 0.375, 0.625, 0.375, 0.625),
2597    Aabb::new(0.375, 0.0, 0.375, 0.625, 0.5, 0.625),
2598    Aabb::new(0.375, 0.0, 0.375, 0.625, 0.625, 0.625),
2599    Aabb::new(0.375, 0.0, 0.375, 0.625, 0.75, 0.625),
2600    Aabb::new(0.375, 0.0, 0.375, 0.625, 0.875, 0.625),
2601    Aabb::new(0.0, 0.0, 0.9375, 1.0, 1.0, 1.0),
2602    Aabb::new(0.0, 0.0, 0.0, 0.0625, 1.0, 1.0),
2603    Aabb::new(0.0, 0.0, 0.0, 1.0, 1.0, 0.0625),
2604    Aabb::new(0.9375, 0.0, 0.0, 1.0, 1.0, 1.0),
2605    Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 0.09375, 0.9375),
2606    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.3125, 1.0),
2607    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.6875, 1.0),
2608    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.8125, 1.0),
2609    Aabb::new(0.0625, 0.0, 0.0625, 0.9375, 1.0, 0.9375),
2610    Aabb::new(0.375, 0.4375, 0.6875, 0.625, 0.75, 0.9375),
2611    Aabb::new(0.0625, 0.4375, 0.375, 0.3125, 0.75, 0.625),
2612    Aabb::new(0.375, 0.4375, 0.0625, 0.625, 0.75, 0.3125),
2613    Aabb::new(0.6875, 0.4375, 0.375, 0.9375, 0.75, 0.625),
2614    Aabb::new(0.3125, 0.3125, 0.5625, 0.6875, 0.75, 0.9375),
2615    Aabb::new(0.0625, 0.3125, 0.3125, 0.4375, 0.75, 0.6875),
2616    Aabb::new(0.3125, 0.3125, 0.0625, 0.6875, 0.75, 0.4375),
2617    Aabb::new(0.5625, 0.3125, 0.3125, 0.9375, 0.75, 0.6875),
2618    Aabb::new(0.25, 0.1875, 0.4375, 0.75, 0.75, 0.9375),
2619    Aabb::new(0.0625, 0.1875, 0.25, 0.5625, 0.75, 0.75),
2620    Aabb::new(0.25, 0.1875, 0.0625, 0.75, 0.75, 0.5625),
2621    Aabb::new(0.4375, 0.1875, 0.25, 0.9375, 0.75, 0.75),
2622    Aabb::new(0.3125, 0.0, 0.0, 0.6875, 0.625, 0.375),
2623    Aabb::new(0.625, 0.0, 0.3125, 1.0, 0.625, 0.6875),
2624    Aabb::new(0.3125, 0.0, 0.625, 0.6875, 0.625, 1.0),
2625    Aabb::new(0.0, 0.0, 0.3125, 0.375, 0.625, 0.6875),
2626    Aabb::new(0.0, 0.0625, 0.0, 1.0, 0.15625, 1.0),
2627    Aabb::new(0.3125, 0.0, 0.3125, 0.6875, 0.375, 0.6875),
2628    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.4375, 1.0),
2629    Aabb::new(0.25, 0.0, 0.25, 0.75, 0.5, 0.75),
2630    Aabb::new(0.25, 0.25, 0.5, 0.75, 0.75, 1.0),
2631    Aabb::new(0.25, 0.25, 0.0, 0.75, 0.75, 0.5),
2632    Aabb::new(0.5, 0.25, 0.25, 1.0, 0.75, 0.75),
2633    Aabb::new(0.0, 0.25, 0.25, 0.5, 0.75, 0.75),
2634    Aabb::new(0.125, 0.0, 0.0, 0.875, 1.0, 1.0),
2635    Aabb::new(0.0, 0.0, 0.125, 1.0, 1.0, 0.875),
2636    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.0625, 1.0),
2637    Aabb::new(0.0, 0.0, 0.875, 1.0, 0.78125, 1.0),
2638    Aabb::new(0.0, 0.0, 0.0, 1.0, 0.78125, 0.125),
2639    Aabb::new(0.875, 0.0, 0.0, 1.0, 0.78125, 1.0),
2640    Aabb::new(0.0, 0.0, 0.0, 0.125, 0.78125, 1.0),
2641    Aabb::new(0.375, 0.375, 0.0, 0.625, 0.625, 1.0),
2642    Aabb::new(0.0, 0.375, 0.375, 1.0, 0.625, 0.625),
2643    Aabb::new(0.1875, 0.1875, 0.1875, 0.8125, 0.8125, 0.8125),
2644    Aabb::new(0.3, 0.3, 0.3, 0.7, 0.7, 0.7),
2645];
2646
2647/// Selection bounds index per raw state.
2648pub(crate) static STATE_SELECTION: [u16; 4096] = [
2649    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2650    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2651    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2652    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2653    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2654    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2655    1, 1, 1, 1, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 0, 0,
2656    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2657    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2658    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2659    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2660    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2661    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2662    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2663    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2664    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2665    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2666    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2667    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2668    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2669    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2670    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2671    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2672    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2673    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2674    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2675    2, 2, 2, 2, 0, 0, 0, 0, 2, 2, 2, 2, 2, 2, 2, 2,
2676    3, 3, 4, 4, 4, 4, 0, 0, 3, 3, 4, 4, 4, 4, 0, 0,
2677    3, 3, 4, 4, 4, 4, 0, 0, 3, 3, 4, 4, 4, 4, 0, 0,
2678    0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 7, 8, 9, 10, 0, 0,
2679    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2680    1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2681    1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2682    0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 7, 8, 9, 10, 0, 0,
2683    11, 12, 13, 14, 15, 16, 0, 0, 11, 12, 13, 14, 15, 16, 0, 0,
2684    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2685    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2686    17, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2687    17, 17, 17, 17, 17, 17, 17, 17, 17, 0, 0, 0, 0, 0, 0, 0,
2688    18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2689    18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2690    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2691    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2692    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2693    4, 4, 4, 4, 4, 4, 4, 4, 19, 19, 19, 19, 19, 19, 19, 19,
2694    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2695    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2696    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2697    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2698    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2699    0, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2700    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2701    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2702    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2703    0, 0, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2704    26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26, 26,
2705    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2706    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2707    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2708    3, 11, 27, 4, 28, 6, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2709    30, 30, 30, 30, 30, 30, 30, 30, 0, 0, 0, 0, 0, 0, 0, 0,
2710    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2711    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2712    31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
2713    32, 33, 34, 35, 35, 32, 33, 34, 32, 32, 32, 32, 0, 0, 0, 0,
2714    0, 0, 35, 33, 34, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2715    3, 3, 4, 4, 4, 4, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0,
2716    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2717    0, 0, 36, 37, 38, 39, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2718    40, 41, 42, 43, 44, 45, 45, 40, 40, 41, 42, 43, 44, 45, 45, 40,
2719    46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2720    32, 33, 34, 35, 35, 32, 33, 34, 32, 32, 32, 32, 0, 0, 0, 0,
2721    46, 47, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2722    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2723    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2724    0, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2725    0, 20, 21, 22, 23, 24, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2726    48, 49, 50, 51, 52, 53, 0, 0, 54, 55, 56, 57, 58, 59, 0, 0,
2727    3, 11, 27, 4, 28, 6, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2728    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2729    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2730    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2731    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2732    60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60, 60,
2733    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2734    61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2735    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2736    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2737    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2738    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2739    0, 62, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2740    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2741    64, 65, 66, 67, 68, 69, 70, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2742    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2743    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2744    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2745    71, 71, 71, 71, 35, 33, 34, 32, 72, 72, 72, 72, 35, 33, 34, 32,
2746    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2747    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2748    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2749    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2750    73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2751    73, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2752    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2753    74, 75, 76, 77, 78, 79, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0,
2754    74, 75, 76, 77, 78, 79, 80, 61, 0, 0, 0, 0, 0, 0, 0, 0,
2755    0, 81, 82, 0, 83, 0, 0, 0, 84, 0, 0, 0, 0, 0, 0, 0,
2756    62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63,
2757    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2758    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2759    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2760    85, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2761    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2762    61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2763    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2764    86, 4, 87, 29, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2765    6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2766    3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,
2767    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2768    6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2769    88, 88, 88, 88, 88, 88, 88, 88, 0, 0, 0, 0, 0, 0, 0, 0,
2770    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2771    89, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2772    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2773    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2774    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2775    4, 4, 4, 4, 4, 4, 0, 0, 19, 19, 19, 19, 19, 19, 0, 0,
2776    90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 0, 0, 0, 0,
2777    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2778    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2779    0, 0, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2780    102, 103, 104, 105, 102, 103, 104, 105, 102, 103, 104, 105, 102, 103, 104, 105,
2781    4, 4, 4, 4, 106, 106, 106, 106, 4, 4, 4, 4, 106, 106, 106, 0,
2782    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2783    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2784    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2785    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2786    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2787    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2788    31, 31, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2789    107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107, 107,
2790    3, 71, 11, 86, 27, 108, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0,
2791    3, 71, 11, 86, 27, 108, 4, 2, 0, 0, 0, 0, 0, 0, 0, 0,
2792    48, 49, 50, 51, 52, 53, 0, 0, 54, 55, 56, 57, 58, 59, 0, 0,
2793    109, 109, 110, 111, 112, 113, 0, 0, 109, 109, 110, 111, 112, 113, 0, 0,
2794    114, 115, 114, 115, 114, 115, 114, 115, 114, 115, 114, 115, 0, 0, 0, 0,
2795    0, 0, 25, 25, 25, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2796    46, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
2797    46, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47, 47,
2798    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2799    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2800    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
2801    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2802    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2803    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2804    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2805    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2806    3, 3, 4, 4, 4, 4, 0, 0, 3, 3, 4, 4, 4, 4, 0, 0,
2807    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2808    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2809    73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73, 73,
2810    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2811    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2812    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2813    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2814    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2815    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2816    71, 71, 71, 71, 35, 33, 34, 32, 72, 72, 72, 72, 35, 33, 34, 32,
2817    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2818    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2819    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2820    116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116,
2821    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2822    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2823    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2824    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2825    31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31, 31,
2826    0, 0, 117, 118, 119, 120, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2827    27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27, 27,
2828    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2829    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2830    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2831    4, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
2832    62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63,
2833    62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63,
2834    62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63,
2835    62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63,
2836    62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63, 62, 63,
2837    61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2838    61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2839    61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2840    61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2841    61, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2842    32, 33, 34, 35, 35, 32, 33, 34, 32, 32, 32, 32, 0, 0, 0, 0,
2843    32, 33, 34, 35, 35, 32, 33, 34, 32, 32, 32, 32, 0, 0, 0, 0,
2844    32, 33, 34, 35, 35, 32, 33, 34, 32, 32, 32, 32, 0, 0, 0, 0,
2845    32, 33, 34, 35, 35, 32, 33, 34, 32, 32, 32, 32, 0, 0, 0, 0,
2846    32, 33, 34, 35, 35, 32, 33, 34, 32, 32, 32, 32, 0, 0, 0, 0,
2847    61, 61, 121, 121, 122, 122, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2848    123, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2849    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2850    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2851    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2852    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2853    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2854    4, 0, 0, 0, 0, 0, 0, 0, 19, 0, 0, 0, 0, 0, 0, 0,
2855    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2856    3, 11, 27, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2857    30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2858    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2859    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2860    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2861    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2862    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2863    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2864    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2865    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2866    124, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2867    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2868    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2869    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2870    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2871    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2872    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2873    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2874    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2875    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2876    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2877    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2878    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2879    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2880    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2881    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2882    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2883    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2884    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2885    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2886    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2887    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2888    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2889    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2890    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2891    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2892    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2893    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2894    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2895    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2896    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2897    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2898    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2899    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2900    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2901    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2902    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2903    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2904    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2905];
2906
2907/// Per raw state: bit 0 canCollide(state, false), 1 canCollide(state, true), 2 has a collision box.
2908pub(crate) static STATE_SELECTION_FLAGS: [u8; 4096] = [
2909    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2910    7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2911    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2912    7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2913    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2914    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2915    3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0,
2916    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2917    2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2918    2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2919    2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2920    2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2921    7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2922    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2923    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2924    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2925    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2926    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2927    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2928    7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2929    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2930    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2931    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2932    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
2933    7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2934    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2935    7, 7, 7, 7, 0, 0, 0, 0, 7, 7, 7, 7, 7, 7, 7, 7,
2936    3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0,
2937    3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0,
2938    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
2939    3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2940    3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2941    3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2942    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
2943    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
2944    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2945    3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0,
2946    3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2947    3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0,
2948    3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2949    3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2950    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2951    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2952    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2953    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2954    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2955    7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2956    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2957    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2958    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2959    0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2960    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2961    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2962    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
2963    0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2964    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2965    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2966    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2967    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2968    3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,
2969    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
2970    0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2971    0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2972    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2973    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0,
2974    0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2975    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0,
2976    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
2977    0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2978    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2979    3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2980    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0,
2981    3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2982    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2983    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2984    0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2985    0, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2986    3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0,
2987    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
2988    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2989    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2990    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
2991    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2992    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
2993    7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2994    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2995    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2996    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2997    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2998    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
2999    0, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3000    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3001    7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3002    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3003    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3004    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3005    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3006    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3007    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3008    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7,
3009    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 7, 7,
3010    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3011    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3012    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3013    3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,
3014    3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,
3015    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3016    7, 7, 7, 7, 3, 3, 3, 3, 7, 7, 7, 7, 3, 3, 3, 3,
3017    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3018    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3019    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3020    3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3021    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3022    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3023    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3024    3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3025    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3026    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3027    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3028    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3029    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3030    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3031    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3032    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3033    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3034    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3035    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
3036    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0,
3037    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3038    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3039    0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3040    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3041    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0,
3042    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3043    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3044    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3045    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3046    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
3047    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3048    7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3049    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3050    3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,
3051    3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0,
3052    3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0,
3053    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
3054    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0,
3055    0, 0, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3056    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3057    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3058    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3059    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3060    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3061    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3062    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3063    7, 0, 7, 7, 7, 7, 0, 0, 7, 0, 7, 7, 7, 7, 0, 0,
3064    7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3065    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3066    3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 3, 3, 0, 0,
3067    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
3068    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3069    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3070    7, 7, 0, 0, 7, 7, 0, 0, 7, 7, 0, 0, 7, 7, 0, 0,
3071    7, 7, 0, 0, 7, 7, 0, 0, 7, 7, 0, 0, 7, 7, 0, 0,
3072    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3073    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3074    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3075    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3076    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3077    7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3078    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3079    7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
3080    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3081    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3082    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3083    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3084    3, 3, 3, 3, 3, 3, 0, 0, 3, 3, 3, 3, 0, 0, 0, 0,
3085    3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
3086    0, 0, 3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3087    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3088    7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3089    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3090    7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
3091    7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
3092    7, 7, 7, 7, 3, 3, 3, 3, 7, 7, 7, 7, 3, 3, 3, 3,
3093    7, 7, 7, 7, 3, 3, 3, 3, 7, 7, 7, 7, 3, 3, 3, 3,
3094    7, 7, 7, 7, 3, 3, 3, 3, 7, 7, 7, 7, 3, 3, 3, 3,
3095    7, 7, 7, 7, 3, 3, 3, 3, 7, 7, 7, 7, 3, 3, 3, 3,
3096    7, 7, 7, 7, 3, 3, 3, 3, 7, 7, 7, 7, 3, 3, 3, 3,
3097    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3098    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3099    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3100    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3101    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3102    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0,
3103    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0,
3104    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0,
3105    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0,
3106    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0,
3107    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3108    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3109    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3110    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3111    7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
3112    7, 7, 7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0,
3113    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3114    7, 0, 0, 0, 0, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
3115    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3116    3, 3, 3, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3117    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3118    3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3119    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
3120    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
3121    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3122    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3123    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3124    7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3125    7, 0, 0, 0, 7, 0, 0, 0, 7, 0, 0, 0, 0, 0, 0, 0,
3126    3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3127    7, 7, 7, 7, 7, 7, 0, 0, 7, 7, 7, 7, 7, 7, 0, 0,
3128    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3129    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3130    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3131    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3132    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3133    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3134    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3135    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3136    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3137    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3138    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3139    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3140    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3141    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3142    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3143    7, 7, 7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3144    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3145    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3146    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3147    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3148    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3149    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3150    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3151    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3152    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3153    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3154    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3155    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3156    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3157    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3158    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3159    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3160    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3161    7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7,
3162    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3163    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3164    7, 7, 7, 7, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
3165];