lang: 0x432, script: 0x20, flags: 0x0}, 91: {lang: 0x15e, script: 0x5b, flags: 0x0}, 92: {lang: 0x446, script: 0x5, flags: 0x0}, } type likelyTag struct { lang uint16 region uint16 script uint16 } // Size: 198 bytes, 33 elements var likelyRegionGroup = [33]likelyTag{ 1: {lang: 0x139, region: 0xd7, script: 0x5b}, 2: {lang: 0x139, region: 0x136, script: 0x5b}, 3: {lang: 0x3c0, region: 0x41, script: 0x5b}, 4: {lang: 0x139, region: 0x2f, script: 0x5b}, 5: {lang: 0x139, region: 0xd7, script: 0x5b}, 6: {lang: 0x13e, region: 0xd0, script: 0x5b}, 7: {lang: 0x445, region: 0x130, script: 0x5b}, 8: {lang: 0x3a, region: 0x6c, script: 0x5}, 9: {lang: 0x445, region: 0x4b, script: 0x5b}, 10: {lang: 0x139, region: 0x162, script: 0x5b}, 11: {lang: 0x139, region: 0x136, script: 0x5b}, 12: {lang: 0x139, region: 0x136, script: 0x5b}, 13: {lang: 0x13e, region: 0x5a, script: 0x5b}, 14: {lang: 0x529, region: 0x53, script: 0x3b}, 15: {lang: 0x1be, region: 0x9a, script: 0x22}, 16: {lang: 0x1e1, region: 0x96, script: 0x5b}, 17: {lang: 0x1f9, region: 0x9f, script: 0x5b}, 18: {lang: 0x139, region: 0x2f, script: 0x5b}, 19: {lang: 0x139, region: 0xe7, script: 0x5b}, 20: {lang: 0x139, region: 0x8b, script: 0x5b}, 21: {lang: 0x41b, region: 0x143, script: 0x5b}, 22: {lang: 0x529, region: 0x53, script: 0x3b}, 23: {lang: 0x4bc, region: 0x138, script: 0x5b}, 24: {lang: 0x3a, region: 0x109, script: 0x5}, 25: {lang: 0x3e2, region: 0x107, script: 0x20}, 26: {lang: 0x3e2, region: 0x107, script: 0x20}, 27: {lang: 0x139, region: 0x7c, script: 0x5b}, 28: {lang: 0x10d, region: 0x61, script: 0x5b}, 29: {lang: 0x139, region: 0xd7, script: 0x5b}, 30: {lang: 0x13e, region: 0x1f, script: 0x5b}, 31: {lang: 0x139, region: 0x9b, script: 0x5b}, 32: {lang: 0x139, region: 0x7c, script: 0x5b}, } // Size: 264 bytes, 33 elements var regionContainment = [33]uint64{ // Entry 0 - 1F 0x00000001ffffffff, 0x00000000200007a2, 0x0000000000003044, 0x0000000000000008, 0x00000000803c0010, 0x0000000000000020, 0x0000000000000040, 0x0000000000000080, 0x0000000000000100, 0x0000000000000200, 0x0000000000000400, 0x000000004000384c, 0x0000000000001000, 0x0000000000002000, 0x0000000000004000, 0x0000000000008000, 0x0000000000010000, 0x0000000000020000, 0x0000000000040000, 0x0000000000080000, 0x0000000000100000, 0x0000000000200000, 0x0000000001c1c000, 0x0000000000800000, 0x0000000001000000, 0x000000001e020000, 0x0000000004000000, 0x0000000008000000, 0x0000000010000000, 0x00000000200006a0, 0x0000000040002048, 0x0000000080000000, // Entry 20 - 3F 0x0000000100000000, } // regionInclusion maps region identifiers to sets of regions in regionInclusionBits, // where each set holds all groupings that are directly connected in a region // containment graph. // Size: 359 bytes, 359 elements var regionInclusion = [359]uint8{ // Entry 0 - 3F 0x00, 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x21, 0x22, 0x23, 0x24, 0x25, 0x26, 0x26, 0x23, 0x24, 0x26, 0x27, 0x22, 0x28, 0x29, 0x2a, 0x2b, 0x26, 0x2c, 0x24, 0x23, 0x26, 0x25, 0x2a, 0x2d, 0x2e, 0x24, 0x2f, 0x2d, 0x26, 0x30, 0x31, 0x28, // Entry 40 - 7F 0x26, 0x28, 0x26, 0x25, 0x31, 0x22, 0x32, 0x33, 0x34, 0x30, 0x22, 0x27, 0x27, 0x27, 0x35, 0x2d, 0x29, 0x28, 0x27, 0x36, 0x28, 0x22, 0x21, 0x34, 0x23, 0x21, 0x26, 0x2d, 0x26, 0x22, 0x37, 0x2e, 0x35, 0x2a, 0x22, 0x2f, 0x38, 0x26, 0x26, 0x21, 0x39, 0x39, 0x28, 0x38, 0x39, 0x39, 0x2f, 0x3a, 0x2f, 0x20, 0x21, 0x38, 0x3b, 0x28, 0x3c, 0x2c, 0x21, 0x2a, 0x35, 0x27, 0x38, 0x26, 0x24, 0x28, // Entry 80 - BF 0x2c, 0x2d, 0x23, 0x30, 0x2d, 0x2d, 0x26, 0x27, 0x3a, 0x22, 0x34, 0x3c, 0x2d, 0x28, 0x36, 0x22, 0x34, 0x3a, 0x26, 0x2e, 0x21, 0x39, 0x31, 0x38, 0x24, 0x2c, 0x25, 0x22, 0x24, 0x25, 0x2c, 0x3a, 0x2c, 0x26, 0x24, 0x36, 0x21, 0x2f, 0x3d, 0x31, 0x3c, 0x2f, 0x26, 0x36, 0x36, 0x24, 0x26, 0x3d, 0x31, 0x24, 0x26, 0x35, 0x25, 0x2d, 0x32, 0x38, 0x2a, 0x38, 0x39, 0x39, 0x35, 0x33, 0x23, 0x26, // Entry C0 - FF 0x2f, 0x3c, 0x21, 0x23, 0x2d, 0x31, 0x36, 0x36, 0x3c, 0x26, 0x2d, 0x26, 0x3a, 0x2f, 0x25, 0x2f, 0x34, 0x31, 0x2f, 0x32, 0x3b, 0x2d, 0x2b, 0x2d, 0x21, 0x34, 0x2a, 0x2c, 0x25, 0x21, 0x3c, 0x24, 0x29, 0x2b, 0x24, 0x34, 0x21, 0x28, 0x29, 0x3b, 0x31, 0x25, 0x2e, 0x30, 0x29, 0x26, 0x24, 0x3a, 0x21, 0x3c, 0x28, 0x21, 0x24, 0x21, 0x21, 0x1f, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, // Entry 100 - 13F 0x21, 0x21, 0x21, 0x2f, 0x21, 0x2e, 0x23, 0x33, 0x2f, 0x24, 0x3b, 0x2f, 0x39, 0x38, 0x31, 0x2d, 0x3a, 0x2c, 0x2e, 0x2d, 0x23, 0x2d, 0x2f, 0x28, 0x2f, 0x27, 0x33, 0x34, 0x26, 0x24, 0x32, 0x22, 0x26, 0x27, 0x22, 0x2d, 0x31, 0x3d, 0x29, 0x31, 0x3d, 0x39, 0x29, 0x31, 0x24, 0x26, 0x29, 0x36, 0x2f, 0x33, 0x2f, 0x21, 0x22, 0x21, 0x30, 0x28, 0x3d, 0x23, 0x26, 0x21, 0x28, 0x26, 0x26, 0x31, // Entry 140 - 17F 0x3b, 0x29, 0x21, 0x29, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x23, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x24, 0x24, 0x2f, 0x23, 0x32, 0x2f, 0x27, 0x2f, 0x21, } // regionInclusionBits is an array of bit vectors where every vector represents // a set of region groupings. These sets are used to compute the distance // between two regions for the purpose of language matching. // Size: 584 bytes, 73 elements var regionInclusionBits = [73]uint64{ // Entry 0 - 1F 0x0000000102400813, 0x00000000200007a3, 0x0000000000003844, 0x0000000040000808, 0x00000000803c0011, 0x0000000020000022, 0x0000000040000844, 0x0000000020000082, 0x0000000000000102, 0x0000000020000202, 0x0000000020000402, 0x000000004000384d, 0x0000000000001804, 0x0000000040002804, 0x0000000000404000, 0x0000000000408000, 0x0000000000410000, 0x0000000002020000, 0x0000000000040010, 0x0000000000080010, 0x0000000000100010, 0x0000000000200010, 0x0000000001c1c001, 0x0000000000c00000, 0x0000000001400000, 0x000000001e020001, 0x0000000006000000, 0x000000000a000000, 0x0000000012000000, 0x00000000200006a2, 0x0000000040002848, 0x0000000080000010, // Entry 20 - 3F 0x0000000100000001, 0x0000000000000001, 0x0000000080000000, 0x0000000000020000, 0x0000000001000000, 0x0000000000008000, 0x0000000000002000, 0x0000000000000200, 0x0000000000000008, 0x0000000000200000, 0x0000000110000000, 0x0000000000040000, 0x0000000008000000, 0x0000000000000020, 0x0000000104000000, 0x0000000000000080, 0x0000000000001000, 0x0000000000010000, 0x0000000000000400, 0x0000000004000000, 0x0000000000000040, 0x0000000010000000, 0x0000000000004000, 0x0000000101000000, 0x0000000108000000, 0x0000000000000100, 0x0000000100020000, 0x0000000000080000, 0x0000000000100000, 0x0000000000800000, 0x00000001ffffffff, 0x0000000122400fb3, // Entry 40 - 5F 0x00000001827c0813, 0x000000014240385f, 0x0000000103c1c813, 0x000000011e420813, 0x0000000112000001, 0x0000000106000001, 0x0000000101400001, 0x000000010a000001, 0x0000000102020001, } // regionInclusionNext marks, for each entry in regionInclusionBits, the set of // all groups that are reachable from the groups set in the respective entry. // Size: 73 bytes, 73 elements var regionInclusionNext = [73]uint8{ // Entry 0 - 3F 0x3e, 0x3f, 0x0b, 0x0b, 0x40, 0x01, 0x0b, 0x01, 0x01, 0x01, 0x01, 0x41, 0x0b, 0x0b, 0x16, 0x16, 0x16, 0x19, 0x04, 0x04, 0x04, 0x04, 0x42, 0x16, 0x16, 0x43, 0x19, 0x19, 0x19, 0x01, 0x0b, 0x04, 0x00, 0x00, 0x1f, 0x11, 0x18, 0x0f, 0x0d, 0x09, 0x03, 0x15, 0x44, 0x12, 0x1b, 0x05, 0x45, 0x07, 0x0c, 0x10, 0x0a, 0x1a, 0x06, 0x1c, 0x0e, 0x46, 0x47, 0x08, 0x48, 0x13, 0x14, 0x17, 0x3e, 0x3e, // Entry 40 - 7F 0x3e, 0x3e, 0x3e, 0x3e, 0x43, 0x43, 0x42, 0x43, 0x43, } type parentRel struct { lang uint16 script uint16 maxScript uint16 toRegion uint16 fromRegion []uint16 } // Size: 414 bytes, 5 elements var parents = [5]parentRel{ 0: {lang: 0x139, script: 0x0, maxScript: 0x5b, toRegion: 0x1, fromRegion: []uint16{0x1a, 0x25, 0x26, 0x2f, 0x34, 0x36, 0x3d, 0x42, 0x46, 0x48, 0x49, 0x4a, 0x50, 0x52, 0x5d, 0x5e, 0x62, 0x65, 0x6e, 0x74, 0x75, 0x76, 0x7c, 0x7d, 0x80, 0x81, 0x82, 0x84, 0x8d, 0x8e, 0x97, 0x98, 0x99, 0x9a, 0x9b, 0xa0, 0xa1, 0xa5, 0xa8, 0xaa, 0xae, 0xb2, 0xb5, 0xb6, 0xc0, 0xc7, 0xcb, 0xcc, 0xcd, 0xcf, 0xd1, 0xd3, 0xd6, 0xd7, 0xde, 0xe0, 0xe1, 0xe7, 0xe8, 0xe9, 0xec, 0xf1, 0x108, 0x10a, 0x10b, 0x10c, 0x10e, 0x10f, 0x113, 0x118, 0x11c, 0x11e, 0x120, 0x126, 0x12a, 0x12d, 0x12e, 0x130, 0x132, 0x13a, 0x13d, 0x140, 0x143, 0x162, 0x163, 0x165}}, 1: {lang: 0x139, script: 0x0, maxScript: 0x5b, toRegion: 0x1a, fromRegion: []uint16{0x2e, 0x4e, 0x61, 0x64, 0x73, 0xda, 0x10d, 0x110}}, 2: {lang: 0x13e, script: 0x0, maxScript: 0x5b, toRegion: 0x1f, fromRegion: []uint16{0x2c, 0x3f, 0x41, 0x48, 0x51, 0x54, 0x57, 0x5a, 0x66, 0x6a, 0x8a, 0x90, 0xd0, 0xd9, 0xe3, 0xe5, 0xed, 0xf2, 0x11b, 0x136, 0x137, 0x13c}}, 3: {lang: 0x3c0, script: 0x0, maxScript: 0x5b, toRegion: 0xef, fromRegion: []uint16{0x2a, 0x4e, 0x5b, 0x87, 0x8c, 0xb8, 0xc7, 0xd2, 0x119, 0x127}}, 4: {lang: 0x529, script: 0x3c, maxScript: 0x3c, toRegion: 0x8e, fromRegion: []uint16{0xc7}}, } // Total table size 30466 bytes (29KiB); checksum: 7544152B