diff --git a/README.md b/README.md index 4af34d3..52eb40f 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Go-MC -![Version](https://img.shields.io/badge/Minecraft-1.18-blue.svg) +![Version](https://img.shields.io/badge/Minecraft-1.18.2-blue.svg) [![Go Reference](https://pkg.go.dev/badge/github.com/Tnze/go-mc.svg)](https://pkg.go.dev/github.com/Tnze/go-mc) [![Go Report Card](https://goreportcard.com/badge/github.com/Tnze/go-mc)](https://goreportcard.com/report/github.com/Tnze/go-mc) [![Build Status](https://travis-ci.org/Tnze/go-mc.svg?branch=master)](https://travis-ci.org/Tnze/go-mc) diff --git a/bot/basic/info.go b/bot/basic/info.go index b549157..25eb066 100644 --- a/bot/basic/info.go +++ b/bot/basic/info.go @@ -10,11 +10,8 @@ import ( // WorldInfo content player info in server. type WorldInfo struct { - DimensionCodec struct { - DimensionType interface{} `nbt:"minecraft:dimension_type"` - WorldgenBiome interface{} `nbt:"minecraft:worldgen/biome"` - } - Dimension interface{} + DimensionCodec nbt.StringifiedMessage + Dimension nbt.StringifiedMessage WorldNames []string // Identifiers for all worlds on the server. WorldName string // Name of the world being spawned into. HashedSeed int64 // First 8 bytes of the SHA-256 hash of the world's seed. Used client side for biome noise @@ -49,8 +46,8 @@ func (p *Player) handleLoginPacket(packet pk.Packet) error { (*pk.Byte)(&p.PrevGamemode), &WorldCount, pk.Ary{Len: &WorldCount, Ary: &WorldNames}, - pk.NBT(new(nbt.RawMessage)), - pk.NBT(new(nbt.RawMessage)), + pk.NBT(&p.WorldInfo.DimensionCodec), + pk.NBT(&p.WorldInfo.Dimension), (*pk.Identifier)(&p.WorldName), (*pk.Long)(&p.HashedSeed), (*pk.VarInt)(&p.MaxPlayers), diff --git a/bot/mcbot.go b/bot/mcbot.go index 8315dfc..bd57aef 100644 --- a/bot/mcbot.go +++ b/bot/mcbot.go @@ -6,6 +6,7 @@ package bot import ( "context" + "errors" "net" "strconv" @@ -16,7 +17,7 @@ import ( ) // ProtocolVersion is the protocol version number of minecraft net protocol -const ProtocolVersion = 757 +const ProtocolVersion = 758 const DefaultPort = mcnet.DefaultPort // JoinServer connect a Minecraft server for playing the game. @@ -27,20 +28,31 @@ func (c *Client) JoinServer(addr string) (err error) { // JoinServerWithDialer is similar to JoinServer but using a Dialer. func (c *Client) JoinServerWithDialer(d *net.Dialer, addr string) (err error) { - return c.join(context.Background(), &mcnet.Dialer{Dialer: d}, addr) + var dialer *mcnet.Dialer + if d != nil { + dialer = &mcnet.Dialer{Dialer: *d} + } + return c.join(context.Background(), dialer, addr) } func (c *Client) join(ctx context.Context, d *mcnet.Dialer, addr string) error { const Handshake = 0x00 - // Split Host and Port host, portStr, err := net.SplitHostPort(addr) + var port uint64 if err != nil { - return LoginErr{"split address", err} - } - port, err := strconv.ParseUint(portStr, 0, 16) - if err != nil { - return LoginErr{"parse port", err} + var addrErr *net.AddrError + const missingPort = "missing port in address" + if errors.As(err, &addrErr) && addrErr.Err == missingPort { + port = 25565 + } else { + return LoginErr{"split address", err} + } + } else { + port, err = strconv.ParseUint(portStr, 0, 16) + if err != nil { + return LoginErr{"parse port", err} + } } // Dial connection diff --git a/data/block/block.go b/data/block/block.go deleted file mode 100644 index 75c3701..0000000 --- a/data/block/block.go +++ /dev/null @@ -1,33857 +0,0 @@ -// Code generated by gen_block.go; DO NOT EDIT. - -// Package block stores information about blocks in Minecraft. -package block - -import ( - "math/bits" -) - -// BitsPerBlock indicates how many bits are needed to represent all possible -// block states. This value is used to determine the size of the global palette. -var BitsPerBlock = bits.Len(uint(len(StateID))) - -// ID describes the numeric ID of a block. -type ID uint32 - -// Block describes information about a type of block. -type Block struct { - ID ID - DisplayName string - Name string - - Hardness float64 - Diggable bool - DropIDs []uint32 - NeedsTools map[uint32]bool - - MinStateID uint32 - MaxStateID uint32 - - Transparent bool - FilterLightLevel int - EmitLightLevel int -} - -var ( - Air = Block{ - ID: 0, - DisplayName: "Air", - Name: "air", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 0, - MaxStateID: 0, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Stone = Block{ - ID: 1, - DisplayName: "Stone", - Name: "stone", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{21}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 1, - MaxStateID: 1, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Granite = Block{ - ID: 2, - DisplayName: "Granite", - Name: "granite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{2}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 2, - MaxStateID: 2, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedGranite = Block{ - ID: 3, - DisplayName: "Polished Granite", - Name: "polished_granite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{3}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 3, - MaxStateID: 3, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Diorite = Block{ - ID: 4, - DisplayName: "Diorite", - Name: "diorite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{4}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4, - MaxStateID: 4, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedDiorite = Block{ - ID: 5, - DisplayName: "Polished Diorite", - Name: "polished_diorite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{5}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5, - MaxStateID: 5, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Andesite = Block{ - ID: 6, - DisplayName: "Andesite", - Name: "andesite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{6}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6, - MaxStateID: 6, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedAndesite = Block{ - ID: 7, - DisplayName: "Polished Andesite", - Name: "polished_andesite", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{7}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7, - MaxStateID: 7, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrassBlock = Block{ - ID: 8, - DisplayName: "Grass Block", - Name: "grass_block", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8, - MaxStateID: 9, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Dirt = Block{ - ID: 9, - DisplayName: "Dirt", - Name: "dirt", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 10, - MaxStateID: 10, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CoarseDirt = Block{ - ID: 10, - DisplayName: "Coarse Dirt", - Name: "coarse_dirt", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{16}, - NeedsTools: map[uint32]bool{}, - MinStateID: 11, - MaxStateID: 11, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Podzol = Block{ - ID: 11, - DisplayName: "Podzol", - Name: "podzol", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 12, - MaxStateID: 13, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Cobblestone = Block{ - ID: 12, - DisplayName: "Cobblestone", - Name: "cobblestone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{21}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 14, - MaxStateID: 14, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakPlanks = Block{ - ID: 13, - DisplayName: "Oak Planks", - Name: "oak_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{22}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15, - MaxStateID: 15, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SprucePlanks = Block{ - ID: 14, - DisplayName: "Spruce Planks", - Name: "spruce_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{23}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16, - MaxStateID: 16, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BirchPlanks = Block{ - ID: 15, - DisplayName: "Birch Planks", - Name: "birch_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{24}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17, - MaxStateID: 17, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - JunglePlanks = Block{ - ID: 16, - DisplayName: "Jungle Planks", - Name: "jungle_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{25}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18, - MaxStateID: 18, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AcaciaPlanks = Block{ - ID: 17, - DisplayName: "Acacia Planks", - Name: "acacia_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{26}, - NeedsTools: map[uint32]bool{}, - MinStateID: 19, - MaxStateID: 19, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DarkOakPlanks = Block{ - ID: 18, - DisplayName: "Dark Oak Planks", - Name: "dark_oak_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{27}, - NeedsTools: map[uint32]bool{}, - MinStateID: 20, - MaxStateID: 20, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakSapling = Block{ - ID: 19, - DisplayName: "Oak Sapling", - Name: "oak_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{30}, - NeedsTools: map[uint32]bool{}, - MinStateID: 21, - MaxStateID: 22, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceSapling = Block{ - ID: 20, - DisplayName: "Spruce Sapling", - Name: "spruce_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{31}, - NeedsTools: map[uint32]bool{}, - MinStateID: 23, - MaxStateID: 24, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchSapling = Block{ - ID: 21, - DisplayName: "Birch Sapling", - Name: "birch_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{32}, - NeedsTools: map[uint32]bool{}, - MinStateID: 25, - MaxStateID: 26, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleSapling = Block{ - ID: 22, - DisplayName: "Jungle Sapling", - Name: "jungle_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{33}, - NeedsTools: map[uint32]bool{}, - MinStateID: 27, - MaxStateID: 28, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaSapling = Block{ - ID: 23, - DisplayName: "Acacia Sapling", - Name: "acacia_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{34}, - NeedsTools: map[uint32]bool{}, - MinStateID: 29, - MaxStateID: 30, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakSapling = Block{ - ID: 24, - DisplayName: "Dark Oak Sapling", - Name: "dark_oak_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{35}, - NeedsTools: map[uint32]bool{}, - MinStateID: 31, - MaxStateID: 32, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Bedrock = Block{ - ID: 25, - DisplayName: "Bedrock", - Name: "bedrock", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 33, - MaxStateID: 33, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Water = Block{ - ID: 26, - DisplayName: "Air", - Name: "water", - Hardness: 100, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 34, - MaxStateID: 49, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - Lava = Block{ - ID: 27, - DisplayName: "Air", - Name: "lava", - Hardness: 100, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 50, - MaxStateID: 65, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 15, - } - Sand = Block{ - ID: 28, - DisplayName: "Sand", - Name: "sand", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{37}, - NeedsTools: map[uint32]bool{}, - MinStateID: 66, - MaxStateID: 66, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedSand = Block{ - ID: 29, - DisplayName: "Red Sand", - Name: "red_sand", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{38}, - NeedsTools: map[uint32]bool{}, - MinStateID: 67, - MaxStateID: 67, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Gravel = Block{ - ID: 30, - DisplayName: "Gravel", - Name: "gravel", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{39}, - NeedsTools: map[uint32]bool{}, - MinStateID: 68, - MaxStateID: 68, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GoldOre = Block{ - ID: 31, - DisplayName: "Gold Ore", - Name: "gold_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{695}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 69, - MaxStateID: 69, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateGoldOre = Block{ - ID: 32, - DisplayName: "Deepslate Gold Ore", - Name: "deepslate_gold_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{695}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 70, - MaxStateID: 70, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - IronOre = Block{ - ID: 33, - DisplayName: "Iron Ore", - Name: "iron_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{691}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 71, - MaxStateID: 71, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateIronOre = Block{ - ID: 34, - DisplayName: "Deepslate Iron Ore", - Name: "deepslate_iron_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{691}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 72, - MaxStateID: 72, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CoalOre = Block{ - ID: 35, - DisplayName: "Coal Ore", - Name: "coal_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{684}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 73, - MaxStateID: 73, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateCoalOre = Block{ - ID: 36, - DisplayName: "Deepslate Coal Ore", - Name: "deepslate_coal_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{684}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 74, - MaxStateID: 74, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - NetherGoldOre = Block{ - ID: 37, - DisplayName: "Nether Gold Ore", - Name: "nether_gold_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{861}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 75, - MaxStateID: 75, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakLog = Block{ - ID: 38, - DisplayName: "Oak Log", - Name: "oak_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{101}, - NeedsTools: map[uint32]bool{}, - MinStateID: 76, - MaxStateID: 78, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SpruceLog = Block{ - ID: 39, - DisplayName: "Spruce Log", - Name: "spruce_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{102}, - NeedsTools: map[uint32]bool{}, - MinStateID: 79, - MaxStateID: 81, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BirchLog = Block{ - ID: 40, - DisplayName: "Birch Log", - Name: "birch_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{103}, - NeedsTools: map[uint32]bool{}, - MinStateID: 82, - MaxStateID: 84, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - JungleLog = Block{ - ID: 41, - DisplayName: "Jungle Log", - Name: "jungle_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{104}, - NeedsTools: map[uint32]bool{}, - MinStateID: 85, - MaxStateID: 87, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AcaciaLog = Block{ - ID: 42, - DisplayName: "Acacia Log", - Name: "acacia_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{105}, - NeedsTools: map[uint32]bool{}, - MinStateID: 88, - MaxStateID: 90, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DarkOakLog = Block{ - ID: 43, - DisplayName: "Dark Oak Log", - Name: "dark_oak_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{106}, - NeedsTools: map[uint32]bool{}, - MinStateID: 91, - MaxStateID: 93, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedSpruceLog = Block{ - ID: 44, - DisplayName: "Stripped Spruce Log", - Name: "stripped_spruce_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{110}, - NeedsTools: map[uint32]bool{}, - MinStateID: 94, - MaxStateID: 96, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedBirchLog = Block{ - ID: 45, - DisplayName: "Stripped Birch Log", - Name: "stripped_birch_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{111}, - NeedsTools: map[uint32]bool{}, - MinStateID: 97, - MaxStateID: 99, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedJungleLog = Block{ - ID: 46, - DisplayName: "Stripped Jungle Log", - Name: "stripped_jungle_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{112}, - NeedsTools: map[uint32]bool{}, - MinStateID: 100, - MaxStateID: 102, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedAcaciaLog = Block{ - ID: 47, - DisplayName: "Stripped Acacia Log", - Name: "stripped_acacia_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{113}, - NeedsTools: map[uint32]bool{}, - MinStateID: 103, - MaxStateID: 105, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedDarkOakLog = Block{ - ID: 48, - DisplayName: "Stripped Dark Oak Log", - Name: "stripped_dark_oak_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{114}, - NeedsTools: map[uint32]bool{}, - MinStateID: 106, - MaxStateID: 108, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedOakLog = Block{ - ID: 49, - DisplayName: "Stripped Oak Log", - Name: "stripped_oak_log", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{109}, - NeedsTools: map[uint32]bool{}, - MinStateID: 109, - MaxStateID: 111, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakWood = Block{ - ID: 50, - DisplayName: "Oak Wood", - Name: "oak_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{125}, - NeedsTools: map[uint32]bool{}, - MinStateID: 112, - MaxStateID: 114, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SpruceWood = Block{ - ID: 51, - DisplayName: "Spruce Wood", - Name: "spruce_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{126}, - NeedsTools: map[uint32]bool{}, - MinStateID: 115, - MaxStateID: 117, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BirchWood = Block{ - ID: 52, - DisplayName: "Birch Wood", - Name: "birch_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{127}, - NeedsTools: map[uint32]bool{}, - MinStateID: 118, - MaxStateID: 120, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - JungleWood = Block{ - ID: 53, - DisplayName: "Jungle Wood", - Name: "jungle_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{128}, - NeedsTools: map[uint32]bool{}, - MinStateID: 121, - MaxStateID: 123, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AcaciaWood = Block{ - ID: 54, - DisplayName: "Acacia Wood", - Name: "acacia_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{129}, - NeedsTools: map[uint32]bool{}, - MinStateID: 124, - MaxStateID: 126, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DarkOakWood = Block{ - ID: 55, - DisplayName: "Dark Oak Wood", - Name: "dark_oak_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{130}, - NeedsTools: map[uint32]bool{}, - MinStateID: 127, - MaxStateID: 129, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedOakWood = Block{ - ID: 56, - DisplayName: "Stripped Oak Wood", - Name: "stripped_oak_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{117}, - NeedsTools: map[uint32]bool{}, - MinStateID: 130, - MaxStateID: 132, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedSpruceWood = Block{ - ID: 57, - DisplayName: "Stripped Spruce Wood", - Name: "stripped_spruce_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{118}, - NeedsTools: map[uint32]bool{}, - MinStateID: 133, - MaxStateID: 135, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedBirchWood = Block{ - ID: 58, - DisplayName: "Stripped Birch Wood", - Name: "stripped_birch_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{119}, - NeedsTools: map[uint32]bool{}, - MinStateID: 136, - MaxStateID: 138, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedJungleWood = Block{ - ID: 59, - DisplayName: "Stripped Jungle Wood", - Name: "stripped_jungle_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{120}, - NeedsTools: map[uint32]bool{}, - MinStateID: 139, - MaxStateID: 141, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedAcaciaWood = Block{ - ID: 60, - DisplayName: "Stripped Acacia Wood", - Name: "stripped_acacia_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{121}, - NeedsTools: map[uint32]bool{}, - MinStateID: 142, - MaxStateID: 144, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedDarkOakWood = Block{ - ID: 61, - DisplayName: "Stripped Dark Oak Wood", - Name: "stripped_dark_oak_wood", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{122}, - NeedsTools: map[uint32]bool{}, - MinStateID: 145, - MaxStateID: 147, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakLeaves = Block{ - ID: 62, - DisplayName: "Oak Leaves", - Name: "oak_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 148, - MaxStateID: 161, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - SpruceLeaves = Block{ - ID: 63, - DisplayName: "Spruce Leaves", - Name: "spruce_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 162, - MaxStateID: 175, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BirchLeaves = Block{ - ID: 64, - DisplayName: "Birch Leaves", - Name: "birch_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 176, - MaxStateID: 189, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - JungleLeaves = Block{ - ID: 65, - DisplayName: "Jungle Leaves", - Name: "jungle_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 190, - MaxStateID: 203, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - AcaciaLeaves = Block{ - ID: 66, - DisplayName: "Acacia Leaves", - Name: "acacia_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 204, - MaxStateID: 217, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DarkOakLeaves = Block{ - ID: 67, - DisplayName: "Dark Oak Leaves", - Name: "dark_oak_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 218, - MaxStateID: 231, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - AzaleaLeaves = Block{ - ID: 68, - DisplayName: "Azalea Leaves", - Name: "azalea_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 232, - MaxStateID: 245, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - FloweringAzaleaLeaves = Block{ - ID: 69, - DisplayName: "Flowering Azalea Leaves", - Name: "flowering_azalea_leaves", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 246, - MaxStateID: 259, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - Sponge = Block{ - ID: 70, - DisplayName: "Sponge", - Name: "sponge", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{141}, - NeedsTools: map[uint32]bool{}, - MinStateID: 260, - MaxStateID: 260, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WetSponge = Block{ - ID: 71, - DisplayName: "Wet Sponge", - Name: "wet_sponge", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{142}, - NeedsTools: map[uint32]bool{}, - MinStateID: 261, - MaxStateID: 261, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Glass = Block{ - ID: 72, - DisplayName: "Glass", - Name: "glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 262, - MaxStateID: 262, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LapisOre = Block{ - ID: 73, - DisplayName: "Lapis Lazuli Ore", - Name: "lapis_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{688}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 263, - MaxStateID: 263, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateLapisOre = Block{ - ID: 74, - DisplayName: "Deepslate Lapis Lazuli Ore", - Name: "deepslate_lapis_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{688}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 264, - MaxStateID: 264, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LapisBlock = Block{ - ID: 75, - DisplayName: "Block of Lapis Lazuli", - Name: "lapis_block", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{145}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 265, - MaxStateID: 265, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Dispenser = Block{ - ID: 76, - DisplayName: "Dispenser", - Name: "dispenser", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{596}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 266, - MaxStateID: 277, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Sandstone = Block{ - ID: 77, - DisplayName: "Sandstone", - Name: "sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{146}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 278, - MaxStateID: 278, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChiseledSandstone = Block{ - ID: 78, - DisplayName: "Chiseled Sandstone", - Name: "chiseled_sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{147}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 279, - MaxStateID: 279, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CutSandstone = Block{ - ID: 79, - DisplayName: "Cut Sandstone", - Name: "cut_sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{148}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 280, - MaxStateID: 280, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - NoteBlock = Block{ - ID: 80, - DisplayName: "Note Block", - Name: "note_block", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{608}, - NeedsTools: map[uint32]bool{}, - MinStateID: 281, - MaxStateID: 1080, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteBed = Block{ - ID: 81, - DisplayName: "White Bed", - Name: "white_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1081, - MaxStateID: 1096, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeBed = Block{ - ID: 82, - DisplayName: "Orange Bed", - Name: "orange_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1097, - MaxStateID: 1112, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaBed = Block{ - ID: 83, - DisplayName: "Magenta Bed", - Name: "magenta_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1113, - MaxStateID: 1128, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueBed = Block{ - ID: 84, - DisplayName: "Light Blue Bed", - Name: "light_blue_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1129, - MaxStateID: 1144, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowBed = Block{ - ID: 85, - DisplayName: "Yellow Bed", - Name: "yellow_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1145, - MaxStateID: 1160, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeBed = Block{ - ID: 86, - DisplayName: "Lime Bed", - Name: "lime_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1161, - MaxStateID: 1176, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkBed = Block{ - ID: 87, - DisplayName: "Pink Bed", - Name: "pink_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1177, - MaxStateID: 1192, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayBed = Block{ - ID: 88, - DisplayName: "Gray Bed", - Name: "gray_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1193, - MaxStateID: 1208, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayBed = Block{ - ID: 89, - DisplayName: "Light Gray Bed", - Name: "light_gray_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1209, - MaxStateID: 1224, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanBed = Block{ - ID: 90, - DisplayName: "Cyan Bed", - Name: "cyan_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1225, - MaxStateID: 1240, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleBed = Block{ - ID: 91, - DisplayName: "Purple Bed", - Name: "purple_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1241, - MaxStateID: 1256, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueBed = Block{ - ID: 92, - DisplayName: "Blue Bed", - Name: "blue_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1257, - MaxStateID: 1272, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownBed = Block{ - ID: 93, - DisplayName: "Brown Bed", - Name: "brown_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1273, - MaxStateID: 1288, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenBed = Block{ - ID: 94, - DisplayName: "Green Bed", - Name: "green_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1289, - MaxStateID: 1304, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedBed = Block{ - ID: 95, - DisplayName: "Red Bed", - Name: "red_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1305, - MaxStateID: 1320, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackBed = Block{ - ID: 96, - DisplayName: "Black Bed", - Name: "black_bed", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1321, - MaxStateID: 1336, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PoweredRail = Block{ - ID: 97, - DisplayName: "Powered Rail", - Name: "powered_rail", - Hardness: 0.7, - Diggable: true, - DropIDs: []uint32{657}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1337, - MaxStateID: 1360, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DetectorRail = Block{ - ID: 98, - DisplayName: "Detector Rail", - Name: "detector_rail", - Hardness: 0.7, - Diggable: true, - DropIDs: []uint32{658}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1361, - MaxStateID: 1384, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StickyPiston = Block{ - ID: 99, - DisplayName: "Sticky Piston", - Name: "sticky_piston", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{591}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1385, - MaxStateID: 1396, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Cobweb = Block{ - ID: 100, - DisplayName: "Cobweb", - Name: "cobweb", - Hardness: 4, - Diggable: true, - DropIDs: []uint32{732}, - NeedsTools: map[uint32]bool{699: true, 704: true, 709: true, 714: true, 719: true, 724: true, 848: true}, - MinStateID: 1397, - MaxStateID: 1397, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - Grass = Block{ - ID: 101, - DisplayName: "Grass", - Name: "grass", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1398, - MaxStateID: 1398, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Fern = Block{ - ID: 102, - DisplayName: "Fern", - Name: "fern", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1399, - MaxStateID: 1399, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeadBush = Block{ - ID: 103, - DisplayName: "Dead Bush", - Name: "dead_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{729}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1400, - MaxStateID: 1400, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Seagrass = Block{ - ID: 104, - DisplayName: "Seagrass", - Name: "seagrass", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1401, - MaxStateID: 1401, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - TallSeagrass = Block{ - ID: 105, - DisplayName: "Air", - Name: "tall_seagrass", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1402, - MaxStateID: 1403, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - Piston = Block{ - ID: 106, - DisplayName: "Piston", - Name: "piston", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{590}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1404, - MaxStateID: 1415, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PistonHead = Block{ - ID: 107, - DisplayName: "Air", - Name: "piston_head", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1416, - MaxStateID: 1439, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteWool = Block{ - ID: 108, - DisplayName: "White Wool", - Name: "white_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{157}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1440, - MaxStateID: 1440, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OrangeWool = Block{ - ID: 109, - DisplayName: "Orange Wool", - Name: "orange_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{158}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1441, - MaxStateID: 1441, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MagentaWool = Block{ - ID: 110, - DisplayName: "Magenta Wool", - Name: "magenta_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{159}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1442, - MaxStateID: 1442, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightBlueWool = Block{ - ID: 111, - DisplayName: "Light Blue Wool", - Name: "light_blue_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{160}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1443, - MaxStateID: 1443, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - YellowWool = Block{ - ID: 112, - DisplayName: "Yellow Wool", - Name: "yellow_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{161}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1444, - MaxStateID: 1444, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LimeWool = Block{ - ID: 113, - DisplayName: "Lime Wool", - Name: "lime_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{162}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1445, - MaxStateID: 1445, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PinkWool = Block{ - ID: 114, - DisplayName: "Pink Wool", - Name: "pink_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{163}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1446, - MaxStateID: 1446, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrayWool = Block{ - ID: 115, - DisplayName: "Gray Wool", - Name: "gray_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{164}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1447, - MaxStateID: 1447, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightGrayWool = Block{ - ID: 116, - DisplayName: "Light Gray Wool", - Name: "light_gray_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{165}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1448, - MaxStateID: 1448, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CyanWool = Block{ - ID: 117, - DisplayName: "Cyan Wool", - Name: "cyan_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{166}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1449, - MaxStateID: 1449, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpleWool = Block{ - ID: 118, - DisplayName: "Purple Wool", - Name: "purple_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{167}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1450, - MaxStateID: 1450, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlueWool = Block{ - ID: 119, - DisplayName: "Blue Wool", - Name: "blue_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{168}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1451, - MaxStateID: 1451, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownWool = Block{ - ID: 120, - DisplayName: "Brown Wool", - Name: "brown_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{169}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1452, - MaxStateID: 1452, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GreenWool = Block{ - ID: 121, - DisplayName: "Green Wool", - Name: "green_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{170}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1453, - MaxStateID: 1453, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedWool = Block{ - ID: 122, - DisplayName: "Red Wool", - Name: "red_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{171}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1454, - MaxStateID: 1454, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackWool = Block{ - ID: 123, - DisplayName: "Black Wool", - Name: "black_wool", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{172}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1455, - MaxStateID: 1455, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MovingPiston = Block{ - ID: 124, - DisplayName: "Air", - Name: "moving_piston", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1456, - MaxStateID: 1467, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Dandelion = Block{ - ID: 125, - DisplayName: "Dandelion", - Name: "dandelion", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{173}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1468, - MaxStateID: 1468, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Poppy = Block{ - ID: 126, - DisplayName: "Poppy", - Name: "poppy", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{174}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1469, - MaxStateID: 1469, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueOrchid = Block{ - ID: 127, - DisplayName: "Blue Orchid", - Name: "blue_orchid", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{175}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1470, - MaxStateID: 1470, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Allium = Block{ - ID: 128, - DisplayName: "Allium", - Name: "allium", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{176}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1471, - MaxStateID: 1471, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AzureBluet = Block{ - ID: 129, - DisplayName: "Azure Bluet", - Name: "azure_bluet", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{177}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1472, - MaxStateID: 1472, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedTulip = Block{ - ID: 130, - DisplayName: "Red Tulip", - Name: "red_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{178}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1473, - MaxStateID: 1473, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeTulip = Block{ - ID: 131, - DisplayName: "Orange Tulip", - Name: "orange_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{179}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1474, - MaxStateID: 1474, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteTulip = Block{ - ID: 132, - DisplayName: "White Tulip", - Name: "white_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{180}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1475, - MaxStateID: 1475, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkTulip = Block{ - ID: 133, - DisplayName: "Pink Tulip", - Name: "pink_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{181}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1476, - MaxStateID: 1476, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OxeyeDaisy = Block{ - ID: 134, - DisplayName: "Oxeye Daisy", - Name: "oxeye_daisy", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{182}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1477, - MaxStateID: 1477, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Cornflower = Block{ - ID: 135, - DisplayName: "Cornflower", - Name: "cornflower", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{183}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1478, - MaxStateID: 1478, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WitherRose = Block{ - ID: 136, - DisplayName: "Wither Rose", - Name: "wither_rose", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{185}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1479, - MaxStateID: 1479, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LilyOfTheValley = Block{ - ID: 137, - DisplayName: "Lily of the Valley", - Name: "lily_of_the_valley", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{184}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1480, - MaxStateID: 1480, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownMushroom = Block{ - ID: 138, - DisplayName: "Brown Mushroom", - Name: "brown_mushroom", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{187}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1481, - MaxStateID: 1481, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - RedMushroom = Block{ - ID: 139, - DisplayName: "Red Mushroom", - Name: "red_mushroom", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{188}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1482, - MaxStateID: 1482, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GoldBlock = Block{ - ID: 140, - DisplayName: "Block of Gold", - Name: "gold_block", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{67}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 1483, - MaxStateID: 1483, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - IronBlock = Block{ - ID: 141, - DisplayName: "Block of Iron", - Name: "iron_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{65}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 1484, - MaxStateID: 1484, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Bricks = Block{ - ID: 142, - DisplayName: "Bricks", - Name: "bricks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{232}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 1485, - MaxStateID: 1485, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Tnt = Block{ - ID: 143, - DisplayName: "TNT", - Name: "tnt", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{606}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1486, - MaxStateID: 1487, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Bookshelf = Block{ - ID: 144, - DisplayName: "Bookshelf", - Name: "bookshelf", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{792}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1488, - MaxStateID: 1488, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MossyCobblestone = Block{ - ID: 145, - DisplayName: "Mossy Cobblestone", - Name: "mossy_cobblestone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{234}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 1489, - MaxStateID: 1489, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Obsidian = Block{ - ID: 146, - DisplayName: "Obsidian", - Name: "obsidian", - Hardness: 50, - Diggable: true, - DropIDs: []uint32{235}, - NeedsTools: map[uint32]bool{721: true, 726: true}, - MinStateID: 1490, - MaxStateID: 1490, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Torch = Block{ - ID: 147, - DisplayName: "Torch", - Name: "torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{236}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1491, - MaxStateID: 1491, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 14, - } - WallTorch = Block{ - ID: 148, - DisplayName: "Torch", - Name: "wall_torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{236}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1492, - MaxStateID: 1495, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 14, - } - Fire = Block{ - ID: 149, - DisplayName: "Air", - Name: "fire", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 1496, - MaxStateID: 2007, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - SoulFire = Block{ - ID: 150, - DisplayName: "Air", - Name: "soul_fire", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 2008, - MaxStateID: 2008, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 10, - } - Spawner = Block{ - ID: 151, - DisplayName: "Spawner", - Name: "spawner", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 2009, - MaxStateID: 2009, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - OakStairs = Block{ - ID: 152, - DisplayName: "Oak Stairs", - Name: "oak_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{244}, - NeedsTools: map[uint32]bool{}, - MinStateID: 2010, - MaxStateID: 2089, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Chest = Block{ - ID: 153, - DisplayName: "Chest", - Name: "chest", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{245}, - NeedsTools: map[uint32]bool{}, - MinStateID: 2090, - MaxStateID: 2113, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedstoneWire = Block{ - ID: 154, - DisplayName: "Redstone Dust", - Name: "redstone_wire", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{585}, - NeedsTools: map[uint32]bool{}, - MinStateID: 2114, - MaxStateID: 3409, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DiamondOre = Block{ - ID: 155, - DisplayName: "Diamond Ore", - Name: "diamond_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{686}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 3410, - MaxStateID: 3410, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateDiamondOre = Block{ - ID: 156, - DisplayName: "Deepslate Diamond Ore", - Name: "deepslate_diamond_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{686}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 3411, - MaxStateID: 3411, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DiamondBlock = Block{ - ID: 157, - DisplayName: "Block of Diamond", - Name: "diamond_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{68}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 3412, - MaxStateID: 3412, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CraftingTable = Block{ - ID: 158, - DisplayName: "Crafting Table", - Name: "crafting_table", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{246}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3413, - MaxStateID: 3413, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Wheat = Block{ - ID: 159, - DisplayName: "Wheat Seeds", - Name: "wheat", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{735}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3414, - MaxStateID: 3421, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Farmland = Block{ - ID: 160, - DisplayName: "Farmland", - Name: "farmland", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3422, - MaxStateID: 3429, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Furnace = Block{ - ID: 161, - DisplayName: "Furnace", - Name: "furnace", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{248}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 3430, - MaxStateID: 3437, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakSign = Block{ - ID: 162, - DisplayName: "Oak Sign", - Name: "oak_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{768}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3438, - MaxStateID: 3469, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceSign = Block{ - ID: 163, - DisplayName: "Spruce Sign", - Name: "spruce_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{769}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3470, - MaxStateID: 3501, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchSign = Block{ - ID: 164, - DisplayName: "Birch Sign", - Name: "birch_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{770}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3502, - MaxStateID: 3533, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaSign = Block{ - ID: 165, - DisplayName: "Acacia Sign", - Name: "acacia_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{772}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3534, - MaxStateID: 3565, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleSign = Block{ - ID: 166, - DisplayName: "Jungle Sign", - Name: "jungle_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{771}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3566, - MaxStateID: 3597, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakSign = Block{ - ID: 167, - DisplayName: "Dark Oak Sign", - Name: "dark_oak_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{773}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3598, - MaxStateID: 3629, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakDoor = Block{ - ID: 168, - DisplayName: "Oak Door", - Name: "oak_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{632}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3630, - MaxStateID: 3693, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Ladder = Block{ - ID: 169, - DisplayName: "Ladder", - Name: "ladder", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{249}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3694, - MaxStateID: 3701, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Rail = Block{ - ID: 170, - DisplayName: "Rail", - Name: "rail", - Hardness: 0.7, - Diggable: true, - DropIDs: []uint32{659}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3702, - MaxStateID: 3721, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CobblestoneStairs = Block{ - ID: 171, - DisplayName: "Cobblestone Stairs", - Name: "cobblestone_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{250}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 3722, - MaxStateID: 3801, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakWallSign = Block{ - ID: 172, - DisplayName: "Oak Sign", - Name: "oak_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{768}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3802, - MaxStateID: 3809, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceWallSign = Block{ - ID: 173, - DisplayName: "Spruce Sign", - Name: "spruce_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{769}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3810, - MaxStateID: 3817, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchWallSign = Block{ - ID: 174, - DisplayName: "Birch Sign", - Name: "birch_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{770}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3818, - MaxStateID: 3825, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaWallSign = Block{ - ID: 175, - DisplayName: "Acacia Sign", - Name: "acacia_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{772}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3826, - MaxStateID: 3833, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleWallSign = Block{ - ID: 176, - DisplayName: "Jungle Sign", - Name: "jungle_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{771}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3834, - MaxStateID: 3841, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakWallSign = Block{ - ID: 177, - DisplayName: "Dark Oak Sign", - Name: "dark_oak_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{773}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3842, - MaxStateID: 3849, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Lever = Block{ - ID: 178, - DisplayName: "Lever", - Name: "lever", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{600}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3850, - MaxStateID: 3873, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StonePressurePlate = Block{ - ID: 179, - DisplayName: "Stone Pressure Plate", - Name: "stone_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{619}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 3874, - MaxStateID: 3875, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - IronDoor = Block{ - ID: 180, - DisplayName: "Iron Door", - Name: "iron_door", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{631}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 3876, - MaxStateID: 3939, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakPressurePlate = Block{ - ID: 181, - DisplayName: "Oak Pressure Plate", - Name: "oak_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{623}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3940, - MaxStateID: 3941, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SprucePressurePlate = Block{ - ID: 182, - DisplayName: "Spruce Pressure Plate", - Name: "spruce_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{624}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3942, - MaxStateID: 3943, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchPressurePlate = Block{ - ID: 183, - DisplayName: "Birch Pressure Plate", - Name: "birch_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{625}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3944, - MaxStateID: 3945, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JunglePressurePlate = Block{ - ID: 184, - DisplayName: "Jungle Pressure Plate", - Name: "jungle_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{626}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3946, - MaxStateID: 3947, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaPressurePlate = Block{ - ID: 185, - DisplayName: "Acacia Pressure Plate", - Name: "acacia_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{627}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3948, - MaxStateID: 3949, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakPressurePlate = Block{ - ID: 186, - DisplayName: "Dark Oak Pressure Plate", - Name: "dark_oak_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{628}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3950, - MaxStateID: 3951, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedstoneOre = Block{ - ID: 187, - DisplayName: "Redstone Ore", - Name: "redstone_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{585}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 3952, - MaxStateID: 3953, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateRedstoneOre = Block{ - ID: 188, - DisplayName: "Deepslate Redstone Ore", - Name: "deepslate_redstone_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{585}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 3954, - MaxStateID: 3955, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedstoneTorch = Block{ - ID: 189, - DisplayName: "Redstone Torch", - Name: "redstone_torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{586}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3956, - MaxStateID: 3957, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 7, - } - RedstoneWallTorch = Block{ - ID: 190, - DisplayName: "Redstone Torch", - Name: "redstone_wall_torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{586}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3958, - MaxStateID: 3965, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 7, - } - StoneButton = Block{ - ID: 191, - DisplayName: "Stone Button", - Name: "stone_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{609}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3966, - MaxStateID: 3989, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Snow = Block{ - ID: 192, - DisplayName: "Snow", - Name: "snow", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{700: true, 705: true, 710: true, 715: true, 720: true, 725: true}, - MinStateID: 3990, - MaxStateID: 3997, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Ice = Block{ - ID: 193, - DisplayName: "Ice", - Name: "ice", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 3998, - MaxStateID: 3998, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - SnowBlock = Block{ - ID: 194, - DisplayName: "Snow Block", - Name: "snow_block", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{780}, - NeedsTools: map[uint32]bool{700: true, 705: true, 710: true, 715: true, 720: true, 725: true}, - MinStateID: 3999, - MaxStateID: 3999, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Cactus = Block{ - ID: 195, - DisplayName: "Cactus", - Name: "cactus", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{254}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4000, - MaxStateID: 4015, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Clay = Block{ - ID: 196, - DisplayName: "Clay", - Name: "clay", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{789}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4016, - MaxStateID: 4016, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SugarCane = Block{ - ID: 197, - DisplayName: "Sugar Cane", - Name: "sugar_cane", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{196}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4017, - MaxStateID: 4032, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Jukebox = Block{ - ID: 198, - DisplayName: "Jukebox", - Name: "jukebox", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{256}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4033, - MaxStateID: 4034, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OakFence = Block{ - ID: 199, - DisplayName: "Oak Fence", - Name: "oak_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{257}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4035, - MaxStateID: 4066, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Pumpkin = Block{ - ID: 200, - DisplayName: "Pumpkin", - Name: "pumpkin", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{265}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4067, - MaxStateID: 4067, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Netherrack = Block{ - ID: 201, - DisplayName: "Netherrack", - Name: "netherrack", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{268}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4068, - MaxStateID: 4068, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SoulSand = Block{ - ID: 202, - DisplayName: "Soul Sand", - Name: "soul_sand", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{269}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4069, - MaxStateID: 4069, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SoulSoil = Block{ - ID: 203, - DisplayName: "Soul Soil", - Name: "soul_soil", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{270}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4070, - MaxStateID: 4070, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Basalt = Block{ - ID: 204, - DisplayName: "Basalt", - Name: "basalt", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{271}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4071, - MaxStateID: 4073, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedBasalt = Block{ - ID: 205, - DisplayName: "Polished Basalt", - Name: "polished_basalt", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{272}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4074, - MaxStateID: 4076, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SoulTorch = Block{ - ID: 206, - DisplayName: "Soul Torch", - Name: "soul_torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{274}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4077, - MaxStateID: 4077, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 10, - } - SoulWallTorch = Block{ - ID: 207, - DisplayName: "Soul Torch", - Name: "soul_wall_torch", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{274}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4078, - MaxStateID: 4081, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 10, - } - Glowstone = Block{ - ID: 208, - DisplayName: "Glowstone", - Name: "glowstone", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{800}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4082, - MaxStateID: 4082, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 15, - } - NetherPortal = Block{ - ID: 209, - DisplayName: "Air", - Name: "nether_portal", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4083, - MaxStateID: 4084, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 11, - } - CarvedPumpkin = Block{ - ID: 210, - DisplayName: "Carved Pumpkin", - Name: "carved_pumpkin", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{266}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4085, - MaxStateID: 4088, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - JackOLantern = Block{ - ID: 211, - DisplayName: "Jack o'Lantern", - Name: "jack_o_lantern", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{267}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4089, - MaxStateID: 4092, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 15, - } - Cake = Block{ - ID: 212, - DisplayName: "Cake", - Name: "cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4093, - MaxStateID: 4099, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Repeater = Block{ - ID: 213, - DisplayName: "Redstone Repeater", - Name: "repeater", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{588}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4100, - MaxStateID: 4163, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteStainedGlass = Block{ - ID: 214, - DisplayName: "White Stained Glass", - Name: "white_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4164, - MaxStateID: 4164, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeStainedGlass = Block{ - ID: 215, - DisplayName: "Orange Stained Glass", - Name: "orange_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4165, - MaxStateID: 4165, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaStainedGlass = Block{ - ID: 216, - DisplayName: "Magenta Stained Glass", - Name: "magenta_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4166, - MaxStateID: 4166, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueStainedGlass = Block{ - ID: 217, - DisplayName: "Light Blue Stained Glass", - Name: "light_blue_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4167, - MaxStateID: 4167, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowStainedGlass = Block{ - ID: 218, - DisplayName: "Yellow Stained Glass", - Name: "yellow_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4168, - MaxStateID: 4168, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeStainedGlass = Block{ - ID: 219, - DisplayName: "Lime Stained Glass", - Name: "lime_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4169, - MaxStateID: 4169, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkStainedGlass = Block{ - ID: 220, - DisplayName: "Pink Stained Glass", - Name: "pink_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4170, - MaxStateID: 4170, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayStainedGlass = Block{ - ID: 221, - DisplayName: "Gray Stained Glass", - Name: "gray_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4171, - MaxStateID: 4171, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayStainedGlass = Block{ - ID: 222, - DisplayName: "Light Gray Stained Glass", - Name: "light_gray_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4172, - MaxStateID: 4172, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanStainedGlass = Block{ - ID: 223, - DisplayName: "Cyan Stained Glass", - Name: "cyan_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4173, - MaxStateID: 4173, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleStainedGlass = Block{ - ID: 224, - DisplayName: "Purple Stained Glass", - Name: "purple_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4174, - MaxStateID: 4174, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueStainedGlass = Block{ - ID: 225, - DisplayName: "Blue Stained Glass", - Name: "blue_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4175, - MaxStateID: 4175, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownStainedGlass = Block{ - ID: 226, - DisplayName: "Brown Stained Glass", - Name: "brown_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4176, - MaxStateID: 4176, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenStainedGlass = Block{ - ID: 227, - DisplayName: "Green Stained Glass", - Name: "green_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4177, - MaxStateID: 4177, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedStainedGlass = Block{ - ID: 228, - DisplayName: "Red Stained Glass", - Name: "red_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4178, - MaxStateID: 4178, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackStainedGlass = Block{ - ID: 229, - DisplayName: "Black Stained Glass", - Name: "black_stained_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4179, - MaxStateID: 4179, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakTrapdoor = Block{ - ID: 230, - DisplayName: "Oak Trapdoor", - Name: "oak_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{641}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4180, - MaxStateID: 4243, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceTrapdoor = Block{ - ID: 231, - DisplayName: "Spruce Trapdoor", - Name: "spruce_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{642}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4244, - MaxStateID: 4307, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchTrapdoor = Block{ - ID: 232, - DisplayName: "Birch Trapdoor", - Name: "birch_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{643}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4308, - MaxStateID: 4371, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleTrapdoor = Block{ - ID: 233, - DisplayName: "Jungle Trapdoor", - Name: "jungle_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{644}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4372, - MaxStateID: 4435, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaTrapdoor = Block{ - ID: 234, - DisplayName: "Acacia Trapdoor", - Name: "acacia_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{645}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4436, - MaxStateID: 4499, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakTrapdoor = Block{ - ID: 235, - DisplayName: "Dark Oak Trapdoor", - Name: "dark_oak_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{646}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4500, - MaxStateID: 4563, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneBricks = Block{ - ID: 236, - DisplayName: "Stone Bricks", - Name: "stone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{283}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4564, - MaxStateID: 4564, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MossyStoneBricks = Block{ - ID: 237, - DisplayName: "Mossy Stone Bricks", - Name: "mossy_stone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{284}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4565, - MaxStateID: 4565, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrackedStoneBricks = Block{ - ID: 238, - DisplayName: "Cracked Stone Bricks", - Name: "cracked_stone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{285}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4566, - MaxStateID: 4566, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChiseledStoneBricks = Block{ - ID: 239, - DisplayName: "Chiseled Stone Bricks", - Name: "chiseled_stone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{286}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4567, - MaxStateID: 4567, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedStone = Block{ - ID: 240, - DisplayName: "Infested Stone", - Name: "infested_stone", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4568, - MaxStateID: 4568, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedCobblestone = Block{ - ID: 241, - DisplayName: "Infested Cobblestone", - Name: "infested_cobblestone", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4569, - MaxStateID: 4569, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedStoneBricks = Block{ - ID: 242, - DisplayName: "Infested Stone Bricks", - Name: "infested_stone_bricks", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4570, - MaxStateID: 4570, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedMossyStoneBricks = Block{ - ID: 243, - DisplayName: "Infested Mossy Stone Bricks", - Name: "infested_mossy_stone_bricks", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4571, - MaxStateID: 4571, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedCrackedStoneBricks = Block{ - ID: 244, - DisplayName: "Infested Cracked Stone Bricks", - Name: "infested_cracked_stone_bricks", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4572, - MaxStateID: 4572, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedChiseledStoneBricks = Block{ - ID: 245, - DisplayName: "Infested Chiseled Stone Bricks", - Name: "infested_chiseled_stone_bricks", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4573, - MaxStateID: 4573, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownMushroomBlock = Block{ - ID: 246, - DisplayName: "Brown Mushroom Block", - Name: "brown_mushroom_block", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{0}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4574, - MaxStateID: 4637, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedMushroomBlock = Block{ - ID: 247, - DisplayName: "Red Mushroom Block", - Name: "red_mushroom_block", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{0}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4638, - MaxStateID: 4701, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MushroomStem = Block{ - ID: 248, - DisplayName: "Mushroom Stem", - Name: "mushroom_stem", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4702, - MaxStateID: 4765, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - IronBars = Block{ - ID: 249, - DisplayName: "Iron Bars", - Name: "iron_bars", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{295}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4766, - MaxStateID: 4797, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Chain = Block{ - ID: 250, - DisplayName: "Chain", - Name: "chain", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{296}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 4798, - MaxStateID: 4803, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GlassPane = Block{ - ID: 251, - DisplayName: "Glass Pane", - Name: "glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4804, - MaxStateID: 4835, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Melon = Block{ - ID: 252, - DisplayName: "Melon", - Name: "melon", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{849}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4836, - MaxStateID: 4836, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AttachedPumpkinStem = Block{ - ID: 253, - DisplayName: "Air", - Name: "attached_pumpkin_stem", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{851}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4837, - MaxStateID: 4840, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AttachedMelonStem = Block{ - ID: 254, - DisplayName: "Air", - Name: "attached_melon_stem", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{852}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4841, - MaxStateID: 4844, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PumpkinStem = Block{ - ID: 255, - DisplayName: "Pumpkin Seeds", - Name: "pumpkin_stem", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{0}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4845, - MaxStateID: 4852, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MelonStem = Block{ - ID: 256, - DisplayName: "Melon Seeds", - Name: "melon_stem", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{0}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4853, - MaxStateID: 4860, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Vine = Block{ - ID: 257, - DisplayName: "Vines", - Name: "vine", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4861, - MaxStateID: 4892, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GlowLichen = Block{ - ID: 258, - DisplayName: "Glow Lichen", - Name: "glow_lichen", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 4893, - MaxStateID: 5020, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakFenceGate = Block{ - ID: 259, - DisplayName: "Oak Fence Gate", - Name: "oak_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{649}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5021, - MaxStateID: 5052, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrickStairs = Block{ - ID: 260, - DisplayName: "Brick Stairs", - Name: "brick_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{301}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5053, - MaxStateID: 5132, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneBrickStairs = Block{ - ID: 261, - DisplayName: "Stone Brick Stairs", - Name: "stone_brick_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{302}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5133, - MaxStateID: 5212, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Mycelium = Block{ - ID: 262, - DisplayName: "Mycelium", - Name: "mycelium", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5213, - MaxStateID: 5214, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LilyPad = Block{ - ID: 263, - DisplayName: "Lily Pad", - Name: "lily_pad", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{304}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5215, - MaxStateID: 5215, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherBricks = Block{ - ID: 264, - DisplayName: "Nether Bricks", - Name: "nether_bricks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{305}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5216, - MaxStateID: 5216, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - NetherBrickFence = Block{ - ID: 265, - DisplayName: "Nether Brick Fence", - Name: "nether_brick_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{308}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5217, - MaxStateID: 5248, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherBrickStairs = Block{ - ID: 266, - DisplayName: "Nether Brick Stairs", - Name: "nether_brick_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{309}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5249, - MaxStateID: 5328, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherWart = Block{ - ID: 267, - DisplayName: "Nether Wart", - Name: "nether_wart", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{862}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5329, - MaxStateID: 5332, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EnchantingTable = Block{ - ID: 268, - DisplayName: "Enchanting Table", - Name: "enchanting_table", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{310}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5333, - MaxStateID: 5333, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrewingStand = Block{ - ID: 269, - DisplayName: "Brewing Stand", - Name: "brewing_stand", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{869}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5334, - MaxStateID: 5341, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - Cauldron = Block{ - ID: 270, - DisplayName: "Cauldron", - Name: "cauldron", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{870}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5342, - MaxStateID: 5342, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaterCauldron = Block{ - ID: 271, - DisplayName: "Cauldron", - Name: "water_cauldron", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{870}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5343, - MaxStateID: 5345, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LavaCauldron = Block{ - ID: 272, - DisplayName: "Cauldron", - Name: "lava_cauldron", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{870}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5346, - MaxStateID: 5346, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - PowderSnowCauldron = Block{ - ID: 273, - DisplayName: "Cauldron", - Name: "powder_snow_cauldron", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{870}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5347, - MaxStateID: 5349, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndPortal = Block{ - ID: 274, - DisplayName: "Air", - Name: "end_portal", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5350, - MaxStateID: 5350, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - EndPortalFrame = Block{ - ID: 275, - DisplayName: "End Portal Frame", - Name: "end_portal_frame", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5351, - MaxStateID: 5358, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - EndStone = Block{ - ID: 276, - DisplayName: "End Stone", - Name: "end_stone", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{312}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5359, - MaxStateID: 5359, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DragonEgg = Block{ - ID: 277, - DisplayName: "Dragon Egg", - Name: "dragon_egg", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{314}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5360, - MaxStateID: 5360, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - RedstoneLamp = Block{ - ID: 278, - DisplayName: "Redstone Lamp", - Name: "redstone_lamp", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{607}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5361, - MaxStateID: 5362, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Cocoa = Block{ - ID: 279, - DisplayName: "Cocoa Beans", - Name: "cocoa", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{809}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5363, - MaxStateID: 5374, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SandstoneStairs = Block{ - ID: 280, - DisplayName: "Sandstone Stairs", - Name: "sandstone_stairs", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{315}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5375, - MaxStateID: 5454, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EmeraldOre = Block{ - ID: 281, - DisplayName: "Emerald Ore", - Name: "emerald_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{687}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 5455, - MaxStateID: 5455, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateEmeraldOre = Block{ - ID: 282, - DisplayName: "Deepslate Emerald Ore", - Name: "deepslate_emerald_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{687}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 5456, - MaxStateID: 5456, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - EnderChest = Block{ - ID: 283, - DisplayName: "Ender Chest", - Name: "ender_chest", - Hardness: 22.5, - Diggable: true, - DropIDs: []uint32{235}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5457, - MaxStateID: 5464, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 7, - } - TripwireHook = Block{ - ID: 284, - DisplayName: "Tripwire Hook", - Name: "tripwire_hook", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{604}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5465, - MaxStateID: 5480, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Tripwire = Block{ - ID: 285, - DisplayName: "String", - Name: "tripwire", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{732}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5481, - MaxStateID: 5608, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EmeraldBlock = Block{ - ID: 286, - DisplayName: "Block of Emerald", - Name: "emerald_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{317}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 5609, - MaxStateID: 5609, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SpruceStairs = Block{ - ID: 287, - DisplayName: "Spruce Stairs", - Name: "spruce_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{318}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5610, - MaxStateID: 5689, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchStairs = Block{ - ID: 288, - DisplayName: "Birch Stairs", - Name: "birch_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{319}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5690, - MaxStateID: 5769, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleStairs = Block{ - ID: 289, - DisplayName: "Jungle Stairs", - Name: "jungle_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{320}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5770, - MaxStateID: 5849, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CommandBlock = Block{ - ID: 290, - DisplayName: "Command Block", - Name: "command_block", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5850, - MaxStateID: 5861, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Beacon = Block{ - ID: 291, - DisplayName: "Beacon", - Name: "beacon", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{324}, - NeedsTools: map[uint32]bool{}, - MinStateID: 5862, - MaxStateID: 5862, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 15, - } - CobblestoneWall = Block{ - ID: 292, - DisplayName: "Cobblestone Wall", - Name: "cobblestone_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{325}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 5863, - MaxStateID: 6186, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyCobblestoneWall = Block{ - ID: 293, - DisplayName: "Mossy Cobblestone Wall", - Name: "mossy_cobblestone_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{326}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6187, - MaxStateID: 6510, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - FlowerPot = Block{ - ID: 294, - DisplayName: "Flower Pot", - Name: "flower_pot", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6511, - MaxStateID: 6511, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedOakSapling = Block{ - ID: 295, - DisplayName: "Air", - Name: "potted_oak_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 30}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6512, - MaxStateID: 6512, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedSpruceSapling = Block{ - ID: 296, - DisplayName: "Air", - Name: "potted_spruce_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 31}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6513, - MaxStateID: 6513, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedBirchSapling = Block{ - ID: 297, - DisplayName: "Air", - Name: "potted_birch_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 32}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6514, - MaxStateID: 6514, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedJungleSapling = Block{ - ID: 298, - DisplayName: "Air", - Name: "potted_jungle_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 33}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6515, - MaxStateID: 6515, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedAcaciaSapling = Block{ - ID: 299, - DisplayName: "Air", - Name: "potted_acacia_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 34}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6516, - MaxStateID: 6516, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedDarkOakSapling = Block{ - ID: 300, - DisplayName: "Air", - Name: "potted_dark_oak_sapling", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 35}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6517, - MaxStateID: 6517, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedFern = Block{ - ID: 301, - DisplayName: "Air", - Name: "potted_fern", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 151}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6518, - MaxStateID: 6518, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedDandelion = Block{ - ID: 302, - DisplayName: "Air", - Name: "potted_dandelion", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 173}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6519, - MaxStateID: 6519, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedPoppy = Block{ - ID: 303, - DisplayName: "Air", - Name: "potted_poppy", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 174}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6520, - MaxStateID: 6520, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedBlueOrchid = Block{ - ID: 304, - DisplayName: "Air", - Name: "potted_blue_orchid", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 175}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6521, - MaxStateID: 6521, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedAllium = Block{ - ID: 305, - DisplayName: "Air", - Name: "potted_allium", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 176}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6522, - MaxStateID: 6522, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedAzureBluet = Block{ - ID: 306, - DisplayName: "Air", - Name: "potted_azure_bluet", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 177}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6523, - MaxStateID: 6523, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedRedTulip = Block{ - ID: 307, - DisplayName: "Air", - Name: "potted_red_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 178}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6524, - MaxStateID: 6524, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedOrangeTulip = Block{ - ID: 308, - DisplayName: "Air", - Name: "potted_orange_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 179}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6525, - MaxStateID: 6525, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedWhiteTulip = Block{ - ID: 309, - DisplayName: "Air", - Name: "potted_white_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 180}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6526, - MaxStateID: 6526, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedPinkTulip = Block{ - ID: 310, - DisplayName: "Air", - Name: "potted_pink_tulip", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 181}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6527, - MaxStateID: 6527, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedOxeyeDaisy = Block{ - ID: 311, - DisplayName: "Air", - Name: "potted_oxeye_daisy", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 182}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6528, - MaxStateID: 6528, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedCornflower = Block{ - ID: 312, - DisplayName: "Air", - Name: "potted_cornflower", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 183}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6529, - MaxStateID: 6529, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedLilyOfTheValley = Block{ - ID: 313, - DisplayName: "Air", - Name: "potted_lily_of_the_valley", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 184}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6530, - MaxStateID: 6530, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedWitherRose = Block{ - ID: 314, - DisplayName: "Air", - Name: "potted_wither_rose", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 185}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6531, - MaxStateID: 6531, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedRedMushroom = Block{ - ID: 315, - DisplayName: "Air", - Name: "potted_red_mushroom", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 188}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6532, - MaxStateID: 6532, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedBrownMushroom = Block{ - ID: 316, - DisplayName: "Air", - Name: "potted_brown_mushroom", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 187}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6533, - MaxStateID: 6533, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedDeadBush = Block{ - ID: 317, - DisplayName: "Air", - Name: "potted_dead_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 154}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6534, - MaxStateID: 6534, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedCactus = Block{ - ID: 318, - DisplayName: "Air", - Name: "potted_cactus", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 254}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6535, - MaxStateID: 6535, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Carrots = Block{ - ID: 319, - DisplayName: "Carrot", - Name: "carrots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{947}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6536, - MaxStateID: 6543, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Potatoes = Block{ - ID: 320, - DisplayName: "Potato", - Name: "potatoes", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{948}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6544, - MaxStateID: 6551, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakButton = Block{ - ID: 321, - DisplayName: "Oak Button", - Name: "oak_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{611}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6552, - MaxStateID: 6575, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceButton = Block{ - ID: 322, - DisplayName: "Spruce Button", - Name: "spruce_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{612}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6576, - MaxStateID: 6599, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchButton = Block{ - ID: 323, - DisplayName: "Birch Button", - Name: "birch_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{613}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6600, - MaxStateID: 6623, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleButton = Block{ - ID: 324, - DisplayName: "Jungle Button", - Name: "jungle_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{614}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6624, - MaxStateID: 6647, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaButton = Block{ - ID: 325, - DisplayName: "Acacia Button", - Name: "acacia_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{615}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6648, - MaxStateID: 6671, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakButton = Block{ - ID: 326, - DisplayName: "Dark Oak Button", - Name: "dark_oak_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{616}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6672, - MaxStateID: 6695, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SkeletonSkull = Block{ - ID: 327, - DisplayName: "Skeleton Skull", - Name: "skeleton_skull", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{953}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6696, - MaxStateID: 6711, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SkeletonWallSkull = Block{ - ID: 328, - DisplayName: "Skeleton Skull", - Name: "skeleton_wall_skull", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{953}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6712, - MaxStateID: 6715, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WitherSkeletonSkull = Block{ - ID: 329, - DisplayName: "Wither Skeleton Skull", - Name: "wither_skeleton_skull", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{954}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6716, - MaxStateID: 6731, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WitherSkeletonWallSkull = Block{ - ID: 330, - DisplayName: "Wither Skeleton Skull", - Name: "wither_skeleton_wall_skull", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{954}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6732, - MaxStateID: 6735, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ZombieHead = Block{ - ID: 331, - DisplayName: "Zombie Head", - Name: "zombie_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{956}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6736, - MaxStateID: 6751, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ZombieWallHead = Block{ - ID: 332, - DisplayName: "Zombie Head", - Name: "zombie_wall_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{956}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6752, - MaxStateID: 6755, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PlayerHead = Block{ - ID: 333, - DisplayName: "Player Head", - Name: "player_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{955}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6756, - MaxStateID: 6771, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PlayerWallHead = Block{ - ID: 334, - DisplayName: "Player Head", - Name: "player_wall_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{955}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6772, - MaxStateID: 6775, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CreeperHead = Block{ - ID: 335, - DisplayName: "Creeper Head", - Name: "creeper_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{957}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6776, - MaxStateID: 6791, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CreeperWallHead = Block{ - ID: 336, - DisplayName: "Creeper Head", - Name: "creeper_wall_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{957}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6792, - MaxStateID: 6795, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DragonHead = Block{ - ID: 337, - DisplayName: "Dragon Head", - Name: "dragon_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{958}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6796, - MaxStateID: 6811, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DragonWallHead = Block{ - ID: 338, - DisplayName: "Dragon Head", - Name: "dragon_wall_head", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{958}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6812, - MaxStateID: 6815, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Anvil = Block{ - ID: 339, - DisplayName: "Anvil", - Name: "anvil", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{346}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6816, - MaxStateID: 6819, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ChippedAnvil = Block{ - ID: 340, - DisplayName: "Chipped Anvil", - Name: "chipped_anvil", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{347}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6820, - MaxStateID: 6823, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DamagedAnvil = Block{ - ID: 341, - DisplayName: "Damaged Anvil", - Name: "damaged_anvil", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{348}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6824, - MaxStateID: 6827, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - TrappedChest = Block{ - ID: 342, - DisplayName: "Trapped Chest", - Name: "trapped_chest", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{605}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6828, - MaxStateID: 6851, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightWeightedPressurePlate = Block{ - ID: 343, - DisplayName: "Light Weighted Pressure Plate", - Name: "light_weighted_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{621}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6852, - MaxStateID: 6867, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - HeavyWeightedPressurePlate = Block{ - ID: 344, - DisplayName: "Heavy Weighted Pressure Plate", - Name: "heavy_weighted_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{622}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6868, - MaxStateID: 6883, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Comparator = Block{ - ID: 345, - DisplayName: "Redstone Comparator", - Name: "comparator", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{589}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6884, - MaxStateID: 6899, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DaylightDetector = Block{ - ID: 346, - DisplayName: "Daylight Detector", - Name: "daylight_detector", - Hardness: 0.2, - Diggable: true, - DropIDs: []uint32{602}, - NeedsTools: map[uint32]bool{}, - MinStateID: 6900, - MaxStateID: 6931, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedstoneBlock = Block{ - ID: 347, - DisplayName: "Block of Redstone", - Name: "redstone_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{587}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6932, - MaxStateID: 6932, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - NetherQuartzOre = Block{ - ID: 348, - DisplayName: "Nether Quartz Ore", - Name: "nether_quartz_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{689}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6933, - MaxStateID: 6933, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Hopper = Block{ - ID: 349, - DisplayName: "Hopper", - Name: "hopper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{595}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6934, - MaxStateID: 6943, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - QuartzBlock = Block{ - ID: 350, - DisplayName: "Block of Quartz", - Name: "quartz_block", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{350}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6944, - MaxStateID: 6944, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChiseledQuartzBlock = Block{ - ID: 351, - DisplayName: "Chiseled Quartz Block", - Name: "chiseled_quartz_block", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{349}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6945, - MaxStateID: 6945, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - QuartzPillar = Block{ - ID: 352, - DisplayName: "Quartz Pillar", - Name: "quartz_pillar", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{352}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6946, - MaxStateID: 6948, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - QuartzStairs = Block{ - ID: 353, - DisplayName: "Quartz Stairs", - Name: "quartz_stairs", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{353}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 6949, - MaxStateID: 7028, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ActivatorRail = Block{ - ID: 354, - DisplayName: "Activator Rail", - Name: "activator_rail", - Hardness: 0.7, - Diggable: true, - DropIDs: []uint32{660}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7029, - MaxStateID: 7052, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Dropper = Block{ - ID: 355, - DisplayName: "Dropper", - Name: "dropper", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{597}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7053, - MaxStateID: 7064, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteTerracotta = Block{ - ID: 356, - DisplayName: "White Terracotta", - Name: "white_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{354}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7065, - MaxStateID: 7065, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OrangeTerracotta = Block{ - ID: 357, - DisplayName: "Orange Terracotta", - Name: "orange_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{355}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7066, - MaxStateID: 7066, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MagentaTerracotta = Block{ - ID: 358, - DisplayName: "Magenta Terracotta", - Name: "magenta_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{356}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7067, - MaxStateID: 7067, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightBlueTerracotta = Block{ - ID: 359, - DisplayName: "Light Blue Terracotta", - Name: "light_blue_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{357}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7068, - MaxStateID: 7068, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - YellowTerracotta = Block{ - ID: 360, - DisplayName: "Yellow Terracotta", - Name: "yellow_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{358}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7069, - MaxStateID: 7069, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LimeTerracotta = Block{ - ID: 361, - DisplayName: "Lime Terracotta", - Name: "lime_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{359}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7070, - MaxStateID: 7070, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PinkTerracotta = Block{ - ID: 362, - DisplayName: "Pink Terracotta", - Name: "pink_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{360}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7071, - MaxStateID: 7071, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrayTerracotta = Block{ - ID: 363, - DisplayName: "Gray Terracotta", - Name: "gray_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{361}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7072, - MaxStateID: 7072, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightGrayTerracotta = Block{ - ID: 364, - DisplayName: "Light Gray Terracotta", - Name: "light_gray_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{362}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7073, - MaxStateID: 7073, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CyanTerracotta = Block{ - ID: 365, - DisplayName: "Cyan Terracotta", - Name: "cyan_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{363}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7074, - MaxStateID: 7074, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpleTerracotta = Block{ - ID: 366, - DisplayName: "Purple Terracotta", - Name: "purple_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{364}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7075, - MaxStateID: 7075, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlueTerracotta = Block{ - ID: 367, - DisplayName: "Blue Terracotta", - Name: "blue_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{365}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7076, - MaxStateID: 7076, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownTerracotta = Block{ - ID: 368, - DisplayName: "Brown Terracotta", - Name: "brown_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{366}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7077, - MaxStateID: 7077, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GreenTerracotta = Block{ - ID: 369, - DisplayName: "Green Terracotta", - Name: "green_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{367}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7078, - MaxStateID: 7078, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedTerracotta = Block{ - ID: 370, - DisplayName: "Red Terracotta", - Name: "red_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{368}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7079, - MaxStateID: 7079, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackTerracotta = Block{ - ID: 371, - DisplayName: "Black Terracotta", - Name: "black_terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{369}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7080, - MaxStateID: 7080, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteStainedGlassPane = Block{ - ID: 372, - DisplayName: "White Stained Glass Pane", - Name: "white_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7081, - MaxStateID: 7112, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeStainedGlassPane = Block{ - ID: 373, - DisplayName: "Orange Stained Glass Pane", - Name: "orange_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7113, - MaxStateID: 7144, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaStainedGlassPane = Block{ - ID: 374, - DisplayName: "Magenta Stained Glass Pane", - Name: "magenta_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7145, - MaxStateID: 7176, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueStainedGlassPane = Block{ - ID: 375, - DisplayName: "Light Blue Stained Glass Pane", - Name: "light_blue_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7177, - MaxStateID: 7208, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowStainedGlassPane = Block{ - ID: 376, - DisplayName: "Yellow Stained Glass Pane", - Name: "yellow_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7209, - MaxStateID: 7240, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeStainedGlassPane = Block{ - ID: 377, - DisplayName: "Lime Stained Glass Pane", - Name: "lime_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7241, - MaxStateID: 7272, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkStainedGlassPane = Block{ - ID: 378, - DisplayName: "Pink Stained Glass Pane", - Name: "pink_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7273, - MaxStateID: 7304, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayStainedGlassPane = Block{ - ID: 379, - DisplayName: "Gray Stained Glass Pane", - Name: "gray_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7305, - MaxStateID: 7336, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayStainedGlassPane = Block{ - ID: 380, - DisplayName: "Light Gray Stained Glass Pane", - Name: "light_gray_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7337, - MaxStateID: 7368, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanStainedGlassPane = Block{ - ID: 381, - DisplayName: "Cyan Stained Glass Pane", - Name: "cyan_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7369, - MaxStateID: 7400, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleStainedGlassPane = Block{ - ID: 382, - DisplayName: "Purple Stained Glass Pane", - Name: "purple_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7401, - MaxStateID: 7432, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueStainedGlassPane = Block{ - ID: 383, - DisplayName: "Blue Stained Glass Pane", - Name: "blue_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7433, - MaxStateID: 7464, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownStainedGlassPane = Block{ - ID: 384, - DisplayName: "Brown Stained Glass Pane", - Name: "brown_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7465, - MaxStateID: 7496, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenStainedGlassPane = Block{ - ID: 385, - DisplayName: "Green Stained Glass Pane", - Name: "green_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7497, - MaxStateID: 7528, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedStainedGlassPane = Block{ - ID: 386, - DisplayName: "Red Stained Glass Pane", - Name: "red_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7529, - MaxStateID: 7560, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackStainedGlassPane = Block{ - ID: 387, - DisplayName: "Black Stained Glass Pane", - Name: "black_stained_glass_pane", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7561, - MaxStateID: 7592, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaStairs = Block{ - ID: 388, - DisplayName: "Acacia Stairs", - Name: "acacia_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{391}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7593, - MaxStateID: 7672, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakStairs = Block{ - ID: 389, - DisplayName: "Dark Oak Stairs", - Name: "dark_oak_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{392}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7673, - MaxStateID: 7752, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SlimeBlock = Block{ - ID: 390, - DisplayName: "Slime Block", - Name: "slime_block", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{592}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7753, - MaxStateID: 7753, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - Barrier = Block{ - ID: 391, - DisplayName: "Barrier", - Name: "barrier", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7754, - MaxStateID: 7754, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Light = Block{ - ID: 392, - DisplayName: "Light", - Name: "light", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 7755, - MaxStateID: 7786, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - IronTrapdoor = Block{ - ID: 393, - DisplayName: "Iron Trapdoor", - Name: "iron_trapdoor", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{640}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7787, - MaxStateID: 7850, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Prismarine = Block{ - ID: 394, - DisplayName: "Prismarine", - Name: "prismarine", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{432}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7851, - MaxStateID: 7851, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PrismarineBricks = Block{ - ID: 395, - DisplayName: "Prismarine Bricks", - Name: "prismarine_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{433}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7852, - MaxStateID: 7852, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DarkPrismarine = Block{ - ID: 396, - DisplayName: "Dark Prismarine", - Name: "dark_prismarine", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{434}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7853, - MaxStateID: 7853, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PrismarineStairs = Block{ - ID: 397, - DisplayName: "Prismarine Stairs", - Name: "prismarine_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{435}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7854, - MaxStateID: 7933, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PrismarineBrickStairs = Block{ - ID: 398, - DisplayName: "Prismarine Brick Stairs", - Name: "prismarine_brick_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{436}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 7934, - MaxStateID: 8013, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkPrismarineStairs = Block{ - ID: 399, - DisplayName: "Dark Prismarine Stairs", - Name: "dark_prismarine_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{437}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8014, - MaxStateID: 8093, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PrismarineSlab = Block{ - ID: 400, - DisplayName: "Prismarine Slab", - Name: "prismarine_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{225}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8094, - MaxStateID: 8099, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PrismarineBrickSlab = Block{ - ID: 401, - DisplayName: "Prismarine Brick Slab", - Name: "prismarine_brick_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{226}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8100, - MaxStateID: 8105, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkPrismarineSlab = Block{ - ID: 402, - DisplayName: "Dark Prismarine Slab", - Name: "dark_prismarine_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{227}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8106, - MaxStateID: 8111, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SeaLantern = Block{ - ID: 403, - DisplayName: "Sea Lantern", - Name: "sea_lantern", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{966}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8112, - MaxStateID: 8112, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 15, - } - HayBlock = Block{ - ID: 404, - DisplayName: "Hay Bale", - Name: "hay_block", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{372}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8113, - MaxStateID: 8115, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteCarpet = Block{ - ID: 405, - DisplayName: "White Carpet", - Name: "white_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{373}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8116, - MaxStateID: 8116, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeCarpet = Block{ - ID: 406, - DisplayName: "Orange Carpet", - Name: "orange_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{374}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8117, - MaxStateID: 8117, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaCarpet = Block{ - ID: 407, - DisplayName: "Magenta Carpet", - Name: "magenta_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{375}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8118, - MaxStateID: 8118, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueCarpet = Block{ - ID: 408, - DisplayName: "Light Blue Carpet", - Name: "light_blue_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{376}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8119, - MaxStateID: 8119, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowCarpet = Block{ - ID: 409, - DisplayName: "Yellow Carpet", - Name: "yellow_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{377}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8120, - MaxStateID: 8120, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeCarpet = Block{ - ID: 410, - DisplayName: "Lime Carpet", - Name: "lime_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{378}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8121, - MaxStateID: 8121, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkCarpet = Block{ - ID: 411, - DisplayName: "Pink Carpet", - Name: "pink_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{379}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8122, - MaxStateID: 8122, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayCarpet = Block{ - ID: 412, - DisplayName: "Gray Carpet", - Name: "gray_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{380}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8123, - MaxStateID: 8123, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayCarpet = Block{ - ID: 413, - DisplayName: "Light Gray Carpet", - Name: "light_gray_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{381}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8124, - MaxStateID: 8124, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanCarpet = Block{ - ID: 414, - DisplayName: "Cyan Carpet", - Name: "cyan_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{382}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8125, - MaxStateID: 8125, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleCarpet = Block{ - ID: 415, - DisplayName: "Purple Carpet", - Name: "purple_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{383}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8126, - MaxStateID: 8126, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueCarpet = Block{ - ID: 416, - DisplayName: "Blue Carpet", - Name: "blue_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{384}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8127, - MaxStateID: 8127, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownCarpet = Block{ - ID: 417, - DisplayName: "Brown Carpet", - Name: "brown_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{385}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8128, - MaxStateID: 8128, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenCarpet = Block{ - ID: 418, - DisplayName: "Green Carpet", - Name: "green_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{386}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8129, - MaxStateID: 8129, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedCarpet = Block{ - ID: 419, - DisplayName: "Red Carpet", - Name: "red_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{387}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8130, - MaxStateID: 8130, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackCarpet = Block{ - ID: 420, - DisplayName: "Black Carpet", - Name: "black_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{388}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8131, - MaxStateID: 8131, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Terracotta = Block{ - ID: 421, - DisplayName: "Terracotta", - Name: "terracotta", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{389}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8132, - MaxStateID: 8132, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CoalBlock = Block{ - ID: 422, - DisplayName: "Block of Coal", - Name: "coal_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{59}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8133, - MaxStateID: 8133, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PackedIce = Block{ - ID: 423, - DisplayName: "Packed Ice", - Name: "packed_ice", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8134, - MaxStateID: 8134, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Sunflower = Block{ - ID: 424, - DisplayName: "Sunflower", - Name: "sunflower", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{394}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8135, - MaxStateID: 8136, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Lilac = Block{ - ID: 425, - DisplayName: "Lilac", - Name: "lilac", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{395}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8137, - MaxStateID: 8138, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RoseBush = Block{ - ID: 426, - DisplayName: "Rose Bush", - Name: "rose_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{396}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8139, - MaxStateID: 8140, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Peony = Block{ - ID: 427, - DisplayName: "Peony", - Name: "peony", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{397}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8141, - MaxStateID: 8142, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - TallGrass = Block{ - ID: 428, - DisplayName: "Tall Grass", - Name: "tall_grass", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8143, - MaxStateID: 8144, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LargeFern = Block{ - ID: 429, - DisplayName: "Large Fern", - Name: "large_fern", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8145, - MaxStateID: 8146, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteBanner = Block{ - ID: 430, - DisplayName: "White Banner", - Name: "white_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{982}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8147, - MaxStateID: 8162, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeBanner = Block{ - ID: 431, - DisplayName: "Orange Banner", - Name: "orange_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{983}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8163, - MaxStateID: 8178, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaBanner = Block{ - ID: 432, - DisplayName: "Magenta Banner", - Name: "magenta_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{984}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8179, - MaxStateID: 8194, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueBanner = Block{ - ID: 433, - DisplayName: "Light Blue Banner", - Name: "light_blue_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{985}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8195, - MaxStateID: 8210, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowBanner = Block{ - ID: 434, - DisplayName: "Yellow Banner", - Name: "yellow_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{986}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8211, - MaxStateID: 8226, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeBanner = Block{ - ID: 435, - DisplayName: "Lime Banner", - Name: "lime_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{987}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8227, - MaxStateID: 8242, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkBanner = Block{ - ID: 436, - DisplayName: "Pink Banner", - Name: "pink_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{988}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8243, - MaxStateID: 8258, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayBanner = Block{ - ID: 437, - DisplayName: "Gray Banner", - Name: "gray_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{989}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8259, - MaxStateID: 8274, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayBanner = Block{ - ID: 438, - DisplayName: "Light Gray Banner", - Name: "light_gray_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{990}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8275, - MaxStateID: 8290, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanBanner = Block{ - ID: 439, - DisplayName: "Cyan Banner", - Name: "cyan_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{991}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8291, - MaxStateID: 8306, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleBanner = Block{ - ID: 440, - DisplayName: "Purple Banner", - Name: "purple_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{992}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8307, - MaxStateID: 8322, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueBanner = Block{ - ID: 441, - DisplayName: "Blue Banner", - Name: "blue_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{993}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8323, - MaxStateID: 8338, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownBanner = Block{ - ID: 442, - DisplayName: "Brown Banner", - Name: "brown_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{994}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8339, - MaxStateID: 8354, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenBanner = Block{ - ID: 443, - DisplayName: "Green Banner", - Name: "green_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{995}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8355, - MaxStateID: 8370, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedBanner = Block{ - ID: 444, - DisplayName: "Red Banner", - Name: "red_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{996}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8371, - MaxStateID: 8386, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackBanner = Block{ - ID: 445, - DisplayName: "Black Banner", - Name: "black_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{997}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8387, - MaxStateID: 8402, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteWallBanner = Block{ - ID: 446, - DisplayName: "White Banner", - Name: "white_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{982}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8403, - MaxStateID: 8406, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeWallBanner = Block{ - ID: 447, - DisplayName: "Orange Banner", - Name: "orange_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{983}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8407, - MaxStateID: 8410, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaWallBanner = Block{ - ID: 448, - DisplayName: "Magenta Banner", - Name: "magenta_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{984}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8411, - MaxStateID: 8414, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueWallBanner = Block{ - ID: 449, - DisplayName: "Light Blue Banner", - Name: "light_blue_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{985}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8415, - MaxStateID: 8418, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowWallBanner = Block{ - ID: 450, - DisplayName: "Yellow Banner", - Name: "yellow_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{986}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8419, - MaxStateID: 8422, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeWallBanner = Block{ - ID: 451, - DisplayName: "Lime Banner", - Name: "lime_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{987}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8423, - MaxStateID: 8426, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkWallBanner = Block{ - ID: 452, - DisplayName: "Pink Banner", - Name: "pink_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{988}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8427, - MaxStateID: 8430, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayWallBanner = Block{ - ID: 453, - DisplayName: "Gray Banner", - Name: "gray_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{989}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8431, - MaxStateID: 8434, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayWallBanner = Block{ - ID: 454, - DisplayName: "Light Gray Banner", - Name: "light_gray_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{990}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8435, - MaxStateID: 8438, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanWallBanner = Block{ - ID: 455, - DisplayName: "Cyan Banner", - Name: "cyan_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{991}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8439, - MaxStateID: 8442, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleWallBanner = Block{ - ID: 456, - DisplayName: "Purple Banner", - Name: "purple_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{992}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8443, - MaxStateID: 8446, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueWallBanner = Block{ - ID: 457, - DisplayName: "Blue Banner", - Name: "blue_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{993}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8447, - MaxStateID: 8450, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownWallBanner = Block{ - ID: 458, - DisplayName: "Brown Banner", - Name: "brown_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{994}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8451, - MaxStateID: 8454, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenWallBanner = Block{ - ID: 459, - DisplayName: "Green Banner", - Name: "green_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{995}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8455, - MaxStateID: 8458, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedWallBanner = Block{ - ID: 460, - DisplayName: "Red Banner", - Name: "red_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{996}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8459, - MaxStateID: 8462, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackWallBanner = Block{ - ID: 461, - DisplayName: "Black Banner", - Name: "black_wall_banner", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{997}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8463, - MaxStateID: 8466, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedSandstone = Block{ - ID: 462, - DisplayName: "Red Sandstone", - Name: "red_sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{439}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8467, - MaxStateID: 8467, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChiseledRedSandstone = Block{ - ID: 463, - DisplayName: "Chiseled Red Sandstone", - Name: "chiseled_red_sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{440}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8468, - MaxStateID: 8468, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CutRedSandstone = Block{ - ID: 464, - DisplayName: "Cut Red Sandstone", - Name: "cut_red_sandstone", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{441}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8469, - MaxStateID: 8469, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedSandstoneStairs = Block{ - ID: 465, - DisplayName: "Red Sandstone Stairs", - Name: "red_sandstone_stairs", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{442}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8470, - MaxStateID: 8549, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OakSlab = Block{ - ID: 466, - DisplayName: "Oak Slab", - Name: "oak_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{204}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8550, - MaxStateID: 8555, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceSlab = Block{ - ID: 467, - DisplayName: "Spruce Slab", - Name: "spruce_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{205}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8556, - MaxStateID: 8561, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchSlab = Block{ - ID: 468, - DisplayName: "Birch Slab", - Name: "birch_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{206}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8562, - MaxStateID: 8567, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleSlab = Block{ - ID: 469, - DisplayName: "Jungle Slab", - Name: "jungle_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{207}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8568, - MaxStateID: 8573, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaSlab = Block{ - ID: 470, - DisplayName: "Acacia Slab", - Name: "acacia_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{208}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8574, - MaxStateID: 8579, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakSlab = Block{ - ID: 471, - DisplayName: "Dark Oak Slab", - Name: "dark_oak_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{209}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8580, - MaxStateID: 8585, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneSlab = Block{ - ID: 472, - DisplayName: "Stone Slab", - Name: "stone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{212}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8586, - MaxStateID: 8591, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothStoneSlab = Block{ - ID: 473, - DisplayName: "Smooth Stone Slab", - Name: "smooth_stone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{213}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8592, - MaxStateID: 8597, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SandstoneSlab = Block{ - ID: 474, - DisplayName: "Sandstone Slab", - Name: "sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{214}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8598, - MaxStateID: 8603, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CutSandstoneSlab = Block{ - ID: 475, - DisplayName: "Cut Sandstone Slab", - Name: "cut_sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{215}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8604, - MaxStateID: 8609, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PetrifiedOakSlab = Block{ - ID: 476, - DisplayName: "Petrified Oak Slab", - Name: "petrified_oak_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{216}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8610, - MaxStateID: 8615, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CobblestoneSlab = Block{ - ID: 477, - DisplayName: "Cobblestone Slab", - Name: "cobblestone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{217}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8616, - MaxStateID: 8621, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrickSlab = Block{ - ID: 478, - DisplayName: "Brick Slab", - Name: "brick_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{218}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8622, - MaxStateID: 8627, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneBrickSlab = Block{ - ID: 479, - DisplayName: "Stone Brick Slab", - Name: "stone_brick_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{219}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8628, - MaxStateID: 8633, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherBrickSlab = Block{ - ID: 480, - DisplayName: "Nether Brick Slab", - Name: "nether_brick_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{220}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8634, - MaxStateID: 8639, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - QuartzSlab = Block{ - ID: 481, - DisplayName: "Quartz Slab", - Name: "quartz_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{221}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8640, - MaxStateID: 8645, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedSandstoneSlab = Block{ - ID: 482, - DisplayName: "Red Sandstone Slab", - Name: "red_sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{222}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8646, - MaxStateID: 8651, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CutRedSandstoneSlab = Block{ - ID: 483, - DisplayName: "Cut Red Sandstone Slab", - Name: "cut_red_sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{223}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8652, - MaxStateID: 8657, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpurSlab = Block{ - ID: 484, - DisplayName: "Purpur Slab", - Name: "purpur_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{224}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8658, - MaxStateID: 8663, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothStone = Block{ - ID: 485, - DisplayName: "Smooth Stone", - Name: "smooth_stone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{231}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8664, - MaxStateID: 8664, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SmoothSandstone = Block{ - ID: 486, - DisplayName: "Smooth Sandstone", - Name: "smooth_sandstone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{230}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8665, - MaxStateID: 8665, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SmoothQuartz = Block{ - ID: 487, - DisplayName: "Smooth Quartz Block", - Name: "smooth_quartz", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{228}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8666, - MaxStateID: 8666, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SmoothRedSandstone = Block{ - ID: 488, - DisplayName: "Smooth Red Sandstone", - Name: "smooth_red_sandstone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{229}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 8667, - MaxStateID: 8667, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SpruceFenceGate = Block{ - ID: 489, - DisplayName: "Spruce Fence Gate", - Name: "spruce_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{650}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8668, - MaxStateID: 8699, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchFenceGate = Block{ - ID: 490, - DisplayName: "Birch Fence Gate", - Name: "birch_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{651}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8700, - MaxStateID: 8731, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleFenceGate = Block{ - ID: 491, - DisplayName: "Jungle Fence Gate", - Name: "jungle_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{652}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8732, - MaxStateID: 8763, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaFenceGate = Block{ - ID: 492, - DisplayName: "Acacia Fence Gate", - Name: "acacia_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{653}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8764, - MaxStateID: 8795, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakFenceGate = Block{ - ID: 493, - DisplayName: "Dark Oak Fence Gate", - Name: "dark_oak_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{654}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8796, - MaxStateID: 8827, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceFence = Block{ - ID: 494, - DisplayName: "Spruce Fence", - Name: "spruce_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{258}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8828, - MaxStateID: 8859, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchFence = Block{ - ID: 495, - DisplayName: "Birch Fence", - Name: "birch_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{259}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8860, - MaxStateID: 8891, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleFence = Block{ - ID: 496, - DisplayName: "Jungle Fence", - Name: "jungle_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{260}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8892, - MaxStateID: 8923, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaFence = Block{ - ID: 497, - DisplayName: "Acacia Fence", - Name: "acacia_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{261}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8924, - MaxStateID: 8955, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakFence = Block{ - ID: 498, - DisplayName: "Dark Oak Fence", - Name: "dark_oak_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{262}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8956, - MaxStateID: 8987, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SpruceDoor = Block{ - ID: 499, - DisplayName: "Spruce Door", - Name: "spruce_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{633}, - NeedsTools: map[uint32]bool{}, - MinStateID: 8988, - MaxStateID: 9051, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BirchDoor = Block{ - ID: 500, - DisplayName: "Birch Door", - Name: "birch_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{634}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9052, - MaxStateID: 9115, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - JungleDoor = Block{ - ID: 501, - DisplayName: "Jungle Door", - Name: "jungle_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{635}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9116, - MaxStateID: 9179, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AcaciaDoor = Block{ - ID: 502, - DisplayName: "Acacia Door", - Name: "acacia_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{636}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9180, - MaxStateID: 9243, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DarkOakDoor = Block{ - ID: 503, - DisplayName: "Dark Oak Door", - Name: "dark_oak_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{637}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9244, - MaxStateID: 9307, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndRod = Block{ - ID: 504, - DisplayName: "End Rod", - Name: "end_rod", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{237}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9308, - MaxStateID: 9313, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 14, - } - ChorusPlant = Block{ - ID: 505, - DisplayName: "Chorus Plant", - Name: "chorus_plant", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{999}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9314, - MaxStateID: 9377, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - ChorusFlower = Block{ - ID: 506, - DisplayName: "Chorus Flower", - Name: "chorus_flower", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9378, - MaxStateID: 9383, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - PurpurBlock = Block{ - ID: 507, - DisplayName: "Purpur Block", - Name: "purpur_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{240}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9384, - MaxStateID: 9384, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpurPillar = Block{ - ID: 508, - DisplayName: "Purpur Pillar", - Name: "purpur_pillar", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{241}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9385, - MaxStateID: 9387, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpurStairs = Block{ - ID: 509, - DisplayName: "Purpur Stairs", - Name: "purpur_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{242}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9388, - MaxStateID: 9467, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndStoneBricks = Block{ - ID: 510, - DisplayName: "End Stone Bricks", - Name: "end_stone_bricks", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{313}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9468, - MaxStateID: 9468, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Beetroots = Block{ - ID: 511, - DisplayName: "Beetroot Seeds", - Name: "beetroots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{1002}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9469, - MaxStateID: 9472, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DirtPath = Block{ - ID: 512, - DisplayName: "Dirt Path", - Name: "dirt_path", - Hardness: 0.65, - Diggable: true, - DropIDs: []uint32{15}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9473, - MaxStateID: 9473, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndGateway = Block{ - ID: 513, - DisplayName: "Air", - Name: "end_gateway", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9474, - MaxStateID: 9474, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 15, - } - RepeatingCommandBlock = Block{ - ID: 514, - DisplayName: "Repeating Command Block", - Name: "repeating_command_block", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9475, - MaxStateID: 9486, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChainCommandBlock = Block{ - ID: 515, - DisplayName: "Chain Command Block", - Name: "chain_command_block", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9487, - MaxStateID: 9498, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - FrostedIce = Block{ - ID: 516, - DisplayName: "Air", - Name: "frosted_ice", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9499, - MaxStateID: 9502, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - MagmaBlock = Block{ - ID: 517, - DisplayName: "Magma Block", - Name: "magma_block", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{445}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9503, - MaxStateID: 9503, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 3, - } - NetherWartBlock = Block{ - ID: 518, - DisplayName: "Nether Wart Block", - Name: "nether_wart_block", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{446}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9504, - MaxStateID: 9504, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedNetherBricks = Block{ - ID: 519, - DisplayName: "Red Nether Bricks", - Name: "red_nether_bricks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{448}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9505, - MaxStateID: 9505, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BoneBlock = Block{ - ID: 520, - DisplayName: "Bone Block", - Name: "bone_block", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{449}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9506, - MaxStateID: 9508, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StructureVoid = Block{ - ID: 521, - DisplayName: "Structure Void", - Name: "structure_void", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9509, - MaxStateID: 9509, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Observer = Block{ - ID: 522, - DisplayName: "Observer", - Name: "observer", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{594}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9510, - MaxStateID: 9521, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ShulkerBox = Block{ - ID: 523, - DisplayName: "Shulker Box", - Name: "shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{451}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9522, - MaxStateID: 9527, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - WhiteShulkerBox = Block{ - ID: 524, - DisplayName: "White Shulker Box", - Name: "white_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{452}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9528, - MaxStateID: 9533, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - OrangeShulkerBox = Block{ - ID: 525, - DisplayName: "Orange Shulker Box", - Name: "orange_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{453}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9534, - MaxStateID: 9539, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - MagentaShulkerBox = Block{ - ID: 526, - DisplayName: "Magenta Shulker Box", - Name: "magenta_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{454}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9540, - MaxStateID: 9545, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - LightBlueShulkerBox = Block{ - ID: 527, - DisplayName: "Light Blue Shulker Box", - Name: "light_blue_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{455}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9546, - MaxStateID: 9551, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - YellowShulkerBox = Block{ - ID: 528, - DisplayName: "Yellow Shulker Box", - Name: "yellow_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{456}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9552, - MaxStateID: 9557, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - LimeShulkerBox = Block{ - ID: 529, - DisplayName: "Lime Shulker Box", - Name: "lime_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{457}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9558, - MaxStateID: 9563, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - PinkShulkerBox = Block{ - ID: 530, - DisplayName: "Pink Shulker Box", - Name: "pink_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{458}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9564, - MaxStateID: 9569, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - GrayShulkerBox = Block{ - ID: 531, - DisplayName: "Gray Shulker Box", - Name: "gray_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{459}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9570, - MaxStateID: 9575, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - LightGrayShulkerBox = Block{ - ID: 532, - DisplayName: "Light Gray Shulker Box", - Name: "light_gray_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{460}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9576, - MaxStateID: 9581, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - CyanShulkerBox = Block{ - ID: 533, - DisplayName: "Cyan Shulker Box", - Name: "cyan_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{461}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9582, - MaxStateID: 9587, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - PurpleShulkerBox = Block{ - ID: 534, - DisplayName: "Purple Shulker Box", - Name: "purple_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{462}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9588, - MaxStateID: 9593, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BlueShulkerBox = Block{ - ID: 535, - DisplayName: "Blue Shulker Box", - Name: "blue_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{463}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9594, - MaxStateID: 9599, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BrownShulkerBox = Block{ - ID: 536, - DisplayName: "Brown Shulker Box", - Name: "brown_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{464}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9600, - MaxStateID: 9605, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - GreenShulkerBox = Block{ - ID: 537, - DisplayName: "Green Shulker Box", - Name: "green_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{465}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9606, - MaxStateID: 9611, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - RedShulkerBox = Block{ - ID: 538, - DisplayName: "Red Shulker Box", - Name: "red_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{466}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9612, - MaxStateID: 9617, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BlackShulkerBox = Block{ - ID: 539, - DisplayName: "Black Shulker Box", - Name: "black_shulker_box", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{467}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9618, - MaxStateID: 9623, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - WhiteGlazedTerracotta = Block{ - ID: 540, - DisplayName: "White Glazed Terracotta", - Name: "white_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{468}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9624, - MaxStateID: 9627, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OrangeGlazedTerracotta = Block{ - ID: 541, - DisplayName: "Orange Glazed Terracotta", - Name: "orange_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{469}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9628, - MaxStateID: 9631, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MagentaGlazedTerracotta = Block{ - ID: 542, - DisplayName: "Magenta Glazed Terracotta", - Name: "magenta_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{470}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9632, - MaxStateID: 9635, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightBlueGlazedTerracotta = Block{ - ID: 543, - DisplayName: "Light Blue Glazed Terracotta", - Name: "light_blue_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{471}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9636, - MaxStateID: 9639, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - YellowGlazedTerracotta = Block{ - ID: 544, - DisplayName: "Yellow Glazed Terracotta", - Name: "yellow_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{472}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9640, - MaxStateID: 9643, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LimeGlazedTerracotta = Block{ - ID: 545, - DisplayName: "Lime Glazed Terracotta", - Name: "lime_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{473}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9644, - MaxStateID: 9647, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PinkGlazedTerracotta = Block{ - ID: 546, - DisplayName: "Pink Glazed Terracotta", - Name: "pink_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{474}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9648, - MaxStateID: 9651, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrayGlazedTerracotta = Block{ - ID: 547, - DisplayName: "Gray Glazed Terracotta", - Name: "gray_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{475}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9652, - MaxStateID: 9655, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightGrayGlazedTerracotta = Block{ - ID: 548, - DisplayName: "Light Gray Glazed Terracotta", - Name: "light_gray_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{476}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9656, - MaxStateID: 9659, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CyanGlazedTerracotta = Block{ - ID: 549, - DisplayName: "Cyan Glazed Terracotta", - Name: "cyan_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{477}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9660, - MaxStateID: 9663, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpleGlazedTerracotta = Block{ - ID: 550, - DisplayName: "Purple Glazed Terracotta", - Name: "purple_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{478}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9664, - MaxStateID: 9667, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlueGlazedTerracotta = Block{ - ID: 551, - DisplayName: "Blue Glazed Terracotta", - Name: "blue_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{479}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9668, - MaxStateID: 9671, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownGlazedTerracotta = Block{ - ID: 552, - DisplayName: "Brown Glazed Terracotta", - Name: "brown_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{480}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9672, - MaxStateID: 9675, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GreenGlazedTerracotta = Block{ - ID: 553, - DisplayName: "Green Glazed Terracotta", - Name: "green_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{481}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9676, - MaxStateID: 9679, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedGlazedTerracotta = Block{ - ID: 554, - DisplayName: "Red Glazed Terracotta", - Name: "red_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{482}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9680, - MaxStateID: 9683, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackGlazedTerracotta = Block{ - ID: 555, - DisplayName: "Black Glazed Terracotta", - Name: "black_glazed_terracotta", - Hardness: 1.4, - Diggable: true, - DropIDs: []uint32{483}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9684, - MaxStateID: 9687, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteConcrete = Block{ - ID: 556, - DisplayName: "White Concrete", - Name: "white_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{484}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9688, - MaxStateID: 9688, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OrangeConcrete = Block{ - ID: 557, - DisplayName: "Orange Concrete", - Name: "orange_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{485}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9689, - MaxStateID: 9689, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MagentaConcrete = Block{ - ID: 558, - DisplayName: "Magenta Concrete", - Name: "magenta_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{486}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9690, - MaxStateID: 9690, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightBlueConcrete = Block{ - ID: 559, - DisplayName: "Light Blue Concrete", - Name: "light_blue_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{487}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9691, - MaxStateID: 9691, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - YellowConcrete = Block{ - ID: 560, - DisplayName: "Yellow Concrete", - Name: "yellow_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{488}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9692, - MaxStateID: 9692, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LimeConcrete = Block{ - ID: 561, - DisplayName: "Lime Concrete", - Name: "lime_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{489}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9693, - MaxStateID: 9693, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PinkConcrete = Block{ - ID: 562, - DisplayName: "Pink Concrete", - Name: "pink_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{490}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9694, - MaxStateID: 9694, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrayConcrete = Block{ - ID: 563, - DisplayName: "Gray Concrete", - Name: "gray_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{491}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9695, - MaxStateID: 9695, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightGrayConcrete = Block{ - ID: 564, - DisplayName: "Light Gray Concrete", - Name: "light_gray_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{492}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9696, - MaxStateID: 9696, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CyanConcrete = Block{ - ID: 565, - DisplayName: "Cyan Concrete", - Name: "cyan_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{493}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9697, - MaxStateID: 9697, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpleConcrete = Block{ - ID: 566, - DisplayName: "Purple Concrete", - Name: "purple_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{494}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9698, - MaxStateID: 9698, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlueConcrete = Block{ - ID: 567, - DisplayName: "Blue Concrete", - Name: "blue_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{495}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9699, - MaxStateID: 9699, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownConcrete = Block{ - ID: 568, - DisplayName: "Brown Concrete", - Name: "brown_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{496}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9700, - MaxStateID: 9700, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GreenConcrete = Block{ - ID: 569, - DisplayName: "Green Concrete", - Name: "green_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{497}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9701, - MaxStateID: 9701, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedConcrete = Block{ - ID: 570, - DisplayName: "Red Concrete", - Name: "red_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{498}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9702, - MaxStateID: 9702, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackConcrete = Block{ - ID: 571, - DisplayName: "Black Concrete", - Name: "black_concrete", - Hardness: 1.8, - Diggable: true, - DropIDs: []uint32{499}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9703, - MaxStateID: 9703, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WhiteConcretePowder = Block{ - ID: 572, - DisplayName: "White Concrete Powder", - Name: "white_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{500}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9704, - MaxStateID: 9704, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OrangeConcretePowder = Block{ - ID: 573, - DisplayName: "Orange Concrete Powder", - Name: "orange_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{501}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9705, - MaxStateID: 9705, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - MagentaConcretePowder = Block{ - ID: 574, - DisplayName: "Magenta Concrete Powder", - Name: "magenta_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{502}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9706, - MaxStateID: 9706, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightBlueConcretePowder = Block{ - ID: 575, - DisplayName: "Light Blue Concrete Powder", - Name: "light_blue_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{503}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9707, - MaxStateID: 9707, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - YellowConcretePowder = Block{ - ID: 576, - DisplayName: "Yellow Concrete Powder", - Name: "yellow_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{504}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9708, - MaxStateID: 9708, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LimeConcretePowder = Block{ - ID: 577, - DisplayName: "Lime Concrete Powder", - Name: "lime_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{505}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9709, - MaxStateID: 9709, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PinkConcretePowder = Block{ - ID: 578, - DisplayName: "Pink Concrete Powder", - Name: "pink_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{506}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9710, - MaxStateID: 9710, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GrayConcretePowder = Block{ - ID: 579, - DisplayName: "Gray Concrete Powder", - Name: "gray_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{507}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9711, - MaxStateID: 9711, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - LightGrayConcretePowder = Block{ - ID: 580, - DisplayName: "Light Gray Concrete Powder", - Name: "light_gray_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{508}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9712, - MaxStateID: 9712, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CyanConcretePowder = Block{ - ID: 581, - DisplayName: "Cyan Concrete Powder", - Name: "cyan_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{509}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9713, - MaxStateID: 9713, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PurpleConcretePowder = Block{ - ID: 582, - DisplayName: "Purple Concrete Powder", - Name: "purple_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{510}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9714, - MaxStateID: 9714, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlueConcretePowder = Block{ - ID: 583, - DisplayName: "Blue Concrete Powder", - Name: "blue_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{511}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9715, - MaxStateID: 9715, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrownConcretePowder = Block{ - ID: 584, - DisplayName: "Brown Concrete Powder", - Name: "brown_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{512}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9716, - MaxStateID: 9716, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - GreenConcretePowder = Block{ - ID: 585, - DisplayName: "Green Concrete Powder", - Name: "green_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{513}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9717, - MaxStateID: 9717, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RedConcretePowder = Block{ - ID: 586, - DisplayName: "Red Concrete Powder", - Name: "red_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{514}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9718, - MaxStateID: 9718, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackConcretePowder = Block{ - ID: 587, - DisplayName: "Black Concrete Powder", - Name: "black_concrete_powder", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{515}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9719, - MaxStateID: 9719, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Kelp = Block{ - ID: 588, - DisplayName: "Kelp", - Name: "kelp", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{197}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9720, - MaxStateID: 9745, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - KelpPlant = Block{ - ID: 589, - DisplayName: "Air", - Name: "kelp_plant", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{197}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9746, - MaxStateID: 9746, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DriedKelpBlock = Block{ - ID: 590, - DisplayName: "Dried Kelp Block", - Name: "dried_kelp_block", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{790}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9747, - MaxStateID: 9747, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - TurtleEgg = Block{ - ID: 591, - DisplayName: "Turtle Egg", - Name: "turtle_egg", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9748, - MaxStateID: 9759, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeadTubeCoralBlock = Block{ - ID: 592, - DisplayName: "Dead Tube Coral Block", - Name: "dead_tube_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{517}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9760, - MaxStateID: 9760, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeadBrainCoralBlock = Block{ - ID: 593, - DisplayName: "Dead Brain Coral Block", - Name: "dead_brain_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{518}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9761, - MaxStateID: 9761, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeadBubbleCoralBlock = Block{ - ID: 594, - DisplayName: "Dead Bubble Coral Block", - Name: "dead_bubble_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{519}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9762, - MaxStateID: 9762, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeadFireCoralBlock = Block{ - ID: 595, - DisplayName: "Dead Fire Coral Block", - Name: "dead_fire_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{520}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9763, - MaxStateID: 9763, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeadHornCoralBlock = Block{ - ID: 596, - DisplayName: "Dead Horn Coral Block", - Name: "dead_horn_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{521}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9764, - MaxStateID: 9764, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - TubeCoralBlock = Block{ - ID: 597, - DisplayName: "Tube Coral Block", - Name: "tube_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{517}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9765, - MaxStateID: 9765, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BrainCoralBlock = Block{ - ID: 598, - DisplayName: "Brain Coral Block", - Name: "brain_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{518}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9766, - MaxStateID: 9766, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BubbleCoralBlock = Block{ - ID: 599, - DisplayName: "Bubble Coral Block", - Name: "bubble_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{519}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9767, - MaxStateID: 9767, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - FireCoralBlock = Block{ - ID: 600, - DisplayName: "Fire Coral Block", - Name: "fire_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{520}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9768, - MaxStateID: 9768, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - HornCoralBlock = Block{ - ID: 601, - DisplayName: "Horn Coral Block", - Name: "horn_coral_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{521}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9769, - MaxStateID: 9769, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeadTubeCoral = Block{ - ID: 602, - DisplayName: "Dead Tube Coral", - Name: "dead_tube_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9770, - MaxStateID: 9771, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBrainCoral = Block{ - ID: 603, - DisplayName: "Dead Brain Coral", - Name: "dead_brain_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9772, - MaxStateID: 9773, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBubbleCoral = Block{ - ID: 604, - DisplayName: "Dead Bubble Coral", - Name: "dead_bubble_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9774, - MaxStateID: 9775, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadFireCoral = Block{ - ID: 605, - DisplayName: "Dead Fire Coral", - Name: "dead_fire_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9776, - MaxStateID: 9777, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadHornCoral = Block{ - ID: 606, - DisplayName: "Dead Horn Coral", - Name: "dead_horn_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9778, - MaxStateID: 9779, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - TubeCoral = Block{ - ID: 607, - DisplayName: "Tube Coral", - Name: "tube_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9780, - MaxStateID: 9781, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BrainCoral = Block{ - ID: 608, - DisplayName: "Brain Coral", - Name: "brain_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9782, - MaxStateID: 9783, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BubbleCoral = Block{ - ID: 609, - DisplayName: "Bubble Coral", - Name: "bubble_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9784, - MaxStateID: 9785, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - FireCoral = Block{ - ID: 610, - DisplayName: "Fire Coral", - Name: "fire_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9786, - MaxStateID: 9787, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - HornCoral = Block{ - ID: 611, - DisplayName: "Horn Coral", - Name: "horn_coral", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9788, - MaxStateID: 9789, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadTubeCoralFan = Block{ - ID: 612, - DisplayName: "Dead Tube Coral Fan", - Name: "dead_tube_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9790, - MaxStateID: 9791, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBrainCoralFan = Block{ - ID: 613, - DisplayName: "Dead Brain Coral Fan", - Name: "dead_brain_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9792, - MaxStateID: 9793, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBubbleCoralFan = Block{ - ID: 614, - DisplayName: "Dead Bubble Coral Fan", - Name: "dead_bubble_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9794, - MaxStateID: 9795, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadFireCoralFan = Block{ - ID: 615, - DisplayName: "Dead Fire Coral Fan", - Name: "dead_fire_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9796, - MaxStateID: 9797, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadHornCoralFan = Block{ - ID: 616, - DisplayName: "Dead Horn Coral Fan", - Name: "dead_horn_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9798, - MaxStateID: 9799, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - TubeCoralFan = Block{ - ID: 617, - DisplayName: "Tube Coral Fan", - Name: "tube_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9800, - MaxStateID: 9801, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BrainCoralFan = Block{ - ID: 618, - DisplayName: "Brain Coral Fan", - Name: "brain_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9802, - MaxStateID: 9803, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BubbleCoralFan = Block{ - ID: 619, - DisplayName: "Bubble Coral Fan", - Name: "bubble_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9804, - MaxStateID: 9805, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - FireCoralFan = Block{ - ID: 620, - DisplayName: "Fire Coral Fan", - Name: "fire_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9806, - MaxStateID: 9807, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - HornCoralFan = Block{ - ID: 621, - DisplayName: "Horn Coral Fan", - Name: "horn_coral_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9808, - MaxStateID: 9809, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadTubeCoralWallFan = Block{ - ID: 622, - DisplayName: "Dead Tube Coral Fan", - Name: "dead_tube_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9810, - MaxStateID: 9817, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBrainCoralWallFan = Block{ - ID: 623, - DisplayName: "Dead Brain Coral Fan", - Name: "dead_brain_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9818, - MaxStateID: 9825, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadBubbleCoralWallFan = Block{ - ID: 624, - DisplayName: "Dead Bubble Coral Fan", - Name: "dead_bubble_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9826, - MaxStateID: 9833, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadFireCoralWallFan = Block{ - ID: 625, - DisplayName: "Dead Fire Coral Fan", - Name: "dead_fire_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9834, - MaxStateID: 9841, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - DeadHornCoralWallFan = Block{ - ID: 626, - DisplayName: "Dead Horn Coral Fan", - Name: "dead_horn_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9842, - MaxStateID: 9849, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - TubeCoralWallFan = Block{ - ID: 627, - DisplayName: "Tube Coral Fan", - Name: "tube_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9850, - MaxStateID: 9857, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BrainCoralWallFan = Block{ - ID: 628, - DisplayName: "Brain Coral Fan", - Name: "brain_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9858, - MaxStateID: 9865, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - BubbleCoralWallFan = Block{ - ID: 629, - DisplayName: "Bubble Coral Fan", - Name: "bubble_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9866, - MaxStateID: 9873, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - FireCoralWallFan = Block{ - ID: 630, - DisplayName: "Fire Coral Fan", - Name: "fire_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9874, - MaxStateID: 9881, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - HornCoralWallFan = Block{ - ID: 631, - DisplayName: "Horn Coral Fan", - Name: "horn_coral_wall_fan", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9882, - MaxStateID: 9889, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - SeaPickle = Block{ - ID: 632, - DisplayName: "Sea Pickle", - Name: "sea_pickle", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{156}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9890, - MaxStateID: 9897, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 6, - } - BlueIce = Block{ - ID: 633, - DisplayName: "Blue Ice", - Name: "blue_ice", - Hardness: 2.8, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9898, - MaxStateID: 9898, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Conduit = Block{ - ID: 634, - DisplayName: "Conduit", - Name: "conduit", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{548}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9899, - MaxStateID: 9900, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 15, - } - BambooSapling = Block{ - ID: 635, - DisplayName: "Air", - Name: "bamboo_sapling", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{203}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9901, - MaxStateID: 9901, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Bamboo = Block{ - ID: 636, - DisplayName: "Bamboo", - Name: "bamboo", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{203}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9902, - MaxStateID: 9913, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedBamboo = Block{ - ID: 637, - DisplayName: "Air", - Name: "potted_bamboo", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 203}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9914, - MaxStateID: 9914, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - VoidAir = Block{ - ID: 638, - DisplayName: "Air", - Name: "void_air", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9915, - MaxStateID: 9915, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CaveAir = Block{ - ID: 639, - DisplayName: "Air", - Name: "cave_air", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9916, - MaxStateID: 9916, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BubbleColumn = Block{ - ID: 640, - DisplayName: "Air", - Name: "bubble_column", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 9917, - MaxStateID: 9918, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - PolishedGraniteStairs = Block{ - ID: 641, - DisplayName: "Polished Granite Stairs", - Name: "polished_granite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{549}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9919, - MaxStateID: 9998, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothRedSandstoneStairs = Block{ - ID: 642, - DisplayName: "Smooth Red Sandstone Stairs", - Name: "smooth_red_sandstone_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{550}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 9999, - MaxStateID: 10078, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyStoneBrickStairs = Block{ - ID: 643, - DisplayName: "Mossy Stone Brick Stairs", - Name: "mossy_stone_brick_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{551}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10079, - MaxStateID: 10158, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedDioriteStairs = Block{ - ID: 644, - DisplayName: "Polished Diorite Stairs", - Name: "polished_diorite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{552}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10159, - MaxStateID: 10238, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyCobblestoneStairs = Block{ - ID: 645, - DisplayName: "Mossy Cobblestone Stairs", - Name: "mossy_cobblestone_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{553}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10239, - MaxStateID: 10318, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndStoneBrickStairs = Block{ - ID: 646, - DisplayName: "End Stone Brick Stairs", - Name: "end_stone_brick_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{554}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10319, - MaxStateID: 10398, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneStairs = Block{ - ID: 647, - DisplayName: "Stone Stairs", - Name: "stone_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{555}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10399, - MaxStateID: 10478, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothSandstoneStairs = Block{ - ID: 648, - DisplayName: "Smooth Sandstone Stairs", - Name: "smooth_sandstone_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{556}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10479, - MaxStateID: 10558, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothQuartzStairs = Block{ - ID: 649, - DisplayName: "Smooth Quartz Stairs", - Name: "smooth_quartz_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{557}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10559, - MaxStateID: 10638, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GraniteStairs = Block{ - ID: 650, - DisplayName: "Granite Stairs", - Name: "granite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{558}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10639, - MaxStateID: 10718, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AndesiteStairs = Block{ - ID: 651, - DisplayName: "Andesite Stairs", - Name: "andesite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{559}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10719, - MaxStateID: 10798, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedNetherBrickStairs = Block{ - ID: 652, - DisplayName: "Red Nether Brick Stairs", - Name: "red_nether_brick_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{560}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10799, - MaxStateID: 10878, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedAndesiteStairs = Block{ - ID: 653, - DisplayName: "Polished Andesite Stairs", - Name: "polished_andesite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{561}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10879, - MaxStateID: 10958, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DioriteStairs = Block{ - ID: 654, - DisplayName: "Diorite Stairs", - Name: "diorite_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{562}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 10959, - MaxStateID: 11038, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedGraniteSlab = Block{ - ID: 655, - DisplayName: "Polished Granite Slab", - Name: "polished_granite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{567}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11039, - MaxStateID: 11044, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothRedSandstoneSlab = Block{ - ID: 656, - DisplayName: "Smooth Red Sandstone Slab", - Name: "smooth_red_sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{568}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11045, - MaxStateID: 11050, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyStoneBrickSlab = Block{ - ID: 657, - DisplayName: "Mossy Stone Brick Slab", - Name: "mossy_stone_brick_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{569}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11051, - MaxStateID: 11056, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedDioriteSlab = Block{ - ID: 658, - DisplayName: "Polished Diorite Slab", - Name: "polished_diorite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{570}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11057, - MaxStateID: 11062, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyCobblestoneSlab = Block{ - ID: 659, - DisplayName: "Mossy Cobblestone Slab", - Name: "mossy_cobblestone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{571}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11063, - MaxStateID: 11068, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndStoneBrickSlab = Block{ - ID: 660, - DisplayName: "End Stone Brick Slab", - Name: "end_stone_brick_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{572}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11069, - MaxStateID: 11074, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothSandstoneSlab = Block{ - ID: 661, - DisplayName: "Smooth Sandstone Slab", - Name: "smooth_sandstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{573}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11075, - MaxStateID: 11080, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmoothQuartzSlab = Block{ - ID: 662, - DisplayName: "Smooth Quartz Slab", - Name: "smooth_quartz_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{574}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11081, - MaxStateID: 11086, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GraniteSlab = Block{ - ID: 663, - DisplayName: "Granite Slab", - Name: "granite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{575}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11087, - MaxStateID: 11092, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AndesiteSlab = Block{ - ID: 664, - DisplayName: "Andesite Slab", - Name: "andesite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{576}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11093, - MaxStateID: 11098, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedNetherBrickSlab = Block{ - ID: 665, - DisplayName: "Red Nether Brick Slab", - Name: "red_nether_brick_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{577}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11099, - MaxStateID: 11104, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedAndesiteSlab = Block{ - ID: 666, - DisplayName: "Polished Andesite Slab", - Name: "polished_andesite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{578}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11105, - MaxStateID: 11110, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DioriteSlab = Block{ - ID: 667, - DisplayName: "Diorite Slab", - Name: "diorite_slab", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{579}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11111, - MaxStateID: 11116, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrickWall = Block{ - ID: 668, - DisplayName: "Brick Wall", - Name: "brick_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{327}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11117, - MaxStateID: 11440, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PrismarineWall = Block{ - ID: 669, - DisplayName: "Prismarine Wall", - Name: "prismarine_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{328}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11441, - MaxStateID: 11764, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedSandstoneWall = Block{ - ID: 670, - DisplayName: "Red Sandstone Wall", - Name: "red_sandstone_wall", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{329}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 11765, - MaxStateID: 12088, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossyStoneBrickWall = Block{ - ID: 671, - DisplayName: "Mossy Stone Brick Wall", - Name: "mossy_stone_brick_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{330}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 12089, - MaxStateID: 12412, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GraniteWall = Block{ - ID: 672, - DisplayName: "Granite Wall", - Name: "granite_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{331}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 12413, - MaxStateID: 12736, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StoneBrickWall = Block{ - ID: 673, - DisplayName: "Stone Brick Wall", - Name: "stone_brick_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{332}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 12737, - MaxStateID: 13060, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherBrickWall = Block{ - ID: 674, - DisplayName: "Nether Brick Wall", - Name: "nether_brick_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{333}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 13061, - MaxStateID: 13384, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AndesiteWall = Block{ - ID: 675, - DisplayName: "Andesite Wall", - Name: "andesite_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{334}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 13385, - MaxStateID: 13708, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedNetherBrickWall = Block{ - ID: 676, - DisplayName: "Red Nether Brick Wall", - Name: "red_nether_brick_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{335}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 13709, - MaxStateID: 14032, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SandstoneWall = Block{ - ID: 677, - DisplayName: "Sandstone Wall", - Name: "sandstone_wall", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{336}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 14033, - MaxStateID: 14356, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - EndStoneBrickWall = Block{ - ID: 678, - DisplayName: "End Stone Brick Wall", - Name: "end_stone_brick_wall", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{337}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 14357, - MaxStateID: 14680, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DioriteWall = Block{ - ID: 679, - DisplayName: "Diorite Wall", - Name: "diorite_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{338}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 14681, - MaxStateID: 15004, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Scaffolding = Block{ - ID: 680, - DisplayName: "Scaffolding", - Name: "scaffolding", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{584}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15005, - MaxStateID: 15036, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Loom = Block{ - ID: 681, - DisplayName: "Loom", - Name: "loom", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{1034}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15037, - MaxStateID: 15040, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Barrel = Block{ - ID: 682, - DisplayName: "Barrel", - Name: "barrel", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{1042}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15041, - MaxStateID: 15052, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Smoker = Block{ - ID: 683, - DisplayName: "Smoker", - Name: "smoker", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1043}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15053, - MaxStateID: 15060, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlastFurnace = Block{ - ID: 684, - DisplayName: "Blast Furnace", - Name: "blast_furnace", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1044}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15061, - MaxStateID: 15068, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CartographyTable = Block{ - ID: 685, - DisplayName: "Cartography Table", - Name: "cartography_table", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{1045}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15069, - MaxStateID: 15069, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - FletchingTable = Block{ - ID: 686, - DisplayName: "Fletching Table", - Name: "fletching_table", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{1046}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15070, - MaxStateID: 15070, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Grindstone = Block{ - ID: 687, - DisplayName: "Grindstone", - Name: "grindstone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1047}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15071, - MaxStateID: 15082, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Lectern = Block{ - ID: 688, - DisplayName: "Lectern", - Name: "lectern", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{598}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15083, - MaxStateID: 15098, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmithingTable = Block{ - ID: 689, - DisplayName: "Smithing Table", - Name: "smithing_table", - Hardness: 2.5, - Diggable: true, - DropIDs: []uint32{1048}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15099, - MaxStateID: 15099, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Stonecutter = Block{ - ID: 690, - DisplayName: "Stonecutter", - Name: "stonecutter", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1049}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15100, - MaxStateID: 15103, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Bell = Block{ - ID: 691, - DisplayName: "Bell", - Name: "bell", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{1050}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15104, - MaxStateID: 15135, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Lantern = Block{ - ID: 692, - DisplayName: "Lantern", - Name: "lantern", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1051}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15136, - MaxStateID: 15139, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - SoulLantern = Block{ - ID: 693, - DisplayName: "Soul Lantern", - Name: "soul_lantern", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1052}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15140, - MaxStateID: 15143, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 10, - } - Campfire = Block{ - ID: 694, - DisplayName: "Campfire", - Name: "campfire", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{685}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15144, - MaxStateID: 15175, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 15, - } - SoulCampfire = Block{ - ID: 695, - DisplayName: "Soul Campfire", - Name: "soul_campfire", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{270}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15176, - MaxStateID: 15207, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 10, - } - SweetBerryBush = Block{ - ID: 696, - DisplayName: "Sweet Berries", - Name: "sweet_berry_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15208, - MaxStateID: 15211, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedStem = Block{ - ID: 697, - DisplayName: "Warped Stem", - Name: "warped_stem", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{108}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15212, - MaxStateID: 15214, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedWarpedStem = Block{ - ID: 698, - DisplayName: "Stripped Warped Stem", - Name: "stripped_warped_stem", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{116}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15215, - MaxStateID: 15217, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WarpedHyphae = Block{ - ID: 699, - DisplayName: "Warped Hyphae", - Name: "warped_hyphae", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{132}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15218, - MaxStateID: 15220, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedWarpedHyphae = Block{ - ID: 700, - DisplayName: "Stripped Warped Hyphae", - Name: "stripped_warped_hyphae", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{124}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15221, - MaxStateID: 15223, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WarpedNylium = Block{ - ID: 701, - DisplayName: "Warped Nylium", - Name: "warped_nylium", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{268}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15224, - MaxStateID: 15224, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WarpedFungus = Block{ - ID: 702, - DisplayName: "Warped Fungus", - Name: "warped_fungus", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{190}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15225, - MaxStateID: 15225, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedWartBlock = Block{ - ID: 703, - DisplayName: "Warped Wart Block", - Name: "warped_wart_block", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{447}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15226, - MaxStateID: 15226, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WarpedRoots = Block{ - ID: 704, - DisplayName: "Warped Roots", - Name: "warped_roots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{192}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15227, - MaxStateID: 15227, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - NetherSprouts = Block{ - ID: 705, - DisplayName: "Nether Sprouts", - Name: "nether_sprouts", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15228, - MaxStateID: 15228, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonStem = Block{ - ID: 706, - DisplayName: "Crimson Stem", - Name: "crimson_stem", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{107}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15229, - MaxStateID: 15231, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedCrimsonStem = Block{ - ID: 707, - DisplayName: "Stripped Crimson Stem", - Name: "stripped_crimson_stem", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{115}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15232, - MaxStateID: 15234, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrimsonHyphae = Block{ - ID: 708, - DisplayName: "Crimson Hyphae", - Name: "crimson_hyphae", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{131}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15235, - MaxStateID: 15237, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - StrippedCrimsonHyphae = Block{ - ID: 709, - DisplayName: "Stripped Crimson Hyphae", - Name: "stripped_crimson_hyphae", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{123}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15238, - MaxStateID: 15240, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrimsonNylium = Block{ - ID: 710, - DisplayName: "Crimson Nylium", - Name: "crimson_nylium", - Hardness: 0.4, - Diggable: true, - DropIDs: []uint32{268}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 15241, - MaxStateID: 15241, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrimsonFungus = Block{ - ID: 711, - DisplayName: "Crimson Fungus", - Name: "crimson_fungus", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{189}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15242, - MaxStateID: 15242, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Shroomlight = Block{ - ID: 712, - DisplayName: "Shroomlight", - Name: "shroomlight", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{1057}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15243, - MaxStateID: 15243, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 15, - } - WeepingVines = Block{ - ID: 713, - DisplayName: "Weeping Vines", - Name: "weeping_vines", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15244, - MaxStateID: 15269, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WeepingVinesPlant = Block{ - ID: 714, - DisplayName: "Air", - Name: "weeping_vines_plant", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{194}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15270, - MaxStateID: 15270, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - TwistingVines = Block{ - ID: 715, - DisplayName: "Twisting Vines", - Name: "twisting_vines", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15271, - MaxStateID: 15296, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - TwistingVinesPlant = Block{ - ID: 716, - DisplayName: "Air", - Name: "twisting_vines_plant", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{195}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15297, - MaxStateID: 15297, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonRoots = Block{ - ID: 717, - DisplayName: "Crimson Roots", - Name: "crimson_roots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{191}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15298, - MaxStateID: 15298, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonPlanks = Block{ - ID: 718, - DisplayName: "Crimson Planks", - Name: "crimson_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{28}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15299, - MaxStateID: 15299, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WarpedPlanks = Block{ - ID: 719, - DisplayName: "Warped Planks", - Name: "warped_planks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{29}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15300, - MaxStateID: 15300, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrimsonSlab = Block{ - ID: 720, - DisplayName: "Crimson Slab", - Name: "crimson_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{210}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15301, - MaxStateID: 15306, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedSlab = Block{ - ID: 721, - DisplayName: "Warped Slab", - Name: "warped_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{211}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15307, - MaxStateID: 15312, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonPressurePlate = Block{ - ID: 722, - DisplayName: "Crimson Pressure Plate", - Name: "crimson_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{629}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15313, - MaxStateID: 15314, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedPressurePlate = Block{ - ID: 723, - DisplayName: "Warped Pressure Plate", - Name: "warped_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{630}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15315, - MaxStateID: 15316, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonFence = Block{ - ID: 724, - DisplayName: "Crimson Fence", - Name: "crimson_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{263}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15317, - MaxStateID: 15348, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedFence = Block{ - ID: 725, - DisplayName: "Warped Fence", - Name: "warped_fence", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{264}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15349, - MaxStateID: 15380, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonTrapdoor = Block{ - ID: 726, - DisplayName: "Crimson Trapdoor", - Name: "crimson_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{647}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15381, - MaxStateID: 15444, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedTrapdoor = Block{ - ID: 727, - DisplayName: "Warped Trapdoor", - Name: "warped_trapdoor", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{648}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15445, - MaxStateID: 15508, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonFenceGate = Block{ - ID: 728, - DisplayName: "Crimson Fence Gate", - Name: "crimson_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{655}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15509, - MaxStateID: 15540, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedFenceGate = Block{ - ID: 729, - DisplayName: "Warped Fence Gate", - Name: "warped_fence_gate", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{656}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15541, - MaxStateID: 15572, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonStairs = Block{ - ID: 730, - DisplayName: "Crimson Stairs", - Name: "crimson_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{321}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15573, - MaxStateID: 15652, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedStairs = Block{ - ID: 731, - DisplayName: "Warped Stairs", - Name: "warped_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{322}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15653, - MaxStateID: 15732, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonButton = Block{ - ID: 732, - DisplayName: "Crimson Button", - Name: "crimson_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{617}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15733, - MaxStateID: 15756, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedButton = Block{ - ID: 733, - DisplayName: "Warped Button", - Name: "warped_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{618}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15757, - MaxStateID: 15780, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonDoor = Block{ - ID: 734, - DisplayName: "Crimson Door", - Name: "crimson_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{638}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15781, - MaxStateID: 15844, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedDoor = Block{ - ID: 735, - DisplayName: "Warped Door", - Name: "warped_door", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{639}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15845, - MaxStateID: 15908, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonSign = Block{ - ID: 736, - DisplayName: "Crimson Sign", - Name: "crimson_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{774}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15909, - MaxStateID: 15940, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedSign = Block{ - ID: 737, - DisplayName: "Warped Sign", - Name: "warped_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{775}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15941, - MaxStateID: 15972, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CrimsonWallSign = Block{ - ID: 738, - DisplayName: "Crimson Sign", - Name: "crimson_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{774}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15973, - MaxStateID: 15980, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WarpedWallSign = Block{ - ID: 739, - DisplayName: "Warped Sign", - Name: "warped_wall_sign", - Hardness: 1, - Diggable: true, - DropIDs: []uint32{775}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15981, - MaxStateID: 15988, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - StructureBlock = Block{ - ID: 740, - DisplayName: "Structure Block", - Name: "structure_block", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15989, - MaxStateID: 15992, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Jigsaw = Block{ - ID: 741, - DisplayName: "Jigsaw Block", - Name: "jigsaw", - Hardness: 0, - Diggable: false, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 15993, - MaxStateID: 16004, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Composter = Block{ - ID: 742, - DisplayName: "Composter", - Name: "composter", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{1041}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16005, - MaxStateID: 16013, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Target = Block{ - ID: 743, - DisplayName: "Target", - Name: "target", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{599}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16014, - MaxStateID: 16029, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BeeNest = Block{ - ID: 744, - DisplayName: "Bee Nest", - Name: "bee_nest", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16030, - MaxStateID: 16053, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Beehive = Block{ - ID: 745, - DisplayName: "Beehive", - Name: "beehive", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{1060}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16054, - MaxStateID: 16077, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - HoneyBlock = Block{ - ID: 746, - DisplayName: "Honey Block", - Name: "honey_block", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{593}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16078, - MaxStateID: 16078, - Transparent: true, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - HoneycombBlock = Block{ - ID: 747, - DisplayName: "Honeycomb Block", - Name: "honeycomb_block", - Hardness: 0.6, - Diggable: true, - DropIDs: []uint32{1062}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16079, - MaxStateID: 16079, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - NetheriteBlock = Block{ - ID: 748, - DisplayName: "Block of Netherite", - Name: "netherite_block", - Hardness: 50, - Diggable: true, - DropIDs: []uint32{69}, - NeedsTools: map[uint32]bool{721: true, 726: true}, - MinStateID: 16080, - MaxStateID: 16080, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AncientDebris = Block{ - ID: 749, - DisplayName: "Ancient Debris", - Name: "ancient_debris", - Hardness: 30, - Diggable: true, - DropIDs: []uint32{58}, - NeedsTools: map[uint32]bool{721: true, 726: true}, - MinStateID: 16081, - MaxStateID: 16081, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CryingObsidian = Block{ - ID: 750, - DisplayName: "Crying Obsidian", - Name: "crying_obsidian", - Hardness: 50, - Diggable: true, - DropIDs: []uint32{1064}, - NeedsTools: map[uint32]bool{721: true, 726: true}, - MinStateID: 16082, - MaxStateID: 16082, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 10, - } - RespawnAnchor = Block{ - ID: 751, - DisplayName: "Respawn Anchor", - Name: "respawn_anchor", - Hardness: 50, - Diggable: true, - DropIDs: []uint32{1077}, - NeedsTools: map[uint32]bool{721: true, 726: true}, - MinStateID: 16083, - MaxStateID: 16087, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PottedCrimsonFungus = Block{ - ID: 752, - DisplayName: "Air", - Name: "potted_crimson_fungus", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 189}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16088, - MaxStateID: 16088, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedWarpedFungus = Block{ - ID: 753, - DisplayName: "Air", - Name: "potted_warped_fungus", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 190}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16089, - MaxStateID: 16089, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedCrimsonRoots = Block{ - ID: 754, - DisplayName: "Air", - Name: "potted_crimson_roots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 191}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16090, - MaxStateID: 16090, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedWarpedRoots = Block{ - ID: 755, - DisplayName: "Air", - Name: "potted_warped_roots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 192}, - NeedsTools: map[uint32]bool{}, - MinStateID: 16091, - MaxStateID: 16091, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Lodestone = Block{ - ID: 756, - DisplayName: "Lodestone", - Name: "lodestone", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{1063}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16092, - MaxStateID: 16092, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Blackstone = Block{ - ID: 757, - DisplayName: "Blackstone", - Name: "blackstone", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1065}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16093, - MaxStateID: 16093, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BlackstoneStairs = Block{ - ID: 758, - DisplayName: "Blackstone Stairs", - Name: "blackstone_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1067}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16094, - MaxStateID: 16173, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackstoneWall = Block{ - ID: 759, - DisplayName: "Blackstone Wall", - Name: "blackstone_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{339}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16174, - MaxStateID: 16497, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackstoneSlab = Block{ - ID: 760, - DisplayName: "Blackstone Slab", - Name: "blackstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1066}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16498, - MaxStateID: 16503, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstone = Block{ - ID: 761, - DisplayName: "Polished Blackstone", - Name: "polished_blackstone", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1069}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16504, - MaxStateID: 16504, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedBlackstoneBricks = Block{ - ID: 762, - DisplayName: "Polished Blackstone Bricks", - Name: "polished_blackstone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1073}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16505, - MaxStateID: 16505, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrackedPolishedBlackstoneBricks = Block{ - ID: 763, - DisplayName: "Cracked Polished Blackstone Bricks", - Name: "cracked_polished_blackstone_bricks", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1076}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16506, - MaxStateID: 16506, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ChiseledPolishedBlackstone = Block{ - ID: 764, - DisplayName: "Chiseled Polished Blackstone", - Name: "chiseled_polished_blackstone", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1072}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16507, - MaxStateID: 16507, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedBlackstoneBrickSlab = Block{ - ID: 765, - DisplayName: "Polished Blackstone Brick Slab", - Name: "polished_blackstone_brick_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1074}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16508, - MaxStateID: 16513, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstoneBrickStairs = Block{ - ID: 766, - DisplayName: "Polished Blackstone Brick Stairs", - Name: "polished_blackstone_brick_stairs", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1075}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16514, - MaxStateID: 16593, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstoneBrickWall = Block{ - ID: 767, - DisplayName: "Polished Blackstone Brick Wall", - Name: "polished_blackstone_brick_wall", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{341}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16594, - MaxStateID: 16917, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GildedBlackstone = Block{ - ID: 768, - DisplayName: "Gilded Blackstone", - Name: "gilded_blackstone", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1068}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16918, - MaxStateID: 16918, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedBlackstoneStairs = Block{ - ID: 769, - DisplayName: "Polished Blackstone Stairs", - Name: "polished_blackstone_stairs", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1071}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16919, - MaxStateID: 16998, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstoneSlab = Block{ - ID: 770, - DisplayName: "Polished Blackstone Slab", - Name: "polished_blackstone_slab", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{1070}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 16999, - MaxStateID: 17004, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstonePressurePlate = Block{ - ID: 771, - DisplayName: "Polished Blackstone Pressure Plate", - Name: "polished_blackstone_pressure_plate", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{620}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17005, - MaxStateID: 17006, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstoneButton = Block{ - ID: 772, - DisplayName: "Polished Blackstone Button", - Name: "polished_blackstone_button", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{610}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17007, - MaxStateID: 17030, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedBlackstoneWall = Block{ - ID: 773, - DisplayName: "Polished Blackstone Wall", - Name: "polished_blackstone_wall", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{340}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17031, - MaxStateID: 17354, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ChiseledNetherBricks = Block{ - ID: 774, - DisplayName: "Chiseled Nether Bricks", - Name: "chiseled_nether_bricks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{307}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17355, - MaxStateID: 17355, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrackedNetherBricks = Block{ - ID: 775, - DisplayName: "Cracked Nether Bricks", - Name: "cracked_nether_bricks", - Hardness: 2, - Diggable: true, - DropIDs: []uint32{306}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17356, - MaxStateID: 17356, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - QuartzBricks = Block{ - ID: 776, - DisplayName: "Quartz Bricks", - Name: "quartz_bricks", - Hardness: 0.8, - Diggable: true, - DropIDs: []uint32{351}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17357, - MaxStateID: 17357, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Candle = Block{ - ID: 777, - DisplayName: "Candle", - Name: "candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1078}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17358, - MaxStateID: 17373, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteCandle = Block{ - ID: 778, - DisplayName: "White Candle", - Name: "white_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1079}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17374, - MaxStateID: 17389, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeCandle = Block{ - ID: 779, - DisplayName: "Orange Candle", - Name: "orange_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1080}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17390, - MaxStateID: 17405, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaCandle = Block{ - ID: 780, - DisplayName: "Magenta Candle", - Name: "magenta_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1081}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17406, - MaxStateID: 17421, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueCandle = Block{ - ID: 781, - DisplayName: "Light Blue Candle", - Name: "light_blue_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1082}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17422, - MaxStateID: 17437, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowCandle = Block{ - ID: 782, - DisplayName: "Yellow Candle", - Name: "yellow_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1083}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17438, - MaxStateID: 17453, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeCandle = Block{ - ID: 783, - DisplayName: "Lime Candle", - Name: "lime_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1084}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17454, - MaxStateID: 17469, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkCandle = Block{ - ID: 784, - DisplayName: "Pink Candle", - Name: "pink_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1085}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17470, - MaxStateID: 17485, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayCandle = Block{ - ID: 785, - DisplayName: "Gray Candle", - Name: "gray_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1086}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17486, - MaxStateID: 17501, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayCandle = Block{ - ID: 786, - DisplayName: "Light Gray Candle", - Name: "light_gray_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1087}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17502, - MaxStateID: 17517, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanCandle = Block{ - ID: 787, - DisplayName: "Cyan Candle", - Name: "cyan_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1088}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17518, - MaxStateID: 17533, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleCandle = Block{ - ID: 788, - DisplayName: "Purple Candle", - Name: "purple_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1089}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17534, - MaxStateID: 17549, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueCandle = Block{ - ID: 789, - DisplayName: "Blue Candle", - Name: "blue_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1090}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17550, - MaxStateID: 17565, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownCandle = Block{ - ID: 790, - DisplayName: "Brown Candle", - Name: "brown_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1091}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17566, - MaxStateID: 17581, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenCandle = Block{ - ID: 791, - DisplayName: "Green Candle", - Name: "green_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1092}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17582, - MaxStateID: 17597, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedCandle = Block{ - ID: 792, - DisplayName: "Red Candle", - Name: "red_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1093}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17598, - MaxStateID: 17613, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackCandle = Block{ - ID: 793, - DisplayName: "Black Candle", - Name: "black_candle", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{1094}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17614, - MaxStateID: 17629, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CandleCake = Block{ - ID: 794, - DisplayName: "Air", - Name: "candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1078}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17630, - MaxStateID: 17631, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WhiteCandleCake = Block{ - ID: 795, - DisplayName: "Air", - Name: "white_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1079}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17632, - MaxStateID: 17633, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OrangeCandleCake = Block{ - ID: 796, - DisplayName: "Air", - Name: "orange_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1080}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17634, - MaxStateID: 17635, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MagentaCandleCake = Block{ - ID: 797, - DisplayName: "Air", - Name: "magenta_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1081}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17636, - MaxStateID: 17637, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightBlueCandleCake = Block{ - ID: 798, - DisplayName: "Air", - Name: "light_blue_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1082}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17638, - MaxStateID: 17639, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - YellowCandleCake = Block{ - ID: 799, - DisplayName: "Air", - Name: "yellow_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1083}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17640, - MaxStateID: 17641, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LimeCandleCake = Block{ - ID: 800, - DisplayName: "Air", - Name: "lime_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1084}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17642, - MaxStateID: 17643, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PinkCandleCake = Block{ - ID: 801, - DisplayName: "Air", - Name: "pink_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1085}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17644, - MaxStateID: 17645, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GrayCandleCake = Block{ - ID: 802, - DisplayName: "Air", - Name: "gray_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1086}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17646, - MaxStateID: 17647, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightGrayCandleCake = Block{ - ID: 803, - DisplayName: "Air", - Name: "light_gray_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1087}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17648, - MaxStateID: 17649, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CyanCandleCake = Block{ - ID: 804, - DisplayName: "Air", - Name: "cyan_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1088}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17650, - MaxStateID: 17651, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PurpleCandleCake = Block{ - ID: 805, - DisplayName: "Air", - Name: "purple_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1089}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17652, - MaxStateID: 17653, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlueCandleCake = Block{ - ID: 806, - DisplayName: "Air", - Name: "blue_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1090}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17654, - MaxStateID: 17655, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BrownCandleCake = Block{ - ID: 807, - DisplayName: "Air", - Name: "brown_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1091}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17656, - MaxStateID: 17657, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - GreenCandleCake = Block{ - ID: 808, - DisplayName: "Air", - Name: "green_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1092}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17658, - MaxStateID: 17659, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RedCandleCake = Block{ - ID: 809, - DisplayName: "Air", - Name: "red_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1093}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17660, - MaxStateID: 17661, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BlackCandleCake = Block{ - ID: 810, - DisplayName: "Air", - Name: "black_candle_cake", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{1094}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17662, - MaxStateID: 17663, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - AmethystBlock = Block{ - ID: 811, - DisplayName: "Block of Amethyst", - Name: "amethyst_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{63}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17664, - MaxStateID: 17664, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BuddingAmethyst = Block{ - ID: 812, - DisplayName: "Budding Amethyst", - Name: "budding_amethyst", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17665, - MaxStateID: 17665, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - AmethystCluster = Block{ - ID: 813, - DisplayName: "Amethyst Cluster", - Name: "amethyst_cluster", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{690}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17666, - MaxStateID: 17677, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 5, - } - LargeAmethystBud = Block{ - ID: 814, - DisplayName: "Large Amethyst Bud", - Name: "large_amethyst_bud", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17678, - MaxStateID: 17689, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 4, - } - MediumAmethystBud = Block{ - ID: 815, - DisplayName: "Medium Amethyst Bud", - Name: "medium_amethyst_bud", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17690, - MaxStateID: 17701, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 2, - } - SmallAmethystBud = Block{ - ID: 816, - DisplayName: "Small Amethyst Bud", - Name: "small_amethyst_bud", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17702, - MaxStateID: 17713, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - Tuff = Block{ - ID: 817, - DisplayName: "Tuff", - Name: "tuff", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{12}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17714, - MaxStateID: 17714, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Calcite = Block{ - ID: 818, - DisplayName: "Calcite", - Name: "calcite", - Hardness: 0.75, - Diggable: true, - DropIDs: []uint32{11}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 17715, - MaxStateID: 17715, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - TintedGlass = Block{ - ID: 819, - DisplayName: "Tinted Glass", - Name: "tinted_glass", - Hardness: 0.3, - Diggable: true, - DropIDs: []uint32{144}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17716, - MaxStateID: 17716, - Transparent: true, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PowderSnow = Block{ - ID: 820, - DisplayName: "Powder Snow Bucket", - Name: "powder_snow", - Hardness: 0.25, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17717, - MaxStateID: 17717, - Transparent: false, - FilterLightLevel: 1, - EmitLightLevel: 0, - } - SculkSensor = Block{ - ID: 821, - DisplayName: "Sculk Sensor", - Name: "sculk_sensor", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{603}, - NeedsTools: map[uint32]bool{}, - MinStateID: 17718, - MaxStateID: 17813, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 1, - } - OxidizedCopper = Block{ - ID: 822, - DisplayName: "Oxidized Copper", - Name: "oxidized_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{72}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17814, - MaxStateID: 17814, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WeatheredCopper = Block{ - ID: 823, - DisplayName: "Weathered Copper", - Name: "weathered_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{71}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17815, - MaxStateID: 17815, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ExposedCopper = Block{ - ID: 824, - DisplayName: "Exposed Copper", - Name: "exposed_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{70}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17816, - MaxStateID: 17816, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CopperBlock = Block{ - ID: 825, - DisplayName: "Block of Copper", - Name: "copper_block", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{66}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17817, - MaxStateID: 17817, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CopperOre = Block{ - ID: 826, - DisplayName: "Copper Ore", - Name: "copper_ore", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{693}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17818, - MaxStateID: 17818, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateCopperOre = Block{ - ID: 827, - DisplayName: "Deepslate Copper Ore", - Name: "deepslate_copper_ore", - Hardness: 4.5, - Diggable: true, - DropIDs: []uint32{693}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17819, - MaxStateID: 17819, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OxidizedCutCopper = Block{ - ID: 828, - DisplayName: "Oxidized Cut Copper", - Name: "oxidized_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{76}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17820, - MaxStateID: 17820, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WeatheredCutCopper = Block{ - ID: 829, - DisplayName: "Weathered Cut Copper", - Name: "weathered_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{75}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17821, - MaxStateID: 17821, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - ExposedCutCopper = Block{ - ID: 830, - DisplayName: "Exposed Cut Copper", - Name: "exposed_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{74}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17822, - MaxStateID: 17822, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CutCopper = Block{ - ID: 831, - DisplayName: "Cut Copper", - Name: "cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{73}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17823, - MaxStateID: 17823, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - OxidizedCutCopperStairs = Block{ - ID: 832, - DisplayName: "Oxidized Cut Copper Stairs", - Name: "oxidized_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{80}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17824, - MaxStateID: 17903, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WeatheredCutCopperStairs = Block{ - ID: 833, - DisplayName: "Weathered Cut Copper Stairs", - Name: "weathered_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{79}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17904, - MaxStateID: 17983, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ExposedCutCopperStairs = Block{ - ID: 834, - DisplayName: "Exposed Cut Copper Stairs", - Name: "exposed_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{78}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 17984, - MaxStateID: 18063, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CutCopperStairs = Block{ - ID: 835, - DisplayName: "Cut Copper Stairs", - Name: "cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{77}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18064, - MaxStateID: 18143, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - OxidizedCutCopperSlab = Block{ - ID: 836, - DisplayName: "Oxidized Cut Copper Slab", - Name: "oxidized_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{84}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18144, - MaxStateID: 18149, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WeatheredCutCopperSlab = Block{ - ID: 837, - DisplayName: "Weathered Cut Copper Slab", - Name: "weathered_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{83}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18150, - MaxStateID: 18155, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ExposedCutCopperSlab = Block{ - ID: 838, - DisplayName: "Exposed Cut Copper Slab", - Name: "exposed_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{82}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18156, - MaxStateID: 18161, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CutCopperSlab = Block{ - ID: 839, - DisplayName: "Cut Copper Slab", - Name: "cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{81}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18162, - MaxStateID: 18167, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedCopperBlock = Block{ - ID: 840, - DisplayName: "Waxed Block of Copper", - Name: "waxed_copper_block", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{85}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18168, - MaxStateID: 18168, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedWeatheredCopper = Block{ - ID: 841, - DisplayName: "Waxed Weathered Copper", - Name: "waxed_weathered_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{87}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18169, - MaxStateID: 18169, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedExposedCopper = Block{ - ID: 842, - DisplayName: "Waxed Exposed Copper", - Name: "waxed_exposed_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{86}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18170, - MaxStateID: 18170, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedOxidizedCopper = Block{ - ID: 843, - DisplayName: "Waxed Oxidized Copper", - Name: "waxed_oxidized_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{88}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18171, - MaxStateID: 18171, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedOxidizedCutCopper = Block{ - ID: 844, - DisplayName: "Waxed Oxidized Cut Copper", - Name: "waxed_oxidized_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{92}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18172, - MaxStateID: 18172, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedWeatheredCutCopper = Block{ - ID: 845, - DisplayName: "Waxed Weathered Cut Copper", - Name: "waxed_weathered_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{91}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18173, - MaxStateID: 18173, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedExposedCutCopper = Block{ - ID: 846, - DisplayName: "Waxed Exposed Cut Copper", - Name: "waxed_exposed_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{90}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18174, - MaxStateID: 18174, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedCutCopper = Block{ - ID: 847, - DisplayName: "Waxed Cut Copper", - Name: "waxed_cut_copper", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{89}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18175, - MaxStateID: 18175, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - WaxedOxidizedCutCopperStairs = Block{ - ID: 848, - DisplayName: "Waxed Oxidized Cut Copper Stairs", - Name: "waxed_oxidized_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{96}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18176, - MaxStateID: 18255, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedWeatheredCutCopperStairs = Block{ - ID: 849, - DisplayName: "Waxed Weathered Cut Copper Stairs", - Name: "waxed_weathered_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{95}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18256, - MaxStateID: 18335, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedExposedCutCopperStairs = Block{ - ID: 850, - DisplayName: "Waxed Exposed Cut Copper Stairs", - Name: "waxed_exposed_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{94}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18336, - MaxStateID: 18415, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedCutCopperStairs = Block{ - ID: 851, - DisplayName: "Waxed Cut Copper Stairs", - Name: "waxed_cut_copper_stairs", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{93}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18416, - MaxStateID: 18495, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedOxidizedCutCopperSlab = Block{ - ID: 852, - DisplayName: "Waxed Oxidized Cut Copper Slab", - Name: "waxed_oxidized_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{100}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18496, - MaxStateID: 18501, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedWeatheredCutCopperSlab = Block{ - ID: 853, - DisplayName: "Waxed Weathered Cut Copper Slab", - Name: "waxed_weathered_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{99}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18502, - MaxStateID: 18507, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedExposedCutCopperSlab = Block{ - ID: 854, - DisplayName: "Waxed Exposed Cut Copper Slab", - Name: "waxed_exposed_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{98}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18508, - MaxStateID: 18513, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - WaxedCutCopperSlab = Block{ - ID: 855, - DisplayName: "Waxed Cut Copper Slab", - Name: "waxed_cut_copper_slab", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{97}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18514, - MaxStateID: 18519, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - LightningRod = Block{ - ID: 856, - DisplayName: "Lightning Rod", - Name: "lightning_rod", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{601}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 18520, - MaxStateID: 18543, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PointedDripstone = Block{ - ID: 857, - DisplayName: "Pointed Dripstone", - Name: "pointed_dripstone", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{1099}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18544, - MaxStateID: 18563, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DripstoneBlock = Block{ - ID: 858, - DisplayName: "Dripstone Block", - Name: "dripstone_block", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{13}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18564, - MaxStateID: 18564, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CaveVines = Block{ - ID: 859, - DisplayName: "Glow Berries", - Name: "cave_vines", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18565, - MaxStateID: 18616, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CaveVinesPlant = Block{ - ID: 860, - DisplayName: "Air", - Name: "cave_vines_plant", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18617, - MaxStateID: 18618, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SporeBlossom = Block{ - ID: 861, - DisplayName: "Spore Blossom", - Name: "spore_blossom", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{186}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18619, - MaxStateID: 18619, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - Azalea = Block{ - ID: 862, - DisplayName: "Azalea", - Name: "azalea", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{152}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18620, - MaxStateID: 18620, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - FloweringAzalea = Block{ - ID: 863, - DisplayName: "Flowering Azalea", - Name: "flowering_azalea", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{153}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18621, - MaxStateID: 18621, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossCarpet = Block{ - ID: 864, - DisplayName: "Moss Carpet", - Name: "moss_carpet", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{198}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18622, - MaxStateID: 18622, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - MossBlock = Block{ - ID: 865, - DisplayName: "Moss Block", - Name: "moss_block", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{199}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18623, - MaxStateID: 18623, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - BigDripleaf = Block{ - ID: 866, - DisplayName: "Big Dripleaf", - Name: "big_dripleaf", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{201}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18624, - MaxStateID: 18655, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - BigDripleafStem = Block{ - ID: 867, - DisplayName: "Air", - Name: "big_dripleaf_stem", - Hardness: 0.1, - Diggable: true, - DropIDs: []uint32{201}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18656, - MaxStateID: 18663, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - SmallDripleaf = Block{ - ID: 868, - DisplayName: "Small Dripleaf", - Name: "small_dripleaf", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18664, - MaxStateID: 18679, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - HangingRoots = Block{ - ID: 869, - DisplayName: "Hanging Roots", - Name: "hanging_roots", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18680, - MaxStateID: 18681, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - RootedDirt = Block{ - ID: 870, - DisplayName: "Rooted Dirt", - Name: "rooted_dirt", - Hardness: 0.5, - Diggable: true, - DropIDs: []uint32{18}, - NeedsTools: map[uint32]bool{}, - MinStateID: 18682, - MaxStateID: 18682, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - Deepslate = Block{ - ID: 871, - DisplayName: "Deepslate", - Name: "deepslate", - Hardness: 3, - Diggable: true, - DropIDs: []uint32{9}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18683, - MaxStateID: 18685, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CobbledDeepslate = Block{ - ID: 872, - DisplayName: "Cobbled Deepslate", - Name: "cobbled_deepslate", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{9}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18686, - MaxStateID: 18686, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CobbledDeepslateStairs = Block{ - ID: 873, - DisplayName: "Cobbled Deepslate Stairs", - Name: "cobbled_deepslate_stairs", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{563}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18687, - MaxStateID: 18766, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CobbledDeepslateSlab = Block{ - ID: 874, - DisplayName: "Cobbled Deepslate Slab", - Name: "cobbled_deepslate_slab", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{580}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18767, - MaxStateID: 18772, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - CobbledDeepslateWall = Block{ - ID: 875, - DisplayName: "Cobbled Deepslate Wall", - Name: "cobbled_deepslate_wall", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{342}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 18773, - MaxStateID: 19096, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedDeepslate = Block{ - ID: 876, - DisplayName: "Polished Deepslate", - Name: "polished_deepslate", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{10}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19097, - MaxStateID: 19097, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PolishedDeepslateStairs = Block{ - ID: 877, - DisplayName: "Polished Deepslate Stairs", - Name: "polished_deepslate_stairs", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{564}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19098, - MaxStateID: 19177, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedDeepslateSlab = Block{ - ID: 878, - DisplayName: "Polished Deepslate Slab", - Name: "polished_deepslate_slab", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{581}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19178, - MaxStateID: 19183, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PolishedDeepslateWall = Block{ - ID: 879, - DisplayName: "Polished Deepslate Wall", - Name: "polished_deepslate_wall", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{343}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19184, - MaxStateID: 19507, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateTiles = Block{ - ID: 880, - DisplayName: "Deepslate Tiles", - Name: "deepslate_tiles", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{289}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19508, - MaxStateID: 19508, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateTileStairs = Block{ - ID: 881, - DisplayName: "Deepslate Tile Stairs", - Name: "deepslate_tile_stairs", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{566}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19509, - MaxStateID: 19588, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateTileSlab = Block{ - ID: 882, - DisplayName: "Deepslate Tile Slab", - Name: "deepslate_tile_slab", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{583}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19589, - MaxStateID: 19594, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateTileWall = Block{ - ID: 883, - DisplayName: "Deepslate Tile Wall", - Name: "deepslate_tile_wall", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{345}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19595, - MaxStateID: 19918, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateBricks = Block{ - ID: 884, - DisplayName: "Deepslate Bricks", - Name: "deepslate_bricks", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{287}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19919, - MaxStateID: 19919, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - DeepslateBrickStairs = Block{ - ID: 885, - DisplayName: "Deepslate Brick Stairs", - Name: "deepslate_brick_stairs", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{565}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 19920, - MaxStateID: 19999, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateBrickSlab = Block{ - ID: 886, - DisplayName: "Deepslate Brick Slab", - Name: "deepslate_brick_slab", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{582}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20000, - MaxStateID: 20005, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - DeepslateBrickWall = Block{ - ID: 887, - DisplayName: "Deepslate Brick Wall", - Name: "deepslate_brick_wall", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{344}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20006, - MaxStateID: 20329, - Transparent: false, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - ChiseledDeepslate = Block{ - ID: 888, - DisplayName: "Chiseled Deepslate", - Name: "chiseled_deepslate", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{291}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20330, - MaxStateID: 20330, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrackedDeepslateBricks = Block{ - ID: 889, - DisplayName: "Cracked Deepslate Bricks", - Name: "cracked_deepslate_bricks", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{288}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20331, - MaxStateID: 20331, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - CrackedDeepslateTiles = Block{ - ID: 890, - DisplayName: "Cracked Deepslate Tiles", - Name: "cracked_deepslate_tiles", - Hardness: 3.5, - Diggable: true, - DropIDs: []uint32{290}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20332, - MaxStateID: 20332, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - InfestedDeepslate = Block{ - ID: 891, - DisplayName: "Infested Deepslate", - Name: "infested_deepslate", - Hardness: 1.5, - Diggable: true, - DropIDs: []uint32{}, - NeedsTools: map[uint32]bool{}, - MinStateID: 20333, - MaxStateID: 20335, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - SmoothBasalt = Block{ - ID: 892, - DisplayName: "Smooth Basalt", - Name: "smooth_basalt", - Hardness: 1.25, - Diggable: true, - DropIDs: []uint32{273}, - NeedsTools: map[uint32]bool{701: true, 706: true, 711: true, 716: true, 721: true, 726: true}, - MinStateID: 20336, - MaxStateID: 20336, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RawIronBlock = Block{ - ID: 893, - DisplayName: "Block of Raw Iron", - Name: "raw_iron_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{60}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 20337, - MaxStateID: 20337, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RawCopperBlock = Block{ - ID: 894, - DisplayName: "Block of Raw Copper", - Name: "raw_copper_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{61}, - NeedsTools: map[uint32]bool{706: true, 716: true, 721: true, 726: true}, - MinStateID: 20338, - MaxStateID: 20338, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - RawGoldBlock = Block{ - ID: 895, - DisplayName: "Block of Raw Gold", - Name: "raw_gold_block", - Hardness: 5, - Diggable: true, - DropIDs: []uint32{62}, - NeedsTools: map[uint32]bool{716: true, 721: true, 726: true}, - MinStateID: 20339, - MaxStateID: 20339, - Transparent: false, - FilterLightLevel: 15, - EmitLightLevel: 0, - } - PottedAzaleaBush = Block{ - ID: 896, - DisplayName: "Air", - Name: "potted_azalea_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 152}, - NeedsTools: map[uint32]bool{}, - MinStateID: 20340, - MaxStateID: 20340, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } - PottedFloweringAzaleaBush = Block{ - ID: 897, - DisplayName: "Air", - Name: "potted_flowering_azalea_bush", - Hardness: 0, - Diggable: true, - DropIDs: []uint32{946, 153}, - NeedsTools: map[uint32]bool{}, - MinStateID: 20341, - MaxStateID: 20341, - Transparent: true, - FilterLightLevel: 0, - EmitLightLevel: 0, - } -) - -// ByID is an index of minecraft blocks by their ID. -var ByID = map[ID]*Block{ - 0: &Air, - 1: &Stone, - 2: &Granite, - 3: &PolishedGranite, - 4: &Diorite, - 5: &PolishedDiorite, - 6: &Andesite, - 7: &PolishedAndesite, - 8: &GrassBlock, - 9: &Dirt, - 10: &CoarseDirt, - 11: &Podzol, - 12: &Cobblestone, - 13: &OakPlanks, - 14: &SprucePlanks, - 15: &BirchPlanks, - 16: &JunglePlanks, - 17: &AcaciaPlanks, - 18: &DarkOakPlanks, - 19: &OakSapling, - 20: &SpruceSapling, - 21: &BirchSapling, - 22: &JungleSapling, - 23: &AcaciaSapling, - 24: &DarkOakSapling, - 25: &Bedrock, - 26: &Water, - 27: &Lava, - 28: &Sand, - 29: &RedSand, - 30: &Gravel, - 31: &GoldOre, - 32: &DeepslateGoldOre, - 33: &IronOre, - 34: &DeepslateIronOre, - 35: &CoalOre, - 36: &DeepslateCoalOre, - 37: &NetherGoldOre, - 38: &OakLog, - 39: &SpruceLog, - 40: &BirchLog, - 41: &JungleLog, - 42: &AcaciaLog, - 43: &DarkOakLog, - 44: &StrippedSpruceLog, - 45: &StrippedBirchLog, - 46: &StrippedJungleLog, - 47: &StrippedAcaciaLog, - 48: &StrippedDarkOakLog, - 49: &StrippedOakLog, - 50: &OakWood, - 51: &SpruceWood, - 52: &BirchWood, - 53: &JungleWood, - 54: &AcaciaWood, - 55: &DarkOakWood, - 56: &StrippedOakWood, - 57: &StrippedSpruceWood, - 58: &StrippedBirchWood, - 59: &StrippedJungleWood, - 60: &StrippedAcaciaWood, - 61: &StrippedDarkOakWood, - 62: &OakLeaves, - 63: &SpruceLeaves, - 64: &BirchLeaves, - 65: &JungleLeaves, - 66: &AcaciaLeaves, - 67: &DarkOakLeaves, - 68: &AzaleaLeaves, - 69: &FloweringAzaleaLeaves, - 70: &Sponge, - 71: &WetSponge, - 72: &Glass, - 73: &LapisOre, - 74: &DeepslateLapisOre, - 75: &LapisBlock, - 76: &Dispenser, - 77: &Sandstone, - 78: &ChiseledSandstone, - 79: &CutSandstone, - 80: &NoteBlock, - 81: &WhiteBed, - 82: &OrangeBed, - 83: &MagentaBed, - 84: &LightBlueBed, - 85: &YellowBed, - 86: &LimeBed, - 87: &PinkBed, - 88: &GrayBed, - 89: &LightGrayBed, - 90: &CyanBed, - 91: &PurpleBed, - 92: &BlueBed, - 93: &BrownBed, - 94: &GreenBed, - 95: &RedBed, - 96: &BlackBed, - 97: &PoweredRail, - 98: &DetectorRail, - 99: &StickyPiston, - 100: &Cobweb, - 101: &Grass, - 102: &Fern, - 103: &DeadBush, - 104: &Seagrass, - 105: &TallSeagrass, - 106: &Piston, - 107: &PistonHead, - 108: &WhiteWool, - 109: &OrangeWool, - 110: &MagentaWool, - 111: &LightBlueWool, - 112: &YellowWool, - 113: &LimeWool, - 114: &PinkWool, - 115: &GrayWool, - 116: &LightGrayWool, - 117: &CyanWool, - 118: &PurpleWool, - 119: &BlueWool, - 120: &BrownWool, - 121: &GreenWool, - 122: &RedWool, - 123: &BlackWool, - 124: &MovingPiston, - 125: &Dandelion, - 126: &Poppy, - 127: &BlueOrchid, - 128: &Allium, - 129: &AzureBluet, - 130: &RedTulip, - 131: &OrangeTulip, - 132: &WhiteTulip, - 133: &PinkTulip, - 134: &OxeyeDaisy, - 135: &Cornflower, - 136: &WitherRose, - 137: &LilyOfTheValley, - 138: &BrownMushroom, - 139: &RedMushroom, - 140: &GoldBlock, - 141: &IronBlock, - 142: &Bricks, - 143: &Tnt, - 144: &Bookshelf, - 145: &MossyCobblestone, - 146: &Obsidian, - 147: &Torch, - 148: &WallTorch, - 149: &Fire, - 150: &SoulFire, - 151: &Spawner, - 152: &OakStairs, - 153: &Chest, - 154: &RedstoneWire, - 155: &DiamondOre, - 156: &DeepslateDiamondOre, - 157: &DiamondBlock, - 158: &CraftingTable, - 159: &Wheat, - 160: &Farmland, - 161: &Furnace, - 162: &OakSign, - 163: &SpruceSign, - 164: &BirchSign, - 165: &AcaciaSign, - 166: &JungleSign, - 167: &DarkOakSign, - 168: &OakDoor, - 169: &Ladder, - 170: &Rail, - 171: &CobblestoneStairs, - 172: &OakWallSign, - 173: &SpruceWallSign, - 174: &BirchWallSign, - 175: &AcaciaWallSign, - 176: &JungleWallSign, - 177: &DarkOakWallSign, - 178: &Lever, - 179: &StonePressurePlate, - 180: &IronDoor, - 181: &OakPressurePlate, - 182: &SprucePressurePlate, - 183: &BirchPressurePlate, - 184: &JunglePressurePlate, - 185: &AcaciaPressurePlate, - 186: &DarkOakPressurePlate, - 187: &RedstoneOre, - 188: &DeepslateRedstoneOre, - 189: &RedstoneTorch, - 190: &RedstoneWallTorch, - 191: &StoneButton, - 192: &Snow, - 193: &Ice, - 194: &SnowBlock, - 195: &Cactus, - 196: &Clay, - 197: &SugarCane, - 198: &Jukebox, - 199: &OakFence, - 200: &Pumpkin, - 201: &Netherrack, - 202: &SoulSand, - 203: &SoulSoil, - 204: &Basalt, - 205: &PolishedBasalt, - 206: &SoulTorch, - 207: &SoulWallTorch, - 208: &Glowstone, - 209: &NetherPortal, - 210: &CarvedPumpkin, - 211: &JackOLantern, - 212: &Cake, - 213: &Repeater, - 214: &WhiteStainedGlass, - 215: &OrangeStainedGlass, - 216: &MagentaStainedGlass, - 217: &LightBlueStainedGlass, - 218: &YellowStainedGlass, - 219: &LimeStainedGlass, - 220: &PinkStainedGlass, - 221: &GrayStainedGlass, - 222: &LightGrayStainedGlass, - 223: &CyanStainedGlass, - 224: &PurpleStainedGlass, - 225: &BlueStainedGlass, - 226: &BrownStainedGlass, - 227: &GreenStainedGlass, - 228: &RedStainedGlass, - 229: &BlackStainedGlass, - 230: &OakTrapdoor, - 231: &SpruceTrapdoor, - 232: &BirchTrapdoor, - 233: &JungleTrapdoor, - 234: &AcaciaTrapdoor, - 235: &DarkOakTrapdoor, - 236: &StoneBricks, - 237: &MossyStoneBricks, - 238: &CrackedStoneBricks, - 239: &ChiseledStoneBricks, - 240: &InfestedStone, - 241: &InfestedCobblestone, - 242: &InfestedStoneBricks, - 243: &InfestedMossyStoneBricks, - 244: &InfestedCrackedStoneBricks, - 245: &InfestedChiseledStoneBricks, - 246: &BrownMushroomBlock, - 247: &RedMushroomBlock, - 248: &MushroomStem, - 249: &IronBars, - 250: &Chain, - 251: &GlassPane, - 252: &Melon, - 253: &AttachedPumpkinStem, - 254: &AttachedMelonStem, - 255: &PumpkinStem, - 256: &MelonStem, - 257: &Vine, - 258: &GlowLichen, - 259: &OakFenceGate, - 260: &BrickStairs, - 261: &StoneBrickStairs, - 262: &Mycelium, - 263: &LilyPad, - 264: &NetherBricks, - 265: &NetherBrickFence, - 266: &NetherBrickStairs, - 267: &NetherWart, - 268: &EnchantingTable, - 269: &BrewingStand, - 270: &Cauldron, - 271: &WaterCauldron, - 272: &LavaCauldron, - 273: &PowderSnowCauldron, - 274: &EndPortal, - 275: &EndPortalFrame, - 276: &EndStone, - 277: &DragonEgg, - 278: &RedstoneLamp, - 279: &Cocoa, - 280: &SandstoneStairs, - 281: &EmeraldOre, - 282: &DeepslateEmeraldOre, - 283: &EnderChest, - 284: &TripwireHook, - 285: &Tripwire, - 286: &EmeraldBlock, - 287: &SpruceStairs, - 288: &BirchStairs, - 289: &JungleStairs, - 290: &CommandBlock, - 291: &Beacon, - 292: &CobblestoneWall, - 293: &MossyCobblestoneWall, - 294: &FlowerPot, - 295: &PottedOakSapling, - 296: &PottedSpruceSapling, - 297: &PottedBirchSapling, - 298: &PottedJungleSapling, - 299: &PottedAcaciaSapling, - 300: &PottedDarkOakSapling, - 301: &PottedFern, - 302: &PottedDandelion, - 303: &PottedPoppy, - 304: &PottedBlueOrchid, - 305: &PottedAllium, - 306: &PottedAzureBluet, - 307: &PottedRedTulip, - 308: &PottedOrangeTulip, - 309: &PottedWhiteTulip, - 310: &PottedPinkTulip, - 311: &PottedOxeyeDaisy, - 312: &PottedCornflower, - 313: &PottedLilyOfTheValley, - 314: &PottedWitherRose, - 315: &PottedRedMushroom, - 316: &PottedBrownMushroom, - 317: &PottedDeadBush, - 318: &PottedCactus, - 319: &Carrots, - 320: &Potatoes, - 321: &OakButton, - 322: &SpruceButton, - 323: &BirchButton, - 324: &JungleButton, - 325: &AcaciaButton, - 326: &DarkOakButton, - 327: &SkeletonSkull, - 328: &SkeletonWallSkull, - 329: &WitherSkeletonSkull, - 330: &WitherSkeletonWallSkull, - 331: &ZombieHead, - 332: &ZombieWallHead, - 333: &PlayerHead, - 334: &PlayerWallHead, - 335: &CreeperHead, - 336: &CreeperWallHead, - 337: &DragonHead, - 338: &DragonWallHead, - 339: &Anvil, - 340: &ChippedAnvil, - 341: &DamagedAnvil, - 342: &TrappedChest, - 343: &LightWeightedPressurePlate, - 344: &HeavyWeightedPressurePlate, - 345: &Comparator, - 346: &DaylightDetector, - 347: &RedstoneBlock, - 348: &NetherQuartzOre, - 349: &Hopper, - 350: &QuartzBlock, - 351: &ChiseledQuartzBlock, - 352: &QuartzPillar, - 353: &QuartzStairs, - 354: &ActivatorRail, - 355: &Dropper, - 356: &WhiteTerracotta, - 357: &OrangeTerracotta, - 358: &MagentaTerracotta, - 359: &LightBlueTerracotta, - 360: &YellowTerracotta, - 361: &LimeTerracotta, - 362: &PinkTerracotta, - 363: &GrayTerracotta, - 364: &LightGrayTerracotta, - 365: &CyanTerracotta, - 366: &PurpleTerracotta, - 367: &BlueTerracotta, - 368: &BrownTerracotta, - 369: &GreenTerracotta, - 370: &RedTerracotta, - 371: &BlackTerracotta, - 372: &WhiteStainedGlassPane, - 373: &OrangeStainedGlassPane, - 374: &MagentaStainedGlassPane, - 375: &LightBlueStainedGlassPane, - 376: &YellowStainedGlassPane, - 377: &LimeStainedGlassPane, - 378: &PinkStainedGlassPane, - 379: &GrayStainedGlassPane, - 380: &LightGrayStainedGlassPane, - 381: &CyanStainedGlassPane, - 382: &PurpleStainedGlassPane, - 383: &BlueStainedGlassPane, - 384: &BrownStainedGlassPane, - 385: &GreenStainedGlassPane, - 386: &RedStainedGlassPane, - 387: &BlackStainedGlassPane, - 388: &AcaciaStairs, - 389: &DarkOakStairs, - 390: &SlimeBlock, - 391: &Barrier, - 392: &Light, - 393: &IronTrapdoor, - 394: &Prismarine, - 395: &PrismarineBricks, - 396: &DarkPrismarine, - 397: &PrismarineStairs, - 398: &PrismarineBrickStairs, - 399: &DarkPrismarineStairs, - 400: &PrismarineSlab, - 401: &PrismarineBrickSlab, - 402: &DarkPrismarineSlab, - 403: &SeaLantern, - 404: &HayBlock, - 405: &WhiteCarpet, - 406: &OrangeCarpet, - 407: &MagentaCarpet, - 408: &LightBlueCarpet, - 409: &YellowCarpet, - 410: &LimeCarpet, - 411: &PinkCarpet, - 412: &GrayCarpet, - 413: &LightGrayCarpet, - 414: &CyanCarpet, - 415: &PurpleCarpet, - 416: &BlueCarpet, - 417: &BrownCarpet, - 418: &GreenCarpet, - 419: &RedCarpet, - 420: &BlackCarpet, - 421: &Terracotta, - 422: &CoalBlock, - 423: &PackedIce, - 424: &Sunflower, - 425: &Lilac, - 426: &RoseBush, - 427: &Peony, - 428: &TallGrass, - 429: &LargeFern, - 430: &WhiteBanner, - 431: &OrangeBanner, - 432: &MagentaBanner, - 433: &LightBlueBanner, - 434: &YellowBanner, - 435: &LimeBanner, - 436: &PinkBanner, - 437: &GrayBanner, - 438: &LightGrayBanner, - 439: &CyanBanner, - 440: &PurpleBanner, - 441: &BlueBanner, - 442: &BrownBanner, - 443: &GreenBanner, - 444: &RedBanner, - 445: &BlackBanner, - 446: &WhiteWallBanner, - 447: &OrangeWallBanner, - 448: &MagentaWallBanner, - 449: &LightBlueWallBanner, - 450: &YellowWallBanner, - 451: &LimeWallBanner, - 452: &PinkWallBanner, - 453: &GrayWallBanner, - 454: &LightGrayWallBanner, - 455: &CyanWallBanner, - 456: &PurpleWallBanner, - 457: &BlueWallBanner, - 458: &BrownWallBanner, - 459: &GreenWallBanner, - 460: &RedWallBanner, - 461: &BlackWallBanner, - 462: &RedSandstone, - 463: &ChiseledRedSandstone, - 464: &CutRedSandstone, - 465: &RedSandstoneStairs, - 466: &OakSlab, - 467: &SpruceSlab, - 468: &BirchSlab, - 469: &JungleSlab, - 470: &AcaciaSlab, - 471: &DarkOakSlab, - 472: &StoneSlab, - 473: &SmoothStoneSlab, - 474: &SandstoneSlab, - 475: &CutSandstoneSlab, - 476: &PetrifiedOakSlab, - 477: &CobblestoneSlab, - 478: &BrickSlab, - 479: &StoneBrickSlab, - 480: &NetherBrickSlab, - 481: &QuartzSlab, - 482: &RedSandstoneSlab, - 483: &CutRedSandstoneSlab, - 484: &PurpurSlab, - 485: &SmoothStone, - 486: &SmoothSandstone, - 487: &SmoothQuartz, - 488: &SmoothRedSandstone, - 489: &SpruceFenceGate, - 490: &BirchFenceGate, - 491: &JungleFenceGate, - 492: &AcaciaFenceGate, - 493: &DarkOakFenceGate, - 494: &SpruceFence, - 495: &BirchFence, - 496: &JungleFence, - 497: &AcaciaFence, - 498: &DarkOakFence, - 499: &SpruceDoor, - 500: &BirchDoor, - 501: &JungleDoor, - 502: &AcaciaDoor, - 503: &DarkOakDoor, - 504: &EndRod, - 505: &ChorusPlant, - 506: &ChorusFlower, - 507: &PurpurBlock, - 508: &PurpurPillar, - 509: &PurpurStairs, - 510: &EndStoneBricks, - 511: &Beetroots, - 512: &DirtPath, - 513: &EndGateway, - 514: &RepeatingCommandBlock, - 515: &ChainCommandBlock, - 516: &FrostedIce, - 517: &MagmaBlock, - 518: &NetherWartBlock, - 519: &RedNetherBricks, - 520: &BoneBlock, - 521: &StructureVoid, - 522: &Observer, - 523: &ShulkerBox, - 524: &WhiteShulkerBox, - 525: &OrangeShulkerBox, - 526: &MagentaShulkerBox, - 527: &LightBlueShulkerBox, - 528: &YellowShulkerBox, - 529: &LimeShulkerBox, - 530: &PinkShulkerBox, - 531: &GrayShulkerBox, - 532: &LightGrayShulkerBox, - 533: &CyanShulkerBox, - 534: &PurpleShulkerBox, - 535: &BlueShulkerBox, - 536: &BrownShulkerBox, - 537: &GreenShulkerBox, - 538: &RedShulkerBox, - 539: &BlackShulkerBox, - 540: &WhiteGlazedTerracotta, - 541: &OrangeGlazedTerracotta, - 542: &MagentaGlazedTerracotta, - 543: &LightBlueGlazedTerracotta, - 544: &YellowGlazedTerracotta, - 545: &LimeGlazedTerracotta, - 546: &PinkGlazedTerracotta, - 547: &GrayGlazedTerracotta, - 548: &LightGrayGlazedTerracotta, - 549: &CyanGlazedTerracotta, - 550: &PurpleGlazedTerracotta, - 551: &BlueGlazedTerracotta, - 552: &BrownGlazedTerracotta, - 553: &GreenGlazedTerracotta, - 554: &RedGlazedTerracotta, - 555: &BlackGlazedTerracotta, - 556: &WhiteConcrete, - 557: &OrangeConcrete, - 558: &MagentaConcrete, - 559: &LightBlueConcrete, - 560: &YellowConcrete, - 561: &LimeConcrete, - 562: &PinkConcrete, - 563: &GrayConcrete, - 564: &LightGrayConcrete, - 565: &CyanConcrete, - 566: &PurpleConcrete, - 567: &BlueConcrete, - 568: &BrownConcrete, - 569: &GreenConcrete, - 570: &RedConcrete, - 571: &BlackConcrete, - 572: &WhiteConcretePowder, - 573: &OrangeConcretePowder, - 574: &MagentaConcretePowder, - 575: &LightBlueConcretePowder, - 576: &YellowConcretePowder, - 577: &LimeConcretePowder, - 578: &PinkConcretePowder, - 579: &GrayConcretePowder, - 580: &LightGrayConcretePowder, - 581: &CyanConcretePowder, - 582: &PurpleConcretePowder, - 583: &BlueConcretePowder, - 584: &BrownConcretePowder, - 585: &GreenConcretePowder, - 586: &RedConcretePowder, - 587: &BlackConcretePowder, - 588: &Kelp, - 589: &KelpPlant, - 590: &DriedKelpBlock, - 591: &TurtleEgg, - 592: &DeadTubeCoralBlock, - 593: &DeadBrainCoralBlock, - 594: &DeadBubbleCoralBlock, - 595: &DeadFireCoralBlock, - 596: &DeadHornCoralBlock, - 597: &TubeCoralBlock, - 598: &BrainCoralBlock, - 599: &BubbleCoralBlock, - 600: &FireCoralBlock, - 601: &HornCoralBlock, - 602: &DeadTubeCoral, - 603: &DeadBrainCoral, - 604: &DeadBubbleCoral, - 605: &DeadFireCoral, - 606: &DeadHornCoral, - 607: &TubeCoral, - 608: &BrainCoral, - 609: &BubbleCoral, - 610: &FireCoral, - 611: &HornCoral, - 612: &DeadTubeCoralFan, - 613: &DeadBrainCoralFan, - 614: &DeadBubbleCoralFan, - 615: &DeadFireCoralFan, - 616: &DeadHornCoralFan, - 617: &TubeCoralFan, - 618: &BrainCoralFan, - 619: &BubbleCoralFan, - 620: &FireCoralFan, - 621: &HornCoralFan, - 622: &DeadTubeCoralWallFan, - 623: &DeadBrainCoralWallFan, - 624: &DeadBubbleCoralWallFan, - 625: &DeadFireCoralWallFan, - 626: &DeadHornCoralWallFan, - 627: &TubeCoralWallFan, - 628: &BrainCoralWallFan, - 629: &BubbleCoralWallFan, - 630: &FireCoralWallFan, - 631: &HornCoralWallFan, - 632: &SeaPickle, - 633: &BlueIce, - 634: &Conduit, - 635: &BambooSapling, - 636: &Bamboo, - 637: &PottedBamboo, - 638: &VoidAir, - 639: &CaveAir, - 640: &BubbleColumn, - 641: &PolishedGraniteStairs, - 642: &SmoothRedSandstoneStairs, - 643: &MossyStoneBrickStairs, - 644: &PolishedDioriteStairs, - 645: &MossyCobblestoneStairs, - 646: &EndStoneBrickStairs, - 647: &StoneStairs, - 648: &SmoothSandstoneStairs, - 649: &SmoothQuartzStairs, - 650: &GraniteStairs, - 651: &AndesiteStairs, - 652: &RedNetherBrickStairs, - 653: &PolishedAndesiteStairs, - 654: &DioriteStairs, - 655: &PolishedGraniteSlab, - 656: &SmoothRedSandstoneSlab, - 657: &MossyStoneBrickSlab, - 658: &PolishedDioriteSlab, - 659: &MossyCobblestoneSlab, - 660: &EndStoneBrickSlab, - 661: &SmoothSandstoneSlab, - 662: &SmoothQuartzSlab, - 663: &GraniteSlab, - 664: &AndesiteSlab, - 665: &RedNetherBrickSlab, - 666: &PolishedAndesiteSlab, - 667: &DioriteSlab, - 668: &BrickWall, - 669: &PrismarineWall, - 670: &RedSandstoneWall, - 671: &MossyStoneBrickWall, - 672: &GraniteWall, - 673: &StoneBrickWall, - 674: &NetherBrickWall, - 675: &AndesiteWall, - 676: &RedNetherBrickWall, - 677: &SandstoneWall, - 678: &EndStoneBrickWall, - 679: &DioriteWall, - 680: &Scaffolding, - 681: &Loom, - 682: &Barrel, - 683: &Smoker, - 684: &BlastFurnace, - 685: &CartographyTable, - 686: &FletchingTable, - 687: &Grindstone, - 688: &Lectern, - 689: &SmithingTable, - 690: &Stonecutter, - 691: &Bell, - 692: &Lantern, - 693: &SoulLantern, - 694: &Campfire, - 695: &SoulCampfire, - 696: &SweetBerryBush, - 697: &WarpedStem, - 698: &StrippedWarpedStem, - 699: &WarpedHyphae, - 700: &StrippedWarpedHyphae, - 701: &WarpedNylium, - 702: &WarpedFungus, - 703: &WarpedWartBlock, - 704: &WarpedRoots, - 705: &NetherSprouts, - 706: &CrimsonStem, - 707: &StrippedCrimsonStem, - 708: &CrimsonHyphae, - 709: &StrippedCrimsonHyphae, - 710: &CrimsonNylium, - 711: &CrimsonFungus, - 712: &Shroomlight, - 713: &WeepingVines, - 714: &WeepingVinesPlant, - 715: &TwistingVines, - 716: &TwistingVinesPlant, - 717: &CrimsonRoots, - 718: &CrimsonPlanks, - 719: &WarpedPlanks, - 720: &CrimsonSlab, - 721: &WarpedSlab, - 722: &CrimsonPressurePlate, - 723: &WarpedPressurePlate, - 724: &CrimsonFence, - 725: &WarpedFence, - 726: &CrimsonTrapdoor, - 727: &WarpedTrapdoor, - 728: &CrimsonFenceGate, - 729: &WarpedFenceGate, - 730: &CrimsonStairs, - 731: &WarpedStairs, - 732: &CrimsonButton, - 733: &WarpedButton, - 734: &CrimsonDoor, - 735: &WarpedDoor, - 736: &CrimsonSign, - 737: &WarpedSign, - 738: &CrimsonWallSign, - 739: &WarpedWallSign, - 740: &StructureBlock, - 741: &Jigsaw, - 742: &Composter, - 743: &Target, - 744: &BeeNest, - 745: &Beehive, - 746: &HoneyBlock, - 747: &HoneycombBlock, - 748: &NetheriteBlock, - 749: &AncientDebris, - 750: &CryingObsidian, - 751: &RespawnAnchor, - 752: &PottedCrimsonFungus, - 753: &PottedWarpedFungus, - 754: &PottedCrimsonRoots, - 755: &PottedWarpedRoots, - 756: &Lodestone, - 757: &Blackstone, - 758: &BlackstoneStairs, - 759: &BlackstoneWall, - 760: &BlackstoneSlab, - 761: &PolishedBlackstone, - 762: &PolishedBlackstoneBricks, - 763: &CrackedPolishedBlackstoneBricks, - 764: &ChiseledPolishedBlackstone, - 765: &PolishedBlackstoneBrickSlab, - 766: &PolishedBlackstoneBrickStairs, - 767: &PolishedBlackstoneBrickWall, - 768: &GildedBlackstone, - 769: &PolishedBlackstoneStairs, - 770: &PolishedBlackstoneSlab, - 771: &PolishedBlackstonePressurePlate, - 772: &PolishedBlackstoneButton, - 773: &PolishedBlackstoneWall, - 774: &ChiseledNetherBricks, - 775: &CrackedNetherBricks, - 776: &QuartzBricks, - 777: &Candle, - 778: &WhiteCandle, - 779: &OrangeCandle, - 780: &MagentaCandle, - 781: &LightBlueCandle, - 782: &YellowCandle, - 783: &LimeCandle, - 784: &PinkCandle, - 785: &GrayCandle, - 786: &LightGrayCandle, - 787: &CyanCandle, - 788: &PurpleCandle, - 789: &BlueCandle, - 790: &BrownCandle, - 791: &GreenCandle, - 792: &RedCandle, - 793: &BlackCandle, - 794: &CandleCake, - 795: &WhiteCandleCake, - 796: &OrangeCandleCake, - 797: &MagentaCandleCake, - 798: &LightBlueCandleCake, - 799: &YellowCandleCake, - 800: &LimeCandleCake, - 801: &PinkCandleCake, - 802: &GrayCandleCake, - 803: &LightGrayCandleCake, - 804: &CyanCandleCake, - 805: &PurpleCandleCake, - 806: &BlueCandleCake, - 807: &BrownCandleCake, - 808: &GreenCandleCake, - 809: &RedCandleCake, - 810: &BlackCandleCake, - 811: &AmethystBlock, - 812: &BuddingAmethyst, - 813: &AmethystCluster, - 814: &LargeAmethystBud, - 815: &MediumAmethystBud, - 816: &SmallAmethystBud, - 817: &Tuff, - 818: &Calcite, - 819: &TintedGlass, - 820: &PowderSnow, - 821: &SculkSensor, - 822: &OxidizedCopper, - 823: &WeatheredCopper, - 824: &ExposedCopper, - 825: &CopperBlock, - 826: &CopperOre, - 827: &DeepslateCopperOre, - 828: &OxidizedCutCopper, - 829: &WeatheredCutCopper, - 830: &ExposedCutCopper, - 831: &CutCopper, - 832: &OxidizedCutCopperStairs, - 833: &WeatheredCutCopperStairs, - 834: &ExposedCutCopperStairs, - 835: &CutCopperStairs, - 836: &OxidizedCutCopperSlab, - 837: &WeatheredCutCopperSlab, - 838: &ExposedCutCopperSlab, - 839: &CutCopperSlab, - 840: &WaxedCopperBlock, - 841: &WaxedWeatheredCopper, - 842: &WaxedExposedCopper, - 843: &WaxedOxidizedCopper, - 844: &WaxedOxidizedCutCopper, - 845: &WaxedWeatheredCutCopper, - 846: &WaxedExposedCutCopper, - 847: &WaxedCutCopper, - 848: &WaxedOxidizedCutCopperStairs, - 849: &WaxedWeatheredCutCopperStairs, - 850: &WaxedExposedCutCopperStairs, - 851: &WaxedCutCopperStairs, - 852: &WaxedOxidizedCutCopperSlab, - 853: &WaxedWeatheredCutCopperSlab, - 854: &WaxedExposedCutCopperSlab, - 855: &WaxedCutCopperSlab, - 856: &LightningRod, - 857: &PointedDripstone, - 858: &DripstoneBlock, - 859: &CaveVines, - 860: &CaveVinesPlant, - 861: &SporeBlossom, - 862: &Azalea, - 863: &FloweringAzalea, - 864: &MossCarpet, - 865: &MossBlock, - 866: &BigDripleaf, - 867: &BigDripleafStem, - 868: &SmallDripleaf, - 869: &HangingRoots, - 870: &RootedDirt, - 871: &Deepslate, - 872: &CobbledDeepslate, - 873: &CobbledDeepslateStairs, - 874: &CobbledDeepslateSlab, - 875: &CobbledDeepslateWall, - 876: &PolishedDeepslate, - 877: &PolishedDeepslateStairs, - 878: &PolishedDeepslateSlab, - 879: &PolishedDeepslateWall, - 880: &DeepslateTiles, - 881: &DeepslateTileStairs, - 882: &DeepslateTileSlab, - 883: &DeepslateTileWall, - 884: &DeepslateBricks, - 885: &DeepslateBrickStairs, - 886: &DeepslateBrickSlab, - 887: &DeepslateBrickWall, - 888: &ChiseledDeepslate, - 889: &CrackedDeepslateBricks, - 890: &CrackedDeepslateTiles, - 891: &InfestedDeepslate, - 892: &SmoothBasalt, - 893: &RawIronBlock, - 894: &RawCopperBlock, - 895: &RawGoldBlock, - 896: &PottedAzaleaBush, - 897: &PottedFloweringAzaleaBush, -} - -// StateID maps all possible state IDs to a corresponding block ID. -var StateID = map[uint32]ID{ - 0: 0, - 1: 1, - 2: 2, - 3: 3, - 4: 4, - 5: 5, - 6: 6, - 7: 7, - 8: 8, - 9: 8, - 10: 9, - 11: 10, - 12: 11, - 13: 11, - 14: 12, - 15: 13, - 16: 14, - 17: 15, - 18: 16, - 19: 17, - 20: 18, - 21: 19, - 22: 19, - 23: 20, - 24: 20, - 25: 21, - 26: 21, - 27: 22, - 28: 22, - 29: 23, - 30: 23, - 31: 24, - 32: 24, - 33: 25, - 34: 26, - 35: 26, - 36: 26, - 37: 26, - 38: 26, - 39: 26, - 40: 26, - 41: 26, - 42: 26, - 43: 26, - 44: 26, - 45: 26, - 46: 26, - 47: 26, - 48: 26, - 49: 26, - 50: 27, - 51: 27, - 52: 27, - 53: 27, - 54: 27, - 55: 27, - 56: 27, - 57: 27, - 58: 27, - 59: 27, - 60: 27, - 61: 27, - 62: 27, - 63: 27, - 64: 27, - 65: 27, - 66: 28, - 67: 29, - 68: 30, - 69: 31, - 70: 32, - 71: 33, - 72: 34, - 73: 35, - 74: 36, - 75: 37, - 76: 38, - 77: 38, - 78: 38, - 79: 39, - 80: 39, - 81: 39, - 82: 40, - 83: 40, - 84: 40, - 85: 41, - 86: 41, - 87: 41, - 88: 42, - 89: 42, - 90: 42, - 91: 43, - 92: 43, - 93: 43, - 94: 44, - 95: 44, - 96: 44, - 97: 45, - 98: 45, - 99: 45, - 100: 46, - 101: 46, - 102: 46, - 103: 47, - 104: 47, - 105: 47, - 106: 48, - 107: 48, - 108: 48, - 109: 49, - 110: 49, - 111: 49, - 112: 50, - 113: 50, - 114: 50, - 115: 51, - 116: 51, - 117: 51, - 118: 52, - 119: 52, - 120: 52, - 121: 53, - 122: 53, - 123: 53, - 124: 54, - 125: 54, - 126: 54, - 127: 55, - 128: 55, - 129: 55, - 130: 56, - 131: 56, - 132: 56, - 133: 57, - 134: 57, - 135: 57, - 136: 58, - 137: 58, - 138: 58, - 139: 59, - 140: 59, - 141: 59, - 142: 60, - 143: 60, - 144: 60, - 145: 61, - 146: 61, - 147: 61, - 148: 62, - 149: 62, - 150: 62, - 151: 62, - 152: 62, - 153: 62, - 154: 62, - 155: 62, - 156: 62, - 157: 62, - 158: 62, - 159: 62, - 160: 62, - 161: 62, - 162: 63, - 163: 63, - 164: 63, - 165: 63, - 166: 63, - 167: 63, - 168: 63, - 169: 63, - 170: 63, - 171: 63, - 172: 63, - 173: 63, - 174: 63, - 175: 63, - 176: 64, - 177: 64, - 178: 64, - 179: 64, - 180: 64, - 181: 64, - 182: 64, - 183: 64, - 184: 64, - 185: 64, - 186: 64, - 187: 64, - 188: 64, - 189: 64, - 190: 65, - 191: 65, - 192: 65, - 193: 65, - 194: 65, - 195: 65, - 196: 65, - 197: 65, - 198: 65, - 199: 65, - 200: 65, - 201: 65, - 202: 65, - 203: 65, - 204: 66, - 205: 66, - 206: 66, - 207: 66, - 208: 66, - 209: 66, - 210: 66, - 211: 66, - 212: 66, - 213: 66, - 214: 66, - 215: 66, - 216: 66, - 217: 66, - 218: 67, - 219: 67, - 220: 67, - 221: 67, - 222: 67, - 223: 67, - 224: 67, - 225: 67, - 226: 67, - 227: 67, - 228: 67, - 229: 67, - 230: 67, - 231: 67, - 232: 68, - 233: 68, - 234: 68, - 235: 68, - 236: 68, - 237: 68, - 238: 68, - 239: 68, - 240: 68, - 241: 68, - 242: 68, - 243: 68, - 244: 68, - 245: 68, - 246: 69, - 247: 69, - 248: 69, - 249: 69, - 250: 69, - 251: 69, - 252: 69, - 253: 69, - 254: 69, - 255: 69, - 256: 69, - 257: 69, - 258: 69, - 259: 69, - 260: 70, - 261: 71, - 262: 72, - 263: 73, - 264: 74, - 265: 75, - 266: 76, - 267: 76, - 268: 76, - 269: 76, - 270: 76, - 271: 76, - 272: 76, - 273: 76, - 274: 76, - 275: 76, - 276: 76, - 277: 76, - 278: 77, - 279: 78, - 280: 79, - 281: 80, - 282: 80, - 283: 80, - 284: 80, - 285: 80, - 286: 80, - 287: 80, - 288: 80, - 289: 80, - 290: 80, - 291: 80, - 292: 80, - 293: 80, - 294: 80, - 295: 80, - 296: 80, - 297: 80, - 298: 80, - 299: 80, - 300: 80, - 301: 80, - 302: 80, - 303: 80, - 304: 80, - 305: 80, - 306: 80, - 307: 80, - 308: 80, - 309: 80, - 310: 80, - 311: 80, - 312: 80, - 313: 80, - 314: 80, - 315: 80, - 316: 80, - 317: 80, - 318: 80, - 319: 80, - 320: 80, - 321: 80, - 322: 80, - 323: 80, - 324: 80, - 325: 80, - 326: 80, - 327: 80, - 328: 80, - 329: 80, - 330: 80, - 331: 80, - 332: 80, - 333: 80, - 334: 80, - 335: 80, - 336: 80, - 337: 80, - 338: 80, - 339: 80, - 340: 80, - 341: 80, - 342: 80, - 343: 80, - 344: 80, - 345: 80, - 346: 80, - 347: 80, - 348: 80, - 349: 80, - 350: 80, - 351: 80, - 352: 80, - 353: 80, - 354: 80, - 355: 80, - 356: 80, - 357: 80, - 358: 80, - 359: 80, - 360: 80, - 361: 80, - 362: 80, - 363: 80, - 364: 80, - 365: 80, - 366: 80, - 367: 80, - 368: 80, - 369: 80, - 370: 80, - 371: 80, - 372: 80, - 373: 80, - 374: 80, - 375: 80, - 376: 80, - 377: 80, - 378: 80, - 379: 80, - 380: 80, - 381: 80, - 382: 80, - 383: 80, - 384: 80, - 385: 80, - 386: 80, - 387: 80, - 388: 80, - 389: 80, - 390: 80, - 391: 80, - 392: 80, - 393: 80, - 394: 80, - 395: 80, - 396: 80, - 397: 80, - 398: 80, - 399: 80, - 400: 80, - 401: 80, - 402: 80, - 403: 80, - 404: 80, - 405: 80, - 406: 80, - 407: 80, - 408: 80, - 409: 80, - 410: 80, - 411: 80, - 412: 80, - 413: 80, - 414: 80, - 415: 80, - 416: 80, - 417: 80, - 418: 80, - 419: 80, - 420: 80, - 421: 80, - 422: 80, - 423: 80, - 424: 80, - 425: 80, - 426: 80, - 427: 80, - 428: 80, - 429: 80, - 430: 80, - 431: 80, - 432: 80, - 433: 80, - 434: 80, - 435: 80, - 436: 80, - 437: 80, - 438: 80, - 439: 80, - 440: 80, - 441: 80, - 442: 80, - 443: 80, - 444: 80, - 445: 80, - 446: 80, - 447: 80, - 448: 80, - 449: 80, - 450: 80, - 451: 80, - 452: 80, - 453: 80, - 454: 80, - 455: 80, - 456: 80, - 457: 80, - 458: 80, - 459: 80, - 460: 80, - 461: 80, - 462: 80, - 463: 80, - 464: 80, - 465: 80, - 466: 80, - 467: 80, - 468: 80, - 469: 80, - 470: 80, - 471: 80, - 472: 80, - 473: 80, - 474: 80, - 475: 80, - 476: 80, - 477: 80, - 478: 80, - 479: 80, - 480: 80, - 481: 80, - 482: 80, - 483: 80, - 484: 80, - 485: 80, - 486: 80, - 487: 80, - 488: 80, - 489: 80, - 490: 80, - 491: 80, - 492: 80, - 493: 80, - 494: 80, - 495: 80, - 496: 80, - 497: 80, - 498: 80, - 499: 80, - 500: 80, - 501: 80, - 502: 80, - 503: 80, - 504: 80, - 505: 80, - 506: 80, - 507: 80, - 508: 80, - 509: 80, - 510: 80, - 511: 80, - 512: 80, - 513: 80, - 514: 80, - 515: 80, - 516: 80, - 517: 80, - 518: 80, - 519: 80, - 520: 80, - 521: 80, - 522: 80, - 523: 80, - 524: 80, - 525: 80, - 526: 80, - 527: 80, - 528: 80, - 529: 80, - 530: 80, - 531: 80, - 532: 80, - 533: 80, - 534: 80, - 535: 80, - 536: 80, - 537: 80, - 538: 80, - 539: 80, - 540: 80, - 541: 80, - 542: 80, - 543: 80, - 544: 80, - 545: 80, - 546: 80, - 547: 80, - 548: 80, - 549: 80, - 550: 80, - 551: 80, - 552: 80, - 553: 80, - 554: 80, - 555: 80, - 556: 80, - 557: 80, - 558: 80, - 559: 80, - 560: 80, - 561: 80, - 562: 80, - 563: 80, - 564: 80, - 565: 80, - 566: 80, - 567: 80, - 568: 80, - 569: 80, - 570: 80, - 571: 80, - 572: 80, - 573: 80, - 574: 80, - 575: 80, - 576: 80, - 577: 80, - 578: 80, - 579: 80, - 580: 80, - 581: 80, - 582: 80, - 583: 80, - 584: 80, - 585: 80, - 586: 80, - 587: 80, - 588: 80, - 589: 80, - 590: 80, - 591: 80, - 592: 80, - 593: 80, - 594: 80, - 595: 80, - 596: 80, - 597: 80, - 598: 80, - 599: 80, - 600: 80, - 601: 80, - 602: 80, - 603: 80, - 604: 80, - 605: 80, - 606: 80, - 607: 80, - 608: 80, - 609: 80, - 610: 80, - 611: 80, - 612: 80, - 613: 80, - 614: 80, - 615: 80, - 616: 80, - 617: 80, - 618: 80, - 619: 80, - 620: 80, - 621: 80, - 622: 80, - 623: 80, - 624: 80, - 625: 80, - 626: 80, - 627: 80, - 628: 80, - 629: 80, - 630: 80, - 631: 80, - 632: 80, - 633: 80, - 634: 80, - 635: 80, - 636: 80, - 637: 80, - 638: 80, - 639: 80, - 640: 80, - 641: 80, - 642: 80, - 643: 80, - 644: 80, - 645: 80, - 646: 80, - 647: 80, - 648: 80, - 649: 80, - 650: 80, - 651: 80, - 652: 80, - 653: 80, - 654: 80, - 655: 80, - 656: 80, - 657: 80, - 658: 80, - 659: 80, - 660: 80, - 661: 80, - 662: 80, - 663: 80, - 664: 80, - 665: 80, - 666: 80, - 667: 80, - 668: 80, - 669: 80, - 670: 80, - 671: 80, - 672: 80, - 673: 80, - 674: 80, - 675: 80, - 676: 80, - 677: 80, - 678: 80, - 679: 80, - 680: 80, - 681: 80, - 682: 80, - 683: 80, - 684: 80, - 685: 80, - 686: 80, - 687: 80, - 688: 80, - 689: 80, - 690: 80, - 691: 80, - 692: 80, - 693: 80, - 694: 80, - 695: 80, - 696: 80, - 697: 80, - 698: 80, - 699: 80, - 700: 80, - 701: 80, - 702: 80, - 703: 80, - 704: 80, - 705: 80, - 706: 80, - 707: 80, - 708: 80, - 709: 80, - 710: 80, - 711: 80, - 712: 80, - 713: 80, - 714: 80, - 715: 80, - 716: 80, - 717: 80, - 718: 80, - 719: 80, - 720: 80, - 721: 80, - 722: 80, - 723: 80, - 724: 80, - 725: 80, - 726: 80, - 727: 80, - 728: 80, - 729: 80, - 730: 80, - 731: 80, - 732: 80, - 733: 80, - 734: 80, - 735: 80, - 736: 80, - 737: 80, - 738: 80, - 739: 80, - 740: 80, - 741: 80, - 742: 80, - 743: 80, - 744: 80, - 745: 80, - 746: 80, - 747: 80, - 748: 80, - 749: 80, - 750: 80, - 751: 80, - 752: 80, - 753: 80, - 754: 80, - 755: 80, - 756: 80, - 757: 80, - 758: 80, - 759: 80, - 760: 80, - 761: 80, - 762: 80, - 763: 80, - 764: 80, - 765: 80, - 766: 80, - 767: 80, - 768: 80, - 769: 80, - 770: 80, - 771: 80, - 772: 80, - 773: 80, - 774: 80, - 775: 80, - 776: 80, - 777: 80, - 778: 80, - 779: 80, - 780: 80, - 781: 80, - 782: 80, - 783: 80, - 784: 80, - 785: 80, - 786: 80, - 787: 80, - 788: 80, - 789: 80, - 790: 80, - 791: 80, - 792: 80, - 793: 80, - 794: 80, - 795: 80, - 796: 80, - 797: 80, - 798: 80, - 799: 80, - 800: 80, - 801: 80, - 802: 80, - 803: 80, - 804: 80, - 805: 80, - 806: 80, - 807: 80, - 808: 80, - 809: 80, - 810: 80, - 811: 80, - 812: 80, - 813: 80, - 814: 80, - 815: 80, - 816: 80, - 817: 80, - 818: 80, - 819: 80, - 820: 80, - 821: 80, - 822: 80, - 823: 80, - 824: 80, - 825: 80, - 826: 80, - 827: 80, - 828: 80, - 829: 80, - 830: 80, - 831: 80, - 832: 80, - 833: 80, - 834: 80, - 835: 80, - 836: 80, - 837: 80, - 838: 80, - 839: 80, - 840: 80, - 841: 80, - 842: 80, - 843: 80, - 844: 80, - 845: 80, - 846: 80, - 847: 80, - 848: 80, - 849: 80, - 850: 80, - 851: 80, - 852: 80, - 853: 80, - 854: 80, - 855: 80, - 856: 80, - 857: 80, - 858: 80, - 859: 80, - 860: 80, - 861: 80, - 862: 80, - 863: 80, - 864: 80, - 865: 80, - 866: 80, - 867: 80, - 868: 80, - 869: 80, - 870: 80, - 871: 80, - 872: 80, - 873: 80, - 874: 80, - 875: 80, - 876: 80, - 877: 80, - 878: 80, - 879: 80, - 880: 80, - 881: 80, - 882: 80, - 883: 80, - 884: 80, - 885: 80, - 886: 80, - 887: 80, - 888: 80, - 889: 80, - 890: 80, - 891: 80, - 892: 80, - 893: 80, - 894: 80, - 895: 80, - 896: 80, - 897: 80, - 898: 80, - 899: 80, - 900: 80, - 901: 80, - 902: 80, - 903: 80, - 904: 80, - 905: 80, - 906: 80, - 907: 80, - 908: 80, - 909: 80, - 910: 80, - 911: 80, - 912: 80, - 913: 80, - 914: 80, - 915: 80, - 916: 80, - 917: 80, - 918: 80, - 919: 80, - 920: 80, - 921: 80, - 922: 80, - 923: 80, - 924: 80, - 925: 80, - 926: 80, - 927: 80, - 928: 80, - 929: 80, - 930: 80, - 931: 80, - 932: 80, - 933: 80, - 934: 80, - 935: 80, - 936: 80, - 937: 80, - 938: 80, - 939: 80, - 940: 80, - 941: 80, - 942: 80, - 943: 80, - 944: 80, - 945: 80, - 946: 80, - 947: 80, - 948: 80, - 949: 80, - 950: 80, - 951: 80, - 952: 80, - 953: 80, - 954: 80, - 955: 80, - 956: 80, - 957: 80, - 958: 80, - 959: 80, - 960: 80, - 961: 80, - 962: 80, - 963: 80, - 964: 80, - 965: 80, - 966: 80, - 967: 80, - 968: 80, - 969: 80, - 970: 80, - 971: 80, - 972: 80, - 973: 80, - 974: 80, - 975: 80, - 976: 80, - 977: 80, - 978: 80, - 979: 80, - 980: 80, - 981: 80, - 982: 80, - 983: 80, - 984: 80, - 985: 80, - 986: 80, - 987: 80, - 988: 80, - 989: 80, - 990: 80, - 991: 80, - 992: 80, - 993: 80, - 994: 80, - 995: 80, - 996: 80, - 997: 80, - 998: 80, - 999: 80, - 1000: 80, - 1001: 80, - 1002: 80, - 1003: 80, - 1004: 80, - 1005: 80, - 1006: 80, - 1007: 80, - 1008: 80, - 1009: 80, - 1010: 80, - 1011: 80, - 1012: 80, - 1013: 80, - 1014: 80, - 1015: 80, - 1016: 80, - 1017: 80, - 1018: 80, - 1019: 80, - 1020: 80, - 1021: 80, - 1022: 80, - 1023: 80, - 1024: 80, - 1025: 80, - 1026: 80, - 1027: 80, - 1028: 80, - 1029: 80, - 1030: 80, - 1031: 80, - 1032: 80, - 1033: 80, - 1034: 80, - 1035: 80, - 1036: 80, - 1037: 80, - 1038: 80, - 1039: 80, - 1040: 80, - 1041: 80, - 1042: 80, - 1043: 80, - 1044: 80, - 1045: 80, - 1046: 80, - 1047: 80, - 1048: 80, - 1049: 80, - 1050: 80, - 1051: 80, - 1052: 80, - 1053: 80, - 1054: 80, - 1055: 80, - 1056: 80, - 1057: 80, - 1058: 80, - 1059: 80, - 1060: 80, - 1061: 80, - 1062: 80, - 1063: 80, - 1064: 80, - 1065: 80, - 1066: 80, - 1067: 80, - 1068: 80, - 1069: 80, - 1070: 80, - 1071: 80, - 1072: 80, - 1073: 80, - 1074: 80, - 1075: 80, - 1076: 80, - 1077: 80, - 1078: 80, - 1079: 80, - 1080: 80, - 1081: 81, - 1082: 81, - 1083: 81, - 1084: 81, - 1085: 81, - 1086: 81, - 1087: 81, - 1088: 81, - 1089: 81, - 1090: 81, - 1091: 81, - 1092: 81, - 1093: 81, - 1094: 81, - 1095: 81, - 1096: 81, - 1097: 82, - 1098: 82, - 1099: 82, - 1100: 82, - 1101: 82, - 1102: 82, - 1103: 82, - 1104: 82, - 1105: 82, - 1106: 82, - 1107: 82, - 1108: 82, - 1109: 82, - 1110: 82, - 1111: 82, - 1112: 82, - 1113: 83, - 1114: 83, - 1115: 83, - 1116: 83, - 1117: 83, - 1118: 83, - 1119: 83, - 1120: 83, - 1121: 83, - 1122: 83, - 1123: 83, - 1124: 83, - 1125: 83, - 1126: 83, - 1127: 83, - 1128: 83, - 1129: 84, - 1130: 84, - 1131: 84, - 1132: 84, - 1133: 84, - 1134: 84, - 1135: 84, - 1136: 84, - 1137: 84, - 1138: 84, - 1139: 84, - 1140: 84, - 1141: 84, - 1142: 84, - 1143: 84, - 1144: 84, - 1145: 85, - 1146: 85, - 1147: 85, - 1148: 85, - 1149: 85, - 1150: 85, - 1151: 85, - 1152: 85, - 1153: 85, - 1154: 85, - 1155: 85, - 1156: 85, - 1157: 85, - 1158: 85, - 1159: 85, - 1160: 85, - 1161: 86, - 1162: 86, - 1163: 86, - 1164: 86, - 1165: 86, - 1166: 86, - 1167: 86, - 1168: 86, - 1169: 86, - 1170: 86, - 1171: 86, - 1172: 86, - 1173: 86, - 1174: 86, - 1175: 86, - 1176: 86, - 1177: 87, - 1178: 87, - 1179: 87, - 1180: 87, - 1181: 87, - 1182: 87, - 1183: 87, - 1184: 87, - 1185: 87, - 1186: 87, - 1187: 87, - 1188: 87, - 1189: 87, - 1190: 87, - 1191: 87, - 1192: 87, - 1193: 88, - 1194: 88, - 1195: 88, - 1196: 88, - 1197: 88, - 1198: 88, - 1199: 88, - 1200: 88, - 1201: 88, - 1202: 88, - 1203: 88, - 1204: 88, - 1205: 88, - 1206: 88, - 1207: 88, - 1208: 88, - 1209: 89, - 1210: 89, - 1211: 89, - 1212: 89, - 1213: 89, - 1214: 89, - 1215: 89, - 1216: 89, - 1217: 89, - 1218: 89, - 1219: 89, - 1220: 89, - 1221: 89, - 1222: 89, - 1223: 89, - 1224: 89, - 1225: 90, - 1226: 90, - 1227: 90, - 1228: 90, - 1229: 90, - 1230: 90, - 1231: 90, - 1232: 90, - 1233: 90, - 1234: 90, - 1235: 90, - 1236: 90, - 1237: 90, - 1238: 90, - 1239: 90, - 1240: 90, - 1241: 91, - 1242: 91, - 1243: 91, - 1244: 91, - 1245: 91, - 1246: 91, - 1247: 91, - 1248: 91, - 1249: 91, - 1250: 91, - 1251: 91, - 1252: 91, - 1253: 91, - 1254: 91, - 1255: 91, - 1256: 91, - 1257: 92, - 1258: 92, - 1259: 92, - 1260: 92, - 1261: 92, - 1262: 92, - 1263: 92, - 1264: 92, - 1265: 92, - 1266: 92, - 1267: 92, - 1268: 92, - 1269: 92, - 1270: 92, - 1271: 92, - 1272: 92, - 1273: 93, - 1274: 93, - 1275: 93, - 1276: 93, - 1277: 93, - 1278: 93, - 1279: 93, - 1280: 93, - 1281: 93, - 1282: 93, - 1283: 93, - 1284: 93, - 1285: 93, - 1286: 93, - 1287: 93, - 1288: 93, - 1289: 94, - 1290: 94, - 1291: 94, - 1292: 94, - 1293: 94, - 1294: 94, - 1295: 94, - 1296: 94, - 1297: 94, - 1298: 94, - 1299: 94, - 1300: 94, - 1301: 94, - 1302: 94, - 1303: 94, - 1304: 94, - 1305: 95, - 1306: 95, - 1307: 95, - 1308: 95, - 1309: 95, - 1310: 95, - 1311: 95, - 1312: 95, - 1313: 95, - 1314: 95, - 1315: 95, - 1316: 95, - 1317: 95, - 1318: 95, - 1319: 95, - 1320: 95, - 1321: 96, - 1322: 96, - 1323: 96, - 1324: 96, - 1325: 96, - 1326: 96, - 1327: 96, - 1328: 96, - 1329: 96, - 1330: 96, - 1331: 96, - 1332: 96, - 1333: 96, - 1334: 96, - 1335: 96, - 1336: 96, - 1337: 97, - 1338: 97, - 1339: 97, - 1340: 97, - 1341: 97, - 1342: 97, - 1343: 97, - 1344: 97, - 1345: 97, - 1346: 97, - 1347: 97, - 1348: 97, - 1349: 97, - 1350: 97, - 1351: 97, - 1352: 97, - 1353: 97, - 1354: 97, - 1355: 97, - 1356: 97, - 1357: 97, - 1358: 97, - 1359: 97, - 1360: 97, - 1361: 98, - 1362: 98, - 1363: 98, - 1364: 98, - 1365: 98, - 1366: 98, - 1367: 98, - 1368: 98, - 1369: 98, - 1370: 98, - 1371: 98, - 1372: 98, - 1373: 98, - 1374: 98, - 1375: 98, - 1376: 98, - 1377: 98, - 1378: 98, - 1379: 98, - 1380: 98, - 1381: 98, - 1382: 98, - 1383: 98, - 1384: 98, - 1385: 99, - 1386: 99, - 1387: 99, - 1388: 99, - 1389: 99, - 1390: 99, - 1391: 99, - 1392: 99, - 1393: 99, - 1394: 99, - 1395: 99, - 1396: 99, - 1397: 100, - 1398: 101, - 1399: 102, - 1400: 103, - 1401: 104, - 1402: 105, - 1403: 105, - 1404: 106, - 1405: 106, - 1406: 106, - 1407: 106, - 1408: 106, - 1409: 106, - 1410: 106, - 1411: 106, - 1412: 106, - 1413: 106, - 1414: 106, - 1415: 106, - 1416: 107, - 1417: 107, - 1418: 107, - 1419: 107, - 1420: 107, - 1421: 107, - 1422: 107, - 1423: 107, - 1424: 107, - 1425: 107, - 1426: 107, - 1427: 107, - 1428: 107, - 1429: 107, - 1430: 107, - 1431: 107, - 1432: 107, - 1433: 107, - 1434: 107, - 1435: 107, - 1436: 107, - 1437: 107, - 1438: 107, - 1439: 107, - 1440: 108, - 1441: 109, - 1442: 110, - 1443: 111, - 1444: 112, - 1445: 113, - 1446: 114, - 1447: 115, - 1448: 116, - 1449: 117, - 1450: 118, - 1451: 119, - 1452: 120, - 1453: 121, - 1454: 122, - 1455: 123, - 1456: 124, - 1457: 124, - 1458: 124, - 1459: 124, - 1460: 124, - 1461: 124, - 1462: 124, - 1463: 124, - 1464: 124, - 1465: 124, - 1466: 124, - 1467: 124, - 1468: 125, - 1469: 126, - 1470: 127, - 1471: 128, - 1472: 129, - 1473: 130, - 1474: 131, - 1475: 132, - 1476: 133, - 1477: 134, - 1478: 135, - 1479: 136, - 1480: 137, - 1481: 138, - 1482: 139, - 1483: 140, - 1484: 141, - 1485: 142, - 1486: 143, - 1487: 143, - 1488: 144, - 1489: 145, - 1490: 146, - 1491: 147, - 1492: 148, - 1493: 148, - 1494: 148, - 1495: 148, - 1496: 149, - 1497: 149, - 1498: 149, - 1499: 149, - 1500: 149, - 1501: 149, - 1502: 149, - 1503: 149, - 1504: 149, - 1505: 149, - 1506: 149, - 1507: 149, - 1508: 149, - 1509: 149, - 1510: 149, - 1511: 149, - 1512: 149, - 1513: 149, - 1514: 149, - 1515: 149, - 1516: 149, - 1517: 149, - 1518: 149, - 1519: 149, - 1520: 149, - 1521: 149, - 1522: 149, - 1523: 149, - 1524: 149, - 1525: 149, - 1526: 149, - 1527: 149, - 1528: 149, - 1529: 149, - 1530: 149, - 1531: 149, - 1532: 149, - 1533: 149, - 1534: 149, - 1535: 149, - 1536: 149, - 1537: 149, - 1538: 149, - 1539: 149, - 1540: 149, - 1541: 149, - 1542: 149, - 1543: 149, - 1544: 149, - 1545: 149, - 1546: 149, - 1547: 149, - 1548: 149, - 1549: 149, - 1550: 149, - 1551: 149, - 1552: 149, - 1553: 149, - 1554: 149, - 1555: 149, - 1556: 149, - 1557: 149, - 1558: 149, - 1559: 149, - 1560: 149, - 1561: 149, - 1562: 149, - 1563: 149, - 1564: 149, - 1565: 149, - 1566: 149, - 1567: 149, - 1568: 149, - 1569: 149, - 1570: 149, - 1571: 149, - 1572: 149, - 1573: 149, - 1574: 149, - 1575: 149, - 1576: 149, - 1577: 149, - 1578: 149, - 1579: 149, - 1580: 149, - 1581: 149, - 1582: 149, - 1583: 149, - 1584: 149, - 1585: 149, - 1586: 149, - 1587: 149, - 1588: 149, - 1589: 149, - 1590: 149, - 1591: 149, - 1592: 149, - 1593: 149, - 1594: 149, - 1595: 149, - 1596: 149, - 1597: 149, - 1598: 149, - 1599: 149, - 1600: 149, - 1601: 149, - 1602: 149, - 1603: 149, - 1604: 149, - 1605: 149, - 1606: 149, - 1607: 149, - 1608: 149, - 1609: 149, - 1610: 149, - 1611: 149, - 1612: 149, - 1613: 149, - 1614: 149, - 1615: 149, - 1616: 149, - 1617: 149, - 1618: 149, - 1619: 149, - 1620: 149, - 1621: 149, - 1622: 149, - 1623: 149, - 1624: 149, - 1625: 149, - 1626: 149, - 1627: 149, - 1628: 149, - 1629: 149, - 1630: 149, - 1631: 149, - 1632: 149, - 1633: 149, - 1634: 149, - 1635: 149, - 1636: 149, - 1637: 149, - 1638: 149, - 1639: 149, - 1640: 149, - 1641: 149, - 1642: 149, - 1643: 149, - 1644: 149, - 1645: 149, - 1646: 149, - 1647: 149, - 1648: 149, - 1649: 149, - 1650: 149, - 1651: 149, - 1652: 149, - 1653: 149, - 1654: 149, - 1655: 149, - 1656: 149, - 1657: 149, - 1658: 149, - 1659: 149, - 1660: 149, - 1661: 149, - 1662: 149, - 1663: 149, - 1664: 149, - 1665: 149, - 1666: 149, - 1667: 149, - 1668: 149, - 1669: 149, - 1670: 149, - 1671: 149, - 1672: 149, - 1673: 149, - 1674: 149, - 1675: 149, - 1676: 149, - 1677: 149, - 1678: 149, - 1679: 149, - 1680: 149, - 1681: 149, - 1682: 149, - 1683: 149, - 1684: 149, - 1685: 149, - 1686: 149, - 1687: 149, - 1688: 149, - 1689: 149, - 1690: 149, - 1691: 149, - 1692: 149, - 1693: 149, - 1694: 149, - 1695: 149, - 1696: 149, - 1697: 149, - 1698: 149, - 1699: 149, - 1700: 149, - 1701: 149, - 1702: 149, - 1703: 149, - 1704: 149, - 1705: 149, - 1706: 149, - 1707: 149, - 1708: 149, - 1709: 149, - 1710: 149, - 1711: 149, - 1712: 149, - 1713: 149, - 1714: 149, - 1715: 149, - 1716: 149, - 1717: 149, - 1718: 149, - 1719: 149, - 1720: 149, - 1721: 149, - 1722: 149, - 1723: 149, - 1724: 149, - 1725: 149, - 1726: 149, - 1727: 149, - 1728: 149, - 1729: 149, - 1730: 149, - 1731: 149, - 1732: 149, - 1733: 149, - 1734: 149, - 1735: 149, - 1736: 149, - 1737: 149, - 1738: 149, - 1739: 149, - 1740: 149, - 1741: 149, - 1742: 149, - 1743: 149, - 1744: 149, - 1745: 149, - 1746: 149, - 1747: 149, - 1748: 149, - 1749: 149, - 1750: 149, - 1751: 149, - 1752: 149, - 1753: 149, - 1754: 149, - 1755: 149, - 1756: 149, - 1757: 149, - 1758: 149, - 1759: 149, - 1760: 149, - 1761: 149, - 1762: 149, - 1763: 149, - 1764: 149, - 1765: 149, - 1766: 149, - 1767: 149, - 1768: 149, - 1769: 149, - 1770: 149, - 1771: 149, - 1772: 149, - 1773: 149, - 1774: 149, - 1775: 149, - 1776: 149, - 1777: 149, - 1778: 149, - 1779: 149, - 1780: 149, - 1781: 149, - 1782: 149, - 1783: 149, - 1784: 149, - 1785: 149, - 1786: 149, - 1787: 149, - 1788: 149, - 1789: 149, - 1790: 149, - 1791: 149, - 1792: 149, - 1793: 149, - 1794: 149, - 1795: 149, - 1796: 149, - 1797: 149, - 1798: 149, - 1799: 149, - 1800: 149, - 1801: 149, - 1802: 149, - 1803: 149, - 1804: 149, - 1805: 149, - 1806: 149, - 1807: 149, - 1808: 149, - 1809: 149, - 1810: 149, - 1811: 149, - 1812: 149, - 1813: 149, - 1814: 149, - 1815: 149, - 1816: 149, - 1817: 149, - 1818: 149, - 1819: 149, - 1820: 149, - 1821: 149, - 1822: 149, - 1823: 149, - 1824: 149, - 1825: 149, - 1826: 149, - 1827: 149, - 1828: 149, - 1829: 149, - 1830: 149, - 1831: 149, - 1832: 149, - 1833: 149, - 1834: 149, - 1835: 149, - 1836: 149, - 1837: 149, - 1838: 149, - 1839: 149, - 1840: 149, - 1841: 149, - 1842: 149, - 1843: 149, - 1844: 149, - 1845: 149, - 1846: 149, - 1847: 149, - 1848: 149, - 1849: 149, - 1850: 149, - 1851: 149, - 1852: 149, - 1853: 149, - 1854: 149, - 1855: 149, - 1856: 149, - 1857: 149, - 1858: 149, - 1859: 149, - 1860: 149, - 1861: 149, - 1862: 149, - 1863: 149, - 1864: 149, - 1865: 149, - 1866: 149, - 1867: 149, - 1868: 149, - 1869: 149, - 1870: 149, - 1871: 149, - 1872: 149, - 1873: 149, - 1874: 149, - 1875: 149, - 1876: 149, - 1877: 149, - 1878: 149, - 1879: 149, - 1880: 149, - 1881: 149, - 1882: 149, - 1883: 149, - 1884: 149, - 1885: 149, - 1886: 149, - 1887: 149, - 1888: 149, - 1889: 149, - 1890: 149, - 1891: 149, - 1892: 149, - 1893: 149, - 1894: 149, - 1895: 149, - 1896: 149, - 1897: 149, - 1898: 149, - 1899: 149, - 1900: 149, - 1901: 149, - 1902: 149, - 1903: 149, - 1904: 149, - 1905: 149, - 1906: 149, - 1907: 149, - 1908: 149, - 1909: 149, - 1910: 149, - 1911: 149, - 1912: 149, - 1913: 149, - 1914: 149, - 1915: 149, - 1916: 149, - 1917: 149, - 1918: 149, - 1919: 149, - 1920: 149, - 1921: 149, - 1922: 149, - 1923: 149, - 1924: 149, - 1925: 149, - 1926: 149, - 1927: 149, - 1928: 149, - 1929: 149, - 1930: 149, - 1931: 149, - 1932: 149, - 1933: 149, - 1934: 149, - 1935: 149, - 1936: 149, - 1937: 149, - 1938: 149, - 1939: 149, - 1940: 149, - 1941: 149, - 1942: 149, - 1943: 149, - 1944: 149, - 1945: 149, - 1946: 149, - 1947: 149, - 1948: 149, - 1949: 149, - 1950: 149, - 1951: 149, - 1952: 149, - 1953: 149, - 1954: 149, - 1955: 149, - 1956: 149, - 1957: 149, - 1958: 149, - 1959: 149, - 1960: 149, - 1961: 149, - 1962: 149, - 1963: 149, - 1964: 149, - 1965: 149, - 1966: 149, - 1967: 149, - 1968: 149, - 1969: 149, - 1970: 149, - 1971: 149, - 1972: 149, - 1973: 149, - 1974: 149, - 1975: 149, - 1976: 149, - 1977: 149, - 1978: 149, - 1979: 149, - 1980: 149, - 1981: 149, - 1982: 149, - 1983: 149, - 1984: 149, - 1985: 149, - 1986: 149, - 1987: 149, - 1988: 149, - 1989: 149, - 1990: 149, - 1991: 149, - 1992: 149, - 1993: 149, - 1994: 149, - 1995: 149, - 1996: 149, - 1997: 149, - 1998: 149, - 1999: 149, - 2000: 149, - 2001: 149, - 2002: 149, - 2003: 149, - 2004: 149, - 2005: 149, - 2006: 149, - 2007: 149, - 2008: 150, - 2009: 151, - 2010: 152, - 2011: 152, - 2012: 152, - 2013: 152, - 2014: 152, - 2015: 152, - 2016: 152, - 2017: 152, - 2018: 152, - 2019: 152, - 2020: 152, - 2021: 152, - 2022: 152, - 2023: 152, - 2024: 152, - 2025: 152, - 2026: 152, - 2027: 152, - 2028: 152, - 2029: 152, - 2030: 152, - 2031: 152, - 2032: 152, - 2033: 152, - 2034: 152, - 2035: 152, - 2036: 152, - 2037: 152, - 2038: 152, - 2039: 152, - 2040: 152, - 2041: 152, - 2042: 152, - 2043: 152, - 2044: 152, - 2045: 152, - 2046: 152, - 2047: 152, - 2048: 152, - 2049: 152, - 2050: 152, - 2051: 152, - 2052: 152, - 2053: 152, - 2054: 152, - 2055: 152, - 2056: 152, - 2057: 152, - 2058: 152, - 2059: 152, - 2060: 152, - 2061: 152, - 2062: 152, - 2063: 152, - 2064: 152, - 2065: 152, - 2066: 152, - 2067: 152, - 2068: 152, - 2069: 152, - 2070: 152, - 2071: 152, - 2072: 152, - 2073: 152, - 2074: 152, - 2075: 152, - 2076: 152, - 2077: 152, - 2078: 152, - 2079: 152, - 2080: 152, - 2081: 152, - 2082: 152, - 2083: 152, - 2084: 152, - 2085: 152, - 2086: 152, - 2087: 152, - 2088: 152, - 2089: 152, - 2090: 153, - 2091: 153, - 2092: 153, - 2093: 153, - 2094: 153, - 2095: 153, - 2096: 153, - 2097: 153, - 2098: 153, - 2099: 153, - 2100: 153, - 2101: 153, - 2102: 153, - 2103: 153, - 2104: 153, - 2105: 153, - 2106: 153, - 2107: 153, - 2108: 153, - 2109: 153, - 2110: 153, - 2111: 153, - 2112: 153, - 2113: 153, - 2114: 154, - 2115: 154, - 2116: 154, - 2117: 154, - 2118: 154, - 2119: 154, - 2120: 154, - 2121: 154, - 2122: 154, - 2123: 154, - 2124: 154, - 2125: 154, - 2126: 154, - 2127: 154, - 2128: 154, - 2129: 154, - 2130: 154, - 2131: 154, - 2132: 154, - 2133: 154, - 2134: 154, - 2135: 154, - 2136: 154, - 2137: 154, - 2138: 154, - 2139: 154, - 2140: 154, - 2141: 154, - 2142: 154, - 2143: 154, - 2144: 154, - 2145: 154, - 2146: 154, - 2147: 154, - 2148: 154, - 2149: 154, - 2150: 154, - 2151: 154, - 2152: 154, - 2153: 154, - 2154: 154, - 2155: 154, - 2156: 154, - 2157: 154, - 2158: 154, - 2159: 154, - 2160: 154, - 2161: 154, - 2162: 154, - 2163: 154, - 2164: 154, - 2165: 154, - 2166: 154, - 2167: 154, - 2168: 154, - 2169: 154, - 2170: 154, - 2171: 154, - 2172: 154, - 2173: 154, - 2174: 154, - 2175: 154, - 2176: 154, - 2177: 154, - 2178: 154, - 2179: 154, - 2180: 154, - 2181: 154, - 2182: 154, - 2183: 154, - 2184: 154, - 2185: 154, - 2186: 154, - 2187: 154, - 2188: 154, - 2189: 154, - 2190: 154, - 2191: 154, - 2192: 154, - 2193: 154, - 2194: 154, - 2195: 154, - 2196: 154, - 2197: 154, - 2198: 154, - 2199: 154, - 2200: 154, - 2201: 154, - 2202: 154, - 2203: 154, - 2204: 154, - 2205: 154, - 2206: 154, - 2207: 154, - 2208: 154, - 2209: 154, - 2210: 154, - 2211: 154, - 2212: 154, - 2213: 154, - 2214: 154, - 2215: 154, - 2216: 154, - 2217: 154, - 2218: 154, - 2219: 154, - 2220: 154, - 2221: 154, - 2222: 154, - 2223: 154, - 2224: 154, - 2225: 154, - 2226: 154, - 2227: 154, - 2228: 154, - 2229: 154, - 2230: 154, - 2231: 154, - 2232: 154, - 2233: 154, - 2234: 154, - 2235: 154, - 2236: 154, - 2237: 154, - 2238: 154, - 2239: 154, - 2240: 154, - 2241: 154, - 2242: 154, - 2243: 154, - 2244: 154, - 2245: 154, - 2246: 154, - 2247: 154, - 2248: 154, - 2249: 154, - 2250: 154, - 2251: 154, - 2252: 154, - 2253: 154, - 2254: 154, - 2255: 154, - 2256: 154, - 2257: 154, - 2258: 154, - 2259: 154, - 2260: 154, - 2261: 154, - 2262: 154, - 2263: 154, - 2264: 154, - 2265: 154, - 2266: 154, - 2267: 154, - 2268: 154, - 2269: 154, - 2270: 154, - 2271: 154, - 2272: 154, - 2273: 154, - 2274: 154, - 2275: 154, - 2276: 154, - 2277: 154, - 2278: 154, - 2279: 154, - 2280: 154, - 2281: 154, - 2282: 154, - 2283: 154, - 2284: 154, - 2285: 154, - 2286: 154, - 2287: 154, - 2288: 154, - 2289: 154, - 2290: 154, - 2291: 154, - 2292: 154, - 2293: 154, - 2294: 154, - 2295: 154, - 2296: 154, - 2297: 154, - 2298: 154, - 2299: 154, - 2300: 154, - 2301: 154, - 2302: 154, - 2303: 154, - 2304: 154, - 2305: 154, - 2306: 154, - 2307: 154, - 2308: 154, - 2309: 154, - 2310: 154, - 2311: 154, - 2312: 154, - 2313: 154, - 2314: 154, - 2315: 154, - 2316: 154, - 2317: 154, - 2318: 154, - 2319: 154, - 2320: 154, - 2321: 154, - 2322: 154, - 2323: 154, - 2324: 154, - 2325: 154, - 2326: 154, - 2327: 154, - 2328: 154, - 2329: 154, - 2330: 154, - 2331: 154, - 2332: 154, - 2333: 154, - 2334: 154, - 2335: 154, - 2336: 154, - 2337: 154, - 2338: 154, - 2339: 154, - 2340: 154, - 2341: 154, - 2342: 154, - 2343: 154, - 2344: 154, - 2345: 154, - 2346: 154, - 2347: 154, - 2348: 154, - 2349: 154, - 2350: 154, - 2351: 154, - 2352: 154, - 2353: 154, - 2354: 154, - 2355: 154, - 2356: 154, - 2357: 154, - 2358: 154, - 2359: 154, - 2360: 154, - 2361: 154, - 2362: 154, - 2363: 154, - 2364: 154, - 2365: 154, - 2366: 154, - 2367: 154, - 2368: 154, - 2369: 154, - 2370: 154, - 2371: 154, - 2372: 154, - 2373: 154, - 2374: 154, - 2375: 154, - 2376: 154, - 2377: 154, - 2378: 154, - 2379: 154, - 2380: 154, - 2381: 154, - 2382: 154, - 2383: 154, - 2384: 154, - 2385: 154, - 2386: 154, - 2387: 154, - 2388: 154, - 2389: 154, - 2390: 154, - 2391: 154, - 2392: 154, - 2393: 154, - 2394: 154, - 2395: 154, - 2396: 154, - 2397: 154, - 2398: 154, - 2399: 154, - 2400: 154, - 2401: 154, - 2402: 154, - 2403: 154, - 2404: 154, - 2405: 154, - 2406: 154, - 2407: 154, - 2408: 154, - 2409: 154, - 2410: 154, - 2411: 154, - 2412: 154, - 2413: 154, - 2414: 154, - 2415: 154, - 2416: 154, - 2417: 154, - 2418: 154, - 2419: 154, - 2420: 154, - 2421: 154, - 2422: 154, - 2423: 154, - 2424: 154, - 2425: 154, - 2426: 154, - 2427: 154, - 2428: 154, - 2429: 154, - 2430: 154, - 2431: 154, - 2432: 154, - 2433: 154, - 2434: 154, - 2435: 154, - 2436: 154, - 2437: 154, - 2438: 154, - 2439: 154, - 2440: 154, - 2441: 154, - 2442: 154, - 2443: 154, - 2444: 154, - 2445: 154, - 2446: 154, - 2447: 154, - 2448: 154, - 2449: 154, - 2450: 154, - 2451: 154, - 2452: 154, - 2453: 154, - 2454: 154, - 2455: 154, - 2456: 154, - 2457: 154, - 2458: 154, - 2459: 154, - 2460: 154, - 2461: 154, - 2462: 154, - 2463: 154, - 2464: 154, - 2465: 154, - 2466: 154, - 2467: 154, - 2468: 154, - 2469: 154, - 2470: 154, - 2471: 154, - 2472: 154, - 2473: 154, - 2474: 154, - 2475: 154, - 2476: 154, - 2477: 154, - 2478: 154, - 2479: 154, - 2480: 154, - 2481: 154, - 2482: 154, - 2483: 154, - 2484: 154, - 2485: 154, - 2486: 154, - 2487: 154, - 2488: 154, - 2489: 154, - 2490: 154, - 2491: 154, - 2492: 154, - 2493: 154, - 2494: 154, - 2495: 154, - 2496: 154, - 2497: 154, - 2498: 154, - 2499: 154, - 2500: 154, - 2501: 154, - 2502: 154, - 2503: 154, - 2504: 154, - 2505: 154, - 2506: 154, - 2507: 154, - 2508: 154, - 2509: 154, - 2510: 154, - 2511: 154, - 2512: 154, - 2513: 154, - 2514: 154, - 2515: 154, - 2516: 154, - 2517: 154, - 2518: 154, - 2519: 154, - 2520: 154, - 2521: 154, - 2522: 154, - 2523: 154, - 2524: 154, - 2525: 154, - 2526: 154, - 2527: 154, - 2528: 154, - 2529: 154, - 2530: 154, - 2531: 154, - 2532: 154, - 2533: 154, - 2534: 154, - 2535: 154, - 2536: 154, - 2537: 154, - 2538: 154, - 2539: 154, - 2540: 154, - 2541: 154, - 2542: 154, - 2543: 154, - 2544: 154, - 2545: 154, - 2546: 154, - 2547: 154, - 2548: 154, - 2549: 154, - 2550: 154, - 2551: 154, - 2552: 154, - 2553: 154, - 2554: 154, - 2555: 154, - 2556: 154, - 2557: 154, - 2558: 154, - 2559: 154, - 2560: 154, - 2561: 154, - 2562: 154, - 2563: 154, - 2564: 154, - 2565: 154, - 2566: 154, - 2567: 154, - 2568: 154, - 2569: 154, - 2570: 154, - 2571: 154, - 2572: 154, - 2573: 154, - 2574: 154, - 2575: 154, - 2576: 154, - 2577: 154, - 2578: 154, - 2579: 154, - 2580: 154, - 2581: 154, - 2582: 154, - 2583: 154, - 2584: 154, - 2585: 154, - 2586: 154, - 2587: 154, - 2588: 154, - 2589: 154, - 2590: 154, - 2591: 154, - 2592: 154, - 2593: 154, - 2594: 154, - 2595: 154, - 2596: 154, - 2597: 154, - 2598: 154, - 2599: 154, - 2600: 154, - 2601: 154, - 2602: 154, - 2603: 154, - 2604: 154, - 2605: 154, - 2606: 154, - 2607: 154, - 2608: 154, - 2609: 154, - 2610: 154, - 2611: 154, - 2612: 154, - 2613: 154, - 2614: 154, - 2615: 154, - 2616: 154, - 2617: 154, - 2618: 154, - 2619: 154, - 2620: 154, - 2621: 154, - 2622: 154, - 2623: 154, - 2624: 154, - 2625: 154, - 2626: 154, - 2627: 154, - 2628: 154, - 2629: 154, - 2630: 154, - 2631: 154, - 2632: 154, - 2633: 154, - 2634: 154, - 2635: 154, - 2636: 154, - 2637: 154, - 2638: 154, - 2639: 154, - 2640: 154, - 2641: 154, - 2642: 154, - 2643: 154, - 2644: 154, - 2645: 154, - 2646: 154, - 2647: 154, - 2648: 154, - 2649: 154, - 2650: 154, - 2651: 154, - 2652: 154, - 2653: 154, - 2654: 154, - 2655: 154, - 2656: 154, - 2657: 154, - 2658: 154, - 2659: 154, - 2660: 154, - 2661: 154, - 2662: 154, - 2663: 154, - 2664: 154, - 2665: 154, - 2666: 154, - 2667: 154, - 2668: 154, - 2669: 154, - 2670: 154, - 2671: 154, - 2672: 154, - 2673: 154, - 2674: 154, - 2675: 154, - 2676: 154, - 2677: 154, - 2678: 154, - 2679: 154, - 2680: 154, - 2681: 154, - 2682: 154, - 2683: 154, - 2684: 154, - 2685: 154, - 2686: 154, - 2687: 154, - 2688: 154, - 2689: 154, - 2690: 154, - 2691: 154, - 2692: 154, - 2693: 154, - 2694: 154, - 2695: 154, - 2696: 154, - 2697: 154, - 2698: 154, - 2699: 154, - 2700: 154, - 2701: 154, - 2702: 154, - 2703: 154, - 2704: 154, - 2705: 154, - 2706: 154, - 2707: 154, - 2708: 154, - 2709: 154, - 2710: 154, - 2711: 154, - 2712: 154, - 2713: 154, - 2714: 154, - 2715: 154, - 2716: 154, - 2717: 154, - 2718: 154, - 2719: 154, - 2720: 154, - 2721: 154, - 2722: 154, - 2723: 154, - 2724: 154, - 2725: 154, - 2726: 154, - 2727: 154, - 2728: 154, - 2729: 154, - 2730: 154, - 2731: 154, - 2732: 154, - 2733: 154, - 2734: 154, - 2735: 154, - 2736: 154, - 2737: 154, - 2738: 154, - 2739: 154, - 2740: 154, - 2741: 154, - 2742: 154, - 2743: 154, - 2744: 154, - 2745: 154, - 2746: 154, - 2747: 154, - 2748: 154, - 2749: 154, - 2750: 154, - 2751: 154, - 2752: 154, - 2753: 154, - 2754: 154, - 2755: 154, - 2756: 154, - 2757: 154, - 2758: 154, - 2759: 154, - 2760: 154, - 2761: 154, - 2762: 154, - 2763: 154, - 2764: 154, - 2765: 154, - 2766: 154, - 2767: 154, - 2768: 154, - 2769: 154, - 2770: 154, - 2771: 154, - 2772: 154, - 2773: 154, - 2774: 154, - 2775: 154, - 2776: 154, - 2777: 154, - 2778: 154, - 2779: 154, - 2780: 154, - 2781: 154, - 2782: 154, - 2783: 154, - 2784: 154, - 2785: 154, - 2786: 154, - 2787: 154, - 2788: 154, - 2789: 154, - 2790: 154, - 2791: 154, - 2792: 154, - 2793: 154, - 2794: 154, - 2795: 154, - 2796: 154, - 2797: 154, - 2798: 154, - 2799: 154, - 2800: 154, - 2801: 154, - 2802: 154, - 2803: 154, - 2804: 154, - 2805: 154, - 2806: 154, - 2807: 154, - 2808: 154, - 2809: 154, - 2810: 154, - 2811: 154, - 2812: 154, - 2813: 154, - 2814: 154, - 2815: 154, - 2816: 154, - 2817: 154, - 2818: 154, - 2819: 154, - 2820: 154, - 2821: 154, - 2822: 154, - 2823: 154, - 2824: 154, - 2825: 154, - 2826: 154, - 2827: 154, - 2828: 154, - 2829: 154, - 2830: 154, - 2831: 154, - 2832: 154, - 2833: 154, - 2834: 154, - 2835: 154, - 2836: 154, - 2837: 154, - 2838: 154, - 2839: 154, - 2840: 154, - 2841: 154, - 2842: 154, - 2843: 154, - 2844: 154, - 2845: 154, - 2846: 154, - 2847: 154, - 2848: 154, - 2849: 154, - 2850: 154, - 2851: 154, - 2852: 154, - 2853: 154, - 2854: 154, - 2855: 154, - 2856: 154, - 2857: 154, - 2858: 154, - 2859: 154, - 2860: 154, - 2861: 154, - 2862: 154, - 2863: 154, - 2864: 154, - 2865: 154, - 2866: 154, - 2867: 154, - 2868: 154, - 2869: 154, - 2870: 154, - 2871: 154, - 2872: 154, - 2873: 154, - 2874: 154, - 2875: 154, - 2876: 154, - 2877: 154, - 2878: 154, - 2879: 154, - 2880: 154, - 2881: 154, - 2882: 154, - 2883: 154, - 2884: 154, - 2885: 154, - 2886: 154, - 2887: 154, - 2888: 154, - 2889: 154, - 2890: 154, - 2891: 154, - 2892: 154, - 2893: 154, - 2894: 154, - 2895: 154, - 2896: 154, - 2897: 154, - 2898: 154, - 2899: 154, - 2900: 154, - 2901: 154, - 2902: 154, - 2903: 154, - 2904: 154, - 2905: 154, - 2906: 154, - 2907: 154, - 2908: 154, - 2909: 154, - 2910: 154, - 2911: 154, - 2912: 154, - 2913: 154, - 2914: 154, - 2915: 154, - 2916: 154, - 2917: 154, - 2918: 154, - 2919: 154, - 2920: 154, - 2921: 154, - 2922: 154, - 2923: 154, - 2924: 154, - 2925: 154, - 2926: 154, - 2927: 154, - 2928: 154, - 2929: 154, - 2930: 154, - 2931: 154, - 2932: 154, - 2933: 154, - 2934: 154, - 2935: 154, - 2936: 154, - 2937: 154, - 2938: 154, - 2939: 154, - 2940: 154, - 2941: 154, - 2942: 154, - 2943: 154, - 2944: 154, - 2945: 154, - 2946: 154, - 2947: 154, - 2948: 154, - 2949: 154, - 2950: 154, - 2951: 154, - 2952: 154, - 2953: 154, - 2954: 154, - 2955: 154, - 2956: 154, - 2957: 154, - 2958: 154, - 2959: 154, - 2960: 154, - 2961: 154, - 2962: 154, - 2963: 154, - 2964: 154, - 2965: 154, - 2966: 154, - 2967: 154, - 2968: 154, - 2969: 154, - 2970: 154, - 2971: 154, - 2972: 154, - 2973: 154, - 2974: 154, - 2975: 154, - 2976: 154, - 2977: 154, - 2978: 154, - 2979: 154, - 2980: 154, - 2981: 154, - 2982: 154, - 2983: 154, - 2984: 154, - 2985: 154, - 2986: 154, - 2987: 154, - 2988: 154, - 2989: 154, - 2990: 154, - 2991: 154, - 2992: 154, - 2993: 154, - 2994: 154, - 2995: 154, - 2996: 154, - 2997: 154, - 2998: 154, - 2999: 154, - 3000: 154, - 3001: 154, - 3002: 154, - 3003: 154, - 3004: 154, - 3005: 154, - 3006: 154, - 3007: 154, - 3008: 154, - 3009: 154, - 3010: 154, - 3011: 154, - 3012: 154, - 3013: 154, - 3014: 154, - 3015: 154, - 3016: 154, - 3017: 154, - 3018: 154, - 3019: 154, - 3020: 154, - 3021: 154, - 3022: 154, - 3023: 154, - 3024: 154, - 3025: 154, - 3026: 154, - 3027: 154, - 3028: 154, - 3029: 154, - 3030: 154, - 3031: 154, - 3032: 154, - 3033: 154, - 3034: 154, - 3035: 154, - 3036: 154, - 3037: 154, - 3038: 154, - 3039: 154, - 3040: 154, - 3041: 154, - 3042: 154, - 3043: 154, - 3044: 154, - 3045: 154, - 3046: 154, - 3047: 154, - 3048: 154, - 3049: 154, - 3050: 154, - 3051: 154, - 3052: 154, - 3053: 154, - 3054: 154, - 3055: 154, - 3056: 154, - 3057: 154, - 3058: 154, - 3059: 154, - 3060: 154, - 3061: 154, - 3062: 154, - 3063: 154, - 3064: 154, - 3065: 154, - 3066: 154, - 3067: 154, - 3068: 154, - 3069: 154, - 3070: 154, - 3071: 154, - 3072: 154, - 3073: 154, - 3074: 154, - 3075: 154, - 3076: 154, - 3077: 154, - 3078: 154, - 3079: 154, - 3080: 154, - 3081: 154, - 3082: 154, - 3083: 154, - 3084: 154, - 3085: 154, - 3086: 154, - 3087: 154, - 3088: 154, - 3089: 154, - 3090: 154, - 3091: 154, - 3092: 154, - 3093: 154, - 3094: 154, - 3095: 154, - 3096: 154, - 3097: 154, - 3098: 154, - 3099: 154, - 3100: 154, - 3101: 154, - 3102: 154, - 3103: 154, - 3104: 154, - 3105: 154, - 3106: 154, - 3107: 154, - 3108: 154, - 3109: 154, - 3110: 154, - 3111: 154, - 3112: 154, - 3113: 154, - 3114: 154, - 3115: 154, - 3116: 154, - 3117: 154, - 3118: 154, - 3119: 154, - 3120: 154, - 3121: 154, - 3122: 154, - 3123: 154, - 3124: 154, - 3125: 154, - 3126: 154, - 3127: 154, - 3128: 154, - 3129: 154, - 3130: 154, - 3131: 154, - 3132: 154, - 3133: 154, - 3134: 154, - 3135: 154, - 3136: 154, - 3137: 154, - 3138: 154, - 3139: 154, - 3140: 154, - 3141: 154, - 3142: 154, - 3143: 154, - 3144: 154, - 3145: 154, - 3146: 154, - 3147: 154, - 3148: 154, - 3149: 154, - 3150: 154, - 3151: 154, - 3152: 154, - 3153: 154, - 3154: 154, - 3155: 154, - 3156: 154, - 3157: 154, - 3158: 154, - 3159: 154, - 3160: 154, - 3161: 154, - 3162: 154, - 3163: 154, - 3164: 154, - 3165: 154, - 3166: 154, - 3167: 154, - 3168: 154, - 3169: 154, - 3170: 154, - 3171: 154, - 3172: 154, - 3173: 154, - 3174: 154, - 3175: 154, - 3176: 154, - 3177: 154, - 3178: 154, - 3179: 154, - 3180: 154, - 3181: 154, - 3182: 154, - 3183: 154, - 3184: 154, - 3185: 154, - 3186: 154, - 3187: 154, - 3188: 154, - 3189: 154, - 3190: 154, - 3191: 154, - 3192: 154, - 3193: 154, - 3194: 154, - 3195: 154, - 3196: 154, - 3197: 154, - 3198: 154, - 3199: 154, - 3200: 154, - 3201: 154, - 3202: 154, - 3203: 154, - 3204: 154, - 3205: 154, - 3206: 154, - 3207: 154, - 3208: 154, - 3209: 154, - 3210: 154, - 3211: 154, - 3212: 154, - 3213: 154, - 3214: 154, - 3215: 154, - 3216: 154, - 3217: 154, - 3218: 154, - 3219: 154, - 3220: 154, - 3221: 154, - 3222: 154, - 3223: 154, - 3224: 154, - 3225: 154, - 3226: 154, - 3227: 154, - 3228: 154, - 3229: 154, - 3230: 154, - 3231: 154, - 3232: 154, - 3233: 154, - 3234: 154, - 3235: 154, - 3236: 154, - 3237: 154, - 3238: 154, - 3239: 154, - 3240: 154, - 3241: 154, - 3242: 154, - 3243: 154, - 3244: 154, - 3245: 154, - 3246: 154, - 3247: 154, - 3248: 154, - 3249: 154, - 3250: 154, - 3251: 154, - 3252: 154, - 3253: 154, - 3254: 154, - 3255: 154, - 3256: 154, - 3257: 154, - 3258: 154, - 3259: 154, - 3260: 154, - 3261: 154, - 3262: 154, - 3263: 154, - 3264: 154, - 3265: 154, - 3266: 154, - 3267: 154, - 3268: 154, - 3269: 154, - 3270: 154, - 3271: 154, - 3272: 154, - 3273: 154, - 3274: 154, - 3275: 154, - 3276: 154, - 3277: 154, - 3278: 154, - 3279: 154, - 3280: 154, - 3281: 154, - 3282: 154, - 3283: 154, - 3284: 154, - 3285: 154, - 3286: 154, - 3287: 154, - 3288: 154, - 3289: 154, - 3290: 154, - 3291: 154, - 3292: 154, - 3293: 154, - 3294: 154, - 3295: 154, - 3296: 154, - 3297: 154, - 3298: 154, - 3299: 154, - 3300: 154, - 3301: 154, - 3302: 154, - 3303: 154, - 3304: 154, - 3305: 154, - 3306: 154, - 3307: 154, - 3308: 154, - 3309: 154, - 3310: 154, - 3311: 154, - 3312: 154, - 3313: 154, - 3314: 154, - 3315: 154, - 3316: 154, - 3317: 154, - 3318: 154, - 3319: 154, - 3320: 154, - 3321: 154, - 3322: 154, - 3323: 154, - 3324: 154, - 3325: 154, - 3326: 154, - 3327: 154, - 3328: 154, - 3329: 154, - 3330: 154, - 3331: 154, - 3332: 154, - 3333: 154, - 3334: 154, - 3335: 154, - 3336: 154, - 3337: 154, - 3338: 154, - 3339: 154, - 3340: 154, - 3341: 154, - 3342: 154, - 3343: 154, - 3344: 154, - 3345: 154, - 3346: 154, - 3347: 154, - 3348: 154, - 3349: 154, - 3350: 154, - 3351: 154, - 3352: 154, - 3353: 154, - 3354: 154, - 3355: 154, - 3356: 154, - 3357: 154, - 3358: 154, - 3359: 154, - 3360: 154, - 3361: 154, - 3362: 154, - 3363: 154, - 3364: 154, - 3365: 154, - 3366: 154, - 3367: 154, - 3368: 154, - 3369: 154, - 3370: 154, - 3371: 154, - 3372: 154, - 3373: 154, - 3374: 154, - 3375: 154, - 3376: 154, - 3377: 154, - 3378: 154, - 3379: 154, - 3380: 154, - 3381: 154, - 3382: 154, - 3383: 154, - 3384: 154, - 3385: 154, - 3386: 154, - 3387: 154, - 3388: 154, - 3389: 154, - 3390: 154, - 3391: 154, - 3392: 154, - 3393: 154, - 3394: 154, - 3395: 154, - 3396: 154, - 3397: 154, - 3398: 154, - 3399: 154, - 3400: 154, - 3401: 154, - 3402: 154, - 3403: 154, - 3404: 154, - 3405: 154, - 3406: 154, - 3407: 154, - 3408: 154, - 3409: 154, - 3410: 155, - 3411: 156, - 3412: 157, - 3413: 158, - 3414: 159, - 3415: 159, - 3416: 159, - 3417: 159, - 3418: 159, - 3419: 159, - 3420: 159, - 3421: 159, - 3422: 160, - 3423: 160, - 3424: 160, - 3425: 160, - 3426: 160, - 3427: 160, - 3428: 160, - 3429: 160, - 3430: 161, - 3431: 161, - 3432: 161, - 3433: 161, - 3434: 161, - 3435: 161, - 3436: 161, - 3437: 161, - 3438: 162, - 3439: 162, - 3440: 162, - 3441: 162, - 3442: 162, - 3443: 162, - 3444: 162, - 3445: 162, - 3446: 162, - 3447: 162, - 3448: 162, - 3449: 162, - 3450: 162, - 3451: 162, - 3452: 162, - 3453: 162, - 3454: 162, - 3455: 162, - 3456: 162, - 3457: 162, - 3458: 162, - 3459: 162, - 3460: 162, - 3461: 162, - 3462: 162, - 3463: 162, - 3464: 162, - 3465: 162, - 3466: 162, - 3467: 162, - 3468: 162, - 3469: 162, - 3470: 163, - 3471: 163, - 3472: 163, - 3473: 163, - 3474: 163, - 3475: 163, - 3476: 163, - 3477: 163, - 3478: 163, - 3479: 163, - 3480: 163, - 3481: 163, - 3482: 163, - 3483: 163, - 3484: 163, - 3485: 163, - 3486: 163, - 3487: 163, - 3488: 163, - 3489: 163, - 3490: 163, - 3491: 163, - 3492: 163, - 3493: 163, - 3494: 163, - 3495: 163, - 3496: 163, - 3497: 163, - 3498: 163, - 3499: 163, - 3500: 163, - 3501: 163, - 3502: 164, - 3503: 164, - 3504: 164, - 3505: 164, - 3506: 164, - 3507: 164, - 3508: 164, - 3509: 164, - 3510: 164, - 3511: 164, - 3512: 164, - 3513: 164, - 3514: 164, - 3515: 164, - 3516: 164, - 3517: 164, - 3518: 164, - 3519: 164, - 3520: 164, - 3521: 164, - 3522: 164, - 3523: 164, - 3524: 164, - 3525: 164, - 3526: 164, - 3527: 164, - 3528: 164, - 3529: 164, - 3530: 164, - 3531: 164, - 3532: 164, - 3533: 164, - 3534: 165, - 3535: 165, - 3536: 165, - 3537: 165, - 3538: 165, - 3539: 165, - 3540: 165, - 3541: 165, - 3542: 165, - 3543: 165, - 3544: 165, - 3545: 165, - 3546: 165, - 3547: 165, - 3548: 165, - 3549: 165, - 3550: 165, - 3551: 165, - 3552: 165, - 3553: 165, - 3554: 165, - 3555: 165, - 3556: 165, - 3557: 165, - 3558: 165, - 3559: 165, - 3560: 165, - 3561: 165, - 3562: 165, - 3563: 165, - 3564: 165, - 3565: 165, - 3566: 166, - 3567: 166, - 3568: 166, - 3569: 166, - 3570: 166, - 3571: 166, - 3572: 166, - 3573: 166, - 3574: 166, - 3575: 166, - 3576: 166, - 3577: 166, - 3578: 166, - 3579: 166, - 3580: 166, - 3581: 166, - 3582: 166, - 3583: 166, - 3584: 166, - 3585: 166, - 3586: 166, - 3587: 166, - 3588: 166, - 3589: 166, - 3590: 166, - 3591: 166, - 3592: 166, - 3593: 166, - 3594: 166, - 3595: 166, - 3596: 166, - 3597: 166, - 3598: 167, - 3599: 167, - 3600: 167, - 3601: 167, - 3602: 167, - 3603: 167, - 3604: 167, - 3605: 167, - 3606: 167, - 3607: 167, - 3608: 167, - 3609: 167, - 3610: 167, - 3611: 167, - 3612: 167, - 3613: 167, - 3614: 167, - 3615: 167, - 3616: 167, - 3617: 167, - 3618: 167, - 3619: 167, - 3620: 167, - 3621: 167, - 3622: 167, - 3623: 167, - 3624: 167, - 3625: 167, - 3626: 167, - 3627: 167, - 3628: 167, - 3629: 167, - 3630: 168, - 3631: 168, - 3632: 168, - 3633: 168, - 3634: 168, - 3635: 168, - 3636: 168, - 3637: 168, - 3638: 168, - 3639: 168, - 3640: 168, - 3641: 168, - 3642: 168, - 3643: 168, - 3644: 168, - 3645: 168, - 3646: 168, - 3647: 168, - 3648: 168, - 3649: 168, - 3650: 168, - 3651: 168, - 3652: 168, - 3653: 168, - 3654: 168, - 3655: 168, - 3656: 168, - 3657: 168, - 3658: 168, - 3659: 168, - 3660: 168, - 3661: 168, - 3662: 168, - 3663: 168, - 3664: 168, - 3665: 168, - 3666: 168, - 3667: 168, - 3668: 168, - 3669: 168, - 3670: 168, - 3671: 168, - 3672: 168, - 3673: 168, - 3674: 168, - 3675: 168, - 3676: 168, - 3677: 168, - 3678: 168, - 3679: 168, - 3680: 168, - 3681: 168, - 3682: 168, - 3683: 168, - 3684: 168, - 3685: 168, - 3686: 168, - 3687: 168, - 3688: 168, - 3689: 168, - 3690: 168, - 3691: 168, - 3692: 168, - 3693: 168, - 3694: 169, - 3695: 169, - 3696: 169, - 3697: 169, - 3698: 169, - 3699: 169, - 3700: 169, - 3701: 169, - 3702: 170, - 3703: 170, - 3704: 170, - 3705: 170, - 3706: 170, - 3707: 170, - 3708: 170, - 3709: 170, - 3710: 170, - 3711: 170, - 3712: 170, - 3713: 170, - 3714: 170, - 3715: 170, - 3716: 170, - 3717: 170, - 3718: 170, - 3719: 170, - 3720: 170, - 3721: 170, - 3722: 171, - 3723: 171, - 3724: 171, - 3725: 171, - 3726: 171, - 3727: 171, - 3728: 171, - 3729: 171, - 3730: 171, - 3731: 171, - 3732: 171, - 3733: 171, - 3734: 171, - 3735: 171, - 3736: 171, - 3737: 171, - 3738: 171, - 3739: 171, - 3740: 171, - 3741: 171, - 3742: 171, - 3743: 171, - 3744: 171, - 3745: 171, - 3746: 171, - 3747: 171, - 3748: 171, - 3749: 171, - 3750: 171, - 3751: 171, - 3752: 171, - 3753: 171, - 3754: 171, - 3755: 171, - 3756: 171, - 3757: 171, - 3758: 171, - 3759: 171, - 3760: 171, - 3761: 171, - 3762: 171, - 3763: 171, - 3764: 171, - 3765: 171, - 3766: 171, - 3767: 171, - 3768: 171, - 3769: 171, - 3770: 171, - 3771: 171, - 3772: 171, - 3773: 171, - 3774: 171, - 3775: 171, - 3776: 171, - 3777: 171, - 3778: 171, - 3779: 171, - 3780: 171, - 3781: 171, - 3782: 171, - 3783: 171, - 3784: 171, - 3785: 171, - 3786: 171, - 3787: 171, - 3788: 171, - 3789: 171, - 3790: 171, - 3791: 171, - 3792: 171, - 3793: 171, - 3794: 171, - 3795: 171, - 3796: 171, - 3797: 171, - 3798: 171, - 3799: 171, - 3800: 171, - 3801: 171, - 3802: 172, - 3803: 172, - 3804: 172, - 3805: 172, - 3806: 172, - 3807: 172, - 3808: 172, - 3809: 172, - 3810: 173, - 3811: 173, - 3812: 173, - 3813: 173, - 3814: 173, - 3815: 173, - 3816: 173, - 3817: 173, - 3818: 174, - 3819: 174, - 3820: 174, - 3821: 174, - 3822: 174, - 3823: 174, - 3824: 174, - 3825: 174, - 3826: 175, - 3827: 175, - 3828: 175, - 3829: 175, - 3830: 175, - 3831: 175, - 3832: 175, - 3833: 175, - 3834: 176, - 3835: 176, - 3836: 176, - 3837: 176, - 3838: 176, - 3839: 176, - 3840: 176, - 3841: 176, - 3842: 177, - 3843: 177, - 3844: 177, - 3845: 177, - 3846: 177, - 3847: 177, - 3848: 177, - 3849: 177, - 3850: 178, - 3851: 178, - 3852: 178, - 3853: 178, - 3854: 178, - 3855: 178, - 3856: 178, - 3857: 178, - 3858: 178, - 3859: 178, - 3860: 178, - 3861: 178, - 3862: 178, - 3863: 178, - 3864: 178, - 3865: 178, - 3866: 178, - 3867: 178, - 3868: 178, - 3869: 178, - 3870: 178, - 3871: 178, - 3872: 178, - 3873: 178, - 3874: 179, - 3875: 179, - 3876: 180, - 3877: 180, - 3878: 180, - 3879: 180, - 3880: 180, - 3881: 180, - 3882: 180, - 3883: 180, - 3884: 180, - 3885: 180, - 3886: 180, - 3887: 180, - 3888: 180, - 3889: 180, - 3890: 180, - 3891: 180, - 3892: 180, - 3893: 180, - 3894: 180, - 3895: 180, - 3896: 180, - 3897: 180, - 3898: 180, - 3899: 180, - 3900: 180, - 3901: 180, - 3902: 180, - 3903: 180, - 3904: 180, - 3905: 180, - 3906: 180, - 3907: 180, - 3908: 180, - 3909: 180, - 3910: 180, - 3911: 180, - 3912: 180, - 3913: 180, - 3914: 180, - 3915: 180, - 3916: 180, - 3917: 180, - 3918: 180, - 3919: 180, - 3920: 180, - 3921: 180, - 3922: 180, - 3923: 180, - 3924: 180, - 3925: 180, - 3926: 180, - 3927: 180, - 3928: 180, - 3929: 180, - 3930: 180, - 3931: 180, - 3932: 180, - 3933: 180, - 3934: 180, - 3935: 180, - 3936: 180, - 3937: 180, - 3938: 180, - 3939: 180, - 3940: 181, - 3941: 181, - 3942: 182, - 3943: 182, - 3944: 183, - 3945: 183, - 3946: 184, - 3947: 184, - 3948: 185, - 3949: 185, - 3950: 186, - 3951: 186, - 3952: 187, - 3953: 187, - 3954: 188, - 3955: 188, - 3956: 189, - 3957: 189, - 3958: 190, - 3959: 190, - 3960: 190, - 3961: 190, - 3962: 190, - 3963: 190, - 3964: 190, - 3965: 190, - 3966: 191, - 3967: 191, - 3968: 191, - 3969: 191, - 3970: 191, - 3971: 191, - 3972: 191, - 3973: 191, - 3974: 191, - 3975: 191, - 3976: 191, - 3977: 191, - 3978: 191, - 3979: 191, - 3980: 191, - 3981: 191, - 3982: 191, - 3983: 191, - 3984: 191, - 3985: 191, - 3986: 191, - 3987: 191, - 3988: 191, - 3989: 191, - 3990: 192, - 3991: 192, - 3992: 192, - 3993: 192, - 3994: 192, - 3995: 192, - 3996: 192, - 3997: 192, - 3998: 193, - 3999: 194, - 4000: 195, - 4001: 195, - 4002: 195, - 4003: 195, - 4004: 195, - 4005: 195, - 4006: 195, - 4007: 195, - 4008: 195, - 4009: 195, - 4010: 195, - 4011: 195, - 4012: 195, - 4013: 195, - 4014: 195, - 4015: 195, - 4016: 196, - 4017: 197, - 4018: 197, - 4019: 197, - 4020: 197, - 4021: 197, - 4022: 197, - 4023: 197, - 4024: 197, - 4025: 197, - 4026: 197, - 4027: 197, - 4028: 197, - 4029: 197, - 4030: 197, - 4031: 197, - 4032: 197, - 4033: 198, - 4034: 198, - 4035: 199, - 4036: 199, - 4037: 199, - 4038: 199, - 4039: 199, - 4040: 199, - 4041: 199, - 4042: 199, - 4043: 199, - 4044: 199, - 4045: 199, - 4046: 199, - 4047: 199, - 4048: 199, - 4049: 199, - 4050: 199, - 4051: 199, - 4052: 199, - 4053: 199, - 4054: 199, - 4055: 199, - 4056: 199, - 4057: 199, - 4058: 199, - 4059: 199, - 4060: 199, - 4061: 199, - 4062: 199, - 4063: 199, - 4064: 199, - 4065: 199, - 4066: 199, - 4067: 200, - 4068: 201, - 4069: 202, - 4070: 203, - 4071: 204, - 4072: 204, - 4073: 204, - 4074: 205, - 4075: 205, - 4076: 205, - 4077: 206, - 4078: 207, - 4079: 207, - 4080: 207, - 4081: 207, - 4082: 208, - 4083: 209, - 4084: 209, - 4085: 210, - 4086: 210, - 4087: 210, - 4088: 210, - 4089: 211, - 4090: 211, - 4091: 211, - 4092: 211, - 4093: 212, - 4094: 212, - 4095: 212, - 4096: 212, - 4097: 212, - 4098: 212, - 4099: 212, - 4100: 213, - 4101: 213, - 4102: 213, - 4103: 213, - 4104: 213, - 4105: 213, - 4106: 213, - 4107: 213, - 4108: 213, - 4109: 213, - 4110: 213, - 4111: 213, - 4112: 213, - 4113: 213, - 4114: 213, - 4115: 213, - 4116: 213, - 4117: 213, - 4118: 213, - 4119: 213, - 4120: 213, - 4121: 213, - 4122: 213, - 4123: 213, - 4124: 213, - 4125: 213, - 4126: 213, - 4127: 213, - 4128: 213, - 4129: 213, - 4130: 213, - 4131: 213, - 4132: 213, - 4133: 213, - 4134: 213, - 4135: 213, - 4136: 213, - 4137: 213, - 4138: 213, - 4139: 213, - 4140: 213, - 4141: 213, - 4142: 213, - 4143: 213, - 4144: 213, - 4145: 213, - 4146: 213, - 4147: 213, - 4148: 213, - 4149: 213, - 4150: 213, - 4151: 213, - 4152: 213, - 4153: 213, - 4154: 213, - 4155: 213, - 4156: 213, - 4157: 213, - 4158: 213, - 4159: 213, - 4160: 213, - 4161: 213, - 4162: 213, - 4163: 213, - 4164: 214, - 4165: 215, - 4166: 216, - 4167: 217, - 4168: 218, - 4169: 219, - 4170: 220, - 4171: 221, - 4172: 222, - 4173: 223, - 4174: 224, - 4175: 225, - 4176: 226, - 4177: 227, - 4178: 228, - 4179: 229, - 4180: 230, - 4181: 230, - 4182: 230, - 4183: 230, - 4184: 230, - 4185: 230, - 4186: 230, - 4187: 230, - 4188: 230, - 4189: 230, - 4190: 230, - 4191: 230, - 4192: 230, - 4193: 230, - 4194: 230, - 4195: 230, - 4196: 230, - 4197: 230, - 4198: 230, - 4199: 230, - 4200: 230, - 4201: 230, - 4202: 230, - 4203: 230, - 4204: 230, - 4205: 230, - 4206: 230, - 4207: 230, - 4208: 230, - 4209: 230, - 4210: 230, - 4211: 230, - 4212: 230, - 4213: 230, - 4214: 230, - 4215: 230, - 4216: 230, - 4217: 230, - 4218: 230, - 4219: 230, - 4220: 230, - 4221: 230, - 4222: 230, - 4223: 230, - 4224: 230, - 4225: 230, - 4226: 230, - 4227: 230, - 4228: 230, - 4229: 230, - 4230: 230, - 4231: 230, - 4232: 230, - 4233: 230, - 4234: 230, - 4235: 230, - 4236: 230, - 4237: 230, - 4238: 230, - 4239: 230, - 4240: 230, - 4241: 230, - 4242: 230, - 4243: 230, - 4244: 231, - 4245: 231, - 4246: 231, - 4247: 231, - 4248: 231, - 4249: 231, - 4250: 231, - 4251: 231, - 4252: 231, - 4253: 231, - 4254: 231, - 4255: 231, - 4256: 231, - 4257: 231, - 4258: 231, - 4259: 231, - 4260: 231, - 4261: 231, - 4262: 231, - 4263: 231, - 4264: 231, - 4265: 231, - 4266: 231, - 4267: 231, - 4268: 231, - 4269: 231, - 4270: 231, - 4271: 231, - 4272: 231, - 4273: 231, - 4274: 231, - 4275: 231, - 4276: 231, - 4277: 231, - 4278: 231, - 4279: 231, - 4280: 231, - 4281: 231, - 4282: 231, - 4283: 231, - 4284: 231, - 4285: 231, - 4286: 231, - 4287: 231, - 4288: 231, - 4289: 231, - 4290: 231, - 4291: 231, - 4292: 231, - 4293: 231, - 4294: 231, - 4295: 231, - 4296: 231, - 4297: 231, - 4298: 231, - 4299: 231, - 4300: 231, - 4301: 231, - 4302: 231, - 4303: 231, - 4304: 231, - 4305: 231, - 4306: 231, - 4307: 231, - 4308: 232, - 4309: 232, - 4310: 232, - 4311: 232, - 4312: 232, - 4313: 232, - 4314: 232, - 4315: 232, - 4316: 232, - 4317: 232, - 4318: 232, - 4319: 232, - 4320: 232, - 4321: 232, - 4322: 232, - 4323: 232, - 4324: 232, - 4325: 232, - 4326: 232, - 4327: 232, - 4328: 232, - 4329: 232, - 4330: 232, - 4331: 232, - 4332: 232, - 4333: 232, - 4334: 232, - 4335: 232, - 4336: 232, - 4337: 232, - 4338: 232, - 4339: 232, - 4340: 232, - 4341: 232, - 4342: 232, - 4343: 232, - 4344: 232, - 4345: 232, - 4346: 232, - 4347: 232, - 4348: 232, - 4349: 232, - 4350: 232, - 4351: 232, - 4352: 232, - 4353: 232, - 4354: 232, - 4355: 232, - 4356: 232, - 4357: 232, - 4358: 232, - 4359: 232, - 4360: 232, - 4361: 232, - 4362: 232, - 4363: 232, - 4364: 232, - 4365: 232, - 4366: 232, - 4367: 232, - 4368: 232, - 4369: 232, - 4370: 232, - 4371: 232, - 4372: 233, - 4373: 233, - 4374: 233, - 4375: 233, - 4376: 233, - 4377: 233, - 4378: 233, - 4379: 233, - 4380: 233, - 4381: 233, - 4382: 233, - 4383: 233, - 4384: 233, - 4385: 233, - 4386: 233, - 4387: 233, - 4388: 233, - 4389: 233, - 4390: 233, - 4391: 233, - 4392: 233, - 4393: 233, - 4394: 233, - 4395: 233, - 4396: 233, - 4397: 233, - 4398: 233, - 4399: 233, - 4400: 233, - 4401: 233, - 4402: 233, - 4403: 233, - 4404: 233, - 4405: 233, - 4406: 233, - 4407: 233, - 4408: 233, - 4409: 233, - 4410: 233, - 4411: 233, - 4412: 233, - 4413: 233, - 4414: 233, - 4415: 233, - 4416: 233, - 4417: 233, - 4418: 233, - 4419: 233, - 4420: 233, - 4421: 233, - 4422: 233, - 4423: 233, - 4424: 233, - 4425: 233, - 4426: 233, - 4427: 233, - 4428: 233, - 4429: 233, - 4430: 233, - 4431: 233, - 4432: 233, - 4433: 233, - 4434: 233, - 4435: 233, - 4436: 234, - 4437: 234, - 4438: 234, - 4439: 234, - 4440: 234, - 4441: 234, - 4442: 234, - 4443: 234, - 4444: 234, - 4445: 234, - 4446: 234, - 4447: 234, - 4448: 234, - 4449: 234, - 4450: 234, - 4451: 234, - 4452: 234, - 4453: 234, - 4454: 234, - 4455: 234, - 4456: 234, - 4457: 234, - 4458: 234, - 4459: 234, - 4460: 234, - 4461: 234, - 4462: 234, - 4463: 234, - 4464: 234, - 4465: 234, - 4466: 234, - 4467: 234, - 4468: 234, - 4469: 234, - 4470: 234, - 4471: 234, - 4472: 234, - 4473: 234, - 4474: 234, - 4475: 234, - 4476: 234, - 4477: 234, - 4478: 234, - 4479: 234, - 4480: 234, - 4481: 234, - 4482: 234, - 4483: 234, - 4484: 234, - 4485: 234, - 4486: 234, - 4487: 234, - 4488: 234, - 4489: 234, - 4490: 234, - 4491: 234, - 4492: 234, - 4493: 234, - 4494: 234, - 4495: 234, - 4496: 234, - 4497: 234, - 4498: 234, - 4499: 234, - 4500: 235, - 4501: 235, - 4502: 235, - 4503: 235, - 4504: 235, - 4505: 235, - 4506: 235, - 4507: 235, - 4508: 235, - 4509: 235, - 4510: 235, - 4511: 235, - 4512: 235, - 4513: 235, - 4514: 235, - 4515: 235, - 4516: 235, - 4517: 235, - 4518: 235, - 4519: 235, - 4520: 235, - 4521: 235, - 4522: 235, - 4523: 235, - 4524: 235, - 4525: 235, - 4526: 235, - 4527: 235, - 4528: 235, - 4529: 235, - 4530: 235, - 4531: 235, - 4532: 235, - 4533: 235, - 4534: 235, - 4535: 235, - 4536: 235, - 4537: 235, - 4538: 235, - 4539: 235, - 4540: 235, - 4541: 235, - 4542: 235, - 4543: 235, - 4544: 235, - 4545: 235, - 4546: 235, - 4547: 235, - 4548: 235, - 4549: 235, - 4550: 235, - 4551: 235, - 4552: 235, - 4553: 235, - 4554: 235, - 4555: 235, - 4556: 235, - 4557: 235, - 4558: 235, - 4559: 235, - 4560: 235, - 4561: 235, - 4562: 235, - 4563: 235, - 4564: 236, - 4565: 237, - 4566: 238, - 4567: 239, - 4568: 240, - 4569: 241, - 4570: 242, - 4571: 243, - 4572: 244, - 4573: 245, - 4574: 246, - 4575: 246, - 4576: 246, - 4577: 246, - 4578: 246, - 4579: 246, - 4580: 246, - 4581: 246, - 4582: 246, - 4583: 246, - 4584: 246, - 4585: 246, - 4586: 246, - 4587: 246, - 4588: 246, - 4589: 246, - 4590: 246, - 4591: 246, - 4592: 246, - 4593: 246, - 4594: 246, - 4595: 246, - 4596: 246, - 4597: 246, - 4598: 246, - 4599: 246, - 4600: 246, - 4601: 246, - 4602: 246, - 4603: 246, - 4604: 246, - 4605: 246, - 4606: 246, - 4607: 246, - 4608: 246, - 4609: 246, - 4610: 246, - 4611: 246, - 4612: 246, - 4613: 246, - 4614: 246, - 4615: 246, - 4616: 246, - 4617: 246, - 4618: 246, - 4619: 246, - 4620: 246, - 4621: 246, - 4622: 246, - 4623: 246, - 4624: 246, - 4625: 246, - 4626: 246, - 4627: 246, - 4628: 246, - 4629: 246, - 4630: 246, - 4631: 246, - 4632: 246, - 4633: 246, - 4634: 246, - 4635: 246, - 4636: 246, - 4637: 246, - 4638: 247, - 4639: 247, - 4640: 247, - 4641: 247, - 4642: 247, - 4643: 247, - 4644: 247, - 4645: 247, - 4646: 247, - 4647: 247, - 4648: 247, - 4649: 247, - 4650: 247, - 4651: 247, - 4652: 247, - 4653: 247, - 4654: 247, - 4655: 247, - 4656: 247, - 4657: 247, - 4658: 247, - 4659: 247, - 4660: 247, - 4661: 247, - 4662: 247, - 4663: 247, - 4664: 247, - 4665: 247, - 4666: 247, - 4667: 247, - 4668: 247, - 4669: 247, - 4670: 247, - 4671: 247, - 4672: 247, - 4673: 247, - 4674: 247, - 4675: 247, - 4676: 247, - 4677: 247, - 4678: 247, - 4679: 247, - 4680: 247, - 4681: 247, - 4682: 247, - 4683: 247, - 4684: 247, - 4685: 247, - 4686: 247, - 4687: 247, - 4688: 247, - 4689: 247, - 4690: 247, - 4691: 247, - 4692: 247, - 4693: 247, - 4694: 247, - 4695: 247, - 4696: 247, - 4697: 247, - 4698: 247, - 4699: 247, - 4700: 247, - 4701: 247, - 4702: 248, - 4703: 248, - 4704: 248, - 4705: 248, - 4706: 248, - 4707: 248, - 4708: 248, - 4709: 248, - 4710: 248, - 4711: 248, - 4712: 248, - 4713: 248, - 4714: 248, - 4715: 248, - 4716: 248, - 4717: 248, - 4718: 248, - 4719: 248, - 4720: 248, - 4721: 248, - 4722: 248, - 4723: 248, - 4724: 248, - 4725: 248, - 4726: 248, - 4727: 248, - 4728: 248, - 4729: 248, - 4730: 248, - 4731: 248, - 4732: 248, - 4733: 248, - 4734: 248, - 4735: 248, - 4736: 248, - 4737: 248, - 4738: 248, - 4739: 248, - 4740: 248, - 4741: 248, - 4742: 248, - 4743: 248, - 4744: 248, - 4745: 248, - 4746: 248, - 4747: 248, - 4748: 248, - 4749: 248, - 4750: 248, - 4751: 248, - 4752: 248, - 4753: 248, - 4754: 248, - 4755: 248, - 4756: 248, - 4757: 248, - 4758: 248, - 4759: 248, - 4760: 248, - 4761: 248, - 4762: 248, - 4763: 248, - 4764: 248, - 4765: 248, - 4766: 249, - 4767: 249, - 4768: 249, - 4769: 249, - 4770: 249, - 4771: 249, - 4772: 249, - 4773: 249, - 4774: 249, - 4775: 249, - 4776: 249, - 4777: 249, - 4778: 249, - 4779: 249, - 4780: 249, - 4781: 249, - 4782: 249, - 4783: 249, - 4784: 249, - 4785: 249, - 4786: 249, - 4787: 249, - 4788: 249, - 4789: 249, - 4790: 249, - 4791: 249, - 4792: 249, - 4793: 249, - 4794: 249, - 4795: 249, - 4796: 249, - 4797: 249, - 4798: 250, - 4799: 250, - 4800: 250, - 4801: 250, - 4802: 250, - 4803: 250, - 4804: 251, - 4805: 251, - 4806: 251, - 4807: 251, - 4808: 251, - 4809: 251, - 4810: 251, - 4811: 251, - 4812: 251, - 4813: 251, - 4814: 251, - 4815: 251, - 4816: 251, - 4817: 251, - 4818: 251, - 4819: 251, - 4820: 251, - 4821: 251, - 4822: 251, - 4823: 251, - 4824: 251, - 4825: 251, - 4826: 251, - 4827: 251, - 4828: 251, - 4829: 251, - 4830: 251, - 4831: 251, - 4832: 251, - 4833: 251, - 4834: 251, - 4835: 251, - 4836: 252, - 4837: 253, - 4838: 253, - 4839: 253, - 4840: 253, - 4841: 254, - 4842: 254, - 4843: 254, - 4844: 254, - 4845: 255, - 4846: 255, - 4847: 255, - 4848: 255, - 4849: 255, - 4850: 255, - 4851: 255, - 4852: 255, - 4853: 256, - 4854: 256, - 4855: 256, - 4856: 256, - 4857: 256, - 4858: 256, - 4859: 256, - 4860: 256, - 4861: 257, - 4862: 257, - 4863: 257, - 4864: 257, - 4865: 257, - 4866: 257, - 4867: 257, - 4868: 257, - 4869: 257, - 4870: 257, - 4871: 257, - 4872: 257, - 4873: 257, - 4874: 257, - 4875: 257, - 4876: 257, - 4877: 257, - 4878: 257, - 4879: 257, - 4880: 257, - 4881: 257, - 4882: 257, - 4883: 257, - 4884: 257, - 4885: 257, - 4886: 257, - 4887: 257, - 4888: 257, - 4889: 257, - 4890: 257, - 4891: 257, - 4892: 257, - 4893: 258, - 4894: 258, - 4895: 258, - 4896: 258, - 4897: 258, - 4898: 258, - 4899: 258, - 4900: 258, - 4901: 258, - 4902: 258, - 4903: 258, - 4904: 258, - 4905: 258, - 4906: 258, - 4907: 258, - 4908: 258, - 4909: 258, - 4910: 258, - 4911: 258, - 4912: 258, - 4913: 258, - 4914: 258, - 4915: 258, - 4916: 258, - 4917: 258, - 4918: 258, - 4919: 258, - 4920: 258, - 4921: 258, - 4922: 258, - 4923: 258, - 4924: 258, - 4925: 258, - 4926: 258, - 4927: 258, - 4928: 258, - 4929: 258, - 4930: 258, - 4931: 258, - 4932: 258, - 4933: 258, - 4934: 258, - 4935: 258, - 4936: 258, - 4937: 258, - 4938: 258, - 4939: 258, - 4940: 258, - 4941: 258, - 4942: 258, - 4943: 258, - 4944: 258, - 4945: 258, - 4946: 258, - 4947: 258, - 4948: 258, - 4949: 258, - 4950: 258, - 4951: 258, - 4952: 258, - 4953: 258, - 4954: 258, - 4955: 258, - 4956: 258, - 4957: 258, - 4958: 258, - 4959: 258, - 4960: 258, - 4961: 258, - 4962: 258, - 4963: 258, - 4964: 258, - 4965: 258, - 4966: 258, - 4967: 258, - 4968: 258, - 4969: 258, - 4970: 258, - 4971: 258, - 4972: 258, - 4973: 258, - 4974: 258, - 4975: 258, - 4976: 258, - 4977: 258, - 4978: 258, - 4979: 258, - 4980: 258, - 4981: 258, - 4982: 258, - 4983: 258, - 4984: 258, - 4985: 258, - 4986: 258, - 4987: 258, - 4988: 258, - 4989: 258, - 4990: 258, - 4991: 258, - 4992: 258, - 4993: 258, - 4994: 258, - 4995: 258, - 4996: 258, - 4997: 258, - 4998: 258, - 4999: 258, - 5000: 258, - 5001: 258, - 5002: 258, - 5003: 258, - 5004: 258, - 5005: 258, - 5006: 258, - 5007: 258, - 5008: 258, - 5009: 258, - 5010: 258, - 5011: 258, - 5012: 258, - 5013: 258, - 5014: 258, - 5015: 258, - 5016: 258, - 5017: 258, - 5018: 258, - 5019: 258, - 5020: 258, - 5021: 259, - 5022: 259, - 5023: 259, - 5024: 259, - 5025: 259, - 5026: 259, - 5027: 259, - 5028: 259, - 5029: 259, - 5030: 259, - 5031: 259, - 5032: 259, - 5033: 259, - 5034: 259, - 5035: 259, - 5036: 259, - 5037: 259, - 5038: 259, - 5039: 259, - 5040: 259, - 5041: 259, - 5042: 259, - 5043: 259, - 5044: 259, - 5045: 259, - 5046: 259, - 5047: 259, - 5048: 259, - 5049: 259, - 5050: 259, - 5051: 259, - 5052: 259, - 5053: 260, - 5054: 260, - 5055: 260, - 5056: 260, - 5057: 260, - 5058: 260, - 5059: 260, - 5060: 260, - 5061: 260, - 5062: 260, - 5063: 260, - 5064: 260, - 5065: 260, - 5066: 260, - 5067: 260, - 5068: 260, - 5069: 260, - 5070: 260, - 5071: 260, - 5072: 260, - 5073: 260, - 5074: 260, - 5075: 260, - 5076: 260, - 5077: 260, - 5078: 260, - 5079: 260, - 5080: 260, - 5081: 260, - 5082: 260, - 5083: 260, - 5084: 260, - 5085: 260, - 5086: 260, - 5087: 260, - 5088: 260, - 5089: 260, - 5090: 260, - 5091: 260, - 5092: 260, - 5093: 260, - 5094: 260, - 5095: 260, - 5096: 260, - 5097: 260, - 5098: 260, - 5099: 260, - 5100: 260, - 5101: 260, - 5102: 260, - 5103: 260, - 5104: 260, - 5105: 260, - 5106: 260, - 5107: 260, - 5108: 260, - 5109: 260, - 5110: 260, - 5111: 260, - 5112: 260, - 5113: 260, - 5114: 260, - 5115: 260, - 5116: 260, - 5117: 260, - 5118: 260, - 5119: 260, - 5120: 260, - 5121: 260, - 5122: 260, - 5123: 260, - 5124: 260, - 5125: 260, - 5126: 260, - 5127: 260, - 5128: 260, - 5129: 260, - 5130: 260, - 5131: 260, - 5132: 260, - 5133: 261, - 5134: 261, - 5135: 261, - 5136: 261, - 5137: 261, - 5138: 261, - 5139: 261, - 5140: 261, - 5141: 261, - 5142: 261, - 5143: 261, - 5144: 261, - 5145: 261, - 5146: 261, - 5147: 261, - 5148: 261, - 5149: 261, - 5150: 261, - 5151: 261, - 5152: 261, - 5153: 261, - 5154: 261, - 5155: 261, - 5156: 261, - 5157: 261, - 5158: 261, - 5159: 261, - 5160: 261, - 5161: 261, - 5162: 261, - 5163: 261, - 5164: 261, - 5165: 261, - 5166: 261, - 5167: 261, - 5168: 261, - 5169: 261, - 5170: 261, - 5171: 261, - 5172: 261, - 5173: 261, - 5174: 261, - 5175: 261, - 5176: 261, - 5177: 261, - 5178: 261, - 5179: 261, - 5180: 261, - 5181: 261, - 5182: 261, - 5183: 261, - 5184: 261, - 5185: 261, - 5186: 261, - 5187: 261, - 5188: 261, - 5189: 261, - 5190: 261, - 5191: 261, - 5192: 261, - 5193: 261, - 5194: 261, - 5195: 261, - 5196: 261, - 5197: 261, - 5198: 261, - 5199: 261, - 5200: 261, - 5201: 261, - 5202: 261, - 5203: 261, - 5204: 261, - 5205: 261, - 5206: 261, - 5207: 261, - 5208: 261, - 5209: 261, - 5210: 261, - 5211: 261, - 5212: 261, - 5213: 262, - 5214: 262, - 5215: 263, - 5216: 264, - 5217: 265, - 5218: 265, - 5219: 265, - 5220: 265, - 5221: 265, - 5222: 265, - 5223: 265, - 5224: 265, - 5225: 265, - 5226: 265, - 5227: 265, - 5228: 265, - 5229: 265, - 5230: 265, - 5231: 265, - 5232: 265, - 5233: 265, - 5234: 265, - 5235: 265, - 5236: 265, - 5237: 265, - 5238: 265, - 5239: 265, - 5240: 265, - 5241: 265, - 5242: 265, - 5243: 265, - 5244: 265, - 5245: 265, - 5246: 265, - 5247: 265, - 5248: 265, - 5249: 266, - 5250: 266, - 5251: 266, - 5252: 266, - 5253: 266, - 5254: 266, - 5255: 266, - 5256: 266, - 5257: 266, - 5258: 266, - 5259: 266, - 5260: 266, - 5261: 266, - 5262: 266, - 5263: 266, - 5264: 266, - 5265: 266, - 5266: 266, - 5267: 266, - 5268: 266, - 5269: 266, - 5270: 266, - 5271: 266, - 5272: 266, - 5273: 266, - 5274: 266, - 5275: 266, - 5276: 266, - 5277: 266, - 5278: 266, - 5279: 266, - 5280: 266, - 5281: 266, - 5282: 266, - 5283: 266, - 5284: 266, - 5285: 266, - 5286: 266, - 5287: 266, - 5288: 266, - 5289: 266, - 5290: 266, - 5291: 266, - 5292: 266, - 5293: 266, - 5294: 266, - 5295: 266, - 5296: 266, - 5297: 266, - 5298: 266, - 5299: 266, - 5300: 266, - 5301: 266, - 5302: 266, - 5303: 266, - 5304: 266, - 5305: 266, - 5306: 266, - 5307: 266, - 5308: 266, - 5309: 266, - 5310: 266, - 5311: 266, - 5312: 266, - 5313: 266, - 5314: 266, - 5315: 266, - 5316: 266, - 5317: 266, - 5318: 266, - 5319: 266, - 5320: 266, - 5321: 266, - 5322: 266, - 5323: 266, - 5324: 266, - 5325: 266, - 5326: 266, - 5327: 266, - 5328: 266, - 5329: 267, - 5330: 267, - 5331: 267, - 5332: 267, - 5333: 268, - 5334: 269, - 5335: 269, - 5336: 269, - 5337: 269, - 5338: 269, - 5339: 269, - 5340: 269, - 5341: 269, - 5342: 270, - 5343: 271, - 5344: 271, - 5345: 271, - 5346: 272, - 5347: 273, - 5348: 273, - 5349: 273, - 5350: 274, - 5351: 275, - 5352: 275, - 5353: 275, - 5354: 275, - 5355: 275, - 5356: 275, - 5357: 275, - 5358: 275, - 5359: 276, - 5360: 277, - 5361: 278, - 5362: 278, - 5363: 279, - 5364: 279, - 5365: 279, - 5366: 279, - 5367: 279, - 5368: 279, - 5369: 279, - 5370: 279, - 5371: 279, - 5372: 279, - 5373: 279, - 5374: 279, - 5375: 280, - 5376: 280, - 5377: 280, - 5378: 280, - 5379: 280, - 5380: 280, - 5381: 280, - 5382: 280, - 5383: 280, - 5384: 280, - 5385: 280, - 5386: 280, - 5387: 280, - 5388: 280, - 5389: 280, - 5390: 280, - 5391: 280, - 5392: 280, - 5393: 280, - 5394: 280, - 5395: 280, - 5396: 280, - 5397: 280, - 5398: 280, - 5399: 280, - 5400: 280, - 5401: 280, - 5402: 280, - 5403: 280, - 5404: 280, - 5405: 280, - 5406: 280, - 5407: 280, - 5408: 280, - 5409: 280, - 5410: 280, - 5411: 280, - 5412: 280, - 5413: 280, - 5414: 280, - 5415: 280, - 5416: 280, - 5417: 280, - 5418: 280, - 5419: 280, - 5420: 280, - 5421: 280, - 5422: 280, - 5423: 280, - 5424: 280, - 5425: 280, - 5426: 280, - 5427: 280, - 5428: 280, - 5429: 280, - 5430: 280, - 5431: 280, - 5432: 280, - 5433: 280, - 5434: 280, - 5435: 280, - 5436: 280, - 5437: 280, - 5438: 280, - 5439: 280, - 5440: 280, - 5441: 280, - 5442: 280, - 5443: 280, - 5444: 280, - 5445: 280, - 5446: 280, - 5447: 280, - 5448: 280, - 5449: 280, - 5450: 280, - 5451: 280, - 5452: 280, - 5453: 280, - 5454: 280, - 5455: 281, - 5456: 282, - 5457: 283, - 5458: 283, - 5459: 283, - 5460: 283, - 5461: 283, - 5462: 283, - 5463: 283, - 5464: 283, - 5465: 284, - 5466: 284, - 5467: 284, - 5468: 284, - 5469: 284, - 5470: 284, - 5471: 284, - 5472: 284, - 5473: 284, - 5474: 284, - 5475: 284, - 5476: 284, - 5477: 284, - 5478: 284, - 5479: 284, - 5480: 284, - 5481: 285, - 5482: 285, - 5483: 285, - 5484: 285, - 5485: 285, - 5486: 285, - 5487: 285, - 5488: 285, - 5489: 285, - 5490: 285, - 5491: 285, - 5492: 285, - 5493: 285, - 5494: 285, - 5495: 285, - 5496: 285, - 5497: 285, - 5498: 285, - 5499: 285, - 5500: 285, - 5501: 285, - 5502: 285, - 5503: 285, - 5504: 285, - 5505: 285, - 5506: 285, - 5507: 285, - 5508: 285, - 5509: 285, - 5510: 285, - 5511: 285, - 5512: 285, - 5513: 285, - 5514: 285, - 5515: 285, - 5516: 285, - 5517: 285, - 5518: 285, - 5519: 285, - 5520: 285, - 5521: 285, - 5522: 285, - 5523: 285, - 5524: 285, - 5525: 285, - 5526: 285, - 5527: 285, - 5528: 285, - 5529: 285, - 5530: 285, - 5531: 285, - 5532: 285, - 5533: 285, - 5534: 285, - 5535: 285, - 5536: 285, - 5537: 285, - 5538: 285, - 5539: 285, - 5540: 285, - 5541: 285, - 5542: 285, - 5543: 285, - 5544: 285, - 5545: 285, - 5546: 285, - 5547: 285, - 5548: 285, - 5549: 285, - 5550: 285, - 5551: 285, - 5552: 285, - 5553: 285, - 5554: 285, - 5555: 285, - 5556: 285, - 5557: 285, - 5558: 285, - 5559: 285, - 5560: 285, - 5561: 285, - 5562: 285, - 5563: 285, - 5564: 285, - 5565: 285, - 5566: 285, - 5567: 285, - 5568: 285, - 5569: 285, - 5570: 285, - 5571: 285, - 5572: 285, - 5573: 285, - 5574: 285, - 5575: 285, - 5576: 285, - 5577: 285, - 5578: 285, - 5579: 285, - 5580: 285, - 5581: 285, - 5582: 285, - 5583: 285, - 5584: 285, - 5585: 285, - 5586: 285, - 5587: 285, - 5588: 285, - 5589: 285, - 5590: 285, - 5591: 285, - 5592: 285, - 5593: 285, - 5594: 285, - 5595: 285, - 5596: 285, - 5597: 285, - 5598: 285, - 5599: 285, - 5600: 285, - 5601: 285, - 5602: 285, - 5603: 285, - 5604: 285, - 5605: 285, - 5606: 285, - 5607: 285, - 5608: 285, - 5609: 286, - 5610: 287, - 5611: 287, - 5612: 287, - 5613: 287, - 5614: 287, - 5615: 287, - 5616: 287, - 5617: 287, - 5618: 287, - 5619: 287, - 5620: 287, - 5621: 287, - 5622: 287, - 5623: 287, - 5624: 287, - 5625: 287, - 5626: 287, - 5627: 287, - 5628: 287, - 5629: 287, - 5630: 287, - 5631: 287, - 5632: 287, - 5633: 287, - 5634: 287, - 5635: 287, - 5636: 287, - 5637: 287, - 5638: 287, - 5639: 287, - 5640: 287, - 5641: 287, - 5642: 287, - 5643: 287, - 5644: 287, - 5645: 287, - 5646: 287, - 5647: 287, - 5648: 287, - 5649: 287, - 5650: 287, - 5651: 287, - 5652: 287, - 5653: 287, - 5654: 287, - 5655: 287, - 5656: 287, - 5657: 287, - 5658: 287, - 5659: 287, - 5660: 287, - 5661: 287, - 5662: 287, - 5663: 287, - 5664: 287, - 5665: 287, - 5666: 287, - 5667: 287, - 5668: 287, - 5669: 287, - 5670: 287, - 5671: 287, - 5672: 287, - 5673: 287, - 5674: 287, - 5675: 287, - 5676: 287, - 5677: 287, - 5678: 287, - 5679: 287, - 5680: 287, - 5681: 287, - 5682: 287, - 5683: 287, - 5684: 287, - 5685: 287, - 5686: 287, - 5687: 287, - 5688: 287, - 5689: 287, - 5690: 288, - 5691: 288, - 5692: 288, - 5693: 288, - 5694: 288, - 5695: 288, - 5696: 288, - 5697: 288, - 5698: 288, - 5699: 288, - 5700: 288, - 5701: 288, - 5702: 288, - 5703: 288, - 5704: 288, - 5705: 288, - 5706: 288, - 5707: 288, - 5708: 288, - 5709: 288, - 5710: 288, - 5711: 288, - 5712: 288, - 5713: 288, - 5714: 288, - 5715: 288, - 5716: 288, - 5717: 288, - 5718: 288, - 5719: 288, - 5720: 288, - 5721: 288, - 5722: 288, - 5723: 288, - 5724: 288, - 5725: 288, - 5726: 288, - 5727: 288, - 5728: 288, - 5729: 288, - 5730: 288, - 5731: 288, - 5732: 288, - 5733: 288, - 5734: 288, - 5735: 288, - 5736: 288, - 5737: 288, - 5738: 288, - 5739: 288, - 5740: 288, - 5741: 288, - 5742: 288, - 5743: 288, - 5744: 288, - 5745: 288, - 5746: 288, - 5747: 288, - 5748: 288, - 5749: 288, - 5750: 288, - 5751: 288, - 5752: 288, - 5753: 288, - 5754: 288, - 5755: 288, - 5756: 288, - 5757: 288, - 5758: 288, - 5759: 288, - 5760: 288, - 5761: 288, - 5762: 288, - 5763: 288, - 5764: 288, - 5765: 288, - 5766: 288, - 5767: 288, - 5768: 288, - 5769: 288, - 5770: 289, - 5771: 289, - 5772: 289, - 5773: 289, - 5774: 289, - 5775: 289, - 5776: 289, - 5777: 289, - 5778: 289, - 5779: 289, - 5780: 289, - 5781: 289, - 5782: 289, - 5783: 289, - 5784: 289, - 5785: 289, - 5786: 289, - 5787: 289, - 5788: 289, - 5789: 289, - 5790: 289, - 5791: 289, - 5792: 289, - 5793: 289, - 5794: 289, - 5795: 289, - 5796: 289, - 5797: 289, - 5798: 289, - 5799: 289, - 5800: 289, - 5801: 289, - 5802: 289, - 5803: 289, - 5804: 289, - 5805: 289, - 5806: 289, - 5807: 289, - 5808: 289, - 5809: 289, - 5810: 289, - 5811: 289, - 5812: 289, - 5813: 289, - 5814: 289, - 5815: 289, - 5816: 289, - 5817: 289, - 5818: 289, - 5819: 289, - 5820: 289, - 5821: 289, - 5822: 289, - 5823: 289, - 5824: 289, - 5825: 289, - 5826: 289, - 5827: 289, - 5828: 289, - 5829: 289, - 5830: 289, - 5831: 289, - 5832: 289, - 5833: 289, - 5834: 289, - 5835: 289, - 5836: 289, - 5837: 289, - 5838: 289, - 5839: 289, - 5840: 289, - 5841: 289, - 5842: 289, - 5843: 289, - 5844: 289, - 5845: 289, - 5846: 289, - 5847: 289, - 5848: 289, - 5849: 289, - 5850: 290, - 5851: 290, - 5852: 290, - 5853: 290, - 5854: 290, - 5855: 290, - 5856: 290, - 5857: 290, - 5858: 290, - 5859: 290, - 5860: 290, - 5861: 290, - 5862: 291, - 5863: 292, - 5864: 292, - 5865: 292, - 5866: 292, - 5867: 292, - 5868: 292, - 5869: 292, - 5870: 292, - 5871: 292, - 5872: 292, - 5873: 292, - 5874: 292, - 5875: 292, - 5876: 292, - 5877: 292, - 5878: 292, - 5879: 292, - 5880: 292, - 5881: 292, - 5882: 292, - 5883: 292, - 5884: 292, - 5885: 292, - 5886: 292, - 5887: 292, - 5888: 292, - 5889: 292, - 5890: 292, - 5891: 292, - 5892: 292, - 5893: 292, - 5894: 292, - 5895: 292, - 5896: 292, - 5897: 292, - 5898: 292, - 5899: 292, - 5900: 292, - 5901: 292, - 5902: 292, - 5903: 292, - 5904: 292, - 5905: 292, - 5906: 292, - 5907: 292, - 5908: 292, - 5909: 292, - 5910: 292, - 5911: 292, - 5912: 292, - 5913: 292, - 5914: 292, - 5915: 292, - 5916: 292, - 5917: 292, - 5918: 292, - 5919: 292, - 5920: 292, - 5921: 292, - 5922: 292, - 5923: 292, - 5924: 292, - 5925: 292, - 5926: 292, - 5927: 292, - 5928: 292, - 5929: 292, - 5930: 292, - 5931: 292, - 5932: 292, - 5933: 292, - 5934: 292, - 5935: 292, - 5936: 292, - 5937: 292, - 5938: 292, - 5939: 292, - 5940: 292, - 5941: 292, - 5942: 292, - 5943: 292, - 5944: 292, - 5945: 292, - 5946: 292, - 5947: 292, - 5948: 292, - 5949: 292, - 5950: 292, - 5951: 292, - 5952: 292, - 5953: 292, - 5954: 292, - 5955: 292, - 5956: 292, - 5957: 292, - 5958: 292, - 5959: 292, - 5960: 292, - 5961: 292, - 5962: 292, - 5963: 292, - 5964: 292, - 5965: 292, - 5966: 292, - 5967: 292, - 5968: 292, - 5969: 292, - 5970: 292, - 5971: 292, - 5972: 292, - 5973: 292, - 5974: 292, - 5975: 292, - 5976: 292, - 5977: 292, - 5978: 292, - 5979: 292, - 5980: 292, - 5981: 292, - 5982: 292, - 5983: 292, - 5984: 292, - 5985: 292, - 5986: 292, - 5987: 292, - 5988: 292, - 5989: 292, - 5990: 292, - 5991: 292, - 5992: 292, - 5993: 292, - 5994: 292, - 5995: 292, - 5996: 292, - 5997: 292, - 5998: 292, - 5999: 292, - 6000: 292, - 6001: 292, - 6002: 292, - 6003: 292, - 6004: 292, - 6005: 292, - 6006: 292, - 6007: 292, - 6008: 292, - 6009: 292, - 6010: 292, - 6011: 292, - 6012: 292, - 6013: 292, - 6014: 292, - 6015: 292, - 6016: 292, - 6017: 292, - 6018: 292, - 6019: 292, - 6020: 292, - 6021: 292, - 6022: 292, - 6023: 292, - 6024: 292, - 6025: 292, - 6026: 292, - 6027: 292, - 6028: 292, - 6029: 292, - 6030: 292, - 6031: 292, - 6032: 292, - 6033: 292, - 6034: 292, - 6035: 292, - 6036: 292, - 6037: 292, - 6038: 292, - 6039: 292, - 6040: 292, - 6041: 292, - 6042: 292, - 6043: 292, - 6044: 292, - 6045: 292, - 6046: 292, - 6047: 292, - 6048: 292, - 6049: 292, - 6050: 292, - 6051: 292, - 6052: 292, - 6053: 292, - 6054: 292, - 6055: 292, - 6056: 292, - 6057: 292, - 6058: 292, - 6059: 292, - 6060: 292, - 6061: 292, - 6062: 292, - 6063: 292, - 6064: 292, - 6065: 292, - 6066: 292, - 6067: 292, - 6068: 292, - 6069: 292, - 6070: 292, - 6071: 292, - 6072: 292, - 6073: 292, - 6074: 292, - 6075: 292, - 6076: 292, - 6077: 292, - 6078: 292, - 6079: 292, - 6080: 292, - 6081: 292, - 6082: 292, - 6083: 292, - 6084: 292, - 6085: 292, - 6086: 292, - 6087: 292, - 6088: 292, - 6089: 292, - 6090: 292, - 6091: 292, - 6092: 292, - 6093: 292, - 6094: 292, - 6095: 292, - 6096: 292, - 6097: 292, - 6098: 292, - 6099: 292, - 6100: 292, - 6101: 292, - 6102: 292, - 6103: 292, - 6104: 292, - 6105: 292, - 6106: 292, - 6107: 292, - 6108: 292, - 6109: 292, - 6110: 292, - 6111: 292, - 6112: 292, - 6113: 292, - 6114: 292, - 6115: 292, - 6116: 292, - 6117: 292, - 6118: 292, - 6119: 292, - 6120: 292, - 6121: 292, - 6122: 292, - 6123: 292, - 6124: 292, - 6125: 292, - 6126: 292, - 6127: 292, - 6128: 292, - 6129: 292, - 6130: 292, - 6131: 292, - 6132: 292, - 6133: 292, - 6134: 292, - 6135: 292, - 6136: 292, - 6137: 292, - 6138: 292, - 6139: 292, - 6140: 292, - 6141: 292, - 6142: 292, - 6143: 292, - 6144: 292, - 6145: 292, - 6146: 292, - 6147: 292, - 6148: 292, - 6149: 292, - 6150: 292, - 6151: 292, - 6152: 292, - 6153: 292, - 6154: 292, - 6155: 292, - 6156: 292, - 6157: 292, - 6158: 292, - 6159: 292, - 6160: 292, - 6161: 292, - 6162: 292, - 6163: 292, - 6164: 292, - 6165: 292, - 6166: 292, - 6167: 292, - 6168: 292, - 6169: 292, - 6170: 292, - 6171: 292, - 6172: 292, - 6173: 292, - 6174: 292, - 6175: 292, - 6176: 292, - 6177: 292, - 6178: 292, - 6179: 292, - 6180: 292, - 6181: 292, - 6182: 292, - 6183: 292, - 6184: 292, - 6185: 292, - 6186: 292, - 6187: 293, - 6188: 293, - 6189: 293, - 6190: 293, - 6191: 293, - 6192: 293, - 6193: 293, - 6194: 293, - 6195: 293, - 6196: 293, - 6197: 293, - 6198: 293, - 6199: 293, - 6200: 293, - 6201: 293, - 6202: 293, - 6203: 293, - 6204: 293, - 6205: 293, - 6206: 293, - 6207: 293, - 6208: 293, - 6209: 293, - 6210: 293, - 6211: 293, - 6212: 293, - 6213: 293, - 6214: 293, - 6215: 293, - 6216: 293, - 6217: 293, - 6218: 293, - 6219: 293, - 6220: 293, - 6221: 293, - 6222: 293, - 6223: 293, - 6224: 293, - 6225: 293, - 6226: 293, - 6227: 293, - 6228: 293, - 6229: 293, - 6230: 293, - 6231: 293, - 6232: 293, - 6233: 293, - 6234: 293, - 6235: 293, - 6236: 293, - 6237: 293, - 6238: 293, - 6239: 293, - 6240: 293, - 6241: 293, - 6242: 293, - 6243: 293, - 6244: 293, - 6245: 293, - 6246: 293, - 6247: 293, - 6248: 293, - 6249: 293, - 6250: 293, - 6251: 293, - 6252: 293, - 6253: 293, - 6254: 293, - 6255: 293, - 6256: 293, - 6257: 293, - 6258: 293, - 6259: 293, - 6260: 293, - 6261: 293, - 6262: 293, - 6263: 293, - 6264: 293, - 6265: 293, - 6266: 293, - 6267: 293, - 6268: 293, - 6269: 293, - 6270: 293, - 6271: 293, - 6272: 293, - 6273: 293, - 6274: 293, - 6275: 293, - 6276: 293, - 6277: 293, - 6278: 293, - 6279: 293, - 6280: 293, - 6281: 293, - 6282: 293, - 6283: 293, - 6284: 293, - 6285: 293, - 6286: 293, - 6287: 293, - 6288: 293, - 6289: 293, - 6290: 293, - 6291: 293, - 6292: 293, - 6293: 293, - 6294: 293, - 6295: 293, - 6296: 293, - 6297: 293, - 6298: 293, - 6299: 293, - 6300: 293, - 6301: 293, - 6302: 293, - 6303: 293, - 6304: 293, - 6305: 293, - 6306: 293, - 6307: 293, - 6308: 293, - 6309: 293, - 6310: 293, - 6311: 293, - 6312: 293, - 6313: 293, - 6314: 293, - 6315: 293, - 6316: 293, - 6317: 293, - 6318: 293, - 6319: 293, - 6320: 293, - 6321: 293, - 6322: 293, - 6323: 293, - 6324: 293, - 6325: 293, - 6326: 293, - 6327: 293, - 6328: 293, - 6329: 293, - 6330: 293, - 6331: 293, - 6332: 293, - 6333: 293, - 6334: 293, - 6335: 293, - 6336: 293, - 6337: 293, - 6338: 293, - 6339: 293, - 6340: 293, - 6341: 293, - 6342: 293, - 6343: 293, - 6344: 293, - 6345: 293, - 6346: 293, - 6347: 293, - 6348: 293, - 6349: 293, - 6350: 293, - 6351: 293, - 6352: 293, - 6353: 293, - 6354: 293, - 6355: 293, - 6356: 293, - 6357: 293, - 6358: 293, - 6359: 293, - 6360: 293, - 6361: 293, - 6362: 293, - 6363: 293, - 6364: 293, - 6365: 293, - 6366: 293, - 6367: 293, - 6368: 293, - 6369: 293, - 6370: 293, - 6371: 293, - 6372: 293, - 6373: 293, - 6374: 293, - 6375: 293, - 6376: 293, - 6377: 293, - 6378: 293, - 6379: 293, - 6380: 293, - 6381: 293, - 6382: 293, - 6383: 293, - 6384: 293, - 6385: 293, - 6386: 293, - 6387: 293, - 6388: 293, - 6389: 293, - 6390: 293, - 6391: 293, - 6392: 293, - 6393: 293, - 6394: 293, - 6395: 293, - 6396: 293, - 6397: 293, - 6398: 293, - 6399: 293, - 6400: 293, - 6401: 293, - 6402: 293, - 6403: 293, - 6404: 293, - 6405: 293, - 6406: 293, - 6407: 293, - 6408: 293, - 6409: 293, - 6410: 293, - 6411: 293, - 6412: 293, - 6413: 293, - 6414: 293, - 6415: 293, - 6416: 293, - 6417: 293, - 6418: 293, - 6419: 293, - 6420: 293, - 6421: 293, - 6422: 293, - 6423: 293, - 6424: 293, - 6425: 293, - 6426: 293, - 6427: 293, - 6428: 293, - 6429: 293, - 6430: 293, - 6431: 293, - 6432: 293, - 6433: 293, - 6434: 293, - 6435: 293, - 6436: 293, - 6437: 293, - 6438: 293, - 6439: 293, - 6440: 293, - 6441: 293, - 6442: 293, - 6443: 293, - 6444: 293, - 6445: 293, - 6446: 293, - 6447: 293, - 6448: 293, - 6449: 293, - 6450: 293, - 6451: 293, - 6452: 293, - 6453: 293, - 6454: 293, - 6455: 293, - 6456: 293, - 6457: 293, - 6458: 293, - 6459: 293, - 6460: 293, - 6461: 293, - 6462: 293, - 6463: 293, - 6464: 293, - 6465: 293, - 6466: 293, - 6467: 293, - 6468: 293, - 6469: 293, - 6470: 293, - 6471: 293, - 6472: 293, - 6473: 293, - 6474: 293, - 6475: 293, - 6476: 293, - 6477: 293, - 6478: 293, - 6479: 293, - 6480: 293, - 6481: 293, - 6482: 293, - 6483: 293, - 6484: 293, - 6485: 293, - 6486: 293, - 6487: 293, - 6488: 293, - 6489: 293, - 6490: 293, - 6491: 293, - 6492: 293, - 6493: 293, - 6494: 293, - 6495: 293, - 6496: 293, - 6497: 293, - 6498: 293, - 6499: 293, - 6500: 293, - 6501: 293, - 6502: 293, - 6503: 293, - 6504: 293, - 6505: 293, - 6506: 293, - 6507: 293, - 6508: 293, - 6509: 293, - 6510: 293, - 6511: 294, - 6512: 295, - 6513: 296, - 6514: 297, - 6515: 298, - 6516: 299, - 6517: 300, - 6518: 301, - 6519: 302, - 6520: 303, - 6521: 304, - 6522: 305, - 6523: 306, - 6524: 307, - 6525: 308, - 6526: 309, - 6527: 310, - 6528: 311, - 6529: 312, - 6530: 313, - 6531: 314, - 6532: 315, - 6533: 316, - 6534: 317, - 6535: 318, - 6536: 319, - 6537: 319, - 6538: 319, - 6539: 319, - 6540: 319, - 6541: 319, - 6542: 319, - 6543: 319, - 6544: 320, - 6545: 320, - 6546: 320, - 6547: 320, - 6548: 320, - 6549: 320, - 6550: 320, - 6551: 320, - 6552: 321, - 6553: 321, - 6554: 321, - 6555: 321, - 6556: 321, - 6557: 321, - 6558: 321, - 6559: 321, - 6560: 321, - 6561: 321, - 6562: 321, - 6563: 321, - 6564: 321, - 6565: 321, - 6566: 321, - 6567: 321, - 6568: 321, - 6569: 321, - 6570: 321, - 6571: 321, - 6572: 321, - 6573: 321, - 6574: 321, - 6575: 321, - 6576: 322, - 6577: 322, - 6578: 322, - 6579: 322, - 6580: 322, - 6581: 322, - 6582: 322, - 6583: 322, - 6584: 322, - 6585: 322, - 6586: 322, - 6587: 322, - 6588: 322, - 6589: 322, - 6590: 322, - 6591: 322, - 6592: 322, - 6593: 322, - 6594: 322, - 6595: 322, - 6596: 322, - 6597: 322, - 6598: 322, - 6599: 322, - 6600: 323, - 6601: 323, - 6602: 323, - 6603: 323, - 6604: 323, - 6605: 323, - 6606: 323, - 6607: 323, - 6608: 323, - 6609: 323, - 6610: 323, - 6611: 323, - 6612: 323, - 6613: 323, - 6614: 323, - 6615: 323, - 6616: 323, - 6617: 323, - 6618: 323, - 6619: 323, - 6620: 323, - 6621: 323, - 6622: 323, - 6623: 323, - 6624: 324, - 6625: 324, - 6626: 324, - 6627: 324, - 6628: 324, - 6629: 324, - 6630: 324, - 6631: 324, - 6632: 324, - 6633: 324, - 6634: 324, - 6635: 324, - 6636: 324, - 6637: 324, - 6638: 324, - 6639: 324, - 6640: 324, - 6641: 324, - 6642: 324, - 6643: 324, - 6644: 324, - 6645: 324, - 6646: 324, - 6647: 324, - 6648: 325, - 6649: 325, - 6650: 325, - 6651: 325, - 6652: 325, - 6653: 325, - 6654: 325, - 6655: 325, - 6656: 325, - 6657: 325, - 6658: 325, - 6659: 325, - 6660: 325, - 6661: 325, - 6662: 325, - 6663: 325, - 6664: 325, - 6665: 325, - 6666: 325, - 6667: 325, - 6668: 325, - 6669: 325, - 6670: 325, - 6671: 325, - 6672: 326, - 6673: 326, - 6674: 326, - 6675: 326, - 6676: 326, - 6677: 326, - 6678: 326, - 6679: 326, - 6680: 326, - 6681: 326, - 6682: 326, - 6683: 326, - 6684: 326, - 6685: 326, - 6686: 326, - 6687: 326, - 6688: 326, - 6689: 326, - 6690: 326, - 6691: 326, - 6692: 326, - 6693: 326, - 6694: 326, - 6695: 326, - 6696: 327, - 6697: 327, - 6698: 327, - 6699: 327, - 6700: 327, - 6701: 327, - 6702: 327, - 6703: 327, - 6704: 327, - 6705: 327, - 6706: 327, - 6707: 327, - 6708: 327, - 6709: 327, - 6710: 327, - 6711: 327, - 6712: 328, - 6713: 328, - 6714: 328, - 6715: 328, - 6716: 329, - 6717: 329, - 6718: 329, - 6719: 329, - 6720: 329, - 6721: 329, - 6722: 329, - 6723: 329, - 6724: 329, - 6725: 329, - 6726: 329, - 6727: 329, - 6728: 329, - 6729: 329, - 6730: 329, - 6731: 329, - 6732: 330, - 6733: 330, - 6734: 330, - 6735: 330, - 6736: 331, - 6737: 331, - 6738: 331, - 6739: 331, - 6740: 331, - 6741: 331, - 6742: 331, - 6743: 331, - 6744: 331, - 6745: 331, - 6746: 331, - 6747: 331, - 6748: 331, - 6749: 331, - 6750: 331, - 6751: 331, - 6752: 332, - 6753: 332, - 6754: 332, - 6755: 332, - 6756: 333, - 6757: 333, - 6758: 333, - 6759: 333, - 6760: 333, - 6761: 333, - 6762: 333, - 6763: 333, - 6764: 333, - 6765: 333, - 6766: 333, - 6767: 333, - 6768: 333, - 6769: 333, - 6770: 333, - 6771: 333, - 6772: 334, - 6773: 334, - 6774: 334, - 6775: 334, - 6776: 335, - 6777: 335, - 6778: 335, - 6779: 335, - 6780: 335, - 6781: 335, - 6782: 335, - 6783: 335, - 6784: 335, - 6785: 335, - 6786: 335, - 6787: 335, - 6788: 335, - 6789: 335, - 6790: 335, - 6791: 335, - 6792: 336, - 6793: 336, - 6794: 336, - 6795: 336, - 6796: 337, - 6797: 337, - 6798: 337, - 6799: 337, - 6800: 337, - 6801: 337, - 6802: 337, - 6803: 337, - 6804: 337, - 6805: 337, - 6806: 337, - 6807: 337, - 6808: 337, - 6809: 337, - 6810: 337, - 6811: 337, - 6812: 338, - 6813: 338, - 6814: 338, - 6815: 338, - 6816: 339, - 6817: 339, - 6818: 339, - 6819: 339, - 6820: 340, - 6821: 340, - 6822: 340, - 6823: 340, - 6824: 341, - 6825: 341, - 6826: 341, - 6827: 341, - 6828: 342, - 6829: 342, - 6830: 342, - 6831: 342, - 6832: 342, - 6833: 342, - 6834: 342, - 6835: 342, - 6836: 342, - 6837: 342, - 6838: 342, - 6839: 342, - 6840: 342, - 6841: 342, - 6842: 342, - 6843: 342, - 6844: 342, - 6845: 342, - 6846: 342, - 6847: 342, - 6848: 342, - 6849: 342, - 6850: 342, - 6851: 342, - 6852: 343, - 6853: 343, - 6854: 343, - 6855: 343, - 6856: 343, - 6857: 343, - 6858: 343, - 6859: 343, - 6860: 343, - 6861: 343, - 6862: 343, - 6863: 343, - 6864: 343, - 6865: 343, - 6866: 343, - 6867: 343, - 6868: 344, - 6869: 344, - 6870: 344, - 6871: 344, - 6872: 344, - 6873: 344, - 6874: 344, - 6875: 344, - 6876: 344, - 6877: 344, - 6878: 344, - 6879: 344, - 6880: 344, - 6881: 344, - 6882: 344, - 6883: 344, - 6884: 345, - 6885: 345, - 6886: 345, - 6887: 345, - 6888: 345, - 6889: 345, - 6890: 345, - 6891: 345, - 6892: 345, - 6893: 345, - 6894: 345, - 6895: 345, - 6896: 345, - 6897: 345, - 6898: 345, - 6899: 345, - 6900: 346, - 6901: 346, - 6902: 346, - 6903: 346, - 6904: 346, - 6905: 346, - 6906: 346, - 6907: 346, - 6908: 346, - 6909: 346, - 6910: 346, - 6911: 346, - 6912: 346, - 6913: 346, - 6914: 346, - 6915: 346, - 6916: 346, - 6917: 346, - 6918: 346, - 6919: 346, - 6920: 346, - 6921: 346, - 6922: 346, - 6923: 346, - 6924: 346, - 6925: 346, - 6926: 346, - 6927: 346, - 6928: 346, - 6929: 346, - 6930: 346, - 6931: 346, - 6932: 347, - 6933: 348, - 6934: 349, - 6935: 349, - 6936: 349, - 6937: 349, - 6938: 349, - 6939: 349, - 6940: 349, - 6941: 349, - 6942: 349, - 6943: 349, - 6944: 350, - 6945: 351, - 6946: 352, - 6947: 352, - 6948: 352, - 6949: 353, - 6950: 353, - 6951: 353, - 6952: 353, - 6953: 353, - 6954: 353, - 6955: 353, - 6956: 353, - 6957: 353, - 6958: 353, - 6959: 353, - 6960: 353, - 6961: 353, - 6962: 353, - 6963: 353, - 6964: 353, - 6965: 353, - 6966: 353, - 6967: 353, - 6968: 353, - 6969: 353, - 6970: 353, - 6971: 353, - 6972: 353, - 6973: 353, - 6974: 353, - 6975: 353, - 6976: 353, - 6977: 353, - 6978: 353, - 6979: 353, - 6980: 353, - 6981: 353, - 6982: 353, - 6983: 353, - 6984: 353, - 6985: 353, - 6986: 353, - 6987: 353, - 6988: 353, - 6989: 353, - 6990: 353, - 6991: 353, - 6992: 353, - 6993: 353, - 6994: 353, - 6995: 353, - 6996: 353, - 6997: 353, - 6998: 353, - 6999: 353, - 7000: 353, - 7001: 353, - 7002: 353, - 7003: 353, - 7004: 353, - 7005: 353, - 7006: 353, - 7007: 353, - 7008: 353, - 7009: 353, - 7010: 353, - 7011: 353, - 7012: 353, - 7013: 353, - 7014: 353, - 7015: 353, - 7016: 353, - 7017: 353, - 7018: 353, - 7019: 353, - 7020: 353, - 7021: 353, - 7022: 353, - 7023: 353, - 7024: 353, - 7025: 353, - 7026: 353, - 7027: 353, - 7028: 353, - 7029: 354, - 7030: 354, - 7031: 354, - 7032: 354, - 7033: 354, - 7034: 354, - 7035: 354, - 7036: 354, - 7037: 354, - 7038: 354, - 7039: 354, - 7040: 354, - 7041: 354, - 7042: 354, - 7043: 354, - 7044: 354, - 7045: 354, - 7046: 354, - 7047: 354, - 7048: 354, - 7049: 354, - 7050: 354, - 7051: 354, - 7052: 354, - 7053: 355, - 7054: 355, - 7055: 355, - 7056: 355, - 7057: 355, - 7058: 355, - 7059: 355, - 7060: 355, - 7061: 355, - 7062: 355, - 7063: 355, - 7064: 355, - 7065: 356, - 7066: 357, - 7067: 358, - 7068: 359, - 7069: 360, - 7070: 361, - 7071: 362, - 7072: 363, - 7073: 364, - 7074: 365, - 7075: 366, - 7076: 367, - 7077: 368, - 7078: 369, - 7079: 370, - 7080: 371, - 7081: 372, - 7082: 372, - 7083: 372, - 7084: 372, - 7085: 372, - 7086: 372, - 7087: 372, - 7088: 372, - 7089: 372, - 7090: 372, - 7091: 372, - 7092: 372, - 7093: 372, - 7094: 372, - 7095: 372, - 7096: 372, - 7097: 372, - 7098: 372, - 7099: 372, - 7100: 372, - 7101: 372, - 7102: 372, - 7103: 372, - 7104: 372, - 7105: 372, - 7106: 372, - 7107: 372, - 7108: 372, - 7109: 372, - 7110: 372, - 7111: 372, - 7112: 372, - 7113: 373, - 7114: 373, - 7115: 373, - 7116: 373, - 7117: 373, - 7118: 373, - 7119: 373, - 7120: 373, - 7121: 373, - 7122: 373, - 7123: 373, - 7124: 373, - 7125: 373, - 7126: 373, - 7127: 373, - 7128: 373, - 7129: 373, - 7130: 373, - 7131: 373, - 7132: 373, - 7133: 373, - 7134: 373, - 7135: 373, - 7136: 373, - 7137: 373, - 7138: 373, - 7139: 373, - 7140: 373, - 7141: 373, - 7142: 373, - 7143: 373, - 7144: 373, - 7145: 374, - 7146: 374, - 7147: 374, - 7148: 374, - 7149: 374, - 7150: 374, - 7151: 374, - 7152: 374, - 7153: 374, - 7154: 374, - 7155: 374, - 7156: 374, - 7157: 374, - 7158: 374, - 7159: 374, - 7160: 374, - 7161: 374, - 7162: 374, - 7163: 374, - 7164: 374, - 7165: 374, - 7166: 374, - 7167: 374, - 7168: 374, - 7169: 374, - 7170: 374, - 7171: 374, - 7172: 374, - 7173: 374, - 7174: 374, - 7175: 374, - 7176: 374, - 7177: 375, - 7178: 375, - 7179: 375, - 7180: 375, - 7181: 375, - 7182: 375, - 7183: 375, - 7184: 375, - 7185: 375, - 7186: 375, - 7187: 375, - 7188: 375, - 7189: 375, - 7190: 375, - 7191: 375, - 7192: 375, - 7193: 375, - 7194: 375, - 7195: 375, - 7196: 375, - 7197: 375, - 7198: 375, - 7199: 375, - 7200: 375, - 7201: 375, - 7202: 375, - 7203: 375, - 7204: 375, - 7205: 375, - 7206: 375, - 7207: 375, - 7208: 375, - 7209: 376, - 7210: 376, - 7211: 376, - 7212: 376, - 7213: 376, - 7214: 376, - 7215: 376, - 7216: 376, - 7217: 376, - 7218: 376, - 7219: 376, - 7220: 376, - 7221: 376, - 7222: 376, - 7223: 376, - 7224: 376, - 7225: 376, - 7226: 376, - 7227: 376, - 7228: 376, - 7229: 376, - 7230: 376, - 7231: 376, - 7232: 376, - 7233: 376, - 7234: 376, - 7235: 376, - 7236: 376, - 7237: 376, - 7238: 376, - 7239: 376, - 7240: 376, - 7241: 377, - 7242: 377, - 7243: 377, - 7244: 377, - 7245: 377, - 7246: 377, - 7247: 377, - 7248: 377, - 7249: 377, - 7250: 377, - 7251: 377, - 7252: 377, - 7253: 377, - 7254: 377, - 7255: 377, - 7256: 377, - 7257: 377, - 7258: 377, - 7259: 377, - 7260: 377, - 7261: 377, - 7262: 377, - 7263: 377, - 7264: 377, - 7265: 377, - 7266: 377, - 7267: 377, - 7268: 377, - 7269: 377, - 7270: 377, - 7271: 377, - 7272: 377, - 7273: 378, - 7274: 378, - 7275: 378, - 7276: 378, - 7277: 378, - 7278: 378, - 7279: 378, - 7280: 378, - 7281: 378, - 7282: 378, - 7283: 378, - 7284: 378, - 7285: 378, - 7286: 378, - 7287: 378, - 7288: 378, - 7289: 378, - 7290: 378, - 7291: 378, - 7292: 378, - 7293: 378, - 7294: 378, - 7295: 378, - 7296: 378, - 7297: 378, - 7298: 378, - 7299: 378, - 7300: 378, - 7301: 378, - 7302: 378, - 7303: 378, - 7304: 378, - 7305: 379, - 7306: 379, - 7307: 379, - 7308: 379, - 7309: 379, - 7310: 379, - 7311: 379, - 7312: 379, - 7313: 379, - 7314: 379, - 7315: 379, - 7316: 379, - 7317: 379, - 7318: 379, - 7319: 379, - 7320: 379, - 7321: 379, - 7322: 379, - 7323: 379, - 7324: 379, - 7325: 379, - 7326: 379, - 7327: 379, - 7328: 379, - 7329: 379, - 7330: 379, - 7331: 379, - 7332: 379, - 7333: 379, - 7334: 379, - 7335: 379, - 7336: 379, - 7337: 380, - 7338: 380, - 7339: 380, - 7340: 380, - 7341: 380, - 7342: 380, - 7343: 380, - 7344: 380, - 7345: 380, - 7346: 380, - 7347: 380, - 7348: 380, - 7349: 380, - 7350: 380, - 7351: 380, - 7352: 380, - 7353: 380, - 7354: 380, - 7355: 380, - 7356: 380, - 7357: 380, - 7358: 380, - 7359: 380, - 7360: 380, - 7361: 380, - 7362: 380, - 7363: 380, - 7364: 380, - 7365: 380, - 7366: 380, - 7367: 380, - 7368: 380, - 7369: 381, - 7370: 381, - 7371: 381, - 7372: 381, - 7373: 381, - 7374: 381, - 7375: 381, - 7376: 381, - 7377: 381, - 7378: 381, - 7379: 381, - 7380: 381, - 7381: 381, - 7382: 381, - 7383: 381, - 7384: 381, - 7385: 381, - 7386: 381, - 7387: 381, - 7388: 381, - 7389: 381, - 7390: 381, - 7391: 381, - 7392: 381, - 7393: 381, - 7394: 381, - 7395: 381, - 7396: 381, - 7397: 381, - 7398: 381, - 7399: 381, - 7400: 381, - 7401: 382, - 7402: 382, - 7403: 382, - 7404: 382, - 7405: 382, - 7406: 382, - 7407: 382, - 7408: 382, - 7409: 382, - 7410: 382, - 7411: 382, - 7412: 382, - 7413: 382, - 7414: 382, - 7415: 382, - 7416: 382, - 7417: 382, - 7418: 382, - 7419: 382, - 7420: 382, - 7421: 382, - 7422: 382, - 7423: 382, - 7424: 382, - 7425: 382, - 7426: 382, - 7427: 382, - 7428: 382, - 7429: 382, - 7430: 382, - 7431: 382, - 7432: 382, - 7433: 383, - 7434: 383, - 7435: 383, - 7436: 383, - 7437: 383, - 7438: 383, - 7439: 383, - 7440: 383, - 7441: 383, - 7442: 383, - 7443: 383, - 7444: 383, - 7445: 383, - 7446: 383, - 7447: 383, - 7448: 383, - 7449: 383, - 7450: 383, - 7451: 383, - 7452: 383, - 7453: 383, - 7454: 383, - 7455: 383, - 7456: 383, - 7457: 383, - 7458: 383, - 7459: 383, - 7460: 383, - 7461: 383, - 7462: 383, - 7463: 383, - 7464: 383, - 7465: 384, - 7466: 384, - 7467: 384, - 7468: 384, - 7469: 384, - 7470: 384, - 7471: 384, - 7472: 384, - 7473: 384, - 7474: 384, - 7475: 384, - 7476: 384, - 7477: 384, - 7478: 384, - 7479: 384, - 7480: 384, - 7481: 384, - 7482: 384, - 7483: 384, - 7484: 384, - 7485: 384, - 7486: 384, - 7487: 384, - 7488: 384, - 7489: 384, - 7490: 384, - 7491: 384, - 7492: 384, - 7493: 384, - 7494: 384, - 7495: 384, - 7496: 384, - 7497: 385, - 7498: 385, - 7499: 385, - 7500: 385, - 7501: 385, - 7502: 385, - 7503: 385, - 7504: 385, - 7505: 385, - 7506: 385, - 7507: 385, - 7508: 385, - 7509: 385, - 7510: 385, - 7511: 385, - 7512: 385, - 7513: 385, - 7514: 385, - 7515: 385, - 7516: 385, - 7517: 385, - 7518: 385, - 7519: 385, - 7520: 385, - 7521: 385, - 7522: 385, - 7523: 385, - 7524: 385, - 7525: 385, - 7526: 385, - 7527: 385, - 7528: 385, - 7529: 386, - 7530: 386, - 7531: 386, - 7532: 386, - 7533: 386, - 7534: 386, - 7535: 386, - 7536: 386, - 7537: 386, - 7538: 386, - 7539: 386, - 7540: 386, - 7541: 386, - 7542: 386, - 7543: 386, - 7544: 386, - 7545: 386, - 7546: 386, - 7547: 386, - 7548: 386, - 7549: 386, - 7550: 386, - 7551: 386, - 7552: 386, - 7553: 386, - 7554: 386, - 7555: 386, - 7556: 386, - 7557: 386, - 7558: 386, - 7559: 386, - 7560: 386, - 7561: 387, - 7562: 387, - 7563: 387, - 7564: 387, - 7565: 387, - 7566: 387, - 7567: 387, - 7568: 387, - 7569: 387, - 7570: 387, - 7571: 387, - 7572: 387, - 7573: 387, - 7574: 387, - 7575: 387, - 7576: 387, - 7577: 387, - 7578: 387, - 7579: 387, - 7580: 387, - 7581: 387, - 7582: 387, - 7583: 387, - 7584: 387, - 7585: 387, - 7586: 387, - 7587: 387, - 7588: 387, - 7589: 387, - 7590: 387, - 7591: 387, - 7592: 387, - 7593: 388, - 7594: 388, - 7595: 388, - 7596: 388, - 7597: 388, - 7598: 388, - 7599: 388, - 7600: 388, - 7601: 388, - 7602: 388, - 7603: 388, - 7604: 388, - 7605: 388, - 7606: 388, - 7607: 388, - 7608: 388, - 7609: 388, - 7610: 388, - 7611: 388, - 7612: 388, - 7613: 388, - 7614: 388, - 7615: 388, - 7616: 388, - 7617: 388, - 7618: 388, - 7619: 388, - 7620: 388, - 7621: 388, - 7622: 388, - 7623: 388, - 7624: 388, - 7625: 388, - 7626: 388, - 7627: 388, - 7628: 388, - 7629: 388, - 7630: 388, - 7631: 388, - 7632: 388, - 7633: 388, - 7634: 388, - 7635: 388, - 7636: 388, - 7637: 388, - 7638: 388, - 7639: 388, - 7640: 388, - 7641: 388, - 7642: 388, - 7643: 388, - 7644: 388, - 7645: 388, - 7646: 388, - 7647: 388, - 7648: 388, - 7649: 388, - 7650: 388, - 7651: 388, - 7652: 388, - 7653: 388, - 7654: 388, - 7655: 388, - 7656: 388, - 7657: 388, - 7658: 388, - 7659: 388, - 7660: 388, - 7661: 388, - 7662: 388, - 7663: 388, - 7664: 388, - 7665: 388, - 7666: 388, - 7667: 388, - 7668: 388, - 7669: 388, - 7670: 388, - 7671: 388, - 7672: 388, - 7673: 389, - 7674: 389, - 7675: 389, - 7676: 389, - 7677: 389, - 7678: 389, - 7679: 389, - 7680: 389, - 7681: 389, - 7682: 389, - 7683: 389, - 7684: 389, - 7685: 389, - 7686: 389, - 7687: 389, - 7688: 389, - 7689: 389, - 7690: 389, - 7691: 389, - 7692: 389, - 7693: 389, - 7694: 389, - 7695: 389, - 7696: 389, - 7697: 389, - 7698: 389, - 7699: 389, - 7700: 389, - 7701: 389, - 7702: 389, - 7703: 389, - 7704: 389, - 7705: 389, - 7706: 389, - 7707: 389, - 7708: 389, - 7709: 389, - 7710: 389, - 7711: 389, - 7712: 389, - 7713: 389, - 7714: 389, - 7715: 389, - 7716: 389, - 7717: 389, - 7718: 389, - 7719: 389, - 7720: 389, - 7721: 389, - 7722: 389, - 7723: 389, - 7724: 389, - 7725: 389, - 7726: 389, - 7727: 389, - 7728: 389, - 7729: 389, - 7730: 389, - 7731: 389, - 7732: 389, - 7733: 389, - 7734: 389, - 7735: 389, - 7736: 389, - 7737: 389, - 7738: 389, - 7739: 389, - 7740: 389, - 7741: 389, - 7742: 389, - 7743: 389, - 7744: 389, - 7745: 389, - 7746: 389, - 7747: 389, - 7748: 389, - 7749: 389, - 7750: 389, - 7751: 389, - 7752: 389, - 7753: 390, - 7754: 391, - 7755: 392, - 7756: 392, - 7757: 392, - 7758: 392, - 7759: 392, - 7760: 392, - 7761: 392, - 7762: 392, - 7763: 392, - 7764: 392, - 7765: 392, - 7766: 392, - 7767: 392, - 7768: 392, - 7769: 392, - 7770: 392, - 7771: 392, - 7772: 392, - 7773: 392, - 7774: 392, - 7775: 392, - 7776: 392, - 7777: 392, - 7778: 392, - 7779: 392, - 7780: 392, - 7781: 392, - 7782: 392, - 7783: 392, - 7784: 392, - 7785: 392, - 7786: 392, - 7787: 393, - 7788: 393, - 7789: 393, - 7790: 393, - 7791: 393, - 7792: 393, - 7793: 393, - 7794: 393, - 7795: 393, - 7796: 393, - 7797: 393, - 7798: 393, - 7799: 393, - 7800: 393, - 7801: 393, - 7802: 393, - 7803: 393, - 7804: 393, - 7805: 393, - 7806: 393, - 7807: 393, - 7808: 393, - 7809: 393, - 7810: 393, - 7811: 393, - 7812: 393, - 7813: 393, - 7814: 393, - 7815: 393, - 7816: 393, - 7817: 393, - 7818: 393, - 7819: 393, - 7820: 393, - 7821: 393, - 7822: 393, - 7823: 393, - 7824: 393, - 7825: 393, - 7826: 393, - 7827: 393, - 7828: 393, - 7829: 393, - 7830: 393, - 7831: 393, - 7832: 393, - 7833: 393, - 7834: 393, - 7835: 393, - 7836: 393, - 7837: 393, - 7838: 393, - 7839: 393, - 7840: 393, - 7841: 393, - 7842: 393, - 7843: 393, - 7844: 393, - 7845: 393, - 7846: 393, - 7847: 393, - 7848: 393, - 7849: 393, - 7850: 393, - 7851: 394, - 7852: 395, - 7853: 396, - 7854: 397, - 7855: 397, - 7856: 397, - 7857: 397, - 7858: 397, - 7859: 397, - 7860: 397, - 7861: 397, - 7862: 397, - 7863: 397, - 7864: 397, - 7865: 397, - 7866: 397, - 7867: 397, - 7868: 397, - 7869: 397, - 7870: 397, - 7871: 397, - 7872: 397, - 7873: 397, - 7874: 397, - 7875: 397, - 7876: 397, - 7877: 397, - 7878: 397, - 7879: 397, - 7880: 397, - 7881: 397, - 7882: 397, - 7883: 397, - 7884: 397, - 7885: 397, - 7886: 397, - 7887: 397, - 7888: 397, - 7889: 397, - 7890: 397, - 7891: 397, - 7892: 397, - 7893: 397, - 7894: 397, - 7895: 397, - 7896: 397, - 7897: 397, - 7898: 397, - 7899: 397, - 7900: 397, - 7901: 397, - 7902: 397, - 7903: 397, - 7904: 397, - 7905: 397, - 7906: 397, - 7907: 397, - 7908: 397, - 7909: 397, - 7910: 397, - 7911: 397, - 7912: 397, - 7913: 397, - 7914: 397, - 7915: 397, - 7916: 397, - 7917: 397, - 7918: 397, - 7919: 397, - 7920: 397, - 7921: 397, - 7922: 397, - 7923: 397, - 7924: 397, - 7925: 397, - 7926: 397, - 7927: 397, - 7928: 397, - 7929: 397, - 7930: 397, - 7931: 397, - 7932: 397, - 7933: 397, - 7934: 398, - 7935: 398, - 7936: 398, - 7937: 398, - 7938: 398, - 7939: 398, - 7940: 398, - 7941: 398, - 7942: 398, - 7943: 398, - 7944: 398, - 7945: 398, - 7946: 398, - 7947: 398, - 7948: 398, - 7949: 398, - 7950: 398, - 7951: 398, - 7952: 398, - 7953: 398, - 7954: 398, - 7955: 398, - 7956: 398, - 7957: 398, - 7958: 398, - 7959: 398, - 7960: 398, - 7961: 398, - 7962: 398, - 7963: 398, - 7964: 398, - 7965: 398, - 7966: 398, - 7967: 398, - 7968: 398, - 7969: 398, - 7970: 398, - 7971: 398, - 7972: 398, - 7973: 398, - 7974: 398, - 7975: 398, - 7976: 398, - 7977: 398, - 7978: 398, - 7979: 398, - 7980: 398, - 7981: 398, - 7982: 398, - 7983: 398, - 7984: 398, - 7985: 398, - 7986: 398, - 7987: 398, - 7988: 398, - 7989: 398, - 7990: 398, - 7991: 398, - 7992: 398, - 7993: 398, - 7994: 398, - 7995: 398, - 7996: 398, - 7997: 398, - 7998: 398, - 7999: 398, - 8000: 398, - 8001: 398, - 8002: 398, - 8003: 398, - 8004: 398, - 8005: 398, - 8006: 398, - 8007: 398, - 8008: 398, - 8009: 398, - 8010: 398, - 8011: 398, - 8012: 398, - 8013: 398, - 8014: 399, - 8015: 399, - 8016: 399, - 8017: 399, - 8018: 399, - 8019: 399, - 8020: 399, - 8021: 399, - 8022: 399, - 8023: 399, - 8024: 399, - 8025: 399, - 8026: 399, - 8027: 399, - 8028: 399, - 8029: 399, - 8030: 399, - 8031: 399, - 8032: 399, - 8033: 399, - 8034: 399, - 8035: 399, - 8036: 399, - 8037: 399, - 8038: 399, - 8039: 399, - 8040: 399, - 8041: 399, - 8042: 399, - 8043: 399, - 8044: 399, - 8045: 399, - 8046: 399, - 8047: 399, - 8048: 399, - 8049: 399, - 8050: 399, - 8051: 399, - 8052: 399, - 8053: 399, - 8054: 399, - 8055: 399, - 8056: 399, - 8057: 399, - 8058: 399, - 8059: 399, - 8060: 399, - 8061: 399, - 8062: 399, - 8063: 399, - 8064: 399, - 8065: 399, - 8066: 399, - 8067: 399, - 8068: 399, - 8069: 399, - 8070: 399, - 8071: 399, - 8072: 399, - 8073: 399, - 8074: 399, - 8075: 399, - 8076: 399, - 8077: 399, - 8078: 399, - 8079: 399, - 8080: 399, - 8081: 399, - 8082: 399, - 8083: 399, - 8084: 399, - 8085: 399, - 8086: 399, - 8087: 399, - 8088: 399, - 8089: 399, - 8090: 399, - 8091: 399, - 8092: 399, - 8093: 399, - 8094: 400, - 8095: 400, - 8096: 400, - 8097: 400, - 8098: 400, - 8099: 400, - 8100: 401, - 8101: 401, - 8102: 401, - 8103: 401, - 8104: 401, - 8105: 401, - 8106: 402, - 8107: 402, - 8108: 402, - 8109: 402, - 8110: 402, - 8111: 402, - 8112: 403, - 8113: 404, - 8114: 404, - 8115: 404, - 8116: 405, - 8117: 406, - 8118: 407, - 8119: 408, - 8120: 409, - 8121: 410, - 8122: 411, - 8123: 412, - 8124: 413, - 8125: 414, - 8126: 415, - 8127: 416, - 8128: 417, - 8129: 418, - 8130: 419, - 8131: 420, - 8132: 421, - 8133: 422, - 8134: 423, - 8135: 424, - 8136: 424, - 8137: 425, - 8138: 425, - 8139: 426, - 8140: 426, - 8141: 427, - 8142: 427, - 8143: 428, - 8144: 428, - 8145: 429, - 8146: 429, - 8147: 430, - 8148: 430, - 8149: 430, - 8150: 430, - 8151: 430, - 8152: 430, - 8153: 430, - 8154: 430, - 8155: 430, - 8156: 430, - 8157: 430, - 8158: 430, - 8159: 430, - 8160: 430, - 8161: 430, - 8162: 430, - 8163: 431, - 8164: 431, - 8165: 431, - 8166: 431, - 8167: 431, - 8168: 431, - 8169: 431, - 8170: 431, - 8171: 431, - 8172: 431, - 8173: 431, - 8174: 431, - 8175: 431, - 8176: 431, - 8177: 431, - 8178: 431, - 8179: 432, - 8180: 432, - 8181: 432, - 8182: 432, - 8183: 432, - 8184: 432, - 8185: 432, - 8186: 432, - 8187: 432, - 8188: 432, - 8189: 432, - 8190: 432, - 8191: 432, - 8192: 432, - 8193: 432, - 8194: 432, - 8195: 433, - 8196: 433, - 8197: 433, - 8198: 433, - 8199: 433, - 8200: 433, - 8201: 433, - 8202: 433, - 8203: 433, - 8204: 433, - 8205: 433, - 8206: 433, - 8207: 433, - 8208: 433, - 8209: 433, - 8210: 433, - 8211: 434, - 8212: 434, - 8213: 434, - 8214: 434, - 8215: 434, - 8216: 434, - 8217: 434, - 8218: 434, - 8219: 434, - 8220: 434, - 8221: 434, - 8222: 434, - 8223: 434, - 8224: 434, - 8225: 434, - 8226: 434, - 8227: 435, - 8228: 435, - 8229: 435, - 8230: 435, - 8231: 435, - 8232: 435, - 8233: 435, - 8234: 435, - 8235: 435, - 8236: 435, - 8237: 435, - 8238: 435, - 8239: 435, - 8240: 435, - 8241: 435, - 8242: 435, - 8243: 436, - 8244: 436, - 8245: 436, - 8246: 436, - 8247: 436, - 8248: 436, - 8249: 436, - 8250: 436, - 8251: 436, - 8252: 436, - 8253: 436, - 8254: 436, - 8255: 436, - 8256: 436, - 8257: 436, - 8258: 436, - 8259: 437, - 8260: 437, - 8261: 437, - 8262: 437, - 8263: 437, - 8264: 437, - 8265: 437, - 8266: 437, - 8267: 437, - 8268: 437, - 8269: 437, - 8270: 437, - 8271: 437, - 8272: 437, - 8273: 437, - 8274: 437, - 8275: 438, - 8276: 438, - 8277: 438, - 8278: 438, - 8279: 438, - 8280: 438, - 8281: 438, - 8282: 438, - 8283: 438, - 8284: 438, - 8285: 438, - 8286: 438, - 8287: 438, - 8288: 438, - 8289: 438, - 8290: 438, - 8291: 439, - 8292: 439, - 8293: 439, - 8294: 439, - 8295: 439, - 8296: 439, - 8297: 439, - 8298: 439, - 8299: 439, - 8300: 439, - 8301: 439, - 8302: 439, - 8303: 439, - 8304: 439, - 8305: 439, - 8306: 439, - 8307: 440, - 8308: 440, - 8309: 440, - 8310: 440, - 8311: 440, - 8312: 440, - 8313: 440, - 8314: 440, - 8315: 440, - 8316: 440, - 8317: 440, - 8318: 440, - 8319: 440, - 8320: 440, - 8321: 440, - 8322: 440, - 8323: 441, - 8324: 441, - 8325: 441, - 8326: 441, - 8327: 441, - 8328: 441, - 8329: 441, - 8330: 441, - 8331: 441, - 8332: 441, - 8333: 441, - 8334: 441, - 8335: 441, - 8336: 441, - 8337: 441, - 8338: 441, - 8339: 442, - 8340: 442, - 8341: 442, - 8342: 442, - 8343: 442, - 8344: 442, - 8345: 442, - 8346: 442, - 8347: 442, - 8348: 442, - 8349: 442, - 8350: 442, - 8351: 442, - 8352: 442, - 8353: 442, - 8354: 442, - 8355: 443, - 8356: 443, - 8357: 443, - 8358: 443, - 8359: 443, - 8360: 443, - 8361: 443, - 8362: 443, - 8363: 443, - 8364: 443, - 8365: 443, - 8366: 443, - 8367: 443, - 8368: 443, - 8369: 443, - 8370: 443, - 8371: 444, - 8372: 444, - 8373: 444, - 8374: 444, - 8375: 444, - 8376: 444, - 8377: 444, - 8378: 444, - 8379: 444, - 8380: 444, - 8381: 444, - 8382: 444, - 8383: 444, - 8384: 444, - 8385: 444, - 8386: 444, - 8387: 445, - 8388: 445, - 8389: 445, - 8390: 445, - 8391: 445, - 8392: 445, - 8393: 445, - 8394: 445, - 8395: 445, - 8396: 445, - 8397: 445, - 8398: 445, - 8399: 445, - 8400: 445, - 8401: 445, - 8402: 445, - 8403: 446, - 8404: 446, - 8405: 446, - 8406: 446, - 8407: 447, - 8408: 447, - 8409: 447, - 8410: 447, - 8411: 448, - 8412: 448, - 8413: 448, - 8414: 448, - 8415: 449, - 8416: 449, - 8417: 449, - 8418: 449, - 8419: 450, - 8420: 450, - 8421: 450, - 8422: 450, - 8423: 451, - 8424: 451, - 8425: 451, - 8426: 451, - 8427: 452, - 8428: 452, - 8429: 452, - 8430: 452, - 8431: 453, - 8432: 453, - 8433: 453, - 8434: 453, - 8435: 454, - 8436: 454, - 8437: 454, - 8438: 454, - 8439: 455, - 8440: 455, - 8441: 455, - 8442: 455, - 8443: 456, - 8444: 456, - 8445: 456, - 8446: 456, - 8447: 457, - 8448: 457, - 8449: 457, - 8450: 457, - 8451: 458, - 8452: 458, - 8453: 458, - 8454: 458, - 8455: 459, - 8456: 459, - 8457: 459, - 8458: 459, - 8459: 460, - 8460: 460, - 8461: 460, - 8462: 460, - 8463: 461, - 8464: 461, - 8465: 461, - 8466: 461, - 8467: 462, - 8468: 463, - 8469: 464, - 8470: 465, - 8471: 465, - 8472: 465, - 8473: 465, - 8474: 465, - 8475: 465, - 8476: 465, - 8477: 465, - 8478: 465, - 8479: 465, - 8480: 465, - 8481: 465, - 8482: 465, - 8483: 465, - 8484: 465, - 8485: 465, - 8486: 465, - 8487: 465, - 8488: 465, - 8489: 465, - 8490: 465, - 8491: 465, - 8492: 465, - 8493: 465, - 8494: 465, - 8495: 465, - 8496: 465, - 8497: 465, - 8498: 465, - 8499: 465, - 8500: 465, - 8501: 465, - 8502: 465, - 8503: 465, - 8504: 465, - 8505: 465, - 8506: 465, - 8507: 465, - 8508: 465, - 8509: 465, - 8510: 465, - 8511: 465, - 8512: 465, - 8513: 465, - 8514: 465, - 8515: 465, - 8516: 465, - 8517: 465, - 8518: 465, - 8519: 465, - 8520: 465, - 8521: 465, - 8522: 465, - 8523: 465, - 8524: 465, - 8525: 465, - 8526: 465, - 8527: 465, - 8528: 465, - 8529: 465, - 8530: 465, - 8531: 465, - 8532: 465, - 8533: 465, - 8534: 465, - 8535: 465, - 8536: 465, - 8537: 465, - 8538: 465, - 8539: 465, - 8540: 465, - 8541: 465, - 8542: 465, - 8543: 465, - 8544: 465, - 8545: 465, - 8546: 465, - 8547: 465, - 8548: 465, - 8549: 465, - 8550: 466, - 8551: 466, - 8552: 466, - 8553: 466, - 8554: 466, - 8555: 466, - 8556: 467, - 8557: 467, - 8558: 467, - 8559: 467, - 8560: 467, - 8561: 467, - 8562: 468, - 8563: 468, - 8564: 468, - 8565: 468, - 8566: 468, - 8567: 468, - 8568: 469, - 8569: 469, - 8570: 469, - 8571: 469, - 8572: 469, - 8573: 469, - 8574: 470, - 8575: 470, - 8576: 470, - 8577: 470, - 8578: 470, - 8579: 470, - 8580: 471, - 8581: 471, - 8582: 471, - 8583: 471, - 8584: 471, - 8585: 471, - 8586: 472, - 8587: 472, - 8588: 472, - 8589: 472, - 8590: 472, - 8591: 472, - 8592: 473, - 8593: 473, - 8594: 473, - 8595: 473, - 8596: 473, - 8597: 473, - 8598: 474, - 8599: 474, - 8600: 474, - 8601: 474, - 8602: 474, - 8603: 474, - 8604: 475, - 8605: 475, - 8606: 475, - 8607: 475, - 8608: 475, - 8609: 475, - 8610: 476, - 8611: 476, - 8612: 476, - 8613: 476, - 8614: 476, - 8615: 476, - 8616: 477, - 8617: 477, - 8618: 477, - 8619: 477, - 8620: 477, - 8621: 477, - 8622: 478, - 8623: 478, - 8624: 478, - 8625: 478, - 8626: 478, - 8627: 478, - 8628: 479, - 8629: 479, - 8630: 479, - 8631: 479, - 8632: 479, - 8633: 479, - 8634: 480, - 8635: 480, - 8636: 480, - 8637: 480, - 8638: 480, - 8639: 480, - 8640: 481, - 8641: 481, - 8642: 481, - 8643: 481, - 8644: 481, - 8645: 481, - 8646: 482, - 8647: 482, - 8648: 482, - 8649: 482, - 8650: 482, - 8651: 482, - 8652: 483, - 8653: 483, - 8654: 483, - 8655: 483, - 8656: 483, - 8657: 483, - 8658: 484, - 8659: 484, - 8660: 484, - 8661: 484, - 8662: 484, - 8663: 484, - 8664: 485, - 8665: 486, - 8666: 487, - 8667: 488, - 8668: 489, - 8669: 489, - 8670: 489, - 8671: 489, - 8672: 489, - 8673: 489, - 8674: 489, - 8675: 489, - 8676: 489, - 8677: 489, - 8678: 489, - 8679: 489, - 8680: 489, - 8681: 489, - 8682: 489, - 8683: 489, - 8684: 489, - 8685: 489, - 8686: 489, - 8687: 489, - 8688: 489, - 8689: 489, - 8690: 489, - 8691: 489, - 8692: 489, - 8693: 489, - 8694: 489, - 8695: 489, - 8696: 489, - 8697: 489, - 8698: 489, - 8699: 489, - 8700: 490, - 8701: 490, - 8702: 490, - 8703: 490, - 8704: 490, - 8705: 490, - 8706: 490, - 8707: 490, - 8708: 490, - 8709: 490, - 8710: 490, - 8711: 490, - 8712: 490, - 8713: 490, - 8714: 490, - 8715: 490, - 8716: 490, - 8717: 490, - 8718: 490, - 8719: 490, - 8720: 490, - 8721: 490, - 8722: 490, - 8723: 490, - 8724: 490, - 8725: 490, - 8726: 490, - 8727: 490, - 8728: 490, - 8729: 490, - 8730: 490, - 8731: 490, - 8732: 491, - 8733: 491, - 8734: 491, - 8735: 491, - 8736: 491, - 8737: 491, - 8738: 491, - 8739: 491, - 8740: 491, - 8741: 491, - 8742: 491, - 8743: 491, - 8744: 491, - 8745: 491, - 8746: 491, - 8747: 491, - 8748: 491, - 8749: 491, - 8750: 491, - 8751: 491, - 8752: 491, - 8753: 491, - 8754: 491, - 8755: 491, - 8756: 491, - 8757: 491, - 8758: 491, - 8759: 491, - 8760: 491, - 8761: 491, - 8762: 491, - 8763: 491, - 8764: 492, - 8765: 492, - 8766: 492, - 8767: 492, - 8768: 492, - 8769: 492, - 8770: 492, - 8771: 492, - 8772: 492, - 8773: 492, - 8774: 492, - 8775: 492, - 8776: 492, - 8777: 492, - 8778: 492, - 8779: 492, - 8780: 492, - 8781: 492, - 8782: 492, - 8783: 492, - 8784: 492, - 8785: 492, - 8786: 492, - 8787: 492, - 8788: 492, - 8789: 492, - 8790: 492, - 8791: 492, - 8792: 492, - 8793: 492, - 8794: 492, - 8795: 492, - 8796: 493, - 8797: 493, - 8798: 493, - 8799: 493, - 8800: 493, - 8801: 493, - 8802: 493, - 8803: 493, - 8804: 493, - 8805: 493, - 8806: 493, - 8807: 493, - 8808: 493, - 8809: 493, - 8810: 493, - 8811: 493, - 8812: 493, - 8813: 493, - 8814: 493, - 8815: 493, - 8816: 493, - 8817: 493, - 8818: 493, - 8819: 493, - 8820: 493, - 8821: 493, - 8822: 493, - 8823: 493, - 8824: 493, - 8825: 493, - 8826: 493, - 8827: 493, - 8828: 494, - 8829: 494, - 8830: 494, - 8831: 494, - 8832: 494, - 8833: 494, - 8834: 494, - 8835: 494, - 8836: 494, - 8837: 494, - 8838: 494, - 8839: 494, - 8840: 494, - 8841: 494, - 8842: 494, - 8843: 494, - 8844: 494, - 8845: 494, - 8846: 494, - 8847: 494, - 8848: 494, - 8849: 494, - 8850: 494, - 8851: 494, - 8852: 494, - 8853: 494, - 8854: 494, - 8855: 494, - 8856: 494, - 8857: 494, - 8858: 494, - 8859: 494, - 8860: 495, - 8861: 495, - 8862: 495, - 8863: 495, - 8864: 495, - 8865: 495, - 8866: 495, - 8867: 495, - 8868: 495, - 8869: 495, - 8870: 495, - 8871: 495, - 8872: 495, - 8873: 495, - 8874: 495, - 8875: 495, - 8876: 495, - 8877: 495, - 8878: 495, - 8879: 495, - 8880: 495, - 8881: 495, - 8882: 495, - 8883: 495, - 8884: 495, - 8885: 495, - 8886: 495, - 8887: 495, - 8888: 495, - 8889: 495, - 8890: 495, - 8891: 495, - 8892: 496, - 8893: 496, - 8894: 496, - 8895: 496, - 8896: 496, - 8897: 496, - 8898: 496, - 8899: 496, - 8900: 496, - 8901: 496, - 8902: 496, - 8903: 496, - 8904: 496, - 8905: 496, - 8906: 496, - 8907: 496, - 8908: 496, - 8909: 496, - 8910: 496, - 8911: 496, - 8912: 496, - 8913: 496, - 8914: 496, - 8915: 496, - 8916: 496, - 8917: 496, - 8918: 496, - 8919: 496, - 8920: 496, - 8921: 496, - 8922: 496, - 8923: 496, - 8924: 497, - 8925: 497, - 8926: 497, - 8927: 497, - 8928: 497, - 8929: 497, - 8930: 497, - 8931: 497, - 8932: 497, - 8933: 497, - 8934: 497, - 8935: 497, - 8936: 497, - 8937: 497, - 8938: 497, - 8939: 497, - 8940: 497, - 8941: 497, - 8942: 497, - 8943: 497, - 8944: 497, - 8945: 497, - 8946: 497, - 8947: 497, - 8948: 497, - 8949: 497, - 8950: 497, - 8951: 497, - 8952: 497, - 8953: 497, - 8954: 497, - 8955: 497, - 8956: 498, - 8957: 498, - 8958: 498, - 8959: 498, - 8960: 498, - 8961: 498, - 8962: 498, - 8963: 498, - 8964: 498, - 8965: 498, - 8966: 498, - 8967: 498, - 8968: 498, - 8969: 498, - 8970: 498, - 8971: 498, - 8972: 498, - 8973: 498, - 8974: 498, - 8975: 498, - 8976: 498, - 8977: 498, - 8978: 498, - 8979: 498, - 8980: 498, - 8981: 498, - 8982: 498, - 8983: 498, - 8984: 498, - 8985: 498, - 8986: 498, - 8987: 498, - 8988: 499, - 8989: 499, - 8990: 499, - 8991: 499, - 8992: 499, - 8993: 499, - 8994: 499, - 8995: 499, - 8996: 499, - 8997: 499, - 8998: 499, - 8999: 499, - 9000: 499, - 9001: 499, - 9002: 499, - 9003: 499, - 9004: 499, - 9005: 499, - 9006: 499, - 9007: 499, - 9008: 499, - 9009: 499, - 9010: 499, - 9011: 499, - 9012: 499, - 9013: 499, - 9014: 499, - 9015: 499, - 9016: 499, - 9017: 499, - 9018: 499, - 9019: 499, - 9020: 499, - 9021: 499, - 9022: 499, - 9023: 499, - 9024: 499, - 9025: 499, - 9026: 499, - 9027: 499, - 9028: 499, - 9029: 499, - 9030: 499, - 9031: 499, - 9032: 499, - 9033: 499, - 9034: 499, - 9035: 499, - 9036: 499, - 9037: 499, - 9038: 499, - 9039: 499, - 9040: 499, - 9041: 499, - 9042: 499, - 9043: 499, - 9044: 499, - 9045: 499, - 9046: 499, - 9047: 499, - 9048: 499, - 9049: 499, - 9050: 499, - 9051: 499, - 9052: 500, - 9053: 500, - 9054: 500, - 9055: 500, - 9056: 500, - 9057: 500, - 9058: 500, - 9059: 500, - 9060: 500, - 9061: 500, - 9062: 500, - 9063: 500, - 9064: 500, - 9065: 500, - 9066: 500, - 9067: 500, - 9068: 500, - 9069: 500, - 9070: 500, - 9071: 500, - 9072: 500, - 9073: 500, - 9074: 500, - 9075: 500, - 9076: 500, - 9077: 500, - 9078: 500, - 9079: 500, - 9080: 500, - 9081: 500, - 9082: 500, - 9083: 500, - 9084: 500, - 9085: 500, - 9086: 500, - 9087: 500, - 9088: 500, - 9089: 500, - 9090: 500, - 9091: 500, - 9092: 500, - 9093: 500, - 9094: 500, - 9095: 500, - 9096: 500, - 9097: 500, - 9098: 500, - 9099: 500, - 9100: 500, - 9101: 500, - 9102: 500, - 9103: 500, - 9104: 500, - 9105: 500, - 9106: 500, - 9107: 500, - 9108: 500, - 9109: 500, - 9110: 500, - 9111: 500, - 9112: 500, - 9113: 500, - 9114: 500, - 9115: 500, - 9116: 501, - 9117: 501, - 9118: 501, - 9119: 501, - 9120: 501, - 9121: 501, - 9122: 501, - 9123: 501, - 9124: 501, - 9125: 501, - 9126: 501, - 9127: 501, - 9128: 501, - 9129: 501, - 9130: 501, - 9131: 501, - 9132: 501, - 9133: 501, - 9134: 501, - 9135: 501, - 9136: 501, - 9137: 501, - 9138: 501, - 9139: 501, - 9140: 501, - 9141: 501, - 9142: 501, - 9143: 501, - 9144: 501, - 9145: 501, - 9146: 501, - 9147: 501, - 9148: 501, - 9149: 501, - 9150: 501, - 9151: 501, - 9152: 501, - 9153: 501, - 9154: 501, - 9155: 501, - 9156: 501, - 9157: 501, - 9158: 501, - 9159: 501, - 9160: 501, - 9161: 501, - 9162: 501, - 9163: 501, - 9164: 501, - 9165: 501, - 9166: 501, - 9167: 501, - 9168: 501, - 9169: 501, - 9170: 501, - 9171: 501, - 9172: 501, - 9173: 501, - 9174: 501, - 9175: 501, - 9176: 501, - 9177: 501, - 9178: 501, - 9179: 501, - 9180: 502, - 9181: 502, - 9182: 502, - 9183: 502, - 9184: 502, - 9185: 502, - 9186: 502, - 9187: 502, - 9188: 502, - 9189: 502, - 9190: 502, - 9191: 502, - 9192: 502, - 9193: 502, - 9194: 502, - 9195: 502, - 9196: 502, - 9197: 502, - 9198: 502, - 9199: 502, - 9200: 502, - 9201: 502, - 9202: 502, - 9203: 502, - 9204: 502, - 9205: 502, - 9206: 502, - 9207: 502, - 9208: 502, - 9209: 502, - 9210: 502, - 9211: 502, - 9212: 502, - 9213: 502, - 9214: 502, - 9215: 502, - 9216: 502, - 9217: 502, - 9218: 502, - 9219: 502, - 9220: 502, - 9221: 502, - 9222: 502, - 9223: 502, - 9224: 502, - 9225: 502, - 9226: 502, - 9227: 502, - 9228: 502, - 9229: 502, - 9230: 502, - 9231: 502, - 9232: 502, - 9233: 502, - 9234: 502, - 9235: 502, - 9236: 502, - 9237: 502, - 9238: 502, - 9239: 502, - 9240: 502, - 9241: 502, - 9242: 502, - 9243: 502, - 9244: 503, - 9245: 503, - 9246: 503, - 9247: 503, - 9248: 503, - 9249: 503, - 9250: 503, - 9251: 503, - 9252: 503, - 9253: 503, - 9254: 503, - 9255: 503, - 9256: 503, - 9257: 503, - 9258: 503, - 9259: 503, - 9260: 503, - 9261: 503, - 9262: 503, - 9263: 503, - 9264: 503, - 9265: 503, - 9266: 503, - 9267: 503, - 9268: 503, - 9269: 503, - 9270: 503, - 9271: 503, - 9272: 503, - 9273: 503, - 9274: 503, - 9275: 503, - 9276: 503, - 9277: 503, - 9278: 503, - 9279: 503, - 9280: 503, - 9281: 503, - 9282: 503, - 9283: 503, - 9284: 503, - 9285: 503, - 9286: 503, - 9287: 503, - 9288: 503, - 9289: 503, - 9290: 503, - 9291: 503, - 9292: 503, - 9293: 503, - 9294: 503, - 9295: 503, - 9296: 503, - 9297: 503, - 9298: 503, - 9299: 503, - 9300: 503, - 9301: 503, - 9302: 503, - 9303: 503, - 9304: 503, - 9305: 503, - 9306: 503, - 9307: 503, - 9308: 504, - 9309: 504, - 9310: 504, - 9311: 504, - 9312: 504, - 9313: 504, - 9314: 505, - 9315: 505, - 9316: 505, - 9317: 505, - 9318: 505, - 9319: 505, - 9320: 505, - 9321: 505, - 9322: 505, - 9323: 505, - 9324: 505, - 9325: 505, - 9326: 505, - 9327: 505, - 9328: 505, - 9329: 505, - 9330: 505, - 9331: 505, - 9332: 505, - 9333: 505, - 9334: 505, - 9335: 505, - 9336: 505, - 9337: 505, - 9338: 505, - 9339: 505, - 9340: 505, - 9341: 505, - 9342: 505, - 9343: 505, - 9344: 505, - 9345: 505, - 9346: 505, - 9347: 505, - 9348: 505, - 9349: 505, - 9350: 505, - 9351: 505, - 9352: 505, - 9353: 505, - 9354: 505, - 9355: 505, - 9356: 505, - 9357: 505, - 9358: 505, - 9359: 505, - 9360: 505, - 9361: 505, - 9362: 505, - 9363: 505, - 9364: 505, - 9365: 505, - 9366: 505, - 9367: 505, - 9368: 505, - 9369: 505, - 9370: 505, - 9371: 505, - 9372: 505, - 9373: 505, - 9374: 505, - 9375: 505, - 9376: 505, - 9377: 505, - 9378: 506, - 9379: 506, - 9380: 506, - 9381: 506, - 9382: 506, - 9383: 506, - 9384: 507, - 9385: 508, - 9386: 508, - 9387: 508, - 9388: 509, - 9389: 509, - 9390: 509, - 9391: 509, - 9392: 509, - 9393: 509, - 9394: 509, - 9395: 509, - 9396: 509, - 9397: 509, - 9398: 509, - 9399: 509, - 9400: 509, - 9401: 509, - 9402: 509, - 9403: 509, - 9404: 509, - 9405: 509, - 9406: 509, - 9407: 509, - 9408: 509, - 9409: 509, - 9410: 509, - 9411: 509, - 9412: 509, - 9413: 509, - 9414: 509, - 9415: 509, - 9416: 509, - 9417: 509, - 9418: 509, - 9419: 509, - 9420: 509, - 9421: 509, - 9422: 509, - 9423: 509, - 9424: 509, - 9425: 509, - 9426: 509, - 9427: 509, - 9428: 509, - 9429: 509, - 9430: 509, - 9431: 509, - 9432: 509, - 9433: 509, - 9434: 509, - 9435: 509, - 9436: 509, - 9437: 509, - 9438: 509, - 9439: 509, - 9440: 509, - 9441: 509, - 9442: 509, - 9443: 509, - 9444: 509, - 9445: 509, - 9446: 509, - 9447: 509, - 9448: 509, - 9449: 509, - 9450: 509, - 9451: 509, - 9452: 509, - 9453: 509, - 9454: 509, - 9455: 509, - 9456: 509, - 9457: 509, - 9458: 509, - 9459: 509, - 9460: 509, - 9461: 509, - 9462: 509, - 9463: 509, - 9464: 509, - 9465: 509, - 9466: 509, - 9467: 509, - 9468: 510, - 9469: 511, - 9470: 511, - 9471: 511, - 9472: 511, - 9473: 512, - 9474: 513, - 9475: 514, - 9476: 514, - 9477: 514, - 9478: 514, - 9479: 514, - 9480: 514, - 9481: 514, - 9482: 514, - 9483: 514, - 9484: 514, - 9485: 514, - 9486: 514, - 9487: 515, - 9488: 515, - 9489: 515, - 9490: 515, - 9491: 515, - 9492: 515, - 9493: 515, - 9494: 515, - 9495: 515, - 9496: 515, - 9497: 515, - 9498: 515, - 9499: 516, - 9500: 516, - 9501: 516, - 9502: 516, - 9503: 517, - 9504: 518, - 9505: 519, - 9506: 520, - 9507: 520, - 9508: 520, - 9509: 521, - 9510: 522, - 9511: 522, - 9512: 522, - 9513: 522, - 9514: 522, - 9515: 522, - 9516: 522, - 9517: 522, - 9518: 522, - 9519: 522, - 9520: 522, - 9521: 522, - 9522: 523, - 9523: 523, - 9524: 523, - 9525: 523, - 9526: 523, - 9527: 523, - 9528: 524, - 9529: 524, - 9530: 524, - 9531: 524, - 9532: 524, - 9533: 524, - 9534: 525, - 9535: 525, - 9536: 525, - 9537: 525, - 9538: 525, - 9539: 525, - 9540: 526, - 9541: 526, - 9542: 526, - 9543: 526, - 9544: 526, - 9545: 526, - 9546: 527, - 9547: 527, - 9548: 527, - 9549: 527, - 9550: 527, - 9551: 527, - 9552: 528, - 9553: 528, - 9554: 528, - 9555: 528, - 9556: 528, - 9557: 528, - 9558: 529, - 9559: 529, - 9560: 529, - 9561: 529, - 9562: 529, - 9563: 529, - 9564: 530, - 9565: 530, - 9566: 530, - 9567: 530, - 9568: 530, - 9569: 530, - 9570: 531, - 9571: 531, - 9572: 531, - 9573: 531, - 9574: 531, - 9575: 531, - 9576: 532, - 9577: 532, - 9578: 532, - 9579: 532, - 9580: 532, - 9581: 532, - 9582: 533, - 9583: 533, - 9584: 533, - 9585: 533, - 9586: 533, - 9587: 533, - 9588: 534, - 9589: 534, - 9590: 534, - 9591: 534, - 9592: 534, - 9593: 534, - 9594: 535, - 9595: 535, - 9596: 535, - 9597: 535, - 9598: 535, - 9599: 535, - 9600: 536, - 9601: 536, - 9602: 536, - 9603: 536, - 9604: 536, - 9605: 536, - 9606: 537, - 9607: 537, - 9608: 537, - 9609: 537, - 9610: 537, - 9611: 537, - 9612: 538, - 9613: 538, - 9614: 538, - 9615: 538, - 9616: 538, - 9617: 538, - 9618: 539, - 9619: 539, - 9620: 539, - 9621: 539, - 9622: 539, - 9623: 539, - 9624: 540, - 9625: 540, - 9626: 540, - 9627: 540, - 9628: 541, - 9629: 541, - 9630: 541, - 9631: 541, - 9632: 542, - 9633: 542, - 9634: 542, - 9635: 542, - 9636: 543, - 9637: 543, - 9638: 543, - 9639: 543, - 9640: 544, - 9641: 544, - 9642: 544, - 9643: 544, - 9644: 545, - 9645: 545, - 9646: 545, - 9647: 545, - 9648: 546, - 9649: 546, - 9650: 546, - 9651: 546, - 9652: 547, - 9653: 547, - 9654: 547, - 9655: 547, - 9656: 548, - 9657: 548, - 9658: 548, - 9659: 548, - 9660: 549, - 9661: 549, - 9662: 549, - 9663: 549, - 9664: 550, - 9665: 550, - 9666: 550, - 9667: 550, - 9668: 551, - 9669: 551, - 9670: 551, - 9671: 551, - 9672: 552, - 9673: 552, - 9674: 552, - 9675: 552, - 9676: 553, - 9677: 553, - 9678: 553, - 9679: 553, - 9680: 554, - 9681: 554, - 9682: 554, - 9683: 554, - 9684: 555, - 9685: 555, - 9686: 555, - 9687: 555, - 9688: 556, - 9689: 557, - 9690: 558, - 9691: 559, - 9692: 560, - 9693: 561, - 9694: 562, - 9695: 563, - 9696: 564, - 9697: 565, - 9698: 566, - 9699: 567, - 9700: 568, - 9701: 569, - 9702: 570, - 9703: 571, - 9704: 572, - 9705: 573, - 9706: 574, - 9707: 575, - 9708: 576, - 9709: 577, - 9710: 578, - 9711: 579, - 9712: 580, - 9713: 581, - 9714: 582, - 9715: 583, - 9716: 584, - 9717: 585, - 9718: 586, - 9719: 587, - 9720: 588, - 9721: 588, - 9722: 588, - 9723: 588, - 9724: 588, - 9725: 588, - 9726: 588, - 9727: 588, - 9728: 588, - 9729: 588, - 9730: 588, - 9731: 588, - 9732: 588, - 9733: 588, - 9734: 588, - 9735: 588, - 9736: 588, - 9737: 588, - 9738: 588, - 9739: 588, - 9740: 588, - 9741: 588, - 9742: 588, - 9743: 588, - 9744: 588, - 9745: 588, - 9746: 589, - 9747: 590, - 9748: 591, - 9749: 591, - 9750: 591, - 9751: 591, - 9752: 591, - 9753: 591, - 9754: 591, - 9755: 591, - 9756: 591, - 9757: 591, - 9758: 591, - 9759: 591, - 9760: 592, - 9761: 593, - 9762: 594, - 9763: 595, - 9764: 596, - 9765: 597, - 9766: 598, - 9767: 599, - 9768: 600, - 9769: 601, - 9770: 602, - 9771: 602, - 9772: 603, - 9773: 603, - 9774: 604, - 9775: 604, - 9776: 605, - 9777: 605, - 9778: 606, - 9779: 606, - 9780: 607, - 9781: 607, - 9782: 608, - 9783: 608, - 9784: 609, - 9785: 609, - 9786: 610, - 9787: 610, - 9788: 611, - 9789: 611, - 9790: 612, - 9791: 612, - 9792: 613, - 9793: 613, - 9794: 614, - 9795: 614, - 9796: 615, - 9797: 615, - 9798: 616, - 9799: 616, - 9800: 617, - 9801: 617, - 9802: 618, - 9803: 618, - 9804: 619, - 9805: 619, - 9806: 620, - 9807: 620, - 9808: 621, - 9809: 621, - 9810: 622, - 9811: 622, - 9812: 622, - 9813: 622, - 9814: 622, - 9815: 622, - 9816: 622, - 9817: 622, - 9818: 623, - 9819: 623, - 9820: 623, - 9821: 623, - 9822: 623, - 9823: 623, - 9824: 623, - 9825: 623, - 9826: 624, - 9827: 624, - 9828: 624, - 9829: 624, - 9830: 624, - 9831: 624, - 9832: 624, - 9833: 624, - 9834: 625, - 9835: 625, - 9836: 625, - 9837: 625, - 9838: 625, - 9839: 625, - 9840: 625, - 9841: 625, - 9842: 626, - 9843: 626, - 9844: 626, - 9845: 626, - 9846: 626, - 9847: 626, - 9848: 626, - 9849: 626, - 9850: 627, - 9851: 627, - 9852: 627, - 9853: 627, - 9854: 627, - 9855: 627, - 9856: 627, - 9857: 627, - 9858: 628, - 9859: 628, - 9860: 628, - 9861: 628, - 9862: 628, - 9863: 628, - 9864: 628, - 9865: 628, - 9866: 629, - 9867: 629, - 9868: 629, - 9869: 629, - 9870: 629, - 9871: 629, - 9872: 629, - 9873: 629, - 9874: 630, - 9875: 630, - 9876: 630, - 9877: 630, - 9878: 630, - 9879: 630, - 9880: 630, - 9881: 630, - 9882: 631, - 9883: 631, - 9884: 631, - 9885: 631, - 9886: 631, - 9887: 631, - 9888: 631, - 9889: 631, - 9890: 632, - 9891: 632, - 9892: 632, - 9893: 632, - 9894: 632, - 9895: 632, - 9896: 632, - 9897: 632, - 9898: 633, - 9899: 634, - 9900: 634, - 9901: 635, - 9902: 636, - 9903: 636, - 9904: 636, - 9905: 636, - 9906: 636, - 9907: 636, - 9908: 636, - 9909: 636, - 9910: 636, - 9911: 636, - 9912: 636, - 9913: 636, - 9914: 637, - 9915: 638, - 9916: 639, - 9917: 640, - 9918: 640, - 9919: 641, - 9920: 641, - 9921: 641, - 9922: 641, - 9923: 641, - 9924: 641, - 9925: 641, - 9926: 641, - 9927: 641, - 9928: 641, - 9929: 641, - 9930: 641, - 9931: 641, - 9932: 641, - 9933: 641, - 9934: 641, - 9935: 641, - 9936: 641, - 9937: 641, - 9938: 641, - 9939: 641, - 9940: 641, - 9941: 641, - 9942: 641, - 9943: 641, - 9944: 641, - 9945: 641, - 9946: 641, - 9947: 641, - 9948: 641, - 9949: 641, - 9950: 641, - 9951: 641, - 9952: 641, - 9953: 641, - 9954: 641, - 9955: 641, - 9956: 641, - 9957: 641, - 9958: 641, - 9959: 641, - 9960: 641, - 9961: 641, - 9962: 641, - 9963: 641, - 9964: 641, - 9965: 641, - 9966: 641, - 9967: 641, - 9968: 641, - 9969: 641, - 9970: 641, - 9971: 641, - 9972: 641, - 9973: 641, - 9974: 641, - 9975: 641, - 9976: 641, - 9977: 641, - 9978: 641, - 9979: 641, - 9980: 641, - 9981: 641, - 9982: 641, - 9983: 641, - 9984: 641, - 9985: 641, - 9986: 641, - 9987: 641, - 9988: 641, - 9989: 641, - 9990: 641, - 9991: 641, - 9992: 641, - 9993: 641, - 9994: 641, - 9995: 641, - 9996: 641, - 9997: 641, - 9998: 641, - 9999: 642, - 10000: 642, - 10001: 642, - 10002: 642, - 10003: 642, - 10004: 642, - 10005: 642, - 10006: 642, - 10007: 642, - 10008: 642, - 10009: 642, - 10010: 642, - 10011: 642, - 10012: 642, - 10013: 642, - 10014: 642, - 10015: 642, - 10016: 642, - 10017: 642, - 10018: 642, - 10019: 642, - 10020: 642, - 10021: 642, - 10022: 642, - 10023: 642, - 10024: 642, - 10025: 642, - 10026: 642, - 10027: 642, - 10028: 642, - 10029: 642, - 10030: 642, - 10031: 642, - 10032: 642, - 10033: 642, - 10034: 642, - 10035: 642, - 10036: 642, - 10037: 642, - 10038: 642, - 10039: 642, - 10040: 642, - 10041: 642, - 10042: 642, - 10043: 642, - 10044: 642, - 10045: 642, - 10046: 642, - 10047: 642, - 10048: 642, - 10049: 642, - 10050: 642, - 10051: 642, - 10052: 642, - 10053: 642, - 10054: 642, - 10055: 642, - 10056: 642, - 10057: 642, - 10058: 642, - 10059: 642, - 10060: 642, - 10061: 642, - 10062: 642, - 10063: 642, - 10064: 642, - 10065: 642, - 10066: 642, - 10067: 642, - 10068: 642, - 10069: 642, - 10070: 642, - 10071: 642, - 10072: 642, - 10073: 642, - 10074: 642, - 10075: 642, - 10076: 642, - 10077: 642, - 10078: 642, - 10079: 643, - 10080: 643, - 10081: 643, - 10082: 643, - 10083: 643, - 10084: 643, - 10085: 643, - 10086: 643, - 10087: 643, - 10088: 643, - 10089: 643, - 10090: 643, - 10091: 643, - 10092: 643, - 10093: 643, - 10094: 643, - 10095: 643, - 10096: 643, - 10097: 643, - 10098: 643, - 10099: 643, - 10100: 643, - 10101: 643, - 10102: 643, - 10103: 643, - 10104: 643, - 10105: 643, - 10106: 643, - 10107: 643, - 10108: 643, - 10109: 643, - 10110: 643, - 10111: 643, - 10112: 643, - 10113: 643, - 10114: 643, - 10115: 643, - 10116: 643, - 10117: 643, - 10118: 643, - 10119: 643, - 10120: 643, - 10121: 643, - 10122: 643, - 10123: 643, - 10124: 643, - 10125: 643, - 10126: 643, - 10127: 643, - 10128: 643, - 10129: 643, - 10130: 643, - 10131: 643, - 10132: 643, - 10133: 643, - 10134: 643, - 10135: 643, - 10136: 643, - 10137: 643, - 10138: 643, - 10139: 643, - 10140: 643, - 10141: 643, - 10142: 643, - 10143: 643, - 10144: 643, - 10145: 643, - 10146: 643, - 10147: 643, - 10148: 643, - 10149: 643, - 10150: 643, - 10151: 643, - 10152: 643, - 10153: 643, - 10154: 643, - 10155: 643, - 10156: 643, - 10157: 643, - 10158: 643, - 10159: 644, - 10160: 644, - 10161: 644, - 10162: 644, - 10163: 644, - 10164: 644, - 10165: 644, - 10166: 644, - 10167: 644, - 10168: 644, - 10169: 644, - 10170: 644, - 10171: 644, - 10172: 644, - 10173: 644, - 10174: 644, - 10175: 644, - 10176: 644, - 10177: 644, - 10178: 644, - 10179: 644, - 10180: 644, - 10181: 644, - 10182: 644, - 10183: 644, - 10184: 644, - 10185: 644, - 10186: 644, - 10187: 644, - 10188: 644, - 10189: 644, - 10190: 644, - 10191: 644, - 10192: 644, - 10193: 644, - 10194: 644, - 10195: 644, - 10196: 644, - 10197: 644, - 10198: 644, - 10199: 644, - 10200: 644, - 10201: 644, - 10202: 644, - 10203: 644, - 10204: 644, - 10205: 644, - 10206: 644, - 10207: 644, - 10208: 644, - 10209: 644, - 10210: 644, - 10211: 644, - 10212: 644, - 10213: 644, - 10214: 644, - 10215: 644, - 10216: 644, - 10217: 644, - 10218: 644, - 10219: 644, - 10220: 644, - 10221: 644, - 10222: 644, - 10223: 644, - 10224: 644, - 10225: 644, - 10226: 644, - 10227: 644, - 10228: 644, - 10229: 644, - 10230: 644, - 10231: 644, - 10232: 644, - 10233: 644, - 10234: 644, - 10235: 644, - 10236: 644, - 10237: 644, - 10238: 644, - 10239: 645, - 10240: 645, - 10241: 645, - 10242: 645, - 10243: 645, - 10244: 645, - 10245: 645, - 10246: 645, - 10247: 645, - 10248: 645, - 10249: 645, - 10250: 645, - 10251: 645, - 10252: 645, - 10253: 645, - 10254: 645, - 10255: 645, - 10256: 645, - 10257: 645, - 10258: 645, - 10259: 645, - 10260: 645, - 10261: 645, - 10262: 645, - 10263: 645, - 10264: 645, - 10265: 645, - 10266: 645, - 10267: 645, - 10268: 645, - 10269: 645, - 10270: 645, - 10271: 645, - 10272: 645, - 10273: 645, - 10274: 645, - 10275: 645, - 10276: 645, - 10277: 645, - 10278: 645, - 10279: 645, - 10280: 645, - 10281: 645, - 10282: 645, - 10283: 645, - 10284: 645, - 10285: 645, - 10286: 645, - 10287: 645, - 10288: 645, - 10289: 645, - 10290: 645, - 10291: 645, - 10292: 645, - 10293: 645, - 10294: 645, - 10295: 645, - 10296: 645, - 10297: 645, - 10298: 645, - 10299: 645, - 10300: 645, - 10301: 645, - 10302: 645, - 10303: 645, - 10304: 645, - 10305: 645, - 10306: 645, - 10307: 645, - 10308: 645, - 10309: 645, - 10310: 645, - 10311: 645, - 10312: 645, - 10313: 645, - 10314: 645, - 10315: 645, - 10316: 645, - 10317: 645, - 10318: 645, - 10319: 646, - 10320: 646, - 10321: 646, - 10322: 646, - 10323: 646, - 10324: 646, - 10325: 646, - 10326: 646, - 10327: 646, - 10328: 646, - 10329: 646, - 10330: 646, - 10331: 646, - 10332: 646, - 10333: 646, - 10334: 646, - 10335: 646, - 10336: 646, - 10337: 646, - 10338: 646, - 10339: 646, - 10340: 646, - 10341: 646, - 10342: 646, - 10343: 646, - 10344: 646, - 10345: 646, - 10346: 646, - 10347: 646, - 10348: 646, - 10349: 646, - 10350: 646, - 10351: 646, - 10352: 646, - 10353: 646, - 10354: 646, - 10355: 646, - 10356: 646, - 10357: 646, - 10358: 646, - 10359: 646, - 10360: 646, - 10361: 646, - 10362: 646, - 10363: 646, - 10364: 646, - 10365: 646, - 10366: 646, - 10367: 646, - 10368: 646, - 10369: 646, - 10370: 646, - 10371: 646, - 10372: 646, - 10373: 646, - 10374: 646, - 10375: 646, - 10376: 646, - 10377: 646, - 10378: 646, - 10379: 646, - 10380: 646, - 10381: 646, - 10382: 646, - 10383: 646, - 10384: 646, - 10385: 646, - 10386: 646, - 10387: 646, - 10388: 646, - 10389: 646, - 10390: 646, - 10391: 646, - 10392: 646, - 10393: 646, - 10394: 646, - 10395: 646, - 10396: 646, - 10397: 646, - 10398: 646, - 10399: 647, - 10400: 647, - 10401: 647, - 10402: 647, - 10403: 647, - 10404: 647, - 10405: 647, - 10406: 647, - 10407: 647, - 10408: 647, - 10409: 647, - 10410: 647, - 10411: 647, - 10412: 647, - 10413: 647, - 10414: 647, - 10415: 647, - 10416: 647, - 10417: 647, - 10418: 647, - 10419: 647, - 10420: 647, - 10421: 647, - 10422: 647, - 10423: 647, - 10424: 647, - 10425: 647, - 10426: 647, - 10427: 647, - 10428: 647, - 10429: 647, - 10430: 647, - 10431: 647, - 10432: 647, - 10433: 647, - 10434: 647, - 10435: 647, - 10436: 647, - 10437: 647, - 10438: 647, - 10439: 647, - 10440: 647, - 10441: 647, - 10442: 647, - 10443: 647, - 10444: 647, - 10445: 647, - 10446: 647, - 10447: 647, - 10448: 647, - 10449: 647, - 10450: 647, - 10451: 647, - 10452: 647, - 10453: 647, - 10454: 647, - 10455: 647, - 10456: 647, - 10457: 647, - 10458: 647, - 10459: 647, - 10460: 647, - 10461: 647, - 10462: 647, - 10463: 647, - 10464: 647, - 10465: 647, - 10466: 647, - 10467: 647, - 10468: 647, - 10469: 647, - 10470: 647, - 10471: 647, - 10472: 647, - 10473: 647, - 10474: 647, - 10475: 647, - 10476: 647, - 10477: 647, - 10478: 647, - 10479: 648, - 10480: 648, - 10481: 648, - 10482: 648, - 10483: 648, - 10484: 648, - 10485: 648, - 10486: 648, - 10487: 648, - 10488: 648, - 10489: 648, - 10490: 648, - 10491: 648, - 10492: 648, - 10493: 648, - 10494: 648, - 10495: 648, - 10496: 648, - 10497: 648, - 10498: 648, - 10499: 648, - 10500: 648, - 10501: 648, - 10502: 648, - 10503: 648, - 10504: 648, - 10505: 648, - 10506: 648, - 10507: 648, - 10508: 648, - 10509: 648, - 10510: 648, - 10511: 648, - 10512: 648, - 10513: 648, - 10514: 648, - 10515: 648, - 10516: 648, - 10517: 648, - 10518: 648, - 10519: 648, - 10520: 648, - 10521: 648, - 10522: 648, - 10523: 648, - 10524: 648, - 10525: 648, - 10526: 648, - 10527: 648, - 10528: 648, - 10529: 648, - 10530: 648, - 10531: 648, - 10532: 648, - 10533: 648, - 10534: 648, - 10535: 648, - 10536: 648, - 10537: 648, - 10538: 648, - 10539: 648, - 10540: 648, - 10541: 648, - 10542: 648, - 10543: 648, - 10544: 648, - 10545: 648, - 10546: 648, - 10547: 648, - 10548: 648, - 10549: 648, - 10550: 648, - 10551: 648, - 10552: 648, - 10553: 648, - 10554: 648, - 10555: 648, - 10556: 648, - 10557: 648, - 10558: 648, - 10559: 649, - 10560: 649, - 10561: 649, - 10562: 649, - 10563: 649, - 10564: 649, - 10565: 649, - 10566: 649, - 10567: 649, - 10568: 649, - 10569: 649, - 10570: 649, - 10571: 649, - 10572: 649, - 10573: 649, - 10574: 649, - 10575: 649, - 10576: 649, - 10577: 649, - 10578: 649, - 10579: 649, - 10580: 649, - 10581: 649, - 10582: 649, - 10583: 649, - 10584: 649, - 10585: 649, - 10586: 649, - 10587: 649, - 10588: 649, - 10589: 649, - 10590: 649, - 10591: 649, - 10592: 649, - 10593: 649, - 10594: 649, - 10595: 649, - 10596: 649, - 10597: 649, - 10598: 649, - 10599: 649, - 10600: 649, - 10601: 649, - 10602: 649, - 10603: 649, - 10604: 649, - 10605: 649, - 10606: 649, - 10607: 649, - 10608: 649, - 10609: 649, - 10610: 649, - 10611: 649, - 10612: 649, - 10613: 649, - 10614: 649, - 10615: 649, - 10616: 649, - 10617: 649, - 10618: 649, - 10619: 649, - 10620: 649, - 10621: 649, - 10622: 649, - 10623: 649, - 10624: 649, - 10625: 649, - 10626: 649, - 10627: 649, - 10628: 649, - 10629: 649, - 10630: 649, - 10631: 649, - 10632: 649, - 10633: 649, - 10634: 649, - 10635: 649, - 10636: 649, - 10637: 649, - 10638: 649, - 10639: 650, - 10640: 650, - 10641: 650, - 10642: 650, - 10643: 650, - 10644: 650, - 10645: 650, - 10646: 650, - 10647: 650, - 10648: 650, - 10649: 650, - 10650: 650, - 10651: 650, - 10652: 650, - 10653: 650, - 10654: 650, - 10655: 650, - 10656: 650, - 10657: 650, - 10658: 650, - 10659: 650, - 10660: 650, - 10661: 650, - 10662: 650, - 10663: 650, - 10664: 650, - 10665: 650, - 10666: 650, - 10667: 650, - 10668: 650, - 10669: 650, - 10670: 650, - 10671: 650, - 10672: 650, - 10673: 650, - 10674: 650, - 10675: 650, - 10676: 650, - 10677: 650, - 10678: 650, - 10679: 650, - 10680: 650, - 10681: 650, - 10682: 650, - 10683: 650, - 10684: 650, - 10685: 650, - 10686: 650, - 10687: 650, - 10688: 650, - 10689: 650, - 10690: 650, - 10691: 650, - 10692: 650, - 10693: 650, - 10694: 650, - 10695: 650, - 10696: 650, - 10697: 650, - 10698: 650, - 10699: 650, - 10700: 650, - 10701: 650, - 10702: 650, - 10703: 650, - 10704: 650, - 10705: 650, - 10706: 650, - 10707: 650, - 10708: 650, - 10709: 650, - 10710: 650, - 10711: 650, - 10712: 650, - 10713: 650, - 10714: 650, - 10715: 650, - 10716: 650, - 10717: 650, - 10718: 650, - 10719: 651, - 10720: 651, - 10721: 651, - 10722: 651, - 10723: 651, - 10724: 651, - 10725: 651, - 10726: 651, - 10727: 651, - 10728: 651, - 10729: 651, - 10730: 651, - 10731: 651, - 10732: 651, - 10733: 651, - 10734: 651, - 10735: 651, - 10736: 651, - 10737: 651, - 10738: 651, - 10739: 651, - 10740: 651, - 10741: 651, - 10742: 651, - 10743: 651, - 10744: 651, - 10745: 651, - 10746: 651, - 10747: 651, - 10748: 651, - 10749: 651, - 10750: 651, - 10751: 651, - 10752: 651, - 10753: 651, - 10754: 651, - 10755: 651, - 10756: 651, - 10757: 651, - 10758: 651, - 10759: 651, - 10760: 651, - 10761: 651, - 10762: 651, - 10763: 651, - 10764: 651, - 10765: 651, - 10766: 651, - 10767: 651, - 10768: 651, - 10769: 651, - 10770: 651, - 10771: 651, - 10772: 651, - 10773: 651, - 10774: 651, - 10775: 651, - 10776: 651, - 10777: 651, - 10778: 651, - 10779: 651, - 10780: 651, - 10781: 651, - 10782: 651, - 10783: 651, - 10784: 651, - 10785: 651, - 10786: 651, - 10787: 651, - 10788: 651, - 10789: 651, - 10790: 651, - 10791: 651, - 10792: 651, - 10793: 651, - 10794: 651, - 10795: 651, - 10796: 651, - 10797: 651, - 10798: 651, - 10799: 652, - 10800: 652, - 10801: 652, - 10802: 652, - 10803: 652, - 10804: 652, - 10805: 652, - 10806: 652, - 10807: 652, - 10808: 652, - 10809: 652, - 10810: 652, - 10811: 652, - 10812: 652, - 10813: 652, - 10814: 652, - 10815: 652, - 10816: 652, - 10817: 652, - 10818: 652, - 10819: 652, - 10820: 652, - 10821: 652, - 10822: 652, - 10823: 652, - 10824: 652, - 10825: 652, - 10826: 652, - 10827: 652, - 10828: 652, - 10829: 652, - 10830: 652, - 10831: 652, - 10832: 652, - 10833: 652, - 10834: 652, - 10835: 652, - 10836: 652, - 10837: 652, - 10838: 652, - 10839: 652, - 10840: 652, - 10841: 652, - 10842: 652, - 10843: 652, - 10844: 652, - 10845: 652, - 10846: 652, - 10847: 652, - 10848: 652, - 10849: 652, - 10850: 652, - 10851: 652, - 10852: 652, - 10853: 652, - 10854: 652, - 10855: 652, - 10856: 652, - 10857: 652, - 10858: 652, - 10859: 652, - 10860: 652, - 10861: 652, - 10862: 652, - 10863: 652, - 10864: 652, - 10865: 652, - 10866: 652, - 10867: 652, - 10868: 652, - 10869: 652, - 10870: 652, - 10871: 652, - 10872: 652, - 10873: 652, - 10874: 652, - 10875: 652, - 10876: 652, - 10877: 652, - 10878: 652, - 10879: 653, - 10880: 653, - 10881: 653, - 10882: 653, - 10883: 653, - 10884: 653, - 10885: 653, - 10886: 653, - 10887: 653, - 10888: 653, - 10889: 653, - 10890: 653, - 10891: 653, - 10892: 653, - 10893: 653, - 10894: 653, - 10895: 653, - 10896: 653, - 10897: 653, - 10898: 653, - 10899: 653, - 10900: 653, - 10901: 653, - 10902: 653, - 10903: 653, - 10904: 653, - 10905: 653, - 10906: 653, - 10907: 653, - 10908: 653, - 10909: 653, - 10910: 653, - 10911: 653, - 10912: 653, - 10913: 653, - 10914: 653, - 10915: 653, - 10916: 653, - 10917: 653, - 10918: 653, - 10919: 653, - 10920: 653, - 10921: 653, - 10922: 653, - 10923: 653, - 10924: 653, - 10925: 653, - 10926: 653, - 10927: 653, - 10928: 653, - 10929: 653, - 10930: 653, - 10931: 653, - 10932: 653, - 10933: 653, - 10934: 653, - 10935: 653, - 10936: 653, - 10937: 653, - 10938: 653, - 10939: 653, - 10940: 653, - 10941: 653, - 10942: 653, - 10943: 653, - 10944: 653, - 10945: 653, - 10946: 653, - 10947: 653, - 10948: 653, - 10949: 653, - 10950: 653, - 10951: 653, - 10952: 653, - 10953: 653, - 10954: 653, - 10955: 653, - 10956: 653, - 10957: 653, - 10958: 653, - 10959: 654, - 10960: 654, - 10961: 654, - 10962: 654, - 10963: 654, - 10964: 654, - 10965: 654, - 10966: 654, - 10967: 654, - 10968: 654, - 10969: 654, - 10970: 654, - 10971: 654, - 10972: 654, - 10973: 654, - 10974: 654, - 10975: 654, - 10976: 654, - 10977: 654, - 10978: 654, - 10979: 654, - 10980: 654, - 10981: 654, - 10982: 654, - 10983: 654, - 10984: 654, - 10985: 654, - 10986: 654, - 10987: 654, - 10988: 654, - 10989: 654, - 10990: 654, - 10991: 654, - 10992: 654, - 10993: 654, - 10994: 654, - 10995: 654, - 10996: 654, - 10997: 654, - 10998: 654, - 10999: 654, - 11000: 654, - 11001: 654, - 11002: 654, - 11003: 654, - 11004: 654, - 11005: 654, - 11006: 654, - 11007: 654, - 11008: 654, - 11009: 654, - 11010: 654, - 11011: 654, - 11012: 654, - 11013: 654, - 11014: 654, - 11015: 654, - 11016: 654, - 11017: 654, - 11018: 654, - 11019: 654, - 11020: 654, - 11021: 654, - 11022: 654, - 11023: 654, - 11024: 654, - 11025: 654, - 11026: 654, - 11027: 654, - 11028: 654, - 11029: 654, - 11030: 654, - 11031: 654, - 11032: 654, - 11033: 654, - 11034: 654, - 11035: 654, - 11036: 654, - 11037: 654, - 11038: 654, - 11039: 655, - 11040: 655, - 11041: 655, - 11042: 655, - 11043: 655, - 11044: 655, - 11045: 656, - 11046: 656, - 11047: 656, - 11048: 656, - 11049: 656, - 11050: 656, - 11051: 657, - 11052: 657, - 11053: 657, - 11054: 657, - 11055: 657, - 11056: 657, - 11057: 658, - 11058: 658, - 11059: 658, - 11060: 658, - 11061: 658, - 11062: 658, - 11063: 659, - 11064: 659, - 11065: 659, - 11066: 659, - 11067: 659, - 11068: 659, - 11069: 660, - 11070: 660, - 11071: 660, - 11072: 660, - 11073: 660, - 11074: 660, - 11075: 661, - 11076: 661, - 11077: 661, - 11078: 661, - 11079: 661, - 11080: 661, - 11081: 662, - 11082: 662, - 11083: 662, - 11084: 662, - 11085: 662, - 11086: 662, - 11087: 663, - 11088: 663, - 11089: 663, - 11090: 663, - 11091: 663, - 11092: 663, - 11093: 664, - 11094: 664, - 11095: 664, - 11096: 664, - 11097: 664, - 11098: 664, - 11099: 665, - 11100: 665, - 11101: 665, - 11102: 665, - 11103: 665, - 11104: 665, - 11105: 666, - 11106: 666, - 11107: 666, - 11108: 666, - 11109: 666, - 11110: 666, - 11111: 667, - 11112: 667, - 11113: 667, - 11114: 667, - 11115: 667, - 11116: 667, - 11117: 668, - 11118: 668, - 11119: 668, - 11120: 668, - 11121: 668, - 11122: 668, - 11123: 668, - 11124: 668, - 11125: 668, - 11126: 668, - 11127: 668, - 11128: 668, - 11129: 668, - 11130: 668, - 11131: 668, - 11132: 668, - 11133: 668, - 11134: 668, - 11135: 668, - 11136: 668, - 11137: 668, - 11138: 668, - 11139: 668, - 11140: 668, - 11141: 668, - 11142: 668, - 11143: 668, - 11144: 668, - 11145: 668, - 11146: 668, - 11147: 668, - 11148: 668, - 11149: 668, - 11150: 668, - 11151: 668, - 11152: 668, - 11153: 668, - 11154: 668, - 11155: 668, - 11156: 668, - 11157: 668, - 11158: 668, - 11159: 668, - 11160: 668, - 11161: 668, - 11162: 668, - 11163: 668, - 11164: 668, - 11165: 668, - 11166: 668, - 11167: 668, - 11168: 668, - 11169: 668, - 11170: 668, - 11171: 668, - 11172: 668, - 11173: 668, - 11174: 668, - 11175: 668, - 11176: 668, - 11177: 668, - 11178: 668, - 11179: 668, - 11180: 668, - 11181: 668, - 11182: 668, - 11183: 668, - 11184: 668, - 11185: 668, - 11186: 668, - 11187: 668, - 11188: 668, - 11189: 668, - 11190: 668, - 11191: 668, - 11192: 668, - 11193: 668, - 11194: 668, - 11195: 668, - 11196: 668, - 11197: 668, - 11198: 668, - 11199: 668, - 11200: 668, - 11201: 668, - 11202: 668, - 11203: 668, - 11204: 668, - 11205: 668, - 11206: 668, - 11207: 668, - 11208: 668, - 11209: 668, - 11210: 668, - 11211: 668, - 11212: 668, - 11213: 668, - 11214: 668, - 11215: 668, - 11216: 668, - 11217: 668, - 11218: 668, - 11219: 668, - 11220: 668, - 11221: 668, - 11222: 668, - 11223: 668, - 11224: 668, - 11225: 668, - 11226: 668, - 11227: 668, - 11228: 668, - 11229: 668, - 11230: 668, - 11231: 668, - 11232: 668, - 11233: 668, - 11234: 668, - 11235: 668, - 11236: 668, - 11237: 668, - 11238: 668, - 11239: 668, - 11240: 668, - 11241: 668, - 11242: 668, - 11243: 668, - 11244: 668, - 11245: 668, - 11246: 668, - 11247: 668, - 11248: 668, - 11249: 668, - 11250: 668, - 11251: 668, - 11252: 668, - 11253: 668, - 11254: 668, - 11255: 668, - 11256: 668, - 11257: 668, - 11258: 668, - 11259: 668, - 11260: 668, - 11261: 668, - 11262: 668, - 11263: 668, - 11264: 668, - 11265: 668, - 11266: 668, - 11267: 668, - 11268: 668, - 11269: 668, - 11270: 668, - 11271: 668, - 11272: 668, - 11273: 668, - 11274: 668, - 11275: 668, - 11276: 668, - 11277: 668, - 11278: 668, - 11279: 668, - 11280: 668, - 11281: 668, - 11282: 668, - 11283: 668, - 11284: 668, - 11285: 668, - 11286: 668, - 11287: 668, - 11288: 668, - 11289: 668, - 11290: 668, - 11291: 668, - 11292: 668, - 11293: 668, - 11294: 668, - 11295: 668, - 11296: 668, - 11297: 668, - 11298: 668, - 11299: 668, - 11300: 668, - 11301: 668, - 11302: 668, - 11303: 668, - 11304: 668, - 11305: 668, - 11306: 668, - 11307: 668, - 11308: 668, - 11309: 668, - 11310: 668, - 11311: 668, - 11312: 668, - 11313: 668, - 11314: 668, - 11315: 668, - 11316: 668, - 11317: 668, - 11318: 668, - 11319: 668, - 11320: 668, - 11321: 668, - 11322: 668, - 11323: 668, - 11324: 668, - 11325: 668, - 11326: 668, - 11327: 668, - 11328: 668, - 11329: 668, - 11330: 668, - 11331: 668, - 11332: 668, - 11333: 668, - 11334: 668, - 11335: 668, - 11336: 668, - 11337: 668, - 11338: 668, - 11339: 668, - 11340: 668, - 11341: 668, - 11342: 668, - 11343: 668, - 11344: 668, - 11345: 668, - 11346: 668, - 11347: 668, - 11348: 668, - 11349: 668, - 11350: 668, - 11351: 668, - 11352: 668, - 11353: 668, - 11354: 668, - 11355: 668, - 11356: 668, - 11357: 668, - 11358: 668, - 11359: 668, - 11360: 668, - 11361: 668, - 11362: 668, - 11363: 668, - 11364: 668, - 11365: 668, - 11366: 668, - 11367: 668, - 11368: 668, - 11369: 668, - 11370: 668, - 11371: 668, - 11372: 668, - 11373: 668, - 11374: 668, - 11375: 668, - 11376: 668, - 11377: 668, - 11378: 668, - 11379: 668, - 11380: 668, - 11381: 668, - 11382: 668, - 11383: 668, - 11384: 668, - 11385: 668, - 11386: 668, - 11387: 668, - 11388: 668, - 11389: 668, - 11390: 668, - 11391: 668, - 11392: 668, - 11393: 668, - 11394: 668, - 11395: 668, - 11396: 668, - 11397: 668, - 11398: 668, - 11399: 668, - 11400: 668, - 11401: 668, - 11402: 668, - 11403: 668, - 11404: 668, - 11405: 668, - 11406: 668, - 11407: 668, - 11408: 668, - 11409: 668, - 11410: 668, - 11411: 668, - 11412: 668, - 11413: 668, - 11414: 668, - 11415: 668, - 11416: 668, - 11417: 668, - 11418: 668, - 11419: 668, - 11420: 668, - 11421: 668, - 11422: 668, - 11423: 668, - 11424: 668, - 11425: 668, - 11426: 668, - 11427: 668, - 11428: 668, - 11429: 668, - 11430: 668, - 11431: 668, - 11432: 668, - 11433: 668, - 11434: 668, - 11435: 668, - 11436: 668, - 11437: 668, - 11438: 668, - 11439: 668, - 11440: 668, - 11441: 669, - 11442: 669, - 11443: 669, - 11444: 669, - 11445: 669, - 11446: 669, - 11447: 669, - 11448: 669, - 11449: 669, - 11450: 669, - 11451: 669, - 11452: 669, - 11453: 669, - 11454: 669, - 11455: 669, - 11456: 669, - 11457: 669, - 11458: 669, - 11459: 669, - 11460: 669, - 11461: 669, - 11462: 669, - 11463: 669, - 11464: 669, - 11465: 669, - 11466: 669, - 11467: 669, - 11468: 669, - 11469: 669, - 11470: 669, - 11471: 669, - 11472: 669, - 11473: 669, - 11474: 669, - 11475: 669, - 11476: 669, - 11477: 669, - 11478: 669, - 11479: 669, - 11480: 669, - 11481: 669, - 11482: 669, - 11483: 669, - 11484: 669, - 11485: 669, - 11486: 669, - 11487: 669, - 11488: 669, - 11489: 669, - 11490: 669, - 11491: 669, - 11492: 669, - 11493: 669, - 11494: 669, - 11495: 669, - 11496: 669, - 11497: 669, - 11498: 669, - 11499: 669, - 11500: 669, - 11501: 669, - 11502: 669, - 11503: 669, - 11504: 669, - 11505: 669, - 11506: 669, - 11507: 669, - 11508: 669, - 11509: 669, - 11510: 669, - 11511: 669, - 11512: 669, - 11513: 669, - 11514: 669, - 11515: 669, - 11516: 669, - 11517: 669, - 11518: 669, - 11519: 669, - 11520: 669, - 11521: 669, - 11522: 669, - 11523: 669, - 11524: 669, - 11525: 669, - 11526: 669, - 11527: 669, - 11528: 669, - 11529: 669, - 11530: 669, - 11531: 669, - 11532: 669, - 11533: 669, - 11534: 669, - 11535: 669, - 11536: 669, - 11537: 669, - 11538: 669, - 11539: 669, - 11540: 669, - 11541: 669, - 11542: 669, - 11543: 669, - 11544: 669, - 11545: 669, - 11546: 669, - 11547: 669, - 11548: 669, - 11549: 669, - 11550: 669, - 11551: 669, - 11552: 669, - 11553: 669, - 11554: 669, - 11555: 669, - 11556: 669, - 11557: 669, - 11558: 669, - 11559: 669, - 11560: 669, - 11561: 669, - 11562: 669, - 11563: 669, - 11564: 669, - 11565: 669, - 11566: 669, - 11567: 669, - 11568: 669, - 11569: 669, - 11570: 669, - 11571: 669, - 11572: 669, - 11573: 669, - 11574: 669, - 11575: 669, - 11576: 669, - 11577: 669, - 11578: 669, - 11579: 669, - 11580: 669, - 11581: 669, - 11582: 669, - 11583: 669, - 11584: 669, - 11585: 669, - 11586: 669, - 11587: 669, - 11588: 669, - 11589: 669, - 11590: 669, - 11591: 669, - 11592: 669, - 11593: 669, - 11594: 669, - 11595: 669, - 11596: 669, - 11597: 669, - 11598: 669, - 11599: 669, - 11600: 669, - 11601: 669, - 11602: 669, - 11603: 669, - 11604: 669, - 11605: 669, - 11606: 669, - 11607: 669, - 11608: 669, - 11609: 669, - 11610: 669, - 11611: 669, - 11612: 669, - 11613: 669, - 11614: 669, - 11615: 669, - 11616: 669, - 11617: 669, - 11618: 669, - 11619: 669, - 11620: 669, - 11621: 669, - 11622: 669, - 11623: 669, - 11624: 669, - 11625: 669, - 11626: 669, - 11627: 669, - 11628: 669, - 11629: 669, - 11630: 669, - 11631: 669, - 11632: 669, - 11633: 669, - 11634: 669, - 11635: 669, - 11636: 669, - 11637: 669, - 11638: 669, - 11639: 669, - 11640: 669, - 11641: 669, - 11642: 669, - 11643: 669, - 11644: 669, - 11645: 669, - 11646: 669, - 11647: 669, - 11648: 669, - 11649: 669, - 11650: 669, - 11651: 669, - 11652: 669, - 11653: 669, - 11654: 669, - 11655: 669, - 11656: 669, - 11657: 669, - 11658: 669, - 11659: 669, - 11660: 669, - 11661: 669, - 11662: 669, - 11663: 669, - 11664: 669, - 11665: 669, - 11666: 669, - 11667: 669, - 11668: 669, - 11669: 669, - 11670: 669, - 11671: 669, - 11672: 669, - 11673: 669, - 11674: 669, - 11675: 669, - 11676: 669, - 11677: 669, - 11678: 669, - 11679: 669, - 11680: 669, - 11681: 669, - 11682: 669, - 11683: 669, - 11684: 669, - 11685: 669, - 11686: 669, - 11687: 669, - 11688: 669, - 11689: 669, - 11690: 669, - 11691: 669, - 11692: 669, - 11693: 669, - 11694: 669, - 11695: 669, - 11696: 669, - 11697: 669, - 11698: 669, - 11699: 669, - 11700: 669, - 11701: 669, - 11702: 669, - 11703: 669, - 11704: 669, - 11705: 669, - 11706: 669, - 11707: 669, - 11708: 669, - 11709: 669, - 11710: 669, - 11711: 669, - 11712: 669, - 11713: 669, - 11714: 669, - 11715: 669, - 11716: 669, - 11717: 669, - 11718: 669, - 11719: 669, - 11720: 669, - 11721: 669, - 11722: 669, - 11723: 669, - 11724: 669, - 11725: 669, - 11726: 669, - 11727: 669, - 11728: 669, - 11729: 669, - 11730: 669, - 11731: 669, - 11732: 669, - 11733: 669, - 11734: 669, - 11735: 669, - 11736: 669, - 11737: 669, - 11738: 669, - 11739: 669, - 11740: 669, - 11741: 669, - 11742: 669, - 11743: 669, - 11744: 669, - 11745: 669, - 11746: 669, - 11747: 669, - 11748: 669, - 11749: 669, - 11750: 669, - 11751: 669, - 11752: 669, - 11753: 669, - 11754: 669, - 11755: 669, - 11756: 669, - 11757: 669, - 11758: 669, - 11759: 669, - 11760: 669, - 11761: 669, - 11762: 669, - 11763: 669, - 11764: 669, - 11765: 670, - 11766: 670, - 11767: 670, - 11768: 670, - 11769: 670, - 11770: 670, - 11771: 670, - 11772: 670, - 11773: 670, - 11774: 670, - 11775: 670, - 11776: 670, - 11777: 670, - 11778: 670, - 11779: 670, - 11780: 670, - 11781: 670, - 11782: 670, - 11783: 670, - 11784: 670, - 11785: 670, - 11786: 670, - 11787: 670, - 11788: 670, - 11789: 670, - 11790: 670, - 11791: 670, - 11792: 670, - 11793: 670, - 11794: 670, - 11795: 670, - 11796: 670, - 11797: 670, - 11798: 670, - 11799: 670, - 11800: 670, - 11801: 670, - 11802: 670, - 11803: 670, - 11804: 670, - 11805: 670, - 11806: 670, - 11807: 670, - 11808: 670, - 11809: 670, - 11810: 670, - 11811: 670, - 11812: 670, - 11813: 670, - 11814: 670, - 11815: 670, - 11816: 670, - 11817: 670, - 11818: 670, - 11819: 670, - 11820: 670, - 11821: 670, - 11822: 670, - 11823: 670, - 11824: 670, - 11825: 670, - 11826: 670, - 11827: 670, - 11828: 670, - 11829: 670, - 11830: 670, - 11831: 670, - 11832: 670, - 11833: 670, - 11834: 670, - 11835: 670, - 11836: 670, - 11837: 670, - 11838: 670, - 11839: 670, - 11840: 670, - 11841: 670, - 11842: 670, - 11843: 670, - 11844: 670, - 11845: 670, - 11846: 670, - 11847: 670, - 11848: 670, - 11849: 670, - 11850: 670, - 11851: 670, - 11852: 670, - 11853: 670, - 11854: 670, - 11855: 670, - 11856: 670, - 11857: 670, - 11858: 670, - 11859: 670, - 11860: 670, - 11861: 670, - 11862: 670, - 11863: 670, - 11864: 670, - 11865: 670, - 11866: 670, - 11867: 670, - 11868: 670, - 11869: 670, - 11870: 670, - 11871: 670, - 11872: 670, - 11873: 670, - 11874: 670, - 11875: 670, - 11876: 670, - 11877: 670, - 11878: 670, - 11879: 670, - 11880: 670, - 11881: 670, - 11882: 670, - 11883: 670, - 11884: 670, - 11885: 670, - 11886: 670, - 11887: 670, - 11888: 670, - 11889: 670, - 11890: 670, - 11891: 670, - 11892: 670, - 11893: 670, - 11894: 670, - 11895: 670, - 11896: 670, - 11897: 670, - 11898: 670, - 11899: 670, - 11900: 670, - 11901: 670, - 11902: 670, - 11903: 670, - 11904: 670, - 11905: 670, - 11906: 670, - 11907: 670, - 11908: 670, - 11909: 670, - 11910: 670, - 11911: 670, - 11912: 670, - 11913: 670, - 11914: 670, - 11915: 670, - 11916: 670, - 11917: 670, - 11918: 670, - 11919: 670, - 11920: 670, - 11921: 670, - 11922: 670, - 11923: 670, - 11924: 670, - 11925: 670, - 11926: 670, - 11927: 670, - 11928: 670, - 11929: 670, - 11930: 670, - 11931: 670, - 11932: 670, - 11933: 670, - 11934: 670, - 11935: 670, - 11936: 670, - 11937: 670, - 11938: 670, - 11939: 670, - 11940: 670, - 11941: 670, - 11942: 670, - 11943: 670, - 11944: 670, - 11945: 670, - 11946: 670, - 11947: 670, - 11948: 670, - 11949: 670, - 11950: 670, - 11951: 670, - 11952: 670, - 11953: 670, - 11954: 670, - 11955: 670, - 11956: 670, - 11957: 670, - 11958: 670, - 11959: 670, - 11960: 670, - 11961: 670, - 11962: 670, - 11963: 670, - 11964: 670, - 11965: 670, - 11966: 670, - 11967: 670, - 11968: 670, - 11969: 670, - 11970: 670, - 11971: 670, - 11972: 670, - 11973: 670, - 11974: 670, - 11975: 670, - 11976: 670, - 11977: 670, - 11978: 670, - 11979: 670, - 11980: 670, - 11981: 670, - 11982: 670, - 11983: 670, - 11984: 670, - 11985: 670, - 11986: 670, - 11987: 670, - 11988: 670, - 11989: 670, - 11990: 670, - 11991: 670, - 11992: 670, - 11993: 670, - 11994: 670, - 11995: 670, - 11996: 670, - 11997: 670, - 11998: 670, - 11999: 670, - 12000: 670, - 12001: 670, - 12002: 670, - 12003: 670, - 12004: 670, - 12005: 670, - 12006: 670, - 12007: 670, - 12008: 670, - 12009: 670, - 12010: 670, - 12011: 670, - 12012: 670, - 12013: 670, - 12014: 670, - 12015: 670, - 12016: 670, - 12017: 670, - 12018: 670, - 12019: 670, - 12020: 670, - 12021: 670, - 12022: 670, - 12023: 670, - 12024: 670, - 12025: 670, - 12026: 670, - 12027: 670, - 12028: 670, - 12029: 670, - 12030: 670, - 12031: 670, - 12032: 670, - 12033: 670, - 12034: 670, - 12035: 670, - 12036: 670, - 12037: 670, - 12038: 670, - 12039: 670, - 12040: 670, - 12041: 670, - 12042: 670, - 12043: 670, - 12044: 670, - 12045: 670, - 12046: 670, - 12047: 670, - 12048: 670, - 12049: 670, - 12050: 670, - 12051: 670, - 12052: 670, - 12053: 670, - 12054: 670, - 12055: 670, - 12056: 670, - 12057: 670, - 12058: 670, - 12059: 670, - 12060: 670, - 12061: 670, - 12062: 670, - 12063: 670, - 12064: 670, - 12065: 670, - 12066: 670, - 12067: 670, - 12068: 670, - 12069: 670, - 12070: 670, - 12071: 670, - 12072: 670, - 12073: 670, - 12074: 670, - 12075: 670, - 12076: 670, - 12077: 670, - 12078: 670, - 12079: 670, - 12080: 670, - 12081: 670, - 12082: 670, - 12083: 670, - 12084: 670, - 12085: 670, - 12086: 670, - 12087: 670, - 12088: 670, - 12089: 671, - 12090: 671, - 12091: 671, - 12092: 671, - 12093: 671, - 12094: 671, - 12095: 671, - 12096: 671, - 12097: 671, - 12098: 671, - 12099: 671, - 12100: 671, - 12101: 671, - 12102: 671, - 12103: 671, - 12104: 671, - 12105: 671, - 12106: 671, - 12107: 671, - 12108: 671, - 12109: 671, - 12110: 671, - 12111: 671, - 12112: 671, - 12113: 671, - 12114: 671, - 12115: 671, - 12116: 671, - 12117: 671, - 12118: 671, - 12119: 671, - 12120: 671, - 12121: 671, - 12122: 671, - 12123: 671, - 12124: 671, - 12125: 671, - 12126: 671, - 12127: 671, - 12128: 671, - 12129: 671, - 12130: 671, - 12131: 671, - 12132: 671, - 12133: 671, - 12134: 671, - 12135: 671, - 12136: 671, - 12137: 671, - 12138: 671, - 12139: 671, - 12140: 671, - 12141: 671, - 12142: 671, - 12143: 671, - 12144: 671, - 12145: 671, - 12146: 671, - 12147: 671, - 12148: 671, - 12149: 671, - 12150: 671, - 12151: 671, - 12152: 671, - 12153: 671, - 12154: 671, - 12155: 671, - 12156: 671, - 12157: 671, - 12158: 671, - 12159: 671, - 12160: 671, - 12161: 671, - 12162: 671, - 12163: 671, - 12164: 671, - 12165: 671, - 12166: 671, - 12167: 671, - 12168: 671, - 12169: 671, - 12170: 671, - 12171: 671, - 12172: 671, - 12173: 671, - 12174: 671, - 12175: 671, - 12176: 671, - 12177: 671, - 12178: 671, - 12179: 671, - 12180: 671, - 12181: 671, - 12182: 671, - 12183: 671, - 12184: 671, - 12185: 671, - 12186: 671, - 12187: 671, - 12188: 671, - 12189: 671, - 12190: 671, - 12191: 671, - 12192: 671, - 12193: 671, - 12194: 671, - 12195: 671, - 12196: 671, - 12197: 671, - 12198: 671, - 12199: 671, - 12200: 671, - 12201: 671, - 12202: 671, - 12203: 671, - 12204: 671, - 12205: 671, - 12206: 671, - 12207: 671, - 12208: 671, - 12209: 671, - 12210: 671, - 12211: 671, - 12212: 671, - 12213: 671, - 12214: 671, - 12215: 671, - 12216: 671, - 12217: 671, - 12218: 671, - 12219: 671, - 12220: 671, - 12221: 671, - 12222: 671, - 12223: 671, - 12224: 671, - 12225: 671, - 12226: 671, - 12227: 671, - 12228: 671, - 12229: 671, - 12230: 671, - 12231: 671, - 12232: 671, - 12233: 671, - 12234: 671, - 12235: 671, - 12236: 671, - 12237: 671, - 12238: 671, - 12239: 671, - 12240: 671, - 12241: 671, - 12242: 671, - 12243: 671, - 12244: 671, - 12245: 671, - 12246: 671, - 12247: 671, - 12248: 671, - 12249: 671, - 12250: 671, - 12251: 671, - 12252: 671, - 12253: 671, - 12254: 671, - 12255: 671, - 12256: 671, - 12257: 671, - 12258: 671, - 12259: 671, - 12260: 671, - 12261: 671, - 12262: 671, - 12263: 671, - 12264: 671, - 12265: 671, - 12266: 671, - 12267: 671, - 12268: 671, - 12269: 671, - 12270: 671, - 12271: 671, - 12272: 671, - 12273: 671, - 12274: 671, - 12275: 671, - 12276: 671, - 12277: 671, - 12278: 671, - 12279: 671, - 12280: 671, - 12281: 671, - 12282: 671, - 12283: 671, - 12284: 671, - 12285: 671, - 12286: 671, - 12287: 671, - 12288: 671, - 12289: 671, - 12290: 671, - 12291: 671, - 12292: 671, - 12293: 671, - 12294: 671, - 12295: 671, - 12296: 671, - 12297: 671, - 12298: 671, - 12299: 671, - 12300: 671, - 12301: 671, - 12302: 671, - 12303: 671, - 12304: 671, - 12305: 671, - 12306: 671, - 12307: 671, - 12308: 671, - 12309: 671, - 12310: 671, - 12311: 671, - 12312: 671, - 12313: 671, - 12314: 671, - 12315: 671, - 12316: 671, - 12317: 671, - 12318: 671, - 12319: 671, - 12320: 671, - 12321: 671, - 12322: 671, - 12323: 671, - 12324: 671, - 12325: 671, - 12326: 671, - 12327: 671, - 12328: 671, - 12329: 671, - 12330: 671, - 12331: 671, - 12332: 671, - 12333: 671, - 12334: 671, - 12335: 671, - 12336: 671, - 12337: 671, - 12338: 671, - 12339: 671, - 12340: 671, - 12341: 671, - 12342: 671, - 12343: 671, - 12344: 671, - 12345: 671, - 12346: 671, - 12347: 671, - 12348: 671, - 12349: 671, - 12350: 671, - 12351: 671, - 12352: 671, - 12353: 671, - 12354: 671, - 12355: 671, - 12356: 671, - 12357: 671, - 12358: 671, - 12359: 671, - 12360: 671, - 12361: 671, - 12362: 671, - 12363: 671, - 12364: 671, - 12365: 671, - 12366: 671, - 12367: 671, - 12368: 671, - 12369: 671, - 12370: 671, - 12371: 671, - 12372: 671, - 12373: 671, - 12374: 671, - 12375: 671, - 12376: 671, - 12377: 671, - 12378: 671, - 12379: 671, - 12380: 671, - 12381: 671, - 12382: 671, - 12383: 671, - 12384: 671, - 12385: 671, - 12386: 671, - 12387: 671, - 12388: 671, - 12389: 671, - 12390: 671, - 12391: 671, - 12392: 671, - 12393: 671, - 12394: 671, - 12395: 671, - 12396: 671, - 12397: 671, - 12398: 671, - 12399: 671, - 12400: 671, - 12401: 671, - 12402: 671, - 12403: 671, - 12404: 671, - 12405: 671, - 12406: 671, - 12407: 671, - 12408: 671, - 12409: 671, - 12410: 671, - 12411: 671, - 12412: 671, - 12413: 672, - 12414: 672, - 12415: 672, - 12416: 672, - 12417: 672, - 12418: 672, - 12419: 672, - 12420: 672, - 12421: 672, - 12422: 672, - 12423: 672, - 12424: 672, - 12425: 672, - 12426: 672, - 12427: 672, - 12428: 672, - 12429: 672, - 12430: 672, - 12431: 672, - 12432: 672, - 12433: 672, - 12434: 672, - 12435: 672, - 12436: 672, - 12437: 672, - 12438: 672, - 12439: 672, - 12440: 672, - 12441: 672, - 12442: 672, - 12443: 672, - 12444: 672, - 12445: 672, - 12446: 672, - 12447: 672, - 12448: 672, - 12449: 672, - 12450: 672, - 12451: 672, - 12452: 672, - 12453: 672, - 12454: 672, - 12455: 672, - 12456: 672, - 12457: 672, - 12458: 672, - 12459: 672, - 12460: 672, - 12461: 672, - 12462: 672, - 12463: 672, - 12464: 672, - 12465: 672, - 12466: 672, - 12467: 672, - 12468: 672, - 12469: 672, - 12470: 672, - 12471: 672, - 12472: 672, - 12473: 672, - 12474: 672, - 12475: 672, - 12476: 672, - 12477: 672, - 12478: 672, - 12479: 672, - 12480: 672, - 12481: 672, - 12482: 672, - 12483: 672, - 12484: 672, - 12485: 672, - 12486: 672, - 12487: 672, - 12488: 672, - 12489: 672, - 12490: 672, - 12491: 672, - 12492: 672, - 12493: 672, - 12494: 672, - 12495: 672, - 12496: 672, - 12497: 672, - 12498: 672, - 12499: 672, - 12500: 672, - 12501: 672, - 12502: 672, - 12503: 672, - 12504: 672, - 12505: 672, - 12506: 672, - 12507: 672, - 12508: 672, - 12509: 672, - 12510: 672, - 12511: 672, - 12512: 672, - 12513: 672, - 12514: 672, - 12515: 672, - 12516: 672, - 12517: 672, - 12518: 672, - 12519: 672, - 12520: 672, - 12521: 672, - 12522: 672, - 12523: 672, - 12524: 672, - 12525: 672, - 12526: 672, - 12527: 672, - 12528: 672, - 12529: 672, - 12530: 672, - 12531: 672, - 12532: 672, - 12533: 672, - 12534: 672, - 12535: 672, - 12536: 672, - 12537: 672, - 12538: 672, - 12539: 672, - 12540: 672, - 12541: 672, - 12542: 672, - 12543: 672, - 12544: 672, - 12545: 672, - 12546: 672, - 12547: 672, - 12548: 672, - 12549: 672, - 12550: 672, - 12551: 672, - 12552: 672, - 12553: 672, - 12554: 672, - 12555: 672, - 12556: 672, - 12557: 672, - 12558: 672, - 12559: 672, - 12560: 672, - 12561: 672, - 12562: 672, - 12563: 672, - 12564: 672, - 12565: 672, - 12566: 672, - 12567: 672, - 12568: 672, - 12569: 672, - 12570: 672, - 12571: 672, - 12572: 672, - 12573: 672, - 12574: 672, - 12575: 672, - 12576: 672, - 12577: 672, - 12578: 672, - 12579: 672, - 12580: 672, - 12581: 672, - 12582: 672, - 12583: 672, - 12584: 672, - 12585: 672, - 12586: 672, - 12587: 672, - 12588: 672, - 12589: 672, - 12590: 672, - 12591: 672, - 12592: 672, - 12593: 672, - 12594: 672, - 12595: 672, - 12596: 672, - 12597: 672, - 12598: 672, - 12599: 672, - 12600: 672, - 12601: 672, - 12602: 672, - 12603: 672, - 12604: 672, - 12605: 672, - 12606: 672, - 12607: 672, - 12608: 672, - 12609: 672, - 12610: 672, - 12611: 672, - 12612: 672, - 12613: 672, - 12614: 672, - 12615: 672, - 12616: 672, - 12617: 672, - 12618: 672, - 12619: 672, - 12620: 672, - 12621: 672, - 12622: 672, - 12623: 672, - 12624: 672, - 12625: 672, - 12626: 672, - 12627: 672, - 12628: 672, - 12629: 672, - 12630: 672, - 12631: 672, - 12632: 672, - 12633: 672, - 12634: 672, - 12635: 672, - 12636: 672, - 12637: 672, - 12638: 672, - 12639: 672, - 12640: 672, - 12641: 672, - 12642: 672, - 12643: 672, - 12644: 672, - 12645: 672, - 12646: 672, - 12647: 672, - 12648: 672, - 12649: 672, - 12650: 672, - 12651: 672, - 12652: 672, - 12653: 672, - 12654: 672, - 12655: 672, - 12656: 672, - 12657: 672, - 12658: 672, - 12659: 672, - 12660: 672, - 12661: 672, - 12662: 672, - 12663: 672, - 12664: 672, - 12665: 672, - 12666: 672, - 12667: 672, - 12668: 672, - 12669: 672, - 12670: 672, - 12671: 672, - 12672: 672, - 12673: 672, - 12674: 672, - 12675: 672, - 12676: 672, - 12677: 672, - 12678: 672, - 12679: 672, - 12680: 672, - 12681: 672, - 12682: 672, - 12683: 672, - 12684: 672, - 12685: 672, - 12686: 672, - 12687: 672, - 12688: 672, - 12689: 672, - 12690: 672, - 12691: 672, - 12692: 672, - 12693: 672, - 12694: 672, - 12695: 672, - 12696: 672, - 12697: 672, - 12698: 672, - 12699: 672, - 12700: 672, - 12701: 672, - 12702: 672, - 12703: 672, - 12704: 672, - 12705: 672, - 12706: 672, - 12707: 672, - 12708: 672, - 12709: 672, - 12710: 672, - 12711: 672, - 12712: 672, - 12713: 672, - 12714: 672, - 12715: 672, - 12716: 672, - 12717: 672, - 12718: 672, - 12719: 672, - 12720: 672, - 12721: 672, - 12722: 672, - 12723: 672, - 12724: 672, - 12725: 672, - 12726: 672, - 12727: 672, - 12728: 672, - 12729: 672, - 12730: 672, - 12731: 672, - 12732: 672, - 12733: 672, - 12734: 672, - 12735: 672, - 12736: 672, - 12737: 673, - 12738: 673, - 12739: 673, - 12740: 673, - 12741: 673, - 12742: 673, - 12743: 673, - 12744: 673, - 12745: 673, - 12746: 673, - 12747: 673, - 12748: 673, - 12749: 673, - 12750: 673, - 12751: 673, - 12752: 673, - 12753: 673, - 12754: 673, - 12755: 673, - 12756: 673, - 12757: 673, - 12758: 673, - 12759: 673, - 12760: 673, - 12761: 673, - 12762: 673, - 12763: 673, - 12764: 673, - 12765: 673, - 12766: 673, - 12767: 673, - 12768: 673, - 12769: 673, - 12770: 673, - 12771: 673, - 12772: 673, - 12773: 673, - 12774: 673, - 12775: 673, - 12776: 673, - 12777: 673, - 12778: 673, - 12779: 673, - 12780: 673, - 12781: 673, - 12782: 673, - 12783: 673, - 12784: 673, - 12785: 673, - 12786: 673, - 12787: 673, - 12788: 673, - 12789: 673, - 12790: 673, - 12791: 673, - 12792: 673, - 12793: 673, - 12794: 673, - 12795: 673, - 12796: 673, - 12797: 673, - 12798: 673, - 12799: 673, - 12800: 673, - 12801: 673, - 12802: 673, - 12803: 673, - 12804: 673, - 12805: 673, - 12806: 673, - 12807: 673, - 12808: 673, - 12809: 673, - 12810: 673, - 12811: 673, - 12812: 673, - 12813: 673, - 12814: 673, - 12815: 673, - 12816: 673, - 12817: 673, - 12818: 673, - 12819: 673, - 12820: 673, - 12821: 673, - 12822: 673, - 12823: 673, - 12824: 673, - 12825: 673, - 12826: 673, - 12827: 673, - 12828: 673, - 12829: 673, - 12830: 673, - 12831: 673, - 12832: 673, - 12833: 673, - 12834: 673, - 12835: 673, - 12836: 673, - 12837: 673, - 12838: 673, - 12839: 673, - 12840: 673, - 12841: 673, - 12842: 673, - 12843: 673, - 12844: 673, - 12845: 673, - 12846: 673, - 12847: 673, - 12848: 673, - 12849: 673, - 12850: 673, - 12851: 673, - 12852: 673, - 12853: 673, - 12854: 673, - 12855: 673, - 12856: 673, - 12857: 673, - 12858: 673, - 12859: 673, - 12860: 673, - 12861: 673, - 12862: 673, - 12863: 673, - 12864: 673, - 12865: 673, - 12866: 673, - 12867: 673, - 12868: 673, - 12869: 673, - 12870: 673, - 12871: 673, - 12872: 673, - 12873: 673, - 12874: 673, - 12875: 673, - 12876: 673, - 12877: 673, - 12878: 673, - 12879: 673, - 12880: 673, - 12881: 673, - 12882: 673, - 12883: 673, - 12884: 673, - 12885: 673, - 12886: 673, - 12887: 673, - 12888: 673, - 12889: 673, - 12890: 673, - 12891: 673, - 12892: 673, - 12893: 673, - 12894: 673, - 12895: 673, - 12896: 673, - 12897: 673, - 12898: 673, - 12899: 673, - 12900: 673, - 12901: 673, - 12902: 673, - 12903: 673, - 12904: 673, - 12905: 673, - 12906: 673, - 12907: 673, - 12908: 673, - 12909: 673, - 12910: 673, - 12911: 673, - 12912: 673, - 12913: 673, - 12914: 673, - 12915: 673, - 12916: 673, - 12917: 673, - 12918: 673, - 12919: 673, - 12920: 673, - 12921: 673, - 12922: 673, - 12923: 673, - 12924: 673, - 12925: 673, - 12926: 673, - 12927: 673, - 12928: 673, - 12929: 673, - 12930: 673, - 12931: 673, - 12932: 673, - 12933: 673, - 12934: 673, - 12935: 673, - 12936: 673, - 12937: 673, - 12938: 673, - 12939: 673, - 12940: 673, - 12941: 673, - 12942: 673, - 12943: 673, - 12944: 673, - 12945: 673, - 12946: 673, - 12947: 673, - 12948: 673, - 12949: 673, - 12950: 673, - 12951: 673, - 12952: 673, - 12953: 673, - 12954: 673, - 12955: 673, - 12956: 673, - 12957: 673, - 12958: 673, - 12959: 673, - 12960: 673, - 12961: 673, - 12962: 673, - 12963: 673, - 12964: 673, - 12965: 673, - 12966: 673, - 12967: 673, - 12968: 673, - 12969: 673, - 12970: 673, - 12971: 673, - 12972: 673, - 12973: 673, - 12974: 673, - 12975: 673, - 12976: 673, - 12977: 673, - 12978: 673, - 12979: 673, - 12980: 673, - 12981: 673, - 12982: 673, - 12983: 673, - 12984: 673, - 12985: 673, - 12986: 673, - 12987: 673, - 12988: 673, - 12989: 673, - 12990: 673, - 12991: 673, - 12992: 673, - 12993: 673, - 12994: 673, - 12995: 673, - 12996: 673, - 12997: 673, - 12998: 673, - 12999: 673, - 13000: 673, - 13001: 673, - 13002: 673, - 13003: 673, - 13004: 673, - 13005: 673, - 13006: 673, - 13007: 673, - 13008: 673, - 13009: 673, - 13010: 673, - 13011: 673, - 13012: 673, - 13013: 673, - 13014: 673, - 13015: 673, - 13016: 673, - 13017: 673, - 13018: 673, - 13019: 673, - 13020: 673, - 13021: 673, - 13022: 673, - 13023: 673, - 13024: 673, - 13025: 673, - 13026: 673, - 13027: 673, - 13028: 673, - 13029: 673, - 13030: 673, - 13031: 673, - 13032: 673, - 13033: 673, - 13034: 673, - 13035: 673, - 13036: 673, - 13037: 673, - 13038: 673, - 13039: 673, - 13040: 673, - 13041: 673, - 13042: 673, - 13043: 673, - 13044: 673, - 13045: 673, - 13046: 673, - 13047: 673, - 13048: 673, - 13049: 673, - 13050: 673, - 13051: 673, - 13052: 673, - 13053: 673, - 13054: 673, - 13055: 673, - 13056: 673, - 13057: 673, - 13058: 673, - 13059: 673, - 13060: 673, - 13061: 674, - 13062: 674, - 13063: 674, - 13064: 674, - 13065: 674, - 13066: 674, - 13067: 674, - 13068: 674, - 13069: 674, - 13070: 674, - 13071: 674, - 13072: 674, - 13073: 674, - 13074: 674, - 13075: 674, - 13076: 674, - 13077: 674, - 13078: 674, - 13079: 674, - 13080: 674, - 13081: 674, - 13082: 674, - 13083: 674, - 13084: 674, - 13085: 674, - 13086: 674, - 13087: 674, - 13088: 674, - 13089: 674, - 13090: 674, - 13091: 674, - 13092: 674, - 13093: 674, - 13094: 674, - 13095: 674, - 13096: 674, - 13097: 674, - 13098: 674, - 13099: 674, - 13100: 674, - 13101: 674, - 13102: 674, - 13103: 674, - 13104: 674, - 13105: 674, - 13106: 674, - 13107: 674, - 13108: 674, - 13109: 674, - 13110: 674, - 13111: 674, - 13112: 674, - 13113: 674, - 13114: 674, - 13115: 674, - 13116: 674, - 13117: 674, - 13118: 674, - 13119: 674, - 13120: 674, - 13121: 674, - 13122: 674, - 13123: 674, - 13124: 674, - 13125: 674, - 13126: 674, - 13127: 674, - 13128: 674, - 13129: 674, - 13130: 674, - 13131: 674, - 13132: 674, - 13133: 674, - 13134: 674, - 13135: 674, - 13136: 674, - 13137: 674, - 13138: 674, - 13139: 674, - 13140: 674, - 13141: 674, - 13142: 674, - 13143: 674, - 13144: 674, - 13145: 674, - 13146: 674, - 13147: 674, - 13148: 674, - 13149: 674, - 13150: 674, - 13151: 674, - 13152: 674, - 13153: 674, - 13154: 674, - 13155: 674, - 13156: 674, - 13157: 674, - 13158: 674, - 13159: 674, - 13160: 674, - 13161: 674, - 13162: 674, - 13163: 674, - 13164: 674, - 13165: 674, - 13166: 674, - 13167: 674, - 13168: 674, - 13169: 674, - 13170: 674, - 13171: 674, - 13172: 674, - 13173: 674, - 13174: 674, - 13175: 674, - 13176: 674, - 13177: 674, - 13178: 674, - 13179: 674, - 13180: 674, - 13181: 674, - 13182: 674, - 13183: 674, - 13184: 674, - 13185: 674, - 13186: 674, - 13187: 674, - 13188: 674, - 13189: 674, - 13190: 674, - 13191: 674, - 13192: 674, - 13193: 674, - 13194: 674, - 13195: 674, - 13196: 674, - 13197: 674, - 13198: 674, - 13199: 674, - 13200: 674, - 13201: 674, - 13202: 674, - 13203: 674, - 13204: 674, - 13205: 674, - 13206: 674, - 13207: 674, - 13208: 674, - 13209: 674, - 13210: 674, - 13211: 674, - 13212: 674, - 13213: 674, - 13214: 674, - 13215: 674, - 13216: 674, - 13217: 674, - 13218: 674, - 13219: 674, - 13220: 674, - 13221: 674, - 13222: 674, - 13223: 674, - 13224: 674, - 13225: 674, - 13226: 674, - 13227: 674, - 13228: 674, - 13229: 674, - 13230: 674, - 13231: 674, - 13232: 674, - 13233: 674, - 13234: 674, - 13235: 674, - 13236: 674, - 13237: 674, - 13238: 674, - 13239: 674, - 13240: 674, - 13241: 674, - 13242: 674, - 13243: 674, - 13244: 674, - 13245: 674, - 13246: 674, - 13247: 674, - 13248: 674, - 13249: 674, - 13250: 674, - 13251: 674, - 13252: 674, - 13253: 674, - 13254: 674, - 13255: 674, - 13256: 674, - 13257: 674, - 13258: 674, - 13259: 674, - 13260: 674, - 13261: 674, - 13262: 674, - 13263: 674, - 13264: 674, - 13265: 674, - 13266: 674, - 13267: 674, - 13268: 674, - 13269: 674, - 13270: 674, - 13271: 674, - 13272: 674, - 13273: 674, - 13274: 674, - 13275: 674, - 13276: 674, - 13277: 674, - 13278: 674, - 13279: 674, - 13280: 674, - 13281: 674, - 13282: 674, - 13283: 674, - 13284: 674, - 13285: 674, - 13286: 674, - 13287: 674, - 13288: 674, - 13289: 674, - 13290: 674, - 13291: 674, - 13292: 674, - 13293: 674, - 13294: 674, - 13295: 674, - 13296: 674, - 13297: 674, - 13298: 674, - 13299: 674, - 13300: 674, - 13301: 674, - 13302: 674, - 13303: 674, - 13304: 674, - 13305: 674, - 13306: 674, - 13307: 674, - 13308: 674, - 13309: 674, - 13310: 674, - 13311: 674, - 13312: 674, - 13313: 674, - 13314: 674, - 13315: 674, - 13316: 674, - 13317: 674, - 13318: 674, - 13319: 674, - 13320: 674, - 13321: 674, - 13322: 674, - 13323: 674, - 13324: 674, - 13325: 674, - 13326: 674, - 13327: 674, - 13328: 674, - 13329: 674, - 13330: 674, - 13331: 674, - 13332: 674, - 13333: 674, - 13334: 674, - 13335: 674, - 13336: 674, - 13337: 674, - 13338: 674, - 13339: 674, - 13340: 674, - 13341: 674, - 13342: 674, - 13343: 674, - 13344: 674, - 13345: 674, - 13346: 674, - 13347: 674, - 13348: 674, - 13349: 674, - 13350: 674, - 13351: 674, - 13352: 674, - 13353: 674, - 13354: 674, - 13355: 674, - 13356: 674, - 13357: 674, - 13358: 674, - 13359: 674, - 13360: 674, - 13361: 674, - 13362: 674, - 13363: 674, - 13364: 674, - 13365: 674, - 13366: 674, - 13367: 674, - 13368: 674, - 13369: 674, - 13370: 674, - 13371: 674, - 13372: 674, - 13373: 674, - 13374: 674, - 13375: 674, - 13376: 674, - 13377: 674, - 13378: 674, - 13379: 674, - 13380: 674, - 13381: 674, - 13382: 674, - 13383: 674, - 13384: 674, - 13385: 675, - 13386: 675, - 13387: 675, - 13388: 675, - 13389: 675, - 13390: 675, - 13391: 675, - 13392: 675, - 13393: 675, - 13394: 675, - 13395: 675, - 13396: 675, - 13397: 675, - 13398: 675, - 13399: 675, - 13400: 675, - 13401: 675, - 13402: 675, - 13403: 675, - 13404: 675, - 13405: 675, - 13406: 675, - 13407: 675, - 13408: 675, - 13409: 675, - 13410: 675, - 13411: 675, - 13412: 675, - 13413: 675, - 13414: 675, - 13415: 675, - 13416: 675, - 13417: 675, - 13418: 675, - 13419: 675, - 13420: 675, - 13421: 675, - 13422: 675, - 13423: 675, - 13424: 675, - 13425: 675, - 13426: 675, - 13427: 675, - 13428: 675, - 13429: 675, - 13430: 675, - 13431: 675, - 13432: 675, - 13433: 675, - 13434: 675, - 13435: 675, - 13436: 675, - 13437: 675, - 13438: 675, - 13439: 675, - 13440: 675, - 13441: 675, - 13442: 675, - 13443: 675, - 13444: 675, - 13445: 675, - 13446: 675, - 13447: 675, - 13448: 675, - 13449: 675, - 13450: 675, - 13451: 675, - 13452: 675, - 13453: 675, - 13454: 675, - 13455: 675, - 13456: 675, - 13457: 675, - 13458: 675, - 13459: 675, - 13460: 675, - 13461: 675, - 13462: 675, - 13463: 675, - 13464: 675, - 13465: 675, - 13466: 675, - 13467: 675, - 13468: 675, - 13469: 675, - 13470: 675, - 13471: 675, - 13472: 675, - 13473: 675, - 13474: 675, - 13475: 675, - 13476: 675, - 13477: 675, - 13478: 675, - 13479: 675, - 13480: 675, - 13481: 675, - 13482: 675, - 13483: 675, - 13484: 675, - 13485: 675, - 13486: 675, - 13487: 675, - 13488: 675, - 13489: 675, - 13490: 675, - 13491: 675, - 13492: 675, - 13493: 675, - 13494: 675, - 13495: 675, - 13496: 675, - 13497: 675, - 13498: 675, - 13499: 675, - 13500: 675, - 13501: 675, - 13502: 675, - 13503: 675, - 13504: 675, - 13505: 675, - 13506: 675, - 13507: 675, - 13508: 675, - 13509: 675, - 13510: 675, - 13511: 675, - 13512: 675, - 13513: 675, - 13514: 675, - 13515: 675, - 13516: 675, - 13517: 675, - 13518: 675, - 13519: 675, - 13520: 675, - 13521: 675, - 13522: 675, - 13523: 675, - 13524: 675, - 13525: 675, - 13526: 675, - 13527: 675, - 13528: 675, - 13529: 675, - 13530: 675, - 13531: 675, - 13532: 675, - 13533: 675, - 13534: 675, - 13535: 675, - 13536: 675, - 13537: 675, - 13538: 675, - 13539: 675, - 13540: 675, - 13541: 675, - 13542: 675, - 13543: 675, - 13544: 675, - 13545: 675, - 13546: 675, - 13547: 675, - 13548: 675, - 13549: 675, - 13550: 675, - 13551: 675, - 13552: 675, - 13553: 675, - 13554: 675, - 13555: 675, - 13556: 675, - 13557: 675, - 13558: 675, - 13559: 675, - 13560: 675, - 13561: 675, - 13562: 675, - 13563: 675, - 13564: 675, - 13565: 675, - 13566: 675, - 13567: 675, - 13568: 675, - 13569: 675, - 13570: 675, - 13571: 675, - 13572: 675, - 13573: 675, - 13574: 675, - 13575: 675, - 13576: 675, - 13577: 675, - 13578: 675, - 13579: 675, - 13580: 675, - 13581: 675, - 13582: 675, - 13583: 675, - 13584: 675, - 13585: 675, - 13586: 675, - 13587: 675, - 13588: 675, - 13589: 675, - 13590: 675, - 13591: 675, - 13592: 675, - 13593: 675, - 13594: 675, - 13595: 675, - 13596: 675, - 13597: 675, - 13598: 675, - 13599: 675, - 13600: 675, - 13601: 675, - 13602: 675, - 13603: 675, - 13604: 675, - 13605: 675, - 13606: 675, - 13607: 675, - 13608: 675, - 13609: 675, - 13610: 675, - 13611: 675, - 13612: 675, - 13613: 675, - 13614: 675, - 13615: 675, - 13616: 675, - 13617: 675, - 13618: 675, - 13619: 675, - 13620: 675, - 13621: 675, - 13622: 675, - 13623: 675, - 13624: 675, - 13625: 675, - 13626: 675, - 13627: 675, - 13628: 675, - 13629: 675, - 13630: 675, - 13631: 675, - 13632: 675, - 13633: 675, - 13634: 675, - 13635: 675, - 13636: 675, - 13637: 675, - 13638: 675, - 13639: 675, - 13640: 675, - 13641: 675, - 13642: 675, - 13643: 675, - 13644: 675, - 13645: 675, - 13646: 675, - 13647: 675, - 13648: 675, - 13649: 675, - 13650: 675, - 13651: 675, - 13652: 675, - 13653: 675, - 13654: 675, - 13655: 675, - 13656: 675, - 13657: 675, - 13658: 675, - 13659: 675, - 13660: 675, - 13661: 675, - 13662: 675, - 13663: 675, - 13664: 675, - 13665: 675, - 13666: 675, - 13667: 675, - 13668: 675, - 13669: 675, - 13670: 675, - 13671: 675, - 13672: 675, - 13673: 675, - 13674: 675, - 13675: 675, - 13676: 675, - 13677: 675, - 13678: 675, - 13679: 675, - 13680: 675, - 13681: 675, - 13682: 675, - 13683: 675, - 13684: 675, - 13685: 675, - 13686: 675, - 13687: 675, - 13688: 675, - 13689: 675, - 13690: 675, - 13691: 675, - 13692: 675, - 13693: 675, - 13694: 675, - 13695: 675, - 13696: 675, - 13697: 675, - 13698: 675, - 13699: 675, - 13700: 675, - 13701: 675, - 13702: 675, - 13703: 675, - 13704: 675, - 13705: 675, - 13706: 675, - 13707: 675, - 13708: 675, - 13709: 676, - 13710: 676, - 13711: 676, - 13712: 676, - 13713: 676, - 13714: 676, - 13715: 676, - 13716: 676, - 13717: 676, - 13718: 676, - 13719: 676, - 13720: 676, - 13721: 676, - 13722: 676, - 13723: 676, - 13724: 676, - 13725: 676, - 13726: 676, - 13727: 676, - 13728: 676, - 13729: 676, - 13730: 676, - 13731: 676, - 13732: 676, - 13733: 676, - 13734: 676, - 13735: 676, - 13736: 676, - 13737: 676, - 13738: 676, - 13739: 676, - 13740: 676, - 13741: 676, - 13742: 676, - 13743: 676, - 13744: 676, - 13745: 676, - 13746: 676, - 13747: 676, - 13748: 676, - 13749: 676, - 13750: 676, - 13751: 676, - 13752: 676, - 13753: 676, - 13754: 676, - 13755: 676, - 13756: 676, - 13757: 676, - 13758: 676, - 13759: 676, - 13760: 676, - 13761: 676, - 13762: 676, - 13763: 676, - 13764: 676, - 13765: 676, - 13766: 676, - 13767: 676, - 13768: 676, - 13769: 676, - 13770: 676, - 13771: 676, - 13772: 676, - 13773: 676, - 13774: 676, - 13775: 676, - 13776: 676, - 13777: 676, - 13778: 676, - 13779: 676, - 13780: 676, - 13781: 676, - 13782: 676, - 13783: 676, - 13784: 676, - 13785: 676, - 13786: 676, - 13787: 676, - 13788: 676, - 13789: 676, - 13790: 676, - 13791: 676, - 13792: 676, - 13793: 676, - 13794: 676, - 13795: 676, - 13796: 676, - 13797: 676, - 13798: 676, - 13799: 676, - 13800: 676, - 13801: 676, - 13802: 676, - 13803: 676, - 13804: 676, - 13805: 676, - 13806: 676, - 13807: 676, - 13808: 676, - 13809: 676, - 13810: 676, - 13811: 676, - 13812: 676, - 13813: 676, - 13814: 676, - 13815: 676, - 13816: 676, - 13817: 676, - 13818: 676, - 13819: 676, - 13820: 676, - 13821: 676, - 13822: 676, - 13823: 676, - 13824: 676, - 13825: 676, - 13826: 676, - 13827: 676, - 13828: 676, - 13829: 676, - 13830: 676, - 13831: 676, - 13832: 676, - 13833: 676, - 13834: 676, - 13835: 676, - 13836: 676, - 13837: 676, - 13838: 676, - 13839: 676, - 13840: 676, - 13841: 676, - 13842: 676, - 13843: 676, - 13844: 676, - 13845: 676, - 13846: 676, - 13847: 676, - 13848: 676, - 13849: 676, - 13850: 676, - 13851: 676, - 13852: 676, - 13853: 676, - 13854: 676, - 13855: 676, - 13856: 676, - 13857: 676, - 13858: 676, - 13859: 676, - 13860: 676, - 13861: 676, - 13862: 676, - 13863: 676, - 13864: 676, - 13865: 676, - 13866: 676, - 13867: 676, - 13868: 676, - 13869: 676, - 13870: 676, - 13871: 676, - 13872: 676, - 13873: 676, - 13874: 676, - 13875: 676, - 13876: 676, - 13877: 676, - 13878: 676, - 13879: 676, - 13880: 676, - 13881: 676, - 13882: 676, - 13883: 676, - 13884: 676, - 13885: 676, - 13886: 676, - 13887: 676, - 13888: 676, - 13889: 676, - 13890: 676, - 13891: 676, - 13892: 676, - 13893: 676, - 13894: 676, - 13895: 676, - 13896: 676, - 13897: 676, - 13898: 676, - 13899: 676, - 13900: 676, - 13901: 676, - 13902: 676, - 13903: 676, - 13904: 676, - 13905: 676, - 13906: 676, - 13907: 676, - 13908: 676, - 13909: 676, - 13910: 676, - 13911: 676, - 13912: 676, - 13913: 676, - 13914: 676, - 13915: 676, - 13916: 676, - 13917: 676, - 13918: 676, - 13919: 676, - 13920: 676, - 13921: 676, - 13922: 676, - 13923: 676, - 13924: 676, - 13925: 676, - 13926: 676, - 13927: 676, - 13928: 676, - 13929: 676, - 13930: 676, - 13931: 676, - 13932: 676, - 13933: 676, - 13934: 676, - 13935: 676, - 13936: 676, - 13937: 676, - 13938: 676, - 13939: 676, - 13940: 676, - 13941: 676, - 13942: 676, - 13943: 676, - 13944: 676, - 13945: 676, - 13946: 676, - 13947: 676, - 13948: 676, - 13949: 676, - 13950: 676, - 13951: 676, - 13952: 676, - 13953: 676, - 13954: 676, - 13955: 676, - 13956: 676, - 13957: 676, - 13958: 676, - 13959: 676, - 13960: 676, - 13961: 676, - 13962: 676, - 13963: 676, - 13964: 676, - 13965: 676, - 13966: 676, - 13967: 676, - 13968: 676, - 13969: 676, - 13970: 676, - 13971: 676, - 13972: 676, - 13973: 676, - 13974: 676, - 13975: 676, - 13976: 676, - 13977: 676, - 13978: 676, - 13979: 676, - 13980: 676, - 13981: 676, - 13982: 676, - 13983: 676, - 13984: 676, - 13985: 676, - 13986: 676, - 13987: 676, - 13988: 676, - 13989: 676, - 13990: 676, - 13991: 676, - 13992: 676, - 13993: 676, - 13994: 676, - 13995: 676, - 13996: 676, - 13997: 676, - 13998: 676, - 13999: 676, - 14000: 676, - 14001: 676, - 14002: 676, - 14003: 676, - 14004: 676, - 14005: 676, - 14006: 676, - 14007: 676, - 14008: 676, - 14009: 676, - 14010: 676, - 14011: 676, - 14012: 676, - 14013: 676, - 14014: 676, - 14015: 676, - 14016: 676, - 14017: 676, - 14018: 676, - 14019: 676, - 14020: 676, - 14021: 676, - 14022: 676, - 14023: 676, - 14024: 676, - 14025: 676, - 14026: 676, - 14027: 676, - 14028: 676, - 14029: 676, - 14030: 676, - 14031: 676, - 14032: 676, - 14033: 677, - 14034: 677, - 14035: 677, - 14036: 677, - 14037: 677, - 14038: 677, - 14039: 677, - 14040: 677, - 14041: 677, - 14042: 677, - 14043: 677, - 14044: 677, - 14045: 677, - 14046: 677, - 14047: 677, - 14048: 677, - 14049: 677, - 14050: 677, - 14051: 677, - 14052: 677, - 14053: 677, - 14054: 677, - 14055: 677, - 14056: 677, - 14057: 677, - 14058: 677, - 14059: 677, - 14060: 677, - 14061: 677, - 14062: 677, - 14063: 677, - 14064: 677, - 14065: 677, - 14066: 677, - 14067: 677, - 14068: 677, - 14069: 677, - 14070: 677, - 14071: 677, - 14072: 677, - 14073: 677, - 14074: 677, - 14075: 677, - 14076: 677, - 14077: 677, - 14078: 677, - 14079: 677, - 14080: 677, - 14081: 677, - 14082: 677, - 14083: 677, - 14084: 677, - 14085: 677, - 14086: 677, - 14087: 677, - 14088: 677, - 14089: 677, - 14090: 677, - 14091: 677, - 14092: 677, - 14093: 677, - 14094: 677, - 14095: 677, - 14096: 677, - 14097: 677, - 14098: 677, - 14099: 677, - 14100: 677, - 14101: 677, - 14102: 677, - 14103: 677, - 14104: 677, - 14105: 677, - 14106: 677, - 14107: 677, - 14108: 677, - 14109: 677, - 14110: 677, - 14111: 677, - 14112: 677, - 14113: 677, - 14114: 677, - 14115: 677, - 14116: 677, - 14117: 677, - 14118: 677, - 14119: 677, - 14120: 677, - 14121: 677, - 14122: 677, - 14123: 677, - 14124: 677, - 14125: 677, - 14126: 677, - 14127: 677, - 14128: 677, - 14129: 677, - 14130: 677, - 14131: 677, - 14132: 677, - 14133: 677, - 14134: 677, - 14135: 677, - 14136: 677, - 14137: 677, - 14138: 677, - 14139: 677, - 14140: 677, - 14141: 677, - 14142: 677, - 14143: 677, - 14144: 677, - 14145: 677, - 14146: 677, - 14147: 677, - 14148: 677, - 14149: 677, - 14150: 677, - 14151: 677, - 14152: 677, - 14153: 677, - 14154: 677, - 14155: 677, - 14156: 677, - 14157: 677, - 14158: 677, - 14159: 677, - 14160: 677, - 14161: 677, - 14162: 677, - 14163: 677, - 14164: 677, - 14165: 677, - 14166: 677, - 14167: 677, - 14168: 677, - 14169: 677, - 14170: 677, - 14171: 677, - 14172: 677, - 14173: 677, - 14174: 677, - 14175: 677, - 14176: 677, - 14177: 677, - 14178: 677, - 14179: 677, - 14180: 677, - 14181: 677, - 14182: 677, - 14183: 677, - 14184: 677, - 14185: 677, - 14186: 677, - 14187: 677, - 14188: 677, - 14189: 677, - 14190: 677, - 14191: 677, - 14192: 677, - 14193: 677, - 14194: 677, - 14195: 677, - 14196: 677, - 14197: 677, - 14198: 677, - 14199: 677, - 14200: 677, - 14201: 677, - 14202: 677, - 14203: 677, - 14204: 677, - 14205: 677, - 14206: 677, - 14207: 677, - 14208: 677, - 14209: 677, - 14210: 677, - 14211: 677, - 14212: 677, - 14213: 677, - 14214: 677, - 14215: 677, - 14216: 677, - 14217: 677, - 14218: 677, - 14219: 677, - 14220: 677, - 14221: 677, - 14222: 677, - 14223: 677, - 14224: 677, - 14225: 677, - 14226: 677, - 14227: 677, - 14228: 677, - 14229: 677, - 14230: 677, - 14231: 677, - 14232: 677, - 14233: 677, - 14234: 677, - 14235: 677, - 14236: 677, - 14237: 677, - 14238: 677, - 14239: 677, - 14240: 677, - 14241: 677, - 14242: 677, - 14243: 677, - 14244: 677, - 14245: 677, - 14246: 677, - 14247: 677, - 14248: 677, - 14249: 677, - 14250: 677, - 14251: 677, - 14252: 677, - 14253: 677, - 14254: 677, - 14255: 677, - 14256: 677, - 14257: 677, - 14258: 677, - 14259: 677, - 14260: 677, - 14261: 677, - 14262: 677, - 14263: 677, - 14264: 677, - 14265: 677, - 14266: 677, - 14267: 677, - 14268: 677, - 14269: 677, - 14270: 677, - 14271: 677, - 14272: 677, - 14273: 677, - 14274: 677, - 14275: 677, - 14276: 677, - 14277: 677, - 14278: 677, - 14279: 677, - 14280: 677, - 14281: 677, - 14282: 677, - 14283: 677, - 14284: 677, - 14285: 677, - 14286: 677, - 14287: 677, - 14288: 677, - 14289: 677, - 14290: 677, - 14291: 677, - 14292: 677, - 14293: 677, - 14294: 677, - 14295: 677, - 14296: 677, - 14297: 677, - 14298: 677, - 14299: 677, - 14300: 677, - 14301: 677, - 14302: 677, - 14303: 677, - 14304: 677, - 14305: 677, - 14306: 677, - 14307: 677, - 14308: 677, - 14309: 677, - 14310: 677, - 14311: 677, - 14312: 677, - 14313: 677, - 14314: 677, - 14315: 677, - 14316: 677, - 14317: 677, - 14318: 677, - 14319: 677, - 14320: 677, - 14321: 677, - 14322: 677, - 14323: 677, - 14324: 677, - 14325: 677, - 14326: 677, - 14327: 677, - 14328: 677, - 14329: 677, - 14330: 677, - 14331: 677, - 14332: 677, - 14333: 677, - 14334: 677, - 14335: 677, - 14336: 677, - 14337: 677, - 14338: 677, - 14339: 677, - 14340: 677, - 14341: 677, - 14342: 677, - 14343: 677, - 14344: 677, - 14345: 677, - 14346: 677, - 14347: 677, - 14348: 677, - 14349: 677, - 14350: 677, - 14351: 677, - 14352: 677, - 14353: 677, - 14354: 677, - 14355: 677, - 14356: 677, - 14357: 678, - 14358: 678, - 14359: 678, - 14360: 678, - 14361: 678, - 14362: 678, - 14363: 678, - 14364: 678, - 14365: 678, - 14366: 678, - 14367: 678, - 14368: 678, - 14369: 678, - 14370: 678, - 14371: 678, - 14372: 678, - 14373: 678, - 14374: 678, - 14375: 678, - 14376: 678, - 14377: 678, - 14378: 678, - 14379: 678, - 14380: 678, - 14381: 678, - 14382: 678, - 14383: 678, - 14384: 678, - 14385: 678, - 14386: 678, - 14387: 678, - 14388: 678, - 14389: 678, - 14390: 678, - 14391: 678, - 14392: 678, - 14393: 678, - 14394: 678, - 14395: 678, - 14396: 678, - 14397: 678, - 14398: 678, - 14399: 678, - 14400: 678, - 14401: 678, - 14402: 678, - 14403: 678, - 14404: 678, - 14405: 678, - 14406: 678, - 14407: 678, - 14408: 678, - 14409: 678, - 14410: 678, - 14411: 678, - 14412: 678, - 14413: 678, - 14414: 678, - 14415: 678, - 14416: 678, - 14417: 678, - 14418: 678, - 14419: 678, - 14420: 678, - 14421: 678, - 14422: 678, - 14423: 678, - 14424: 678, - 14425: 678, - 14426: 678, - 14427: 678, - 14428: 678, - 14429: 678, - 14430: 678, - 14431: 678, - 14432: 678, - 14433: 678, - 14434: 678, - 14435: 678, - 14436: 678, - 14437: 678, - 14438: 678, - 14439: 678, - 14440: 678, - 14441: 678, - 14442: 678, - 14443: 678, - 14444: 678, - 14445: 678, - 14446: 678, - 14447: 678, - 14448: 678, - 14449: 678, - 14450: 678, - 14451: 678, - 14452: 678, - 14453: 678, - 14454: 678, - 14455: 678, - 14456: 678, - 14457: 678, - 14458: 678, - 14459: 678, - 14460: 678, - 14461: 678, - 14462: 678, - 14463: 678, - 14464: 678, - 14465: 678, - 14466: 678, - 14467: 678, - 14468: 678, - 14469: 678, - 14470: 678, - 14471: 678, - 14472: 678, - 14473: 678, - 14474: 678, - 14475: 678, - 14476: 678, - 14477: 678, - 14478: 678, - 14479: 678, - 14480: 678, - 14481: 678, - 14482: 678, - 14483: 678, - 14484: 678, - 14485: 678, - 14486: 678, - 14487: 678, - 14488: 678, - 14489: 678, - 14490: 678, - 14491: 678, - 14492: 678, - 14493: 678, - 14494: 678, - 14495: 678, - 14496: 678, - 14497: 678, - 14498: 678, - 14499: 678, - 14500: 678, - 14501: 678, - 14502: 678, - 14503: 678, - 14504: 678, - 14505: 678, - 14506: 678, - 14507: 678, - 14508: 678, - 14509: 678, - 14510: 678, - 14511: 678, - 14512: 678, - 14513: 678, - 14514: 678, - 14515: 678, - 14516: 678, - 14517: 678, - 14518: 678, - 14519: 678, - 14520: 678, - 14521: 678, - 14522: 678, - 14523: 678, - 14524: 678, - 14525: 678, - 14526: 678, - 14527: 678, - 14528: 678, - 14529: 678, - 14530: 678, - 14531: 678, - 14532: 678, - 14533: 678, - 14534: 678, - 14535: 678, - 14536: 678, - 14537: 678, - 14538: 678, - 14539: 678, - 14540: 678, - 14541: 678, - 14542: 678, - 14543: 678, - 14544: 678, - 14545: 678, - 14546: 678, - 14547: 678, - 14548: 678, - 14549: 678, - 14550: 678, - 14551: 678, - 14552: 678, - 14553: 678, - 14554: 678, - 14555: 678, - 14556: 678, - 14557: 678, - 14558: 678, - 14559: 678, - 14560: 678, - 14561: 678, - 14562: 678, - 14563: 678, - 14564: 678, - 14565: 678, - 14566: 678, - 14567: 678, - 14568: 678, - 14569: 678, - 14570: 678, - 14571: 678, - 14572: 678, - 14573: 678, - 14574: 678, - 14575: 678, - 14576: 678, - 14577: 678, - 14578: 678, - 14579: 678, - 14580: 678, - 14581: 678, - 14582: 678, - 14583: 678, - 14584: 678, - 14585: 678, - 14586: 678, - 14587: 678, - 14588: 678, - 14589: 678, - 14590: 678, - 14591: 678, - 14592: 678, - 14593: 678, - 14594: 678, - 14595: 678, - 14596: 678, - 14597: 678, - 14598: 678, - 14599: 678, - 14600: 678, - 14601: 678, - 14602: 678, - 14603: 678, - 14604: 678, - 14605: 678, - 14606: 678, - 14607: 678, - 14608: 678, - 14609: 678, - 14610: 678, - 14611: 678, - 14612: 678, - 14613: 678, - 14614: 678, - 14615: 678, - 14616: 678, - 14617: 678, - 14618: 678, - 14619: 678, - 14620: 678, - 14621: 678, - 14622: 678, - 14623: 678, - 14624: 678, - 14625: 678, - 14626: 678, - 14627: 678, - 14628: 678, - 14629: 678, - 14630: 678, - 14631: 678, - 14632: 678, - 14633: 678, - 14634: 678, - 14635: 678, - 14636: 678, - 14637: 678, - 14638: 678, - 14639: 678, - 14640: 678, - 14641: 678, - 14642: 678, - 14643: 678, - 14644: 678, - 14645: 678, - 14646: 678, - 14647: 678, - 14648: 678, - 14649: 678, - 14650: 678, - 14651: 678, - 14652: 678, - 14653: 678, - 14654: 678, - 14655: 678, - 14656: 678, - 14657: 678, - 14658: 678, - 14659: 678, - 14660: 678, - 14661: 678, - 14662: 678, - 14663: 678, - 14664: 678, - 14665: 678, - 14666: 678, - 14667: 678, - 14668: 678, - 14669: 678, - 14670: 678, - 14671: 678, - 14672: 678, - 14673: 678, - 14674: 678, - 14675: 678, - 14676: 678, - 14677: 678, - 14678: 678, - 14679: 678, - 14680: 678, - 14681: 679, - 14682: 679, - 14683: 679, - 14684: 679, - 14685: 679, - 14686: 679, - 14687: 679, - 14688: 679, - 14689: 679, - 14690: 679, - 14691: 679, - 14692: 679, - 14693: 679, - 14694: 679, - 14695: 679, - 14696: 679, - 14697: 679, - 14698: 679, - 14699: 679, - 14700: 679, - 14701: 679, - 14702: 679, - 14703: 679, - 14704: 679, - 14705: 679, - 14706: 679, - 14707: 679, - 14708: 679, - 14709: 679, - 14710: 679, - 14711: 679, - 14712: 679, - 14713: 679, - 14714: 679, - 14715: 679, - 14716: 679, - 14717: 679, - 14718: 679, - 14719: 679, - 14720: 679, - 14721: 679, - 14722: 679, - 14723: 679, - 14724: 679, - 14725: 679, - 14726: 679, - 14727: 679, - 14728: 679, - 14729: 679, - 14730: 679, - 14731: 679, - 14732: 679, - 14733: 679, - 14734: 679, - 14735: 679, - 14736: 679, - 14737: 679, - 14738: 679, - 14739: 679, - 14740: 679, - 14741: 679, - 14742: 679, - 14743: 679, - 14744: 679, - 14745: 679, - 14746: 679, - 14747: 679, - 14748: 679, - 14749: 679, - 14750: 679, - 14751: 679, - 14752: 679, - 14753: 679, - 14754: 679, - 14755: 679, - 14756: 679, - 14757: 679, - 14758: 679, - 14759: 679, - 14760: 679, - 14761: 679, - 14762: 679, - 14763: 679, - 14764: 679, - 14765: 679, - 14766: 679, - 14767: 679, - 14768: 679, - 14769: 679, - 14770: 679, - 14771: 679, - 14772: 679, - 14773: 679, - 14774: 679, - 14775: 679, - 14776: 679, - 14777: 679, - 14778: 679, - 14779: 679, - 14780: 679, - 14781: 679, - 14782: 679, - 14783: 679, - 14784: 679, - 14785: 679, - 14786: 679, - 14787: 679, - 14788: 679, - 14789: 679, - 14790: 679, - 14791: 679, - 14792: 679, - 14793: 679, - 14794: 679, - 14795: 679, - 14796: 679, - 14797: 679, - 14798: 679, - 14799: 679, - 14800: 679, - 14801: 679, - 14802: 679, - 14803: 679, - 14804: 679, - 14805: 679, - 14806: 679, - 14807: 679, - 14808: 679, - 14809: 679, - 14810: 679, - 14811: 679, - 14812: 679, - 14813: 679, - 14814: 679, - 14815: 679, - 14816: 679, - 14817: 679, - 14818: 679, - 14819: 679, - 14820: 679, - 14821: 679, - 14822: 679, - 14823: 679, - 14824: 679, - 14825: 679, - 14826: 679, - 14827: 679, - 14828: 679, - 14829: 679, - 14830: 679, - 14831: 679, - 14832: 679, - 14833: 679, - 14834: 679, - 14835: 679, - 14836: 679, - 14837: 679, - 14838: 679, - 14839: 679, - 14840: 679, - 14841: 679, - 14842: 679, - 14843: 679, - 14844: 679, - 14845: 679, - 14846: 679, - 14847: 679, - 14848: 679, - 14849: 679, - 14850: 679, - 14851: 679, - 14852: 679, - 14853: 679, - 14854: 679, - 14855: 679, - 14856: 679, - 14857: 679, - 14858: 679, - 14859: 679, - 14860: 679, - 14861: 679, - 14862: 679, - 14863: 679, - 14864: 679, - 14865: 679, - 14866: 679, - 14867: 679, - 14868: 679, - 14869: 679, - 14870: 679, - 14871: 679, - 14872: 679, - 14873: 679, - 14874: 679, - 14875: 679, - 14876: 679, - 14877: 679, - 14878: 679, - 14879: 679, - 14880: 679, - 14881: 679, - 14882: 679, - 14883: 679, - 14884: 679, - 14885: 679, - 14886: 679, - 14887: 679, - 14888: 679, - 14889: 679, - 14890: 679, - 14891: 679, - 14892: 679, - 14893: 679, - 14894: 679, - 14895: 679, - 14896: 679, - 14897: 679, - 14898: 679, - 14899: 679, - 14900: 679, - 14901: 679, - 14902: 679, - 14903: 679, - 14904: 679, - 14905: 679, - 14906: 679, - 14907: 679, - 14908: 679, - 14909: 679, - 14910: 679, - 14911: 679, - 14912: 679, - 14913: 679, - 14914: 679, - 14915: 679, - 14916: 679, - 14917: 679, - 14918: 679, - 14919: 679, - 14920: 679, - 14921: 679, - 14922: 679, - 14923: 679, - 14924: 679, - 14925: 679, - 14926: 679, - 14927: 679, - 14928: 679, - 14929: 679, - 14930: 679, - 14931: 679, - 14932: 679, - 14933: 679, - 14934: 679, - 14935: 679, - 14936: 679, - 14937: 679, - 14938: 679, - 14939: 679, - 14940: 679, - 14941: 679, - 14942: 679, - 14943: 679, - 14944: 679, - 14945: 679, - 14946: 679, - 14947: 679, - 14948: 679, - 14949: 679, - 14950: 679, - 14951: 679, - 14952: 679, - 14953: 679, - 14954: 679, - 14955: 679, - 14956: 679, - 14957: 679, - 14958: 679, - 14959: 679, - 14960: 679, - 14961: 679, - 14962: 679, - 14963: 679, - 14964: 679, - 14965: 679, - 14966: 679, - 14967: 679, - 14968: 679, - 14969: 679, - 14970: 679, - 14971: 679, - 14972: 679, - 14973: 679, - 14974: 679, - 14975: 679, - 14976: 679, - 14977: 679, - 14978: 679, - 14979: 679, - 14980: 679, - 14981: 679, - 14982: 679, - 14983: 679, - 14984: 679, - 14985: 679, - 14986: 679, - 14987: 679, - 14988: 679, - 14989: 679, - 14990: 679, - 14991: 679, - 14992: 679, - 14993: 679, - 14994: 679, - 14995: 679, - 14996: 679, - 14997: 679, - 14998: 679, - 14999: 679, - 15000: 679, - 15001: 679, - 15002: 679, - 15003: 679, - 15004: 679, - 15005: 680, - 15006: 680, - 15007: 680, - 15008: 680, - 15009: 680, - 15010: 680, - 15011: 680, - 15012: 680, - 15013: 680, - 15014: 680, - 15015: 680, - 15016: 680, - 15017: 680, - 15018: 680, - 15019: 680, - 15020: 680, - 15021: 680, - 15022: 680, - 15023: 680, - 15024: 680, - 15025: 680, - 15026: 680, - 15027: 680, - 15028: 680, - 15029: 680, - 15030: 680, - 15031: 680, - 15032: 680, - 15033: 680, - 15034: 680, - 15035: 680, - 15036: 680, - 15037: 681, - 15038: 681, - 15039: 681, - 15040: 681, - 15041: 682, - 15042: 682, - 15043: 682, - 15044: 682, - 15045: 682, - 15046: 682, - 15047: 682, - 15048: 682, - 15049: 682, - 15050: 682, - 15051: 682, - 15052: 682, - 15053: 683, - 15054: 683, - 15055: 683, - 15056: 683, - 15057: 683, - 15058: 683, - 15059: 683, - 15060: 683, - 15061: 684, - 15062: 684, - 15063: 684, - 15064: 684, - 15065: 684, - 15066: 684, - 15067: 684, - 15068: 684, - 15069: 685, - 15070: 686, - 15071: 687, - 15072: 687, - 15073: 687, - 15074: 687, - 15075: 687, - 15076: 687, - 15077: 687, - 15078: 687, - 15079: 687, - 15080: 687, - 15081: 687, - 15082: 687, - 15083: 688, - 15084: 688, - 15085: 688, - 15086: 688, - 15087: 688, - 15088: 688, - 15089: 688, - 15090: 688, - 15091: 688, - 15092: 688, - 15093: 688, - 15094: 688, - 15095: 688, - 15096: 688, - 15097: 688, - 15098: 688, - 15099: 689, - 15100: 690, - 15101: 690, - 15102: 690, - 15103: 690, - 15104: 691, - 15105: 691, - 15106: 691, - 15107: 691, - 15108: 691, - 15109: 691, - 15110: 691, - 15111: 691, - 15112: 691, - 15113: 691, - 15114: 691, - 15115: 691, - 15116: 691, - 15117: 691, - 15118: 691, - 15119: 691, - 15120: 691, - 15121: 691, - 15122: 691, - 15123: 691, - 15124: 691, - 15125: 691, - 15126: 691, - 15127: 691, - 15128: 691, - 15129: 691, - 15130: 691, - 15131: 691, - 15132: 691, - 15133: 691, - 15134: 691, - 15135: 691, - 15136: 692, - 15137: 692, - 15138: 692, - 15139: 692, - 15140: 693, - 15141: 693, - 15142: 693, - 15143: 693, - 15144: 694, - 15145: 694, - 15146: 694, - 15147: 694, - 15148: 694, - 15149: 694, - 15150: 694, - 15151: 694, - 15152: 694, - 15153: 694, - 15154: 694, - 15155: 694, - 15156: 694, - 15157: 694, - 15158: 694, - 15159: 694, - 15160: 694, - 15161: 694, - 15162: 694, - 15163: 694, - 15164: 694, - 15165: 694, - 15166: 694, - 15167: 694, - 15168: 694, - 15169: 694, - 15170: 694, - 15171: 694, - 15172: 694, - 15173: 694, - 15174: 694, - 15175: 694, - 15176: 695, - 15177: 695, - 15178: 695, - 15179: 695, - 15180: 695, - 15181: 695, - 15182: 695, - 15183: 695, - 15184: 695, - 15185: 695, - 15186: 695, - 15187: 695, - 15188: 695, - 15189: 695, - 15190: 695, - 15191: 695, - 15192: 695, - 15193: 695, - 15194: 695, - 15195: 695, - 15196: 695, - 15197: 695, - 15198: 695, - 15199: 695, - 15200: 695, - 15201: 695, - 15202: 695, - 15203: 695, - 15204: 695, - 15205: 695, - 15206: 695, - 15207: 695, - 15208: 696, - 15209: 696, - 15210: 696, - 15211: 696, - 15212: 697, - 15213: 697, - 15214: 697, - 15215: 698, - 15216: 698, - 15217: 698, - 15218: 699, - 15219: 699, - 15220: 699, - 15221: 700, - 15222: 700, - 15223: 700, - 15224: 701, - 15225: 702, - 15226: 703, - 15227: 704, - 15228: 705, - 15229: 706, - 15230: 706, - 15231: 706, - 15232: 707, - 15233: 707, - 15234: 707, - 15235: 708, - 15236: 708, - 15237: 708, - 15238: 709, - 15239: 709, - 15240: 709, - 15241: 710, - 15242: 711, - 15243: 712, - 15244: 713, - 15245: 713, - 15246: 713, - 15247: 713, - 15248: 713, - 15249: 713, - 15250: 713, - 15251: 713, - 15252: 713, - 15253: 713, - 15254: 713, - 15255: 713, - 15256: 713, - 15257: 713, - 15258: 713, - 15259: 713, - 15260: 713, - 15261: 713, - 15262: 713, - 15263: 713, - 15264: 713, - 15265: 713, - 15266: 713, - 15267: 713, - 15268: 713, - 15269: 713, - 15270: 714, - 15271: 715, - 15272: 715, - 15273: 715, - 15274: 715, - 15275: 715, - 15276: 715, - 15277: 715, - 15278: 715, - 15279: 715, - 15280: 715, - 15281: 715, - 15282: 715, - 15283: 715, - 15284: 715, - 15285: 715, - 15286: 715, - 15287: 715, - 15288: 715, - 15289: 715, - 15290: 715, - 15291: 715, - 15292: 715, - 15293: 715, - 15294: 715, - 15295: 715, - 15296: 715, - 15297: 716, - 15298: 717, - 15299: 718, - 15300: 719, - 15301: 720, - 15302: 720, - 15303: 720, - 15304: 720, - 15305: 720, - 15306: 720, - 15307: 721, - 15308: 721, - 15309: 721, - 15310: 721, - 15311: 721, - 15312: 721, - 15313: 722, - 15314: 722, - 15315: 723, - 15316: 723, - 15317: 724, - 15318: 724, - 15319: 724, - 15320: 724, - 15321: 724, - 15322: 724, - 15323: 724, - 15324: 724, - 15325: 724, - 15326: 724, - 15327: 724, - 15328: 724, - 15329: 724, - 15330: 724, - 15331: 724, - 15332: 724, - 15333: 724, - 15334: 724, - 15335: 724, - 15336: 724, - 15337: 724, - 15338: 724, - 15339: 724, - 15340: 724, - 15341: 724, - 15342: 724, - 15343: 724, - 15344: 724, - 15345: 724, - 15346: 724, - 15347: 724, - 15348: 724, - 15349: 725, - 15350: 725, - 15351: 725, - 15352: 725, - 15353: 725, - 15354: 725, - 15355: 725, - 15356: 725, - 15357: 725, - 15358: 725, - 15359: 725, - 15360: 725, - 15361: 725, - 15362: 725, - 15363: 725, - 15364: 725, - 15365: 725, - 15366: 725, - 15367: 725, - 15368: 725, - 15369: 725, - 15370: 725, - 15371: 725, - 15372: 725, - 15373: 725, - 15374: 725, - 15375: 725, - 15376: 725, - 15377: 725, - 15378: 725, - 15379: 725, - 15380: 725, - 15381: 726, - 15382: 726, - 15383: 726, - 15384: 726, - 15385: 726, - 15386: 726, - 15387: 726, - 15388: 726, - 15389: 726, - 15390: 726, - 15391: 726, - 15392: 726, - 15393: 726, - 15394: 726, - 15395: 726, - 15396: 726, - 15397: 726, - 15398: 726, - 15399: 726, - 15400: 726, - 15401: 726, - 15402: 726, - 15403: 726, - 15404: 726, - 15405: 726, - 15406: 726, - 15407: 726, - 15408: 726, - 15409: 726, - 15410: 726, - 15411: 726, - 15412: 726, - 15413: 726, - 15414: 726, - 15415: 726, - 15416: 726, - 15417: 726, - 15418: 726, - 15419: 726, - 15420: 726, - 15421: 726, - 15422: 726, - 15423: 726, - 15424: 726, - 15425: 726, - 15426: 726, - 15427: 726, - 15428: 726, - 15429: 726, - 15430: 726, - 15431: 726, - 15432: 726, - 15433: 726, - 15434: 726, - 15435: 726, - 15436: 726, - 15437: 726, - 15438: 726, - 15439: 726, - 15440: 726, - 15441: 726, - 15442: 726, - 15443: 726, - 15444: 726, - 15445: 727, - 15446: 727, - 15447: 727, - 15448: 727, - 15449: 727, - 15450: 727, - 15451: 727, - 15452: 727, - 15453: 727, - 15454: 727, - 15455: 727, - 15456: 727, - 15457: 727, - 15458: 727, - 15459: 727, - 15460: 727, - 15461: 727, - 15462: 727, - 15463: 727, - 15464: 727, - 15465: 727, - 15466: 727, - 15467: 727, - 15468: 727, - 15469: 727, - 15470: 727, - 15471: 727, - 15472: 727, - 15473: 727, - 15474: 727, - 15475: 727, - 15476: 727, - 15477: 727, - 15478: 727, - 15479: 727, - 15480: 727, - 15481: 727, - 15482: 727, - 15483: 727, - 15484: 727, - 15485: 727, - 15486: 727, - 15487: 727, - 15488: 727, - 15489: 727, - 15490: 727, - 15491: 727, - 15492: 727, - 15493: 727, - 15494: 727, - 15495: 727, - 15496: 727, - 15497: 727, - 15498: 727, - 15499: 727, - 15500: 727, - 15501: 727, - 15502: 727, - 15503: 727, - 15504: 727, - 15505: 727, - 15506: 727, - 15507: 727, - 15508: 727, - 15509: 728, - 15510: 728, - 15511: 728, - 15512: 728, - 15513: 728, - 15514: 728, - 15515: 728, - 15516: 728, - 15517: 728, - 15518: 728, - 15519: 728, - 15520: 728, - 15521: 728, - 15522: 728, - 15523: 728, - 15524: 728, - 15525: 728, - 15526: 728, - 15527: 728, - 15528: 728, - 15529: 728, - 15530: 728, - 15531: 728, - 15532: 728, - 15533: 728, - 15534: 728, - 15535: 728, - 15536: 728, - 15537: 728, - 15538: 728, - 15539: 728, - 15540: 728, - 15541: 729, - 15542: 729, - 15543: 729, - 15544: 729, - 15545: 729, - 15546: 729, - 15547: 729, - 15548: 729, - 15549: 729, - 15550: 729, - 15551: 729, - 15552: 729, - 15553: 729, - 15554: 729, - 15555: 729, - 15556: 729, - 15557: 729, - 15558: 729, - 15559: 729, - 15560: 729, - 15561: 729, - 15562: 729, - 15563: 729, - 15564: 729, - 15565: 729, - 15566: 729, - 15567: 729, - 15568: 729, - 15569: 729, - 15570: 729, - 15571: 729, - 15572: 729, - 15573: 730, - 15574: 730, - 15575: 730, - 15576: 730, - 15577: 730, - 15578: 730, - 15579: 730, - 15580: 730, - 15581: 730, - 15582: 730, - 15583: 730, - 15584: 730, - 15585: 730, - 15586: 730, - 15587: 730, - 15588: 730, - 15589: 730, - 15590: 730, - 15591: 730, - 15592: 730, - 15593: 730, - 15594: 730, - 15595: 730, - 15596: 730, - 15597: 730, - 15598: 730, - 15599: 730, - 15600: 730, - 15601: 730, - 15602: 730, - 15603: 730, - 15604: 730, - 15605: 730, - 15606: 730, - 15607: 730, - 15608: 730, - 15609: 730, - 15610: 730, - 15611: 730, - 15612: 730, - 15613: 730, - 15614: 730, - 15615: 730, - 15616: 730, - 15617: 730, - 15618: 730, - 15619: 730, - 15620: 730, - 15621: 730, - 15622: 730, - 15623: 730, - 15624: 730, - 15625: 730, - 15626: 730, - 15627: 730, - 15628: 730, - 15629: 730, - 15630: 730, - 15631: 730, - 15632: 730, - 15633: 730, - 15634: 730, - 15635: 730, - 15636: 730, - 15637: 730, - 15638: 730, - 15639: 730, - 15640: 730, - 15641: 730, - 15642: 730, - 15643: 730, - 15644: 730, - 15645: 730, - 15646: 730, - 15647: 730, - 15648: 730, - 15649: 730, - 15650: 730, - 15651: 730, - 15652: 730, - 15653: 731, - 15654: 731, - 15655: 731, - 15656: 731, - 15657: 731, - 15658: 731, - 15659: 731, - 15660: 731, - 15661: 731, - 15662: 731, - 15663: 731, - 15664: 731, - 15665: 731, - 15666: 731, - 15667: 731, - 15668: 731, - 15669: 731, - 15670: 731, - 15671: 731, - 15672: 731, - 15673: 731, - 15674: 731, - 15675: 731, - 15676: 731, - 15677: 731, - 15678: 731, - 15679: 731, - 15680: 731, - 15681: 731, - 15682: 731, - 15683: 731, - 15684: 731, - 15685: 731, - 15686: 731, - 15687: 731, - 15688: 731, - 15689: 731, - 15690: 731, - 15691: 731, - 15692: 731, - 15693: 731, - 15694: 731, - 15695: 731, - 15696: 731, - 15697: 731, - 15698: 731, - 15699: 731, - 15700: 731, - 15701: 731, - 15702: 731, - 15703: 731, - 15704: 731, - 15705: 731, - 15706: 731, - 15707: 731, - 15708: 731, - 15709: 731, - 15710: 731, - 15711: 731, - 15712: 731, - 15713: 731, - 15714: 731, - 15715: 731, - 15716: 731, - 15717: 731, - 15718: 731, - 15719: 731, - 15720: 731, - 15721: 731, - 15722: 731, - 15723: 731, - 15724: 731, - 15725: 731, - 15726: 731, - 15727: 731, - 15728: 731, - 15729: 731, - 15730: 731, - 15731: 731, - 15732: 731, - 15733: 732, - 15734: 732, - 15735: 732, - 15736: 732, - 15737: 732, - 15738: 732, - 15739: 732, - 15740: 732, - 15741: 732, - 15742: 732, - 15743: 732, - 15744: 732, - 15745: 732, - 15746: 732, - 15747: 732, - 15748: 732, - 15749: 732, - 15750: 732, - 15751: 732, - 15752: 732, - 15753: 732, - 15754: 732, - 15755: 732, - 15756: 732, - 15757: 733, - 15758: 733, - 15759: 733, - 15760: 733, - 15761: 733, - 15762: 733, - 15763: 733, - 15764: 733, - 15765: 733, - 15766: 733, - 15767: 733, - 15768: 733, - 15769: 733, - 15770: 733, - 15771: 733, - 15772: 733, - 15773: 733, - 15774: 733, - 15775: 733, - 15776: 733, - 15777: 733, - 15778: 733, - 15779: 733, - 15780: 733, - 15781: 734, - 15782: 734, - 15783: 734, - 15784: 734, - 15785: 734, - 15786: 734, - 15787: 734, - 15788: 734, - 15789: 734, - 15790: 734, - 15791: 734, - 15792: 734, - 15793: 734, - 15794: 734, - 15795: 734, - 15796: 734, - 15797: 734, - 15798: 734, - 15799: 734, - 15800: 734, - 15801: 734, - 15802: 734, - 15803: 734, - 15804: 734, - 15805: 734, - 15806: 734, - 15807: 734, - 15808: 734, - 15809: 734, - 15810: 734, - 15811: 734, - 15812: 734, - 15813: 734, - 15814: 734, - 15815: 734, - 15816: 734, - 15817: 734, - 15818: 734, - 15819: 734, - 15820: 734, - 15821: 734, - 15822: 734, - 15823: 734, - 15824: 734, - 15825: 734, - 15826: 734, - 15827: 734, - 15828: 734, - 15829: 734, - 15830: 734, - 15831: 734, - 15832: 734, - 15833: 734, - 15834: 734, - 15835: 734, - 15836: 734, - 15837: 734, - 15838: 734, - 15839: 734, - 15840: 734, - 15841: 734, - 15842: 734, - 15843: 734, - 15844: 734, - 15845: 735, - 15846: 735, - 15847: 735, - 15848: 735, - 15849: 735, - 15850: 735, - 15851: 735, - 15852: 735, - 15853: 735, - 15854: 735, - 15855: 735, - 15856: 735, - 15857: 735, - 15858: 735, - 15859: 735, - 15860: 735, - 15861: 735, - 15862: 735, - 15863: 735, - 15864: 735, - 15865: 735, - 15866: 735, - 15867: 735, - 15868: 735, - 15869: 735, - 15870: 735, - 15871: 735, - 15872: 735, - 15873: 735, - 15874: 735, - 15875: 735, - 15876: 735, - 15877: 735, - 15878: 735, - 15879: 735, - 15880: 735, - 15881: 735, - 15882: 735, - 15883: 735, - 15884: 735, - 15885: 735, - 15886: 735, - 15887: 735, - 15888: 735, - 15889: 735, - 15890: 735, - 15891: 735, - 15892: 735, - 15893: 735, - 15894: 735, - 15895: 735, - 15896: 735, - 15897: 735, - 15898: 735, - 15899: 735, - 15900: 735, - 15901: 735, - 15902: 735, - 15903: 735, - 15904: 735, - 15905: 735, - 15906: 735, - 15907: 735, - 15908: 735, - 15909: 736, - 15910: 736, - 15911: 736, - 15912: 736, - 15913: 736, - 15914: 736, - 15915: 736, - 15916: 736, - 15917: 736, - 15918: 736, - 15919: 736, - 15920: 736, - 15921: 736, - 15922: 736, - 15923: 736, - 15924: 736, - 15925: 736, - 15926: 736, - 15927: 736, - 15928: 736, - 15929: 736, - 15930: 736, - 15931: 736, - 15932: 736, - 15933: 736, - 15934: 736, - 15935: 736, - 15936: 736, - 15937: 736, - 15938: 736, - 15939: 736, - 15940: 736, - 15941: 737, - 15942: 737, - 15943: 737, - 15944: 737, - 15945: 737, - 15946: 737, - 15947: 737, - 15948: 737, - 15949: 737, - 15950: 737, - 15951: 737, - 15952: 737, - 15953: 737, - 15954: 737, - 15955: 737, - 15956: 737, - 15957: 737, - 15958: 737, - 15959: 737, - 15960: 737, - 15961: 737, - 15962: 737, - 15963: 737, - 15964: 737, - 15965: 737, - 15966: 737, - 15967: 737, - 15968: 737, - 15969: 737, - 15970: 737, - 15971: 737, - 15972: 737, - 15973: 738, - 15974: 738, - 15975: 738, - 15976: 738, - 15977: 738, - 15978: 738, - 15979: 738, - 15980: 738, - 15981: 739, - 15982: 739, - 15983: 739, - 15984: 739, - 15985: 739, - 15986: 739, - 15987: 739, - 15988: 739, - 15989: 740, - 15990: 740, - 15991: 740, - 15992: 740, - 15993: 741, - 15994: 741, - 15995: 741, - 15996: 741, - 15997: 741, - 15998: 741, - 15999: 741, - 16000: 741, - 16001: 741, - 16002: 741, - 16003: 741, - 16004: 741, - 16005: 742, - 16006: 742, - 16007: 742, - 16008: 742, - 16009: 742, - 16010: 742, - 16011: 742, - 16012: 742, - 16013: 742, - 16014: 743, - 16015: 743, - 16016: 743, - 16017: 743, - 16018: 743, - 16019: 743, - 16020: 743, - 16021: 743, - 16022: 743, - 16023: 743, - 16024: 743, - 16025: 743, - 16026: 743, - 16027: 743, - 16028: 743, - 16029: 743, - 16030: 744, - 16031: 744, - 16032: 744, - 16033: 744, - 16034: 744, - 16035: 744, - 16036: 744, - 16037: 744, - 16038: 744, - 16039: 744, - 16040: 744, - 16041: 744, - 16042: 744, - 16043: 744, - 16044: 744, - 16045: 744, - 16046: 744, - 16047: 744, - 16048: 744, - 16049: 744, - 16050: 744, - 16051: 744, - 16052: 744, - 16053: 744, - 16054: 745, - 16055: 745, - 16056: 745, - 16057: 745, - 16058: 745, - 16059: 745, - 16060: 745, - 16061: 745, - 16062: 745, - 16063: 745, - 16064: 745, - 16065: 745, - 16066: 745, - 16067: 745, - 16068: 745, - 16069: 745, - 16070: 745, - 16071: 745, - 16072: 745, - 16073: 745, - 16074: 745, - 16075: 745, - 16076: 745, - 16077: 745, - 16078: 746, - 16079: 747, - 16080: 748, - 16081: 749, - 16082: 750, - 16083: 751, - 16084: 751, - 16085: 751, - 16086: 751, - 16087: 751, - 16088: 752, - 16089: 753, - 16090: 754, - 16091: 755, - 16092: 756, - 16093: 757, - 16094: 758, - 16095: 758, - 16096: 758, - 16097: 758, - 16098: 758, - 16099: 758, - 16100: 758, - 16101: 758, - 16102: 758, - 16103: 758, - 16104: 758, - 16105: 758, - 16106: 758, - 16107: 758, - 16108: 758, - 16109: 758, - 16110: 758, - 16111: 758, - 16112: 758, - 16113: 758, - 16114: 758, - 16115: 758, - 16116: 758, - 16117: 758, - 16118: 758, - 16119: 758, - 16120: 758, - 16121: 758, - 16122: 758, - 16123: 758, - 16124: 758, - 16125: 758, - 16126: 758, - 16127: 758, - 16128: 758, - 16129: 758, - 16130: 758, - 16131: 758, - 16132: 758, - 16133: 758, - 16134: 758, - 16135: 758, - 16136: 758, - 16137: 758, - 16138: 758, - 16139: 758, - 16140: 758, - 16141: 758, - 16142: 758, - 16143: 758, - 16144: 758, - 16145: 758, - 16146: 758, - 16147: 758, - 16148: 758, - 16149: 758, - 16150: 758, - 16151: 758, - 16152: 758, - 16153: 758, - 16154: 758, - 16155: 758, - 16156: 758, - 16157: 758, - 16158: 758, - 16159: 758, - 16160: 758, - 16161: 758, - 16162: 758, - 16163: 758, - 16164: 758, - 16165: 758, - 16166: 758, - 16167: 758, - 16168: 758, - 16169: 758, - 16170: 758, - 16171: 758, - 16172: 758, - 16173: 758, - 16174: 759, - 16175: 759, - 16176: 759, - 16177: 759, - 16178: 759, - 16179: 759, - 16180: 759, - 16181: 759, - 16182: 759, - 16183: 759, - 16184: 759, - 16185: 759, - 16186: 759, - 16187: 759, - 16188: 759, - 16189: 759, - 16190: 759, - 16191: 759, - 16192: 759, - 16193: 759, - 16194: 759, - 16195: 759, - 16196: 759, - 16197: 759, - 16198: 759, - 16199: 759, - 16200: 759, - 16201: 759, - 16202: 759, - 16203: 759, - 16204: 759, - 16205: 759, - 16206: 759, - 16207: 759, - 16208: 759, - 16209: 759, - 16210: 759, - 16211: 759, - 16212: 759, - 16213: 759, - 16214: 759, - 16215: 759, - 16216: 759, - 16217: 759, - 16218: 759, - 16219: 759, - 16220: 759, - 16221: 759, - 16222: 759, - 16223: 759, - 16224: 759, - 16225: 759, - 16226: 759, - 16227: 759, - 16228: 759, - 16229: 759, - 16230: 759, - 16231: 759, - 16232: 759, - 16233: 759, - 16234: 759, - 16235: 759, - 16236: 759, - 16237: 759, - 16238: 759, - 16239: 759, - 16240: 759, - 16241: 759, - 16242: 759, - 16243: 759, - 16244: 759, - 16245: 759, - 16246: 759, - 16247: 759, - 16248: 759, - 16249: 759, - 16250: 759, - 16251: 759, - 16252: 759, - 16253: 759, - 16254: 759, - 16255: 759, - 16256: 759, - 16257: 759, - 16258: 759, - 16259: 759, - 16260: 759, - 16261: 759, - 16262: 759, - 16263: 759, - 16264: 759, - 16265: 759, - 16266: 759, - 16267: 759, - 16268: 759, - 16269: 759, - 16270: 759, - 16271: 759, - 16272: 759, - 16273: 759, - 16274: 759, - 16275: 759, - 16276: 759, - 16277: 759, - 16278: 759, - 16279: 759, - 16280: 759, - 16281: 759, - 16282: 759, - 16283: 759, - 16284: 759, - 16285: 759, - 16286: 759, - 16287: 759, - 16288: 759, - 16289: 759, - 16290: 759, - 16291: 759, - 16292: 759, - 16293: 759, - 16294: 759, - 16295: 759, - 16296: 759, - 16297: 759, - 16298: 759, - 16299: 759, - 16300: 759, - 16301: 759, - 16302: 759, - 16303: 759, - 16304: 759, - 16305: 759, - 16306: 759, - 16307: 759, - 16308: 759, - 16309: 759, - 16310: 759, - 16311: 759, - 16312: 759, - 16313: 759, - 16314: 759, - 16315: 759, - 16316: 759, - 16317: 759, - 16318: 759, - 16319: 759, - 16320: 759, - 16321: 759, - 16322: 759, - 16323: 759, - 16324: 759, - 16325: 759, - 16326: 759, - 16327: 759, - 16328: 759, - 16329: 759, - 16330: 759, - 16331: 759, - 16332: 759, - 16333: 759, - 16334: 759, - 16335: 759, - 16336: 759, - 16337: 759, - 16338: 759, - 16339: 759, - 16340: 759, - 16341: 759, - 16342: 759, - 16343: 759, - 16344: 759, - 16345: 759, - 16346: 759, - 16347: 759, - 16348: 759, - 16349: 759, - 16350: 759, - 16351: 759, - 16352: 759, - 16353: 759, - 16354: 759, - 16355: 759, - 16356: 759, - 16357: 759, - 16358: 759, - 16359: 759, - 16360: 759, - 16361: 759, - 16362: 759, - 16363: 759, - 16364: 759, - 16365: 759, - 16366: 759, - 16367: 759, - 16368: 759, - 16369: 759, - 16370: 759, - 16371: 759, - 16372: 759, - 16373: 759, - 16374: 759, - 16375: 759, - 16376: 759, - 16377: 759, - 16378: 759, - 16379: 759, - 16380: 759, - 16381: 759, - 16382: 759, - 16383: 759, - 16384: 759, - 16385: 759, - 16386: 759, - 16387: 759, - 16388: 759, - 16389: 759, - 16390: 759, - 16391: 759, - 16392: 759, - 16393: 759, - 16394: 759, - 16395: 759, - 16396: 759, - 16397: 759, - 16398: 759, - 16399: 759, - 16400: 759, - 16401: 759, - 16402: 759, - 16403: 759, - 16404: 759, - 16405: 759, - 16406: 759, - 16407: 759, - 16408: 759, - 16409: 759, - 16410: 759, - 16411: 759, - 16412: 759, - 16413: 759, - 16414: 759, - 16415: 759, - 16416: 759, - 16417: 759, - 16418: 759, - 16419: 759, - 16420: 759, - 16421: 759, - 16422: 759, - 16423: 759, - 16424: 759, - 16425: 759, - 16426: 759, - 16427: 759, - 16428: 759, - 16429: 759, - 16430: 759, - 16431: 759, - 16432: 759, - 16433: 759, - 16434: 759, - 16435: 759, - 16436: 759, - 16437: 759, - 16438: 759, - 16439: 759, - 16440: 759, - 16441: 759, - 16442: 759, - 16443: 759, - 16444: 759, - 16445: 759, - 16446: 759, - 16447: 759, - 16448: 759, - 16449: 759, - 16450: 759, - 16451: 759, - 16452: 759, - 16453: 759, - 16454: 759, - 16455: 759, - 16456: 759, - 16457: 759, - 16458: 759, - 16459: 759, - 16460: 759, - 16461: 759, - 16462: 759, - 16463: 759, - 16464: 759, - 16465: 759, - 16466: 759, - 16467: 759, - 16468: 759, - 16469: 759, - 16470: 759, - 16471: 759, - 16472: 759, - 16473: 759, - 16474: 759, - 16475: 759, - 16476: 759, - 16477: 759, - 16478: 759, - 16479: 759, - 16480: 759, - 16481: 759, - 16482: 759, - 16483: 759, - 16484: 759, - 16485: 759, - 16486: 759, - 16487: 759, - 16488: 759, - 16489: 759, - 16490: 759, - 16491: 759, - 16492: 759, - 16493: 759, - 16494: 759, - 16495: 759, - 16496: 759, - 16497: 759, - 16498: 760, - 16499: 760, - 16500: 760, - 16501: 760, - 16502: 760, - 16503: 760, - 16504: 761, - 16505: 762, - 16506: 763, - 16507: 764, - 16508: 765, - 16509: 765, - 16510: 765, - 16511: 765, - 16512: 765, - 16513: 765, - 16514: 766, - 16515: 766, - 16516: 766, - 16517: 766, - 16518: 766, - 16519: 766, - 16520: 766, - 16521: 766, - 16522: 766, - 16523: 766, - 16524: 766, - 16525: 766, - 16526: 766, - 16527: 766, - 16528: 766, - 16529: 766, - 16530: 766, - 16531: 766, - 16532: 766, - 16533: 766, - 16534: 766, - 16535: 766, - 16536: 766, - 16537: 766, - 16538: 766, - 16539: 766, - 16540: 766, - 16541: 766, - 16542: 766, - 16543: 766, - 16544: 766, - 16545: 766, - 16546: 766, - 16547: 766, - 16548: 766, - 16549: 766, - 16550: 766, - 16551: 766, - 16552: 766, - 16553: 766, - 16554: 766, - 16555: 766, - 16556: 766, - 16557: 766, - 16558: 766, - 16559: 766, - 16560: 766, - 16561: 766, - 16562: 766, - 16563: 766, - 16564: 766, - 16565: 766, - 16566: 766, - 16567: 766, - 16568: 766, - 16569: 766, - 16570: 766, - 16571: 766, - 16572: 766, - 16573: 766, - 16574: 766, - 16575: 766, - 16576: 766, - 16577: 766, - 16578: 766, - 16579: 766, - 16580: 766, - 16581: 766, - 16582: 766, - 16583: 766, - 16584: 766, - 16585: 766, - 16586: 766, - 16587: 766, - 16588: 766, - 16589: 766, - 16590: 766, - 16591: 766, - 16592: 766, - 16593: 766, - 16594: 767, - 16595: 767, - 16596: 767, - 16597: 767, - 16598: 767, - 16599: 767, - 16600: 767, - 16601: 767, - 16602: 767, - 16603: 767, - 16604: 767, - 16605: 767, - 16606: 767, - 16607: 767, - 16608: 767, - 16609: 767, - 16610: 767, - 16611: 767, - 16612: 767, - 16613: 767, - 16614: 767, - 16615: 767, - 16616: 767, - 16617: 767, - 16618: 767, - 16619: 767, - 16620: 767, - 16621: 767, - 16622: 767, - 16623: 767, - 16624: 767, - 16625: 767, - 16626: 767, - 16627: 767, - 16628: 767, - 16629: 767, - 16630: 767, - 16631: 767, - 16632: 767, - 16633: 767, - 16634: 767, - 16635: 767, - 16636: 767, - 16637: 767, - 16638: 767, - 16639: 767, - 16640: 767, - 16641: 767, - 16642: 767, - 16643: 767, - 16644: 767, - 16645: 767, - 16646: 767, - 16647: 767, - 16648: 767, - 16649: 767, - 16650: 767, - 16651: 767, - 16652: 767, - 16653: 767, - 16654: 767, - 16655: 767, - 16656: 767, - 16657: 767, - 16658: 767, - 16659: 767, - 16660: 767, - 16661: 767, - 16662: 767, - 16663: 767, - 16664: 767, - 16665: 767, - 16666: 767, - 16667: 767, - 16668: 767, - 16669: 767, - 16670: 767, - 16671: 767, - 16672: 767, - 16673: 767, - 16674: 767, - 16675: 767, - 16676: 767, - 16677: 767, - 16678: 767, - 16679: 767, - 16680: 767, - 16681: 767, - 16682: 767, - 16683: 767, - 16684: 767, - 16685: 767, - 16686: 767, - 16687: 767, - 16688: 767, - 16689: 767, - 16690: 767, - 16691: 767, - 16692: 767, - 16693: 767, - 16694: 767, - 16695: 767, - 16696: 767, - 16697: 767, - 16698: 767, - 16699: 767, - 16700: 767, - 16701: 767, - 16702: 767, - 16703: 767, - 16704: 767, - 16705: 767, - 16706: 767, - 16707: 767, - 16708: 767, - 16709: 767, - 16710: 767, - 16711: 767, - 16712: 767, - 16713: 767, - 16714: 767, - 16715: 767, - 16716: 767, - 16717: 767, - 16718: 767, - 16719: 767, - 16720: 767, - 16721: 767, - 16722: 767, - 16723: 767, - 16724: 767, - 16725: 767, - 16726: 767, - 16727: 767, - 16728: 767, - 16729: 767, - 16730: 767, - 16731: 767, - 16732: 767, - 16733: 767, - 16734: 767, - 16735: 767, - 16736: 767, - 16737: 767, - 16738: 767, - 16739: 767, - 16740: 767, - 16741: 767, - 16742: 767, - 16743: 767, - 16744: 767, - 16745: 767, - 16746: 767, - 16747: 767, - 16748: 767, - 16749: 767, - 16750: 767, - 16751: 767, - 16752: 767, - 16753: 767, - 16754: 767, - 16755: 767, - 16756: 767, - 16757: 767, - 16758: 767, - 16759: 767, - 16760: 767, - 16761: 767, - 16762: 767, - 16763: 767, - 16764: 767, - 16765: 767, - 16766: 767, - 16767: 767, - 16768: 767, - 16769: 767, - 16770: 767, - 16771: 767, - 16772: 767, - 16773: 767, - 16774: 767, - 16775: 767, - 16776: 767, - 16777: 767, - 16778: 767, - 16779: 767, - 16780: 767, - 16781: 767, - 16782: 767, - 16783: 767, - 16784: 767, - 16785: 767, - 16786: 767, - 16787: 767, - 16788: 767, - 16789: 767, - 16790: 767, - 16791: 767, - 16792: 767, - 16793: 767, - 16794: 767, - 16795: 767, - 16796: 767, - 16797: 767, - 16798: 767, - 16799: 767, - 16800: 767, - 16801: 767, - 16802: 767, - 16803: 767, - 16804: 767, - 16805: 767, - 16806: 767, - 16807: 767, - 16808: 767, - 16809: 767, - 16810: 767, - 16811: 767, - 16812: 767, - 16813: 767, - 16814: 767, - 16815: 767, - 16816: 767, - 16817: 767, - 16818: 767, - 16819: 767, - 16820: 767, - 16821: 767, - 16822: 767, - 16823: 767, - 16824: 767, - 16825: 767, - 16826: 767, - 16827: 767, - 16828: 767, - 16829: 767, - 16830: 767, - 16831: 767, - 16832: 767, - 16833: 767, - 16834: 767, - 16835: 767, - 16836: 767, - 16837: 767, - 16838: 767, - 16839: 767, - 16840: 767, - 16841: 767, - 16842: 767, - 16843: 767, - 16844: 767, - 16845: 767, - 16846: 767, - 16847: 767, - 16848: 767, - 16849: 767, - 16850: 767, - 16851: 767, - 16852: 767, - 16853: 767, - 16854: 767, - 16855: 767, - 16856: 767, - 16857: 767, - 16858: 767, - 16859: 767, - 16860: 767, - 16861: 767, - 16862: 767, - 16863: 767, - 16864: 767, - 16865: 767, - 16866: 767, - 16867: 767, - 16868: 767, - 16869: 767, - 16870: 767, - 16871: 767, - 16872: 767, - 16873: 767, - 16874: 767, - 16875: 767, - 16876: 767, - 16877: 767, - 16878: 767, - 16879: 767, - 16880: 767, - 16881: 767, - 16882: 767, - 16883: 767, - 16884: 767, - 16885: 767, - 16886: 767, - 16887: 767, - 16888: 767, - 16889: 767, - 16890: 767, - 16891: 767, - 16892: 767, - 16893: 767, - 16894: 767, - 16895: 767, - 16896: 767, - 16897: 767, - 16898: 767, - 16899: 767, - 16900: 767, - 16901: 767, - 16902: 767, - 16903: 767, - 16904: 767, - 16905: 767, - 16906: 767, - 16907: 767, - 16908: 767, - 16909: 767, - 16910: 767, - 16911: 767, - 16912: 767, - 16913: 767, - 16914: 767, - 16915: 767, - 16916: 767, - 16917: 767, - 16918: 768, - 16919: 769, - 16920: 769, - 16921: 769, - 16922: 769, - 16923: 769, - 16924: 769, - 16925: 769, - 16926: 769, - 16927: 769, - 16928: 769, - 16929: 769, - 16930: 769, - 16931: 769, - 16932: 769, - 16933: 769, - 16934: 769, - 16935: 769, - 16936: 769, - 16937: 769, - 16938: 769, - 16939: 769, - 16940: 769, - 16941: 769, - 16942: 769, - 16943: 769, - 16944: 769, - 16945: 769, - 16946: 769, - 16947: 769, - 16948: 769, - 16949: 769, - 16950: 769, - 16951: 769, - 16952: 769, - 16953: 769, - 16954: 769, - 16955: 769, - 16956: 769, - 16957: 769, - 16958: 769, - 16959: 769, - 16960: 769, - 16961: 769, - 16962: 769, - 16963: 769, - 16964: 769, - 16965: 769, - 16966: 769, - 16967: 769, - 16968: 769, - 16969: 769, - 16970: 769, - 16971: 769, - 16972: 769, - 16973: 769, - 16974: 769, - 16975: 769, - 16976: 769, - 16977: 769, - 16978: 769, - 16979: 769, - 16980: 769, - 16981: 769, - 16982: 769, - 16983: 769, - 16984: 769, - 16985: 769, - 16986: 769, - 16987: 769, - 16988: 769, - 16989: 769, - 16990: 769, - 16991: 769, - 16992: 769, - 16993: 769, - 16994: 769, - 16995: 769, - 16996: 769, - 16997: 769, - 16998: 769, - 16999: 770, - 17000: 770, - 17001: 770, - 17002: 770, - 17003: 770, - 17004: 770, - 17005: 771, - 17006: 771, - 17007: 772, - 17008: 772, - 17009: 772, - 17010: 772, - 17011: 772, - 17012: 772, - 17013: 772, - 17014: 772, - 17015: 772, - 17016: 772, - 17017: 772, - 17018: 772, - 17019: 772, - 17020: 772, - 17021: 772, - 17022: 772, - 17023: 772, - 17024: 772, - 17025: 772, - 17026: 772, - 17027: 772, - 17028: 772, - 17029: 772, - 17030: 772, - 17031: 773, - 17032: 773, - 17033: 773, - 17034: 773, - 17035: 773, - 17036: 773, - 17037: 773, - 17038: 773, - 17039: 773, - 17040: 773, - 17041: 773, - 17042: 773, - 17043: 773, - 17044: 773, - 17045: 773, - 17046: 773, - 17047: 773, - 17048: 773, - 17049: 773, - 17050: 773, - 17051: 773, - 17052: 773, - 17053: 773, - 17054: 773, - 17055: 773, - 17056: 773, - 17057: 773, - 17058: 773, - 17059: 773, - 17060: 773, - 17061: 773, - 17062: 773, - 17063: 773, - 17064: 773, - 17065: 773, - 17066: 773, - 17067: 773, - 17068: 773, - 17069: 773, - 17070: 773, - 17071: 773, - 17072: 773, - 17073: 773, - 17074: 773, - 17075: 773, - 17076: 773, - 17077: 773, - 17078: 773, - 17079: 773, - 17080: 773, - 17081: 773, - 17082: 773, - 17083: 773, - 17084: 773, - 17085: 773, - 17086: 773, - 17087: 773, - 17088: 773, - 17089: 773, - 17090: 773, - 17091: 773, - 17092: 773, - 17093: 773, - 17094: 773, - 17095: 773, - 17096: 773, - 17097: 773, - 17098: 773, - 17099: 773, - 17100: 773, - 17101: 773, - 17102: 773, - 17103: 773, - 17104: 773, - 17105: 773, - 17106: 773, - 17107: 773, - 17108: 773, - 17109: 773, - 17110: 773, - 17111: 773, - 17112: 773, - 17113: 773, - 17114: 773, - 17115: 773, - 17116: 773, - 17117: 773, - 17118: 773, - 17119: 773, - 17120: 773, - 17121: 773, - 17122: 773, - 17123: 773, - 17124: 773, - 17125: 773, - 17126: 773, - 17127: 773, - 17128: 773, - 17129: 773, - 17130: 773, - 17131: 773, - 17132: 773, - 17133: 773, - 17134: 773, - 17135: 773, - 17136: 773, - 17137: 773, - 17138: 773, - 17139: 773, - 17140: 773, - 17141: 773, - 17142: 773, - 17143: 773, - 17144: 773, - 17145: 773, - 17146: 773, - 17147: 773, - 17148: 773, - 17149: 773, - 17150: 773, - 17151: 773, - 17152: 773, - 17153: 773, - 17154: 773, - 17155: 773, - 17156: 773, - 17157: 773, - 17158: 773, - 17159: 773, - 17160: 773, - 17161: 773, - 17162: 773, - 17163: 773, - 17164: 773, - 17165: 773, - 17166: 773, - 17167: 773, - 17168: 773, - 17169: 773, - 17170: 773, - 17171: 773, - 17172: 773, - 17173: 773, - 17174: 773, - 17175: 773, - 17176: 773, - 17177: 773, - 17178: 773, - 17179: 773, - 17180: 773, - 17181: 773, - 17182: 773, - 17183: 773, - 17184: 773, - 17185: 773, - 17186: 773, - 17187: 773, - 17188: 773, - 17189: 773, - 17190: 773, - 17191: 773, - 17192: 773, - 17193: 773, - 17194: 773, - 17195: 773, - 17196: 773, - 17197: 773, - 17198: 773, - 17199: 773, - 17200: 773, - 17201: 773, - 17202: 773, - 17203: 773, - 17204: 773, - 17205: 773, - 17206: 773, - 17207: 773, - 17208: 773, - 17209: 773, - 17210: 773, - 17211: 773, - 17212: 773, - 17213: 773, - 17214: 773, - 17215: 773, - 17216: 773, - 17217: 773, - 17218: 773, - 17219: 773, - 17220: 773, - 17221: 773, - 17222: 773, - 17223: 773, - 17224: 773, - 17225: 773, - 17226: 773, - 17227: 773, - 17228: 773, - 17229: 773, - 17230: 773, - 17231: 773, - 17232: 773, - 17233: 773, - 17234: 773, - 17235: 773, - 17236: 773, - 17237: 773, - 17238: 773, - 17239: 773, - 17240: 773, - 17241: 773, - 17242: 773, - 17243: 773, - 17244: 773, - 17245: 773, - 17246: 773, - 17247: 773, - 17248: 773, - 17249: 773, - 17250: 773, - 17251: 773, - 17252: 773, - 17253: 773, - 17254: 773, - 17255: 773, - 17256: 773, - 17257: 773, - 17258: 773, - 17259: 773, - 17260: 773, - 17261: 773, - 17262: 773, - 17263: 773, - 17264: 773, - 17265: 773, - 17266: 773, - 17267: 773, - 17268: 773, - 17269: 773, - 17270: 773, - 17271: 773, - 17272: 773, - 17273: 773, - 17274: 773, - 17275: 773, - 17276: 773, - 17277: 773, - 17278: 773, - 17279: 773, - 17280: 773, - 17281: 773, - 17282: 773, - 17283: 773, - 17284: 773, - 17285: 773, - 17286: 773, - 17287: 773, - 17288: 773, - 17289: 773, - 17290: 773, - 17291: 773, - 17292: 773, - 17293: 773, - 17294: 773, - 17295: 773, - 17296: 773, - 17297: 773, - 17298: 773, - 17299: 773, - 17300: 773, - 17301: 773, - 17302: 773, - 17303: 773, - 17304: 773, - 17305: 773, - 17306: 773, - 17307: 773, - 17308: 773, - 17309: 773, - 17310: 773, - 17311: 773, - 17312: 773, - 17313: 773, - 17314: 773, - 17315: 773, - 17316: 773, - 17317: 773, - 17318: 773, - 17319: 773, - 17320: 773, - 17321: 773, - 17322: 773, - 17323: 773, - 17324: 773, - 17325: 773, - 17326: 773, - 17327: 773, - 17328: 773, - 17329: 773, - 17330: 773, - 17331: 773, - 17332: 773, - 17333: 773, - 17334: 773, - 17335: 773, - 17336: 773, - 17337: 773, - 17338: 773, - 17339: 773, - 17340: 773, - 17341: 773, - 17342: 773, - 17343: 773, - 17344: 773, - 17345: 773, - 17346: 773, - 17347: 773, - 17348: 773, - 17349: 773, - 17350: 773, - 17351: 773, - 17352: 773, - 17353: 773, - 17354: 773, - 17355: 774, - 17356: 775, - 17357: 776, - 17358: 777, - 17359: 777, - 17360: 777, - 17361: 777, - 17362: 777, - 17363: 777, - 17364: 777, - 17365: 777, - 17366: 777, - 17367: 777, - 17368: 777, - 17369: 777, - 17370: 777, - 17371: 777, - 17372: 777, - 17373: 777, - 17374: 778, - 17375: 778, - 17376: 778, - 17377: 778, - 17378: 778, - 17379: 778, - 17380: 778, - 17381: 778, - 17382: 778, - 17383: 778, - 17384: 778, - 17385: 778, - 17386: 778, - 17387: 778, - 17388: 778, - 17389: 778, - 17390: 779, - 17391: 779, - 17392: 779, - 17393: 779, - 17394: 779, - 17395: 779, - 17396: 779, - 17397: 779, - 17398: 779, - 17399: 779, - 17400: 779, - 17401: 779, - 17402: 779, - 17403: 779, - 17404: 779, - 17405: 779, - 17406: 780, - 17407: 780, - 17408: 780, - 17409: 780, - 17410: 780, - 17411: 780, - 17412: 780, - 17413: 780, - 17414: 780, - 17415: 780, - 17416: 780, - 17417: 780, - 17418: 780, - 17419: 780, - 17420: 780, - 17421: 780, - 17422: 781, - 17423: 781, - 17424: 781, - 17425: 781, - 17426: 781, - 17427: 781, - 17428: 781, - 17429: 781, - 17430: 781, - 17431: 781, - 17432: 781, - 17433: 781, - 17434: 781, - 17435: 781, - 17436: 781, - 17437: 781, - 17438: 782, - 17439: 782, - 17440: 782, - 17441: 782, - 17442: 782, - 17443: 782, - 17444: 782, - 17445: 782, - 17446: 782, - 17447: 782, - 17448: 782, - 17449: 782, - 17450: 782, - 17451: 782, - 17452: 782, - 17453: 782, - 17454: 783, - 17455: 783, - 17456: 783, - 17457: 783, - 17458: 783, - 17459: 783, - 17460: 783, - 17461: 783, - 17462: 783, - 17463: 783, - 17464: 783, - 17465: 783, - 17466: 783, - 17467: 783, - 17468: 783, - 17469: 783, - 17470: 784, - 17471: 784, - 17472: 784, - 17473: 784, - 17474: 784, - 17475: 784, - 17476: 784, - 17477: 784, - 17478: 784, - 17479: 784, - 17480: 784, - 17481: 784, - 17482: 784, - 17483: 784, - 17484: 784, - 17485: 784, - 17486: 785, - 17487: 785, - 17488: 785, - 17489: 785, - 17490: 785, - 17491: 785, - 17492: 785, - 17493: 785, - 17494: 785, - 17495: 785, - 17496: 785, - 17497: 785, - 17498: 785, - 17499: 785, - 17500: 785, - 17501: 785, - 17502: 786, - 17503: 786, - 17504: 786, - 17505: 786, - 17506: 786, - 17507: 786, - 17508: 786, - 17509: 786, - 17510: 786, - 17511: 786, - 17512: 786, - 17513: 786, - 17514: 786, - 17515: 786, - 17516: 786, - 17517: 786, - 17518: 787, - 17519: 787, - 17520: 787, - 17521: 787, - 17522: 787, - 17523: 787, - 17524: 787, - 17525: 787, - 17526: 787, - 17527: 787, - 17528: 787, - 17529: 787, - 17530: 787, - 17531: 787, - 17532: 787, - 17533: 787, - 17534: 788, - 17535: 788, - 17536: 788, - 17537: 788, - 17538: 788, - 17539: 788, - 17540: 788, - 17541: 788, - 17542: 788, - 17543: 788, - 17544: 788, - 17545: 788, - 17546: 788, - 17547: 788, - 17548: 788, - 17549: 788, - 17550: 789, - 17551: 789, - 17552: 789, - 17553: 789, - 17554: 789, - 17555: 789, - 17556: 789, - 17557: 789, - 17558: 789, - 17559: 789, - 17560: 789, - 17561: 789, - 17562: 789, - 17563: 789, - 17564: 789, - 17565: 789, - 17566: 790, - 17567: 790, - 17568: 790, - 17569: 790, - 17570: 790, - 17571: 790, - 17572: 790, - 17573: 790, - 17574: 790, - 17575: 790, - 17576: 790, - 17577: 790, - 17578: 790, - 17579: 790, - 17580: 790, - 17581: 790, - 17582: 791, - 17583: 791, - 17584: 791, - 17585: 791, - 17586: 791, - 17587: 791, - 17588: 791, - 17589: 791, - 17590: 791, - 17591: 791, - 17592: 791, - 17593: 791, - 17594: 791, - 17595: 791, - 17596: 791, - 17597: 791, - 17598: 792, - 17599: 792, - 17600: 792, - 17601: 792, - 17602: 792, - 17603: 792, - 17604: 792, - 17605: 792, - 17606: 792, - 17607: 792, - 17608: 792, - 17609: 792, - 17610: 792, - 17611: 792, - 17612: 792, - 17613: 792, - 17614: 793, - 17615: 793, - 17616: 793, - 17617: 793, - 17618: 793, - 17619: 793, - 17620: 793, - 17621: 793, - 17622: 793, - 17623: 793, - 17624: 793, - 17625: 793, - 17626: 793, - 17627: 793, - 17628: 793, - 17629: 793, - 17630: 794, - 17631: 794, - 17632: 795, - 17633: 795, - 17634: 796, - 17635: 796, - 17636: 797, - 17637: 797, - 17638: 798, - 17639: 798, - 17640: 799, - 17641: 799, - 17642: 800, - 17643: 800, - 17644: 801, - 17645: 801, - 17646: 802, - 17647: 802, - 17648: 803, - 17649: 803, - 17650: 804, - 17651: 804, - 17652: 805, - 17653: 805, - 17654: 806, - 17655: 806, - 17656: 807, - 17657: 807, - 17658: 808, - 17659: 808, - 17660: 809, - 17661: 809, - 17662: 810, - 17663: 810, - 17664: 811, - 17665: 812, - 17666: 813, - 17667: 813, - 17668: 813, - 17669: 813, - 17670: 813, - 17671: 813, - 17672: 813, - 17673: 813, - 17674: 813, - 17675: 813, - 17676: 813, - 17677: 813, - 17678: 814, - 17679: 814, - 17680: 814, - 17681: 814, - 17682: 814, - 17683: 814, - 17684: 814, - 17685: 814, - 17686: 814, - 17687: 814, - 17688: 814, - 17689: 814, - 17690: 815, - 17691: 815, - 17692: 815, - 17693: 815, - 17694: 815, - 17695: 815, - 17696: 815, - 17697: 815, - 17698: 815, - 17699: 815, - 17700: 815, - 17701: 815, - 17702: 816, - 17703: 816, - 17704: 816, - 17705: 816, - 17706: 816, - 17707: 816, - 17708: 816, - 17709: 816, - 17710: 816, - 17711: 816, - 17712: 816, - 17713: 816, - 17714: 817, - 17715: 818, - 17716: 819, - 17717: 820, - 17718: 821, - 17719: 821, - 17720: 821, - 17721: 821, - 17722: 821, - 17723: 821, - 17724: 821, - 17725: 821, - 17726: 821, - 17727: 821, - 17728: 821, - 17729: 821, - 17730: 821, - 17731: 821, - 17732: 821, - 17733: 821, - 17734: 821, - 17735: 821, - 17736: 821, - 17737: 821, - 17738: 821, - 17739: 821, - 17740: 821, - 17741: 821, - 17742: 821, - 17743: 821, - 17744: 821, - 17745: 821, - 17746: 821, - 17747: 821, - 17748: 821, - 17749: 821, - 17750: 821, - 17751: 821, - 17752: 821, - 17753: 821, - 17754: 821, - 17755: 821, - 17756: 821, - 17757: 821, - 17758: 821, - 17759: 821, - 17760: 821, - 17761: 821, - 17762: 821, - 17763: 821, - 17764: 821, - 17765: 821, - 17766: 821, - 17767: 821, - 17768: 821, - 17769: 821, - 17770: 821, - 17771: 821, - 17772: 821, - 17773: 821, - 17774: 821, - 17775: 821, - 17776: 821, - 17777: 821, - 17778: 821, - 17779: 821, - 17780: 821, - 17781: 821, - 17782: 821, - 17783: 821, - 17784: 821, - 17785: 821, - 17786: 821, - 17787: 821, - 17788: 821, - 17789: 821, - 17790: 821, - 17791: 821, - 17792: 821, - 17793: 821, - 17794: 821, - 17795: 821, - 17796: 821, - 17797: 821, - 17798: 821, - 17799: 821, - 17800: 821, - 17801: 821, - 17802: 821, - 17803: 821, - 17804: 821, - 17805: 821, - 17806: 821, - 17807: 821, - 17808: 821, - 17809: 821, - 17810: 821, - 17811: 821, - 17812: 821, - 17813: 821, - 17814: 822, - 17815: 823, - 17816: 824, - 17817: 825, - 17818: 826, - 17819: 827, - 17820: 828, - 17821: 829, - 17822: 830, - 17823: 831, - 17824: 832, - 17825: 832, - 17826: 832, - 17827: 832, - 17828: 832, - 17829: 832, - 17830: 832, - 17831: 832, - 17832: 832, - 17833: 832, - 17834: 832, - 17835: 832, - 17836: 832, - 17837: 832, - 17838: 832, - 17839: 832, - 17840: 832, - 17841: 832, - 17842: 832, - 17843: 832, - 17844: 832, - 17845: 832, - 17846: 832, - 17847: 832, - 17848: 832, - 17849: 832, - 17850: 832, - 17851: 832, - 17852: 832, - 17853: 832, - 17854: 832, - 17855: 832, - 17856: 832, - 17857: 832, - 17858: 832, - 17859: 832, - 17860: 832, - 17861: 832, - 17862: 832, - 17863: 832, - 17864: 832, - 17865: 832, - 17866: 832, - 17867: 832, - 17868: 832, - 17869: 832, - 17870: 832, - 17871: 832, - 17872: 832, - 17873: 832, - 17874: 832, - 17875: 832, - 17876: 832, - 17877: 832, - 17878: 832, - 17879: 832, - 17880: 832, - 17881: 832, - 17882: 832, - 17883: 832, - 17884: 832, - 17885: 832, - 17886: 832, - 17887: 832, - 17888: 832, - 17889: 832, - 17890: 832, - 17891: 832, - 17892: 832, - 17893: 832, - 17894: 832, - 17895: 832, - 17896: 832, - 17897: 832, - 17898: 832, - 17899: 832, - 17900: 832, - 17901: 832, - 17902: 832, - 17903: 832, - 17904: 833, - 17905: 833, - 17906: 833, - 17907: 833, - 17908: 833, - 17909: 833, - 17910: 833, - 17911: 833, - 17912: 833, - 17913: 833, - 17914: 833, - 17915: 833, - 17916: 833, - 17917: 833, - 17918: 833, - 17919: 833, - 17920: 833, - 17921: 833, - 17922: 833, - 17923: 833, - 17924: 833, - 17925: 833, - 17926: 833, - 17927: 833, - 17928: 833, - 17929: 833, - 17930: 833, - 17931: 833, - 17932: 833, - 17933: 833, - 17934: 833, - 17935: 833, - 17936: 833, - 17937: 833, - 17938: 833, - 17939: 833, - 17940: 833, - 17941: 833, - 17942: 833, - 17943: 833, - 17944: 833, - 17945: 833, - 17946: 833, - 17947: 833, - 17948: 833, - 17949: 833, - 17950: 833, - 17951: 833, - 17952: 833, - 17953: 833, - 17954: 833, - 17955: 833, - 17956: 833, - 17957: 833, - 17958: 833, - 17959: 833, - 17960: 833, - 17961: 833, - 17962: 833, - 17963: 833, - 17964: 833, - 17965: 833, - 17966: 833, - 17967: 833, - 17968: 833, - 17969: 833, - 17970: 833, - 17971: 833, - 17972: 833, - 17973: 833, - 17974: 833, - 17975: 833, - 17976: 833, - 17977: 833, - 17978: 833, - 17979: 833, - 17980: 833, - 17981: 833, - 17982: 833, - 17983: 833, - 17984: 834, - 17985: 834, - 17986: 834, - 17987: 834, - 17988: 834, - 17989: 834, - 17990: 834, - 17991: 834, - 17992: 834, - 17993: 834, - 17994: 834, - 17995: 834, - 17996: 834, - 17997: 834, - 17998: 834, - 17999: 834, - 18000: 834, - 18001: 834, - 18002: 834, - 18003: 834, - 18004: 834, - 18005: 834, - 18006: 834, - 18007: 834, - 18008: 834, - 18009: 834, - 18010: 834, - 18011: 834, - 18012: 834, - 18013: 834, - 18014: 834, - 18015: 834, - 18016: 834, - 18017: 834, - 18018: 834, - 18019: 834, - 18020: 834, - 18021: 834, - 18022: 834, - 18023: 834, - 18024: 834, - 18025: 834, - 18026: 834, - 18027: 834, - 18028: 834, - 18029: 834, - 18030: 834, - 18031: 834, - 18032: 834, - 18033: 834, - 18034: 834, - 18035: 834, - 18036: 834, - 18037: 834, - 18038: 834, - 18039: 834, - 18040: 834, - 18041: 834, - 18042: 834, - 18043: 834, - 18044: 834, - 18045: 834, - 18046: 834, - 18047: 834, - 18048: 834, - 18049: 834, - 18050: 834, - 18051: 834, - 18052: 834, - 18053: 834, - 18054: 834, - 18055: 834, - 18056: 834, - 18057: 834, - 18058: 834, - 18059: 834, - 18060: 834, - 18061: 834, - 18062: 834, - 18063: 834, - 18064: 835, - 18065: 835, - 18066: 835, - 18067: 835, - 18068: 835, - 18069: 835, - 18070: 835, - 18071: 835, - 18072: 835, - 18073: 835, - 18074: 835, - 18075: 835, - 18076: 835, - 18077: 835, - 18078: 835, - 18079: 835, - 18080: 835, - 18081: 835, - 18082: 835, - 18083: 835, - 18084: 835, - 18085: 835, - 18086: 835, - 18087: 835, - 18088: 835, - 18089: 835, - 18090: 835, - 18091: 835, - 18092: 835, - 18093: 835, - 18094: 835, - 18095: 835, - 18096: 835, - 18097: 835, - 18098: 835, - 18099: 835, - 18100: 835, - 18101: 835, - 18102: 835, - 18103: 835, - 18104: 835, - 18105: 835, - 18106: 835, - 18107: 835, - 18108: 835, - 18109: 835, - 18110: 835, - 18111: 835, - 18112: 835, - 18113: 835, - 18114: 835, - 18115: 835, - 18116: 835, - 18117: 835, - 18118: 835, - 18119: 835, - 18120: 835, - 18121: 835, - 18122: 835, - 18123: 835, - 18124: 835, - 18125: 835, - 18126: 835, - 18127: 835, - 18128: 835, - 18129: 835, - 18130: 835, - 18131: 835, - 18132: 835, - 18133: 835, - 18134: 835, - 18135: 835, - 18136: 835, - 18137: 835, - 18138: 835, - 18139: 835, - 18140: 835, - 18141: 835, - 18142: 835, - 18143: 835, - 18144: 836, - 18145: 836, - 18146: 836, - 18147: 836, - 18148: 836, - 18149: 836, - 18150: 837, - 18151: 837, - 18152: 837, - 18153: 837, - 18154: 837, - 18155: 837, - 18156: 838, - 18157: 838, - 18158: 838, - 18159: 838, - 18160: 838, - 18161: 838, - 18162: 839, - 18163: 839, - 18164: 839, - 18165: 839, - 18166: 839, - 18167: 839, - 18168: 840, - 18169: 841, - 18170: 842, - 18171: 843, - 18172: 844, - 18173: 845, - 18174: 846, - 18175: 847, - 18176: 848, - 18177: 848, - 18178: 848, - 18179: 848, - 18180: 848, - 18181: 848, - 18182: 848, - 18183: 848, - 18184: 848, - 18185: 848, - 18186: 848, - 18187: 848, - 18188: 848, - 18189: 848, - 18190: 848, - 18191: 848, - 18192: 848, - 18193: 848, - 18194: 848, - 18195: 848, - 18196: 848, - 18197: 848, - 18198: 848, - 18199: 848, - 18200: 848, - 18201: 848, - 18202: 848, - 18203: 848, - 18204: 848, - 18205: 848, - 18206: 848, - 18207: 848, - 18208: 848, - 18209: 848, - 18210: 848, - 18211: 848, - 18212: 848, - 18213: 848, - 18214: 848, - 18215: 848, - 18216: 848, - 18217: 848, - 18218: 848, - 18219: 848, - 18220: 848, - 18221: 848, - 18222: 848, - 18223: 848, - 18224: 848, - 18225: 848, - 18226: 848, - 18227: 848, - 18228: 848, - 18229: 848, - 18230: 848, - 18231: 848, - 18232: 848, - 18233: 848, - 18234: 848, - 18235: 848, - 18236: 848, - 18237: 848, - 18238: 848, - 18239: 848, - 18240: 848, - 18241: 848, - 18242: 848, - 18243: 848, - 18244: 848, - 18245: 848, - 18246: 848, - 18247: 848, - 18248: 848, - 18249: 848, - 18250: 848, - 18251: 848, - 18252: 848, - 18253: 848, - 18254: 848, - 18255: 848, - 18256: 849, - 18257: 849, - 18258: 849, - 18259: 849, - 18260: 849, - 18261: 849, - 18262: 849, - 18263: 849, - 18264: 849, - 18265: 849, - 18266: 849, - 18267: 849, - 18268: 849, - 18269: 849, - 18270: 849, - 18271: 849, - 18272: 849, - 18273: 849, - 18274: 849, - 18275: 849, - 18276: 849, - 18277: 849, - 18278: 849, - 18279: 849, - 18280: 849, - 18281: 849, - 18282: 849, - 18283: 849, - 18284: 849, - 18285: 849, - 18286: 849, - 18287: 849, - 18288: 849, - 18289: 849, - 18290: 849, - 18291: 849, - 18292: 849, - 18293: 849, - 18294: 849, - 18295: 849, - 18296: 849, - 18297: 849, - 18298: 849, - 18299: 849, - 18300: 849, - 18301: 849, - 18302: 849, - 18303: 849, - 18304: 849, - 18305: 849, - 18306: 849, - 18307: 849, - 18308: 849, - 18309: 849, - 18310: 849, - 18311: 849, - 18312: 849, - 18313: 849, - 18314: 849, - 18315: 849, - 18316: 849, - 18317: 849, - 18318: 849, - 18319: 849, - 18320: 849, - 18321: 849, - 18322: 849, - 18323: 849, - 18324: 849, - 18325: 849, - 18326: 849, - 18327: 849, - 18328: 849, - 18329: 849, - 18330: 849, - 18331: 849, - 18332: 849, - 18333: 849, - 18334: 849, - 18335: 849, - 18336: 850, - 18337: 850, - 18338: 850, - 18339: 850, - 18340: 850, - 18341: 850, - 18342: 850, - 18343: 850, - 18344: 850, - 18345: 850, - 18346: 850, - 18347: 850, - 18348: 850, - 18349: 850, - 18350: 850, - 18351: 850, - 18352: 850, - 18353: 850, - 18354: 850, - 18355: 850, - 18356: 850, - 18357: 850, - 18358: 850, - 18359: 850, - 18360: 850, - 18361: 850, - 18362: 850, - 18363: 850, - 18364: 850, - 18365: 850, - 18366: 850, - 18367: 850, - 18368: 850, - 18369: 850, - 18370: 850, - 18371: 850, - 18372: 850, - 18373: 850, - 18374: 850, - 18375: 850, - 18376: 850, - 18377: 850, - 18378: 850, - 18379: 850, - 18380: 850, - 18381: 850, - 18382: 850, - 18383: 850, - 18384: 850, - 18385: 850, - 18386: 850, - 18387: 850, - 18388: 850, - 18389: 850, - 18390: 850, - 18391: 850, - 18392: 850, - 18393: 850, - 18394: 850, - 18395: 850, - 18396: 850, - 18397: 850, - 18398: 850, - 18399: 850, - 18400: 850, - 18401: 850, - 18402: 850, - 18403: 850, - 18404: 850, - 18405: 850, - 18406: 850, - 18407: 850, - 18408: 850, - 18409: 850, - 18410: 850, - 18411: 850, - 18412: 850, - 18413: 850, - 18414: 850, - 18415: 850, - 18416: 851, - 18417: 851, - 18418: 851, - 18419: 851, - 18420: 851, - 18421: 851, - 18422: 851, - 18423: 851, - 18424: 851, - 18425: 851, - 18426: 851, - 18427: 851, - 18428: 851, - 18429: 851, - 18430: 851, - 18431: 851, - 18432: 851, - 18433: 851, - 18434: 851, - 18435: 851, - 18436: 851, - 18437: 851, - 18438: 851, - 18439: 851, - 18440: 851, - 18441: 851, - 18442: 851, - 18443: 851, - 18444: 851, - 18445: 851, - 18446: 851, - 18447: 851, - 18448: 851, - 18449: 851, - 18450: 851, - 18451: 851, - 18452: 851, - 18453: 851, - 18454: 851, - 18455: 851, - 18456: 851, - 18457: 851, - 18458: 851, - 18459: 851, - 18460: 851, - 18461: 851, - 18462: 851, - 18463: 851, - 18464: 851, - 18465: 851, - 18466: 851, - 18467: 851, - 18468: 851, - 18469: 851, - 18470: 851, - 18471: 851, - 18472: 851, - 18473: 851, - 18474: 851, - 18475: 851, - 18476: 851, - 18477: 851, - 18478: 851, - 18479: 851, - 18480: 851, - 18481: 851, - 18482: 851, - 18483: 851, - 18484: 851, - 18485: 851, - 18486: 851, - 18487: 851, - 18488: 851, - 18489: 851, - 18490: 851, - 18491: 851, - 18492: 851, - 18493: 851, - 18494: 851, - 18495: 851, - 18496: 852, - 18497: 852, - 18498: 852, - 18499: 852, - 18500: 852, - 18501: 852, - 18502: 853, - 18503: 853, - 18504: 853, - 18505: 853, - 18506: 853, - 18507: 853, - 18508: 854, - 18509: 854, - 18510: 854, - 18511: 854, - 18512: 854, - 18513: 854, - 18514: 855, - 18515: 855, - 18516: 855, - 18517: 855, - 18518: 855, - 18519: 855, - 18520: 856, - 18521: 856, - 18522: 856, - 18523: 856, - 18524: 856, - 18525: 856, - 18526: 856, - 18527: 856, - 18528: 856, - 18529: 856, - 18530: 856, - 18531: 856, - 18532: 856, - 18533: 856, - 18534: 856, - 18535: 856, - 18536: 856, - 18537: 856, - 18538: 856, - 18539: 856, - 18540: 856, - 18541: 856, - 18542: 856, - 18543: 856, - 18544: 857, - 18545: 857, - 18546: 857, - 18547: 857, - 18548: 857, - 18549: 857, - 18550: 857, - 18551: 857, - 18552: 857, - 18553: 857, - 18554: 857, - 18555: 857, - 18556: 857, - 18557: 857, - 18558: 857, - 18559: 857, - 18560: 857, - 18561: 857, - 18562: 857, - 18563: 857, - 18564: 858, - 18565: 859, - 18566: 859, - 18567: 859, - 18568: 859, - 18569: 859, - 18570: 859, - 18571: 859, - 18572: 859, - 18573: 859, - 18574: 859, - 18575: 859, - 18576: 859, - 18577: 859, - 18578: 859, - 18579: 859, - 18580: 859, - 18581: 859, - 18582: 859, - 18583: 859, - 18584: 859, - 18585: 859, - 18586: 859, - 18587: 859, - 18588: 859, - 18589: 859, - 18590: 859, - 18591: 859, - 18592: 859, - 18593: 859, - 18594: 859, - 18595: 859, - 18596: 859, - 18597: 859, - 18598: 859, - 18599: 859, - 18600: 859, - 18601: 859, - 18602: 859, - 18603: 859, - 18604: 859, - 18605: 859, - 18606: 859, - 18607: 859, - 18608: 859, - 18609: 859, - 18610: 859, - 18611: 859, - 18612: 859, - 18613: 859, - 18614: 859, - 18615: 859, - 18616: 859, - 18617: 860, - 18618: 860, - 18619: 861, - 18620: 862, - 18621: 863, - 18622: 864, - 18623: 865, - 18624: 866, - 18625: 866, - 18626: 866, - 18627: 866, - 18628: 866, - 18629: 866, - 18630: 866, - 18631: 866, - 18632: 866, - 18633: 866, - 18634: 866, - 18635: 866, - 18636: 866, - 18637: 866, - 18638: 866, - 18639: 866, - 18640: 866, - 18641: 866, - 18642: 866, - 18643: 866, - 18644: 866, - 18645: 866, - 18646: 866, - 18647: 866, - 18648: 866, - 18649: 866, - 18650: 866, - 18651: 866, - 18652: 866, - 18653: 866, - 18654: 866, - 18655: 866, - 18656: 867, - 18657: 867, - 18658: 867, - 18659: 867, - 18660: 867, - 18661: 867, - 18662: 867, - 18663: 867, - 18664: 868, - 18665: 868, - 18666: 868, - 18667: 868, - 18668: 868, - 18669: 868, - 18670: 868, - 18671: 868, - 18672: 868, - 18673: 868, - 18674: 868, - 18675: 868, - 18676: 868, - 18677: 868, - 18678: 868, - 18679: 868, - 18680: 869, - 18681: 869, - 18682: 870, - 18683: 871, - 18684: 871, - 18685: 871, - 18686: 872, - 18687: 873, - 18688: 873, - 18689: 873, - 18690: 873, - 18691: 873, - 18692: 873, - 18693: 873, - 18694: 873, - 18695: 873, - 18696: 873, - 18697: 873, - 18698: 873, - 18699: 873, - 18700: 873, - 18701: 873, - 18702: 873, - 18703: 873, - 18704: 873, - 18705: 873, - 18706: 873, - 18707: 873, - 18708: 873, - 18709: 873, - 18710: 873, - 18711: 873, - 18712: 873, - 18713: 873, - 18714: 873, - 18715: 873, - 18716: 873, - 18717: 873, - 18718: 873, - 18719: 873, - 18720: 873, - 18721: 873, - 18722: 873, - 18723: 873, - 18724: 873, - 18725: 873, - 18726: 873, - 18727: 873, - 18728: 873, - 18729: 873, - 18730: 873, - 18731: 873, - 18732: 873, - 18733: 873, - 18734: 873, - 18735: 873, - 18736: 873, - 18737: 873, - 18738: 873, - 18739: 873, - 18740: 873, - 18741: 873, - 18742: 873, - 18743: 873, - 18744: 873, - 18745: 873, - 18746: 873, - 18747: 873, - 18748: 873, - 18749: 873, - 18750: 873, - 18751: 873, - 18752: 873, - 18753: 873, - 18754: 873, - 18755: 873, - 18756: 873, - 18757: 873, - 18758: 873, - 18759: 873, - 18760: 873, - 18761: 873, - 18762: 873, - 18763: 873, - 18764: 873, - 18765: 873, - 18766: 873, - 18767: 874, - 18768: 874, - 18769: 874, - 18770: 874, - 18771: 874, - 18772: 874, - 18773: 875, - 18774: 875, - 18775: 875, - 18776: 875, - 18777: 875, - 18778: 875, - 18779: 875, - 18780: 875, - 18781: 875, - 18782: 875, - 18783: 875, - 18784: 875, - 18785: 875, - 18786: 875, - 18787: 875, - 18788: 875, - 18789: 875, - 18790: 875, - 18791: 875, - 18792: 875, - 18793: 875, - 18794: 875, - 18795: 875, - 18796: 875, - 18797: 875, - 18798: 875, - 18799: 875, - 18800: 875, - 18801: 875, - 18802: 875, - 18803: 875, - 18804: 875, - 18805: 875, - 18806: 875, - 18807: 875, - 18808: 875, - 18809: 875, - 18810: 875, - 18811: 875, - 18812: 875, - 18813: 875, - 18814: 875, - 18815: 875, - 18816: 875, - 18817: 875, - 18818: 875, - 18819: 875, - 18820: 875, - 18821: 875, - 18822: 875, - 18823: 875, - 18824: 875, - 18825: 875, - 18826: 875, - 18827: 875, - 18828: 875, - 18829: 875, - 18830: 875, - 18831: 875, - 18832: 875, - 18833: 875, - 18834: 875, - 18835: 875, - 18836: 875, - 18837: 875, - 18838: 875, - 18839: 875, - 18840: 875, - 18841: 875, - 18842: 875, - 18843: 875, - 18844: 875, - 18845: 875, - 18846: 875, - 18847: 875, - 18848: 875, - 18849: 875, - 18850: 875, - 18851: 875, - 18852: 875, - 18853: 875, - 18854: 875, - 18855: 875, - 18856: 875, - 18857: 875, - 18858: 875, - 18859: 875, - 18860: 875, - 18861: 875, - 18862: 875, - 18863: 875, - 18864: 875, - 18865: 875, - 18866: 875, - 18867: 875, - 18868: 875, - 18869: 875, - 18870: 875, - 18871: 875, - 18872: 875, - 18873: 875, - 18874: 875, - 18875: 875, - 18876: 875, - 18877: 875, - 18878: 875, - 18879: 875, - 18880: 875, - 18881: 875, - 18882: 875, - 18883: 875, - 18884: 875, - 18885: 875, - 18886: 875, - 18887: 875, - 18888: 875, - 18889: 875, - 18890: 875, - 18891: 875, - 18892: 875, - 18893: 875, - 18894: 875, - 18895: 875, - 18896: 875, - 18897: 875, - 18898: 875, - 18899: 875, - 18900: 875, - 18901: 875, - 18902: 875, - 18903: 875, - 18904: 875, - 18905: 875, - 18906: 875, - 18907: 875, - 18908: 875, - 18909: 875, - 18910: 875, - 18911: 875, - 18912: 875, - 18913: 875, - 18914: 875, - 18915: 875, - 18916: 875, - 18917: 875, - 18918: 875, - 18919: 875, - 18920: 875, - 18921: 875, - 18922: 875, - 18923: 875, - 18924: 875, - 18925: 875, - 18926: 875, - 18927: 875, - 18928: 875, - 18929: 875, - 18930: 875, - 18931: 875, - 18932: 875, - 18933: 875, - 18934: 875, - 18935: 875, - 18936: 875, - 18937: 875, - 18938: 875, - 18939: 875, - 18940: 875, - 18941: 875, - 18942: 875, - 18943: 875, - 18944: 875, - 18945: 875, - 18946: 875, - 18947: 875, - 18948: 875, - 18949: 875, - 18950: 875, - 18951: 875, - 18952: 875, - 18953: 875, - 18954: 875, - 18955: 875, - 18956: 875, - 18957: 875, - 18958: 875, - 18959: 875, - 18960: 875, - 18961: 875, - 18962: 875, - 18963: 875, - 18964: 875, - 18965: 875, - 18966: 875, - 18967: 875, - 18968: 875, - 18969: 875, - 18970: 875, - 18971: 875, - 18972: 875, - 18973: 875, - 18974: 875, - 18975: 875, - 18976: 875, - 18977: 875, - 18978: 875, - 18979: 875, - 18980: 875, - 18981: 875, - 18982: 875, - 18983: 875, - 18984: 875, - 18985: 875, - 18986: 875, - 18987: 875, - 18988: 875, - 18989: 875, - 18990: 875, - 18991: 875, - 18992: 875, - 18993: 875, - 18994: 875, - 18995: 875, - 18996: 875, - 18997: 875, - 18998: 875, - 18999: 875, - 19000: 875, - 19001: 875, - 19002: 875, - 19003: 875, - 19004: 875, - 19005: 875, - 19006: 875, - 19007: 875, - 19008: 875, - 19009: 875, - 19010: 875, - 19011: 875, - 19012: 875, - 19013: 875, - 19014: 875, - 19015: 875, - 19016: 875, - 19017: 875, - 19018: 875, - 19019: 875, - 19020: 875, - 19021: 875, - 19022: 875, - 19023: 875, - 19024: 875, - 19025: 875, - 19026: 875, - 19027: 875, - 19028: 875, - 19029: 875, - 19030: 875, - 19031: 875, - 19032: 875, - 19033: 875, - 19034: 875, - 19035: 875, - 19036: 875, - 19037: 875, - 19038: 875, - 19039: 875, - 19040: 875, - 19041: 875, - 19042: 875, - 19043: 875, - 19044: 875, - 19045: 875, - 19046: 875, - 19047: 875, - 19048: 875, - 19049: 875, - 19050: 875, - 19051: 875, - 19052: 875, - 19053: 875, - 19054: 875, - 19055: 875, - 19056: 875, - 19057: 875, - 19058: 875, - 19059: 875, - 19060: 875, - 19061: 875, - 19062: 875, - 19063: 875, - 19064: 875, - 19065: 875, - 19066: 875, - 19067: 875, - 19068: 875, - 19069: 875, - 19070: 875, - 19071: 875, - 19072: 875, - 19073: 875, - 19074: 875, - 19075: 875, - 19076: 875, - 19077: 875, - 19078: 875, - 19079: 875, - 19080: 875, - 19081: 875, - 19082: 875, - 19083: 875, - 19084: 875, - 19085: 875, - 19086: 875, - 19087: 875, - 19088: 875, - 19089: 875, - 19090: 875, - 19091: 875, - 19092: 875, - 19093: 875, - 19094: 875, - 19095: 875, - 19096: 875, - 19097: 876, - 19098: 877, - 19099: 877, - 19100: 877, - 19101: 877, - 19102: 877, - 19103: 877, - 19104: 877, - 19105: 877, - 19106: 877, - 19107: 877, - 19108: 877, - 19109: 877, - 19110: 877, - 19111: 877, - 19112: 877, - 19113: 877, - 19114: 877, - 19115: 877, - 19116: 877, - 19117: 877, - 19118: 877, - 19119: 877, - 19120: 877, - 19121: 877, - 19122: 877, - 19123: 877, - 19124: 877, - 19125: 877, - 19126: 877, - 19127: 877, - 19128: 877, - 19129: 877, - 19130: 877, - 19131: 877, - 19132: 877, - 19133: 877, - 19134: 877, - 19135: 877, - 19136: 877, - 19137: 877, - 19138: 877, - 19139: 877, - 19140: 877, - 19141: 877, - 19142: 877, - 19143: 877, - 19144: 877, - 19145: 877, - 19146: 877, - 19147: 877, - 19148: 877, - 19149: 877, - 19150: 877, - 19151: 877, - 19152: 877, - 19153: 877, - 19154: 877, - 19155: 877, - 19156: 877, - 19157: 877, - 19158: 877, - 19159: 877, - 19160: 877, - 19161: 877, - 19162: 877, - 19163: 877, - 19164: 877, - 19165: 877, - 19166: 877, - 19167: 877, - 19168: 877, - 19169: 877, - 19170: 877, - 19171: 877, - 19172: 877, - 19173: 877, - 19174: 877, - 19175: 877, - 19176: 877, - 19177: 877, - 19178: 878, - 19179: 878, - 19180: 878, - 19181: 878, - 19182: 878, - 19183: 878, - 19184: 879, - 19185: 879, - 19186: 879, - 19187: 879, - 19188: 879, - 19189: 879, - 19190: 879, - 19191: 879, - 19192: 879, - 19193: 879, - 19194: 879, - 19195: 879, - 19196: 879, - 19197: 879, - 19198: 879, - 19199: 879, - 19200: 879, - 19201: 879, - 19202: 879, - 19203: 879, - 19204: 879, - 19205: 879, - 19206: 879, - 19207: 879, - 19208: 879, - 19209: 879, - 19210: 879, - 19211: 879, - 19212: 879, - 19213: 879, - 19214: 879, - 19215: 879, - 19216: 879, - 19217: 879, - 19218: 879, - 19219: 879, - 19220: 879, - 19221: 879, - 19222: 879, - 19223: 879, - 19224: 879, - 19225: 879, - 19226: 879, - 19227: 879, - 19228: 879, - 19229: 879, - 19230: 879, - 19231: 879, - 19232: 879, - 19233: 879, - 19234: 879, - 19235: 879, - 19236: 879, - 19237: 879, - 19238: 879, - 19239: 879, - 19240: 879, - 19241: 879, - 19242: 879, - 19243: 879, - 19244: 879, - 19245: 879, - 19246: 879, - 19247: 879, - 19248: 879, - 19249: 879, - 19250: 879, - 19251: 879, - 19252: 879, - 19253: 879, - 19254: 879, - 19255: 879, - 19256: 879, - 19257: 879, - 19258: 879, - 19259: 879, - 19260: 879, - 19261: 879, - 19262: 879, - 19263: 879, - 19264: 879, - 19265: 879, - 19266: 879, - 19267: 879, - 19268: 879, - 19269: 879, - 19270: 879, - 19271: 879, - 19272: 879, - 19273: 879, - 19274: 879, - 19275: 879, - 19276: 879, - 19277: 879, - 19278: 879, - 19279: 879, - 19280: 879, - 19281: 879, - 19282: 879, - 19283: 879, - 19284: 879, - 19285: 879, - 19286: 879, - 19287: 879, - 19288: 879, - 19289: 879, - 19290: 879, - 19291: 879, - 19292: 879, - 19293: 879, - 19294: 879, - 19295: 879, - 19296: 879, - 19297: 879, - 19298: 879, - 19299: 879, - 19300: 879, - 19301: 879, - 19302: 879, - 19303: 879, - 19304: 879, - 19305: 879, - 19306: 879, - 19307: 879, - 19308: 879, - 19309: 879, - 19310: 879, - 19311: 879, - 19312: 879, - 19313: 879, - 19314: 879, - 19315: 879, - 19316: 879, - 19317: 879, - 19318: 879, - 19319: 879, - 19320: 879, - 19321: 879, - 19322: 879, - 19323: 879, - 19324: 879, - 19325: 879, - 19326: 879, - 19327: 879, - 19328: 879, - 19329: 879, - 19330: 879, - 19331: 879, - 19332: 879, - 19333: 879, - 19334: 879, - 19335: 879, - 19336: 879, - 19337: 879, - 19338: 879, - 19339: 879, - 19340: 879, - 19341: 879, - 19342: 879, - 19343: 879, - 19344: 879, - 19345: 879, - 19346: 879, - 19347: 879, - 19348: 879, - 19349: 879, - 19350: 879, - 19351: 879, - 19352: 879, - 19353: 879, - 19354: 879, - 19355: 879, - 19356: 879, - 19357: 879, - 19358: 879, - 19359: 879, - 19360: 879, - 19361: 879, - 19362: 879, - 19363: 879, - 19364: 879, - 19365: 879, - 19366: 879, - 19367: 879, - 19368: 879, - 19369: 879, - 19370: 879, - 19371: 879, - 19372: 879, - 19373: 879, - 19374: 879, - 19375: 879, - 19376: 879, - 19377: 879, - 19378: 879, - 19379: 879, - 19380: 879, - 19381: 879, - 19382: 879, - 19383: 879, - 19384: 879, - 19385: 879, - 19386: 879, - 19387: 879, - 19388: 879, - 19389: 879, - 19390: 879, - 19391: 879, - 19392: 879, - 19393: 879, - 19394: 879, - 19395: 879, - 19396: 879, - 19397: 879, - 19398: 879, - 19399: 879, - 19400: 879, - 19401: 879, - 19402: 879, - 19403: 879, - 19404: 879, - 19405: 879, - 19406: 879, - 19407: 879, - 19408: 879, - 19409: 879, - 19410: 879, - 19411: 879, - 19412: 879, - 19413: 879, - 19414: 879, - 19415: 879, - 19416: 879, - 19417: 879, - 19418: 879, - 19419: 879, - 19420: 879, - 19421: 879, - 19422: 879, - 19423: 879, - 19424: 879, - 19425: 879, - 19426: 879, - 19427: 879, - 19428: 879, - 19429: 879, - 19430: 879, - 19431: 879, - 19432: 879, - 19433: 879, - 19434: 879, - 19435: 879, - 19436: 879, - 19437: 879, - 19438: 879, - 19439: 879, - 19440: 879, - 19441: 879, - 19442: 879, - 19443: 879, - 19444: 879, - 19445: 879, - 19446: 879, - 19447: 879, - 19448: 879, - 19449: 879, - 19450: 879, - 19451: 879, - 19452: 879, - 19453: 879, - 19454: 879, - 19455: 879, - 19456: 879, - 19457: 879, - 19458: 879, - 19459: 879, - 19460: 879, - 19461: 879, - 19462: 879, - 19463: 879, - 19464: 879, - 19465: 879, - 19466: 879, - 19467: 879, - 19468: 879, - 19469: 879, - 19470: 879, - 19471: 879, - 19472: 879, - 19473: 879, - 19474: 879, - 19475: 879, - 19476: 879, - 19477: 879, - 19478: 879, - 19479: 879, - 19480: 879, - 19481: 879, - 19482: 879, - 19483: 879, - 19484: 879, - 19485: 879, - 19486: 879, - 19487: 879, - 19488: 879, - 19489: 879, - 19490: 879, - 19491: 879, - 19492: 879, - 19493: 879, - 19494: 879, - 19495: 879, - 19496: 879, - 19497: 879, - 19498: 879, - 19499: 879, - 19500: 879, - 19501: 879, - 19502: 879, - 19503: 879, - 19504: 879, - 19505: 879, - 19506: 879, - 19507: 879, - 19508: 880, - 19509: 881, - 19510: 881, - 19511: 881, - 19512: 881, - 19513: 881, - 19514: 881, - 19515: 881, - 19516: 881, - 19517: 881, - 19518: 881, - 19519: 881, - 19520: 881, - 19521: 881, - 19522: 881, - 19523: 881, - 19524: 881, - 19525: 881, - 19526: 881, - 19527: 881, - 19528: 881, - 19529: 881, - 19530: 881, - 19531: 881, - 19532: 881, - 19533: 881, - 19534: 881, - 19535: 881, - 19536: 881, - 19537: 881, - 19538: 881, - 19539: 881, - 19540: 881, - 19541: 881, - 19542: 881, - 19543: 881, - 19544: 881, - 19545: 881, - 19546: 881, - 19547: 881, - 19548: 881, - 19549: 881, - 19550: 881, - 19551: 881, - 19552: 881, - 19553: 881, - 19554: 881, - 19555: 881, - 19556: 881, - 19557: 881, - 19558: 881, - 19559: 881, - 19560: 881, - 19561: 881, - 19562: 881, - 19563: 881, - 19564: 881, - 19565: 881, - 19566: 881, - 19567: 881, - 19568: 881, - 19569: 881, - 19570: 881, - 19571: 881, - 19572: 881, - 19573: 881, - 19574: 881, - 19575: 881, - 19576: 881, - 19577: 881, - 19578: 881, - 19579: 881, - 19580: 881, - 19581: 881, - 19582: 881, - 19583: 881, - 19584: 881, - 19585: 881, - 19586: 881, - 19587: 881, - 19588: 881, - 19589: 882, - 19590: 882, - 19591: 882, - 19592: 882, - 19593: 882, - 19594: 882, - 19595: 883, - 19596: 883, - 19597: 883, - 19598: 883, - 19599: 883, - 19600: 883, - 19601: 883, - 19602: 883, - 19603: 883, - 19604: 883, - 19605: 883, - 19606: 883, - 19607: 883, - 19608: 883, - 19609: 883, - 19610: 883, - 19611: 883, - 19612: 883, - 19613: 883, - 19614: 883, - 19615: 883, - 19616: 883, - 19617: 883, - 19618: 883, - 19619: 883, - 19620: 883, - 19621: 883, - 19622: 883, - 19623: 883, - 19624: 883, - 19625: 883, - 19626: 883, - 19627: 883, - 19628: 883, - 19629: 883, - 19630: 883, - 19631: 883, - 19632: 883, - 19633: 883, - 19634: 883, - 19635: 883, - 19636: 883, - 19637: 883, - 19638: 883, - 19639: 883, - 19640: 883, - 19641: 883, - 19642: 883, - 19643: 883, - 19644: 883, - 19645: 883, - 19646: 883, - 19647: 883, - 19648: 883, - 19649: 883, - 19650: 883, - 19651: 883, - 19652: 883, - 19653: 883, - 19654: 883, - 19655: 883, - 19656: 883, - 19657: 883, - 19658: 883, - 19659: 883, - 19660: 883, - 19661: 883, - 19662: 883, - 19663: 883, - 19664: 883, - 19665: 883, - 19666: 883, - 19667: 883, - 19668: 883, - 19669: 883, - 19670: 883, - 19671: 883, - 19672: 883, - 19673: 883, - 19674: 883, - 19675: 883, - 19676: 883, - 19677: 883, - 19678: 883, - 19679: 883, - 19680: 883, - 19681: 883, - 19682: 883, - 19683: 883, - 19684: 883, - 19685: 883, - 19686: 883, - 19687: 883, - 19688: 883, - 19689: 883, - 19690: 883, - 19691: 883, - 19692: 883, - 19693: 883, - 19694: 883, - 19695: 883, - 19696: 883, - 19697: 883, - 19698: 883, - 19699: 883, - 19700: 883, - 19701: 883, - 19702: 883, - 19703: 883, - 19704: 883, - 19705: 883, - 19706: 883, - 19707: 883, - 19708: 883, - 19709: 883, - 19710: 883, - 19711: 883, - 19712: 883, - 19713: 883, - 19714: 883, - 19715: 883, - 19716: 883, - 19717: 883, - 19718: 883, - 19719: 883, - 19720: 883, - 19721: 883, - 19722: 883, - 19723: 883, - 19724: 883, - 19725: 883, - 19726: 883, - 19727: 883, - 19728: 883, - 19729: 883, - 19730: 883, - 19731: 883, - 19732: 883, - 19733: 883, - 19734: 883, - 19735: 883, - 19736: 883, - 19737: 883, - 19738: 883, - 19739: 883, - 19740: 883, - 19741: 883, - 19742: 883, - 19743: 883, - 19744: 883, - 19745: 883, - 19746: 883, - 19747: 883, - 19748: 883, - 19749: 883, - 19750: 883, - 19751: 883, - 19752: 883, - 19753: 883, - 19754: 883, - 19755: 883, - 19756: 883, - 19757: 883, - 19758: 883, - 19759: 883, - 19760: 883, - 19761: 883, - 19762: 883, - 19763: 883, - 19764: 883, - 19765: 883, - 19766: 883, - 19767: 883, - 19768: 883, - 19769: 883, - 19770: 883, - 19771: 883, - 19772: 883, - 19773: 883, - 19774: 883, - 19775: 883, - 19776: 883, - 19777: 883, - 19778: 883, - 19779: 883, - 19780: 883, - 19781: 883, - 19782: 883, - 19783: 883, - 19784: 883, - 19785: 883, - 19786: 883, - 19787: 883, - 19788: 883, - 19789: 883, - 19790: 883, - 19791: 883, - 19792: 883, - 19793: 883, - 19794: 883, - 19795: 883, - 19796: 883, - 19797: 883, - 19798: 883, - 19799: 883, - 19800: 883, - 19801: 883, - 19802: 883, - 19803: 883, - 19804: 883, - 19805: 883, - 19806: 883, - 19807: 883, - 19808: 883, - 19809: 883, - 19810: 883, - 19811: 883, - 19812: 883, - 19813: 883, - 19814: 883, - 19815: 883, - 19816: 883, - 19817: 883, - 19818: 883, - 19819: 883, - 19820: 883, - 19821: 883, - 19822: 883, - 19823: 883, - 19824: 883, - 19825: 883, - 19826: 883, - 19827: 883, - 19828: 883, - 19829: 883, - 19830: 883, - 19831: 883, - 19832: 883, - 19833: 883, - 19834: 883, - 19835: 883, - 19836: 883, - 19837: 883, - 19838: 883, - 19839: 883, - 19840: 883, - 19841: 883, - 19842: 883, - 19843: 883, - 19844: 883, - 19845: 883, - 19846: 883, - 19847: 883, - 19848: 883, - 19849: 883, - 19850: 883, - 19851: 883, - 19852: 883, - 19853: 883, - 19854: 883, - 19855: 883, - 19856: 883, - 19857: 883, - 19858: 883, - 19859: 883, - 19860: 883, - 19861: 883, - 19862: 883, - 19863: 883, - 19864: 883, - 19865: 883, - 19866: 883, - 19867: 883, - 19868: 883, - 19869: 883, - 19870: 883, - 19871: 883, - 19872: 883, - 19873: 883, - 19874: 883, - 19875: 883, - 19876: 883, - 19877: 883, - 19878: 883, - 19879: 883, - 19880: 883, - 19881: 883, - 19882: 883, - 19883: 883, - 19884: 883, - 19885: 883, - 19886: 883, - 19887: 883, - 19888: 883, - 19889: 883, - 19890: 883, - 19891: 883, - 19892: 883, - 19893: 883, - 19894: 883, - 19895: 883, - 19896: 883, - 19897: 883, - 19898: 883, - 19899: 883, - 19900: 883, - 19901: 883, - 19902: 883, - 19903: 883, - 19904: 883, - 19905: 883, - 19906: 883, - 19907: 883, - 19908: 883, - 19909: 883, - 19910: 883, - 19911: 883, - 19912: 883, - 19913: 883, - 19914: 883, - 19915: 883, - 19916: 883, - 19917: 883, - 19918: 883, - 19919: 884, - 19920: 885, - 19921: 885, - 19922: 885, - 19923: 885, - 19924: 885, - 19925: 885, - 19926: 885, - 19927: 885, - 19928: 885, - 19929: 885, - 19930: 885, - 19931: 885, - 19932: 885, - 19933: 885, - 19934: 885, - 19935: 885, - 19936: 885, - 19937: 885, - 19938: 885, - 19939: 885, - 19940: 885, - 19941: 885, - 19942: 885, - 19943: 885, - 19944: 885, - 19945: 885, - 19946: 885, - 19947: 885, - 19948: 885, - 19949: 885, - 19950: 885, - 19951: 885, - 19952: 885, - 19953: 885, - 19954: 885, - 19955: 885, - 19956: 885, - 19957: 885, - 19958: 885, - 19959: 885, - 19960: 885, - 19961: 885, - 19962: 885, - 19963: 885, - 19964: 885, - 19965: 885, - 19966: 885, - 19967: 885, - 19968: 885, - 19969: 885, - 19970: 885, - 19971: 885, - 19972: 885, - 19973: 885, - 19974: 885, - 19975: 885, - 19976: 885, - 19977: 885, - 19978: 885, - 19979: 885, - 19980: 885, - 19981: 885, - 19982: 885, - 19983: 885, - 19984: 885, - 19985: 885, - 19986: 885, - 19987: 885, - 19988: 885, - 19989: 885, - 19990: 885, - 19991: 885, - 19992: 885, - 19993: 885, - 19994: 885, - 19995: 885, - 19996: 885, - 19997: 885, - 19998: 885, - 19999: 885, - 20000: 886, - 20001: 886, - 20002: 886, - 20003: 886, - 20004: 886, - 20005: 886, - 20006: 887, - 20007: 887, - 20008: 887, - 20009: 887, - 20010: 887, - 20011: 887, - 20012: 887, - 20013: 887, - 20014: 887, - 20015: 887, - 20016: 887, - 20017: 887, - 20018: 887, - 20019: 887, - 20020: 887, - 20021: 887, - 20022: 887, - 20023: 887, - 20024: 887, - 20025: 887, - 20026: 887, - 20027: 887, - 20028: 887, - 20029: 887, - 20030: 887, - 20031: 887, - 20032: 887, - 20033: 887, - 20034: 887, - 20035: 887, - 20036: 887, - 20037: 887, - 20038: 887, - 20039: 887, - 20040: 887, - 20041: 887, - 20042: 887, - 20043: 887, - 20044: 887, - 20045: 887, - 20046: 887, - 20047: 887, - 20048: 887, - 20049: 887, - 20050: 887, - 20051: 887, - 20052: 887, - 20053: 887, - 20054: 887, - 20055: 887, - 20056: 887, - 20057: 887, - 20058: 887, - 20059: 887, - 20060: 887, - 20061: 887, - 20062: 887, - 20063: 887, - 20064: 887, - 20065: 887, - 20066: 887, - 20067: 887, - 20068: 887, - 20069: 887, - 20070: 887, - 20071: 887, - 20072: 887, - 20073: 887, - 20074: 887, - 20075: 887, - 20076: 887, - 20077: 887, - 20078: 887, - 20079: 887, - 20080: 887, - 20081: 887, - 20082: 887, - 20083: 887, - 20084: 887, - 20085: 887, - 20086: 887, - 20087: 887, - 20088: 887, - 20089: 887, - 20090: 887, - 20091: 887, - 20092: 887, - 20093: 887, - 20094: 887, - 20095: 887, - 20096: 887, - 20097: 887, - 20098: 887, - 20099: 887, - 20100: 887, - 20101: 887, - 20102: 887, - 20103: 887, - 20104: 887, - 20105: 887, - 20106: 887, - 20107: 887, - 20108: 887, - 20109: 887, - 20110: 887, - 20111: 887, - 20112: 887, - 20113: 887, - 20114: 887, - 20115: 887, - 20116: 887, - 20117: 887, - 20118: 887, - 20119: 887, - 20120: 887, - 20121: 887, - 20122: 887, - 20123: 887, - 20124: 887, - 20125: 887, - 20126: 887, - 20127: 887, - 20128: 887, - 20129: 887, - 20130: 887, - 20131: 887, - 20132: 887, - 20133: 887, - 20134: 887, - 20135: 887, - 20136: 887, - 20137: 887, - 20138: 887, - 20139: 887, - 20140: 887, - 20141: 887, - 20142: 887, - 20143: 887, - 20144: 887, - 20145: 887, - 20146: 887, - 20147: 887, - 20148: 887, - 20149: 887, - 20150: 887, - 20151: 887, - 20152: 887, - 20153: 887, - 20154: 887, - 20155: 887, - 20156: 887, - 20157: 887, - 20158: 887, - 20159: 887, - 20160: 887, - 20161: 887, - 20162: 887, - 20163: 887, - 20164: 887, - 20165: 887, - 20166: 887, - 20167: 887, - 20168: 887, - 20169: 887, - 20170: 887, - 20171: 887, - 20172: 887, - 20173: 887, - 20174: 887, - 20175: 887, - 20176: 887, - 20177: 887, - 20178: 887, - 20179: 887, - 20180: 887, - 20181: 887, - 20182: 887, - 20183: 887, - 20184: 887, - 20185: 887, - 20186: 887, - 20187: 887, - 20188: 887, - 20189: 887, - 20190: 887, - 20191: 887, - 20192: 887, - 20193: 887, - 20194: 887, - 20195: 887, - 20196: 887, - 20197: 887, - 20198: 887, - 20199: 887, - 20200: 887, - 20201: 887, - 20202: 887, - 20203: 887, - 20204: 887, - 20205: 887, - 20206: 887, - 20207: 887, - 20208: 887, - 20209: 887, - 20210: 887, - 20211: 887, - 20212: 887, - 20213: 887, - 20214: 887, - 20215: 887, - 20216: 887, - 20217: 887, - 20218: 887, - 20219: 887, - 20220: 887, - 20221: 887, - 20222: 887, - 20223: 887, - 20224: 887, - 20225: 887, - 20226: 887, - 20227: 887, - 20228: 887, - 20229: 887, - 20230: 887, - 20231: 887, - 20232: 887, - 20233: 887, - 20234: 887, - 20235: 887, - 20236: 887, - 20237: 887, - 20238: 887, - 20239: 887, - 20240: 887, - 20241: 887, - 20242: 887, - 20243: 887, - 20244: 887, - 20245: 887, - 20246: 887, - 20247: 887, - 20248: 887, - 20249: 887, - 20250: 887, - 20251: 887, - 20252: 887, - 20253: 887, - 20254: 887, - 20255: 887, - 20256: 887, - 20257: 887, - 20258: 887, - 20259: 887, - 20260: 887, - 20261: 887, - 20262: 887, - 20263: 887, - 20264: 887, - 20265: 887, - 20266: 887, - 20267: 887, - 20268: 887, - 20269: 887, - 20270: 887, - 20271: 887, - 20272: 887, - 20273: 887, - 20274: 887, - 20275: 887, - 20276: 887, - 20277: 887, - 20278: 887, - 20279: 887, - 20280: 887, - 20281: 887, - 20282: 887, - 20283: 887, - 20284: 887, - 20285: 887, - 20286: 887, - 20287: 887, - 20288: 887, - 20289: 887, - 20290: 887, - 20291: 887, - 20292: 887, - 20293: 887, - 20294: 887, - 20295: 887, - 20296: 887, - 20297: 887, - 20298: 887, - 20299: 887, - 20300: 887, - 20301: 887, - 20302: 887, - 20303: 887, - 20304: 887, - 20305: 887, - 20306: 887, - 20307: 887, - 20308: 887, - 20309: 887, - 20310: 887, - 20311: 887, - 20312: 887, - 20313: 887, - 20314: 887, - 20315: 887, - 20316: 887, - 20317: 887, - 20318: 887, - 20319: 887, - 20320: 887, - 20321: 887, - 20322: 887, - 20323: 887, - 20324: 887, - 20325: 887, - 20326: 887, - 20327: 887, - 20328: 887, - 20329: 887, - 20330: 888, - 20331: 889, - 20332: 890, - 20333: 891, - 20334: 891, - 20335: 891, - 20336: 892, - 20337: 893, - 20338: 894, - 20339: 895, - 20340: 896, - 20341: 897, -} diff --git a/data/block/gen_block.go b/data/block/gen_block.go deleted file mode 100644 index 94ced0f..0000000 --- a/data/block/gen_block.go +++ /dev/null @@ -1,152 +0,0 @@ -//go:build generate -// +build generate - -// gen_blocks.go generates block information. -package main - -import ( - "encoding/json" - "fmt" - "net/http" - "os" - "text/template" - - "github.com/iancoleman/strcase" -) - -const ( - version = "1.17" - infoURL = "https://raw.githubusercontent.com/PrismarineJS/minecraft-data/master/data/pc/" + version + "/blocks.json" - //language=gohtml - blockTmpl = `// Code generated by gen_block.go; DO NOT EDIT. - -// Package block stores information about blocks in Minecraft. -package block - -import ( - "math/bits" -) - -// BitsPerBlock indicates how many bits are needed to represent all possible -// block states. This value is used to determine the size of the global palette. -var BitsPerBlock = bits.Len(uint(len(StateID))) - -// ID describes the numeric ID of a block. -type ID uint32 - -// Block describes information about a type of block. -type Block struct { - ID ID - DisplayName string - Name string - - Hardness float64 - Diggable bool - DropIDs []uint32 - NeedsTools map[uint32]bool - - MinStateID uint32 - MaxStateID uint32 - - Transparent bool - FilterLightLevel int - EmitLightLevel int -} - -var ( - {{- range .}} - {{.CamelName}} = Block{ - ID: {{.ID}}, - DisplayName: "{{.DisplayName}}", - Name: "{{.Name}}", - Hardness: {{.Hardness}}, - Diggable: {{.Diggable}}, - DropIDs: []uint32{ {{- range .DropIDs}}{{.}},{{end -}} }, - NeedsTools: map[uint32]bool{ {{- range $key, $val := .NeedsTools}}{{$key}}: {{$val}},{{end -}} }, - MinStateID: {{.MinStateID}}, - MaxStateID: {{.MaxStateID}}, - Transparent: {{.Transparent}}, - FilterLightLevel: {{.FilterLightLevel}}, - EmitLightLevel: {{.EmitLightLevel}}, - }{{end}} -) - -// ByID is an index of minecraft blocks by their ID. -var ByID = map[ID]*Block{ {{range .}} - {{.ID}}: &{{.CamelName}},{{end}} -} - -// StateID maps all possible state IDs to a corresponding block ID. -var StateID = map[uint32]ID{ {{range $block := .}} - {{- range .States}} - {{.}}: {{$block.ID}}, - {{- end}}{{end}} -}` -) - -type Block struct { - ID uint32 `json:"id"` - CamelName string `json:"-"` - DisplayName string `json:"displayName"` - Name string `json:"name"` - - Hardness float64 `json:"hardness"` - Diggable bool `json:"diggable"` - DropIDs []uint32 `json:"drops"` - NeedsTools map[uint32]bool `json:"harvestTools"` - - MinStateID uint32 `json:"minStateId"` - MaxStateID uint32 `json:"maxStateId"` - - Transparent bool `json:"transparent"` - FilterLightLevel int `json:"filterLight"` - EmitLightLevel int `json:"emitLight"` -} - -func (b Block) States() []uint32 { - if b.MinStateID == b.MaxStateID { - return []uint32{b.MinStateID} - } - states := make([]uint32, 0) - for i := b.MinStateID; i <= b.MaxStateID; i++ { - states = append(states, i) - } - return states -} - -func downloadInfo() ([]*Block, error) { - resp, err := http.Get(infoURL) - if err != nil { - return nil, err - } - defer resp.Body.Close() - - var data []*Block - if err := json.NewDecoder(resp.Body).Decode(&data); err != nil { - return nil, err - } - for _, d := range data { - d.CamelName = strcase.ToCamel(d.Name) - } - return data, nil -} - -//go:generate go run $GOFILE -//go:generate go fmt block.go -func main() { - fmt.Println("generating block.go") - blocks, err := downloadInfo() - if err != nil { - panic(err) - } - - f, err := os.Create("block.go") - if err != nil { - panic(err) - } - defer f.Close() - - if err := template.Must(template.New("").Parse(blockTmpl)).Execute(f, blocks); err != nil { - panic(err) - } -} diff --git a/examples/genmaps/colors.gob b/examples/genmaps/colors.gob deleted file mode 100644 index 72f07f8..0000000 Binary files a/examples/genmaps/colors.gob and /dev/null differ diff --git a/examples/genmaps/genmaps.go b/examples/genmaps/genmaps.go deleted file mode 100644 index b964d12..0000000 --- a/examples/genmaps/genmaps.go +++ /dev/null @@ -1,219 +0,0 @@ -package main - -import ( - "flag" - "fmt" - "image" - "image/color" - "image/draw" - "log" - "os" - "path/filepath" - "runtime" - "strings" - "sync" - "unsafe" - - "github.com/Tnze/go-mc/data/block" - "github.com/Tnze/go-mc/level" - "github.com/Tnze/go-mc/save" - "github.com/Tnze/go-mc/save/region" -) - -var colors []color.RGBA64 -var sectionWorkerNum = 1 - -var ( - regionWorkerNum = flag.Int("workers", runtime.NumCPU(), "worker numbers") - regionsFold = flag.String("region", filepath.Join(os.Getenv("AppData"), ".minecraft", "saves", "World", "region"), "region directory path") - drawBigPicture = flag.Bool("bigmap", true, "draw the big map") -) - -func main() { - flag.Parse() - - de, err := os.ReadDir(*regionsFold) - if err != nil { - log.Fatal(err) - } - - var min, max [2]int - updateMinMax := func(pos [2]int) { - mkmax(&max[0], &pos[0]) - mkmax(&max[1], &pos[1]) - mkmin(&min[0], &pos[0]) - mkmin(&min[1], &pos[1]) - } - - if *drawBigPicture { - for _, dir := range de { - name := dir.Name() - var pos [2]int // {x, z} - if _, err := fmt.Sscanf(name, "r.%d.%d.mca", &pos[0], &pos[1]); err != nil { - log.Printf("Error parsing file name of %s: %v, ignoring", name, err) - continue - } - updateMinMax(pos) - } - } - - type regions struct { - pos [2]int - *region.Region - } - // Open mca files - var rs = make(chan regions, *regionWorkerNum) - go func() { - for _, dir := range de { - name := dir.Name() - path := filepath.Join(*regionsFold, name) - var pos [2]int // {x, z} - if _, err := fmt.Sscanf(name, "r.%d.%d.mca", &pos[0], &pos[1]); err != nil { - log.Printf("Error parsing file name of %s: %v, ignoring", name, err) - continue - } - - r, err := region.Open(path) - if err != nil { - log.Printf("Error when opening %s: %v, ignoring", name, err) - continue - } - rs <- regions{pos: pos, Region: r} - } - close(rs) - }() - var bigPicture *image.RGBA - if *drawBigPicture { - bigPicture = image.NewRGBA(image.Rect(min[0]*512, min[1]*512, max[0]*512+512, max[1]*512+512)) - } - var bigWg sync.WaitGroup - // draw columns - for r := range rs { - img := image.NewRGBA(image.Rect(0, 0, 32*16, 32*16)) - type task struct { - data []byte - pos [2]int - } - c := make(chan task) - var wg sync.WaitGroup - for i := 0; i < *regionWorkerNum; i++ { - go func() { - var column save.Chunk - for task := range c { - if err := column.Load(task.data); err != nil { - log.Printf("Decode column (%d.%d) error: %v", task.pos[0], task.pos[1], err) - } - //pos := [2]int{int(column.Level.PosX), int(column.Level.PosZ)} - //if pos != task.pos { - // fmt.Printf("chunk position not match: want %v, get %v\n", task.pos, pos) - //} - draw.Draw( - img, image.Rect(task.pos[0]*16, task.pos[1]*16, task.pos[0]*16+16, task.pos[1]*16+16), - drawColumn(&column), image.Pt(0, 0), - draw.Over, - ) - wg.Done() - } - }() - } - - for x := 0; x < 32; x++ { - for z := 0; z < 32; z++ { - if !r.ExistSector(x, z) { - continue - } - data, err := r.ReadSector(x, z) - if err != nil { - log.Printf("Read sector (%d.%d) error: %v", x, z, err) - } - wg.Add(1) - c <- task{data: data, pos: [2]int{x, z}} - } - } - close(c) - wg.Wait() - // Save pictures - bigWg.Add(1) - log.Print("Draw: ", r.pos) - go func(img image.Image, pos [2]int) { - savePng(img, fmt.Sprintf("r.%d.%d.png", pos[0], pos[1])) - if *drawBigPicture { - draw.Draw( - bigPicture, image.Rect(pos[0]*512, pos[1]*512, pos[0]*512+512, pos[1]*512+512), - img, image.Pt(0, 0), draw.Src, - ) - } - bigWg.Done() - }(img, r.pos) - // To close mca files - if err := r.Close(); err != nil { - log.Printf("Close r.%d.%d.mca error: %v", r.pos[0], r.pos[1], err) - } - } - bigWg.Wait() - if *drawBigPicture { - savePng(bigPicture, "maps.png") - } -} - -func drawColumn(column *save.Chunk) (img *image.RGBA) { - img = image.NewRGBA(image.Rect(0, 0, 16, 16)) - s := column.Sections - c := make(chan *save.Section) - var wg sync.WaitGroup - for i := 0; i < sectionWorkerNum; i++ { - go func() { - for s := range c { - drawSection(s, img) - wg.Done() - } - }() - } - defer close(c) - - wg.Add(len(s)) - for i := range s { - c <- &s[i] - } - wg.Wait() - - return -} - -func drawSection(s *save.Section, img *image.RGBA) { - data := *(*[]uint64)((unsafe.Pointer)(&s.BlockStates.Data)) - palette := s.BlockStates.Palette - rawPalette := make([]int, len(palette)) - for i, v := range palette { - // TODO: Consider the properties of block, not only index the block name - rawPalette[i] = int(stateIDs[strings.TrimPrefix(v.Name, "minecraft:")]) - } - c := level.NewStatesPaletteContainerWithData(16*16*16, data, rawPalette) - for y := 0; y < 16; y++ { - layerImg := image.NewRGBA(image.Rect(0, 0, 16, 16)) - for i := 16*16 - 1; i >= 0; i-- { - var bid block.ID - bid = block.ID(c.Get(i)) - c := colors[block.ByID[bid].ID] - layerImg.Set(i%16, i/16, c) - } - draw.Draw( - img, image.Rect(0, 0, 16, 16), - layerImg, image.Pt(0, 0), - draw.Over, - ) - } - return -} - -// TODO: This map should be moved to data/block. -var stateIDs map[string]uint32 - -func init() { - for i, v := range block.StateID { - name := block.ByID[v].Name - if _, ok := stateIDs[name]; !ok { - stateIDs[name] = i - } - } -} diff --git a/examples/genmaps/util_funcs.go b/examples/genmaps/util_funcs.go deleted file mode 100644 index 4165ea2..0000000 --- a/examples/genmaps/util_funcs.go +++ /dev/null @@ -1,56 +0,0 @@ -package main - -import ( - "bytes" - _ "embed" - "encoding/gob" - "github.com/Tnze/go-mc/data/block" - "image" - "image/png" - "log" - "os" -) - -func savePng(img image.Image, name string) { - f, err := os.Create(name) - if err != nil { - log.Fatal(err) - } - - if err := png.Encode(f, img); err != nil { - f.Close() - log.Fatal(err) - } - - if err := f.Close(); err != nil { - log.Fatal(err) - } -} - -//go:embed colors.gob -var colorsBin []byte // gob([]color.RGBA64) - -func init() { - if err := gob.NewDecoder(bytes.NewReader(colorsBin)).Decode(&colors); err != nil { - panic(err) - } -} - -func mkmax(c, n *int) { - if *c < *n { - *c = *n - } -} -func mkmin(c, n *int) { - if *c > *n { - *c = *n - } -} - -var idByName = make(map[string]uint32, len(block.ByID)) - -func init() { - for _, v := range block.ByID { - idByName["minecraft:"+v.Name] = uint32(v.ID) - } -} diff --git a/level/block/block.go b/level/block/block.go new file mode 100644 index 0000000..ac7642e --- /dev/null +++ b/level/block/block.go @@ -0,0 +1,79 @@ +package block + +import ( + "bytes" + "compress/zlib" + _ "embed" + "fmt" + "math/bits" + + "github.com/Tnze/go-mc/nbt" +) + +type Block interface { + ID() string +} + +// This file stores all possible block states into a TAG_List with zlib compressed. +//go:embed block_states.nbt +var blockStates []byte + +var toStateID map[Block]int +var fromStateID []Block + +// BitsPerBlock indicates how many bits are needed to represent all possible +// block states. This value is used to determine the size of the global palette. +var BitsPerBlock int + +type State struct { + Name string + Properties nbt.RawMessage +} + +func init() { + var states []State + // decompress + z, err := zlib.NewReader(bytes.NewReader(blockStates)) + if err != nil { + panic(err) + } + // decode all states + if _, err = nbt.NewDecoder(z).Decode(&states); err != nil { + panic(err) + } + toStateID = make(map[Block]int, len(states)) + fromStateID = make([]Block, 0, len(states)) + for _, state := range states { + block := fromID[state.Name] + if state.Properties.Type != nbt.TagEnd { + err := state.Properties.Unmarshal(&block) + if err != nil { + panic(err) + } + } + if _, ok := toStateID[block]; ok { + panic(fmt.Errorf("state %#v already exist", block)) + } + toStateID[block] = len(fromStateID) + fromStateID = append(fromStateID, block) + } + BitsPerBlock = bits.Len(uint(len(fromStateID))) +} + +func FromStateID(stateID int) (b Block, ok bool) { + if stateID >= 0 && stateID < len(fromStateID) { + b = fromStateID[stateID] + ok = true + } + return +} + +func DefaultBlock(id string) (b Block, ok bool) { + b, ok = fromID[id] + return +} + +func ToStateID(b Block) (i int, ok bool) { + i, ok = toStateID[b] + return +} diff --git a/level/block/block_states.nbt b/level/block/block_states.nbt new file mode 100644 index 0000000..b47edb9 Binary files /dev/null and b/level/block/block_states.nbt differ diff --git a/level/block/blocks.go b/level/block/blocks.go new file mode 100644 index 0000000..f9a1196 --- /dev/null +++ b/level/block/blocks.go @@ -0,0 +1,6358 @@ +// Code generated by generator/main.go; DO NOT EDIT. +package block + +type Air struct{} + +func (Air) ID() string { return "minecraft:air" } + +type Stone struct{} + +func (Stone) ID() string { return "minecraft:stone" } + +type Granite struct{} + +func (Granite) ID() string { return "minecraft:granite" } + +type PolishedGranite struct{} + +func (PolishedGranite) ID() string { return "minecraft:polished_granite" } + +type Diorite struct{} + +func (Diorite) ID() string { return "minecraft:diorite" } + +type PolishedDiorite struct{} + +func (PolishedDiorite) ID() string { return "minecraft:polished_diorite" } + +type Andesite struct{} + +func (Andesite) ID() string { return "minecraft:andesite" } + +type PolishedAndesite struct{} + +func (PolishedAndesite) ID() string { return "minecraft:polished_andesite" } + +type GrassBlock struct { + Snowy Boolean `nbt:"snowy"` +} + +func (GrassBlock) ID() string { return "minecraft:grass_block" } + +type Dirt struct{} + +func (Dirt) ID() string { return "minecraft:dirt" } + +type CoarseDirt struct{} + +func (CoarseDirt) ID() string { return "minecraft:coarse_dirt" } + +type Podzol struct { + Snowy Boolean `nbt:"snowy"` +} + +func (Podzol) ID() string { return "minecraft:podzol" } + +type Cobblestone struct{} + +func (Cobblestone) ID() string { return "minecraft:cobblestone" } + +type OakPlanks struct{} + +func (OakPlanks) ID() string { return "minecraft:oak_planks" } + +type SprucePlanks struct{} + +func (SprucePlanks) ID() string { return "minecraft:spruce_planks" } + +type BirchPlanks struct{} + +func (BirchPlanks) ID() string { return "minecraft:birch_planks" } + +type JunglePlanks struct{} + +func (JunglePlanks) ID() string { return "minecraft:jungle_planks" } + +type AcaciaPlanks struct{} + +func (AcaciaPlanks) ID() string { return "minecraft:acacia_planks" } + +type DarkOakPlanks struct{} + +func (DarkOakPlanks) ID() string { return "minecraft:dark_oak_planks" } + +type OakSapling struct { + Stage Integer `nbt:"stage"` +} + +func (OakSapling) ID() string { return "minecraft:oak_sapling" } + +type SpruceSapling struct { + Stage Integer `nbt:"stage"` +} + +func (SpruceSapling) ID() string { return "minecraft:spruce_sapling" } + +type BirchSapling struct { + Stage Integer `nbt:"stage"` +} + +func (BirchSapling) ID() string { return "minecraft:birch_sapling" } + +type JungleSapling struct { + Stage Integer `nbt:"stage"` +} + +func (JungleSapling) ID() string { return "minecraft:jungle_sapling" } + +type AcaciaSapling struct { + Stage Integer `nbt:"stage"` +} + +func (AcaciaSapling) ID() string { return "minecraft:acacia_sapling" } + +type DarkOakSapling struct { + Stage Integer `nbt:"stage"` +} + +func (DarkOakSapling) ID() string { return "minecraft:dark_oak_sapling" } + +type Bedrock struct{} + +func (Bedrock) ID() string { return "minecraft:bedrock" } + +type Water struct { + Level Integer `nbt:"level"` +} + +func (Water) ID() string { return "minecraft:water" } + +type Lava struct { + Level Integer `nbt:"level"` +} + +func (Lava) ID() string { return "minecraft:lava" } + +type Sand struct{} + +func (Sand) ID() string { return "minecraft:sand" } + +type RedSand struct{} + +func (RedSand) ID() string { return "minecraft:red_sand" } + +type Gravel struct{} + +func (Gravel) ID() string { return "minecraft:gravel" } + +type GoldOre struct{} + +func (GoldOre) ID() string { return "minecraft:gold_ore" } + +type DeepslateGoldOre struct{} + +func (DeepslateGoldOre) ID() string { return "minecraft:deepslate_gold_ore" } + +type IronOre struct{} + +func (IronOre) ID() string { return "minecraft:iron_ore" } + +type DeepslateIronOre struct{} + +func (DeepslateIronOre) ID() string { return "minecraft:deepslate_iron_ore" } + +type CoalOre struct{} + +func (CoalOre) ID() string { return "minecraft:coal_ore" } + +type DeepslateCoalOre struct{} + +func (DeepslateCoalOre) ID() string { return "minecraft:deepslate_coal_ore" } + +type NetherGoldOre struct{} + +func (NetherGoldOre) ID() string { return "minecraft:nether_gold_ore" } + +type OakLog struct { + Axis string `nbt:"axis"` +} + +func (OakLog) ID() string { return "minecraft:oak_log" } + +type SpruceLog struct { + Axis string `nbt:"axis"` +} + +func (SpruceLog) ID() string { return "minecraft:spruce_log" } + +type BirchLog struct { + Axis string `nbt:"axis"` +} + +func (BirchLog) ID() string { return "minecraft:birch_log" } + +type JungleLog struct { + Axis string `nbt:"axis"` +} + +func (JungleLog) ID() string { return "minecraft:jungle_log" } + +type AcaciaLog struct { + Axis string `nbt:"axis"` +} + +func (AcaciaLog) ID() string { return "minecraft:acacia_log" } + +type DarkOakLog struct { + Axis string `nbt:"axis"` +} + +func (DarkOakLog) ID() string { return "minecraft:dark_oak_log" } + +type StrippedSpruceLog struct { + Axis string `nbt:"axis"` +} + +func (StrippedSpruceLog) ID() string { return "minecraft:stripped_spruce_log" } + +type StrippedBirchLog struct { + Axis string `nbt:"axis"` +} + +func (StrippedBirchLog) ID() string { return "minecraft:stripped_birch_log" } + +type StrippedJungleLog struct { + Axis string `nbt:"axis"` +} + +func (StrippedJungleLog) ID() string { return "minecraft:stripped_jungle_log" } + +type StrippedAcaciaLog struct { + Axis string `nbt:"axis"` +} + +func (StrippedAcaciaLog) ID() string { return "minecraft:stripped_acacia_log" } + +type StrippedDarkOakLog struct { + Axis string `nbt:"axis"` +} + +func (StrippedDarkOakLog) ID() string { return "minecraft:stripped_dark_oak_log" } + +type StrippedOakLog struct { + Axis string `nbt:"axis"` +} + +func (StrippedOakLog) ID() string { return "minecraft:stripped_oak_log" } + +type OakWood struct { + Axis string `nbt:"axis"` +} + +func (OakWood) ID() string { return "minecraft:oak_wood" } + +type SpruceWood struct { + Axis string `nbt:"axis"` +} + +func (SpruceWood) ID() string { return "minecraft:spruce_wood" } + +type BirchWood struct { + Axis string `nbt:"axis"` +} + +func (BirchWood) ID() string { return "minecraft:birch_wood" } + +type JungleWood struct { + Axis string `nbt:"axis"` +} + +func (JungleWood) ID() string { return "minecraft:jungle_wood" } + +type AcaciaWood struct { + Axis string `nbt:"axis"` +} + +func (AcaciaWood) ID() string { return "minecraft:acacia_wood" } + +type DarkOakWood struct { + Axis string `nbt:"axis"` +} + +func (DarkOakWood) ID() string { return "minecraft:dark_oak_wood" } + +type StrippedOakWood struct { + Axis string `nbt:"axis"` +} + +func (StrippedOakWood) ID() string { return "minecraft:stripped_oak_wood" } + +type StrippedSpruceWood struct { + Axis string `nbt:"axis"` +} + +func (StrippedSpruceWood) ID() string { return "minecraft:stripped_spruce_wood" } + +type StrippedBirchWood struct { + Axis string `nbt:"axis"` +} + +func (StrippedBirchWood) ID() string { return "minecraft:stripped_birch_wood" } + +type StrippedJungleWood struct { + Axis string `nbt:"axis"` +} + +func (StrippedJungleWood) ID() string { return "minecraft:stripped_jungle_wood" } + +type StrippedAcaciaWood struct { + Axis string `nbt:"axis"` +} + +func (StrippedAcaciaWood) ID() string { return "minecraft:stripped_acacia_wood" } + +type StrippedDarkOakWood struct { + Axis string `nbt:"axis"` +} + +func (StrippedDarkOakWood) ID() string { return "minecraft:stripped_dark_oak_wood" } + +type OakLeaves struct { + Distance Integer `nbt:"distance"` + Persistent Boolean `nbt:"persistent"` +} + +func (OakLeaves) ID() string { return "minecraft:oak_leaves" } + +type SpruceLeaves struct { + Distance Integer `nbt:"distance"` + Persistent Boolean `nbt:"persistent"` +} + +func (SpruceLeaves) ID() string { return "minecraft:spruce_leaves" } + +type BirchLeaves struct { + Distance Integer `nbt:"distance"` + Persistent Boolean `nbt:"persistent"` +} + +func (BirchLeaves) ID() string { return "minecraft:birch_leaves" } + +type JungleLeaves struct { + Distance Integer `nbt:"distance"` + Persistent Boolean `nbt:"persistent"` +} + +func (JungleLeaves) ID() string { return "minecraft:jungle_leaves" } + +type AcaciaLeaves struct { + Distance Integer `nbt:"distance"` + Persistent Boolean `nbt:"persistent"` +} + +func (AcaciaLeaves) ID() string { return "minecraft:acacia_leaves" } + +type DarkOakLeaves struct { + Distance Integer `nbt:"distance"` + Persistent Boolean `nbt:"persistent"` +} + +func (DarkOakLeaves) ID() string { return "minecraft:dark_oak_leaves" } + +type AzaleaLeaves struct { + Distance Integer `nbt:"distance"` + Persistent Boolean `nbt:"persistent"` +} + +func (AzaleaLeaves) ID() string { return "minecraft:azalea_leaves" } + +type FloweringAzaleaLeaves struct { + Distance Integer `nbt:"distance"` + Persistent Boolean `nbt:"persistent"` +} + +func (FloweringAzaleaLeaves) ID() string { return "minecraft:flowering_azalea_leaves" } + +type Sponge struct{} + +func (Sponge) ID() string { return "minecraft:sponge" } + +type WetSponge struct{} + +func (WetSponge) ID() string { return "minecraft:wet_sponge" } + +type Glass struct{} + +func (Glass) ID() string { return "minecraft:glass" } + +type LapisOre struct{} + +func (LapisOre) ID() string { return "minecraft:lapis_ore" } + +type DeepslateLapisOre struct{} + +func (DeepslateLapisOre) ID() string { return "minecraft:deepslate_lapis_ore" } + +type LapisBlock struct{} + +func (LapisBlock) ID() string { return "minecraft:lapis_block" } + +type Dispenser struct { + Facing Direction `nbt:"facing"` + Triggered Boolean `nbt:"triggered"` +} + +func (Dispenser) ID() string { return "minecraft:dispenser" } + +type Sandstone struct{} + +func (Sandstone) ID() string { return "minecraft:sandstone" } + +type ChiseledSandstone struct{} + +func (ChiseledSandstone) ID() string { return "minecraft:chiseled_sandstone" } + +type CutSandstone struct{} + +func (CutSandstone) ID() string { return "minecraft:cut_sandstone" } + +type NoteBlock struct { + Instrument string `nbt:"instrument"` + Note Integer `nbt:"note"` + Powered Boolean `nbt:"powered"` +} + +func (NoteBlock) ID() string { return "minecraft:note_block" } + +type WhiteBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (WhiteBed) ID() string { return "minecraft:white_bed" } + +type OrangeBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (OrangeBed) ID() string { return "minecraft:orange_bed" } + +type MagentaBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (MagentaBed) ID() string { return "minecraft:magenta_bed" } + +type LightBlueBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (LightBlueBed) ID() string { return "minecraft:light_blue_bed" } + +type YellowBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (YellowBed) ID() string { return "minecraft:yellow_bed" } + +type LimeBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (LimeBed) ID() string { return "minecraft:lime_bed" } + +type PinkBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (PinkBed) ID() string { return "minecraft:pink_bed" } + +type GrayBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (GrayBed) ID() string { return "minecraft:gray_bed" } + +type LightGrayBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (LightGrayBed) ID() string { return "minecraft:light_gray_bed" } + +type CyanBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (CyanBed) ID() string { return "minecraft:cyan_bed" } + +type PurpleBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (PurpleBed) ID() string { return "minecraft:purple_bed" } + +type BlueBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (BlueBed) ID() string { return "minecraft:blue_bed" } + +type BrownBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (BrownBed) ID() string { return "minecraft:brown_bed" } + +type GreenBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (GreenBed) ID() string { return "minecraft:green_bed" } + +type RedBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (RedBed) ID() string { return "minecraft:red_bed" } + +type BlackBed struct { + Facing Direction `nbt:"facing"` + Occupied Boolean `nbt:"occupied"` + Part string `nbt:"part"` +} + +func (BlackBed) ID() string { return "minecraft:black_bed" } + +type PoweredRail struct { + Powered Boolean `nbt:"powered"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PoweredRail) ID() string { return "minecraft:powered_rail" } + +type DetectorRail struct { + Powered Boolean `nbt:"powered"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DetectorRail) ID() string { return "minecraft:detector_rail" } + +type StickyPiston struct { + Extended Boolean `nbt:"extended"` + Facing Direction `nbt:"facing"` +} + +func (StickyPiston) ID() string { return "minecraft:sticky_piston" } + +type Cobweb struct{} + +func (Cobweb) ID() string { return "minecraft:cobweb" } + +type Grass struct{} + +func (Grass) ID() string { return "minecraft:grass" } + +type Fern struct{} + +func (Fern) ID() string { return "minecraft:fern" } + +type DeadBush struct{} + +func (DeadBush) ID() string { return "minecraft:dead_bush" } + +type Seagrass struct{} + +func (Seagrass) ID() string { return "minecraft:seagrass" } + +type TallSeagrass struct { + Half string `nbt:"half"` +} + +func (TallSeagrass) ID() string { return "minecraft:tall_seagrass" } + +type Piston struct { + Extended Boolean `nbt:"extended"` + Facing Direction `nbt:"facing"` +} + +func (Piston) ID() string { return "minecraft:piston" } + +type PistonHead struct { + Facing Direction `nbt:"facing"` + Short Boolean `nbt:"short"` + Type string `nbt:"type"` +} + +func (PistonHead) ID() string { return "minecraft:piston_head" } + +type WhiteWool struct{} + +func (WhiteWool) ID() string { return "minecraft:white_wool" } + +type OrangeWool struct{} + +func (OrangeWool) ID() string { return "minecraft:orange_wool" } + +type MagentaWool struct{} + +func (MagentaWool) ID() string { return "minecraft:magenta_wool" } + +type LightBlueWool struct{} + +func (LightBlueWool) ID() string { return "minecraft:light_blue_wool" } + +type YellowWool struct{} + +func (YellowWool) ID() string { return "minecraft:yellow_wool" } + +type LimeWool struct{} + +func (LimeWool) ID() string { return "minecraft:lime_wool" } + +type PinkWool struct{} + +func (PinkWool) ID() string { return "minecraft:pink_wool" } + +type GrayWool struct{} + +func (GrayWool) ID() string { return "minecraft:gray_wool" } + +type LightGrayWool struct{} + +func (LightGrayWool) ID() string { return "minecraft:light_gray_wool" } + +type CyanWool struct{} + +func (CyanWool) ID() string { return "minecraft:cyan_wool" } + +type PurpleWool struct{} + +func (PurpleWool) ID() string { return "minecraft:purple_wool" } + +type BlueWool struct{} + +func (BlueWool) ID() string { return "minecraft:blue_wool" } + +type BrownWool struct{} + +func (BrownWool) ID() string { return "minecraft:brown_wool" } + +type GreenWool struct{} + +func (GreenWool) ID() string { return "minecraft:green_wool" } + +type RedWool struct{} + +func (RedWool) ID() string { return "minecraft:red_wool" } + +type BlackWool struct{} + +func (BlackWool) ID() string { return "minecraft:black_wool" } + +type MovingPiston struct { + Facing Direction `nbt:"facing"` + Type string `nbt:"type"` +} + +func (MovingPiston) ID() string { return "minecraft:moving_piston" } + +type Dandelion struct{} + +func (Dandelion) ID() string { return "minecraft:dandelion" } + +type Poppy struct{} + +func (Poppy) ID() string { return "minecraft:poppy" } + +type BlueOrchid struct{} + +func (BlueOrchid) ID() string { return "minecraft:blue_orchid" } + +type Allium struct{} + +func (Allium) ID() string { return "minecraft:allium" } + +type AzureBluet struct{} + +func (AzureBluet) ID() string { return "minecraft:azure_bluet" } + +type RedTulip struct{} + +func (RedTulip) ID() string { return "minecraft:red_tulip" } + +type OrangeTulip struct{} + +func (OrangeTulip) ID() string { return "minecraft:orange_tulip" } + +type WhiteTulip struct{} + +func (WhiteTulip) ID() string { return "minecraft:white_tulip" } + +type PinkTulip struct{} + +func (PinkTulip) ID() string { return "minecraft:pink_tulip" } + +type OxeyeDaisy struct{} + +func (OxeyeDaisy) ID() string { return "minecraft:oxeye_daisy" } + +type Cornflower struct{} + +func (Cornflower) ID() string { return "minecraft:cornflower" } + +type WitherRose struct{} + +func (WitherRose) ID() string { return "minecraft:wither_rose" } + +type LilyOfTheValley struct{} + +func (LilyOfTheValley) ID() string { return "minecraft:lily_of_the_valley" } + +type BrownMushroom struct{} + +func (BrownMushroom) ID() string { return "minecraft:brown_mushroom" } + +type RedMushroom struct{} + +func (RedMushroom) ID() string { return "minecraft:red_mushroom" } + +type GoldBlock struct{} + +func (GoldBlock) ID() string { return "minecraft:gold_block" } + +type IronBlock struct{} + +func (IronBlock) ID() string { return "minecraft:iron_block" } + +type Bricks struct{} + +func (Bricks) ID() string { return "minecraft:bricks" } + +type Tnt struct { + Unstable Boolean `nbt:"unstable"` +} + +func (Tnt) ID() string { return "minecraft:tnt" } + +type Bookshelf struct{} + +func (Bookshelf) ID() string { return "minecraft:bookshelf" } + +type MossyCobblestone struct{} + +func (MossyCobblestone) ID() string { return "minecraft:mossy_cobblestone" } + +type Obsidian struct{} + +func (Obsidian) ID() string { return "minecraft:obsidian" } + +type Torch struct{} + +func (Torch) ID() string { return "minecraft:torch" } + +type WallTorch struct { + Facing Direction `nbt:"facing"` +} + +func (WallTorch) ID() string { return "minecraft:wall_torch" } + +type Fire struct { + Age Integer `nbt:"age"` + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Up Boolean `nbt:"up"` + West Boolean `nbt:"west"` +} + +func (Fire) ID() string { return "minecraft:fire" } + +type SoulFire struct{} + +func (SoulFire) ID() string { return "minecraft:soul_fire" } + +type Spawner struct{} + +func (Spawner) ID() string { return "minecraft:spawner" } + +type OakStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (OakStairs) ID() string { return "minecraft:oak_stairs" } + +type Chest struct { + Facing Direction `nbt:"facing"` + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (Chest) ID() string { return "minecraft:chest" } + +type RedstoneWire struct { + East string `nbt:"east"` + North string `nbt:"north"` + Power Integer `nbt:"power"` + South string `nbt:"south"` + West string `nbt:"west"` +} + +func (RedstoneWire) ID() string { return "minecraft:redstone_wire" } + +type DiamondOre struct{} + +func (DiamondOre) ID() string { return "minecraft:diamond_ore" } + +type DeepslateDiamondOre struct{} + +func (DeepslateDiamondOre) ID() string { return "minecraft:deepslate_diamond_ore" } + +type DiamondBlock struct{} + +func (DiamondBlock) ID() string { return "minecraft:diamond_block" } + +type CraftingTable struct{} + +func (CraftingTable) ID() string { return "minecraft:crafting_table" } + +type Wheat struct { + Age Integer `nbt:"age"` +} + +func (Wheat) ID() string { return "minecraft:wheat" } + +type Farmland struct { + Moisture Integer `nbt:"moisture"` +} + +func (Farmland) ID() string { return "minecraft:farmland" } + +type Furnace struct { + Facing Direction `nbt:"facing"` + Lit Boolean `nbt:"lit"` +} + +func (Furnace) ID() string { return "minecraft:furnace" } + +type OakSign struct { + Rotation Integer `nbt:"rotation"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (OakSign) ID() string { return "minecraft:oak_sign" } + +type SpruceSign struct { + Rotation Integer `nbt:"rotation"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SpruceSign) ID() string { return "minecraft:spruce_sign" } + +type BirchSign struct { + Rotation Integer `nbt:"rotation"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BirchSign) ID() string { return "minecraft:birch_sign" } + +type AcaciaSign struct { + Rotation Integer `nbt:"rotation"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (AcaciaSign) ID() string { return "minecraft:acacia_sign" } + +type JungleSign struct { + Rotation Integer `nbt:"rotation"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (JungleSign) ID() string { return "minecraft:jungle_sign" } + +type DarkOakSign struct { + Rotation Integer `nbt:"rotation"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DarkOakSign) ID() string { return "minecraft:dark_oak_sign" } + +type OakDoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Hinge string `nbt:"hinge"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (OakDoor) ID() string { return "minecraft:oak_door" } + +type Ladder struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (Ladder) ID() string { return "minecraft:ladder" } + +type Rail struct { + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (Rail) ID() string { return "minecraft:rail" } + +type CobblestoneStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CobblestoneStairs) ID() string { return "minecraft:cobblestone_stairs" } + +type OakWallSign struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (OakWallSign) ID() string { return "minecraft:oak_wall_sign" } + +type SpruceWallSign struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SpruceWallSign) ID() string { return "minecraft:spruce_wall_sign" } + +type BirchWallSign struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BirchWallSign) ID() string { return "minecraft:birch_wall_sign" } + +type AcaciaWallSign struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (AcaciaWallSign) ID() string { return "minecraft:acacia_wall_sign" } + +type JungleWallSign struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (JungleWallSign) ID() string { return "minecraft:jungle_wall_sign" } + +type DarkOakWallSign struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DarkOakWallSign) ID() string { return "minecraft:dark_oak_wall_sign" } + +type Lever struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (Lever) ID() string { return "minecraft:lever" } + +type StonePressurePlate struct { + Powered Boolean `nbt:"powered"` +} + +func (StonePressurePlate) ID() string { return "minecraft:stone_pressure_plate" } + +type IronDoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Hinge string `nbt:"hinge"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (IronDoor) ID() string { return "minecraft:iron_door" } + +type OakPressurePlate struct { + Powered Boolean `nbt:"powered"` +} + +func (OakPressurePlate) ID() string { return "minecraft:oak_pressure_plate" } + +type SprucePressurePlate struct { + Powered Boolean `nbt:"powered"` +} + +func (SprucePressurePlate) ID() string { return "minecraft:spruce_pressure_plate" } + +type BirchPressurePlate struct { + Powered Boolean `nbt:"powered"` +} + +func (BirchPressurePlate) ID() string { return "minecraft:birch_pressure_plate" } + +type JunglePressurePlate struct { + Powered Boolean `nbt:"powered"` +} + +func (JunglePressurePlate) ID() string { return "minecraft:jungle_pressure_plate" } + +type AcaciaPressurePlate struct { + Powered Boolean `nbt:"powered"` +} + +func (AcaciaPressurePlate) ID() string { return "minecraft:acacia_pressure_plate" } + +type DarkOakPressurePlate struct { + Powered Boolean `nbt:"powered"` +} + +func (DarkOakPressurePlate) ID() string { return "minecraft:dark_oak_pressure_plate" } + +type RedstoneOre struct { + Lit Boolean `nbt:"lit"` +} + +func (RedstoneOre) ID() string { return "minecraft:redstone_ore" } + +type DeepslateRedstoneOre struct { + Lit Boolean `nbt:"lit"` +} + +func (DeepslateRedstoneOre) ID() string { return "minecraft:deepslate_redstone_ore" } + +type RedstoneTorch struct { + Lit Boolean `nbt:"lit"` +} + +func (RedstoneTorch) ID() string { return "minecraft:redstone_torch" } + +type RedstoneWallTorch struct { + Facing Direction `nbt:"facing"` + Lit Boolean `nbt:"lit"` +} + +func (RedstoneWallTorch) ID() string { return "minecraft:redstone_wall_torch" } + +type StoneButton struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (StoneButton) ID() string { return "minecraft:stone_button" } + +type Snow struct { + Layers Integer `nbt:"layers"` +} + +func (Snow) ID() string { return "minecraft:snow" } + +type Ice struct{} + +func (Ice) ID() string { return "minecraft:ice" } + +type SnowBlock struct{} + +func (SnowBlock) ID() string { return "minecraft:snow_block" } + +type Cactus struct { + Age Integer `nbt:"age"` +} + +func (Cactus) ID() string { return "minecraft:cactus" } + +type Clay struct{} + +func (Clay) ID() string { return "minecraft:clay" } + +type SugarCane struct { + Age Integer `nbt:"age"` +} + +func (SugarCane) ID() string { return "minecraft:sugar_cane" } + +type Jukebox struct { + Has_record Boolean `nbt:"has_record"` +} + +func (Jukebox) ID() string { return "minecraft:jukebox" } + +type OakFence struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (OakFence) ID() string { return "minecraft:oak_fence" } + +type Pumpkin struct{} + +func (Pumpkin) ID() string { return "minecraft:pumpkin" } + +type Netherrack struct{} + +func (Netherrack) ID() string { return "minecraft:netherrack" } + +type SoulSand struct{} + +func (SoulSand) ID() string { return "minecraft:soul_sand" } + +type SoulSoil struct{} + +func (SoulSoil) ID() string { return "minecraft:soul_soil" } + +type Basalt struct { + Axis string `nbt:"axis"` +} + +func (Basalt) ID() string { return "minecraft:basalt" } + +type PolishedBasalt struct { + Axis string `nbt:"axis"` +} + +func (PolishedBasalt) ID() string { return "minecraft:polished_basalt" } + +type SoulTorch struct{} + +func (SoulTorch) ID() string { return "minecraft:soul_torch" } + +type SoulWallTorch struct { + Facing Direction `nbt:"facing"` +} + +func (SoulWallTorch) ID() string { return "minecraft:soul_wall_torch" } + +type Glowstone struct{} + +func (Glowstone) ID() string { return "minecraft:glowstone" } + +type NetherPortal struct { + Axis string `nbt:"axis"` +} + +func (NetherPortal) ID() string { return "minecraft:nether_portal" } + +type CarvedPumpkin struct { + Facing Direction `nbt:"facing"` +} + +func (CarvedPumpkin) ID() string { return "minecraft:carved_pumpkin" } + +type JackOLantern struct { + Facing Direction `nbt:"facing"` +} + +func (JackOLantern) ID() string { return "minecraft:jack_o_lantern" } + +type Cake struct { + Bites Integer `nbt:"bites"` +} + +func (Cake) ID() string { return "minecraft:cake" } + +type Repeater struct { + Delay Integer `nbt:"delay"` + Facing Direction `nbt:"facing"` + Locked Boolean `nbt:"locked"` + Powered Boolean `nbt:"powered"` +} + +func (Repeater) ID() string { return "minecraft:repeater" } + +type WhiteStainedGlass struct{} + +func (WhiteStainedGlass) ID() string { return "minecraft:white_stained_glass" } + +type OrangeStainedGlass struct{} + +func (OrangeStainedGlass) ID() string { return "minecraft:orange_stained_glass" } + +type MagentaStainedGlass struct{} + +func (MagentaStainedGlass) ID() string { return "minecraft:magenta_stained_glass" } + +type LightBlueStainedGlass struct{} + +func (LightBlueStainedGlass) ID() string { return "minecraft:light_blue_stained_glass" } + +type YellowStainedGlass struct{} + +func (YellowStainedGlass) ID() string { return "minecraft:yellow_stained_glass" } + +type LimeStainedGlass struct{} + +func (LimeStainedGlass) ID() string { return "minecraft:lime_stained_glass" } + +type PinkStainedGlass struct{} + +func (PinkStainedGlass) ID() string { return "minecraft:pink_stained_glass" } + +type GrayStainedGlass struct{} + +func (GrayStainedGlass) ID() string { return "minecraft:gray_stained_glass" } + +type LightGrayStainedGlass struct{} + +func (LightGrayStainedGlass) ID() string { return "minecraft:light_gray_stained_glass" } + +type CyanStainedGlass struct{} + +func (CyanStainedGlass) ID() string { return "minecraft:cyan_stained_glass" } + +type PurpleStainedGlass struct{} + +func (PurpleStainedGlass) ID() string { return "minecraft:purple_stained_glass" } + +type BlueStainedGlass struct{} + +func (BlueStainedGlass) ID() string { return "minecraft:blue_stained_glass" } + +type BrownStainedGlass struct{} + +func (BrownStainedGlass) ID() string { return "minecraft:brown_stained_glass" } + +type GreenStainedGlass struct{} + +func (GreenStainedGlass) ID() string { return "minecraft:green_stained_glass" } + +type RedStainedGlass struct{} + +func (RedStainedGlass) ID() string { return "minecraft:red_stained_glass" } + +type BlackStainedGlass struct{} + +func (BlackStainedGlass) ID() string { return "minecraft:black_stained_glass" } + +type OakTrapdoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (OakTrapdoor) ID() string { return "minecraft:oak_trapdoor" } + +type SpruceTrapdoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SpruceTrapdoor) ID() string { return "minecraft:spruce_trapdoor" } + +type BirchTrapdoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BirchTrapdoor) ID() string { return "minecraft:birch_trapdoor" } + +type JungleTrapdoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (JungleTrapdoor) ID() string { return "minecraft:jungle_trapdoor" } + +type AcaciaTrapdoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (AcaciaTrapdoor) ID() string { return "minecraft:acacia_trapdoor" } + +type DarkOakTrapdoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DarkOakTrapdoor) ID() string { return "minecraft:dark_oak_trapdoor" } + +type StoneBricks struct{} + +func (StoneBricks) ID() string { return "minecraft:stone_bricks" } + +type MossyStoneBricks struct{} + +func (MossyStoneBricks) ID() string { return "minecraft:mossy_stone_bricks" } + +type CrackedStoneBricks struct{} + +func (CrackedStoneBricks) ID() string { return "minecraft:cracked_stone_bricks" } + +type ChiseledStoneBricks struct{} + +func (ChiseledStoneBricks) ID() string { return "minecraft:chiseled_stone_bricks" } + +type InfestedStone struct{} + +func (InfestedStone) ID() string { return "minecraft:infested_stone" } + +type InfestedCobblestone struct{} + +func (InfestedCobblestone) ID() string { return "minecraft:infested_cobblestone" } + +type InfestedStoneBricks struct{} + +func (InfestedStoneBricks) ID() string { return "minecraft:infested_stone_bricks" } + +type InfestedMossyStoneBricks struct{} + +func (InfestedMossyStoneBricks) ID() string { return "minecraft:infested_mossy_stone_bricks" } + +type InfestedCrackedStoneBricks struct{} + +func (InfestedCrackedStoneBricks) ID() string { return "minecraft:infested_cracked_stone_bricks" } + +type InfestedChiseledStoneBricks struct{} + +func (InfestedChiseledStoneBricks) ID() string { return "minecraft:infested_chiseled_stone_bricks" } + +type BrownMushroomBlock struct { + Down Boolean `nbt:"down"` + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Up Boolean `nbt:"up"` + West Boolean `nbt:"west"` +} + +func (BrownMushroomBlock) ID() string { return "minecraft:brown_mushroom_block" } + +type RedMushroomBlock struct { + Down Boolean `nbt:"down"` + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Up Boolean `nbt:"up"` + West Boolean `nbt:"west"` +} + +func (RedMushroomBlock) ID() string { return "minecraft:red_mushroom_block" } + +type MushroomStem struct { + Down Boolean `nbt:"down"` + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Up Boolean `nbt:"up"` + West Boolean `nbt:"west"` +} + +func (MushroomStem) ID() string { return "minecraft:mushroom_stem" } + +type IronBars struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (IronBars) ID() string { return "minecraft:iron_bars" } + +type Chain struct { + Axis string `nbt:"axis"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (Chain) ID() string { return "minecraft:chain" } + +type GlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (GlassPane) ID() string { return "minecraft:glass_pane" } + +type Melon struct{} + +func (Melon) ID() string { return "minecraft:melon" } + +type AttachedPumpkinStem struct { + Facing Direction `nbt:"facing"` +} + +func (AttachedPumpkinStem) ID() string { return "minecraft:attached_pumpkin_stem" } + +type AttachedMelonStem struct { + Facing Direction `nbt:"facing"` +} + +func (AttachedMelonStem) ID() string { return "minecraft:attached_melon_stem" } + +type PumpkinStem struct { + Age Integer `nbt:"age"` +} + +func (PumpkinStem) ID() string { return "minecraft:pumpkin_stem" } + +type MelonStem struct { + Age Integer `nbt:"age"` +} + +func (MelonStem) ID() string { return "minecraft:melon_stem" } + +type Vine struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Up Boolean `nbt:"up"` + West Boolean `nbt:"west"` +} + +func (Vine) ID() string { return "minecraft:vine" } + +type GlowLichen struct { + Down Boolean `nbt:"down"` + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (GlowLichen) ID() string { return "minecraft:glow_lichen" } + +type OakFenceGate struct { + Facing Direction `nbt:"facing"` + In_wall Boolean `nbt:"in_wall"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (OakFenceGate) ID() string { return "minecraft:oak_fence_gate" } + +type BrickStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BrickStairs) ID() string { return "minecraft:brick_stairs" } + +type StoneBrickStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (StoneBrickStairs) ID() string { return "minecraft:stone_brick_stairs" } + +type Mycelium struct { + Snowy Boolean `nbt:"snowy"` +} + +func (Mycelium) ID() string { return "minecraft:mycelium" } + +type LilyPad struct{} + +func (LilyPad) ID() string { return "minecraft:lily_pad" } + +type NetherBricks struct{} + +func (NetherBricks) ID() string { return "minecraft:nether_bricks" } + +type NetherBrickFence struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (NetherBrickFence) ID() string { return "minecraft:nether_brick_fence" } + +type NetherBrickStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (NetherBrickStairs) ID() string { return "minecraft:nether_brick_stairs" } + +type NetherWart struct { + Age Integer `nbt:"age"` +} + +func (NetherWart) ID() string { return "minecraft:nether_wart" } + +type EnchantingTable struct{} + +func (EnchantingTable) ID() string { return "minecraft:enchanting_table" } + +type BrewingStand struct { + Has_bottle_0 Boolean `nbt:"has_bottle_0"` + Has_bottle_1 Boolean `nbt:"has_bottle_1"` + Has_bottle_2 Boolean `nbt:"has_bottle_2"` +} + +func (BrewingStand) ID() string { return "minecraft:brewing_stand" } + +type Cauldron struct{} + +func (Cauldron) ID() string { return "minecraft:cauldron" } + +type WaterCauldron struct { + Level Integer `nbt:"level"` +} + +func (WaterCauldron) ID() string { return "minecraft:water_cauldron" } + +type LavaCauldron struct{} + +func (LavaCauldron) ID() string { return "minecraft:lava_cauldron" } + +type PowderSnowCauldron struct { + Level Integer `nbt:"level"` +} + +func (PowderSnowCauldron) ID() string { return "minecraft:powder_snow_cauldron" } + +type EndPortal struct{} + +func (EndPortal) ID() string { return "minecraft:end_portal" } + +type EndPortalFrame struct { + Eye Boolean `nbt:"eye"` + Facing Direction `nbt:"facing"` +} + +func (EndPortalFrame) ID() string { return "minecraft:end_portal_frame" } + +type EndStone struct{} + +func (EndStone) ID() string { return "minecraft:end_stone" } + +type DragonEgg struct{} + +func (DragonEgg) ID() string { return "minecraft:dragon_egg" } + +type RedstoneLamp struct { + Lit Boolean `nbt:"lit"` +} + +func (RedstoneLamp) ID() string { return "minecraft:redstone_lamp" } + +type Cocoa struct { + Age Integer `nbt:"age"` + Facing Direction `nbt:"facing"` +} + +func (Cocoa) ID() string { return "minecraft:cocoa" } + +type SandstoneStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SandstoneStairs) ID() string { return "minecraft:sandstone_stairs" } + +type EmeraldOre struct{} + +func (EmeraldOre) ID() string { return "minecraft:emerald_ore" } + +type DeepslateEmeraldOre struct{} + +func (DeepslateEmeraldOre) ID() string { return "minecraft:deepslate_emerald_ore" } + +type EnderChest struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (EnderChest) ID() string { return "minecraft:ender_chest" } + +type TripwireHook struct { + Attached Boolean `nbt:"attached"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (TripwireHook) ID() string { return "minecraft:tripwire_hook" } + +type Tripwire struct { + Attached Boolean `nbt:"attached"` + Disarmed Boolean `nbt:"disarmed"` + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + Powered Boolean `nbt:"powered"` + South Boolean `nbt:"south"` + West Boolean `nbt:"west"` +} + +func (Tripwire) ID() string { return "minecraft:tripwire" } + +type EmeraldBlock struct{} + +func (EmeraldBlock) ID() string { return "minecraft:emerald_block" } + +type SpruceStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SpruceStairs) ID() string { return "minecraft:spruce_stairs" } + +type BirchStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BirchStairs) ID() string { return "minecraft:birch_stairs" } + +type JungleStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (JungleStairs) ID() string { return "minecraft:jungle_stairs" } + +type CommandBlock struct { + Conditional Boolean `nbt:"conditional"` + Facing Direction `nbt:"facing"` +} + +func (CommandBlock) ID() string { return "minecraft:command_block" } + +type Beacon struct{} + +func (Beacon) ID() string { return "minecraft:beacon" } + +type CobblestoneWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (CobblestoneWall) ID() string { return "minecraft:cobblestone_wall" } + +type MossyCobblestoneWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (MossyCobblestoneWall) ID() string { return "minecraft:mossy_cobblestone_wall" } + +type FlowerPot struct{} + +func (FlowerPot) ID() string { return "minecraft:flower_pot" } + +type PottedOakSapling struct{} + +func (PottedOakSapling) ID() string { return "minecraft:potted_oak_sapling" } + +type PottedSpruceSapling struct{} + +func (PottedSpruceSapling) ID() string { return "minecraft:potted_spruce_sapling" } + +type PottedBirchSapling struct{} + +func (PottedBirchSapling) ID() string { return "minecraft:potted_birch_sapling" } + +type PottedJungleSapling struct{} + +func (PottedJungleSapling) ID() string { return "minecraft:potted_jungle_sapling" } + +type PottedAcaciaSapling struct{} + +func (PottedAcaciaSapling) ID() string { return "minecraft:potted_acacia_sapling" } + +type PottedDarkOakSapling struct{} + +func (PottedDarkOakSapling) ID() string { return "minecraft:potted_dark_oak_sapling" } + +type PottedFern struct{} + +func (PottedFern) ID() string { return "minecraft:potted_fern" } + +type PottedDandelion struct{} + +func (PottedDandelion) ID() string { return "minecraft:potted_dandelion" } + +type PottedPoppy struct{} + +func (PottedPoppy) ID() string { return "minecraft:potted_poppy" } + +type PottedBlueOrchid struct{} + +func (PottedBlueOrchid) ID() string { return "minecraft:potted_blue_orchid" } + +type PottedAllium struct{} + +func (PottedAllium) ID() string { return "minecraft:potted_allium" } + +type PottedAzureBluet struct{} + +func (PottedAzureBluet) ID() string { return "minecraft:potted_azure_bluet" } + +type PottedRedTulip struct{} + +func (PottedRedTulip) ID() string { return "minecraft:potted_red_tulip" } + +type PottedOrangeTulip struct{} + +func (PottedOrangeTulip) ID() string { return "minecraft:potted_orange_tulip" } + +type PottedWhiteTulip struct{} + +func (PottedWhiteTulip) ID() string { return "minecraft:potted_white_tulip" } + +type PottedPinkTulip struct{} + +func (PottedPinkTulip) ID() string { return "minecraft:potted_pink_tulip" } + +type PottedOxeyeDaisy struct{} + +func (PottedOxeyeDaisy) ID() string { return "minecraft:potted_oxeye_daisy" } + +type PottedCornflower struct{} + +func (PottedCornflower) ID() string { return "minecraft:potted_cornflower" } + +type PottedLilyOfTheValley struct{} + +func (PottedLilyOfTheValley) ID() string { return "minecraft:potted_lily_of_the_valley" } + +type PottedWitherRose struct{} + +func (PottedWitherRose) ID() string { return "minecraft:potted_wither_rose" } + +type PottedRedMushroom struct{} + +func (PottedRedMushroom) ID() string { return "minecraft:potted_red_mushroom" } + +type PottedBrownMushroom struct{} + +func (PottedBrownMushroom) ID() string { return "minecraft:potted_brown_mushroom" } + +type PottedDeadBush struct{} + +func (PottedDeadBush) ID() string { return "minecraft:potted_dead_bush" } + +type PottedCactus struct{} + +func (PottedCactus) ID() string { return "minecraft:potted_cactus" } + +type Carrots struct { + Age Integer `nbt:"age"` +} + +func (Carrots) ID() string { return "minecraft:carrots" } + +type Potatoes struct { + Age Integer `nbt:"age"` +} + +func (Potatoes) ID() string { return "minecraft:potatoes" } + +type OakButton struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (OakButton) ID() string { return "minecraft:oak_button" } + +type SpruceButton struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (SpruceButton) ID() string { return "minecraft:spruce_button" } + +type BirchButton struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (BirchButton) ID() string { return "minecraft:birch_button" } + +type JungleButton struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (JungleButton) ID() string { return "minecraft:jungle_button" } + +type AcaciaButton struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (AcaciaButton) ID() string { return "minecraft:acacia_button" } + +type DarkOakButton struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (DarkOakButton) ID() string { return "minecraft:dark_oak_button" } + +type SkeletonSkull struct { + Rotation Integer `nbt:"rotation"` +} + +func (SkeletonSkull) ID() string { return "minecraft:skeleton_skull" } + +type SkeletonWallSkull struct { + Facing Direction `nbt:"facing"` +} + +func (SkeletonWallSkull) ID() string { return "minecraft:skeleton_wall_skull" } + +type WitherSkeletonSkull struct { + Rotation Integer `nbt:"rotation"` +} + +func (WitherSkeletonSkull) ID() string { return "minecraft:wither_skeleton_skull" } + +type WitherSkeletonWallSkull struct { + Facing Direction `nbt:"facing"` +} + +func (WitherSkeletonWallSkull) ID() string { return "minecraft:wither_skeleton_wall_skull" } + +type ZombieHead struct { + Rotation Integer `nbt:"rotation"` +} + +func (ZombieHead) ID() string { return "minecraft:zombie_head" } + +type ZombieWallHead struct { + Facing Direction `nbt:"facing"` +} + +func (ZombieWallHead) ID() string { return "minecraft:zombie_wall_head" } + +type PlayerHead struct { + Rotation Integer `nbt:"rotation"` +} + +func (PlayerHead) ID() string { return "minecraft:player_head" } + +type PlayerWallHead struct { + Facing Direction `nbt:"facing"` +} + +func (PlayerWallHead) ID() string { return "minecraft:player_wall_head" } + +type CreeperHead struct { + Rotation Integer `nbt:"rotation"` +} + +func (CreeperHead) ID() string { return "minecraft:creeper_head" } + +type CreeperWallHead struct { + Facing Direction `nbt:"facing"` +} + +func (CreeperWallHead) ID() string { return "minecraft:creeper_wall_head" } + +type DragonHead struct { + Rotation Integer `nbt:"rotation"` +} + +func (DragonHead) ID() string { return "minecraft:dragon_head" } + +type DragonWallHead struct { + Facing Direction `nbt:"facing"` +} + +func (DragonWallHead) ID() string { return "minecraft:dragon_wall_head" } + +type Anvil struct { + Facing Direction `nbt:"facing"` +} + +func (Anvil) ID() string { return "minecraft:anvil" } + +type ChippedAnvil struct { + Facing Direction `nbt:"facing"` +} + +func (ChippedAnvil) ID() string { return "minecraft:chipped_anvil" } + +type DamagedAnvil struct { + Facing Direction `nbt:"facing"` +} + +func (DamagedAnvil) ID() string { return "minecraft:damaged_anvil" } + +type TrappedChest struct { + Facing Direction `nbt:"facing"` + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (TrappedChest) ID() string { return "minecraft:trapped_chest" } + +type LightWeightedPressurePlate struct { + Power Integer `nbt:"power"` +} + +func (LightWeightedPressurePlate) ID() string { return "minecraft:light_weighted_pressure_plate" } + +type HeavyWeightedPressurePlate struct { + Power Integer `nbt:"power"` +} + +func (HeavyWeightedPressurePlate) ID() string { return "minecraft:heavy_weighted_pressure_plate" } + +type Comparator struct { + Facing Direction `nbt:"facing"` + Mode string `nbt:"mode"` + Powered Boolean `nbt:"powered"` +} + +func (Comparator) ID() string { return "minecraft:comparator" } + +type DaylightDetector struct { + Inverted Boolean `nbt:"inverted"` + Power Integer `nbt:"power"` +} + +func (DaylightDetector) ID() string { return "minecraft:daylight_detector" } + +type RedstoneBlock struct{} + +func (RedstoneBlock) ID() string { return "minecraft:redstone_block" } + +type NetherQuartzOre struct{} + +func (NetherQuartzOre) ID() string { return "minecraft:nether_quartz_ore" } + +type Hopper struct { + Enabled Boolean `nbt:"enabled"` + Facing Direction `nbt:"facing"` +} + +func (Hopper) ID() string { return "minecraft:hopper" } + +type QuartzBlock struct{} + +func (QuartzBlock) ID() string { return "minecraft:quartz_block" } + +type ChiseledQuartzBlock struct{} + +func (ChiseledQuartzBlock) ID() string { return "minecraft:chiseled_quartz_block" } + +type QuartzPillar struct { + Axis string `nbt:"axis"` +} + +func (QuartzPillar) ID() string { return "minecraft:quartz_pillar" } + +type QuartzStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (QuartzStairs) ID() string { return "minecraft:quartz_stairs" } + +type ActivatorRail struct { + Powered Boolean `nbt:"powered"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (ActivatorRail) ID() string { return "minecraft:activator_rail" } + +type Dropper struct { + Facing Direction `nbt:"facing"` + Triggered Boolean `nbt:"triggered"` +} + +func (Dropper) ID() string { return "minecraft:dropper" } + +type WhiteTerracotta struct{} + +func (WhiteTerracotta) ID() string { return "minecraft:white_terracotta" } + +type OrangeTerracotta struct{} + +func (OrangeTerracotta) ID() string { return "minecraft:orange_terracotta" } + +type MagentaTerracotta struct{} + +func (MagentaTerracotta) ID() string { return "minecraft:magenta_terracotta" } + +type LightBlueTerracotta struct{} + +func (LightBlueTerracotta) ID() string { return "minecraft:light_blue_terracotta" } + +type YellowTerracotta struct{} + +func (YellowTerracotta) ID() string { return "minecraft:yellow_terracotta" } + +type LimeTerracotta struct{} + +func (LimeTerracotta) ID() string { return "minecraft:lime_terracotta" } + +type PinkTerracotta struct{} + +func (PinkTerracotta) ID() string { return "minecraft:pink_terracotta" } + +type GrayTerracotta struct{} + +func (GrayTerracotta) ID() string { return "minecraft:gray_terracotta" } + +type LightGrayTerracotta struct{} + +func (LightGrayTerracotta) ID() string { return "minecraft:light_gray_terracotta" } + +type CyanTerracotta struct{} + +func (CyanTerracotta) ID() string { return "minecraft:cyan_terracotta" } + +type PurpleTerracotta struct{} + +func (PurpleTerracotta) ID() string { return "minecraft:purple_terracotta" } + +type BlueTerracotta struct{} + +func (BlueTerracotta) ID() string { return "minecraft:blue_terracotta" } + +type BrownTerracotta struct{} + +func (BrownTerracotta) ID() string { return "minecraft:brown_terracotta" } + +type GreenTerracotta struct{} + +func (GreenTerracotta) ID() string { return "minecraft:green_terracotta" } + +type RedTerracotta struct{} + +func (RedTerracotta) ID() string { return "minecraft:red_terracotta" } + +type BlackTerracotta struct{} + +func (BlackTerracotta) ID() string { return "minecraft:black_terracotta" } + +type WhiteStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (WhiteStainedGlassPane) ID() string { return "minecraft:white_stained_glass_pane" } + +type OrangeStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (OrangeStainedGlassPane) ID() string { return "minecraft:orange_stained_glass_pane" } + +type MagentaStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (MagentaStainedGlassPane) ID() string { return "minecraft:magenta_stained_glass_pane" } + +type LightBlueStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (LightBlueStainedGlassPane) ID() string { return "minecraft:light_blue_stained_glass_pane" } + +type YellowStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (YellowStainedGlassPane) ID() string { return "minecraft:yellow_stained_glass_pane" } + +type LimeStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (LimeStainedGlassPane) ID() string { return "minecraft:lime_stained_glass_pane" } + +type PinkStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (PinkStainedGlassPane) ID() string { return "minecraft:pink_stained_glass_pane" } + +type GrayStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (GrayStainedGlassPane) ID() string { return "minecraft:gray_stained_glass_pane" } + +type LightGrayStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (LightGrayStainedGlassPane) ID() string { return "minecraft:light_gray_stained_glass_pane" } + +type CyanStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (CyanStainedGlassPane) ID() string { return "minecraft:cyan_stained_glass_pane" } + +type PurpleStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (PurpleStainedGlassPane) ID() string { return "minecraft:purple_stained_glass_pane" } + +type BlueStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (BlueStainedGlassPane) ID() string { return "minecraft:blue_stained_glass_pane" } + +type BrownStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (BrownStainedGlassPane) ID() string { return "minecraft:brown_stained_glass_pane" } + +type GreenStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (GreenStainedGlassPane) ID() string { return "minecraft:green_stained_glass_pane" } + +type RedStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (RedStainedGlassPane) ID() string { return "minecraft:red_stained_glass_pane" } + +type BlackStainedGlassPane struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (BlackStainedGlassPane) ID() string { return "minecraft:black_stained_glass_pane" } + +type AcaciaStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (AcaciaStairs) ID() string { return "minecraft:acacia_stairs" } + +type DarkOakStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DarkOakStairs) ID() string { return "minecraft:dark_oak_stairs" } + +type SlimeBlock struct{} + +func (SlimeBlock) ID() string { return "minecraft:slime_block" } + +type Barrier struct{} + +func (Barrier) ID() string { return "minecraft:barrier" } + +type Light struct { + Level Integer `nbt:"level"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (Light) ID() string { return "minecraft:light" } + +type IronTrapdoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (IronTrapdoor) ID() string { return "minecraft:iron_trapdoor" } + +type Prismarine struct{} + +func (Prismarine) ID() string { return "minecraft:prismarine" } + +type PrismarineBricks struct{} + +func (PrismarineBricks) ID() string { return "minecraft:prismarine_bricks" } + +type DarkPrismarine struct{} + +func (DarkPrismarine) ID() string { return "minecraft:dark_prismarine" } + +type PrismarineStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PrismarineStairs) ID() string { return "minecraft:prismarine_stairs" } + +type PrismarineBrickStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PrismarineBrickStairs) ID() string { return "minecraft:prismarine_brick_stairs" } + +type DarkPrismarineStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DarkPrismarineStairs) ID() string { return "minecraft:dark_prismarine_stairs" } + +type PrismarineSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PrismarineSlab) ID() string { return "minecraft:prismarine_slab" } + +type PrismarineBrickSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PrismarineBrickSlab) ID() string { return "minecraft:prismarine_brick_slab" } + +type DarkPrismarineSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DarkPrismarineSlab) ID() string { return "minecraft:dark_prismarine_slab" } + +type SeaLantern struct{} + +func (SeaLantern) ID() string { return "minecraft:sea_lantern" } + +type HayBlock struct { + Axis string `nbt:"axis"` +} + +func (HayBlock) ID() string { return "minecraft:hay_block" } + +type WhiteCarpet struct{} + +func (WhiteCarpet) ID() string { return "minecraft:white_carpet" } + +type OrangeCarpet struct{} + +func (OrangeCarpet) ID() string { return "minecraft:orange_carpet" } + +type MagentaCarpet struct{} + +func (MagentaCarpet) ID() string { return "minecraft:magenta_carpet" } + +type LightBlueCarpet struct{} + +func (LightBlueCarpet) ID() string { return "minecraft:light_blue_carpet" } + +type YellowCarpet struct{} + +func (YellowCarpet) ID() string { return "minecraft:yellow_carpet" } + +type LimeCarpet struct{} + +func (LimeCarpet) ID() string { return "minecraft:lime_carpet" } + +type PinkCarpet struct{} + +func (PinkCarpet) ID() string { return "minecraft:pink_carpet" } + +type GrayCarpet struct{} + +func (GrayCarpet) ID() string { return "minecraft:gray_carpet" } + +type LightGrayCarpet struct{} + +func (LightGrayCarpet) ID() string { return "minecraft:light_gray_carpet" } + +type CyanCarpet struct{} + +func (CyanCarpet) ID() string { return "minecraft:cyan_carpet" } + +type PurpleCarpet struct{} + +func (PurpleCarpet) ID() string { return "minecraft:purple_carpet" } + +type BlueCarpet struct{} + +func (BlueCarpet) ID() string { return "minecraft:blue_carpet" } + +type BrownCarpet struct{} + +func (BrownCarpet) ID() string { return "minecraft:brown_carpet" } + +type GreenCarpet struct{} + +func (GreenCarpet) ID() string { return "minecraft:green_carpet" } + +type RedCarpet struct{} + +func (RedCarpet) ID() string { return "minecraft:red_carpet" } + +type BlackCarpet struct{} + +func (BlackCarpet) ID() string { return "minecraft:black_carpet" } + +type Terracotta struct{} + +func (Terracotta) ID() string { return "minecraft:terracotta" } + +type CoalBlock struct{} + +func (CoalBlock) ID() string { return "minecraft:coal_block" } + +type PackedIce struct{} + +func (PackedIce) ID() string { return "minecraft:packed_ice" } + +type Sunflower struct { + Half string `nbt:"half"` +} + +func (Sunflower) ID() string { return "minecraft:sunflower" } + +type Lilac struct { + Half string `nbt:"half"` +} + +func (Lilac) ID() string { return "minecraft:lilac" } + +type RoseBush struct { + Half string `nbt:"half"` +} + +func (RoseBush) ID() string { return "minecraft:rose_bush" } + +type Peony struct { + Half string `nbt:"half"` +} + +func (Peony) ID() string { return "minecraft:peony" } + +type TallGrass struct { + Half string `nbt:"half"` +} + +func (TallGrass) ID() string { return "minecraft:tall_grass" } + +type LargeFern struct { + Half string `nbt:"half"` +} + +func (LargeFern) ID() string { return "minecraft:large_fern" } + +type WhiteBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (WhiteBanner) ID() string { return "minecraft:white_banner" } + +type OrangeBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (OrangeBanner) ID() string { return "minecraft:orange_banner" } + +type MagentaBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (MagentaBanner) ID() string { return "minecraft:magenta_banner" } + +type LightBlueBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (LightBlueBanner) ID() string { return "minecraft:light_blue_banner" } + +type YellowBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (YellowBanner) ID() string { return "minecraft:yellow_banner" } + +type LimeBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (LimeBanner) ID() string { return "minecraft:lime_banner" } + +type PinkBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (PinkBanner) ID() string { return "minecraft:pink_banner" } + +type GrayBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (GrayBanner) ID() string { return "minecraft:gray_banner" } + +type LightGrayBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (LightGrayBanner) ID() string { return "minecraft:light_gray_banner" } + +type CyanBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (CyanBanner) ID() string { return "minecraft:cyan_banner" } + +type PurpleBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (PurpleBanner) ID() string { return "minecraft:purple_banner" } + +type BlueBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (BlueBanner) ID() string { return "minecraft:blue_banner" } + +type BrownBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (BrownBanner) ID() string { return "minecraft:brown_banner" } + +type GreenBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (GreenBanner) ID() string { return "minecraft:green_banner" } + +type RedBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (RedBanner) ID() string { return "minecraft:red_banner" } + +type BlackBanner struct { + Rotation Integer `nbt:"rotation"` +} + +func (BlackBanner) ID() string { return "minecraft:black_banner" } + +type WhiteWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (WhiteWallBanner) ID() string { return "minecraft:white_wall_banner" } + +type OrangeWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (OrangeWallBanner) ID() string { return "minecraft:orange_wall_banner" } + +type MagentaWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (MagentaWallBanner) ID() string { return "minecraft:magenta_wall_banner" } + +type LightBlueWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (LightBlueWallBanner) ID() string { return "minecraft:light_blue_wall_banner" } + +type YellowWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (YellowWallBanner) ID() string { return "minecraft:yellow_wall_banner" } + +type LimeWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (LimeWallBanner) ID() string { return "minecraft:lime_wall_banner" } + +type PinkWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (PinkWallBanner) ID() string { return "minecraft:pink_wall_banner" } + +type GrayWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (GrayWallBanner) ID() string { return "minecraft:gray_wall_banner" } + +type LightGrayWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (LightGrayWallBanner) ID() string { return "minecraft:light_gray_wall_banner" } + +type CyanWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (CyanWallBanner) ID() string { return "minecraft:cyan_wall_banner" } + +type PurpleWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (PurpleWallBanner) ID() string { return "minecraft:purple_wall_banner" } + +type BlueWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (BlueWallBanner) ID() string { return "minecraft:blue_wall_banner" } + +type BrownWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (BrownWallBanner) ID() string { return "minecraft:brown_wall_banner" } + +type GreenWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (GreenWallBanner) ID() string { return "minecraft:green_wall_banner" } + +type RedWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (RedWallBanner) ID() string { return "minecraft:red_wall_banner" } + +type BlackWallBanner struct { + Facing Direction `nbt:"facing"` +} + +func (BlackWallBanner) ID() string { return "minecraft:black_wall_banner" } + +type RedSandstone struct{} + +func (RedSandstone) ID() string { return "minecraft:red_sandstone" } + +type ChiseledRedSandstone struct{} + +func (ChiseledRedSandstone) ID() string { return "minecraft:chiseled_red_sandstone" } + +type CutRedSandstone struct{} + +func (CutRedSandstone) ID() string { return "minecraft:cut_red_sandstone" } + +type RedSandstoneStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (RedSandstoneStairs) ID() string { return "minecraft:red_sandstone_stairs" } + +type OakSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (OakSlab) ID() string { return "minecraft:oak_slab" } + +type SpruceSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SpruceSlab) ID() string { return "minecraft:spruce_slab" } + +type BirchSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BirchSlab) ID() string { return "minecraft:birch_slab" } + +type JungleSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (JungleSlab) ID() string { return "minecraft:jungle_slab" } + +type AcaciaSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (AcaciaSlab) ID() string { return "minecraft:acacia_slab" } + +type DarkOakSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DarkOakSlab) ID() string { return "minecraft:dark_oak_slab" } + +type StoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (StoneSlab) ID() string { return "minecraft:stone_slab" } + +type SmoothStoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SmoothStoneSlab) ID() string { return "minecraft:smooth_stone_slab" } + +type SandstoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SandstoneSlab) ID() string { return "minecraft:sandstone_slab" } + +type CutSandstoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CutSandstoneSlab) ID() string { return "minecraft:cut_sandstone_slab" } + +type PetrifiedOakSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PetrifiedOakSlab) ID() string { return "minecraft:petrified_oak_slab" } + +type CobblestoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CobblestoneSlab) ID() string { return "minecraft:cobblestone_slab" } + +type BrickSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BrickSlab) ID() string { return "minecraft:brick_slab" } + +type StoneBrickSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (StoneBrickSlab) ID() string { return "minecraft:stone_brick_slab" } + +type NetherBrickSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (NetherBrickSlab) ID() string { return "minecraft:nether_brick_slab" } + +type QuartzSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (QuartzSlab) ID() string { return "minecraft:quartz_slab" } + +type RedSandstoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (RedSandstoneSlab) ID() string { return "minecraft:red_sandstone_slab" } + +type CutRedSandstoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CutRedSandstoneSlab) ID() string { return "minecraft:cut_red_sandstone_slab" } + +type PurpurSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PurpurSlab) ID() string { return "minecraft:purpur_slab" } + +type SmoothStone struct{} + +func (SmoothStone) ID() string { return "minecraft:smooth_stone" } + +type SmoothSandstone struct{} + +func (SmoothSandstone) ID() string { return "minecraft:smooth_sandstone" } + +type SmoothQuartz struct{} + +func (SmoothQuartz) ID() string { return "minecraft:smooth_quartz" } + +type SmoothRedSandstone struct{} + +func (SmoothRedSandstone) ID() string { return "minecraft:smooth_red_sandstone" } + +type SpruceFenceGate struct { + Facing Direction `nbt:"facing"` + In_wall Boolean `nbt:"in_wall"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (SpruceFenceGate) ID() string { return "minecraft:spruce_fence_gate" } + +type BirchFenceGate struct { + Facing Direction `nbt:"facing"` + In_wall Boolean `nbt:"in_wall"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (BirchFenceGate) ID() string { return "minecraft:birch_fence_gate" } + +type JungleFenceGate struct { + Facing Direction `nbt:"facing"` + In_wall Boolean `nbt:"in_wall"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (JungleFenceGate) ID() string { return "minecraft:jungle_fence_gate" } + +type AcaciaFenceGate struct { + Facing Direction `nbt:"facing"` + In_wall Boolean `nbt:"in_wall"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (AcaciaFenceGate) ID() string { return "minecraft:acacia_fence_gate" } + +type DarkOakFenceGate struct { + Facing Direction `nbt:"facing"` + In_wall Boolean `nbt:"in_wall"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (DarkOakFenceGate) ID() string { return "minecraft:dark_oak_fence_gate" } + +type SpruceFence struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (SpruceFence) ID() string { return "minecraft:spruce_fence" } + +type BirchFence struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (BirchFence) ID() string { return "minecraft:birch_fence" } + +type JungleFence struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (JungleFence) ID() string { return "minecraft:jungle_fence" } + +type AcaciaFence struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (AcaciaFence) ID() string { return "minecraft:acacia_fence" } + +type DarkOakFence struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (DarkOakFence) ID() string { return "minecraft:dark_oak_fence" } + +type SpruceDoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Hinge string `nbt:"hinge"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (SpruceDoor) ID() string { return "minecraft:spruce_door" } + +type BirchDoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Hinge string `nbt:"hinge"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (BirchDoor) ID() string { return "minecraft:birch_door" } + +type JungleDoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Hinge string `nbt:"hinge"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (JungleDoor) ID() string { return "minecraft:jungle_door" } + +type AcaciaDoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Hinge string `nbt:"hinge"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (AcaciaDoor) ID() string { return "minecraft:acacia_door" } + +type DarkOakDoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Hinge string `nbt:"hinge"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (DarkOakDoor) ID() string { return "minecraft:dark_oak_door" } + +type EndRod struct { + Facing Direction `nbt:"facing"` +} + +func (EndRod) ID() string { return "minecraft:end_rod" } + +type ChorusPlant struct { + Down Boolean `nbt:"down"` + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Up Boolean `nbt:"up"` + West Boolean `nbt:"west"` +} + +func (ChorusPlant) ID() string { return "minecraft:chorus_plant" } + +type ChorusFlower struct { + Age Integer `nbt:"age"` +} + +func (ChorusFlower) ID() string { return "minecraft:chorus_flower" } + +type PurpurBlock struct{} + +func (PurpurBlock) ID() string { return "minecraft:purpur_block" } + +type PurpurPillar struct { + Axis string `nbt:"axis"` +} + +func (PurpurPillar) ID() string { return "minecraft:purpur_pillar" } + +type PurpurStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PurpurStairs) ID() string { return "minecraft:purpur_stairs" } + +type EndStoneBricks struct{} + +func (EndStoneBricks) ID() string { return "minecraft:end_stone_bricks" } + +type Beetroots struct { + Age Integer `nbt:"age"` +} + +func (Beetroots) ID() string { return "minecraft:beetroots" } + +type DirtPath struct{} + +func (DirtPath) ID() string { return "minecraft:dirt_path" } + +type EndGateway struct{} + +func (EndGateway) ID() string { return "minecraft:end_gateway" } + +type RepeatingCommandBlock struct { + Conditional Boolean `nbt:"conditional"` + Facing Direction `nbt:"facing"` +} + +func (RepeatingCommandBlock) ID() string { return "minecraft:repeating_command_block" } + +type ChainCommandBlock struct { + Conditional Boolean `nbt:"conditional"` + Facing Direction `nbt:"facing"` +} + +func (ChainCommandBlock) ID() string { return "minecraft:chain_command_block" } + +type FrostedIce struct { + Age Integer `nbt:"age"` +} + +func (FrostedIce) ID() string { return "minecraft:frosted_ice" } + +type MagmaBlock struct{} + +func (MagmaBlock) ID() string { return "minecraft:magma_block" } + +type NetherWartBlock struct{} + +func (NetherWartBlock) ID() string { return "minecraft:nether_wart_block" } + +type RedNetherBricks struct{} + +func (RedNetherBricks) ID() string { return "minecraft:red_nether_bricks" } + +type BoneBlock struct { + Axis string `nbt:"axis"` +} + +func (BoneBlock) ID() string { return "minecraft:bone_block" } + +type StructureVoid struct{} + +func (StructureVoid) ID() string { return "minecraft:structure_void" } + +type Observer struct { + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (Observer) ID() string { return "minecraft:observer" } + +type ShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (ShulkerBox) ID() string { return "minecraft:shulker_box" } + +type WhiteShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (WhiteShulkerBox) ID() string { return "minecraft:white_shulker_box" } + +type OrangeShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (OrangeShulkerBox) ID() string { return "minecraft:orange_shulker_box" } + +type MagentaShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (MagentaShulkerBox) ID() string { return "minecraft:magenta_shulker_box" } + +type LightBlueShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (LightBlueShulkerBox) ID() string { return "minecraft:light_blue_shulker_box" } + +type YellowShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (YellowShulkerBox) ID() string { return "minecraft:yellow_shulker_box" } + +type LimeShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (LimeShulkerBox) ID() string { return "minecraft:lime_shulker_box" } + +type PinkShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (PinkShulkerBox) ID() string { return "minecraft:pink_shulker_box" } + +type GrayShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (GrayShulkerBox) ID() string { return "minecraft:gray_shulker_box" } + +type LightGrayShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (LightGrayShulkerBox) ID() string { return "minecraft:light_gray_shulker_box" } + +type CyanShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (CyanShulkerBox) ID() string { return "minecraft:cyan_shulker_box" } + +type PurpleShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (PurpleShulkerBox) ID() string { return "minecraft:purple_shulker_box" } + +type BlueShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (BlueShulkerBox) ID() string { return "minecraft:blue_shulker_box" } + +type BrownShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (BrownShulkerBox) ID() string { return "minecraft:brown_shulker_box" } + +type GreenShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (GreenShulkerBox) ID() string { return "minecraft:green_shulker_box" } + +type RedShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (RedShulkerBox) ID() string { return "minecraft:red_shulker_box" } + +type BlackShulkerBox struct { + Facing Direction `nbt:"facing"` +} + +func (BlackShulkerBox) ID() string { return "minecraft:black_shulker_box" } + +type WhiteGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (WhiteGlazedTerracotta) ID() string { return "minecraft:white_glazed_terracotta" } + +type OrangeGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (OrangeGlazedTerracotta) ID() string { return "minecraft:orange_glazed_terracotta" } + +type MagentaGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (MagentaGlazedTerracotta) ID() string { return "minecraft:magenta_glazed_terracotta" } + +type LightBlueGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (LightBlueGlazedTerracotta) ID() string { return "minecraft:light_blue_glazed_terracotta" } + +type YellowGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (YellowGlazedTerracotta) ID() string { return "minecraft:yellow_glazed_terracotta" } + +type LimeGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (LimeGlazedTerracotta) ID() string { return "minecraft:lime_glazed_terracotta" } + +type PinkGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (PinkGlazedTerracotta) ID() string { return "minecraft:pink_glazed_terracotta" } + +type GrayGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (GrayGlazedTerracotta) ID() string { return "minecraft:gray_glazed_terracotta" } + +type LightGrayGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (LightGrayGlazedTerracotta) ID() string { return "minecraft:light_gray_glazed_terracotta" } + +type CyanGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (CyanGlazedTerracotta) ID() string { return "minecraft:cyan_glazed_terracotta" } + +type PurpleGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (PurpleGlazedTerracotta) ID() string { return "minecraft:purple_glazed_terracotta" } + +type BlueGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (BlueGlazedTerracotta) ID() string { return "minecraft:blue_glazed_terracotta" } + +type BrownGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (BrownGlazedTerracotta) ID() string { return "minecraft:brown_glazed_terracotta" } + +type GreenGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (GreenGlazedTerracotta) ID() string { return "minecraft:green_glazed_terracotta" } + +type RedGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (RedGlazedTerracotta) ID() string { return "minecraft:red_glazed_terracotta" } + +type BlackGlazedTerracotta struct { + Facing Direction `nbt:"facing"` +} + +func (BlackGlazedTerracotta) ID() string { return "minecraft:black_glazed_terracotta" } + +type WhiteConcrete struct{} + +func (WhiteConcrete) ID() string { return "minecraft:white_concrete" } + +type OrangeConcrete struct{} + +func (OrangeConcrete) ID() string { return "minecraft:orange_concrete" } + +type MagentaConcrete struct{} + +func (MagentaConcrete) ID() string { return "minecraft:magenta_concrete" } + +type LightBlueConcrete struct{} + +func (LightBlueConcrete) ID() string { return "minecraft:light_blue_concrete" } + +type YellowConcrete struct{} + +func (YellowConcrete) ID() string { return "minecraft:yellow_concrete" } + +type LimeConcrete struct{} + +func (LimeConcrete) ID() string { return "minecraft:lime_concrete" } + +type PinkConcrete struct{} + +func (PinkConcrete) ID() string { return "minecraft:pink_concrete" } + +type GrayConcrete struct{} + +func (GrayConcrete) ID() string { return "minecraft:gray_concrete" } + +type LightGrayConcrete struct{} + +func (LightGrayConcrete) ID() string { return "minecraft:light_gray_concrete" } + +type CyanConcrete struct{} + +func (CyanConcrete) ID() string { return "minecraft:cyan_concrete" } + +type PurpleConcrete struct{} + +func (PurpleConcrete) ID() string { return "minecraft:purple_concrete" } + +type BlueConcrete struct{} + +func (BlueConcrete) ID() string { return "minecraft:blue_concrete" } + +type BrownConcrete struct{} + +func (BrownConcrete) ID() string { return "minecraft:brown_concrete" } + +type GreenConcrete struct{} + +func (GreenConcrete) ID() string { return "minecraft:green_concrete" } + +type RedConcrete struct{} + +func (RedConcrete) ID() string { return "minecraft:red_concrete" } + +type BlackConcrete struct{} + +func (BlackConcrete) ID() string { return "minecraft:black_concrete" } + +type WhiteConcretePowder struct{} + +func (WhiteConcretePowder) ID() string { return "minecraft:white_concrete_powder" } + +type OrangeConcretePowder struct{} + +func (OrangeConcretePowder) ID() string { return "minecraft:orange_concrete_powder" } + +type MagentaConcretePowder struct{} + +func (MagentaConcretePowder) ID() string { return "minecraft:magenta_concrete_powder" } + +type LightBlueConcretePowder struct{} + +func (LightBlueConcretePowder) ID() string { return "minecraft:light_blue_concrete_powder" } + +type YellowConcretePowder struct{} + +func (YellowConcretePowder) ID() string { return "minecraft:yellow_concrete_powder" } + +type LimeConcretePowder struct{} + +func (LimeConcretePowder) ID() string { return "minecraft:lime_concrete_powder" } + +type PinkConcretePowder struct{} + +func (PinkConcretePowder) ID() string { return "minecraft:pink_concrete_powder" } + +type GrayConcretePowder struct{} + +func (GrayConcretePowder) ID() string { return "minecraft:gray_concrete_powder" } + +type LightGrayConcretePowder struct{} + +func (LightGrayConcretePowder) ID() string { return "minecraft:light_gray_concrete_powder" } + +type CyanConcretePowder struct{} + +func (CyanConcretePowder) ID() string { return "minecraft:cyan_concrete_powder" } + +type PurpleConcretePowder struct{} + +func (PurpleConcretePowder) ID() string { return "minecraft:purple_concrete_powder" } + +type BlueConcretePowder struct{} + +func (BlueConcretePowder) ID() string { return "minecraft:blue_concrete_powder" } + +type BrownConcretePowder struct{} + +func (BrownConcretePowder) ID() string { return "minecraft:brown_concrete_powder" } + +type GreenConcretePowder struct{} + +func (GreenConcretePowder) ID() string { return "minecraft:green_concrete_powder" } + +type RedConcretePowder struct{} + +func (RedConcretePowder) ID() string { return "minecraft:red_concrete_powder" } + +type BlackConcretePowder struct{} + +func (BlackConcretePowder) ID() string { return "minecraft:black_concrete_powder" } + +type Kelp struct { + Age Integer `nbt:"age"` +} + +func (Kelp) ID() string { return "minecraft:kelp" } + +type KelpPlant struct{} + +func (KelpPlant) ID() string { return "minecraft:kelp_plant" } + +type DriedKelpBlock struct{} + +func (DriedKelpBlock) ID() string { return "minecraft:dried_kelp_block" } + +type TurtleEgg struct { + Eggs Integer `nbt:"eggs"` + Hatch Integer `nbt:"hatch"` +} + +func (TurtleEgg) ID() string { return "minecraft:turtle_egg" } + +type DeadTubeCoralBlock struct{} + +func (DeadTubeCoralBlock) ID() string { return "minecraft:dead_tube_coral_block" } + +type DeadBrainCoralBlock struct{} + +func (DeadBrainCoralBlock) ID() string { return "minecraft:dead_brain_coral_block" } + +type DeadBubbleCoralBlock struct{} + +func (DeadBubbleCoralBlock) ID() string { return "minecraft:dead_bubble_coral_block" } + +type DeadFireCoralBlock struct{} + +func (DeadFireCoralBlock) ID() string { return "minecraft:dead_fire_coral_block" } + +type DeadHornCoralBlock struct{} + +func (DeadHornCoralBlock) ID() string { return "minecraft:dead_horn_coral_block" } + +type TubeCoralBlock struct{} + +func (TubeCoralBlock) ID() string { return "minecraft:tube_coral_block" } + +type BrainCoralBlock struct{} + +func (BrainCoralBlock) ID() string { return "minecraft:brain_coral_block" } + +type BubbleCoralBlock struct{} + +func (BubbleCoralBlock) ID() string { return "minecraft:bubble_coral_block" } + +type FireCoralBlock struct{} + +func (FireCoralBlock) ID() string { return "minecraft:fire_coral_block" } + +type HornCoralBlock struct{} + +func (HornCoralBlock) ID() string { return "minecraft:horn_coral_block" } + +type DeadTubeCoral struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadTubeCoral) ID() string { return "minecraft:dead_tube_coral" } + +type DeadBrainCoral struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadBrainCoral) ID() string { return "minecraft:dead_brain_coral" } + +type DeadBubbleCoral struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadBubbleCoral) ID() string { return "minecraft:dead_bubble_coral" } + +type DeadFireCoral struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadFireCoral) ID() string { return "minecraft:dead_fire_coral" } + +type DeadHornCoral struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadHornCoral) ID() string { return "minecraft:dead_horn_coral" } + +type TubeCoral struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (TubeCoral) ID() string { return "minecraft:tube_coral" } + +type BrainCoral struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BrainCoral) ID() string { return "minecraft:brain_coral" } + +type BubbleCoral struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BubbleCoral) ID() string { return "minecraft:bubble_coral" } + +type FireCoral struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (FireCoral) ID() string { return "minecraft:fire_coral" } + +type HornCoral struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (HornCoral) ID() string { return "minecraft:horn_coral" } + +type DeadTubeCoralFan struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadTubeCoralFan) ID() string { return "minecraft:dead_tube_coral_fan" } + +type DeadBrainCoralFan struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadBrainCoralFan) ID() string { return "minecraft:dead_brain_coral_fan" } + +type DeadBubbleCoralFan struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadBubbleCoralFan) ID() string { return "minecraft:dead_bubble_coral_fan" } + +type DeadFireCoralFan struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadFireCoralFan) ID() string { return "minecraft:dead_fire_coral_fan" } + +type DeadHornCoralFan struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadHornCoralFan) ID() string { return "minecraft:dead_horn_coral_fan" } + +type TubeCoralFan struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (TubeCoralFan) ID() string { return "minecraft:tube_coral_fan" } + +type BrainCoralFan struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BrainCoralFan) ID() string { return "minecraft:brain_coral_fan" } + +type BubbleCoralFan struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BubbleCoralFan) ID() string { return "minecraft:bubble_coral_fan" } + +type FireCoralFan struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (FireCoralFan) ID() string { return "minecraft:fire_coral_fan" } + +type HornCoralFan struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (HornCoralFan) ID() string { return "minecraft:horn_coral_fan" } + +type DeadTubeCoralWallFan struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadTubeCoralWallFan) ID() string { return "minecraft:dead_tube_coral_wall_fan" } + +type DeadBrainCoralWallFan struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadBrainCoralWallFan) ID() string { return "minecraft:dead_brain_coral_wall_fan" } + +type DeadBubbleCoralWallFan struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadBubbleCoralWallFan) ID() string { return "minecraft:dead_bubble_coral_wall_fan" } + +type DeadFireCoralWallFan struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadFireCoralWallFan) ID() string { return "minecraft:dead_fire_coral_wall_fan" } + +type DeadHornCoralWallFan struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeadHornCoralWallFan) ID() string { return "minecraft:dead_horn_coral_wall_fan" } + +type TubeCoralWallFan struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (TubeCoralWallFan) ID() string { return "minecraft:tube_coral_wall_fan" } + +type BrainCoralWallFan struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BrainCoralWallFan) ID() string { return "minecraft:brain_coral_wall_fan" } + +type BubbleCoralWallFan struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BubbleCoralWallFan) ID() string { return "minecraft:bubble_coral_wall_fan" } + +type FireCoralWallFan struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (FireCoralWallFan) ID() string { return "minecraft:fire_coral_wall_fan" } + +type HornCoralWallFan struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (HornCoralWallFan) ID() string { return "minecraft:horn_coral_wall_fan" } + +type SeaPickle struct { + Pickles Integer `nbt:"pickles"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SeaPickle) ID() string { return "minecraft:sea_pickle" } + +type BlueIce struct{} + +func (BlueIce) ID() string { return "minecraft:blue_ice" } + +type Conduit struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (Conduit) ID() string { return "minecraft:conduit" } + +type BambooSapling struct{} + +func (BambooSapling) ID() string { return "minecraft:bamboo_sapling" } + +type Bamboo struct { + Age Integer `nbt:"age"` + Leaves string `nbt:"leaves"` + Stage Integer `nbt:"stage"` +} + +func (Bamboo) ID() string { return "minecraft:bamboo" } + +type PottedBamboo struct{} + +func (PottedBamboo) ID() string { return "minecraft:potted_bamboo" } + +type VoidAir struct{} + +func (VoidAir) ID() string { return "minecraft:void_air" } + +type CaveAir struct{} + +func (CaveAir) ID() string { return "minecraft:cave_air" } + +type BubbleColumn struct { + Drag Boolean `nbt:"drag"` +} + +func (BubbleColumn) ID() string { return "minecraft:bubble_column" } + +type PolishedGraniteStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedGraniteStairs) ID() string { return "minecraft:polished_granite_stairs" } + +type SmoothRedSandstoneStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SmoothRedSandstoneStairs) ID() string { return "minecraft:smooth_red_sandstone_stairs" } + +type MossyStoneBrickStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (MossyStoneBrickStairs) ID() string { return "minecraft:mossy_stone_brick_stairs" } + +type PolishedDioriteStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedDioriteStairs) ID() string { return "minecraft:polished_diorite_stairs" } + +type MossyCobblestoneStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (MossyCobblestoneStairs) ID() string { return "minecraft:mossy_cobblestone_stairs" } + +type EndStoneBrickStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (EndStoneBrickStairs) ID() string { return "minecraft:end_stone_brick_stairs" } + +type StoneStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (StoneStairs) ID() string { return "minecraft:stone_stairs" } + +type SmoothSandstoneStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SmoothSandstoneStairs) ID() string { return "minecraft:smooth_sandstone_stairs" } + +type SmoothQuartzStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SmoothQuartzStairs) ID() string { return "minecraft:smooth_quartz_stairs" } + +type GraniteStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (GraniteStairs) ID() string { return "minecraft:granite_stairs" } + +type AndesiteStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (AndesiteStairs) ID() string { return "minecraft:andesite_stairs" } + +type RedNetherBrickStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (RedNetherBrickStairs) ID() string { return "minecraft:red_nether_brick_stairs" } + +type PolishedAndesiteStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedAndesiteStairs) ID() string { return "minecraft:polished_andesite_stairs" } + +type DioriteStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DioriteStairs) ID() string { return "minecraft:diorite_stairs" } + +type PolishedGraniteSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedGraniteSlab) ID() string { return "minecraft:polished_granite_slab" } + +type SmoothRedSandstoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SmoothRedSandstoneSlab) ID() string { return "minecraft:smooth_red_sandstone_slab" } + +type MossyStoneBrickSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (MossyStoneBrickSlab) ID() string { return "minecraft:mossy_stone_brick_slab" } + +type PolishedDioriteSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedDioriteSlab) ID() string { return "minecraft:polished_diorite_slab" } + +type MossyCobblestoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (MossyCobblestoneSlab) ID() string { return "minecraft:mossy_cobblestone_slab" } + +type EndStoneBrickSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (EndStoneBrickSlab) ID() string { return "minecraft:end_stone_brick_slab" } + +type SmoothSandstoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SmoothSandstoneSlab) ID() string { return "minecraft:smooth_sandstone_slab" } + +type SmoothQuartzSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SmoothQuartzSlab) ID() string { return "minecraft:smooth_quartz_slab" } + +type GraniteSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (GraniteSlab) ID() string { return "minecraft:granite_slab" } + +type AndesiteSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (AndesiteSlab) ID() string { return "minecraft:andesite_slab" } + +type RedNetherBrickSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (RedNetherBrickSlab) ID() string { return "minecraft:red_nether_brick_slab" } + +type PolishedAndesiteSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedAndesiteSlab) ID() string { return "minecraft:polished_andesite_slab" } + +type DioriteSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DioriteSlab) ID() string { return "minecraft:diorite_slab" } + +type BrickWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (BrickWall) ID() string { return "minecraft:brick_wall" } + +type PrismarineWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (PrismarineWall) ID() string { return "minecraft:prismarine_wall" } + +type RedSandstoneWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (RedSandstoneWall) ID() string { return "minecraft:red_sandstone_wall" } + +type MossyStoneBrickWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (MossyStoneBrickWall) ID() string { return "minecraft:mossy_stone_brick_wall" } + +type GraniteWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (GraniteWall) ID() string { return "minecraft:granite_wall" } + +type StoneBrickWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (StoneBrickWall) ID() string { return "minecraft:stone_brick_wall" } + +type NetherBrickWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (NetherBrickWall) ID() string { return "minecraft:nether_brick_wall" } + +type AndesiteWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (AndesiteWall) ID() string { return "minecraft:andesite_wall" } + +type RedNetherBrickWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (RedNetherBrickWall) ID() string { return "minecraft:red_nether_brick_wall" } + +type SandstoneWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (SandstoneWall) ID() string { return "minecraft:sandstone_wall" } + +type EndStoneBrickWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (EndStoneBrickWall) ID() string { return "minecraft:end_stone_brick_wall" } + +type DioriteWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (DioriteWall) ID() string { return "minecraft:diorite_wall" } + +type Scaffolding struct { + Bottom Boolean `nbt:"bottom"` + Distance Integer `nbt:"distance"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (Scaffolding) ID() string { return "minecraft:scaffolding" } + +type Loom struct { + Facing Direction `nbt:"facing"` +} + +func (Loom) ID() string { return "minecraft:loom" } + +type Barrel struct { + Facing Direction `nbt:"facing"` + Open Boolean `nbt:"open"` +} + +func (Barrel) ID() string { return "minecraft:barrel" } + +type Smoker struct { + Facing Direction `nbt:"facing"` + Lit Boolean `nbt:"lit"` +} + +func (Smoker) ID() string { return "minecraft:smoker" } + +type BlastFurnace struct { + Facing Direction `nbt:"facing"` + Lit Boolean `nbt:"lit"` +} + +func (BlastFurnace) ID() string { return "minecraft:blast_furnace" } + +type CartographyTable struct{} + +func (CartographyTable) ID() string { return "minecraft:cartography_table" } + +type FletchingTable struct{} + +func (FletchingTable) ID() string { return "minecraft:fletching_table" } + +type Grindstone struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` +} + +func (Grindstone) ID() string { return "minecraft:grindstone" } + +type Lectern struct { + Facing Direction `nbt:"facing"` + Has_book Boolean `nbt:"has_book"` + Powered Boolean `nbt:"powered"` +} + +func (Lectern) ID() string { return "minecraft:lectern" } + +type SmithingTable struct{} + +func (SmithingTable) ID() string { return "minecraft:smithing_table" } + +type Stonecutter struct { + Facing Direction `nbt:"facing"` +} + +func (Stonecutter) ID() string { return "minecraft:stonecutter" } + +type Bell struct { + Attachment string `nbt:"attachment"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (Bell) ID() string { return "minecraft:bell" } + +type Lantern struct { + Hanging Boolean `nbt:"hanging"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (Lantern) ID() string { return "minecraft:lantern" } + +type SoulLantern struct { + Hanging Boolean `nbt:"hanging"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SoulLantern) ID() string { return "minecraft:soul_lantern" } + +type Campfire struct { + Facing Direction `nbt:"facing"` + Lit Boolean `nbt:"lit"` + Signal_fire Boolean `nbt:"signal_fire"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (Campfire) ID() string { return "minecraft:campfire" } + +type SoulCampfire struct { + Facing Direction `nbt:"facing"` + Lit Boolean `nbt:"lit"` + Signal_fire Boolean `nbt:"signal_fire"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SoulCampfire) ID() string { return "minecraft:soul_campfire" } + +type SweetBerryBush struct { + Age Integer `nbt:"age"` +} + +func (SweetBerryBush) ID() string { return "minecraft:sweet_berry_bush" } + +type WarpedStem struct { + Axis string `nbt:"axis"` +} + +func (WarpedStem) ID() string { return "minecraft:warped_stem" } + +type StrippedWarpedStem struct { + Axis string `nbt:"axis"` +} + +func (StrippedWarpedStem) ID() string { return "minecraft:stripped_warped_stem" } + +type WarpedHyphae struct { + Axis string `nbt:"axis"` +} + +func (WarpedHyphae) ID() string { return "minecraft:warped_hyphae" } + +type StrippedWarpedHyphae struct { + Axis string `nbt:"axis"` +} + +func (StrippedWarpedHyphae) ID() string { return "minecraft:stripped_warped_hyphae" } + +type WarpedNylium struct{} + +func (WarpedNylium) ID() string { return "minecraft:warped_nylium" } + +type WarpedFungus struct{} + +func (WarpedFungus) ID() string { return "minecraft:warped_fungus" } + +type WarpedWartBlock struct{} + +func (WarpedWartBlock) ID() string { return "minecraft:warped_wart_block" } + +type WarpedRoots struct{} + +func (WarpedRoots) ID() string { return "minecraft:warped_roots" } + +type NetherSprouts struct{} + +func (NetherSprouts) ID() string { return "minecraft:nether_sprouts" } + +type CrimsonStem struct { + Axis string `nbt:"axis"` +} + +func (CrimsonStem) ID() string { return "minecraft:crimson_stem" } + +type StrippedCrimsonStem struct { + Axis string `nbt:"axis"` +} + +func (StrippedCrimsonStem) ID() string { return "minecraft:stripped_crimson_stem" } + +type CrimsonHyphae struct { + Axis string `nbt:"axis"` +} + +func (CrimsonHyphae) ID() string { return "minecraft:crimson_hyphae" } + +type StrippedCrimsonHyphae struct { + Axis string `nbt:"axis"` +} + +func (StrippedCrimsonHyphae) ID() string { return "minecraft:stripped_crimson_hyphae" } + +type CrimsonNylium struct{} + +func (CrimsonNylium) ID() string { return "minecraft:crimson_nylium" } + +type CrimsonFungus struct{} + +func (CrimsonFungus) ID() string { return "minecraft:crimson_fungus" } + +type Shroomlight struct{} + +func (Shroomlight) ID() string { return "minecraft:shroomlight" } + +type WeepingVines struct { + Age Integer `nbt:"age"` +} + +func (WeepingVines) ID() string { return "minecraft:weeping_vines" } + +type WeepingVinesPlant struct{} + +func (WeepingVinesPlant) ID() string { return "minecraft:weeping_vines_plant" } + +type TwistingVines struct { + Age Integer `nbt:"age"` +} + +func (TwistingVines) ID() string { return "minecraft:twisting_vines" } + +type TwistingVinesPlant struct{} + +func (TwistingVinesPlant) ID() string { return "minecraft:twisting_vines_plant" } + +type CrimsonRoots struct{} + +func (CrimsonRoots) ID() string { return "minecraft:crimson_roots" } + +type CrimsonPlanks struct{} + +func (CrimsonPlanks) ID() string { return "minecraft:crimson_planks" } + +type WarpedPlanks struct{} + +func (WarpedPlanks) ID() string { return "minecraft:warped_planks" } + +type CrimsonSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CrimsonSlab) ID() string { return "minecraft:crimson_slab" } + +type WarpedSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WarpedSlab) ID() string { return "minecraft:warped_slab" } + +type CrimsonPressurePlate struct { + Powered Boolean `nbt:"powered"` +} + +func (CrimsonPressurePlate) ID() string { return "minecraft:crimson_pressure_plate" } + +type WarpedPressurePlate struct { + Powered Boolean `nbt:"powered"` +} + +func (WarpedPressurePlate) ID() string { return "minecraft:warped_pressure_plate" } + +type CrimsonFence struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (CrimsonFence) ID() string { return "minecraft:crimson_fence" } + +type WarpedFence struct { + East Boolean `nbt:"east"` + North Boolean `nbt:"north"` + South Boolean `nbt:"south"` + Waterlogged Boolean `nbt:"waterlogged"` + West Boolean `nbt:"west"` +} + +func (WarpedFence) ID() string { return "minecraft:warped_fence" } + +type CrimsonTrapdoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CrimsonTrapdoor) ID() string { return "minecraft:crimson_trapdoor" } + +type WarpedTrapdoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WarpedTrapdoor) ID() string { return "minecraft:warped_trapdoor" } + +type CrimsonFenceGate struct { + Facing Direction `nbt:"facing"` + In_wall Boolean `nbt:"in_wall"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (CrimsonFenceGate) ID() string { return "minecraft:crimson_fence_gate" } + +type WarpedFenceGate struct { + Facing Direction `nbt:"facing"` + In_wall Boolean `nbt:"in_wall"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (WarpedFenceGate) ID() string { return "minecraft:warped_fence_gate" } + +type CrimsonStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CrimsonStairs) ID() string { return "minecraft:crimson_stairs" } + +type WarpedStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WarpedStairs) ID() string { return "minecraft:warped_stairs" } + +type CrimsonButton struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (CrimsonButton) ID() string { return "minecraft:crimson_button" } + +type WarpedButton struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (WarpedButton) ID() string { return "minecraft:warped_button" } + +type CrimsonDoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Hinge string `nbt:"hinge"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (CrimsonDoor) ID() string { return "minecraft:crimson_door" } + +type WarpedDoor struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Hinge string `nbt:"hinge"` + Open Boolean `nbt:"open"` + Powered Boolean `nbt:"powered"` +} + +func (WarpedDoor) ID() string { return "minecraft:warped_door" } + +type CrimsonSign struct { + Rotation Integer `nbt:"rotation"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CrimsonSign) ID() string { return "minecraft:crimson_sign" } + +type WarpedSign struct { + Rotation Integer `nbt:"rotation"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WarpedSign) ID() string { return "minecraft:warped_sign" } + +type CrimsonWallSign struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CrimsonWallSign) ID() string { return "minecraft:crimson_wall_sign" } + +type WarpedWallSign struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WarpedWallSign) ID() string { return "minecraft:warped_wall_sign" } + +type StructureBlock struct { + Mode string `nbt:"mode"` +} + +func (StructureBlock) ID() string { return "minecraft:structure_block" } + +type Jigsaw struct { + Orientation string `nbt:"orientation"` +} + +func (Jigsaw) ID() string { return "minecraft:jigsaw" } + +type Composter struct { + Level Integer `nbt:"level"` +} + +func (Composter) ID() string { return "minecraft:composter" } + +type Target struct { + Power Integer `nbt:"power"` +} + +func (Target) ID() string { return "minecraft:target" } + +type BeeNest struct { + Facing Direction `nbt:"facing"` + Honey_level Integer `nbt:"honey_level"` +} + +func (BeeNest) ID() string { return "minecraft:bee_nest" } + +type Beehive struct { + Facing Direction `nbt:"facing"` + Honey_level Integer `nbt:"honey_level"` +} + +func (Beehive) ID() string { return "minecraft:beehive" } + +type HoneyBlock struct{} + +func (HoneyBlock) ID() string { return "minecraft:honey_block" } + +type HoneycombBlock struct{} + +func (HoneycombBlock) ID() string { return "minecraft:honeycomb_block" } + +type NetheriteBlock struct{} + +func (NetheriteBlock) ID() string { return "minecraft:netherite_block" } + +type AncientDebris struct{} + +func (AncientDebris) ID() string { return "minecraft:ancient_debris" } + +type CryingObsidian struct{} + +func (CryingObsidian) ID() string { return "minecraft:crying_obsidian" } + +type RespawnAnchor struct { + Charges Integer `nbt:"charges"` +} + +func (RespawnAnchor) ID() string { return "minecraft:respawn_anchor" } + +type PottedCrimsonFungus struct{} + +func (PottedCrimsonFungus) ID() string { return "minecraft:potted_crimson_fungus" } + +type PottedWarpedFungus struct{} + +func (PottedWarpedFungus) ID() string { return "minecraft:potted_warped_fungus" } + +type PottedCrimsonRoots struct{} + +func (PottedCrimsonRoots) ID() string { return "minecraft:potted_crimson_roots" } + +type PottedWarpedRoots struct{} + +func (PottedWarpedRoots) ID() string { return "minecraft:potted_warped_roots" } + +type Lodestone struct{} + +func (Lodestone) ID() string { return "minecraft:lodestone" } + +type Blackstone struct{} + +func (Blackstone) ID() string { return "minecraft:blackstone" } + +type BlackstoneStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BlackstoneStairs) ID() string { return "minecraft:blackstone_stairs" } + +type BlackstoneWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (BlackstoneWall) ID() string { return "minecraft:blackstone_wall" } + +type BlackstoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BlackstoneSlab) ID() string { return "minecraft:blackstone_slab" } + +type PolishedBlackstone struct{} + +func (PolishedBlackstone) ID() string { return "minecraft:polished_blackstone" } + +type PolishedBlackstoneBricks struct{} + +func (PolishedBlackstoneBricks) ID() string { return "minecraft:polished_blackstone_bricks" } + +type CrackedPolishedBlackstoneBricks struct{} + +func (CrackedPolishedBlackstoneBricks) ID() string { + return "minecraft:cracked_polished_blackstone_bricks" +} + +type ChiseledPolishedBlackstone struct{} + +func (ChiseledPolishedBlackstone) ID() string { return "minecraft:chiseled_polished_blackstone" } + +type PolishedBlackstoneBrickSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedBlackstoneBrickSlab) ID() string { return "minecraft:polished_blackstone_brick_slab" } + +type PolishedBlackstoneBrickStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedBlackstoneBrickStairs) ID() string { return "minecraft:polished_blackstone_brick_stairs" } + +type PolishedBlackstoneBrickWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (PolishedBlackstoneBrickWall) ID() string { return "minecraft:polished_blackstone_brick_wall" } + +type GildedBlackstone struct{} + +func (GildedBlackstone) ID() string { return "minecraft:gilded_blackstone" } + +type PolishedBlackstoneStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedBlackstoneStairs) ID() string { return "minecraft:polished_blackstone_stairs" } + +type PolishedBlackstoneSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedBlackstoneSlab) ID() string { return "minecraft:polished_blackstone_slab" } + +type PolishedBlackstonePressurePlate struct { + Powered Boolean `nbt:"powered"` +} + +func (PolishedBlackstonePressurePlate) ID() string { + return "minecraft:polished_blackstone_pressure_plate" +} + +type PolishedBlackstoneButton struct { + Face string `nbt:"face"` + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` +} + +func (PolishedBlackstoneButton) ID() string { return "minecraft:polished_blackstone_button" } + +type PolishedBlackstoneWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (PolishedBlackstoneWall) ID() string { return "minecraft:polished_blackstone_wall" } + +type ChiseledNetherBricks struct{} + +func (ChiseledNetherBricks) ID() string { return "minecraft:chiseled_nether_bricks" } + +type CrackedNetherBricks struct{} + +func (CrackedNetherBricks) ID() string { return "minecraft:cracked_nether_bricks" } + +type QuartzBricks struct{} + +func (QuartzBricks) ID() string { return "minecraft:quartz_bricks" } + +type Candle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (Candle) ID() string { return "minecraft:candle" } + +type WhiteCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WhiteCandle) ID() string { return "minecraft:white_candle" } + +type OrangeCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (OrangeCandle) ID() string { return "minecraft:orange_candle" } + +type MagentaCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (MagentaCandle) ID() string { return "minecraft:magenta_candle" } + +type LightBlueCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (LightBlueCandle) ID() string { return "minecraft:light_blue_candle" } + +type YellowCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (YellowCandle) ID() string { return "minecraft:yellow_candle" } + +type LimeCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (LimeCandle) ID() string { return "minecraft:lime_candle" } + +type PinkCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PinkCandle) ID() string { return "minecraft:pink_candle" } + +type GrayCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (GrayCandle) ID() string { return "minecraft:gray_candle" } + +type LightGrayCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (LightGrayCandle) ID() string { return "minecraft:light_gray_candle" } + +type CyanCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CyanCandle) ID() string { return "minecraft:cyan_candle" } + +type PurpleCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PurpleCandle) ID() string { return "minecraft:purple_candle" } + +type BlueCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BlueCandle) ID() string { return "minecraft:blue_candle" } + +type BrownCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BrownCandle) ID() string { return "minecraft:brown_candle" } + +type GreenCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (GreenCandle) ID() string { return "minecraft:green_candle" } + +type RedCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (RedCandle) ID() string { return "minecraft:red_candle" } + +type BlackCandle struct { + Candles Integer `nbt:"candles"` + Lit Boolean `nbt:"lit"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BlackCandle) ID() string { return "minecraft:black_candle" } + +type CandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (CandleCake) ID() string { return "minecraft:candle_cake" } + +type WhiteCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (WhiteCandleCake) ID() string { return "minecraft:white_candle_cake" } + +type OrangeCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (OrangeCandleCake) ID() string { return "minecraft:orange_candle_cake" } + +type MagentaCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (MagentaCandleCake) ID() string { return "minecraft:magenta_candle_cake" } + +type LightBlueCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (LightBlueCandleCake) ID() string { return "minecraft:light_blue_candle_cake" } + +type YellowCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (YellowCandleCake) ID() string { return "minecraft:yellow_candle_cake" } + +type LimeCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (LimeCandleCake) ID() string { return "minecraft:lime_candle_cake" } + +type PinkCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (PinkCandleCake) ID() string { return "minecraft:pink_candle_cake" } + +type GrayCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (GrayCandleCake) ID() string { return "minecraft:gray_candle_cake" } + +type LightGrayCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (LightGrayCandleCake) ID() string { return "minecraft:light_gray_candle_cake" } + +type CyanCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (CyanCandleCake) ID() string { return "minecraft:cyan_candle_cake" } + +type PurpleCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (PurpleCandleCake) ID() string { return "minecraft:purple_candle_cake" } + +type BlueCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (BlueCandleCake) ID() string { return "minecraft:blue_candle_cake" } + +type BrownCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (BrownCandleCake) ID() string { return "minecraft:brown_candle_cake" } + +type GreenCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (GreenCandleCake) ID() string { return "minecraft:green_candle_cake" } + +type RedCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (RedCandleCake) ID() string { return "minecraft:red_candle_cake" } + +type BlackCandleCake struct { + Lit Boolean `nbt:"lit"` +} + +func (BlackCandleCake) ID() string { return "minecraft:black_candle_cake" } + +type AmethystBlock struct{} + +func (AmethystBlock) ID() string { return "minecraft:amethyst_block" } + +type BuddingAmethyst struct{} + +func (BuddingAmethyst) ID() string { return "minecraft:budding_amethyst" } + +type AmethystCluster struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (AmethystCluster) ID() string { return "minecraft:amethyst_cluster" } + +type LargeAmethystBud struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (LargeAmethystBud) ID() string { return "minecraft:large_amethyst_bud" } + +type MediumAmethystBud struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (MediumAmethystBud) ID() string { return "minecraft:medium_amethyst_bud" } + +type SmallAmethystBud struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SmallAmethystBud) ID() string { return "minecraft:small_amethyst_bud" } + +type Tuff struct{} + +func (Tuff) ID() string { return "minecraft:tuff" } + +type Calcite struct{} + +func (Calcite) ID() string { return "minecraft:calcite" } + +type TintedGlass struct{} + +func (TintedGlass) ID() string { return "minecraft:tinted_glass" } + +type PowderSnow struct{} + +func (PowderSnow) ID() string { return "minecraft:powder_snow" } + +type SculkSensor struct { + Power Integer `nbt:"power"` + Sculk_sensor_phase string `nbt:"sculk_sensor_phase"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SculkSensor) ID() string { return "minecraft:sculk_sensor" } + +type OxidizedCopper struct{} + +func (OxidizedCopper) ID() string { return "minecraft:oxidized_copper" } + +type WeatheredCopper struct{} + +func (WeatheredCopper) ID() string { return "minecraft:weathered_copper" } + +type ExposedCopper struct{} + +func (ExposedCopper) ID() string { return "minecraft:exposed_copper" } + +type CopperBlock struct{} + +func (CopperBlock) ID() string { return "minecraft:copper_block" } + +type CopperOre struct{} + +func (CopperOre) ID() string { return "minecraft:copper_ore" } + +type DeepslateCopperOre struct{} + +func (DeepslateCopperOre) ID() string { return "minecraft:deepslate_copper_ore" } + +type OxidizedCutCopper struct{} + +func (OxidizedCutCopper) ID() string { return "minecraft:oxidized_cut_copper" } + +type WeatheredCutCopper struct{} + +func (WeatheredCutCopper) ID() string { return "minecraft:weathered_cut_copper" } + +type ExposedCutCopper struct{} + +func (ExposedCutCopper) ID() string { return "minecraft:exposed_cut_copper" } + +type CutCopper struct{} + +func (CutCopper) ID() string { return "minecraft:cut_copper" } + +type OxidizedCutCopperStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (OxidizedCutCopperStairs) ID() string { return "minecraft:oxidized_cut_copper_stairs" } + +type WeatheredCutCopperStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WeatheredCutCopperStairs) ID() string { return "minecraft:weathered_cut_copper_stairs" } + +type ExposedCutCopperStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (ExposedCutCopperStairs) ID() string { return "minecraft:exposed_cut_copper_stairs" } + +type CutCopperStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CutCopperStairs) ID() string { return "minecraft:cut_copper_stairs" } + +type OxidizedCutCopperSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (OxidizedCutCopperSlab) ID() string { return "minecraft:oxidized_cut_copper_slab" } + +type WeatheredCutCopperSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WeatheredCutCopperSlab) ID() string { return "minecraft:weathered_cut_copper_slab" } + +type ExposedCutCopperSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (ExposedCutCopperSlab) ID() string { return "minecraft:exposed_cut_copper_slab" } + +type CutCopperSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CutCopperSlab) ID() string { return "minecraft:cut_copper_slab" } + +type WaxedCopperBlock struct{} + +func (WaxedCopperBlock) ID() string { return "minecraft:waxed_copper_block" } + +type WaxedWeatheredCopper struct{} + +func (WaxedWeatheredCopper) ID() string { return "minecraft:waxed_weathered_copper" } + +type WaxedExposedCopper struct{} + +func (WaxedExposedCopper) ID() string { return "minecraft:waxed_exposed_copper" } + +type WaxedOxidizedCopper struct{} + +func (WaxedOxidizedCopper) ID() string { return "minecraft:waxed_oxidized_copper" } + +type WaxedOxidizedCutCopper struct{} + +func (WaxedOxidizedCutCopper) ID() string { return "minecraft:waxed_oxidized_cut_copper" } + +type WaxedWeatheredCutCopper struct{} + +func (WaxedWeatheredCutCopper) ID() string { return "minecraft:waxed_weathered_cut_copper" } + +type WaxedExposedCutCopper struct{} + +func (WaxedExposedCutCopper) ID() string { return "minecraft:waxed_exposed_cut_copper" } + +type WaxedCutCopper struct{} + +func (WaxedCutCopper) ID() string { return "minecraft:waxed_cut_copper" } + +type WaxedOxidizedCutCopperStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WaxedOxidizedCutCopperStairs) ID() string { return "minecraft:waxed_oxidized_cut_copper_stairs" } + +type WaxedWeatheredCutCopperStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WaxedWeatheredCutCopperStairs) ID() string { + return "minecraft:waxed_weathered_cut_copper_stairs" +} + +type WaxedExposedCutCopperStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WaxedExposedCutCopperStairs) ID() string { return "minecraft:waxed_exposed_cut_copper_stairs" } + +type WaxedCutCopperStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WaxedCutCopperStairs) ID() string { return "minecraft:waxed_cut_copper_stairs" } + +type WaxedOxidizedCutCopperSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WaxedOxidizedCutCopperSlab) ID() string { return "minecraft:waxed_oxidized_cut_copper_slab" } + +type WaxedWeatheredCutCopperSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WaxedWeatheredCutCopperSlab) ID() string { return "minecraft:waxed_weathered_cut_copper_slab" } + +type WaxedExposedCutCopperSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WaxedExposedCutCopperSlab) ID() string { return "minecraft:waxed_exposed_cut_copper_slab" } + +type WaxedCutCopperSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (WaxedCutCopperSlab) ID() string { return "minecraft:waxed_cut_copper_slab" } + +type LightningRod struct { + Facing Direction `nbt:"facing"` + Powered Boolean `nbt:"powered"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (LightningRod) ID() string { return "minecraft:lightning_rod" } + +type PointedDripstone struct { + Thickness string `nbt:"thickness"` + Vertical_direction Direction `nbt:"vertical_direction"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PointedDripstone) ID() string { return "minecraft:pointed_dripstone" } + +type DripstoneBlock struct{} + +func (DripstoneBlock) ID() string { return "minecraft:dripstone_block" } + +type CaveVines struct { + Age Integer `nbt:"age"` + Berries Boolean `nbt:"berries"` +} + +func (CaveVines) ID() string { return "minecraft:cave_vines" } + +type CaveVinesPlant struct { + Berries Boolean `nbt:"berries"` +} + +func (CaveVinesPlant) ID() string { return "minecraft:cave_vines_plant" } + +type SporeBlossom struct{} + +func (SporeBlossom) ID() string { return "minecraft:spore_blossom" } + +type Azalea struct{} + +func (Azalea) ID() string { return "minecraft:azalea" } + +type FloweringAzalea struct{} + +func (FloweringAzalea) ID() string { return "minecraft:flowering_azalea" } + +type MossCarpet struct{} + +func (MossCarpet) ID() string { return "minecraft:moss_carpet" } + +type MossBlock struct{} + +func (MossBlock) ID() string { return "minecraft:moss_block" } + +type BigDripleaf struct { + Facing Direction `nbt:"facing"` + Tilt string `nbt:"tilt"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BigDripleaf) ID() string { return "minecraft:big_dripleaf" } + +type BigDripleafStem struct { + Facing Direction `nbt:"facing"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (BigDripleafStem) ID() string { return "minecraft:big_dripleaf_stem" } + +type SmallDripleaf struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (SmallDripleaf) ID() string { return "minecraft:small_dripleaf" } + +type HangingRoots struct { + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (HangingRoots) ID() string { return "minecraft:hanging_roots" } + +type RootedDirt struct{} + +func (RootedDirt) ID() string { return "minecraft:rooted_dirt" } + +type Deepslate struct { + Axis string `nbt:"axis"` +} + +func (Deepslate) ID() string { return "minecraft:deepslate" } + +type CobbledDeepslate struct{} + +func (CobbledDeepslate) ID() string { return "minecraft:cobbled_deepslate" } + +type CobbledDeepslateStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CobbledDeepslateStairs) ID() string { return "minecraft:cobbled_deepslate_stairs" } + +type CobbledDeepslateSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (CobbledDeepslateSlab) ID() string { return "minecraft:cobbled_deepslate_slab" } + +type CobbledDeepslateWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (CobbledDeepslateWall) ID() string { return "minecraft:cobbled_deepslate_wall" } + +type PolishedDeepslate struct{} + +func (PolishedDeepslate) ID() string { return "minecraft:polished_deepslate" } + +type PolishedDeepslateStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedDeepslateStairs) ID() string { return "minecraft:polished_deepslate_stairs" } + +type PolishedDeepslateSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (PolishedDeepslateSlab) ID() string { return "minecraft:polished_deepslate_slab" } + +type PolishedDeepslateWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (PolishedDeepslateWall) ID() string { return "minecraft:polished_deepslate_wall" } + +type DeepslateTiles struct{} + +func (DeepslateTiles) ID() string { return "minecraft:deepslate_tiles" } + +type DeepslateTileStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeepslateTileStairs) ID() string { return "minecraft:deepslate_tile_stairs" } + +type DeepslateTileSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeepslateTileSlab) ID() string { return "minecraft:deepslate_tile_slab" } + +type DeepslateTileWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (DeepslateTileWall) ID() string { return "minecraft:deepslate_tile_wall" } + +type DeepslateBricks struct{} + +func (DeepslateBricks) ID() string { return "minecraft:deepslate_bricks" } + +type DeepslateBrickStairs struct { + Facing Direction `nbt:"facing"` + Half string `nbt:"half"` + Shape string `nbt:"shape"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeepslateBrickStairs) ID() string { return "minecraft:deepslate_brick_stairs" } + +type DeepslateBrickSlab struct { + Type string `nbt:"type"` + Waterlogged Boolean `nbt:"waterlogged"` +} + +func (DeepslateBrickSlab) ID() string { return "minecraft:deepslate_brick_slab" } + +type DeepslateBrickWall struct { + East string `nbt:"east"` + North string `nbt:"north"` + South string `nbt:"south"` + Up Boolean `nbt:"up"` + Waterlogged Boolean `nbt:"waterlogged"` + West string `nbt:"west"` +} + +func (DeepslateBrickWall) ID() string { return "minecraft:deepslate_brick_wall" } + +type ChiseledDeepslate struct{} + +func (ChiseledDeepslate) ID() string { return "minecraft:chiseled_deepslate" } + +type CrackedDeepslateBricks struct{} + +func (CrackedDeepslateBricks) ID() string { return "minecraft:cracked_deepslate_bricks" } + +type CrackedDeepslateTiles struct{} + +func (CrackedDeepslateTiles) ID() string { return "minecraft:cracked_deepslate_tiles" } + +type InfestedDeepslate struct { + Axis string `nbt:"axis"` +} + +func (InfestedDeepslate) ID() string { return "minecraft:infested_deepslate" } + +type SmoothBasalt struct{} + +func (SmoothBasalt) ID() string { return "minecraft:smooth_basalt" } + +type RawIronBlock struct{} + +func (RawIronBlock) ID() string { return "minecraft:raw_iron_block" } + +type RawCopperBlock struct{} + +func (RawCopperBlock) ID() string { return "minecraft:raw_copper_block" } + +type RawGoldBlock struct{} + +func (RawGoldBlock) ID() string { return "minecraft:raw_gold_block" } + +type PottedAzaleaBush struct{} + +func (PottedAzaleaBush) ID() string { return "minecraft:potted_azalea_bush" } + +type PottedFloweringAzaleaBush struct{} + +func (PottedFloweringAzaleaBush) ID() string { return "minecraft:potted_flowering_azalea_bush" } + +var fromID = map[string]Block{ + "minecraft:air": Air{}, + "minecraft:stone": Stone{}, + "minecraft:granite": Granite{}, + "minecraft:polished_granite": PolishedGranite{}, + "minecraft:diorite": Diorite{}, + "minecraft:polished_diorite": PolishedDiorite{}, + "minecraft:andesite": Andesite{}, + "minecraft:polished_andesite": PolishedAndesite{}, + "minecraft:grass_block": GrassBlock{}, + "minecraft:dirt": Dirt{}, + "minecraft:coarse_dirt": CoarseDirt{}, + "minecraft:podzol": Podzol{}, + "minecraft:cobblestone": Cobblestone{}, + "minecraft:oak_planks": OakPlanks{}, + "minecraft:spruce_planks": SprucePlanks{}, + "minecraft:birch_planks": BirchPlanks{}, + "minecraft:jungle_planks": JunglePlanks{}, + "minecraft:acacia_planks": AcaciaPlanks{}, + "minecraft:dark_oak_planks": DarkOakPlanks{}, + "minecraft:oak_sapling": OakSapling{}, + "minecraft:spruce_sapling": SpruceSapling{}, + "minecraft:birch_sapling": BirchSapling{}, + "minecraft:jungle_sapling": JungleSapling{}, + "minecraft:acacia_sapling": AcaciaSapling{}, + "minecraft:dark_oak_sapling": DarkOakSapling{}, + "minecraft:bedrock": Bedrock{}, + "minecraft:water": Water{}, + "minecraft:lava": Lava{}, + "minecraft:sand": Sand{}, + "minecraft:red_sand": RedSand{}, + "minecraft:gravel": Gravel{}, + "minecraft:gold_ore": GoldOre{}, + "minecraft:deepslate_gold_ore": DeepslateGoldOre{}, + "minecraft:iron_ore": IronOre{}, + "minecraft:deepslate_iron_ore": DeepslateIronOre{}, + "minecraft:coal_ore": CoalOre{}, + "minecraft:deepslate_coal_ore": DeepslateCoalOre{}, + "minecraft:nether_gold_ore": NetherGoldOre{}, + "minecraft:oak_log": OakLog{}, + "minecraft:spruce_log": SpruceLog{}, + "minecraft:birch_log": BirchLog{}, + "minecraft:jungle_log": JungleLog{}, + "minecraft:acacia_log": AcaciaLog{}, + "minecraft:dark_oak_log": DarkOakLog{}, + "minecraft:stripped_spruce_log": StrippedSpruceLog{}, + "minecraft:stripped_birch_log": StrippedBirchLog{}, + "minecraft:stripped_jungle_log": StrippedJungleLog{}, + "minecraft:stripped_acacia_log": StrippedAcaciaLog{}, + "minecraft:stripped_dark_oak_log": StrippedDarkOakLog{}, + "minecraft:stripped_oak_log": StrippedOakLog{}, + "minecraft:oak_wood": OakWood{}, + "minecraft:spruce_wood": SpruceWood{}, + "minecraft:birch_wood": BirchWood{}, + "minecraft:jungle_wood": JungleWood{}, + "minecraft:acacia_wood": AcaciaWood{}, + "minecraft:dark_oak_wood": DarkOakWood{}, + "minecraft:stripped_oak_wood": StrippedOakWood{}, + "minecraft:stripped_spruce_wood": StrippedSpruceWood{}, + "minecraft:stripped_birch_wood": StrippedBirchWood{}, + "minecraft:stripped_jungle_wood": StrippedJungleWood{}, + "minecraft:stripped_acacia_wood": StrippedAcaciaWood{}, + "minecraft:stripped_dark_oak_wood": StrippedDarkOakWood{}, + "minecraft:oak_leaves": OakLeaves{}, + "minecraft:spruce_leaves": SpruceLeaves{}, + "minecraft:birch_leaves": BirchLeaves{}, + "minecraft:jungle_leaves": JungleLeaves{}, + "minecraft:acacia_leaves": AcaciaLeaves{}, + "minecraft:dark_oak_leaves": DarkOakLeaves{}, + "minecraft:azalea_leaves": AzaleaLeaves{}, + "minecraft:flowering_azalea_leaves": FloweringAzaleaLeaves{}, + "minecraft:sponge": Sponge{}, + "minecraft:wet_sponge": WetSponge{}, + "minecraft:glass": Glass{}, + "minecraft:lapis_ore": LapisOre{}, + "minecraft:deepslate_lapis_ore": DeepslateLapisOre{}, + "minecraft:lapis_block": LapisBlock{}, + "minecraft:dispenser": Dispenser{}, + "minecraft:sandstone": Sandstone{}, + "minecraft:chiseled_sandstone": ChiseledSandstone{}, + "minecraft:cut_sandstone": CutSandstone{}, + "minecraft:note_block": NoteBlock{}, + "minecraft:white_bed": WhiteBed{}, + "minecraft:orange_bed": OrangeBed{}, + "minecraft:magenta_bed": MagentaBed{}, + "minecraft:light_blue_bed": LightBlueBed{}, + "minecraft:yellow_bed": YellowBed{}, + "minecraft:lime_bed": LimeBed{}, + "minecraft:pink_bed": PinkBed{}, + "minecraft:gray_bed": GrayBed{}, + "minecraft:light_gray_bed": LightGrayBed{}, + "minecraft:cyan_bed": CyanBed{}, + "minecraft:purple_bed": PurpleBed{}, + "minecraft:blue_bed": BlueBed{}, + "minecraft:brown_bed": BrownBed{}, + "minecraft:green_bed": GreenBed{}, + "minecraft:red_bed": RedBed{}, + "minecraft:black_bed": BlackBed{}, + "minecraft:powered_rail": PoweredRail{}, + "minecraft:detector_rail": DetectorRail{}, + "minecraft:sticky_piston": StickyPiston{}, + "minecraft:cobweb": Cobweb{}, + "minecraft:grass": Grass{}, + "minecraft:fern": Fern{}, + "minecraft:dead_bush": DeadBush{}, + "minecraft:seagrass": Seagrass{}, + "minecraft:tall_seagrass": TallSeagrass{}, + "minecraft:piston": Piston{}, + "minecraft:piston_head": PistonHead{}, + "minecraft:white_wool": WhiteWool{}, + "minecraft:orange_wool": OrangeWool{}, + "minecraft:magenta_wool": MagentaWool{}, + "minecraft:light_blue_wool": LightBlueWool{}, + "minecraft:yellow_wool": YellowWool{}, + "minecraft:lime_wool": LimeWool{}, + "minecraft:pink_wool": PinkWool{}, + "minecraft:gray_wool": GrayWool{}, + "minecraft:light_gray_wool": LightGrayWool{}, + "minecraft:cyan_wool": CyanWool{}, + "minecraft:purple_wool": PurpleWool{}, + "minecraft:blue_wool": BlueWool{}, + "minecraft:brown_wool": BrownWool{}, + "minecraft:green_wool": GreenWool{}, + "minecraft:red_wool": RedWool{}, + "minecraft:black_wool": BlackWool{}, + "minecraft:moving_piston": MovingPiston{}, + "minecraft:dandelion": Dandelion{}, + "minecraft:poppy": Poppy{}, + "minecraft:blue_orchid": BlueOrchid{}, + "minecraft:allium": Allium{}, + "minecraft:azure_bluet": AzureBluet{}, + "minecraft:red_tulip": RedTulip{}, + "minecraft:orange_tulip": OrangeTulip{}, + "minecraft:white_tulip": WhiteTulip{}, + "minecraft:pink_tulip": PinkTulip{}, + "minecraft:oxeye_daisy": OxeyeDaisy{}, + "minecraft:cornflower": Cornflower{}, + "minecraft:wither_rose": WitherRose{}, + "minecraft:lily_of_the_valley": LilyOfTheValley{}, + "minecraft:brown_mushroom": BrownMushroom{}, + "minecraft:red_mushroom": RedMushroom{}, + "minecraft:gold_block": GoldBlock{}, + "minecraft:iron_block": IronBlock{}, + "minecraft:bricks": Bricks{}, + "minecraft:tnt": Tnt{}, + "minecraft:bookshelf": Bookshelf{}, + "minecraft:mossy_cobblestone": MossyCobblestone{}, + "minecraft:obsidian": Obsidian{}, + "minecraft:torch": Torch{}, + "minecraft:wall_torch": WallTorch{}, + "minecraft:fire": Fire{}, + "minecraft:soul_fire": SoulFire{}, + "minecraft:spawner": Spawner{}, + "minecraft:oak_stairs": OakStairs{}, + "minecraft:chest": Chest{}, + "minecraft:redstone_wire": RedstoneWire{}, + "minecraft:diamond_ore": DiamondOre{}, + "minecraft:deepslate_diamond_ore": DeepslateDiamondOre{}, + "minecraft:diamond_block": DiamondBlock{}, + "minecraft:crafting_table": CraftingTable{}, + "minecraft:wheat": Wheat{}, + "minecraft:farmland": Farmland{}, + "minecraft:furnace": Furnace{}, + "minecraft:oak_sign": OakSign{}, + "minecraft:spruce_sign": SpruceSign{}, + "minecraft:birch_sign": BirchSign{}, + "minecraft:acacia_sign": AcaciaSign{}, + "minecraft:jungle_sign": JungleSign{}, + "minecraft:dark_oak_sign": DarkOakSign{}, + "minecraft:oak_door": OakDoor{}, + "minecraft:ladder": Ladder{}, + "minecraft:rail": Rail{}, + "minecraft:cobblestone_stairs": CobblestoneStairs{}, + "minecraft:oak_wall_sign": OakWallSign{}, + "minecraft:spruce_wall_sign": SpruceWallSign{}, + "minecraft:birch_wall_sign": BirchWallSign{}, + "minecraft:acacia_wall_sign": AcaciaWallSign{}, + "minecraft:jungle_wall_sign": JungleWallSign{}, + "minecraft:dark_oak_wall_sign": DarkOakWallSign{}, + "minecraft:lever": Lever{}, + "minecraft:stone_pressure_plate": StonePressurePlate{}, + "minecraft:iron_door": IronDoor{}, + "minecraft:oak_pressure_plate": OakPressurePlate{}, + "minecraft:spruce_pressure_plate": SprucePressurePlate{}, + "minecraft:birch_pressure_plate": BirchPressurePlate{}, + "minecraft:jungle_pressure_plate": JunglePressurePlate{}, + "minecraft:acacia_pressure_plate": AcaciaPressurePlate{}, + "minecraft:dark_oak_pressure_plate": DarkOakPressurePlate{}, + "minecraft:redstone_ore": RedstoneOre{}, + "minecraft:deepslate_redstone_ore": DeepslateRedstoneOre{}, + "minecraft:redstone_torch": RedstoneTorch{}, + "minecraft:redstone_wall_torch": RedstoneWallTorch{}, + "minecraft:stone_button": StoneButton{}, + "minecraft:snow": Snow{}, + "minecraft:ice": Ice{}, + "minecraft:snow_block": SnowBlock{}, + "minecraft:cactus": Cactus{}, + "minecraft:clay": Clay{}, + "minecraft:sugar_cane": SugarCane{}, + "minecraft:jukebox": Jukebox{}, + "minecraft:oak_fence": OakFence{}, + "minecraft:pumpkin": Pumpkin{}, + "minecraft:netherrack": Netherrack{}, + "minecraft:soul_sand": SoulSand{}, + "minecraft:soul_soil": SoulSoil{}, + "minecraft:basalt": Basalt{}, + "minecraft:polished_basalt": PolishedBasalt{}, + "minecraft:soul_torch": SoulTorch{}, + "minecraft:soul_wall_torch": SoulWallTorch{}, + "minecraft:glowstone": Glowstone{}, + "minecraft:nether_portal": NetherPortal{}, + "minecraft:carved_pumpkin": CarvedPumpkin{}, + "minecraft:jack_o_lantern": JackOLantern{}, + "minecraft:cake": Cake{}, + "minecraft:repeater": Repeater{}, + "minecraft:white_stained_glass": WhiteStainedGlass{}, + "minecraft:orange_stained_glass": OrangeStainedGlass{}, + "minecraft:magenta_stained_glass": MagentaStainedGlass{}, + "minecraft:light_blue_stained_glass": LightBlueStainedGlass{}, + "minecraft:yellow_stained_glass": YellowStainedGlass{}, + "minecraft:lime_stained_glass": LimeStainedGlass{}, + "minecraft:pink_stained_glass": PinkStainedGlass{}, + "minecraft:gray_stained_glass": GrayStainedGlass{}, + "minecraft:light_gray_stained_glass": LightGrayStainedGlass{}, + "minecraft:cyan_stained_glass": CyanStainedGlass{}, + "minecraft:purple_stained_glass": PurpleStainedGlass{}, + "minecraft:blue_stained_glass": BlueStainedGlass{}, + "minecraft:brown_stained_glass": BrownStainedGlass{}, + "minecraft:green_stained_glass": GreenStainedGlass{}, + "minecraft:red_stained_glass": RedStainedGlass{}, + "minecraft:black_stained_glass": BlackStainedGlass{}, + "minecraft:oak_trapdoor": OakTrapdoor{}, + "minecraft:spruce_trapdoor": SpruceTrapdoor{}, + "minecraft:birch_trapdoor": BirchTrapdoor{}, + "minecraft:jungle_trapdoor": JungleTrapdoor{}, + "minecraft:acacia_trapdoor": AcaciaTrapdoor{}, + "minecraft:dark_oak_trapdoor": DarkOakTrapdoor{}, + "minecraft:stone_bricks": StoneBricks{}, + "minecraft:mossy_stone_bricks": MossyStoneBricks{}, + "minecraft:cracked_stone_bricks": CrackedStoneBricks{}, + "minecraft:chiseled_stone_bricks": ChiseledStoneBricks{}, + "minecraft:infested_stone": InfestedStone{}, + "minecraft:infested_cobblestone": InfestedCobblestone{}, + "minecraft:infested_stone_bricks": InfestedStoneBricks{}, + "minecraft:infested_mossy_stone_bricks": InfestedMossyStoneBricks{}, + "minecraft:infested_cracked_stone_bricks": InfestedCrackedStoneBricks{}, + "minecraft:infested_chiseled_stone_bricks": InfestedChiseledStoneBricks{}, + "minecraft:brown_mushroom_block": BrownMushroomBlock{}, + "minecraft:red_mushroom_block": RedMushroomBlock{}, + "minecraft:mushroom_stem": MushroomStem{}, + "minecraft:iron_bars": IronBars{}, + "minecraft:chain": Chain{}, + "minecraft:glass_pane": GlassPane{}, + "minecraft:melon": Melon{}, + "minecraft:attached_pumpkin_stem": AttachedPumpkinStem{}, + "minecraft:attached_melon_stem": AttachedMelonStem{}, + "minecraft:pumpkin_stem": PumpkinStem{}, + "minecraft:melon_stem": MelonStem{}, + "minecraft:vine": Vine{}, + "minecraft:glow_lichen": GlowLichen{}, + "minecraft:oak_fence_gate": OakFenceGate{}, + "minecraft:brick_stairs": BrickStairs{}, + "minecraft:stone_brick_stairs": StoneBrickStairs{}, + "minecraft:mycelium": Mycelium{}, + "minecraft:lily_pad": LilyPad{}, + "minecraft:nether_bricks": NetherBricks{}, + "minecraft:nether_brick_fence": NetherBrickFence{}, + "minecraft:nether_brick_stairs": NetherBrickStairs{}, + "minecraft:nether_wart": NetherWart{}, + "minecraft:enchanting_table": EnchantingTable{}, + "minecraft:brewing_stand": BrewingStand{}, + "minecraft:cauldron": Cauldron{}, + "minecraft:water_cauldron": WaterCauldron{}, + "minecraft:lava_cauldron": LavaCauldron{}, + "minecraft:powder_snow_cauldron": PowderSnowCauldron{}, + "minecraft:end_portal": EndPortal{}, + "minecraft:end_portal_frame": EndPortalFrame{}, + "minecraft:end_stone": EndStone{}, + "minecraft:dragon_egg": DragonEgg{}, + "minecraft:redstone_lamp": RedstoneLamp{}, + "minecraft:cocoa": Cocoa{}, + "minecraft:sandstone_stairs": SandstoneStairs{}, + "minecraft:emerald_ore": EmeraldOre{}, + "minecraft:deepslate_emerald_ore": DeepslateEmeraldOre{}, + "minecraft:ender_chest": EnderChest{}, + "minecraft:tripwire_hook": TripwireHook{}, + "minecraft:tripwire": Tripwire{}, + "minecraft:emerald_block": EmeraldBlock{}, + "minecraft:spruce_stairs": SpruceStairs{}, + "minecraft:birch_stairs": BirchStairs{}, + "minecraft:jungle_stairs": JungleStairs{}, + "minecraft:command_block": CommandBlock{}, + "minecraft:beacon": Beacon{}, + "minecraft:cobblestone_wall": CobblestoneWall{}, + "minecraft:mossy_cobblestone_wall": MossyCobblestoneWall{}, + "minecraft:flower_pot": FlowerPot{}, + "minecraft:potted_oak_sapling": PottedOakSapling{}, + "minecraft:potted_spruce_sapling": PottedSpruceSapling{}, + "minecraft:potted_birch_sapling": PottedBirchSapling{}, + "minecraft:potted_jungle_sapling": PottedJungleSapling{}, + "minecraft:potted_acacia_sapling": PottedAcaciaSapling{}, + "minecraft:potted_dark_oak_sapling": PottedDarkOakSapling{}, + "minecraft:potted_fern": PottedFern{}, + "minecraft:potted_dandelion": PottedDandelion{}, + "minecraft:potted_poppy": PottedPoppy{}, + "minecraft:potted_blue_orchid": PottedBlueOrchid{}, + "minecraft:potted_allium": PottedAllium{}, + "minecraft:potted_azure_bluet": PottedAzureBluet{}, + "minecraft:potted_red_tulip": PottedRedTulip{}, + "minecraft:potted_orange_tulip": PottedOrangeTulip{}, + "minecraft:potted_white_tulip": PottedWhiteTulip{}, + "minecraft:potted_pink_tulip": PottedPinkTulip{}, + "minecraft:potted_oxeye_daisy": PottedOxeyeDaisy{}, + "minecraft:potted_cornflower": PottedCornflower{}, + "minecraft:potted_lily_of_the_valley": PottedLilyOfTheValley{}, + "minecraft:potted_wither_rose": PottedWitherRose{}, + "minecraft:potted_red_mushroom": PottedRedMushroom{}, + "minecraft:potted_brown_mushroom": PottedBrownMushroom{}, + "minecraft:potted_dead_bush": PottedDeadBush{}, + "minecraft:potted_cactus": PottedCactus{}, + "minecraft:carrots": Carrots{}, + "minecraft:potatoes": Potatoes{}, + "minecraft:oak_button": OakButton{}, + "minecraft:spruce_button": SpruceButton{}, + "minecraft:birch_button": BirchButton{}, + "minecraft:jungle_button": JungleButton{}, + "minecraft:acacia_button": AcaciaButton{}, + "minecraft:dark_oak_button": DarkOakButton{}, + "minecraft:skeleton_skull": SkeletonSkull{}, + "minecraft:skeleton_wall_skull": SkeletonWallSkull{}, + "minecraft:wither_skeleton_skull": WitherSkeletonSkull{}, + "minecraft:wither_skeleton_wall_skull": WitherSkeletonWallSkull{}, + "minecraft:zombie_head": ZombieHead{}, + "minecraft:zombie_wall_head": ZombieWallHead{}, + "minecraft:player_head": PlayerHead{}, + "minecraft:player_wall_head": PlayerWallHead{}, + "minecraft:creeper_head": CreeperHead{}, + "minecraft:creeper_wall_head": CreeperWallHead{}, + "minecraft:dragon_head": DragonHead{}, + "minecraft:dragon_wall_head": DragonWallHead{}, + "minecraft:anvil": Anvil{}, + "minecraft:chipped_anvil": ChippedAnvil{}, + "minecraft:damaged_anvil": DamagedAnvil{}, + "minecraft:trapped_chest": TrappedChest{}, + "minecraft:light_weighted_pressure_plate": LightWeightedPressurePlate{}, + "minecraft:heavy_weighted_pressure_plate": HeavyWeightedPressurePlate{}, + "minecraft:comparator": Comparator{}, + "minecraft:daylight_detector": DaylightDetector{}, + "minecraft:redstone_block": RedstoneBlock{}, + "minecraft:nether_quartz_ore": NetherQuartzOre{}, + "minecraft:hopper": Hopper{}, + "minecraft:quartz_block": QuartzBlock{}, + "minecraft:chiseled_quartz_block": ChiseledQuartzBlock{}, + "minecraft:quartz_pillar": QuartzPillar{}, + "minecraft:quartz_stairs": QuartzStairs{}, + "minecraft:activator_rail": ActivatorRail{}, + "minecraft:dropper": Dropper{}, + "minecraft:white_terracotta": WhiteTerracotta{}, + "minecraft:orange_terracotta": OrangeTerracotta{}, + "minecraft:magenta_terracotta": MagentaTerracotta{}, + "minecraft:light_blue_terracotta": LightBlueTerracotta{}, + "minecraft:yellow_terracotta": YellowTerracotta{}, + "minecraft:lime_terracotta": LimeTerracotta{}, + "minecraft:pink_terracotta": PinkTerracotta{}, + "minecraft:gray_terracotta": GrayTerracotta{}, + "minecraft:light_gray_terracotta": LightGrayTerracotta{}, + "minecraft:cyan_terracotta": CyanTerracotta{}, + "minecraft:purple_terracotta": PurpleTerracotta{}, + "minecraft:blue_terracotta": BlueTerracotta{}, + "minecraft:brown_terracotta": BrownTerracotta{}, + "minecraft:green_terracotta": GreenTerracotta{}, + "minecraft:red_terracotta": RedTerracotta{}, + "minecraft:black_terracotta": BlackTerracotta{}, + "minecraft:white_stained_glass_pane": WhiteStainedGlassPane{}, + "minecraft:orange_stained_glass_pane": OrangeStainedGlassPane{}, + "minecraft:magenta_stained_glass_pane": MagentaStainedGlassPane{}, + "minecraft:light_blue_stained_glass_pane": LightBlueStainedGlassPane{}, + "minecraft:yellow_stained_glass_pane": YellowStainedGlassPane{}, + "minecraft:lime_stained_glass_pane": LimeStainedGlassPane{}, + "minecraft:pink_stained_glass_pane": PinkStainedGlassPane{}, + "minecraft:gray_stained_glass_pane": GrayStainedGlassPane{}, + "minecraft:light_gray_stained_glass_pane": LightGrayStainedGlassPane{}, + "minecraft:cyan_stained_glass_pane": CyanStainedGlassPane{}, + "minecraft:purple_stained_glass_pane": PurpleStainedGlassPane{}, + "minecraft:blue_stained_glass_pane": BlueStainedGlassPane{}, + "minecraft:brown_stained_glass_pane": BrownStainedGlassPane{}, + "minecraft:green_stained_glass_pane": GreenStainedGlassPane{}, + "minecraft:red_stained_glass_pane": RedStainedGlassPane{}, + "minecraft:black_stained_glass_pane": BlackStainedGlassPane{}, + "minecraft:acacia_stairs": AcaciaStairs{}, + "minecraft:dark_oak_stairs": DarkOakStairs{}, + "minecraft:slime_block": SlimeBlock{}, + "minecraft:barrier": Barrier{}, + "minecraft:light": Light{}, + "minecraft:iron_trapdoor": IronTrapdoor{}, + "minecraft:prismarine": Prismarine{}, + "minecraft:prismarine_bricks": PrismarineBricks{}, + "minecraft:dark_prismarine": DarkPrismarine{}, + "minecraft:prismarine_stairs": PrismarineStairs{}, + "minecraft:prismarine_brick_stairs": PrismarineBrickStairs{}, + "minecraft:dark_prismarine_stairs": DarkPrismarineStairs{}, + "minecraft:prismarine_slab": PrismarineSlab{}, + "minecraft:prismarine_brick_slab": PrismarineBrickSlab{}, + "minecraft:dark_prismarine_slab": DarkPrismarineSlab{}, + "minecraft:sea_lantern": SeaLantern{}, + "minecraft:hay_block": HayBlock{}, + "minecraft:white_carpet": WhiteCarpet{}, + "minecraft:orange_carpet": OrangeCarpet{}, + "minecraft:magenta_carpet": MagentaCarpet{}, + "minecraft:light_blue_carpet": LightBlueCarpet{}, + "minecraft:yellow_carpet": YellowCarpet{}, + "minecraft:lime_carpet": LimeCarpet{}, + "minecraft:pink_carpet": PinkCarpet{}, + "minecraft:gray_carpet": GrayCarpet{}, + "minecraft:light_gray_carpet": LightGrayCarpet{}, + "minecraft:cyan_carpet": CyanCarpet{}, + "minecraft:purple_carpet": PurpleCarpet{}, + "minecraft:blue_carpet": BlueCarpet{}, + "minecraft:brown_carpet": BrownCarpet{}, + "minecraft:green_carpet": GreenCarpet{}, + "minecraft:red_carpet": RedCarpet{}, + "minecraft:black_carpet": BlackCarpet{}, + "minecraft:terracotta": Terracotta{}, + "minecraft:coal_block": CoalBlock{}, + "minecraft:packed_ice": PackedIce{}, + "minecraft:sunflower": Sunflower{}, + "minecraft:lilac": Lilac{}, + "minecraft:rose_bush": RoseBush{}, + "minecraft:peony": Peony{}, + "minecraft:tall_grass": TallGrass{}, + "minecraft:large_fern": LargeFern{}, + "minecraft:white_banner": WhiteBanner{}, + "minecraft:orange_banner": OrangeBanner{}, + "minecraft:magenta_banner": MagentaBanner{}, + "minecraft:light_blue_banner": LightBlueBanner{}, + "minecraft:yellow_banner": YellowBanner{}, + "minecraft:lime_banner": LimeBanner{}, + "minecraft:pink_banner": PinkBanner{}, + "minecraft:gray_banner": GrayBanner{}, + "minecraft:light_gray_banner": LightGrayBanner{}, + "minecraft:cyan_banner": CyanBanner{}, + "minecraft:purple_banner": PurpleBanner{}, + "minecraft:blue_banner": BlueBanner{}, + "minecraft:brown_banner": BrownBanner{}, + "minecraft:green_banner": GreenBanner{}, + "minecraft:red_banner": RedBanner{}, + "minecraft:black_banner": BlackBanner{}, + "minecraft:white_wall_banner": WhiteWallBanner{}, + "minecraft:orange_wall_banner": OrangeWallBanner{}, + "minecraft:magenta_wall_banner": MagentaWallBanner{}, + "minecraft:light_blue_wall_banner": LightBlueWallBanner{}, + "minecraft:yellow_wall_banner": YellowWallBanner{}, + "minecraft:lime_wall_banner": LimeWallBanner{}, + "minecraft:pink_wall_banner": PinkWallBanner{}, + "minecraft:gray_wall_banner": GrayWallBanner{}, + "minecraft:light_gray_wall_banner": LightGrayWallBanner{}, + "minecraft:cyan_wall_banner": CyanWallBanner{}, + "minecraft:purple_wall_banner": PurpleWallBanner{}, + "minecraft:blue_wall_banner": BlueWallBanner{}, + "minecraft:brown_wall_banner": BrownWallBanner{}, + "minecraft:green_wall_banner": GreenWallBanner{}, + "minecraft:red_wall_banner": RedWallBanner{}, + "minecraft:black_wall_banner": BlackWallBanner{}, + "minecraft:red_sandstone": RedSandstone{}, + "minecraft:chiseled_red_sandstone": ChiseledRedSandstone{}, + "minecraft:cut_red_sandstone": CutRedSandstone{}, + "minecraft:red_sandstone_stairs": RedSandstoneStairs{}, + "minecraft:oak_slab": OakSlab{}, + "minecraft:spruce_slab": SpruceSlab{}, + "minecraft:birch_slab": BirchSlab{}, + "minecraft:jungle_slab": JungleSlab{}, + "minecraft:acacia_slab": AcaciaSlab{}, + "minecraft:dark_oak_slab": DarkOakSlab{}, + "minecraft:stone_slab": StoneSlab{}, + "minecraft:smooth_stone_slab": SmoothStoneSlab{}, + "minecraft:sandstone_slab": SandstoneSlab{}, + "minecraft:cut_sandstone_slab": CutSandstoneSlab{}, + "minecraft:petrified_oak_slab": PetrifiedOakSlab{}, + "minecraft:cobblestone_slab": CobblestoneSlab{}, + "minecraft:brick_slab": BrickSlab{}, + "minecraft:stone_brick_slab": StoneBrickSlab{}, + "minecraft:nether_brick_slab": NetherBrickSlab{}, + "minecraft:quartz_slab": QuartzSlab{}, + "minecraft:red_sandstone_slab": RedSandstoneSlab{}, + "minecraft:cut_red_sandstone_slab": CutRedSandstoneSlab{}, + "minecraft:purpur_slab": PurpurSlab{}, + "minecraft:smooth_stone": SmoothStone{}, + "minecraft:smooth_sandstone": SmoothSandstone{}, + "minecraft:smooth_quartz": SmoothQuartz{}, + "minecraft:smooth_red_sandstone": SmoothRedSandstone{}, + "minecraft:spruce_fence_gate": SpruceFenceGate{}, + "minecraft:birch_fence_gate": BirchFenceGate{}, + "minecraft:jungle_fence_gate": JungleFenceGate{}, + "minecraft:acacia_fence_gate": AcaciaFenceGate{}, + "minecraft:dark_oak_fence_gate": DarkOakFenceGate{}, + "minecraft:spruce_fence": SpruceFence{}, + "minecraft:birch_fence": BirchFence{}, + "minecraft:jungle_fence": JungleFence{}, + "minecraft:acacia_fence": AcaciaFence{}, + "minecraft:dark_oak_fence": DarkOakFence{}, + "minecraft:spruce_door": SpruceDoor{}, + "minecraft:birch_door": BirchDoor{}, + "minecraft:jungle_door": JungleDoor{}, + "minecraft:acacia_door": AcaciaDoor{}, + "minecraft:dark_oak_door": DarkOakDoor{}, + "minecraft:end_rod": EndRod{}, + "minecraft:chorus_plant": ChorusPlant{}, + "minecraft:chorus_flower": ChorusFlower{}, + "minecraft:purpur_block": PurpurBlock{}, + "minecraft:purpur_pillar": PurpurPillar{}, + "minecraft:purpur_stairs": PurpurStairs{}, + "minecraft:end_stone_bricks": EndStoneBricks{}, + "minecraft:beetroots": Beetroots{}, + "minecraft:dirt_path": DirtPath{}, + "minecraft:end_gateway": EndGateway{}, + "minecraft:repeating_command_block": RepeatingCommandBlock{}, + "minecraft:chain_command_block": ChainCommandBlock{}, + "minecraft:frosted_ice": FrostedIce{}, + "minecraft:magma_block": MagmaBlock{}, + "minecraft:nether_wart_block": NetherWartBlock{}, + "minecraft:red_nether_bricks": RedNetherBricks{}, + "minecraft:bone_block": BoneBlock{}, + "minecraft:structure_void": StructureVoid{}, + "minecraft:observer": Observer{}, + "minecraft:shulker_box": ShulkerBox{}, + "minecraft:white_shulker_box": WhiteShulkerBox{}, + "minecraft:orange_shulker_box": OrangeShulkerBox{}, + "minecraft:magenta_shulker_box": MagentaShulkerBox{}, + "minecraft:light_blue_shulker_box": LightBlueShulkerBox{}, + "minecraft:yellow_shulker_box": YellowShulkerBox{}, + "minecraft:lime_shulker_box": LimeShulkerBox{}, + "minecraft:pink_shulker_box": PinkShulkerBox{}, + "minecraft:gray_shulker_box": GrayShulkerBox{}, + "minecraft:light_gray_shulker_box": LightGrayShulkerBox{}, + "minecraft:cyan_shulker_box": CyanShulkerBox{}, + "minecraft:purple_shulker_box": PurpleShulkerBox{}, + "minecraft:blue_shulker_box": BlueShulkerBox{}, + "minecraft:brown_shulker_box": BrownShulkerBox{}, + "minecraft:green_shulker_box": GreenShulkerBox{}, + "minecraft:red_shulker_box": RedShulkerBox{}, + "minecraft:black_shulker_box": BlackShulkerBox{}, + "minecraft:white_glazed_terracotta": WhiteGlazedTerracotta{}, + "minecraft:orange_glazed_terracotta": OrangeGlazedTerracotta{}, + "minecraft:magenta_glazed_terracotta": MagentaGlazedTerracotta{}, + "minecraft:light_blue_glazed_terracotta": LightBlueGlazedTerracotta{}, + "minecraft:yellow_glazed_terracotta": YellowGlazedTerracotta{}, + "minecraft:lime_glazed_terracotta": LimeGlazedTerracotta{}, + "minecraft:pink_glazed_terracotta": PinkGlazedTerracotta{}, + "minecraft:gray_glazed_terracotta": GrayGlazedTerracotta{}, + "minecraft:light_gray_glazed_terracotta": LightGrayGlazedTerracotta{}, + "minecraft:cyan_glazed_terracotta": CyanGlazedTerracotta{}, + "minecraft:purple_glazed_terracotta": PurpleGlazedTerracotta{}, + "minecraft:blue_glazed_terracotta": BlueGlazedTerracotta{}, + "minecraft:brown_glazed_terracotta": BrownGlazedTerracotta{}, + "minecraft:green_glazed_terracotta": GreenGlazedTerracotta{}, + "minecraft:red_glazed_terracotta": RedGlazedTerracotta{}, + "minecraft:black_glazed_terracotta": BlackGlazedTerracotta{}, + "minecraft:white_concrete": WhiteConcrete{}, + "minecraft:orange_concrete": OrangeConcrete{}, + "minecraft:magenta_concrete": MagentaConcrete{}, + "minecraft:light_blue_concrete": LightBlueConcrete{}, + "minecraft:yellow_concrete": YellowConcrete{}, + "minecraft:lime_concrete": LimeConcrete{}, + "minecraft:pink_concrete": PinkConcrete{}, + "minecraft:gray_concrete": GrayConcrete{}, + "minecraft:light_gray_concrete": LightGrayConcrete{}, + "minecraft:cyan_concrete": CyanConcrete{}, + "minecraft:purple_concrete": PurpleConcrete{}, + "minecraft:blue_concrete": BlueConcrete{}, + "minecraft:brown_concrete": BrownConcrete{}, + "minecraft:green_concrete": GreenConcrete{}, + "minecraft:red_concrete": RedConcrete{}, + "minecraft:black_concrete": BlackConcrete{}, + "minecraft:white_concrete_powder": WhiteConcretePowder{}, + "minecraft:orange_concrete_powder": OrangeConcretePowder{}, + "minecraft:magenta_concrete_powder": MagentaConcretePowder{}, + "minecraft:light_blue_concrete_powder": LightBlueConcretePowder{}, + "minecraft:yellow_concrete_powder": YellowConcretePowder{}, + "minecraft:lime_concrete_powder": LimeConcretePowder{}, + "minecraft:pink_concrete_powder": PinkConcretePowder{}, + "minecraft:gray_concrete_powder": GrayConcretePowder{}, + "minecraft:light_gray_concrete_powder": LightGrayConcretePowder{}, + "minecraft:cyan_concrete_powder": CyanConcretePowder{}, + "minecraft:purple_concrete_powder": PurpleConcretePowder{}, + "minecraft:blue_concrete_powder": BlueConcretePowder{}, + "minecraft:brown_concrete_powder": BrownConcretePowder{}, + "minecraft:green_concrete_powder": GreenConcretePowder{}, + "minecraft:red_concrete_powder": RedConcretePowder{}, + "minecraft:black_concrete_powder": BlackConcretePowder{}, + "minecraft:kelp": Kelp{}, + "minecraft:kelp_plant": KelpPlant{}, + "minecraft:dried_kelp_block": DriedKelpBlock{}, + "minecraft:turtle_egg": TurtleEgg{}, + "minecraft:dead_tube_coral_block": DeadTubeCoralBlock{}, + "minecraft:dead_brain_coral_block": DeadBrainCoralBlock{}, + "minecraft:dead_bubble_coral_block": DeadBubbleCoralBlock{}, + "minecraft:dead_fire_coral_block": DeadFireCoralBlock{}, + "minecraft:dead_horn_coral_block": DeadHornCoralBlock{}, + "minecraft:tube_coral_block": TubeCoralBlock{}, + "minecraft:brain_coral_block": BrainCoralBlock{}, + "minecraft:bubble_coral_block": BubbleCoralBlock{}, + "minecraft:fire_coral_block": FireCoralBlock{}, + "minecraft:horn_coral_block": HornCoralBlock{}, + "minecraft:dead_tube_coral": DeadTubeCoral{}, + "minecraft:dead_brain_coral": DeadBrainCoral{}, + "minecraft:dead_bubble_coral": DeadBubbleCoral{}, + "minecraft:dead_fire_coral": DeadFireCoral{}, + "minecraft:dead_horn_coral": DeadHornCoral{}, + "minecraft:tube_coral": TubeCoral{}, + "minecraft:brain_coral": BrainCoral{}, + "minecraft:bubble_coral": BubbleCoral{}, + "minecraft:fire_coral": FireCoral{}, + "minecraft:horn_coral": HornCoral{}, + "minecraft:dead_tube_coral_fan": DeadTubeCoralFan{}, + "minecraft:dead_brain_coral_fan": DeadBrainCoralFan{}, + "minecraft:dead_bubble_coral_fan": DeadBubbleCoralFan{}, + "minecraft:dead_fire_coral_fan": DeadFireCoralFan{}, + "minecraft:dead_horn_coral_fan": DeadHornCoralFan{}, + "minecraft:tube_coral_fan": TubeCoralFan{}, + "minecraft:brain_coral_fan": BrainCoralFan{}, + "minecraft:bubble_coral_fan": BubbleCoralFan{}, + "minecraft:fire_coral_fan": FireCoralFan{}, + "minecraft:horn_coral_fan": HornCoralFan{}, + "minecraft:dead_tube_coral_wall_fan": DeadTubeCoralWallFan{}, + "minecraft:dead_brain_coral_wall_fan": DeadBrainCoralWallFan{}, + "minecraft:dead_bubble_coral_wall_fan": DeadBubbleCoralWallFan{}, + "minecraft:dead_fire_coral_wall_fan": DeadFireCoralWallFan{}, + "minecraft:dead_horn_coral_wall_fan": DeadHornCoralWallFan{}, + "minecraft:tube_coral_wall_fan": TubeCoralWallFan{}, + "minecraft:brain_coral_wall_fan": BrainCoralWallFan{}, + "minecraft:bubble_coral_wall_fan": BubbleCoralWallFan{}, + "minecraft:fire_coral_wall_fan": FireCoralWallFan{}, + "minecraft:horn_coral_wall_fan": HornCoralWallFan{}, + "minecraft:sea_pickle": SeaPickle{}, + "minecraft:blue_ice": BlueIce{}, + "minecraft:conduit": Conduit{}, + "minecraft:bamboo_sapling": BambooSapling{}, + "minecraft:bamboo": Bamboo{}, + "minecraft:potted_bamboo": PottedBamboo{}, + "minecraft:void_air": VoidAir{}, + "minecraft:cave_air": CaveAir{}, + "minecraft:bubble_column": BubbleColumn{}, + "minecraft:polished_granite_stairs": PolishedGraniteStairs{}, + "minecraft:smooth_red_sandstone_stairs": SmoothRedSandstoneStairs{}, + "minecraft:mossy_stone_brick_stairs": MossyStoneBrickStairs{}, + "minecraft:polished_diorite_stairs": PolishedDioriteStairs{}, + "minecraft:mossy_cobblestone_stairs": MossyCobblestoneStairs{}, + "minecraft:end_stone_brick_stairs": EndStoneBrickStairs{}, + "minecraft:stone_stairs": StoneStairs{}, + "minecraft:smooth_sandstone_stairs": SmoothSandstoneStairs{}, + "minecraft:smooth_quartz_stairs": SmoothQuartzStairs{}, + "minecraft:granite_stairs": GraniteStairs{}, + "minecraft:andesite_stairs": AndesiteStairs{}, + "minecraft:red_nether_brick_stairs": RedNetherBrickStairs{}, + "minecraft:polished_andesite_stairs": PolishedAndesiteStairs{}, + "minecraft:diorite_stairs": DioriteStairs{}, + "minecraft:polished_granite_slab": PolishedGraniteSlab{}, + "minecraft:smooth_red_sandstone_slab": SmoothRedSandstoneSlab{}, + "minecraft:mossy_stone_brick_slab": MossyStoneBrickSlab{}, + "minecraft:polished_diorite_slab": PolishedDioriteSlab{}, + "minecraft:mossy_cobblestone_slab": MossyCobblestoneSlab{}, + "minecraft:end_stone_brick_slab": EndStoneBrickSlab{}, + "minecraft:smooth_sandstone_slab": SmoothSandstoneSlab{}, + "minecraft:smooth_quartz_slab": SmoothQuartzSlab{}, + "minecraft:granite_slab": GraniteSlab{}, + "minecraft:andesite_slab": AndesiteSlab{}, + "minecraft:red_nether_brick_slab": RedNetherBrickSlab{}, + "minecraft:polished_andesite_slab": PolishedAndesiteSlab{}, + "minecraft:diorite_slab": DioriteSlab{}, + "minecraft:brick_wall": BrickWall{}, + "minecraft:prismarine_wall": PrismarineWall{}, + "minecraft:red_sandstone_wall": RedSandstoneWall{}, + "minecraft:mossy_stone_brick_wall": MossyStoneBrickWall{}, + "minecraft:granite_wall": GraniteWall{}, + "minecraft:stone_brick_wall": StoneBrickWall{}, + "minecraft:nether_brick_wall": NetherBrickWall{}, + "minecraft:andesite_wall": AndesiteWall{}, + "minecraft:red_nether_brick_wall": RedNetherBrickWall{}, + "minecraft:sandstone_wall": SandstoneWall{}, + "minecraft:end_stone_brick_wall": EndStoneBrickWall{}, + "minecraft:diorite_wall": DioriteWall{}, + "minecraft:scaffolding": Scaffolding{}, + "minecraft:loom": Loom{}, + "minecraft:barrel": Barrel{}, + "minecraft:smoker": Smoker{}, + "minecraft:blast_furnace": BlastFurnace{}, + "minecraft:cartography_table": CartographyTable{}, + "minecraft:fletching_table": FletchingTable{}, + "minecraft:grindstone": Grindstone{}, + "minecraft:lectern": Lectern{}, + "minecraft:smithing_table": SmithingTable{}, + "minecraft:stonecutter": Stonecutter{}, + "minecraft:bell": Bell{}, + "minecraft:lantern": Lantern{}, + "minecraft:soul_lantern": SoulLantern{}, + "minecraft:campfire": Campfire{}, + "minecraft:soul_campfire": SoulCampfire{}, + "minecraft:sweet_berry_bush": SweetBerryBush{}, + "minecraft:warped_stem": WarpedStem{}, + "minecraft:stripped_warped_stem": StrippedWarpedStem{}, + "minecraft:warped_hyphae": WarpedHyphae{}, + "minecraft:stripped_warped_hyphae": StrippedWarpedHyphae{}, + "minecraft:warped_nylium": WarpedNylium{}, + "minecraft:warped_fungus": WarpedFungus{}, + "minecraft:warped_wart_block": WarpedWartBlock{}, + "minecraft:warped_roots": WarpedRoots{}, + "minecraft:nether_sprouts": NetherSprouts{}, + "minecraft:crimson_stem": CrimsonStem{}, + "minecraft:stripped_crimson_stem": StrippedCrimsonStem{}, + "minecraft:crimson_hyphae": CrimsonHyphae{}, + "minecraft:stripped_crimson_hyphae": StrippedCrimsonHyphae{}, + "minecraft:crimson_nylium": CrimsonNylium{}, + "minecraft:crimson_fungus": CrimsonFungus{}, + "minecraft:shroomlight": Shroomlight{}, + "minecraft:weeping_vines": WeepingVines{}, + "minecraft:weeping_vines_plant": WeepingVinesPlant{}, + "minecraft:twisting_vines": TwistingVines{}, + "minecraft:twisting_vines_plant": TwistingVinesPlant{}, + "minecraft:crimson_roots": CrimsonRoots{}, + "minecraft:crimson_planks": CrimsonPlanks{}, + "minecraft:warped_planks": WarpedPlanks{}, + "minecraft:crimson_slab": CrimsonSlab{}, + "minecraft:warped_slab": WarpedSlab{}, + "minecraft:crimson_pressure_plate": CrimsonPressurePlate{}, + "minecraft:warped_pressure_plate": WarpedPressurePlate{}, + "minecraft:crimson_fence": CrimsonFence{}, + "minecraft:warped_fence": WarpedFence{}, + "minecraft:crimson_trapdoor": CrimsonTrapdoor{}, + "minecraft:warped_trapdoor": WarpedTrapdoor{}, + "minecraft:crimson_fence_gate": CrimsonFenceGate{}, + "minecraft:warped_fence_gate": WarpedFenceGate{}, + "minecraft:crimson_stairs": CrimsonStairs{}, + "minecraft:warped_stairs": WarpedStairs{}, + "minecraft:crimson_button": CrimsonButton{}, + "minecraft:warped_button": WarpedButton{}, + "minecraft:crimson_door": CrimsonDoor{}, + "minecraft:warped_door": WarpedDoor{}, + "minecraft:crimson_sign": CrimsonSign{}, + "minecraft:warped_sign": WarpedSign{}, + "minecraft:crimson_wall_sign": CrimsonWallSign{}, + "minecraft:warped_wall_sign": WarpedWallSign{}, + "minecraft:structure_block": StructureBlock{}, + "minecraft:jigsaw": Jigsaw{}, + "minecraft:composter": Composter{}, + "minecraft:target": Target{}, + "minecraft:bee_nest": BeeNest{}, + "minecraft:beehive": Beehive{}, + "minecraft:honey_block": HoneyBlock{}, + "minecraft:honeycomb_block": HoneycombBlock{}, + "minecraft:netherite_block": NetheriteBlock{}, + "minecraft:ancient_debris": AncientDebris{}, + "minecraft:crying_obsidian": CryingObsidian{}, + "minecraft:respawn_anchor": RespawnAnchor{}, + "minecraft:potted_crimson_fungus": PottedCrimsonFungus{}, + "minecraft:potted_warped_fungus": PottedWarpedFungus{}, + "minecraft:potted_crimson_roots": PottedCrimsonRoots{}, + "minecraft:potted_warped_roots": PottedWarpedRoots{}, + "minecraft:lodestone": Lodestone{}, + "minecraft:blackstone": Blackstone{}, + "minecraft:blackstone_stairs": BlackstoneStairs{}, + "minecraft:blackstone_wall": BlackstoneWall{}, + "minecraft:blackstone_slab": BlackstoneSlab{}, + "minecraft:polished_blackstone": PolishedBlackstone{}, + "minecraft:polished_blackstone_bricks": PolishedBlackstoneBricks{}, + "minecraft:cracked_polished_blackstone_bricks": CrackedPolishedBlackstoneBricks{}, + "minecraft:chiseled_polished_blackstone": ChiseledPolishedBlackstone{}, + "minecraft:polished_blackstone_brick_slab": PolishedBlackstoneBrickSlab{}, + "minecraft:polished_blackstone_brick_stairs": PolishedBlackstoneBrickStairs{}, + "minecraft:polished_blackstone_brick_wall": PolishedBlackstoneBrickWall{}, + "minecraft:gilded_blackstone": GildedBlackstone{}, + "minecraft:polished_blackstone_stairs": PolishedBlackstoneStairs{}, + "minecraft:polished_blackstone_slab": PolishedBlackstoneSlab{}, + "minecraft:polished_blackstone_pressure_plate": PolishedBlackstonePressurePlate{}, + "minecraft:polished_blackstone_button": PolishedBlackstoneButton{}, + "minecraft:polished_blackstone_wall": PolishedBlackstoneWall{}, + "minecraft:chiseled_nether_bricks": ChiseledNetherBricks{}, + "minecraft:cracked_nether_bricks": CrackedNetherBricks{}, + "minecraft:quartz_bricks": QuartzBricks{}, + "minecraft:candle": Candle{}, + "minecraft:white_candle": WhiteCandle{}, + "minecraft:orange_candle": OrangeCandle{}, + "minecraft:magenta_candle": MagentaCandle{}, + "minecraft:light_blue_candle": LightBlueCandle{}, + "minecraft:yellow_candle": YellowCandle{}, + "minecraft:lime_candle": LimeCandle{}, + "minecraft:pink_candle": PinkCandle{}, + "minecraft:gray_candle": GrayCandle{}, + "minecraft:light_gray_candle": LightGrayCandle{}, + "minecraft:cyan_candle": CyanCandle{}, + "minecraft:purple_candle": PurpleCandle{}, + "minecraft:blue_candle": BlueCandle{}, + "minecraft:brown_candle": BrownCandle{}, + "minecraft:green_candle": GreenCandle{}, + "minecraft:red_candle": RedCandle{}, + "minecraft:black_candle": BlackCandle{}, + "minecraft:candle_cake": CandleCake{}, + "minecraft:white_candle_cake": WhiteCandleCake{}, + "minecraft:orange_candle_cake": OrangeCandleCake{}, + "minecraft:magenta_candle_cake": MagentaCandleCake{}, + "minecraft:light_blue_candle_cake": LightBlueCandleCake{}, + "minecraft:yellow_candle_cake": YellowCandleCake{}, + "minecraft:lime_candle_cake": LimeCandleCake{}, + "minecraft:pink_candle_cake": PinkCandleCake{}, + "minecraft:gray_candle_cake": GrayCandleCake{}, + "minecraft:light_gray_candle_cake": LightGrayCandleCake{}, + "minecraft:cyan_candle_cake": CyanCandleCake{}, + "minecraft:purple_candle_cake": PurpleCandleCake{}, + "minecraft:blue_candle_cake": BlueCandleCake{}, + "minecraft:brown_candle_cake": BrownCandleCake{}, + "minecraft:green_candle_cake": GreenCandleCake{}, + "minecraft:red_candle_cake": RedCandleCake{}, + "minecraft:black_candle_cake": BlackCandleCake{}, + "minecraft:amethyst_block": AmethystBlock{}, + "minecraft:budding_amethyst": BuddingAmethyst{}, + "minecraft:amethyst_cluster": AmethystCluster{}, + "minecraft:large_amethyst_bud": LargeAmethystBud{}, + "minecraft:medium_amethyst_bud": MediumAmethystBud{}, + "minecraft:small_amethyst_bud": SmallAmethystBud{}, + "minecraft:tuff": Tuff{}, + "minecraft:calcite": Calcite{}, + "minecraft:tinted_glass": TintedGlass{}, + "minecraft:powder_snow": PowderSnow{}, + "minecraft:sculk_sensor": SculkSensor{}, + "minecraft:oxidized_copper": OxidizedCopper{}, + "minecraft:weathered_copper": WeatheredCopper{}, + "minecraft:exposed_copper": ExposedCopper{}, + "minecraft:copper_block": CopperBlock{}, + "minecraft:copper_ore": CopperOre{}, + "minecraft:deepslate_copper_ore": DeepslateCopperOre{}, + "minecraft:oxidized_cut_copper": OxidizedCutCopper{}, + "minecraft:weathered_cut_copper": WeatheredCutCopper{}, + "minecraft:exposed_cut_copper": ExposedCutCopper{}, + "minecraft:cut_copper": CutCopper{}, + "minecraft:oxidized_cut_copper_stairs": OxidizedCutCopperStairs{}, + "minecraft:weathered_cut_copper_stairs": WeatheredCutCopperStairs{}, + "minecraft:exposed_cut_copper_stairs": ExposedCutCopperStairs{}, + "minecraft:cut_copper_stairs": CutCopperStairs{}, + "minecraft:oxidized_cut_copper_slab": OxidizedCutCopperSlab{}, + "minecraft:weathered_cut_copper_slab": WeatheredCutCopperSlab{}, + "minecraft:exposed_cut_copper_slab": ExposedCutCopperSlab{}, + "minecraft:cut_copper_slab": CutCopperSlab{}, + "minecraft:waxed_copper_block": WaxedCopperBlock{}, + "minecraft:waxed_weathered_copper": WaxedWeatheredCopper{}, + "minecraft:waxed_exposed_copper": WaxedExposedCopper{}, + "minecraft:waxed_oxidized_copper": WaxedOxidizedCopper{}, + "minecraft:waxed_oxidized_cut_copper": WaxedOxidizedCutCopper{}, + "minecraft:waxed_weathered_cut_copper": WaxedWeatheredCutCopper{}, + "minecraft:waxed_exposed_cut_copper": WaxedExposedCutCopper{}, + "minecraft:waxed_cut_copper": WaxedCutCopper{}, + "minecraft:waxed_oxidized_cut_copper_stairs": WaxedOxidizedCutCopperStairs{}, + "minecraft:waxed_weathered_cut_copper_stairs": WaxedWeatheredCutCopperStairs{}, + "minecraft:waxed_exposed_cut_copper_stairs": WaxedExposedCutCopperStairs{}, + "minecraft:waxed_cut_copper_stairs": WaxedCutCopperStairs{}, + "minecraft:waxed_oxidized_cut_copper_slab": WaxedOxidizedCutCopperSlab{}, + "minecraft:waxed_weathered_cut_copper_slab": WaxedWeatheredCutCopperSlab{}, + "minecraft:waxed_exposed_cut_copper_slab": WaxedExposedCutCopperSlab{}, + "minecraft:waxed_cut_copper_slab": WaxedCutCopperSlab{}, + "minecraft:lightning_rod": LightningRod{}, + "minecraft:pointed_dripstone": PointedDripstone{}, + "minecraft:dripstone_block": DripstoneBlock{}, + "minecraft:cave_vines": CaveVines{}, + "minecraft:cave_vines_plant": CaveVinesPlant{}, + "minecraft:spore_blossom": SporeBlossom{}, + "minecraft:azalea": Azalea{}, + "minecraft:flowering_azalea": FloweringAzalea{}, + "minecraft:moss_carpet": MossCarpet{}, + "minecraft:moss_block": MossBlock{}, + "minecraft:big_dripleaf": BigDripleaf{}, + "minecraft:big_dripleaf_stem": BigDripleafStem{}, + "minecraft:small_dripleaf": SmallDripleaf{}, + "minecraft:hanging_roots": HangingRoots{}, + "minecraft:rooted_dirt": RootedDirt{}, + "minecraft:deepslate": Deepslate{}, + "minecraft:cobbled_deepslate": CobbledDeepslate{}, + "minecraft:cobbled_deepslate_stairs": CobbledDeepslateStairs{}, + "minecraft:cobbled_deepslate_slab": CobbledDeepslateSlab{}, + "minecraft:cobbled_deepslate_wall": CobbledDeepslateWall{}, + "minecraft:polished_deepslate": PolishedDeepslate{}, + "minecraft:polished_deepslate_stairs": PolishedDeepslateStairs{}, + "minecraft:polished_deepslate_slab": PolishedDeepslateSlab{}, + "minecraft:polished_deepslate_wall": PolishedDeepslateWall{}, + "minecraft:deepslate_tiles": DeepslateTiles{}, + "minecraft:deepslate_tile_stairs": DeepslateTileStairs{}, + "minecraft:deepslate_tile_slab": DeepslateTileSlab{}, + "minecraft:deepslate_tile_wall": DeepslateTileWall{}, + "minecraft:deepslate_bricks": DeepslateBricks{}, + "minecraft:deepslate_brick_stairs": DeepslateBrickStairs{}, + "minecraft:deepslate_brick_slab": DeepslateBrickSlab{}, + "minecraft:deepslate_brick_wall": DeepslateBrickWall{}, + "minecraft:chiseled_deepslate": ChiseledDeepslate{}, + "minecraft:cracked_deepslate_bricks": CrackedDeepslateBricks{}, + "minecraft:cracked_deepslate_tiles": CrackedDeepslateTiles{}, + "minecraft:infested_deepslate": InfestedDeepslate{}, + "minecraft:smooth_basalt": SmoothBasalt{}, + "minecraft:raw_iron_block": RawIronBlock{}, + "minecraft:raw_copper_block": RawCopperBlock{}, + "minecraft:raw_gold_block": RawGoldBlock{}, + "minecraft:potted_azalea_bush": PottedAzaleaBush{}, + "minecraft:potted_flowering_azalea_bush": PottedFloweringAzaleaBush{}, +} diff --git a/level/block/blocks.nbt b/level/block/blocks.nbt new file mode 100644 index 0000000..2e4659e Binary files /dev/null and b/level/block/blocks.nbt differ diff --git a/level/block/generator/blocks.go.tmpl b/level/block/generator/blocks.go.tmpl new file mode 100644 index 0000000..fc6b76d --- /dev/null +++ b/level/block/generator/blocks.go.tmpl @@ -0,0 +1,12 @@ +// Code generated by {{Generator}}; DO NOT EDIT. +package block +{{range .}} +type {{.Name | ToGoTypeName}} struct { {{- range $key, $elem := .Meta}} + {{$key | UpperTheFirst}} {{$elem | GetType}} `nbt:"{{$key}}"`{{end}} {{- if ne 0 (len .Meta)}} +{{end -}} } + +func ({{.Name | ToGoTypeName}}) ID() string { return {{.Name | printf "%q"}} } +{{end}} +var fromID = map[string]Block { {{- range .}} + {{.Name | printf "%#v"}}: {{.Name | ToGoTypeName}}{},{{end}} +} \ No newline at end of file diff --git a/level/block/generator/main.go b/level/block/generator/main.go new file mode 100644 index 0000000..757c0ec --- /dev/null +++ b/level/block/generator/main.go @@ -0,0 +1,99 @@ +package main + +import ( + _ "embed" + "log" + "os" + "strings" + "text/template" + "unicode" + + "github.com/Tnze/go-mc/nbt" +) + +//go:embed blocks.go.tmpl +var tempSource string + +var temp = template.Must(template. + New("block_template"). + Funcs(template.FuncMap{ + "UpperTheFirst": UpperTheFirst, + "ToGoTypeName": ToGoTypeName, + "GetType": GetType, + "Generator": func() string { return "generator/main.go" }, + }). + Parse(tempSource)) + +type State struct { + Name string + Meta map[string]string +} + +func main() { + var states []State + readBlockStates(&states) + + // generate go source file + genSourceFile(states) +} + +func readBlockStates(states *[]State) { + // open block_states data file + f, err := os.Open("blocks.nbt") + if err != nil { + log.Panic(err) + } + defer f.Close() + + // parse the nbt format + if _, err := nbt.NewDecoder(f).Decode(states); err != nil { + log.Panic(err) + } +} + +func genSourceFile(states []State) { + file, err := os.Create("blocks.go") + if err != nil { + log.Panic(err) + } + defer file.Close() + // clean up the file + if err := file.Truncate(0); err != nil { + return + } + + if err := temp.Execute(file, states); err != nil { + log.Panic(err) + } +} + +func ToGoTypeName(name string) string { + name = strings.TrimPrefix(name, "minecraft:") + words := strings.Split(name, "_") + for i := range words { + words[i] = UpperTheFirst(words[i]) + } + return strings.Join(words, "") +} + +var typeMaps = map[string]string{ + "BooleanProperty": "Boolean", + "DirectionProperty": "Direction", + "EnumProperty": "string", + "IntegerProperty": "Integer", +} + +func GetType(v string) string { + if mapped, ok := typeMaps[v]; ok { + return mapped + } + return v +} + +func UpperTheFirst(word string) string { + runes := []rune(word) + if len(runes) > 0 { + runes[0] = unicode.ToUpper(runes[0]) + } + return string(runes) +} diff --git a/level/block/properties.go b/level/block/properties.go new file mode 100644 index 0000000..07f95ee --- /dev/null +++ b/level/block/properties.go @@ -0,0 +1,38 @@ +package block + +import ( + "strconv" +) + +type ( + Boolean bool + Direction string + Integer int +) + +func (b Boolean) MarshalText() (text []byte, err error) { + return []byte(strconv.FormatBool(bool(b))), nil +} + +func (b *Boolean) UnmarshalText(text []byte) (err error) { + *((*bool)(b)), err = strconv.ParseBool(string(text)) + return +} + +func (d Direction) MarshalText() (text []byte, err error) { + return []byte(d), nil +} + +func (d *Direction) UnmarshalText(text []byte) error { + *d = Direction(text) + return nil +} + +func (i Integer) MarshalText() (text []byte, err error) { + return []byte(strconv.Itoa(int(i))), nil +} + +func (i *Integer) UnmarshalText(text []byte) (err error) { + *((*int)(i)), err = strconv.Atoi(string(text)) + return +} diff --git a/level/chunk.go b/level/chunk.go index bfcb7e5..21d0519 100644 --- a/level/chunk.go +++ b/level/chunk.go @@ -2,13 +2,14 @@ package level import ( "bytes" + "fmt" "io" "math/bits" "strings" "sync" "unsafe" - "github.com/Tnze/go-mc/data/block" + "github.com/Tnze/go-mc/level/block" pk "github.com/Tnze/go-mc/net/packet" "github.com/Tnze/go-mc/save" ) @@ -113,11 +114,18 @@ func ChunkFromSave(c *save.Chunk, secs int) *Chunk { statePalette := v.BlockStates.Palette stateRawPalette := make([]int, len(statePalette)) for i, v := range statePalette { - // TODO: Consider the properties of block, not only index the block name - stateRawPalette[i] = int(stateIDs[strings.TrimPrefix(v.Name, "minecraft:")]) - if v.Name != "minecraft:air" { + b := v.Block() + if b == nil { + panic(fmt.Errorf("block not found: %#v", v)) + } + if !isAir(b) { blockCount++ } + var ok bool + stateRawPalette[i], ok = block.ToStateID(b) + if !ok { + panic(fmt.Errorf("state id not found: %#v", b)) + } } biomesData := *(*[]uint64)((unsafe.Pointer)(&v.Biomes.Data)) @@ -153,18 +161,6 @@ func ChunkFromSave(c *save.Chunk, secs int) *Chunk { } } -// TODO: This map should be moved to data/block. -var stateIDs = make(map[string]uint32) - -func init() { - for i, v := range block.StateID { - name := block.ByID[v].Name - if _, ok := stateIDs[name]; !ok { - stateIDs[name] = i - } - } -} - func (c *Chunk) WriteTo(w io.Writer) (int64, error) { data, err := c.Data() if err != nil { @@ -211,8 +207,8 @@ func (s *Section) GetBlock(i int) int { return s.States.Get(i) } func (s *Section) SetBlock(i int, v int) { - // TODO: Handle cave air and void air - if s.States.Get(i) != 0 { + b, _ := block.FromStateID(s.States.Get(i)) + if isAir(b) { s.blockCount-- } if v != 0 { @@ -263,3 +259,12 @@ func (l *lightData) WriteTo(w io.Writer) (int64, error) { pk.Array(l.BlockLight), }.WriteTo(w) } + +func isAir(b block.Block) bool { + switch b.(type) { + case block.Air, block.CaveAir, block.VoidAir: + return true + default: + return false + } +} diff --git a/nbt/decode.go b/nbt/decode.go index 72e5240..234fa67 100644 --- a/nbt/decode.go +++ b/nbt/decode.go @@ -2,6 +2,7 @@ package nbt import ( "bytes" + "encoding" "errors" "fmt" "io" @@ -23,7 +24,7 @@ func Unmarshal(data []byte, v interface{}) error { // into a struct or map, but not a string. // // This method also return tag name of the root tag. -// In real world, it is often empty, but the API should allows you to get it when ever you want. +// In real world, it is often empty, but the API should allow you to get it when ever you want. func (d *Decoder) Decode(v interface{}) (string, error) { val := reflect.ValueOf(v) if val.Kind() != reflect.Ptr { @@ -39,7 +40,7 @@ func (d *Decoder) Decode(v interface{}) (string, error) { return tagName, fmt.Errorf("nbt: unknown Tag, maybe compressed by %s, uncompress it first", c) } - // We decode val not val.Elem because the NBTDecoder interface + // We decode val not val.Elem because the Unmarshaler interface // test must be applied at the top level of the value. err = d.unmarshal(val, tagType) if err != nil { @@ -64,9 +65,12 @@ func (d *Decoder) checkCompressed(head byte) (compress string) { var ErrEND = errors.New("unexpected TAG_End") func (d *Decoder) unmarshal(val reflect.Value, tagType byte) error { - u, val := indirect(val, tagType == TagEnd) + u, t, val, assign := indirect(val, tagType == TagEnd) + if assign != nil { + defer assign() + } if u != nil { - return u.Decode(tagType, d.r) + return u.UnmarshalNBT(tagType, d.r) } switch tagType { @@ -177,13 +181,20 @@ func (d *Decoder) unmarshal(val reflect.Value, tagType byte) error { if err != nil { return err } - switch vk := val.Kind(); vk { - default: - return errors.New("cannot parse TagString as " + vk.String()) - case reflect.String: - val.SetString(s) - case reflect.Interface: - val.Set(reflect.ValueOf(s)) + if t != nil { + err := t.UnmarshalText([]byte(s)) + if err != nil { + return err + } + } else { + switch vk := val.Kind(); vk { + default: + return errors.New("cannot parse TagString as " + vk.String()) + case reflect.String: + val.SetString(s) + case reflect.Interface: + val.Set(reflect.ValueOf(s)) + } } case TagByteArray: @@ -270,7 +281,7 @@ func (d *Decoder) unmarshal(val reflect.Value, tagType byte) error { } // If we need parse TAG_List into slice, make a new with right length. - // Otherwise if we need parse into array, we check if len(array) are enough. + // Otherwise, if we need parse into array, we check if len(array) are enough. var buf reflect.Value vk := val.Kind() switch vk { @@ -370,14 +381,15 @@ func (d *Decoder) unmarshal(val reflect.Value, tagType byte) error { // indirect walks down v allocating pointers as needed, // until it gets to a non-pointer. -// If it encounters an NBTDecoder, indirect stops and returns that. -// If decodingNull is true, indirect stops at the first settable pointer so it +// If it encounters an Unmarshaler, indirect stops and returns that. +// If decodingNull is true, indirect stops at the first settable pointer, so it // can be set to nil. // // This function is copied and modified from encoding/json -func indirect(v reflect.Value, decodingNull bool) (NBTDecoder, reflect.Value) { +func indirect(v reflect.Value, decodingNull bool) (Unmarshaler, encoding.TextUnmarshaler, reflect.Value, func()) { v0 := v haveAddr := false + var assign func() // If v is a named type and is addressable, // start with its address, so that if the type has pointer methods, @@ -389,12 +401,19 @@ func indirect(v reflect.Value, decodingNull bool) (NBTDecoder, reflect.Value) { for { // Load value from interface, but only if the result will be // usefully addressable. + // Otherwise, try init a new value if v.Kind() == reflect.Interface && !v.IsNil() { e := v.Elem() if e.Kind() == reflect.Ptr && !e.IsNil() && (!decodingNull || e.Elem().Kind() == reflect.Ptr) { haveAddr = false v = e continue + } else if v.CanSet() { + e = reflect.New(e.Type()) + cv := v + assign = func() { cv.Set(e.Elem()) } + v = e + continue } } @@ -417,8 +436,12 @@ func indirect(v reflect.Value, decodingNull bool) (NBTDecoder, reflect.Value) { v.Set(reflect.New(v.Type().Elem())) } if v.Type().NumMethod() > 0 && v.CanInterface() { - if u, ok := v.Interface().(NBTDecoder); ok { - return u, reflect.Value{} + i := v.Interface() + if u, ok := i.(Unmarshaler); ok { + return u, nil, reflect.Value{}, assign + } + if u, ok := i.(encoding.TextUnmarshaler); ok { + return nil, u, v, assign } } @@ -429,7 +452,7 @@ func indirect(v reflect.Value, decodingNull bool) (NBTDecoder, reflect.Value) { v = v.Elem() } } - return nil, v + return nil, nil, v, assign } // rawRead read and discard a value diff --git a/nbt/decode_test.go b/nbt/decode_test.go index bce767b..d5308c3 100644 --- a/nbt/decode_test.go +++ b/nbt/decode_test.go @@ -6,6 +6,7 @@ import ( "io" "math" "reflect" + "strconv" "testing" ) @@ -380,6 +381,31 @@ func TestDecoder_Decode_ErrorString(t *testing.T) { } +type TextBool bool + +func (b TextBool) MarshalText() (text []byte, err error) { + return []byte(strconv.FormatBool(bool(b))), nil +} +func (b *TextBool) UnmarshalText(text []byte) (err error) { + *((*bool)(b)), err = strconv.ParseBool(string(text)) + return +} + +func TestDecoder_Decode_textUnmarshaler(t *testing.T) { + var b TextBool + data := []byte{ + TagString, 0, 0, + 0, 4, 't', 'r', 'u', 'e', + } + _, err := NewDecoder(bytes.NewReader(data)).Decode(&b) + if err != nil { + t.Fatal(err) + } + if b != true { + t.Errorf("b should be true") + } +} + func TestRawMessage_Decode(t *testing.T) { data := []byte{ TagCompound, 0, 2, 'a', 'b', @@ -435,16 +461,16 @@ func TestStringifiedMessage_Decode(t *testing.T) { t.Fatal(tag, err) } else { if tag != "ab" { - t.Fatalf("Decode tag name error: want %s, get: %s", "ab", tag) + t.Fatalf("UnmarshalNBT tag name error: want %s, get: %s", "ab", tag) } if container.Key != 12 { - t.Fatalf("Decode Key error: want %v, get: %v", 12, container.Key) + t.Fatalf("UnmarshalNBT Key error: want %v, get: %v", 12, container.Key) } if container.Value != `"Tn ze"` { - t.Fatalf("Decode Key error: get: %v", container.Value) + t.Fatalf("UnmarshalNBT Key error: get: %v", container.Value) } if container.List != "[{},{}]" { - t.Fatalf("Decode List error: get: %v", container.List) + t.Fatalf("UnmarshalNBT List error: get: %v", container.List) } } } diff --git a/nbt/encode.go b/nbt/encode.go index 91b35d7..a0b0468 100644 --- a/nbt/encode.go +++ b/nbt/encode.go @@ -49,8 +49,8 @@ func (e *Encoder) marshal(val reflect.Value, tagType byte, tagName string) error return err } if val.CanInterface() { - if encoder, ok := val.Interface().(NBTEncoder); ok { - return encoder.Encode(e.w) + if encoder, ok := val.Interface().(Marshaler); ok { + return encoder.MarshalNBT(e.w) } } return e.writeValue(val, tagType) @@ -205,7 +205,7 @@ func getTagType(v reflect.Value) (byte, reflect.Value) { v.Set(reflect.New(v.Type().Elem())) } if v.Type().NumMethod() > 0 && v.CanInterface() { - if u, ok := v.Interface().(NBTEncoder); ok { + if u, ok := v.Interface().(Marshaler); ok { return u.TagType(), v } } @@ -214,7 +214,7 @@ func getTagType(v reflect.Value) (byte, reflect.Value) { } if v.CanInterface() { - if encoder, ok := v.Interface().(NBTEncoder); ok { + if encoder, ok := v.Interface().(Marshaler); ok { return encoder.TagType(), v } } diff --git a/nbt/interface.go b/nbt/interface.go index 386fb9a..7225497 100644 --- a/nbt/interface.go +++ b/nbt/interface.go @@ -2,11 +2,11 @@ package nbt import "io" -type NBTDecoder interface { - Decode(tagType byte, r DecoderReader) error +type Unmarshaler interface { + UnmarshalNBT(tagType byte, r DecoderReader) error } -type NBTEncoder interface { +type Marshaler interface { TagType() byte - Encode(w io.Writer) error + MarshalNBT(w io.Writer) error } diff --git a/nbt/rawmsg.go b/nbt/rawmsg.go index 6d55e78..6976e71 100644 --- a/nbt/rawmsg.go +++ b/nbt/rawmsg.go @@ -21,12 +21,12 @@ func (m RawMessage) TagType() byte { return m.Type } -func (m RawMessage) Encode(w io.Writer) error { +func (m RawMessage) MarshalNBT(w io.Writer) error { _, err := w.Write(m.Data) return err } -func (m *RawMessage) Decode(tagType byte, r DecoderReader) error { +func (m *RawMessage) UnmarshalNBT(tagType byte, r DecoderReader) error { if tagType == TagEnd { return ErrEND } @@ -66,7 +66,7 @@ func (m RawMessage) Unmarshal(v interface{}) error { d := NewDecoder(bytes.NewReader(m.Data)) val := reflect.ValueOf(v) if val.Kind() != reflect.Ptr { - return errors.New("nbt: non-pointer passed to Decode") + return errors.New("nbt: non-pointer passed to UnmarshalNBT") } return d.unmarshal(val, m.Type) } diff --git a/nbt/snbt.go b/nbt/snbt.go index dd0d1c5..0ed787e 100644 --- a/nbt/snbt.go +++ b/nbt/snbt.go @@ -56,13 +56,13 @@ func (m StringifiedMessage) TagType() byte { } } -func (m StringifiedMessage) Encode(w io.Writer) error { +func (m StringifiedMessage) MarshalNBT(w io.Writer) error { d := decodeState{data: []byte(m)} d.scan.reset() return writeValue(NewEncoder(w), &d, false, "") } -func (m *StringifiedMessage) Decode(tagType byte, r DecoderReader) error { +func (m *StringifiedMessage) UnmarshalNBT(tagType byte, r DecoderReader) error { if tagType == TagEnd { return ErrEND } @@ -94,7 +94,7 @@ func (m *StringifiedMessage) encode(d *Decoder, sb *strings.Builder, tagType byt return err case TagInt: i, err := d.readInt32() - sb.WriteString(strconv.FormatInt(int64(i), 10) + "I") + sb.WriteString(strconv.FormatInt(int64(i), 10)) return err case TagFloat: i, err := d.readInt32() diff --git a/nbt/snbt_decode_test.go b/nbt/snbt_decode_test.go index b1f7eed..91bdbc7 100644 --- a/nbt/snbt_decode_test.go +++ b/nbt/snbt_decode_test.go @@ -159,7 +159,7 @@ func TestStringifiedMessage_Encode(t *testing.T) { {`[B; 1B, 2B, 3B]`, []byte{0, 0, 0, 3, 1, 2, 3}}, {`[{},{}]`, []byte{TagCompound, 0, 0, 0, 2, 0, 0}}, } { - if err := StringifiedMessage(v.snbt).Encode(&buff); err != nil { + if err := StringifiedMessage(v.snbt).MarshalNBT(&buff); err != nil { t.Errorf("Encode SNBT error: %v", err) } if !bytes.Equal(buff.Bytes(), v.data) { diff --git a/nbt/snbt_encode_test.go b/nbt/snbt_encode_test.go new file mode 100644 index 0000000..9235409 --- /dev/null +++ b/nbt/snbt_encode_test.go @@ -0,0 +1,3 @@ +package nbt + +//TODO: Test SNBT encode diff --git a/net/conn.go b/net/conn.go index 88e05d1..3e99c40 100644 --- a/net/conn.go +++ b/net/conn.go @@ -63,11 +63,11 @@ func DialMCTimeout(addr string, timeout time.Duration) (*Conn, error) { } type Dialer struct { - *net.Dialer + net.Dialer } func (d *Dialer) resolver() *net.Resolver { - if d.Resolver != nil { + if d != nil && d.Resolver != nil { return d.Resolver } return net.DefaultResolver diff --git a/save/chunk.go b/save/chunk.go index 122a76a..b3029a4 100644 --- a/save/chunk.go +++ b/save/chunk.go @@ -5,8 +5,10 @@ import ( "compress/gzip" "compress/zlib" "errors" - "github.com/Tnze/go-mc/nbt" "io" + + "github.com/Tnze/go-mc/level/block" + "github.com/Tnze/go-mc/nbt" ) // Chunk is 16* chunk @@ -45,6 +47,19 @@ type BlockState struct { Properties nbt.RawMessage } +func (s *BlockState) Block() block.Block { + b, ok := block.DefaultBlock(s.Name) + if !ok { + return nil + } + if s.Properties.Type != nbt.TagEnd { + if err := s.Properties.Unmarshal(&b); err != nil { + return nil + } + } + return b +} + // Load read column data from []byte func (c *Chunk) Load(data []byte) (err error) { var r io.Reader = bytes.NewReader(data[1:]) diff --git a/server/Dimension.snbt b/server/Dimension.snbt index 2b9092d..86fe858 100644 --- a/server/Dimension.snbt +++ b/server/Dimension.snbt @@ -1,17 +1,17 @@ { - piglin_safe: 0b, - natural: 1b, - ambient_light: 0.0f, - infiniburn: "minecraft:infiniburn_overworld", - respawn_anchor_works: 0b, - has_skylight: 1b, - bed_works: 1b, - effects: "minecraft:overworld", - has_raids: 1b, - min_y: 0, - height: 256, - logical_height: 256, - coordinate_scale: 1.0d, - ultrawarm: 0b, - has_ceiling: 0b + piglin_safe:0B, + natural:1B, + ambient_light:0.0000000000F, + infiniburn:"#minecraft:infiniburn_overworld", + respawn_anchor_works:0B, + has_skylight:1B, + bed_works:1B, + effects:"minecraft:overworld", + has_raids:1B, + logical_height:384, + coordinate_scale:1.0000000000D, + min_y:-64, + has_ceiling:0B, + ultrawarm:0B, + height:384 } \ No newline at end of file diff --git a/server/DimensionCodec.snbt b/server/DimensionCodec.snbt index 69072ab..59e3b9a 100644 --- a/server/DimensionCodec.snbt +++ b/server/DimensionCodec.snbt @@ -1,2093 +1 @@ -{ - "minecraft:dimension_type": { - type: "minecraft:dimension_type", - value: [ - { - name: "minecraft:overworld", - id: 0, - element: { - piglin_safe: 0b, - natural: 1b, - ambient_light: 0.0f, - infiniburn: "minecraft:infiniburn_overworld", - respawn_anchor_works: 0b, - has_skylight: 1b, - bed_works: 1b, - effects: "minecraft:overworld", - has_raids: 1b, - min_y: 0, - height: 256, - logical_height: 256, - coordinate_scale: 1.0d, - ultrawarm: 0b, - has_ceiling: 0b - } - }, - { - name: "minecraft:overworld_caves", - id: 1, - element: { - piglin_safe: 0b, - natural: 1b, - ambient_light: 0.0f, - infiniburn: "minecraft:infiniburn_overworld", - respawn_anchor_works: 0b, - has_skylight: 1b, - bed_works: 1b, - effects: "minecraft:overworld", - has_raids: 1b, - min_y: 0, - height: 256, - logical_height: 256, - coordinate_scale: 1.0d, - ultrawarm: 0b, - has_ceiling: 1b - } - }, - { - name: "minecraft:the_nether", - id: 2, - element: { - piglin_safe: 1b, - natural: 0b, - ambient_light: 0.1f, - infiniburn: "minecraft:infiniburn_nether", - respawn_anchor_works: 1b, - has_skylight: 0b, - bed_works: 0b, - effects: "minecraft:the_nether", - fixed_time: 18000L, - has_raids: 0b, - min_y: 0, - height: 256, - logical_height: 128, - coordinate_scale: 8.0d, - ultrawarm: 1b, - has_ceiling: 1b - } - }, - { - name: "minecraft:the_end", - id: 3, - element: { - piglin_safe: 0b, - natural: 0b, - ambient_light: 0.0f, - infiniburn: "minecraft:infiniburn_end", - respawn_anchor_works: 0b, - has_skylight: 0b, - bed_works: 0b, - effects: "minecraft:the_end", - fixed_time: 6000L, - has_raids: 1b, - min_y: 0, - height: 256, - logical_height: 256, - coordinate_scale: 1.0d, - ultrawarm: 0b, - has_ceiling: 0b - } - } - ] - }, - "minecraft:worldgen/biome": { - type: "minecraft:worldgen/biome", - value: [ - { - name: "minecraft:ocean", - id: 0, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.0f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:plains", - id: 1, - element: { - precipitation: "rain", - effects: { - sky_color: 7907327, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.125f, - temperature: 0.8f, - scale: 0.05f, - downfall: 0.4f, - category: "plains" - } - }, - { - name: "minecraft:desert", - id: 2, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.125f, - temperature: 2.0f, - scale: 0.05f, - downfall: 0.0f, - category: "desert" - } - }, - { - name: "minecraft:mountains", - id: 3, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.0f, - temperature: 0.2f, - scale: 0.5f, - downfall: 0.3f, - category: "extreme_hills" - } - }, - { - name: "minecraft:forest", - id: 4, - element: { - precipitation: "rain", - effects: { - sky_color: 7972607, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.7f, - scale: 0.2f, - downfall: 0.8f, - category: "forest" - } - }, - { - name: "minecraft:taiga", - id: 5, - element: { - precipitation: "rain", - effects: { - sky_color: 8233983, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.25f, - scale: 0.2f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:swamp", - id: 6, - element: { - precipitation: "rain", - effects: { - grass_color_modifier: "swamp", - sky_color: 7907327, - foliage_color: 6975545, - water_fog_color: 2302743, - fog_color: 12638463, - water_color: 6388580, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -0.2f, - temperature: 0.8f, - scale: 0.1f, - downfall: 0.9f, - category: "swamp" - } - }, - { - name: "minecraft:river", - id: 7, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -0.5f, - temperature: 0.5f, - scale: 0.0f, - downfall: 0.5f, - category: "river" - } - }, - { - name: "minecraft:nether_wastes", - id: 8, - element: { - precipitation: "none", - effects: { - music: { - replace_current_music: 0b, - max_delay: 24000, - sound: "minecraft:music.nether.nether_wastes", - min_delay: 12000 - }, - sky_color: 7254527, - ambient_sound: "minecraft:ambient.nether_wastes.loop", - additions_sound: { - sound: "minecraft:ambient.nether_wastes.additions", - tick_chance: 0.0111d - }, - water_fog_color: 329011, - fog_color: 3344392, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.nether_wastes.mood", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "nether" - } - }, - { - name: "minecraft:the_end", - id: 9, - element: { - precipitation: "none", - effects: { - sky_color: 0, - water_fog_color: 329011, - fog_color: 10518688, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "the_end" - } - }, - { - name: "minecraft:frozen_ocean", - id: 10, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 3750089, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.0f, - temperature: 0.0f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean", - temperature_modifier: "frozen" - } - }, - { - name: "minecraft:frozen_river", - id: 11, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 3750089, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -0.5f, - temperature: 0.0f, - scale: 0.0f, - downfall: 0.5f, - category: "river" - } - }, - { - name: "minecraft:snowy_tundra", - id: 12, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.125f, - temperature: 0.0f, - scale: 0.05f, - downfall: 0.5f, - category: "icy" - } - }, - { - name: "minecraft:snowy_mountains", - id: 13, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.0f, - scale: 0.3f, - downfall: 0.5f, - category: "icy" - } - }, - { - name: "minecraft:mushroom_fields", - id: 14, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.9f, - scale: 0.3f, - downfall: 1.0f, - category: "mushroom" - } - }, - { - name: "minecraft:mushroom_field_shore", - id: 15, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.0f, - temperature: 0.9f, - scale: 0.025f, - downfall: 1.0f, - category: "mushroom" - } - }, - { - name: "minecraft:beach", - id: 16, - element: { - precipitation: "rain", - effects: { - sky_color: 7907327, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.0f, - temperature: 0.8f, - scale: 0.025f, - downfall: 0.4f, - category: "beach" - } - }, - { - name: "minecraft:desert_hills", - id: 17, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 2.0f, - scale: 0.3f, - downfall: 0.0f, - category: "desert" - } - }, - { - name: "minecraft:wooded_hills", - id: 18, - element: { - precipitation: "rain", - effects: { - sky_color: 7972607, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.7f, - scale: 0.3f, - downfall: 0.8f, - category: "forest" - } - }, - { - name: "minecraft:taiga_hills", - id: 19, - element: { - precipitation: "rain", - effects: { - sky_color: 8233983, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.25f, - scale: 0.3f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:mountain_edge", - id: 20, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.8f, - temperature: 0.2f, - scale: 0.3f, - downfall: 0.3f, - category: "extreme_hills" - } - }, - { - name: "minecraft:jungle", - id: 21, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.95f, - scale: 0.2f, - downfall: 0.9f, - category: "jungle" - } - }, - { - name: "minecraft:jungle_hills", - id: 22, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.95f, - scale: 0.3f, - downfall: 0.9f, - category: "jungle" - } - }, - { - name: "minecraft:jungle_edge", - id: 23, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.95f, - scale: 0.2f, - downfall: 0.8f, - category: "jungle" - } - }, - { - name: "minecraft:deep_ocean", - id: 24, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.8f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:stone_shore", - id: 25, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.2f, - scale: 0.8f, - downfall: 0.3f, - category: "none" - } - }, - { - name: "minecraft:snowy_beach", - id: 26, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.0f, - temperature: 0.05f, - scale: 0.025f, - downfall: 0.3f, - category: "beach" - } - }, - { - name: "minecraft:birch_forest", - id: 27, - element: { - precipitation: "rain", - effects: { - sky_color: 8037887, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.6f, - scale: 0.2f, - downfall: 0.6f, - category: "forest" - } - }, - { - name: "minecraft:birch_forest_hills", - id: 28, - element: { - precipitation: "rain", - effects: { - sky_color: 8037887, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.6f, - scale: 0.3f, - downfall: 0.6f, - category: "forest" - } - }, - { - name: "minecraft:dark_forest", - id: 29, - element: { - precipitation: "rain", - effects: { - grass_color_modifier: "dark_forest", - sky_color: 7972607, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.7f, - scale: 0.2f, - downfall: 0.8f, - category: "forest" - } - }, - { - name: "minecraft:snowy_taiga", - id: 30, - element: { - precipitation: "snow", - effects: { - sky_color: 8625919, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: -0.5f, - scale: 0.2f, - downfall: 0.4f, - category: "taiga" - } - }, - { - name: "minecraft:snowy_taiga_hills", - id: 31, - element: { - precipitation: "snow", - effects: { - sky_color: 8625919, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: -0.5f, - scale: 0.3f, - downfall: 0.4f, - category: "taiga" - } - }, - { - name: "minecraft:giant_tree_taiga", - id: 32, - element: { - precipitation: "rain", - effects: { - sky_color: 8168447, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.3f, - scale: 0.2f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:giant_tree_taiga_hills", - id: 33, - element: { - precipitation: "rain", - effects: { - sky_color: 8168447, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.3f, - scale: 0.3f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:wooded_mountains", - id: 34, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.0f, - temperature: 0.2f, - scale: 0.5f, - downfall: 0.3f, - category: "extreme_hills" - } - }, - { - name: "minecraft:savanna", - id: 35, - element: { - precipitation: "none", - effects: { - sky_color: 7711487, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.125f, - temperature: 1.2f, - scale: 0.05f, - downfall: 0.0f, - category: "savanna" - } - }, - { - name: "minecraft:savanna_plateau", - id: 36, - element: { - precipitation: "none", - effects: { - sky_color: 7776511, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.5f, - temperature: 1.0f, - scale: 0.025f, - downfall: 0.0f, - category: "savanna" - } - }, - { - name: "minecraft:badlands", - id: 37, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:wooded_badlands_plateau", - id: 38, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.5f, - temperature: 2.0f, - scale: 0.025f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:badlands_plateau", - id: 39, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.5f, - temperature: 2.0f, - scale: 0.025f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:small_end_islands", - id: 40, - element: { - precipitation: "none", - effects: { - sky_color: 0, - water_fog_color: 329011, - fog_color: 10518688, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "the_end" - } - }, - { - name: "minecraft:end_midlands", - id: 41, - element: { - precipitation: "none", - effects: { - sky_color: 0, - water_fog_color: 329011, - fog_color: 10518688, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "the_end" - } - }, - { - name: "minecraft:end_highlands", - id: 42, - element: { - precipitation: "none", - effects: { - sky_color: 0, - water_fog_color: 329011, - fog_color: 10518688, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "the_end" - } - }, - { - name: "minecraft:end_barrens", - id: 43, - element: { - precipitation: "none", - effects: { - sky_color: 0, - water_fog_color: 329011, - fog_color: 10518688, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "the_end" - } - }, - { - name: "minecraft:warm_ocean", - id: 44, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 270131, - fog_color: 12638463, - water_color: 4445678, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.0f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:lukewarm_ocean", - id: 45, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 267827, - fog_color: 12638463, - water_color: 4566514, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.0f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:cold_ocean", - id: 46, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.0f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:deep_warm_ocean", - id: 47, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 270131, - fog_color: 12638463, - water_color: 4445678, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.8f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:deep_lukewarm_ocean", - id: 48, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 267827, - fog_color: 12638463, - water_color: 4566514, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.8f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:deep_cold_ocean", - id: 49, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.8f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean" - } - }, - { - name: "minecraft:deep_frozen_ocean", - id: 50, - element: { - precipitation: "rain", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 3750089, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -1.8f, - temperature: 0.5f, - scale: 0.1f, - downfall: 0.5f, - category: "ocean", - temperature_modifier: "frozen" - } - }, - { - name: "minecraft:the_void", - id: 127, - element: { - precipitation: "none", - effects: { - sky_color: 8103167, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.5f, - scale: 0.2f, - downfall: 0.5f, - category: "none" - } - }, - { - name: "minecraft:sunflower_plains", - id: 129, - element: { - precipitation: "rain", - effects: { - sky_color: 7907327, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.125f, - temperature: 0.8f, - scale: 0.05f, - downfall: 0.4f, - category: "plains" - } - }, - { - name: "minecraft:desert_lakes", - id: 130, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.225f, - temperature: 2.0f, - scale: 0.25f, - downfall: 0.0f, - category: "desert" - } - }, - { - name: "minecraft:gravelly_mountains", - id: 131, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.0f, - temperature: 0.2f, - scale: 0.5f, - downfall: 0.3f, - category: "extreme_hills" - } - }, - { - name: "minecraft:flower_forest", - id: 132, - element: { - precipitation: "rain", - effects: { - sky_color: 7972607, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.7f, - scale: 0.4f, - downfall: 0.8f, - category: "forest" - } - }, - { - name: "minecraft:taiga_mountains", - id: 133, - element: { - precipitation: "rain", - effects: { - sky_color: 8233983, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.3f, - temperature: 0.25f, - scale: 0.4f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:swamp_hills", - id: 134, - element: { - precipitation: "rain", - effects: { - grass_color_modifier: "swamp", - sky_color: 7907327, - foliage_color: 6975545, - water_fog_color: 2302743, - fog_color: 12638463, - water_color: 6388580, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: -0.1f, - temperature: 0.8f, - scale: 0.3f, - downfall: 0.9f, - category: "swamp" - } - }, - { - name: "minecraft:ice_spikes", - id: 140, - element: { - precipitation: "snow", - effects: { - sky_color: 8364543, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.425f, - temperature: 0.0f, - scale: 0.45000002f, - downfall: 0.5f, - category: "icy" - } - }, - { - name: "minecraft:modified_jungle", - id: 149, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.95f, - scale: 0.4f, - downfall: 0.9f, - category: "jungle" - } - }, - { - name: "minecraft:modified_jungle_edge", - id: 151, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.95f, - scale: 0.4f, - downfall: 0.8f, - category: "jungle" - } - }, - { - name: "minecraft:tall_birch_forest", - id: 155, - element: { - precipitation: "rain", - effects: { - sky_color: 8037887, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.6f, - scale: 0.4f, - downfall: 0.6f, - category: "forest" - } - }, - { - name: "minecraft:tall_birch_hills", - id: 156, - element: { - precipitation: "rain", - effects: { - sky_color: 8037887, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.55f, - temperature: 0.6f, - scale: 0.5f, - downfall: 0.6f, - category: "forest" - } - }, - { - name: "minecraft:dark_forest_hills", - id: 157, - element: { - precipitation: "rain", - effects: { - grass_color_modifier: "dark_forest", - sky_color: 7972607, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.7f, - scale: 0.4f, - downfall: 0.8f, - category: "forest" - } - }, - { - name: "minecraft:snowy_taiga_mountains", - id: 158, - element: { - precipitation: "snow", - effects: { - sky_color: 8625919, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4020182, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.3f, - temperature: -0.5f, - scale: 0.4f, - downfall: 0.4f, - category: "taiga" - } - }, - { - name: "minecraft:giant_spruce_taiga", - id: 160, - element: { - precipitation: "rain", - effects: { - sky_color: 8233983, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.25f, - scale: 0.2f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:giant_spruce_taiga_hills", - id: 161, - element: { - precipitation: "rain", - effects: { - sky_color: 8233983, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.2f, - temperature: 0.25f, - scale: 0.2f, - downfall: 0.8f, - category: "taiga" - } - }, - { - name: "minecraft:modified_gravelly_mountains", - id: 162, - element: { - precipitation: "rain", - effects: { - sky_color: 8233727, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.0f, - temperature: 0.2f, - scale: 0.5f, - downfall: 0.3f, - category: "extreme_hills" - } - }, - { - name: "minecraft:shattered_savanna", - id: 163, - element: { - precipitation: "none", - effects: { - sky_color: 7776767, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.3625f, - temperature: 1.1f, - scale: 1.225f, - downfall: 0.0f, - category: "savanna" - } - }, - { - name: "minecraft:shattered_savanna_plateau", - id: 164, - element: { - precipitation: "none", - effects: { - sky_color: 7776511, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 1.05f, - temperature: 1.0f, - scale: 1.2125001f, - downfall: 0.0f, - category: "savanna" - } - }, - { - name: "minecraft:eroded_badlands", - id: 165, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:modified_wooded_badlands_plateau", - id: 166, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 2.0f, - scale: 0.3f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:modified_badlands_plateau", - id: 167, - element: { - precipitation: "none", - effects: { - sky_color: 7254527, - grass_color: 9470285, - foliage_color: 10387789, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 2.0f, - scale: 0.3f, - downfall: 0.0f, - category: "mesa" - } - }, - { - name: "minecraft:bamboo_jungle", - id: 168, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 0.95f, - scale: 0.2f, - downfall: 0.9f, - category: "jungle" - } - }, - { - name: "minecraft:bamboo_jungle_hills", - id: 169, - element: { - precipitation: "rain", - effects: { - sky_color: 7842047, - water_fog_color: 329011, - fog_color: 12638463, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.cave", - block_search_extent: 8 - } - }, - depth: 0.45f, - temperature: 0.95f, - scale: 0.3f, - downfall: 0.9f, - category: "jungle" - } - }, - { - name: "minecraft:soul_sand_valley", - id: 170, - element: { - precipitation: "none", - effects: { - music: { - replace_current_music: 0b, - max_delay: 24000, - sound: "minecraft:music.nether.soul_sand_valley", - min_delay: 12000 - }, - sky_color: 7254527, - ambient_sound: "minecraft:ambient.soul_sand_valley.loop", - additions_sound: { - sound: "minecraft:ambient.soul_sand_valley.additions", - tick_chance: 0.0111d - }, - particle: { - probability: 0.00625f, - options: { - type: "minecraft:ash" - } - }, - water_fog_color: 329011, - fog_color: 1787717, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.soul_sand_valley.mood", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "nether" - } - }, - { - name: "minecraft:crimson_forest", - id: 171, - element: { - precipitation: "none", - effects: { - music: { - replace_current_music: 0b, - max_delay: 24000, - sound: "minecraft:music.nether.crimson_forest", - min_delay: 12000 - }, - sky_color: 7254527, - ambient_sound: "minecraft:ambient.crimson_forest.loop", - additions_sound: { - sound: "minecraft:ambient.crimson_forest.additions", - tick_chance: 0.0111d - }, - particle: { - probability: 0.025f, - options: { - type: "minecraft:crimson_spore" - } - }, - water_fog_color: 329011, - fog_color: 3343107, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.crimson_forest.mood", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "nether" - } - }, - { - name: "minecraft:warped_forest", - id: 172, - element: { - precipitation: "none", - effects: { - music: { - replace_current_music: 0b, - max_delay: 24000, - sound: "minecraft:music.nether.warped_forest", - min_delay: 12000 - }, - sky_color: 7254527, - ambient_sound: "minecraft:ambient.warped_forest.loop", - additions_sound: { - sound: "minecraft:ambient.warped_forest.additions", - tick_chance: 0.0111d - }, - particle: { - probability: 0.01428f, - options: { - type: "minecraft:warped_spore" - } - }, - water_fog_color: 329011, - fog_color: 1705242, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.warped_forest.mood", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "nether" - } - }, - { - name: "minecraft:basalt_deltas", - id: 173, - element: { - precipitation: "none", - effects: { - music: { - replace_current_music: 0b, - max_delay: 24000, - sound: "minecraft:music.nether.basalt_deltas", - min_delay: 12000 - }, - sky_color: 7254527, - ambient_sound: "minecraft:ambient.basalt_deltas.loop", - additions_sound: { - sound: "minecraft:ambient.basalt_deltas.additions", - tick_chance: 0.0111d - }, - particle: { - probability: 0.118093334f, - options: { - type: "minecraft:white_ash" - } - }, - water_fog_color: 4341314, - fog_color: 6840176, - water_color: 4159204, - mood_sound: { - tick_delay: 6000, - offset: 2.0d, - sound: "minecraft:ambient.basalt_deltas.mood", - block_search_extent: 8 - } - }, - depth: 0.1f, - temperature: 2.0f, - scale: 0.2f, - downfall: 0.0f, - category: "nether" - } - } - ] - } -} \ No newline at end of file +{"minecraft:dimension_type":{type:"minecraft:dimension_type",value:[{name:"minecraft:overworld",id:0,element:{piglin_safe:0B,natural:1B,ambient_light:0.0000000000F,infiniburn:"#minecraft:infiniburn_overworld",respawn_anchor_works:0B,has_skylight:1B,bed_works:1B,effects:"minecraft:overworld",has_raids:1B,logical_height:384,coordinate_scale:1.0000000000D,min_y:-64,has_ceiling:0B,ultrawarm:0B,height:384}},{name:"minecraft:overworld_caves",id:1,element:{piglin_safe:0B,natural:1B,ambient_light:0.0000000000F,infiniburn:"#minecraft:infiniburn_overworld",respawn_anchor_works:0B,has_skylight:1B,bed_works:1B,effects:"minecraft:overworld",has_raids:1B,logical_height:384,coordinate_scale:1.0000000000D,min_y:-64,has_ceiling:1B,ultrawarm:0B,height:384}},{name:"minecraft:the_nether",id:2,element:{piglin_safe:1B,natural:0B,ambient_light:0.1000000015F,infiniburn:"#minecraft:infiniburn_nether",respawn_anchor_works:1B,has_skylight:0B,bed_works:0B,effects:"minecraft:the_nether",fixed_time:18000L,has_raids:0B,logical_height:128,coordinate_scale:8.0000000000D,min_y:0,has_ceiling:1B,ultrawarm:1B,height:256}},{name:"minecraft:the_end",id:3,element:{piglin_safe:0B,natural:0B,ambient_light:0.0000000000F,infiniburn:"#minecraft:infiniburn_end",respawn_anchor_works:0B,has_skylight:0B,bed_works:0B,effects:"minecraft:the_end",fixed_time:6000L,has_raids:1B,logical_height:256,coordinate_scale:1.0000000000D,min_y:0,has_ceiling:0B,ultrawarm:0B,height:256}}]},"minecraft:worldgen/biome":{type:"minecraft:worldgen/biome",value:[{name:"minecraft:the_void",id:0,element:{precipitation:none,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:none}},{name:"minecraft:plains",id:1,element:{precipitation:rain,effects:{sky_color:7907327,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8000000119F,downfall:0.4000000060F,category:plains}},{name:"minecraft:sunflower_plains",id:2,element:{precipitation:rain,effects:{sky_color:7907327,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8000000119F,downfall:0.4000000060F,category:plains}},{name:"minecraft:snowy_plains",id:3,element:{precipitation:snow,effects:{sky_color:8364543,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.0000000000F,downfall:0.5000000000F,category:icy}},{name:"minecraft:ice_spikes",id:4,element:{precipitation:snow,effects:{sky_color:8364543,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.0000000000F,downfall:0.5000000000F,category:icy}},{name:"minecraft:desert",id:5,element:{precipitation:none,effects:{sky_color:7254527,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:desert}},{name:"minecraft:swamp",id:6,element:{precipitation:rain,effects:{grass_color_modifier:swamp,sky_color:7907327,foliage_color:6975545,water_fog_color:2302743,fog_color:12638463,water_color:6388580,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8000000119F,downfall:0.8999999762F,category:swamp}},{name:"minecraft:forest",id:7,element:{precipitation:rain,effects:{sky_color:7972607,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.6999999881F,downfall:0.8000000119F,category:forest}},{name:"minecraft:flower_forest",id:8,element:{precipitation:rain,effects:{sky_color:7972607,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.6999999881F,downfall:0.8000000119F,category:forest}},{name:"minecraft:birch_forest",id:9,element:{precipitation:rain,effects:{sky_color:8037887,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.6000000238F,downfall:0.6000000238F,category:forest}},{name:"minecraft:dark_forest",id:10,element:{precipitation:rain,effects:{grass_color_modifier:dark_forest,sky_color:7972607,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.6999999881F,downfall:0.8000000119F,category:forest}},{name:"minecraft:old_growth_birch_forest",id:11,element:{precipitation:rain,effects:{sky_color:8037887,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.6000000238F,downfall:0.6000000238F,category:forest}},{name:"minecraft:old_growth_pine_taiga",id:12,element:{precipitation:rain,effects:{sky_color:8168447,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.3000000119F,downfall:0.8000000119F,category:taiga}},{name:"minecraft:old_growth_spruce_taiga",id:13,element:{precipitation:rain,effects:{sky_color:8233983,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2500000000F,downfall:0.8000000119F,category:taiga}},{name:"minecraft:taiga",id:14,element:{precipitation:rain,effects:{sky_color:8233983,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2500000000F,downfall:0.8000000119F,category:taiga}},{name:"minecraft:snowy_taiga",id:15,element:{precipitation:snow,effects:{sky_color:8625919,water_fog_color:329011,fog_color:12638463,water_color:4020182,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:-0.5000000000F,downfall:0.4000000060F,category:taiga}},{name:"minecraft:savanna",id:16,element:{precipitation:none,effects:{sky_color:7254527,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:savanna}},{name:"minecraft:savanna_plateau",id:17,element:{precipitation:none,effects:{sky_color:7254527,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:savanna}},{name:"minecraft:windswept_hills",id:18,element:{precipitation:rain,effects:{sky_color:8233727,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2000000030F,downfall:0.3000000119F,category:extreme_hills}},{name:"minecraft:windswept_gravelly_hills",id:19,element:{precipitation:rain,effects:{sky_color:8233727,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2000000030F,downfall:0.3000000119F,category:extreme_hills}},{name:"minecraft:windswept_forest",id:20,element:{precipitation:rain,effects:{sky_color:8233727,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2000000030F,downfall:0.3000000119F,category:extreme_hills}},{name:"minecraft:windswept_savanna",id:21,element:{precipitation:none,effects:{sky_color:7254527,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:savanna}},{name:"minecraft:jungle",id:22,element:{precipitation:rain,effects:{sky_color:7842047,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.9499999881F,downfall:0.8999999762F,category:jungle}},{name:"minecraft:sparse_jungle",id:23,element:{precipitation:rain,effects:{sky_color:7842047,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.9499999881F,downfall:0.8000000119F,category:jungle}},{name:"minecraft:bamboo_jungle",id:24,element:{precipitation:rain,effects:{sky_color:7842047,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.9499999881F,downfall:0.8999999762F,category:jungle}},{name:"minecraft:badlands",id:25,element:{precipitation:none,effects:{sky_color:7254527,grass_color:9470285,foliage_color:10387789,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:mesa}},{name:"minecraft:eroded_badlands",id:26,element:{precipitation:none,effects:{sky_color:7254527,grass_color:9470285,foliage_color:10387789,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:mesa}},{name:"minecraft:wooded_badlands",id:27,element:{precipitation:none,effects:{sky_color:7254527,grass_color:9470285,foliage_color:10387789,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:mesa}},{name:"minecraft:meadow",id:28,element:{precipitation:rain,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.meadow",min_delay:12000},sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:937679,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.8000000119F,category:mountain}},{name:"minecraft:grove",id:29,element:{precipitation:snow,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.grove",min_delay:12000},sky_color:8495359,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:-0.2000000030F,downfall:0.8000000119F,category:forest}},{name:"minecraft:snowy_slopes",id:30,element:{precipitation:snow,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.snowy_slopes",min_delay:12000},sky_color:8560639,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:-0.3000000119F,downfall:0.8999999762F,category:mountain}},{name:"minecraft:frozen_peaks",id:31,element:{precipitation:snow,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.frozen_peaks",min_delay:12000},sky_color:8756735,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:-0.6999999881F,downfall:0.8999999762F,category:mountain}},{name:"minecraft:jagged_peaks",id:32,element:{precipitation:snow,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.jagged_peaks",min_delay:12000},sky_color:8756735,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:-0.6999999881F,downfall:0.8999999762F,category:mountain}},{name:"minecraft:stony_peaks",id:33,element:{precipitation:rain,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.stony_peaks",min_delay:12000},sky_color:7776511,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:1.0000000000F,downfall:0.3000000119F,category:mountain}},{name:"minecraft:river",id:34,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:river}},{name:"minecraft:frozen_river",id:35,element:{precipitation:snow,effects:{sky_color:8364543,water_fog_color:329011,fog_color:12638463,water_color:3750089,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.0000000000F,downfall:0.5000000000F,category:river}},{name:"minecraft:beach",id:36,element:{precipitation:rain,effects:{sky_color:7907327,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8000000119F,downfall:0.4000000060F,category:beach}},{name:"minecraft:snowy_beach",id:37,element:{precipitation:snow,effects:{sky_color:8364543,water_fog_color:329011,fog_color:12638463,water_color:4020182,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.0500000007F,downfall:0.3000000119F,category:beach}},{name:"minecraft:stony_shore",id:38,element:{precipitation:rain,effects:{sky_color:8233727,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.2000000030F,downfall:0.3000000119F,category:beach}},{name:"minecraft:warm_ocean",id:39,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:270131,fog_color:12638463,water_color:4445678,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:lukewarm_ocean",id:40,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:267827,fog_color:12638463,water_color:4566514,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:deep_lukewarm_ocean",id:41,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:267827,fog_color:12638463,water_color:4566514,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:ocean",id:42,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:deep_ocean",id:43,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:cold_ocean",id:44,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4020182,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:deep_cold_ocean",id:45,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4020182,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean}},{name:"minecraft:frozen_ocean",id:46,element:{precipitation:snow,effects:{sky_color:8364543,water_fog_color:329011,fog_color:12638463,water_color:3750089,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.0000000000F,downfall:0.5000000000F,category:ocean,temperature_modifier:frozen}},{name:"minecraft:deep_frozen_ocean",id:47,element:{precipitation:rain,effects:{sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:3750089,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:ocean,temperature_modifier:frozen}},{name:"minecraft:mushroom_fields",id:48,element:{precipitation:rain,effects:{sky_color:7842047,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8999999762F,downfall:1.0000000000F,category:mushroom}},{name:"minecraft:dripstone_caves",id:49,element:{precipitation:rain,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.dripstone_caves",min_delay:12000},sky_color:7907327,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.8000000119F,downfall:0.4000000060F,category:underground}},{name:"minecraft:lush_caves",id:50,element:{precipitation:rain,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.overworld.lush_caves",min_delay:12000},sky_color:8103167,water_fog_color:329011,fog_color:12638463,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:underground}},{name:"minecraft:nether_wastes",id:51,element:{precipitation:none,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.nether.nether_wastes",min_delay:12000},sky_color:7254527,ambient_sound:"minecraft:ambient.nether_wastes.loop",additions_sound:{sound:"minecraft:ambient.nether_wastes.additions",tick_chance:0.0111000000D},water_fog_color:329011,fog_color:3344392,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.nether_wastes.mood",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:nether}},{name:"minecraft:warped_forest",id:52,element:{precipitation:none,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.nether.warped_forest",min_delay:12000},sky_color:7254527,ambient_sound:"minecraft:ambient.warped_forest.loop",additions_sound:{sound:"minecraft:ambient.warped_forest.additions",tick_chance:0.0111000000D},particle:{probability:0.0142799998F,options:{type:"minecraft:warped_spore"}},water_fog_color:329011,fog_color:1705242,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.warped_forest.mood",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:nether}},{name:"minecraft:crimson_forest",id:53,element:{precipitation:none,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.nether.crimson_forest",min_delay:12000},sky_color:7254527,ambient_sound:"minecraft:ambient.crimson_forest.loop",additions_sound:{sound:"minecraft:ambient.crimson_forest.additions",tick_chance:0.0111000000D},particle:{probability:0.0250000004F,options:{type:"minecraft:crimson_spore"}},water_fog_color:329011,fog_color:3343107,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.crimson_forest.mood",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:nether}},{name:"minecraft:soul_sand_valley",id:54,element:{precipitation:none,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.nether.soul_sand_valley",min_delay:12000},sky_color:7254527,ambient_sound:"minecraft:ambient.soul_sand_valley.loop",additions_sound:{sound:"minecraft:ambient.soul_sand_valley.additions",tick_chance:0.0111000000D},particle:{probability:0.0062500001F,options:{type:"minecraft:ash"}},water_fog_color:329011,fog_color:1787717,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.soul_sand_valley.mood",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:nether}},{name:"minecraft:basalt_deltas",id:55,element:{precipitation:none,effects:{music:{replace_current_music:0B,max_delay:24000,sound:"minecraft:music.nether.basalt_deltas",min_delay:12000},sky_color:7254527,ambient_sound:"minecraft:ambient.basalt_deltas.loop",additions_sound:{sound:"minecraft:ambient.basalt_deltas.additions",tick_chance:0.0111000000D},particle:{probability:0.1180933341F,options:{type:"minecraft:white_ash"}},water_fog_color:329011,fog_color:6840176,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.basalt_deltas.mood",block_search_extent:8}},temperature:2.0000000000F,downfall:0.0000000000F,category:nether}},{name:"minecraft:the_end",id:56,element:{precipitation:none,effects:{sky_color:0,water_fog_color:329011,fog_color:10518688,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:the_end}},{name:"minecraft:end_highlands",id:57,element:{precipitation:none,effects:{sky_color:0,water_fog_color:329011,fog_color:10518688,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:the_end}},{name:"minecraft:end_midlands",id:58,element:{precipitation:none,effects:{sky_color:0,water_fog_color:329011,fog_color:10518688,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:the_end}},{name:"minecraft:small_end_islands",id:59,element:{precipitation:none,effects:{sky_color:0,water_fog_color:329011,fog_color:10518688,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:the_end}},{name:"minecraft:end_barrens",id:60,element:{precipitation:none,effects:{sky_color:0,water_fog_color:329011,fog_color:10518688,water_color:4159204,mood_sound:{tick_delay:6000,offset:2.0000000000D,sound:"minecraft:ambient.cave",block_search_extent:8}},temperature:0.5000000000F,downfall:0.5000000000F,category:the_end}}]}} \ No newline at end of file diff --git a/server/chat.go b/server/chat.go index 329448a..b3463bd 100644 --- a/server/chat.go +++ b/server/chat.go @@ -35,7 +35,7 @@ func NewGlobalChat() *GlobalChat { func (g *GlobalChat) Init(game *Game) { game.AddHandler(&PacketHandler{ ID: packetid.ServerboundChat, - F: func(player *Player, packet Packet757) error { + F: func(player *Player, packet Packet758) error { var msg pk.String if err := pk.Packet(packet).Scan(&msg); err != nil { return err @@ -59,14 +59,14 @@ func (g *GlobalChat) Run(ctx context.Context) { case <-ctx.Done(): return case item := <-g.msg: - g.broadcast(Packet757(pk.Marshal( + g.broadcast(Packet758(pk.Marshal( packetid.ClientboundChat, item.toMessage(), pk.Byte(chatPosChat), pk.UUID(item.p.UUID), ))) case p := <-g.join: - g.broadcast(Packet757(pk.Marshal( + g.broadcast(Packet758(pk.Marshal( packetid.ClientboundChat, chat.TranslateMsg("multiplayer.player.joined", chat.Text(p.Name)).SetColor(chat.Yellow), pk.Byte(chatPosSystem), @@ -74,7 +74,7 @@ func (g *GlobalChat) Run(ctx context.Context) { ))) g.players[p.UUID] = p case p := <-g.quit: - g.broadcast(Packet757(pk.Marshal( + g.broadcast(Packet758(pk.Marshal( packetid.ClientboundChat, chat.TranslateMsg("multiplayer.player.left", chat.Text(p.Name)).SetColor(chat.Yellow), pk.Byte(chatPosSystem), @@ -85,7 +85,7 @@ func (g *GlobalChat) Run(ctx context.Context) { } } -func (g *GlobalChat) broadcast(packet Packet757) { +func (g *GlobalChat) broadcast(packet Packet758) { for _, p := range g.players { p.WritePacket(packet) } diff --git a/server/command/component.go b/server/command/component.go index bd811e1..8bf2297 100644 --- a/server/command/component.go +++ b/server/command/component.go @@ -13,7 +13,7 @@ import ( func (g *Graph) Init(game *server.Game) { game.AddHandler(&server.PacketHandler{ ID: packetid.ServerboundChat, - F: func(player *server.Player, packet server.Packet757) error { + F: func(player *server.Player, packet server.Packet758) error { var msg pk.String if err := pk.Packet(packet).Scan(&msg); err != nil { return err @@ -35,7 +35,7 @@ func (g *Graph) Run(ctx context.Context) {} // AddPlayer implement server.Component for Graph func (g *Graph) AddPlayer(p *server.Player) { - p.WritePacket(server.Packet757(pk.Marshal( + p.WritePacket(server.Packet758(pk.Marshal( packetid.ClientboundCommands, g, ))) } diff --git a/server/dimension.go b/server/dimension.go index c539693..0a7707b 100644 --- a/server/dimension.go +++ b/server/dimension.go @@ -50,10 +50,10 @@ func (s *SimpleDim) PlayerJoin(p *Player) { ) column.Unlock() - p.WritePacket(Packet757(packet)) + p.WritePacket(Packet758(packet)) } - p.WritePacket(Packet757(pk.Marshal( + p.WritePacket(Packet758(pk.Marshal( packetid.ClientboundPlayerPosition, pk.Double(0), pk.Double(143), pk.Double(0), pk.Float(0), pk.Float(0), diff --git a/server/gameplay.go b/server/gameplay.go index aa1103b..10c3778 100644 --- a/server/gameplay.go +++ b/server/gameplay.go @@ -42,7 +42,7 @@ type PacketHandler struct { F packetHandlerFunc } -type packetHandlerFunc func(player *Player, packet Packet757) error +type packetHandlerFunc func(player *Player, packet Packet758) error //go:embed DimensionCodec.snbt var dimensionCodecSNBT string @@ -95,7 +95,9 @@ func (g *Game) AcceptPlayer(name string, id uuid.UUID, protocol int32, conn *net pk.Boolean(false), // Is hardcore pk.Byte(p.Gamemode), // Gamemode pk.Byte(-1), // Prev Gamemode - pk.Array([]pk.Identifier{pk.Identifier(dimInfo.Name)}), + pk.Array([]pk.Identifier{ + pk.Identifier(dimInfo.Name), + }), pk.NBT(nbt.StringifiedMessage(dimensionCodecSNBT)), pk.NBT(nbt.StringifiedMessage(dimensionSNBT)), pk.Identifier(dimInfo.Name), // World Name @@ -145,7 +147,7 @@ func (g *Game) AcceptPlayer(name string, id uuid.UUID, protocol int32, conn *net return } for _, ph := range g.handlers[packet.ID] { - if err := ph.F(p, Packet757(packet)); err != nil { + if err := ph.F(p, Packet758(packet)); err != nil { return } if err := p.GetErr(); err != nil { diff --git a/server/keepalive.go b/server/keepalive.go index a34787b..f560b1f 100644 --- a/server/keepalive.go +++ b/server/keepalive.go @@ -60,7 +60,7 @@ func (k *KeepAlive) AddPlayerDelayUpdateHandler(f func(p *Player, delay time.Dur func (k *KeepAlive) Init(g *Game) { g.AddHandler(&PacketHandler{ ID: packetid.ServerboundKeepAlive, - F: func(player *Player, packet Packet757) error { + F: func(player *Player, packet Packet758) error { var KeepAliveID pk.Long if err := pk.Packet(packet).Scan(&KeepAliveID); err != nil { return err @@ -121,7 +121,7 @@ func (k *KeepAlive) pingPlayer(now time.Time) { if elem := k.pingList.Front(); elem != nil { p := k.pingList.Remove(elem).(keepAliveItem).player // Send Clientbound KeepAlive packet. - p.WritePacket(Packet757(pk.Marshal( + p.WritePacket(Packet758(pk.Marshal( packetid.ClientboundKeepAlive, pk.Long(k.keepAliveID), ))) diff --git a/server/player.go b/server/player.go index 9fbb418..9cae52f 100644 --- a/server/player.go +++ b/server/player.go @@ -22,12 +22,13 @@ type Player struct { errChan chan error } -// Packet757 is a packet in protocol 757. +// Packet758 is a packet in protocol 757. // We are using type system to force programmers to update packets. +type Packet758 pk.Packet type Packet757 pk.Packet // WritePacket to player client. The type of parameter will update per version. -func (p *Player) WritePacket(packet Packet757) { +func (p *Player) WritePacket(packet Packet758) { p.packetQueue.Push(pk.Packet(packet)) } diff --git a/server/playerlist.go b/server/playerlist.go index 42231a6..c70bdee 100644 --- a/server/playerlist.go +++ b/server/playerlist.go @@ -42,7 +42,7 @@ func (p *PlayerList) AddPlayer(player *Player) { defer p.playersLock.Unlock() if len(p.players) >= p.maxPlayer { - player.WritePacket(Packet757(pk.Marshal( + player.WritePacket(Packet758(pk.Marshal( packetid.ClientboundDisconnect, chat.TranslateMsg("multiplayer.disconnect.server_full"), ))) diff --git a/server/server.go b/server/server.go index 52cd67f..1162b83 100644 --- a/server/server.go +++ b/server/server.go @@ -30,8 +30,8 @@ import ( "github.com/Tnze/go-mc/net" ) -const ProtocolName = "1.18.1" -const ProtocolVersion = 757 +const ProtocolName = "1.18.2" +const ProtocolVersion = 758 type Server struct { ListPingHandler