From 453ec04bfa52578c9b2ff137b4fbad4d4dcd9422 Mon Sep 17 00:00:00 2001 From: James Ring Date: Tue, 29 Aug 2023 13:21:16 -0700 Subject: [PATCH 1/2] Updated Unicode tables to Unicode 10 --- build.gradle | 4 +- java/com/google/re2j/Unicode.java | 2 +- java/com/google/re2j/UnicodeTables.java | 2163 ++++++++++++++++----- javatests/com/google/re2j/ParserTest.java | 4 +- unicode/build.gradle | 2 +- 5 files changed, 1639 insertions(+), 536 deletions(-) diff --git a/build.gradle b/build.gradle index 7c23235b..c1e91269 100644 --- a/build.gradle +++ b/build.gradle @@ -30,8 +30,8 @@ wrapper { gradleVersion '5.2' } -sourceCompatibility = 1.6 -targetCompatibility = 1.6 +sourceCompatibility = 1.8 +targetCompatibility = 1.8 repositories { mavenCentral() diff --git a/java/com/google/re2j/Unicode.java b/java/com/google/re2j/Unicode.java index c30bd23b..0415fcd5 100644 --- a/java/com/google/re2j/Unicode.java +++ b/java/com/google/re2j/Unicode.java @@ -28,7 +28,7 @@ class Unicode { // Minimum and maximum runes involved in folding. // Checked during test. static final int MIN_FOLD = 0x0041; - static final int MAX_FOLD = 0x1044f; + static final int MAX_FOLD = 0x1E943; // is32 uses binary search to test whether rune is in the specified // slice of 32-bit ranges. diff --git a/java/com/google/re2j/UnicodeTables.java b/java/com/google/re2j/UnicodeTables.java index 8bd827fb..8cabce19 100644 --- a/java/com/google/re2j/UnicodeTables.java +++ b/java/com/google/re2j/UnicodeTables.java @@ -1,10 +1,10 @@ /* - * Copyright (c) 2020 The Go Authors. All rights reserved. + * Copyright (c) 2023 The Go Authors. All rights reserved. * * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ -// Generated at 2020-06-09T16:20:06.352Z by Java 1.8.0_181 using Unicode version 6.0.0.0. +// Generated at 2023-08-29T20:58:39.441939Z by Java 11.0.18 using Unicode version 10.0.0.0. // Do not change this file, your edits will be lost. Instead change UnicodeTablesGenerator.java. package com.google.re2j; @@ -91,18 +91,12 @@ final class UnicodeTables { static final int[][] Inherited = make_Inherited(); - static final int[][] Bamum = make_Bamum(); - static final int[][] Arabic = make_Arabic(); - static final int[][] Lisu = make_Lisu(); - static final int[][] Armenian = make_Armenian(); static final int[][] Bengali = make_Bengali(); - static final int[][] Old_South_Arabian = make_Old_South_Arabian(); - static final int[][] Bopomofo = make_Bopomofo(); static final int[][] Cherokee = make_Cherokee(); @@ -225,22 +219,34 @@ final class UnicodeTables { static final int[][] Egyptian_Hieroglyphs = make_Egyptian_Hieroglyphs(); + static final int[][] Pahawh_Hmong = make_Pahawh_Hmong(); + + static final int[][] Old_Hungarian = make_Old_Hungarian(); + static final int[][] Javanese = make_Javanese(); static final int[][] Kayah_Li = make_Kayah_Li(); static final int[][] Lepcha = make_Lepcha(); + static final int[][] Linear_A = make_Linear_A(); + static final int[][] Mandaic = make_Mandaic(); + static final int[][] Meroitic_Hieroglyphs = make_Meroitic_Hieroglyphs(); + static final int[][] Nko = make_Nko(); static final int[][] Old_Turkic = make_Old_Turkic(); + static final int[][] Old_Permic = make_Old_Permic(); + static final int[][] Phags_Pa = make_Phags_Pa(); static final int[][] Phoenician = make_Phoenician(); + static final int[][] Miao = make_Miao(); + static final int[][] Vai = make_Vai(); static final int[][] Cuneiform = make_Cuneiform(); @@ -261,6 +267,8 @@ final class UnicodeTables { static final int[][] Saurashtra = make_Saurashtra(); + static final int[][] SignWriting = make_SignWriting(); + static final int[][] Sundanese = make_Sundanese(); static final int[][] Meetei_Mayek = make_Meetei_Mayek(); @@ -269,16 +277,100 @@ final class UnicodeTables { static final int[][] Avestan = make_Avestan(); + static final int[][] Chakma = make_Chakma(); + static final int[][] Kaithi = make_Kaithi(); + static final int[][] Manichaean = make_Manichaean(); + static final int[][] Inscriptional_Pahlavi = make_Inscriptional_Pahlavi(); + static final int[][] Psalter_Pahlavi = make_Psalter_Pahlavi(); + static final int[][] Inscriptional_Parthian = make_Inscriptional_Parthian(); static final int[][] Samaritan = make_Samaritan(); static final int[][] Tai_Viet = make_Tai_Viet(); + static final int[][] Bamum = make_Bamum(); + + static final int[][] Lisu = make_Lisu(); + + static final int[][] Old_South_Arabian = make_Old_South_Arabian(); + + static final int[][] Bassa_Vah = make_Bassa_Vah(); + + static final int[][] Duployan = make_Duployan(); + + static final int[][] Elbasan = make_Elbasan(); + + static final int[][] Grantha = make_Grantha(); + + static final int[][] Mende_Kikakui = make_Mende_Kikakui(); + + static final int[][] Meroitic_Cursive = make_Meroitic_Cursive(); + + static final int[][] Old_North_Arabian = make_Old_North_Arabian(); + + static final int[][] Nabataean = make_Nabataean(); + + static final int[][] Palmyrene = make_Palmyrene(); + + static final int[][] Khudawadi = make_Khudawadi(); + + static final int[][] Warang_Citi = make_Warang_Citi(); + + static final int[][] Mro = make_Mro(); + + static final int[][] Nushu = make_Nushu(); + + static final int[][] Sharada = make_Sharada(); + + static final int[][] Sora_Sompeng = make_Sora_Sompeng(); + + static final int[][] Takri = make_Takri(); + + static final int[][] Tangut = make_Tangut(); + + static final int[][] Anatolian_Hieroglyphs = make_Anatolian_Hieroglyphs(); + + static final int[][] Khojki = make_Khojki(); + + static final int[][] Tirhuta = make_Tirhuta(); + + static final int[][] Caucasian_Albanian = make_Caucasian_Albanian(); + + static final int[][] Mahajani = make_Mahajani(); + + static final int[][] Ahom = make_Ahom(); + + static final int[][] Hatran = make_Hatran(); + + static final int[][] Modi = make_Modi(); + + static final int[][] Multani = make_Multani(); + + static final int[][] Pau_Cin_Hau = make_Pau_Cin_Hau(); + + static final int[][] Siddham = make_Siddham(); + + static final int[][] Adlam = make_Adlam(); + + static final int[][] Bhaiksuki = make_Bhaiksuki(); + + static final int[][] Marchen = make_Marchen(); + + static final int[][] Newa = make_Newa(); + + static final int[][] Osage = make_Osage(); + + static final int[][] Masaram_Gondi = make_Masaram_Gondi(); + + static final int[][] Soyombo = make_Soyombo(); + + static final int[][] Zanabazar_Square = make_Zanabazar_Square(); + static final int[][] Upper = Lu; static final Map CATEGORIES = Categories(); @@ -304,7 +396,7 @@ final class UnicodeTables { static final Map FOLD_CATEGORIES = FoldCategory(); static { - CASE_ORBIT = new char[8492]; + CASE_ORBIT = new char[42572]; CASE_ORBIT[0x4b] = 0x6b; CASE_ORBIT[0x53] = 0x73; CASE_ORBIT[0x6b] = 0x212a; @@ -360,6 +452,29 @@ final class UnicodeTables { CASE_ORBIT[0x3f1] = 0x3a1; CASE_ORBIT[0x3f4] = 0x398; CASE_ORBIT[0x3f5] = 0x395; + CASE_ORBIT[0x412] = 0x432; + CASE_ORBIT[0x414] = 0x434; + CASE_ORBIT[0x41e] = 0x43e; + CASE_ORBIT[0x421] = 0x441; + CASE_ORBIT[0x422] = 0x442; + CASE_ORBIT[0x42a] = 0x44a; + CASE_ORBIT[0x432] = 0x1c80; + CASE_ORBIT[0x434] = 0x1c81; + CASE_ORBIT[0x43e] = 0x1c82; + CASE_ORBIT[0x441] = 0x1c83; + CASE_ORBIT[0x442] = 0x1c84; + CASE_ORBIT[0x44a] = 0x1c86; + CASE_ORBIT[0x462] = 0x463; + CASE_ORBIT[0x463] = 0x1c87; + CASE_ORBIT[0x1c80] = 0x412; + CASE_ORBIT[0x1c81] = 0x414; + CASE_ORBIT[0x1c82] = 0x41e; + CASE_ORBIT[0x1c83] = 0x421; + CASE_ORBIT[0x1c84] = 0x1c85; + CASE_ORBIT[0x1c85] = 0x422; + CASE_ORBIT[0x1c86] = 0x42a; + CASE_ORBIT[0x1c87] = 0x462; + CASE_ORBIT[0x1c88] = 0xa64a; CASE_ORBIT[0x1e60] = 0x1e61; CASE_ORBIT[0x1e61] = 0x1e9b; CASE_ORBIT[0x1e9b] = 0x1e60; @@ -368,6 +483,8 @@ final class UnicodeTables { CASE_ORBIT[0x2126] = 0x3a9; CASE_ORBIT[0x212a] = 0x4b; CASE_ORBIT[0x212b] = 0xc5; + CASE_ORBIT[0xa64a] = 0xa64b; + CASE_ORBIT[0xa64b] = 0x1c88; } private UnicodeTables() {} @@ -409,8 +526,9 @@ private static int[][] make_Lu() { {0x0244, 0x0246, 1}, {0x0248, 0x024E, 2}, {0x0370, 0x0372, 2}, - {0x0376, 0x0386, 16}, - {0x0388, 0x038A, 1}, + {0x0376, 0x037F, 9}, + {0x0386, 0x0388, 2}, + {0x0389, 0x038A, 1}, {0x038C, 0x038E, 2}, {0x038F, 0x0391, 2}, {0x0392, 0x03A1, 1}, @@ -424,9 +542,11 @@ private static int[][] make_Lu() { {0x0460, 0x0480, 2}, {0x048A, 0x04C0, 2}, {0x04C1, 0x04CD, 2}, - {0x04D0, 0x0526, 2}, + {0x04D0, 0x052E, 2}, {0x0531, 0x0556, 1}, {0x10A0, 0x10C5, 1}, + {0x10C7, 0x10CD, 6}, + {0x13A0, 0x13F5, 1}, {0x1E00, 0x1E94, 2}, {0x1E9E, 0x1EFE, 2}, {0x1F08, 0x1F0F, 1}, @@ -460,17 +580,24 @@ private static int[][] make_Lu() { {0x2C7E, 0x2C80, 1}, {0x2C82, 0x2CE2, 2}, {0x2CEB, 0x2CED, 2}, - {0xA640, 0xA66C, 2}, - {0xA680, 0xA696, 2}, + {0x2CF2, 0xA640, 31054}, + {0xA642, 0xA66C, 2}, + {0xA680, 0xA69A, 2}, {0xA722, 0xA72E, 2}, {0xA732, 0xA76E, 2}, {0xA779, 0xA77D, 2}, {0xA77E, 0xA786, 2}, {0xA78B, 0xA78D, 2}, - {0xA790, 0xA7A0, 16}, - {0xA7A2, 0xA7A8, 2}, - {0xFF21, 0xFF3A, 1}, + {0xA790, 0xA792, 2}, + {0xA796, 0xA7AA, 2}, + {0xA7AB, 0xA7AE, 1}, + {0xA7B0, 0xA7B4, 1}, + {0xA7B6, 0xFF21, 22379}, + {0xFF22, 0xFF3A, 1}, {0x10400, 0x10427, 1}, + {0x104B0, 0x104D3, 1}, + {0x10C80, 0x10CB2, 1}, + {0x118A0, 0x118BF, 1}, {0x1D400, 0x1D419, 1}, {0x1D434, 0x1D44D, 1}, {0x1D468, 0x1D481, 1}, @@ -500,15 +627,15 @@ private static int[][] make_Lu() { {0x1D71C, 0x1D734, 1}, {0x1D756, 0x1D76E, 1}, {0x1D790, 0x1D7A8, 1}, - {0x1D7CA, 0x1D7CA, 1} + {0x1D7CA, 0x1E900, 4406}, + {0x1E901, 0x1E921, 1} }; } private static int[][] make_Ll() { return new int[][] { {0x0061, 0x007A, 1}, - {0x00AA, 0x00B5, 11}, - {0x00BA, 0x00DF, 37}, + {0x00B5, 0x00DF, 42}, {0x00E0, 0x00F6, 1}, {0x00F8, 0x00FF, 1}, {0x0101, 0x0137, 2}, @@ -556,10 +683,12 @@ private static int[][] make_Ll() { {0x0461, 0x0481, 2}, {0x048B, 0x04BF, 2}, {0x04C2, 0x04CE, 2}, - {0x04CF, 0x0527, 2}, + {0x04CF, 0x052F, 2}, {0x0561, 0x0587, 1}, + {0x13F8, 0x13FD, 1}, + {0x1C80, 0x1C88, 1}, {0x1D00, 0x1D2B, 1}, - {0x1D62, 0x1D77, 1}, + {0x1D6B, 0x1D77, 1}, {0x1D79, 0x1D9A, 1}, {0x1E01, 0x1E95, 2}, {0x1E96, 0x1E9D, 1}, @@ -596,13 +725,14 @@ private static int[][] make_Ll() { {0x2C66, 0x2C6C, 2}, {0x2C71, 0x2C73, 2}, {0x2C74, 0x2C76, 2}, - {0x2C77, 0x2C7C, 1}, + {0x2C77, 0x2C7B, 1}, {0x2C81, 0x2CE3, 2}, {0x2CE4, 0x2CEC, 8}, - {0x2CEE, 0x2D00, 18}, - {0x2D01, 0x2D25, 1}, + {0x2CEE, 0x2CF3, 5}, + {0x2D00, 0x2D25, 1}, + {0x2D27, 0x2D2D, 6}, {0xA641, 0xA66D, 2}, - {0xA681, 0xA697, 2}, + {0xA681, 0xA69B, 2}, {0xA723, 0xA72F, 2}, {0xA730, 0xA731, 1}, {0xA733, 0xA771, 2}, @@ -610,13 +740,21 @@ private static int[][] make_Ll() { {0xA77A, 0xA77C, 2}, {0xA77F, 0xA787, 2}, {0xA78C, 0xA78E, 2}, - {0xA791, 0xA7A1, 16}, - {0xA7A3, 0xA7A9, 2}, - {0xA7FA, 0xFB00, 21254}, - {0xFB01, 0xFB06, 1}, + {0xA791, 0xA793, 2}, + {0xA794, 0xA795, 1}, + {0xA797, 0xA7A9, 2}, + {0xA7B5, 0xA7B7, 2}, + {0xA7FA, 0xAB30, 822}, + {0xAB31, 0xAB5A, 1}, + {0xAB60, 0xAB65, 1}, + {0xAB70, 0xABBF, 1}, + {0xFB00, 0xFB06, 1}, {0xFB13, 0xFB17, 1}, {0xFF41, 0xFF5A, 1}, {0x10428, 0x1044F, 1}, + {0x104D8, 0x104FB, 1}, + {0x10CC0, 0x10CF2, 1}, + {0x118C0, 0x118DF, 1}, {0x1D41A, 0x1D433, 1}, {0x1D44E, 0x1D454, 1}, {0x1D456, 0x1D467, 1}, @@ -644,7 +782,8 @@ private static int[][] make_Ll() { {0x1D78A, 0x1D78F, 1}, {0x1D7AA, 0x1D7C2, 1}, {0x1D7C4, 0x1D7C9, 1}, - {0x1D7CB, 0x1D7CB, 1} + {0x1D7CB, 0x1E922, 4439}, + {0x1E923, 0x1E943, 1} }; } @@ -677,30 +816,40 @@ private static int[][] make_Lm() { {0x17D7, 0x1843, 108}, {0x1AA7, 0x1C78, 465}, {0x1C79, 0x1C7D, 1}, - {0x1D2C, 0x1D61, 1}, + {0x1D2C, 0x1D6A, 1}, {0x1D78, 0x1D9B, 35}, {0x1D9C, 0x1DBF, 1}, {0x2071, 0x207F, 14}, {0x2090, 0x209C, 1}, - {0x2C7D, 0x2D6F, 242}, - {0x2E2F, 0x3005, 470}, - {0x3031, 0x3035, 1}, + {0x2C7C, 0x2C7D, 1}, + {0x2D6F, 0x2E2F, 192}, + {0x3005, 0x3031, 44}, + {0x3032, 0x3035, 1}, {0x303B, 0x309D, 98}, {0x309E, 0x30FC, 94}, {0x30FD, 0x30FE, 1}, {0xA015, 0xA4F8, 1251}, {0xA4F9, 0xA4FD, 1}, {0xA60C, 0xA67F, 115}, + {0xA69C, 0xA69D, 1}, {0xA717, 0xA71F, 1}, {0xA770, 0xA788, 24}, - {0xA9CF, 0xAA70, 161}, - {0xAADD, 0xFF70, 21651}, - {0xFF9E, 0xFF9F, 1} + {0xA7F8, 0xA7F9, 1}, + {0xA9CF, 0xA9E6, 23}, + {0xAA70, 0xAADD, 109}, + {0xAAF3, 0xAAF4, 1}, + {0xAB5C, 0xAB5F, 1}, + {0xFF70, 0xFF9E, 46}, + {0xFF9F, 0x16B40, 27553}, + {0x16B41, 0x16B43, 1}, + {0x16F93, 0x16F9F, 1}, + {0x16FE0, 0x16FE1, 1} }; } private static int[][] make_Lo() { return new int[][] { + {0x00AA, 0x00BA, 16}, {0x01BB, 0x01C0, 5}, {0x01C1, 0x01C3, 1}, {0x0294, 0x05D0, 828}, @@ -720,11 +869,13 @@ private static int[][] make_Lo() { {0x07CB, 0x07EA, 1}, {0x0800, 0x0815, 1}, {0x0840, 0x0858, 1}, + {0x0860, 0x086A, 1}, + {0x08A0, 0x08B4, 1}, + {0x08B6, 0x08BD, 1}, {0x0904, 0x0939, 1}, {0x093D, 0x0950, 19}, {0x0958, 0x0961, 1}, - {0x0972, 0x0977, 1}, - {0x0979, 0x097F, 1}, + {0x0972, 0x0980, 1}, {0x0985, 0x098C, 1}, {0x098F, 0x0990, 1}, {0x0993, 0x09A8, 1}, @@ -735,7 +886,8 @@ private static int[][] make_Lo() { {0x09DC, 0x09DD, 1}, {0x09DF, 0x09E1, 1}, {0x09F0, 0x09F1, 1}, - {0x0A05, 0x0A0A, 1}, + {0x09FC, 0x0A05, 9}, + {0x0A06, 0x0A0A, 1}, {0x0A0F, 0x0A10, 1}, {0x0A13, 0x0A28, 1}, {0x0A2A, 0x0A30, 1}, @@ -753,7 +905,8 @@ private static int[][] make_Lo() { {0x0AB5, 0x0AB9, 1}, {0x0ABD, 0x0AD0, 19}, {0x0AE0, 0x0AE1, 1}, - {0x0B05, 0x0B0C, 1}, + {0x0AF9, 0x0B05, 12}, + {0x0B06, 0x0B0C, 1}, {0x0B0F, 0x0B10, 1}, {0x0B13, 0x0B28, 1}, {0x0B2A, 0x0B30, 1}, @@ -776,11 +929,11 @@ private static int[][] make_Lo() { {0x0C06, 0x0C0C, 1}, {0x0C0E, 0x0C10, 1}, {0x0C12, 0x0C28, 1}, - {0x0C2A, 0x0C33, 1}, - {0x0C35, 0x0C39, 1}, + {0x0C2A, 0x0C39, 1}, {0x0C3D, 0x0C58, 27}, - {0x0C59, 0x0C60, 7}, - {0x0C61, 0x0C85, 36}, + {0x0C59, 0x0C5A, 1}, + {0x0C60, 0x0C61, 1}, + {0x0C80, 0x0C85, 5}, {0x0C86, 0x0C8C, 1}, {0x0C8E, 0x0C90, 1}, {0x0C92, 0x0CA8, 1}, @@ -793,7 +946,8 @@ private static int[][] make_Lo() { {0x0D0E, 0x0D10, 1}, {0x0D12, 0x0D3A, 1}, {0x0D3D, 0x0D4E, 17}, - {0x0D60, 0x0D61, 1}, + {0x0D54, 0x0D56, 1}, + {0x0D5F, 0x0D61, 1}, {0x0D7A, 0x0D7F, 1}, {0x0D85, 0x0D96, 1}, {0x0D9A, 0x0DB1, 1}, @@ -816,7 +970,7 @@ private static int[][] make_Lo() { {0x0EB2, 0x0EB3, 1}, {0x0EBD, 0x0EC0, 3}, {0x0EC1, 0x0EC4, 1}, - {0x0EDC, 0x0EDD, 1}, + {0x0EDC, 0x0EDF, 1}, {0x0F00, 0x0F40, 64}, {0x0F41, 0x0F47, 1}, {0x0F49, 0x0F6C, 1}, @@ -831,7 +985,7 @@ private static int[][] make_Lo() { {0x1075, 0x1081, 1}, {0x108E, 0x10D0, 66}, {0x10D1, 0x10FA, 1}, - {0x1100, 0x1248, 1}, + {0x10FD, 0x1248, 1}, {0x124A, 0x124D, 1}, {0x1250, 0x1256, 1}, {0x1258, 0x125A, 2}, @@ -848,11 +1002,11 @@ private static int[][] make_Lo() { {0x1312, 0x1315, 1}, {0x1318, 0x135A, 1}, {0x1380, 0x138F, 1}, - {0x13A0, 0x13F4, 1}, {0x1401, 0x166C, 1}, {0x166F, 0x167F, 1}, {0x1681, 0x169A, 1}, {0x16A0, 0x16EA, 1}, + {0x16F1, 0x16F8, 1}, {0x1700, 0x170C, 1}, {0x170E, 0x1711, 1}, {0x1720, 0x1731, 1}, @@ -863,28 +1017,30 @@ private static int[][] make_Lo() { {0x17DC, 0x1820, 68}, {0x1821, 0x1842, 1}, {0x1844, 0x1877, 1}, - {0x1880, 0x18A8, 1}, + {0x1880, 0x1884, 1}, + {0x1887, 0x18A8, 1}, {0x18AA, 0x18B0, 6}, {0x18B1, 0x18F5, 1}, - {0x1900, 0x191C, 1}, + {0x1900, 0x191E, 1}, {0x1950, 0x196D, 1}, {0x1970, 0x1974, 1}, {0x1980, 0x19AB, 1}, - {0x19C1, 0x19C7, 1}, + {0x19B0, 0x19C9, 1}, {0x1A00, 0x1A16, 1}, {0x1A20, 0x1A54, 1}, {0x1B05, 0x1B33, 1}, {0x1B45, 0x1B4B, 1}, {0x1B83, 0x1BA0, 1}, {0x1BAE, 0x1BAF, 1}, - {0x1BC0, 0x1BE5, 1}, + {0x1BBA, 0x1BE5, 1}, {0x1C00, 0x1C23, 1}, {0x1C4D, 0x1C4F, 1}, {0x1C5A, 0x1C77, 1}, {0x1CE9, 0x1CEC, 1}, {0x1CEE, 0x1CF1, 1}, + {0x1CF5, 0x1CF6, 1}, {0x2135, 0x2138, 1}, - {0x2D30, 0x2D65, 1}, + {0x2D30, 0x2D67, 1}, {0x2D80, 0x2D96, 1}, {0x2DA0, 0x2DA6, 1}, {0x2DA8, 0x2DAE, 1}, @@ -899,12 +1055,12 @@ private static int[][] make_Lo() { {0x309F, 0x30A1, 2}, {0x30A2, 0x30FA, 1}, {0x30FF, 0x3105, 6}, - {0x3106, 0x312D, 1}, + {0x3106, 0x312E, 1}, {0x3131, 0x318E, 1}, {0x31A0, 0x31BA, 1}, {0x31F0, 0x31FF, 1}, {0x3400, 0x4DB5, 1}, - {0x4E00, 0x9FCB, 1}, + {0x4E00, 0x9FEA, 1}, {0xA000, 0xA014, 1}, {0xA016, 0xA48C, 1}, {0xA4D0, 0xA4F7, 1}, @@ -913,6 +1069,7 @@ private static int[][] make_Lo() { {0xA62A, 0xA62B, 1}, {0xA66E, 0xA6A0, 50}, {0xA6A1, 0xA6E5, 1}, + {0xA78F, 0xA7F7, 104}, {0xA7FB, 0xA801, 1}, {0xA803, 0xA805, 1}, {0xA807, 0xA80A, 1}, @@ -920,24 +1077,29 @@ private static int[][] make_Lo() { {0xA840, 0xA873, 1}, {0xA882, 0xA8B3, 1}, {0xA8F2, 0xA8F7, 1}, - {0xA8FB, 0xA90A, 15}, - {0xA90B, 0xA925, 1}, + {0xA8FB, 0xA8FD, 2}, + {0xA90A, 0xA925, 1}, {0xA930, 0xA946, 1}, {0xA960, 0xA97C, 1}, {0xA984, 0xA9B2, 1}, + {0xA9E0, 0xA9E4, 1}, + {0xA9E7, 0xA9EF, 1}, + {0xA9FA, 0xA9FE, 1}, {0xAA00, 0xAA28, 1}, {0xAA40, 0xAA42, 1}, {0xAA44, 0xAA4B, 1}, {0xAA60, 0xAA6F, 1}, {0xAA71, 0xAA76, 1}, - {0xAA7A, 0xAA80, 6}, - {0xAA81, 0xAAAF, 1}, + {0xAA7A, 0xAA7E, 4}, + {0xAA7F, 0xAAAF, 1}, {0xAAB1, 0xAAB5, 4}, {0xAAB6, 0xAAB9, 3}, {0xAABA, 0xAABD, 1}, {0xAAC0, 0xAAC2, 2}, {0xAADB, 0xAADC, 1}, - {0xAB01, 0xAB06, 1}, + {0xAAE0, 0xAAEA, 1}, + {0xAAF2, 0xAB01, 15}, + {0xAB02, 0xAB06, 1}, {0xAB09, 0xAB0E, 1}, {0xAB11, 0xAB16, 1}, {0xAB20, 0xAB26, 1}, @@ -946,8 +1108,7 @@ private static int[][] make_Lo() { {0xAC00, 0xD7A3, 1}, {0xD7B0, 0xD7C6, 1}, {0xD7CB, 0xD7FB, 1}, - {0xF900, 0xFA2D, 1}, - {0xFA30, 0xFA6D, 1}, + {0xF900, 0xFA6D, 1}, {0xFA70, 0xFAD9, 1}, {0xFB1D, 0xFB1F, 2}, {0xFB20, 0xFB28, 1}, @@ -979,39 +1140,146 @@ private static int[][] make_Lo() { {0x10080, 0x100FA, 1}, {0x10280, 0x1029C, 1}, {0x102A0, 0x102D0, 1}, - {0x10300, 0x1031E, 1}, - {0x10330, 0x10340, 1}, + {0x10300, 0x1031F, 1}, + {0x1032D, 0x10340, 1}, {0x10342, 0x10349, 1}, + {0x10350, 0x10375, 1}, {0x10380, 0x1039D, 1}, {0x103A0, 0x103C3, 1}, {0x103C8, 0x103CF, 1}, {0x10450, 0x1049D, 1}, + {0x10500, 0x10527, 1}, + {0x10530, 0x10563, 1}, + {0x10600, 0x10736, 1}, + {0x10740, 0x10755, 1}, + {0x10760, 0x10767, 1}, {0x10800, 0x10805, 1}, {0x10808, 0x1080A, 2}, {0x1080B, 0x10835, 1}, {0x10837, 0x10838, 1}, {0x1083C, 0x1083F, 3}, {0x10840, 0x10855, 1}, + {0x10860, 0x10876, 1}, + {0x10880, 0x1089E, 1}, + {0x108E0, 0x108F2, 1}, + {0x108F4, 0x108F5, 1}, {0x10900, 0x10915, 1}, {0x10920, 0x10939, 1}, + {0x10980, 0x109B7, 1}, + {0x109BE, 0x109BF, 1}, {0x10A00, 0x10A10, 16}, {0x10A11, 0x10A13, 1}, {0x10A15, 0x10A17, 1}, {0x10A19, 0x10A33, 1}, {0x10A60, 0x10A7C, 1}, + {0x10A80, 0x10A9C, 1}, + {0x10AC0, 0x10AC7, 1}, + {0x10AC9, 0x10AE4, 1}, {0x10B00, 0x10B35, 1}, {0x10B40, 0x10B55, 1}, {0x10B60, 0x10B72, 1}, + {0x10B80, 0x10B91, 1}, {0x10C00, 0x10C48, 1}, {0x11003, 0x11037, 1}, {0x11083, 0x110AF, 1}, - {0x12000, 0x1236E, 1}, + {0x110D0, 0x110E8, 1}, + {0x11103, 0x11126, 1}, + {0x11150, 0x11172, 1}, + {0x11176, 0x11183, 13}, + {0x11184, 0x111B2, 1}, + {0x111C1, 0x111C4, 1}, + {0x111DA, 0x111DC, 2}, + {0x11200, 0x11211, 1}, + {0x11213, 0x1122B, 1}, + {0x11280, 0x11286, 1}, + {0x11288, 0x1128A, 2}, + {0x1128B, 0x1128D, 1}, + {0x1128F, 0x1129D, 1}, + {0x1129F, 0x112A8, 1}, + {0x112B0, 0x112DE, 1}, + {0x11305, 0x1130C, 1}, + {0x1130F, 0x11310, 1}, + {0x11313, 0x11328, 1}, + {0x1132A, 0x11330, 1}, + {0x11332, 0x11333, 1}, + {0x11335, 0x11339, 1}, + {0x1133D, 0x11350, 19}, + {0x1135D, 0x11361, 1}, + {0x11400, 0x11434, 1}, + {0x11447, 0x1144A, 1}, + {0x11480, 0x114AF, 1}, + {0x114C4, 0x114C5, 1}, + {0x114C7, 0x11580, 185}, + {0x11581, 0x115AE, 1}, + {0x115D8, 0x115DB, 1}, + {0x11600, 0x1162F, 1}, + {0x11644, 0x11680, 60}, + {0x11681, 0x116AA, 1}, + {0x11700, 0x11719, 1}, + {0x118FF, 0x11A00, 257}, + {0x11A0B, 0x11A32, 1}, + {0x11A3A, 0x11A50, 22}, + {0x11A5C, 0x11A83, 1}, + {0x11A86, 0x11A89, 1}, + {0x11AC0, 0x11AF8, 1}, + {0x11C00, 0x11C08, 1}, + {0x11C0A, 0x11C2E, 1}, + {0x11C40, 0x11C72, 50}, + {0x11C73, 0x11C8F, 1}, + {0x11D00, 0x11D06, 1}, + {0x11D08, 0x11D09, 1}, + {0x11D0B, 0x11D30, 1}, + {0x11D46, 0x12000, 698}, + {0x12001, 0x12399, 1}, + {0x12480, 0x12543, 1}, {0x13000, 0x1342E, 1}, + {0x14400, 0x14646, 1}, {0x16800, 0x16A38, 1}, - {0x1B000, 0x1B001, 1}, + {0x16A40, 0x16A5E, 1}, + {0x16AD0, 0x16AED, 1}, + {0x16B00, 0x16B2F, 1}, + {0x16B63, 0x16B77, 1}, + {0x16B7D, 0x16B8F, 1}, + {0x16F00, 0x16F44, 1}, + {0x16F50, 0x17000, 176}, + {0x17001, 0x187EC, 1}, + {0x18800, 0x18AF2, 1}, + {0x1B000, 0x1B11E, 1}, + {0x1B170, 0x1B2FB, 1}, + {0x1BC00, 0x1BC6A, 1}, + {0x1BC70, 0x1BC7C, 1}, + {0x1BC80, 0x1BC88, 1}, + {0x1BC90, 0x1BC99, 1}, + {0x1E800, 0x1E8C4, 1}, + {0x1EE00, 0x1EE03, 1}, + {0x1EE05, 0x1EE1F, 1}, + {0x1EE21, 0x1EE22, 1}, + {0x1EE24, 0x1EE27, 3}, + {0x1EE29, 0x1EE32, 1}, + {0x1EE34, 0x1EE37, 1}, + {0x1EE39, 0x1EE3B, 2}, + {0x1EE42, 0x1EE47, 5}, + {0x1EE49, 0x1EE4D, 2}, + {0x1EE4E, 0x1EE4F, 1}, + {0x1EE51, 0x1EE52, 1}, + {0x1EE54, 0x1EE57, 3}, + {0x1EE59, 0x1EE61, 2}, + {0x1EE62, 0x1EE64, 2}, + {0x1EE67, 0x1EE6A, 1}, + {0x1EE6C, 0x1EE72, 1}, + {0x1EE74, 0x1EE77, 1}, + {0x1EE79, 0x1EE7C, 1}, + {0x1EE7E, 0x1EE80, 2}, + {0x1EE81, 0x1EE89, 1}, + {0x1EE8B, 0x1EE9B, 1}, + {0x1EEA1, 0x1EEA3, 1}, + {0x1EEA5, 0x1EEA9, 1}, + {0x1EEAB, 0x1EEBB, 1}, {0x20000, 0x2A6D6, 1}, {0x2A700, 0x2B734, 1}, {0x2B740, 0x2B81D, 1}, + {0x2B820, 0x2CEA1, 1}, + {0x2CEB0, 0x2EBE0, 1}, {0x2F800, 0x2FA1D, 1} }; } @@ -1040,7 +1308,8 @@ private static int[][] make_Mn() { {0x0825, 0x0827, 1}, {0x0829, 0x082D, 1}, {0x0859, 0x085B, 1}, - {0x0900, 0x0902, 1}, + {0x08D4, 0x08E1, 1}, + {0x08E3, 0x0902, 1}, {0x093A, 0x093C, 2}, {0x0941, 0x0948, 1}, {0x094D, 0x0951, 4}, @@ -1061,23 +1330,27 @@ private static int[][] make_Mn() { {0x0AC2, 0x0AC5, 1}, {0x0AC7, 0x0AC8, 1}, {0x0ACD, 0x0AE2, 21}, - {0x0AE3, 0x0B01, 30}, - {0x0B3C, 0x0B3F, 3}, - {0x0B41, 0x0B44, 1}, + {0x0AE3, 0x0AFA, 23}, + {0x0AFB, 0x0AFF, 1}, + {0x0B01, 0x0B3C, 59}, + {0x0B3F, 0x0B41, 2}, + {0x0B42, 0x0B44, 1}, {0x0B4D, 0x0B56, 9}, {0x0B62, 0x0B63, 1}, {0x0B82, 0x0BC0, 62}, - {0x0BCD, 0x0C3E, 113}, - {0x0C3F, 0x0C40, 1}, + {0x0BCD, 0x0C00, 51}, + {0x0C3E, 0x0C40, 1}, {0x0C46, 0x0C48, 1}, {0x0C4A, 0x0C4D, 1}, {0x0C55, 0x0C56, 1}, {0x0C62, 0x0C63, 1}, - {0x0CBC, 0x0CBF, 3}, - {0x0CC6, 0x0CCC, 6}, - {0x0CCD, 0x0CE2, 21}, - {0x0CE3, 0x0D41, 94}, - {0x0D42, 0x0D44, 1}, + {0x0C81, 0x0CBC, 59}, + {0x0CBF, 0x0CC6, 7}, + {0x0CCC, 0x0CCD, 1}, + {0x0CE2, 0x0CE3, 1}, + {0x0D00, 0x0D01, 1}, + {0x0D3B, 0x0D3C, 1}, + {0x0D41, 0x0D44, 1}, {0x0D4D, 0x0D62, 21}, {0x0D63, 0x0DCA, 103}, {0x0DD2, 0x0DD4, 1}, @@ -1111,24 +1384,27 @@ private static int[][] make_Mn() { {0x1732, 0x1734, 1}, {0x1752, 0x1753, 1}, {0x1772, 0x1773, 1}, + {0x17B4, 0x17B5, 1}, {0x17B7, 0x17BD, 1}, {0x17C6, 0x17C9, 3}, {0x17CA, 0x17D3, 1}, {0x17DD, 0x180B, 46}, {0x180C, 0x180D, 1}, + {0x1885, 0x1886, 1}, {0x18A9, 0x1920, 119}, {0x1921, 0x1922, 1}, {0x1927, 0x1928, 1}, {0x1932, 0x1939, 7}, {0x193A, 0x193B, 1}, {0x1A17, 0x1A18, 1}, - {0x1A56, 0x1A58, 2}, - {0x1A59, 0x1A5E, 1}, + {0x1A1B, 0x1A56, 59}, + {0x1A58, 0x1A5E, 1}, {0x1A60, 0x1A62, 2}, {0x1A65, 0x1A6C, 1}, {0x1A73, 0x1A7C, 1}, - {0x1A7F, 0x1B00, 129}, - {0x1B01, 0x1B03, 1}, + {0x1A7F, 0x1AB0, 49}, + {0x1AB1, 0x1ABD, 1}, + {0x1B00, 0x1B03, 1}, {0x1B34, 0x1B36, 2}, {0x1B37, 0x1B3A, 1}, {0x1B3C, 0x1B42, 6}, @@ -1136,6 +1412,7 @@ private static int[][] make_Mn() { {0x1B80, 0x1B81, 1}, {0x1BA2, 0x1BA5, 1}, {0x1BA8, 0x1BA9, 1}, + {0x1BAB, 0x1BAD, 1}, {0x1BE6, 0x1BE8, 2}, {0x1BE9, 0x1BED, 4}, {0x1BEF, 0x1BF1, 1}, @@ -1144,65 +1421,148 @@ private static int[][] make_Mn() { {0x1CD0, 0x1CD2, 1}, {0x1CD4, 0x1CE0, 1}, {0x1CE2, 0x1CE8, 1}, - {0x1CED, 0x1DC0, 211}, - {0x1DC1, 0x1DE6, 1}, - {0x1DFC, 0x1DFF, 1}, + {0x1CED, 0x1CF4, 7}, + {0x1CF8, 0x1CF9, 1}, + {0x1DC0, 0x1DF9, 1}, + {0x1DFB, 0x1DFF, 1}, {0x20D0, 0x20DC, 1}, {0x20E1, 0x20E5, 4}, {0x20E6, 0x20F0, 1}, {0x2CEF, 0x2CF1, 1}, {0x2D7F, 0x2DE0, 97}, {0x2DE1, 0x2DFF, 1}, - {0x302A, 0x302F, 1}, + {0x302A, 0x302D, 1}, {0x3099, 0x309A, 1}, - {0xA66F, 0xA67C, 13}, - {0xA67D, 0xA6F0, 115}, - {0xA6F1, 0xA802, 273}, - {0xA806, 0xA80B, 5}, - {0xA825, 0xA826, 1}, - {0xA8C4, 0xA8E0, 28}, + {0xA66F, 0xA674, 5}, + {0xA675, 0xA67D, 1}, + {0xA69E, 0xA69F, 1}, + {0xA6F0, 0xA6F1, 1}, + {0xA802, 0xA806, 4}, + {0xA80B, 0xA825, 26}, + {0xA826, 0xA8C4, 158}, + {0xA8C5, 0xA8E0, 27}, {0xA8E1, 0xA8F1, 1}, {0xA926, 0xA92D, 1}, {0xA947, 0xA951, 1}, {0xA980, 0xA982, 1}, {0xA9B3, 0xA9B6, 3}, {0xA9B7, 0xA9B9, 1}, - {0xA9BC, 0xAA29, 109}, - {0xAA2A, 0xAA2E, 1}, + {0xA9BC, 0xA9E5, 41}, + {0xAA29, 0xAA2E, 1}, {0xAA31, 0xAA32, 1}, {0xAA35, 0xAA36, 1}, {0xAA43, 0xAA4C, 9}, - {0xAAB0, 0xAAB2, 2}, - {0xAAB3, 0xAAB4, 1}, + {0xAA7C, 0xAAB0, 52}, + {0xAAB2, 0xAAB4, 1}, {0xAAB7, 0xAAB8, 1}, {0xAABE, 0xAABF, 1}, - {0xAAC1, 0xABE5, 292}, - {0xABE8, 0xABED, 5}, - {0xFB1E, 0xFE00, 738}, - {0xFE01, 0xFE0F, 1}, - {0xFE20, 0xFE26, 1}, - {0x101FD, 0x10A01, 2052}, - {0x10A02, 0x10A03, 1}, + {0xAAC1, 0xAAEC, 43}, + {0xAAED, 0xAAF6, 9}, + {0xABE5, 0xABE8, 3}, + {0xABED, 0xFB1E, 20273}, + {0xFE00, 0xFE0F, 1}, + {0xFE20, 0xFE2F, 1}, + {0x101FD, 0x102E0, 227}, + {0x10376, 0x1037A, 1}, + {0x10A01, 0x10A03, 1}, {0x10A05, 0x10A06, 1}, {0x10A0C, 0x10A0F, 1}, {0x10A38, 0x10A3A, 1}, - {0x10A3F, 0x11001, 1474}, + {0x10A3F, 0x10AE5, 166}, + {0x10AE6, 0x11001, 1307}, {0x11038, 0x11046, 1}, - {0x11080, 0x11081, 1}, + {0x1107F, 0x11081, 1}, {0x110B3, 0x110B6, 1}, {0x110B9, 0x110BA, 1}, + {0x11100, 0x11102, 1}, + {0x11127, 0x1112B, 1}, + {0x1112D, 0x11134, 1}, + {0x11173, 0x11180, 13}, + {0x11181, 0x111B6, 53}, + {0x111B7, 0x111BE, 1}, + {0x111CA, 0x111CC, 1}, + {0x1122F, 0x11231, 1}, + {0x11234, 0x11236, 2}, + {0x11237, 0x1123E, 7}, + {0x112DF, 0x112E3, 4}, + {0x112E4, 0x112EA, 1}, + {0x11300, 0x11301, 1}, + {0x1133C, 0x11340, 4}, + {0x11366, 0x1136C, 1}, + {0x11370, 0x11374, 1}, + {0x11438, 0x1143F, 1}, + {0x11442, 0x11444, 1}, + {0x11446, 0x114B3, 109}, + {0x114B4, 0x114B8, 1}, + {0x114BA, 0x114BF, 5}, + {0x114C0, 0x114C2, 2}, + {0x114C3, 0x115B2, 239}, + {0x115B3, 0x115B5, 1}, + {0x115BC, 0x115BD, 1}, + {0x115BF, 0x115C0, 1}, + {0x115DC, 0x115DD, 1}, + {0x11633, 0x1163A, 1}, + {0x1163D, 0x1163F, 2}, + {0x11640, 0x116AB, 107}, + {0x116AD, 0x116B0, 3}, + {0x116B1, 0x116B5, 1}, + {0x116B7, 0x1171D, 102}, + {0x1171E, 0x1171F, 1}, + {0x11722, 0x11725, 1}, + {0x11727, 0x1172B, 1}, + {0x11A01, 0x11A06, 1}, + {0x11A09, 0x11A0A, 1}, + {0x11A33, 0x11A38, 1}, + {0x11A3B, 0x11A3E, 1}, + {0x11A47, 0x11A51, 10}, + {0x11A52, 0x11A56, 1}, + {0x11A59, 0x11A5B, 1}, + {0x11A8A, 0x11A96, 1}, + {0x11A98, 0x11A99, 1}, + {0x11C30, 0x11C36, 1}, + {0x11C38, 0x11C3D, 1}, + {0x11C3F, 0x11C92, 83}, + {0x11C93, 0x11CA7, 1}, + {0x11CAA, 0x11CB0, 1}, + {0x11CB2, 0x11CB3, 1}, + {0x11CB5, 0x11CB6, 1}, + {0x11D31, 0x11D36, 1}, + {0x11D3A, 0x11D3C, 2}, + {0x11D3D, 0x11D3F, 2}, + {0x11D40, 0x11D45, 1}, + {0x11D47, 0x16AF0, 19881}, + {0x16AF1, 0x16AF4, 1}, + {0x16B30, 0x16B36, 1}, + {0x16F8F, 0x16F92, 1}, + {0x1BC9D, 0x1BC9E, 1}, {0x1D167, 0x1D169, 1}, {0x1D17B, 0x1D182, 1}, {0x1D185, 0x1D18B, 1}, {0x1D1AA, 0x1D1AD, 1}, {0x1D242, 0x1D244, 1}, + {0x1DA00, 0x1DA36, 1}, + {0x1DA3B, 0x1DA6C, 1}, + {0x1DA75, 0x1DA84, 15}, + {0x1DA9B, 0x1DA9F, 1}, + {0x1DAA1, 0x1DAAF, 1}, + {0x1E000, 0x1E006, 1}, + {0x1E008, 0x1E018, 1}, + {0x1E01B, 0x1E021, 1}, + {0x1E023, 0x1E024, 1}, + {0x1E026, 0x1E02A, 1}, + {0x1E8D0, 0x1E8D6, 1}, + {0x1E944, 0x1E94A, 1}, {0xE0100, 0xE01EF, 1} }; } private static int[][] make_Me() { return new int[][] { - {0x0488, 0x0489, 1}, {0x20DD, 0x20E0, 1}, {0x20E2, 0x20E4, 1}, {0xA670, 0xA672, 1} + {0x0488, 0x0489, 1}, + {0x1ABE, 0x20DD, 1567}, + {0x20DE, 0x20E0, 1}, + {0x20E2, 0x20E4, 1}, + {0xA670, 0xA672, 1} }; } @@ -1267,9 +1627,7 @@ private static int[][] make_Mc() { {0x1929, 0x192B, 1}, {0x1930, 0x1931, 1}, {0x1933, 0x1938, 1}, - {0x19B0, 0x19C0, 1}, - {0x19C8, 0x19C9, 1}, - {0x1A19, 0x1A1B, 1}, + {0x1A19, 0x1A1A, 1}, {0x1A55, 0x1A57, 2}, {0x1A61, 0x1A63, 2}, {0x1A64, 0x1A6D, 9}, @@ -1287,6 +1645,8 @@ private static int[][] make_Mc() { {0x1C25, 0x1C2B, 1}, {0x1C34, 0x1C35, 1}, {0x1CE1, 0x1CF2, 17}, + {0x1CF3, 0x1CF7, 4}, + {0x302E, 0x302F, 1}, {0xA823, 0xA824, 1}, {0xA827, 0xA880, 89}, {0xA881, 0xA8B4, 51}, @@ -1299,13 +1659,53 @@ private static int[][] make_Mc() { {0xAA2F, 0xAA30, 1}, {0xAA33, 0xAA34, 1}, {0xAA4D, 0xAA7B, 46}, - {0xABE3, 0xABE4, 1}, - {0xABE6, 0xABE7, 1}, - {0xABE9, 0xABEA, 1}, - {0xABEC, 0x11000, 25620}, - {0x11002, 0x11082, 128}, - {0x110B0, 0x110B2, 1}, + {0xAA7D, 0xAAEB, 110}, + {0xAAEE, 0xAAEF, 1}, + {0xAAF5, 0xABE3, 238}, + {0xABE4, 0xABE6, 2}, + {0xABE7, 0xABE9, 2}, + {0xABEA, 0xABEC, 2}, + {0x11000, 0x11002, 2}, + {0x11082, 0x110B0, 46}, + {0x110B1, 0x110B2, 1}, {0x110B7, 0x110B8, 1}, + {0x1112C, 0x11182, 86}, + {0x111B3, 0x111B5, 1}, + {0x111BF, 0x111C0, 1}, + {0x1122C, 0x1122E, 1}, + {0x11232, 0x11233, 1}, + {0x11235, 0x112E0, 171}, + {0x112E1, 0x112E2, 1}, + {0x11302, 0x11303, 1}, + {0x1133E, 0x1133F, 1}, + {0x11341, 0x11344, 1}, + {0x11347, 0x11348, 1}, + {0x1134B, 0x1134D, 1}, + {0x11357, 0x11362, 11}, + {0x11363, 0x11435, 210}, + {0x11436, 0x11437, 1}, + {0x11440, 0x11441, 1}, + {0x11445, 0x114B0, 107}, + {0x114B1, 0x114B2, 1}, + {0x114B9, 0x114BB, 2}, + {0x114BC, 0x114BE, 1}, + {0x114C1, 0x115AF, 238}, + {0x115B0, 0x115B1, 1}, + {0x115B8, 0x115BB, 1}, + {0x115BE, 0x11630, 114}, + {0x11631, 0x11632, 1}, + {0x1163B, 0x1163C, 1}, + {0x1163E, 0x116AC, 110}, + {0x116AE, 0x116AF, 1}, + {0x116B6, 0x11720, 106}, + {0x11721, 0x11726, 5}, + {0x11A07, 0x11A08, 1}, + {0x11A39, 0x11A57, 30}, + {0x11A58, 0x11A97, 63}, + {0x11C2F, 0x11C3E, 15}, + {0x11CA9, 0x11CB1, 8}, + {0x11CB4, 0x16F51, 21149}, + {0x16F52, 0x16F7E, 1}, {0x1D165, 0x1D166, 1}, {0x1D16D, 0x1D172, 1} }; @@ -1326,6 +1726,7 @@ private static int[][] make_Nd() { {0x0C66, 0x0C6F, 1}, {0x0CE6, 0x0CEF, 1}, {0x0D66, 0x0D6F, 1}, + {0x0DE6, 0x0DEF, 1}, {0x0E50, 0x0E59, 1}, {0x0ED0, 0x0ED9, 1}, {0x0F20, 0x0F29, 1}, @@ -1345,12 +1746,28 @@ private static int[][] make_Nd() { {0xA8D0, 0xA8D9, 1}, {0xA900, 0xA909, 1}, {0xA9D0, 0xA9D9, 1}, + {0xA9F0, 0xA9F9, 1}, {0xAA50, 0xAA59, 1}, {0xABF0, 0xABF9, 1}, {0xFF10, 0xFF19, 1}, {0x104A0, 0x104A9, 1}, {0x11066, 0x1106F, 1}, - {0x1D7CE, 0x1D7FF, 1} + {0x110F0, 0x110F9, 1}, + {0x11136, 0x1113F, 1}, + {0x111D0, 0x111D9, 1}, + {0x112F0, 0x112F9, 1}, + {0x11450, 0x11459, 1}, + {0x114D0, 0x114D9, 1}, + {0x11650, 0x11659, 1}, + {0x116C0, 0x116C9, 1}, + {0x11730, 0x11739, 1}, + {0x118E0, 0x118E9, 1}, + {0x11C50, 0x11C59, 1}, + {0x11D50, 0x11D59, 1}, + {0x16A60, 0x16A69, 1}, + {0x16B50, 0x16B59, 1}, + {0x1D7CE, 0x1D7FF, 1}, + {0x1E950, 0x1E959, 1} }; } @@ -1366,7 +1783,7 @@ private static int[][] make_Nl() { {0x10140, 0x10174, 1}, {0x10341, 0x1034A, 9}, {0x103D1, 0x103D5, 1}, - {0x12400, 0x12462, 1} + {0x12400, 0x1246E, 1} }; } @@ -1379,7 +1796,8 @@ private static int[][] make_No() { {0x0B72, 0x0B77, 1}, {0x0BF0, 0x0BF2, 1}, {0x0C78, 0x0C7E, 1}, - {0x0D70, 0x0D75, 1}, + {0x0D58, 0x0D5E, 1}, + {0x0D70, 0x0D78, 1}, {0x0F2A, 0x0F33, 1}, {0x1369, 0x137C, 1}, {0x17F0, 0x17F9, 1}, @@ -1394,32 +1812,50 @@ private static int[][] make_No() { {0x2CFD, 0x3192, 1173}, {0x3193, 0x3195, 1}, {0x3220, 0x3229, 1}, + {0x3248, 0x324F, 1}, {0x3251, 0x325F, 1}, {0x3280, 0x3289, 1}, {0x32B1, 0x32BF, 1}, {0xA830, 0xA835, 1}, {0x10107, 0x10133, 1}, {0x10175, 0x10178, 1}, - {0x1018A, 0x10320, 406}, - {0x10321, 0x10323, 1}, + {0x1018A, 0x1018B, 1}, + {0x102E1, 0x102FB, 1}, + {0x10320, 0x10323, 1}, {0x10858, 0x1085F, 1}, + {0x10879, 0x1087F, 1}, + {0x108A7, 0x108AF, 1}, + {0x108FB, 0x108FF, 1}, {0x10916, 0x1091B, 1}, + {0x109BC, 0x109BD, 1}, + {0x109C0, 0x109CF, 1}, + {0x109D2, 0x109FF, 1}, {0x10A40, 0x10A47, 1}, {0x10A7D, 0x10A7E, 1}, + {0x10A9D, 0x10A9F, 1}, + {0x10AEB, 0x10AEF, 1}, {0x10B58, 0x10B5F, 1}, {0x10B78, 0x10B7F, 1}, + {0x10BA9, 0x10BAF, 1}, + {0x10CFA, 0x10CFF, 1}, {0x10E60, 0x10E7E, 1}, {0x11052, 0x11065, 1}, + {0x111E1, 0x111F4, 1}, + {0x1173A, 0x1173B, 1}, + {0x118EA, 0x118F2, 1}, + {0x11C5A, 0x11C6C, 1}, + {0x16B5B, 0x16B61, 1}, {0x1D360, 0x1D371, 1}, - {0x1F100, 0x1F10A, 1} + {0x1E8C7, 0x1E8CF, 1}, + {0x1F100, 0x1F10C, 1} }; } private static int[][] make_Zs() { return new int[][] { {0x0020, 0x00A0, 128}, - {0x1680, 0x180E, 398}, - {0x2000, 0x200A, 1}, + {0x1680, 0x2000, 2432}, + {0x2001, 0x200A, 1}, {0x202F, 0x205F, 48}, {0x3000, 0x3000, 1} }; @@ -1440,17 +1876,19 @@ private static int[][] make_Cc() { private static int[][] make_Cf() { return new int[][] { {0x00AD, 0x0600, 1363}, - {0x0601, 0x0603, 1}, - {0x06DD, 0x070F, 50}, - {0x17B4, 0x17B5, 1}, - {0x200B, 0x200F, 1}, + {0x0601, 0x0605, 1}, + {0x061C, 0x06DD, 193}, + {0x070F, 0x08E2, 467}, + {0x180E, 0x200B, 2045}, + {0x200C, 0x200F, 1}, {0x202A, 0x202E, 1}, {0x2060, 0x2064, 1}, - {0x206A, 0x206F, 1}, + {0x2066, 0x206F, 1}, {0xFEFF, 0xFFF9, 250}, {0xFFFA, 0xFFFB, 1}, - {0x110BD, 0x1D173, 49334}, - {0x1D174, 0x1D17A, 1}, + {0x110BD, 0x1BCA0, 44003}, + {0x1BCA1, 0x1BCA3, 1}, + {0x1D173, 0x1D17A, 1}, {0xE0001, 0xE0020, 31}, {0xE0021, 0xE007F, 1} }; @@ -1471,10 +1909,12 @@ private static int[][] make_Pd() { {0x1806, 0x2010, 2058}, {0x2011, 0x2015, 1}, {0x2E17, 0x2E1A, 3}, - {0x301C, 0x3030, 20}, - {0x30A0, 0xFE31, 52625}, - {0xFE32, 0xFE58, 38}, - {0xFE63, 0xFF0D, 170} + {0x2E3A, 0x2E3B, 1}, + {0x2E40, 0x301C, 476}, + {0x3030, 0x30A0, 112}, + {0xFE31, 0xFE32, 1}, + {0xFE58, 0xFE63, 11}, + {0xFF0D, 0xFF0D, 1} }; } @@ -1485,7 +1925,8 @@ private static int[][] make_Ps() { {0x0F3C, 0x169B, 1887}, {0x201A, 0x201E, 4}, {0x2045, 0x207D, 56}, - {0x208D, 0x2329, 668}, + {0x208D, 0x2308, 635}, + {0x230A, 0x2329, 31}, {0x2768, 0x2774, 2}, {0x27C5, 0x27E6, 33}, {0x27E8, 0x27EE, 2}, @@ -1493,9 +1934,10 @@ private static int[][] make_Ps() { {0x29D8, 0x29DA, 2}, {0x29FC, 0x2E22, 1062}, {0x2E24, 0x2E28, 2}, - {0x3008, 0x3010, 2}, + {0x2E42, 0x3008, 454}, + {0x300A, 0x3010, 2}, {0x3014, 0x301A, 2}, - {0x301D, 0xFD3E, 52513}, + {0x301D, 0xFD3F, 52514}, {0xFE17, 0xFE35, 30}, {0xFE37, 0xFE43, 2}, {0xFE47, 0xFE59, 18}, @@ -1512,7 +1954,8 @@ private static int[][] make_Pe() { {0x007D, 0x0F3B, 3774}, {0x0F3D, 0x169C, 1887}, {0x2046, 0x207E, 56}, - {0x208E, 0x232A, 668}, + {0x208E, 0x2309, 635}, + {0x230B, 0x232A, 31}, {0x2769, 0x2775, 2}, {0x27C6, 0x27E7, 33}, {0x27E9, 0x27EF, 2}, @@ -1523,7 +1966,7 @@ private static int[][] make_Pe() { {0x3009, 0x3011, 2}, {0x3015, 0x301B, 2}, {0x301E, 0x301F, 1}, - {0xFD3F, 0xFE18, 217}, + {0xFD3E, 0xFE18, 218}, {0xFE36, 0xFE44, 2}, {0xFE48, 0xFE5A, 18}, {0xFE5C, 0xFE5E, 2}, @@ -1550,7 +1993,8 @@ private static int[][] make_Po() { {0x002F, 0x003A, 11}, {0x003B, 0x003F, 4}, {0x0040, 0x005C, 28}, - {0x00A1, 0x00B7, 22}, + {0x00A1, 0x00A7, 6}, + {0x00B6, 0x00B7, 1}, {0x00BF, 0x037E, 703}, {0x0387, 0x055A, 467}, {0x055B, 0x055F, 1}, @@ -1568,15 +2012,16 @@ private static int[][] make_Po() { {0x0830, 0x083E, 1}, {0x085E, 0x0964, 262}, {0x0965, 0x0970, 11}, + {0x09FD, 0x0AF0, 243}, {0x0DF4, 0x0E4F, 91}, {0x0E5A, 0x0E5B, 1}, {0x0F04, 0x0F12, 1}, - {0x0F85, 0x0FD0, 75}, - {0x0FD1, 0x0FD4, 1}, + {0x0F14, 0x0F85, 113}, + {0x0FD0, 0x0FD4, 1}, {0x0FD9, 0x0FDA, 1}, {0x104A, 0x104F, 1}, - {0x10FB, 0x1361, 614}, - {0x1362, 0x1368, 1}, + {0x10FB, 0x1360, 613}, + {0x1361, 0x1368, 1}, {0x166D, 0x166E, 1}, {0x16EB, 0x16ED, 1}, {0x1735, 0x1736, 1}, @@ -1592,6 +2037,7 @@ private static int[][] make_Po() { {0x1BFC, 0x1BFF, 1}, {0x1C3B, 0x1C3F, 1}, {0x1C7E, 0x1C7F, 1}, + {0x1CC0, 0x1CC7, 1}, {0x1CD3, 0x2016, 835}, {0x2017, 0x2020, 9}, {0x2021, 0x2027, 1}, @@ -1612,7 +2058,10 @@ private static int[][] make_Po() { {0x2E1B, 0x2E1E, 3}, {0x2E1F, 0x2E2A, 11}, {0x2E2B, 0x2E2E, 1}, - {0x2E30, 0x2E31, 1}, + {0x2E30, 0x2E39, 1}, + {0x2E3C, 0x2E3F, 1}, + {0x2E41, 0x2E43, 2}, + {0x2E44, 0x2E49, 1}, {0x3001, 0x3003, 1}, {0x303D, 0x30FB, 190}, {0xA4FE, 0xA4FF, 1}, @@ -1622,12 +2071,13 @@ private static int[][] make_Po() { {0xA874, 0xA877, 1}, {0xA8CE, 0xA8CF, 1}, {0xA8F8, 0xA8FA, 1}, - {0xA92E, 0xA92F, 1}, - {0xA95F, 0xA9C1, 98}, - {0xA9C2, 0xA9CD, 1}, + {0xA8FC, 0xA92E, 50}, + {0xA92F, 0xA95F, 48}, + {0xA9C1, 0xA9CD, 1}, {0xA9DE, 0xA9DF, 1}, {0xAA5C, 0xAA5F, 1}, {0xAADE, 0xAADF, 1}, + {0xAAF0, 0xAAF1, 1}, {0xABEB, 0xFE10, 21029}, {0xFE11, 0xFE16, 1}, {0xFE19, 0xFE30, 23}, @@ -1646,16 +2096,44 @@ private static int[][] make_Po() { {0xFF20, 0xFF3C, 28}, {0xFF61, 0xFF64, 3}, {0xFF65, 0x10100, 411}, - {0x10101, 0x1039F, 670}, - {0x103D0, 0x10857, 1159}, + {0x10101, 0x10102, 1}, + {0x1039F, 0x103D0, 49}, + {0x1056F, 0x10857, 744}, {0x1091F, 0x1093F, 32}, {0x10A50, 0x10A58, 1}, - {0x10A7F, 0x10B39, 186}, - {0x10B3A, 0x10B3F, 1}, + {0x10A7F, 0x10AF0, 113}, + {0x10AF1, 0x10AF6, 1}, + {0x10B39, 0x10B3F, 1}, + {0x10B99, 0x10B9C, 1}, {0x11047, 0x1104D, 1}, {0x110BB, 0x110BC, 1}, {0x110BE, 0x110C1, 1}, - {0x12470, 0x12473, 1} + {0x11140, 0x11143, 1}, + {0x11174, 0x11175, 1}, + {0x111C5, 0x111C9, 1}, + {0x111CD, 0x111DB, 14}, + {0x111DD, 0x111DF, 1}, + {0x11238, 0x1123D, 1}, + {0x112A9, 0x1144B, 418}, + {0x1144C, 0x1144F, 1}, + {0x1145B, 0x1145D, 2}, + {0x114C6, 0x115C1, 251}, + {0x115C2, 0x115D7, 1}, + {0x11641, 0x11643, 1}, + {0x11660, 0x1166C, 1}, + {0x1173C, 0x1173E, 1}, + {0x11A3F, 0x11A46, 1}, + {0x11A9A, 0x11A9C, 1}, + {0x11A9E, 0x11AA2, 1}, + {0x11C41, 0x11C45, 1}, + {0x11C70, 0x11C71, 1}, + {0x12470, 0x12474, 1}, + {0x16A6E, 0x16A6F, 1}, + {0x16AF5, 0x16B37, 66}, + {0x16B38, 0x16B3B, 1}, + {0x16B44, 0x1BC9F, 20827}, + {0x1DA87, 0x1DA8B, 1}, + {0x1E95E, 0x1E95F, 1} }; } @@ -1681,7 +2159,6 @@ private static int[][] make_Sm() { {0x21CF, 0x21D2, 3}, {0x21D4, 0x21F4, 32}, {0x21F5, 0x22FF, 1}, - {0x2308, 0x230B, 1}, {0x2320, 0x2321, 1}, {0x237C, 0x239B, 31}, {0x239C, 0x23B3, 1}, @@ -1690,9 +2167,7 @@ private static int[][] make_Sm() { {0x25F8, 0x25FF, 1}, {0x266F, 0x27C0, 337}, {0x27C1, 0x27C4, 1}, - {0x27C7, 0x27CA, 1}, - {0x27CC, 0x27CE, 2}, - {0x27CF, 0x27E5, 1}, + {0x27C7, 0x27E5, 1}, {0x27F0, 0x27FF, 1}, {0x2900, 0x2982, 1}, {0x2999, 0x29D7, 1}, @@ -1711,7 +2186,8 @@ private static int[][] make_Sm() { {0x1D6FB, 0x1D715, 26}, {0x1D735, 0x1D74F, 26}, {0x1D76F, 0x1D789, 26}, - {0x1D7A9, 0x1D7C3, 26} + {0x1D7A9, 0x1D7C3, 26}, + {0x1EEF0, 0x1EEF1, 1} }; } @@ -1719,11 +2195,12 @@ private static int[][] make_Sc() { return new int[][] { {0x0024, 0x00A2, 126}, {0x00A3, 0x00A5, 1}, - {0x060B, 0x09F2, 999}, - {0x09F3, 0x09FB, 8}, - {0x0AF1, 0x0BF9, 264}, - {0x0E3F, 0x17DB, 2460}, - {0x20A0, 0x20B9, 1}, + {0x058F, 0x060B, 124}, + {0x09F2, 0x09F3, 1}, + {0x09FB, 0x0AF1, 246}, + {0x0BF9, 0x0E3F, 582}, + {0x17DB, 0x20A0, 2245}, + {0x20A1, 0x20BF, 1}, {0xA838, 0xFDFC, 21956}, {0xFE69, 0xFF04, 155}, {0xFFE0, 0xFFE1, 1}, @@ -1752,27 +2229,30 @@ private static int[][] make_Sk() { {0xA700, 0xA716, 1}, {0xA720, 0xA721, 1}, {0xA789, 0xA78A, 1}, - {0xFBB2, 0xFBC1, 1}, + {0xAB5B, 0xFBB2, 20567}, + {0xFBB3, 0xFBC1, 1}, {0xFF3E, 0xFF40, 2}, - {0xFFE3, 0xFFE3, 1} + {0xFFE3, 0x1F3FB, 62488}, + {0x1F3FC, 0x1F3FF, 1} }; } private static int[][] make_So() { return new int[][] { - {0x00A6, 0x00A7, 1}, - {0x00A9, 0x00AE, 5}, - {0x00B0, 0x00B6, 6}, - {0x0482, 0x060E, 396}, + {0x00A6, 0x00A9, 3}, + {0x00AE, 0x00B0, 2}, + {0x0482, 0x058D, 267}, + {0x058E, 0x060E, 128}, {0x060F, 0x06DE, 207}, {0x06E9, 0x06FD, 20}, {0x06FE, 0x07F6, 248}, {0x09FA, 0x0B70, 374}, {0x0BF3, 0x0BF8, 1}, {0x0BFA, 0x0C7F, 133}, - {0x0D79, 0x0F01, 392}, - {0x0F02, 0x0F03, 1}, - {0x0F13, 0x0F17, 1}, + {0x0D4F, 0x0D79, 42}, + {0x0F01, 0x0F03, 1}, + {0x0F13, 0x0F15, 2}, + {0x0F16, 0x0F17, 1}, {0x0F1A, 0x0F1F, 1}, {0x0F34, 0x0F38, 2}, {0x0FBE, 0x0FC5, 1}, @@ -1780,8 +2260,7 @@ private static int[][] make_So() { {0x0FCE, 0x0FCF, 1}, {0x0FD5, 0x0FD8, 1}, {0x109E, 0x109F, 1}, - {0x1360, 0x1390, 48}, - {0x1391, 0x1399, 1}, + {0x1390, 0x1399, 1}, {0x1940, 0x19DE, 158}, {0x19DF, 0x19FF, 1}, {0x1B61, 0x1B6A, 1}, @@ -1796,7 +2275,8 @@ private static int[][] make_So() { {0x212E, 0x213A, 12}, {0x213B, 0x214A, 15}, {0x214C, 0x214D, 1}, - {0x214F, 0x2195, 70}, + {0x214F, 0x218A, 59}, + {0x218B, 0x2195, 10}, {0x2196, 0x2199, 1}, {0x219C, 0x219F, 1}, {0x21A1, 0x21A2, 1}, @@ -1812,21 +2292,24 @@ private static int[][] make_So() { {0x232B, 0x237B, 1}, {0x237D, 0x239A, 1}, {0x23B4, 0x23DB, 1}, - {0x23E2, 0x23F3, 1}, - {0x2400, 0x2426, 1}, + {0x23E2, 0x2426, 1}, {0x2440, 0x244A, 1}, {0x249C, 0x24E9, 1}, {0x2500, 0x25B6, 1}, {0x25B8, 0x25C0, 1}, {0x25C2, 0x25F7, 1}, {0x2600, 0x266E, 1}, - {0x2670, 0x26FF, 1}, - {0x2701, 0x2767, 1}, + {0x2670, 0x2767, 1}, {0x2794, 0x27BF, 1}, {0x2800, 0x28FF, 1}, {0x2B00, 0x2B2F, 1}, {0x2B45, 0x2B46, 1}, - {0x2B50, 0x2B59, 1}, + {0x2B4D, 0x2B73, 1}, + {0x2B76, 0x2B95, 1}, + {0x2B98, 0x2BB9, 1}, + {0x2BBD, 0x2BC8, 1}, + {0x2BCA, 0x2BD2, 1}, + {0x2BEC, 0x2BEF, 1}, {0x2CE5, 0x2CEA, 1}, {0x2E80, 0x2E99, 1}, {0x2E9B, 0x2EF3, 1}, @@ -1840,8 +2323,9 @@ private static int[][] make_So() { {0x3196, 0x319F, 1}, {0x31C0, 0x31E3, 1}, {0x3200, 0x321E, 1}, - {0x322A, 0x3250, 1}, - {0x3260, 0x327F, 1}, + {0x322A, 0x3247, 1}, + {0x3250, 0x3260, 16}, + {0x3261, 0x327F, 1}, {0x328A, 0x32B0, 1}, {0x32C0, 0x32FE, 1}, {0x3300, 0x33FF, 1}, @@ -1854,60 +2338,64 @@ private static int[][] make_So() { {0xFDFD, 0xFFE4, 487}, {0xFFE8, 0xFFED, 5}, {0xFFEE, 0xFFFC, 14}, - {0xFFFD, 0x10102, 261}, - {0x10137, 0x1013F, 1}, + {0xFFFD, 0x10137, 314}, + {0x10138, 0x1013F, 1}, {0x10179, 0x10189, 1}, + {0x1018C, 0x1018E, 1}, {0x10190, 0x1019B, 1}, - {0x101D0, 0x101FC, 1}, + {0x101A0, 0x101D0, 48}, + {0x101D1, 0x101FC, 1}, + {0x10877, 0x10878, 1}, + {0x10AC8, 0x1173F, 3191}, + {0x16B3C, 0x16B3F, 1}, + {0x16B45, 0x1BC9C, 20823}, {0x1D000, 0x1D0F5, 1}, {0x1D100, 0x1D126, 1}, {0x1D129, 0x1D164, 1}, {0x1D16A, 0x1D16C, 1}, {0x1D183, 0x1D184, 1}, {0x1D18C, 0x1D1A9, 1}, - {0x1D1AE, 0x1D1DD, 1}, + {0x1D1AE, 0x1D1E8, 1}, {0x1D200, 0x1D241, 1}, {0x1D245, 0x1D300, 187}, {0x1D301, 0x1D356, 1}, + {0x1D800, 0x1D9FF, 1}, + {0x1DA37, 0x1DA3A, 1}, + {0x1DA6D, 0x1DA74, 1}, + {0x1DA76, 0x1DA83, 1}, + {0x1DA85, 0x1DA86, 1}, {0x1F000, 0x1F02B, 1}, {0x1F030, 0x1F093, 1}, {0x1F0A0, 0x1F0AE, 1}, - {0x1F0B1, 0x1F0BE, 1}, + {0x1F0B1, 0x1F0BF, 1}, {0x1F0C1, 0x1F0CF, 1}, - {0x1F0D1, 0x1F0DF, 1}, + {0x1F0D1, 0x1F0F5, 1}, {0x1F110, 0x1F12E, 1}, - {0x1F130, 0x1F169, 1}, - {0x1F170, 0x1F19A, 1}, + {0x1F130, 0x1F16B, 1}, + {0x1F170, 0x1F1AC, 1}, {0x1F1E6, 0x1F202, 1}, - {0x1F210, 0x1F23A, 1}, + {0x1F210, 0x1F23B, 1}, {0x1F240, 0x1F248, 1}, {0x1F250, 0x1F251, 1}, - {0x1F300, 0x1F320, 1}, - {0x1F330, 0x1F335, 1}, - {0x1F337, 0x1F37C, 1}, - {0x1F380, 0x1F393, 1}, - {0x1F3A0, 0x1F3C4, 1}, - {0x1F3C6, 0x1F3CA, 1}, - {0x1F3E0, 0x1F3F0, 1}, - {0x1F400, 0x1F43E, 1}, - {0x1F440, 0x1F442, 2}, - {0x1F443, 0x1F4F7, 1}, - {0x1F4F9, 0x1F4FC, 1}, - {0x1F500, 0x1F53D, 1}, - {0x1F550, 0x1F567, 1}, - {0x1F5FB, 0x1F5FF, 1}, - {0x1F601, 0x1F610, 1}, - {0x1F612, 0x1F614, 1}, - {0x1F616, 0x1F61C, 2}, - {0x1F61D, 0x1F61E, 1}, - {0x1F620, 0x1F625, 1}, - {0x1F628, 0x1F62B, 1}, - {0x1F62D, 0x1F630, 3}, - {0x1F631, 0x1F633, 1}, - {0x1F635, 0x1F640, 1}, - {0x1F645, 0x1F64F, 1}, - {0x1F680, 0x1F6C5, 1}, - {0x1F700, 0x1F773, 1} + {0x1F260, 0x1F265, 1}, + {0x1F300, 0x1F3FA, 1}, + {0x1F400, 0x1F6D4, 1}, + {0x1F6E0, 0x1F6EC, 1}, + {0x1F6F0, 0x1F6F8, 1}, + {0x1F700, 0x1F773, 1}, + {0x1F780, 0x1F7D4, 1}, + {0x1F800, 0x1F80B, 1}, + {0x1F810, 0x1F847, 1}, + {0x1F850, 0x1F859, 1}, + {0x1F860, 0x1F887, 1}, + {0x1F890, 0x1F8AD, 1}, + {0x1F900, 0x1F90B, 1}, + {0x1F910, 0x1F93E, 1}, + {0x1F940, 0x1F94C, 1}, + {0x1F950, 0x1F96B, 1}, + {0x1F980, 0x1F997, 1}, + {0x1F9C0, 0x1F9D0, 16}, + {0x1F9D1, 0x1F9E6, 1} }; } @@ -1942,7 +2430,8 @@ private static int[][] make_P() { {0x005B, 0x005D, 1}, {0x005F, 0x007B, 28}, {0x007D, 0x00A1, 36}, - {0x00AB, 0x00B7, 12}, + {0x00A7, 0x00AB, 4}, + {0x00B6, 0x00B7, 1}, {0x00BB, 0x00BF, 4}, {0x037E, 0x0387, 9}, {0x055A, 0x055F, 1}, @@ -1961,16 +2450,18 @@ private static int[][] make_P() { {0x0830, 0x083E, 1}, {0x085E, 0x0964, 262}, {0x0965, 0x0970, 11}, + {0x09FD, 0x0AF0, 243}, {0x0DF4, 0x0E4F, 91}, {0x0E5A, 0x0E5B, 1}, {0x0F04, 0x0F12, 1}, - {0x0F3A, 0x0F3D, 1}, + {0x0F14, 0x0F3A, 38}, + {0x0F3B, 0x0F3D, 1}, {0x0F85, 0x0FD0, 75}, {0x0FD1, 0x0FD4, 1}, {0x0FD9, 0x0FDA, 1}, {0x104A, 0x104F, 1}, - {0x10FB, 0x1361, 614}, - {0x1362, 0x1368, 1}, + {0x10FB, 0x1360, 613}, + {0x1361, 0x1368, 1}, {0x1400, 0x166D, 621}, {0x166E, 0x169B, 45}, {0x169C, 0x16EB, 79}, @@ -1987,6 +2478,7 @@ private static int[][] make_P() { {0x1BFC, 0x1BFF, 1}, {0x1C3B, 0x1C3F, 1}, {0x1C7E, 0x1C7F, 1}, + {0x1CC0, 0x1CC7, 1}, {0x1CD3, 0x2010, 829}, {0x2011, 0x2027, 1}, {0x2030, 0x2043, 1}, @@ -1994,6 +2486,7 @@ private static int[][] make_P() { {0x2053, 0x205E, 1}, {0x207D, 0x207E, 1}, {0x208D, 0x208E, 1}, + {0x2308, 0x230B, 1}, {0x2329, 0x232A, 1}, {0x2768, 0x2775, 1}, {0x27C5, 0x27C6, 1}, @@ -2005,7 +2498,7 @@ private static int[][] make_P() { {0x2CFE, 0x2CFF, 1}, {0x2D70, 0x2E00, 144}, {0x2E01, 0x2E2E, 1}, - {0x2E30, 0x2E31, 1}, + {0x2E30, 0x2E49, 1}, {0x3001, 0x3003, 1}, {0x3008, 0x3011, 1}, {0x3014, 0x301F, 1}, @@ -2018,12 +2511,13 @@ private static int[][] make_P() { {0xA874, 0xA877, 1}, {0xA8CE, 0xA8CF, 1}, {0xA8F8, 0xA8FA, 1}, - {0xA92E, 0xA92F, 1}, - {0xA95F, 0xA9C1, 98}, - {0xA9C2, 0xA9CD, 1}, + {0xA8FC, 0xA92E, 50}, + {0xA92F, 0xA95F, 48}, + {0xA9C1, 0xA9CD, 1}, {0xA9DE, 0xA9DF, 1}, {0xAA5C, 0xAA5F, 1}, {0xAADE, 0xAADF, 1}, + {0xAAF0, 0xAAF1, 1}, {0xABEB, 0xFD3E, 20819}, {0xFD3F, 0xFE10, 209}, {0xFE11, 0xFE19, 1}, @@ -2040,17 +2534,44 @@ private static int[][] make_P() { {0xFF3F, 0xFF5B, 28}, {0xFF5D, 0xFF5F, 2}, {0xFF60, 0xFF65, 1}, - {0x10100, 0x10101, 1}, + {0x10100, 0x10102, 1}, {0x1039F, 0x103D0, 49}, - {0x10857, 0x1091F, 200}, - {0x1093F, 0x10A50, 273}, - {0x10A51, 0x10A58, 1}, - {0x10A7F, 0x10B39, 186}, - {0x10B3A, 0x10B3F, 1}, + {0x1056F, 0x10857, 744}, + {0x1091F, 0x1093F, 32}, + {0x10A50, 0x10A58, 1}, + {0x10A7F, 0x10AF0, 113}, + {0x10AF1, 0x10AF6, 1}, + {0x10B39, 0x10B3F, 1}, + {0x10B99, 0x10B9C, 1}, {0x11047, 0x1104D, 1}, {0x110BB, 0x110BC, 1}, {0x110BE, 0x110C1, 1}, - {0x12470, 0x12473, 1} + {0x11140, 0x11143, 1}, + {0x11174, 0x11175, 1}, + {0x111C5, 0x111C9, 1}, + {0x111CD, 0x111DB, 14}, + {0x111DD, 0x111DF, 1}, + {0x11238, 0x1123D, 1}, + {0x112A9, 0x1144B, 418}, + {0x1144C, 0x1144F, 1}, + {0x1145B, 0x1145D, 2}, + {0x114C6, 0x115C1, 251}, + {0x115C2, 0x115D7, 1}, + {0x11641, 0x11643, 1}, + {0x11660, 0x1166C, 1}, + {0x1173C, 0x1173E, 1}, + {0x11A3F, 0x11A46, 1}, + {0x11A9A, 0x11A9C, 1}, + {0x11A9E, 0x11AA2, 1}, + {0x11C41, 0x11C45, 1}, + {0x11C70, 0x11C71, 1}, + {0x12470, 0x12474, 1}, + {0x16A6E, 0x16A6F, 1}, + {0x16AF5, 0x16B37, 66}, + {0x16B38, 0x16B3B, 1}, + {0x16B44, 0x1BC9F, 20827}, + {0x1DA87, 0x1DA8B, 1}, + {0x1E95E, 0x1E95F, 1} }; } @@ -2060,10 +2581,11 @@ private static int[][] make_S() { {0x003C, 0x003E, 1}, {0x005E, 0x0060, 2}, {0x007C, 0x007E, 2}, - {0x00A2, 0x00A9, 1}, + {0x00A2, 0x00A6, 1}, + {0x00A8, 0x00A9, 1}, {0x00AC, 0x00AE, 2}, {0x00AF, 0x00B1, 1}, - {0x00B4, 0x00B8, 2}, + {0x00B4, 0x00B8, 4}, {0x00D7, 0x00F7, 32}, {0x02C2, 0x02C5, 1}, {0x02D2, 0x02DF, 1}, @@ -2072,8 +2594,9 @@ private static int[][] make_S() { {0x02F0, 0x02FF, 1}, {0x0375, 0x0384, 15}, {0x0385, 0x03F6, 113}, - {0x0482, 0x0606, 388}, - {0x0607, 0x0608, 1}, + {0x0482, 0x058D, 267}, + {0x058E, 0x058F, 1}, + {0x0606, 0x0608, 1}, {0x060B, 0x060E, 3}, {0x060F, 0x06DE, 207}, {0x06E9, 0x06FD, 20}, @@ -2082,10 +2605,11 @@ private static int[][] make_S() { {0x09FA, 0x09FB, 1}, {0x0AF1, 0x0B70, 127}, {0x0BF3, 0x0BFA, 1}, - {0x0C7F, 0x0D79, 250}, - {0x0E3F, 0x0F01, 194}, - {0x0F02, 0x0F03, 1}, - {0x0F13, 0x0F17, 1}, + {0x0C7F, 0x0D4F, 208}, + {0x0D79, 0x0E3F, 198}, + {0x0F01, 0x0F03, 1}, + {0x0F13, 0x0F15, 2}, + {0x0F16, 0x0F17, 1}, {0x0F1A, 0x0F1F, 1}, {0x0F34, 0x0F38, 2}, {0x0FBE, 0x0FC5, 1}, @@ -2093,8 +2617,7 @@ private static int[][] make_S() { {0x0FCE, 0x0FCF, 1}, {0x0FD5, 0x0FD8, 1}, {0x109E, 0x109F, 1}, - {0x1360, 0x1390, 48}, - {0x1391, 0x1399, 1}, + {0x1390, 0x1399, 1}, {0x17DB, 0x1940, 357}, {0x19DE, 0x19FF, 1}, {0x1B61, 0x1B6A, 1}, @@ -2108,7 +2631,7 @@ private static int[][] make_S() { {0x2044, 0x2052, 14}, {0x207A, 0x207C, 1}, {0x208A, 0x208C, 1}, - {0x20A0, 0x20B9, 1}, + {0x20A0, 0x20BF, 1}, {0x2100, 0x2101, 1}, {0x2103, 0x2106, 1}, {0x2108, 0x2109, 1}, @@ -2120,23 +2643,25 @@ private static int[][] make_S() { {0x213B, 0x2140, 5}, {0x2141, 0x2144, 1}, {0x214A, 0x214D, 1}, - {0x214F, 0x2190, 65}, - {0x2191, 0x2328, 1}, - {0x232B, 0x23F3, 1}, - {0x2400, 0x2426, 1}, + {0x214F, 0x218A, 59}, + {0x218B, 0x2190, 5}, + {0x2191, 0x2307, 1}, + {0x230C, 0x2328, 1}, + {0x232B, 0x2426, 1}, {0x2440, 0x244A, 1}, {0x249C, 0x24E9, 1}, - {0x2500, 0x26FF, 1}, - {0x2701, 0x2767, 1}, + {0x2500, 0x2767, 1}, {0x2794, 0x27C4, 1}, - {0x27C7, 0x27CA, 1}, - {0x27CC, 0x27CE, 2}, - {0x27CF, 0x27E5, 1}, + {0x27C7, 0x27E5, 1}, {0x27F0, 0x2982, 1}, {0x2999, 0x29D7, 1}, {0x29DC, 0x29FB, 1}, - {0x29FE, 0x2B4C, 1}, - {0x2B50, 0x2B59, 1}, + {0x29FE, 0x2B73, 1}, + {0x2B76, 0x2B95, 1}, + {0x2B98, 0x2BB9, 1}, + {0x2BBD, 0x2BC8, 1}, + {0x2BCA, 0x2BD2, 1}, + {0x2BEC, 0x2BEF, 1}, {0x2CE5, 0x2CEA, 1}, {0x2E80, 0x2E99, 1}, {0x2E9B, 0x2EF3, 1}, @@ -2151,8 +2676,9 @@ private static int[][] make_S() { {0x3196, 0x319F, 1}, {0x31C0, 0x31E3, 1}, {0x3200, 0x321E, 1}, - {0x322A, 0x3250, 1}, - {0x3260, 0x327F, 1}, + {0x322A, 0x3247, 1}, + {0x3250, 0x3260, 16}, + {0x3261, 0x327F, 1}, {0x328A, 0x32B0, 1}, {0x32C0, 0x32FE, 1}, {0x3300, 0x33FF, 1}, @@ -2164,8 +2690,8 @@ private static int[][] make_S() { {0xA828, 0xA82B, 1}, {0xA836, 0xA839, 1}, {0xAA77, 0xAA79, 1}, - {0xFB29, 0xFBB2, 137}, - {0xFBB3, 0xFBC1, 1}, + {0xAB5B, 0xFB29, 20430}, + {0xFBB2, 0xFBC1, 1}, {0xFDFC, 0xFDFD, 1}, {0xFE62, 0xFE64, 2}, {0xFE65, 0xFE66, 1}, @@ -2177,18 +2703,23 @@ private static int[][] make_S() { {0xFFE0, 0xFFE6, 1}, {0xFFE8, 0xFFEE, 1}, {0xFFFC, 0xFFFD, 1}, - {0x10102, 0x10137, 53}, - {0x10138, 0x1013F, 1}, + {0x10137, 0x1013F, 1}, {0x10179, 0x10189, 1}, + {0x1018C, 0x1018E, 1}, {0x10190, 0x1019B, 1}, - {0x101D0, 0x101FC, 1}, + {0x101A0, 0x101D0, 48}, + {0x101D1, 0x101FC, 1}, + {0x10877, 0x10878, 1}, + {0x10AC8, 0x1173F, 3191}, + {0x16B3C, 0x16B3F, 1}, + {0x16B45, 0x1BC9C, 20823}, {0x1D000, 0x1D0F5, 1}, {0x1D100, 0x1D126, 1}, {0x1D129, 0x1D164, 1}, {0x1D16A, 0x1D16C, 1}, {0x1D183, 0x1D184, 1}, {0x1D18C, 0x1D1A9, 1}, - {0x1D1AE, 0x1D1DD, 1}, + {0x1D1AE, 0x1D1E8, 1}, {0x1D200, 0x1D241, 1}, {0x1D245, 0x1D300, 187}, {0x1D301, 0x1D356, 1}, @@ -2197,45 +2728,43 @@ private static int[][] make_S() { {0x1D735, 0x1D74F, 26}, {0x1D76F, 0x1D789, 26}, {0x1D7A9, 0x1D7C3, 26}, + {0x1D800, 0x1D9FF, 1}, + {0x1DA37, 0x1DA3A, 1}, + {0x1DA6D, 0x1DA74, 1}, + {0x1DA76, 0x1DA83, 1}, + {0x1DA85, 0x1DA86, 1}, + {0x1EEF0, 0x1EEF1, 1}, {0x1F000, 0x1F02B, 1}, {0x1F030, 0x1F093, 1}, {0x1F0A0, 0x1F0AE, 1}, - {0x1F0B1, 0x1F0BE, 1}, + {0x1F0B1, 0x1F0BF, 1}, {0x1F0C1, 0x1F0CF, 1}, - {0x1F0D1, 0x1F0DF, 1}, + {0x1F0D1, 0x1F0F5, 1}, {0x1F110, 0x1F12E, 1}, - {0x1F130, 0x1F169, 1}, - {0x1F170, 0x1F19A, 1}, + {0x1F130, 0x1F16B, 1}, + {0x1F170, 0x1F1AC, 1}, {0x1F1E6, 0x1F202, 1}, - {0x1F210, 0x1F23A, 1}, + {0x1F210, 0x1F23B, 1}, {0x1F240, 0x1F248, 1}, {0x1F250, 0x1F251, 1}, - {0x1F300, 0x1F320, 1}, - {0x1F330, 0x1F335, 1}, - {0x1F337, 0x1F37C, 1}, - {0x1F380, 0x1F393, 1}, - {0x1F3A0, 0x1F3C4, 1}, - {0x1F3C6, 0x1F3CA, 1}, - {0x1F3E0, 0x1F3F0, 1}, - {0x1F400, 0x1F43E, 1}, - {0x1F440, 0x1F442, 2}, - {0x1F443, 0x1F4F7, 1}, - {0x1F4F9, 0x1F4FC, 1}, - {0x1F500, 0x1F53D, 1}, - {0x1F550, 0x1F567, 1}, - {0x1F5FB, 0x1F5FF, 1}, - {0x1F601, 0x1F610, 1}, - {0x1F612, 0x1F614, 1}, - {0x1F616, 0x1F61C, 2}, - {0x1F61D, 0x1F61E, 1}, - {0x1F620, 0x1F625, 1}, - {0x1F628, 0x1F62B, 1}, - {0x1F62D, 0x1F630, 3}, - {0x1F631, 0x1F633, 1}, - {0x1F635, 0x1F640, 1}, - {0x1F645, 0x1F64F, 1}, - {0x1F680, 0x1F6C5, 1}, - {0x1F700, 0x1F773, 1} + {0x1F260, 0x1F265, 1}, + {0x1F300, 0x1F6D4, 1}, + {0x1F6E0, 0x1F6EC, 1}, + {0x1F6F0, 0x1F6F8, 1}, + {0x1F700, 0x1F773, 1}, + {0x1F780, 0x1F7D4, 1}, + {0x1F800, 0x1F80B, 1}, + {0x1F810, 0x1F847, 1}, + {0x1F850, 0x1F859, 1}, + {0x1F860, 0x1F887, 1}, + {0x1F890, 0x1F8AD, 1}, + {0x1F900, 0x1F90B, 1}, + {0x1F910, 0x1F93E, 1}, + {0x1F940, 0x1F94C, 1}, + {0x1F950, 0x1F96B, 1}, + {0x1F980, 0x1F997, 1}, + {0x1F9C0, 0x1F9D0, 16}, + {0x1F9D1, 0x1F9E6, 1} }; } @@ -2244,18 +2773,20 @@ private static int[][] make_C() { {0x0000, 0x001F, 1}, {0x007F, 0x009F, 1}, {0x00AD, 0x0600, 1363}, - {0x0601, 0x0603, 1}, - {0x06DD, 0x070F, 50}, - {0x17B4, 0x17B5, 1}, - {0x200B, 0x200F, 1}, + {0x0601, 0x0605, 1}, + {0x061C, 0x06DD, 193}, + {0x070F, 0x08E2, 467}, + {0x180E, 0x200B, 2045}, + {0x200C, 0x200F, 1}, {0x202A, 0x202E, 1}, {0x2060, 0x2064, 1}, - {0x206A, 0x206F, 1}, + {0x2066, 0x206F, 1}, {0xD800, 0xF8FF, 1}, {0xFEFF, 0xFFF9, 250}, {0xFFFA, 0xFFFB, 1}, - {0x110BD, 0x1D173, 49334}, - {0x1D174, 0x1D17A, 1}, + {0x110BD, 0x1BCA0, 44003}, + {0x1BCA1, 0x1BCA3, 1}, + {0x1D173, 0x1D17A, 1}, {0xE0001, 0xE0020, 31}, {0xE0021, 0xE007F, 1}, {0xF0000, 0xFFFFD, 1}, @@ -2266,8 +2797,8 @@ private static int[][] make_C() { private static int[][] make_Z() { return new int[][] { {0x0020, 0x00A0, 128}, - {0x1680, 0x180E, 398}, - {0x2000, 0x200A, 1}, + {0x1680, 0x2000, 2432}, + {0x2001, 0x200A, 1}, {0x2028, 0x2029, 1}, {0x202F, 0x205F, 48}, {0x3000, 0x3000, 1} @@ -2289,13 +2820,13 @@ private static int[][] make_L() { {0x0370, 0x0374, 1}, {0x0376, 0x0377, 1}, {0x037A, 0x037D, 1}, - {0x0386, 0x0388, 2}, - {0x0389, 0x038A, 1}, + {0x037F, 0x0386, 7}, + {0x0388, 0x038A, 1}, {0x038C, 0x038E, 2}, {0x038F, 0x03A1, 1}, {0x03A3, 0x03F5, 1}, {0x03F7, 0x0481, 1}, - {0x048A, 0x0527, 1}, + {0x048A, 0x052F, 1}, {0x0531, 0x0556, 1}, {0x0559, 0x0561, 8}, {0x0562, 0x0587, 1}, @@ -2319,11 +2850,13 @@ private static int[][] make_L() { {0x081A, 0x0824, 10}, {0x0828, 0x0840, 24}, {0x0841, 0x0858, 1}, + {0x0860, 0x086A, 1}, + {0x08A0, 0x08B4, 1}, + {0x08B6, 0x08BD, 1}, {0x0904, 0x0939, 1}, {0x093D, 0x0950, 19}, {0x0958, 0x0961, 1}, - {0x0971, 0x0977, 1}, - {0x0979, 0x097F, 1}, + {0x0971, 0x0980, 1}, {0x0985, 0x098C, 1}, {0x098F, 0x0990, 1}, {0x0993, 0x09A8, 1}, @@ -2334,7 +2867,8 @@ private static int[][] make_L() { {0x09DC, 0x09DD, 1}, {0x09DF, 0x09E1, 1}, {0x09F0, 0x09F1, 1}, - {0x0A05, 0x0A0A, 1}, + {0x09FC, 0x0A05, 9}, + {0x0A06, 0x0A0A, 1}, {0x0A0F, 0x0A10, 1}, {0x0A13, 0x0A28, 1}, {0x0A2A, 0x0A30, 1}, @@ -2352,7 +2886,8 @@ private static int[][] make_L() { {0x0AB5, 0x0AB9, 1}, {0x0ABD, 0x0AD0, 19}, {0x0AE0, 0x0AE1, 1}, - {0x0B05, 0x0B0C, 1}, + {0x0AF9, 0x0B05, 12}, + {0x0B06, 0x0B0C, 1}, {0x0B0F, 0x0B10, 1}, {0x0B13, 0x0B28, 1}, {0x0B2A, 0x0B30, 1}, @@ -2375,11 +2910,11 @@ private static int[][] make_L() { {0x0C06, 0x0C0C, 1}, {0x0C0E, 0x0C10, 1}, {0x0C12, 0x0C28, 1}, - {0x0C2A, 0x0C33, 1}, - {0x0C35, 0x0C39, 1}, + {0x0C2A, 0x0C39, 1}, {0x0C3D, 0x0C58, 27}, - {0x0C59, 0x0C60, 7}, - {0x0C61, 0x0C85, 36}, + {0x0C59, 0x0C5A, 1}, + {0x0C60, 0x0C61, 1}, + {0x0C80, 0x0C85, 5}, {0x0C86, 0x0C8C, 1}, {0x0C8E, 0x0C90, 1}, {0x0C92, 0x0CA8, 1}, @@ -2392,7 +2927,8 @@ private static int[][] make_L() { {0x0D0E, 0x0D10, 1}, {0x0D12, 0x0D3A, 1}, {0x0D3D, 0x0D4E, 17}, - {0x0D60, 0x0D61, 1}, + {0x0D54, 0x0D56, 1}, + {0x0D5F, 0x0D61, 1}, {0x0D7A, 0x0D7F, 1}, {0x0D85, 0x0D96, 1}, {0x0D9A, 0x0DB1, 1}, @@ -2416,8 +2952,9 @@ private static int[][] make_L() { {0x0EBD, 0x0EC0, 3}, {0x0EC1, 0x0EC4, 1}, {0x0EC6, 0x0EDC, 22}, - {0x0EDD, 0x0F00, 35}, - {0x0F40, 0x0F47, 1}, + {0x0EDD, 0x0EDF, 1}, + {0x0F00, 0x0F40, 64}, + {0x0F41, 0x0F47, 1}, {0x0F49, 0x0F6C, 1}, {0x0F88, 0x0F8C, 1}, {0x1000, 0x102A, 1}, @@ -2430,9 +2967,9 @@ private static int[][] make_L() { {0x1075, 0x1081, 1}, {0x108E, 0x10A0, 18}, {0x10A1, 0x10C5, 1}, + {0x10C7, 0x10CD, 6}, {0x10D0, 0x10FA, 1}, - {0x10FC, 0x1100, 4}, - {0x1101, 0x1248, 1}, + {0x10FC, 0x1248, 1}, {0x124A, 0x124D, 1}, {0x1250, 0x1256, 1}, {0x1258, 0x125A, 2}, @@ -2449,11 +2986,13 @@ private static int[][] make_L() { {0x1312, 0x1315, 1}, {0x1318, 0x135A, 1}, {0x1380, 0x138F, 1}, - {0x13A0, 0x13F4, 1}, + {0x13A0, 0x13F5, 1}, + {0x13F8, 0x13FD, 1}, {0x1401, 0x166C, 1}, {0x166F, 0x167F, 1}, {0x1681, 0x169A, 1}, {0x16A0, 0x16EA, 1}, + {0x16F1, 0x16F8, 1}, {0x1700, 0x170C, 1}, {0x170E, 0x1711, 1}, {0x1720, 0x1731, 1}, @@ -2463,14 +3002,15 @@ private static int[][] make_L() { {0x1780, 0x17B3, 1}, {0x17D7, 0x17DC, 5}, {0x1820, 0x1877, 1}, - {0x1880, 0x18A8, 1}, + {0x1880, 0x1884, 1}, + {0x1887, 0x18A8, 1}, {0x18AA, 0x18B0, 6}, {0x18B1, 0x18F5, 1}, - {0x1900, 0x191C, 1}, + {0x1900, 0x191E, 1}, {0x1950, 0x196D, 1}, {0x1970, 0x1974, 1}, {0x1980, 0x19AB, 1}, - {0x19C1, 0x19C7, 1}, + {0x19B0, 0x19C9, 1}, {0x1A00, 0x1A16, 1}, {0x1A20, 0x1A54, 1}, {0x1AA7, 0x1B05, 94}, @@ -2478,12 +3018,14 @@ private static int[][] make_L() { {0x1B45, 0x1B4B, 1}, {0x1B83, 0x1BA0, 1}, {0x1BAE, 0x1BAF, 1}, - {0x1BC0, 0x1BE5, 1}, + {0x1BBA, 0x1BE5, 1}, {0x1C00, 0x1C23, 1}, {0x1C4D, 0x1C4F, 1}, {0x1C5A, 0x1C7D, 1}, + {0x1C80, 0x1C88, 1}, {0x1CE9, 0x1CEC, 1}, {0x1CEE, 0x1CF1, 1}, + {0x1CF5, 0x1CF6, 1}, {0x1D00, 0x1DBF, 1}, {0x1E00, 0x1F15, 1}, {0x1F18, 0x1F1D, 1}, @@ -2519,8 +3061,10 @@ private static int[][] make_L() { {0x2C30, 0x2C5E, 1}, {0x2C60, 0x2CE4, 1}, {0x2CEB, 0x2CEE, 1}, + {0x2CF2, 0x2CF3, 1}, {0x2D00, 0x2D25, 1}, - {0x2D30, 0x2D65, 1}, + {0x2D27, 0x2D2D, 6}, + {0x2D30, 0x2D67, 1}, {0x2D6F, 0x2D80, 17}, {0x2D81, 0x2D96, 1}, {0x2DA0, 0x2DA6, 1}, @@ -2539,60 +3083,65 @@ private static int[][] make_L() { {0x309D, 0x309F, 1}, {0x30A1, 0x30FA, 1}, {0x30FC, 0x30FF, 1}, - {0x3105, 0x312D, 1}, + {0x3105, 0x312E, 1}, {0x3131, 0x318E, 1}, {0x31A0, 0x31BA, 1}, {0x31F0, 0x31FF, 1}, {0x3400, 0x4DB5, 1}, - {0x4E00, 0x9FCB, 1}, + {0x4E00, 0x9FEA, 1}, {0xA000, 0xA48C, 1}, {0xA4D0, 0xA4FD, 1}, {0xA500, 0xA60C, 1}, {0xA610, 0xA61F, 1}, {0xA62A, 0xA62B, 1}, {0xA640, 0xA66E, 1}, - {0xA67F, 0xA697, 1}, + {0xA67F, 0xA69D, 1}, {0xA6A0, 0xA6E5, 1}, {0xA717, 0xA71F, 1}, {0xA722, 0xA788, 1}, - {0xA78B, 0xA78E, 1}, - {0xA790, 0xA791, 1}, - {0xA7A0, 0xA7A9, 1}, - {0xA7FA, 0xA801, 1}, + {0xA78B, 0xA7AE, 1}, + {0xA7B0, 0xA7B7, 1}, + {0xA7F7, 0xA801, 1}, {0xA803, 0xA805, 1}, {0xA807, 0xA80A, 1}, {0xA80C, 0xA822, 1}, {0xA840, 0xA873, 1}, {0xA882, 0xA8B3, 1}, {0xA8F2, 0xA8F7, 1}, - {0xA8FB, 0xA90A, 15}, - {0xA90B, 0xA925, 1}, + {0xA8FB, 0xA8FD, 2}, + {0xA90A, 0xA925, 1}, {0xA930, 0xA946, 1}, {0xA960, 0xA97C, 1}, {0xA984, 0xA9B2, 1}, - {0xA9CF, 0xAA00, 49}, - {0xAA01, 0xAA28, 1}, + {0xA9CF, 0xA9E0, 17}, + {0xA9E1, 0xA9E4, 1}, + {0xA9E6, 0xA9EF, 1}, + {0xA9FA, 0xA9FE, 1}, + {0xAA00, 0xAA28, 1}, {0xAA40, 0xAA42, 1}, {0xAA44, 0xAA4B, 1}, {0xAA60, 0xAA76, 1}, - {0xAA7A, 0xAA80, 6}, - {0xAA81, 0xAAAF, 1}, + {0xAA7A, 0xAA7E, 4}, + {0xAA7F, 0xAAAF, 1}, {0xAAB1, 0xAAB5, 4}, {0xAAB6, 0xAAB9, 3}, {0xAABA, 0xAABD, 1}, {0xAAC0, 0xAAC2, 2}, {0xAADB, 0xAADD, 1}, + {0xAAE0, 0xAAEA, 1}, + {0xAAF2, 0xAAF4, 1}, {0xAB01, 0xAB06, 1}, {0xAB09, 0xAB0E, 1}, {0xAB11, 0xAB16, 1}, {0xAB20, 0xAB26, 1}, {0xAB28, 0xAB2E, 1}, - {0xABC0, 0xABE2, 1}, + {0xAB30, 0xAB5A, 1}, + {0xAB5C, 0xAB65, 1}, + {0xAB70, 0xABE2, 1}, {0xAC00, 0xD7A3, 1}, {0xD7B0, 0xD7C6, 1}, {0xD7CB, 0xD7FB, 1}, - {0xF900, 0xFA2D, 1}, - {0xFA30, 0xFA6D, 1}, + {0xF900, 0xFA6D, 1}, {0xFA70, 0xFAD9, 1}, {0xFB00, 0xFB06, 1}, {0xFB13, 0xFB17, 1}, @@ -2626,36 +3175,124 @@ private static int[][] make_L() { {0x10080, 0x100FA, 1}, {0x10280, 0x1029C, 1}, {0x102A0, 0x102D0, 1}, - {0x10300, 0x1031E, 1}, - {0x10330, 0x10340, 1}, + {0x10300, 0x1031F, 1}, + {0x1032D, 0x10340, 1}, {0x10342, 0x10349, 1}, + {0x10350, 0x10375, 1}, {0x10380, 0x1039D, 1}, {0x103A0, 0x103C3, 1}, {0x103C8, 0x103CF, 1}, {0x10400, 0x1049D, 1}, + {0x104B0, 0x104D3, 1}, + {0x104D8, 0x104FB, 1}, + {0x10500, 0x10527, 1}, + {0x10530, 0x10563, 1}, + {0x10600, 0x10736, 1}, + {0x10740, 0x10755, 1}, + {0x10760, 0x10767, 1}, {0x10800, 0x10805, 1}, {0x10808, 0x1080A, 2}, {0x1080B, 0x10835, 1}, {0x10837, 0x10838, 1}, {0x1083C, 0x1083F, 3}, {0x10840, 0x10855, 1}, + {0x10860, 0x10876, 1}, + {0x10880, 0x1089E, 1}, + {0x108E0, 0x108F2, 1}, + {0x108F4, 0x108F5, 1}, {0x10900, 0x10915, 1}, {0x10920, 0x10939, 1}, + {0x10980, 0x109B7, 1}, + {0x109BE, 0x109BF, 1}, {0x10A00, 0x10A10, 16}, {0x10A11, 0x10A13, 1}, {0x10A15, 0x10A17, 1}, {0x10A19, 0x10A33, 1}, {0x10A60, 0x10A7C, 1}, + {0x10A80, 0x10A9C, 1}, + {0x10AC0, 0x10AC7, 1}, + {0x10AC9, 0x10AE4, 1}, {0x10B00, 0x10B35, 1}, {0x10B40, 0x10B55, 1}, {0x10B60, 0x10B72, 1}, + {0x10B80, 0x10B91, 1}, {0x10C00, 0x10C48, 1}, + {0x10C80, 0x10CB2, 1}, + {0x10CC0, 0x10CF2, 1}, {0x11003, 0x11037, 1}, {0x11083, 0x110AF, 1}, - {0x12000, 0x1236E, 1}, + {0x110D0, 0x110E8, 1}, + {0x11103, 0x11126, 1}, + {0x11150, 0x11172, 1}, + {0x11176, 0x11183, 13}, + {0x11184, 0x111B2, 1}, + {0x111C1, 0x111C4, 1}, + {0x111DA, 0x111DC, 2}, + {0x11200, 0x11211, 1}, + {0x11213, 0x1122B, 1}, + {0x11280, 0x11286, 1}, + {0x11288, 0x1128A, 2}, + {0x1128B, 0x1128D, 1}, + {0x1128F, 0x1129D, 1}, + {0x1129F, 0x112A8, 1}, + {0x112B0, 0x112DE, 1}, + {0x11305, 0x1130C, 1}, + {0x1130F, 0x11310, 1}, + {0x11313, 0x11328, 1}, + {0x1132A, 0x11330, 1}, + {0x11332, 0x11333, 1}, + {0x11335, 0x11339, 1}, + {0x1133D, 0x11350, 19}, + {0x1135D, 0x11361, 1}, + {0x11400, 0x11434, 1}, + {0x11447, 0x1144A, 1}, + {0x11480, 0x114AF, 1}, + {0x114C4, 0x114C5, 1}, + {0x114C7, 0x11580, 185}, + {0x11581, 0x115AE, 1}, + {0x115D8, 0x115DB, 1}, + {0x11600, 0x1162F, 1}, + {0x11644, 0x11680, 60}, + {0x11681, 0x116AA, 1}, + {0x11700, 0x11719, 1}, + {0x118A0, 0x118DF, 1}, + {0x118FF, 0x11A00, 257}, + {0x11A0B, 0x11A32, 1}, + {0x11A3A, 0x11A50, 22}, + {0x11A5C, 0x11A83, 1}, + {0x11A86, 0x11A89, 1}, + {0x11AC0, 0x11AF8, 1}, + {0x11C00, 0x11C08, 1}, + {0x11C0A, 0x11C2E, 1}, + {0x11C40, 0x11C72, 50}, + {0x11C73, 0x11C8F, 1}, + {0x11D00, 0x11D06, 1}, + {0x11D08, 0x11D09, 1}, + {0x11D0B, 0x11D30, 1}, + {0x11D46, 0x12000, 698}, + {0x12001, 0x12399, 1}, + {0x12480, 0x12543, 1}, {0x13000, 0x1342E, 1}, + {0x14400, 0x14646, 1}, {0x16800, 0x16A38, 1}, - {0x1B000, 0x1B001, 1}, + {0x16A40, 0x16A5E, 1}, + {0x16AD0, 0x16AED, 1}, + {0x16B00, 0x16B2F, 1}, + {0x16B40, 0x16B43, 1}, + {0x16B63, 0x16B77, 1}, + {0x16B7D, 0x16B8F, 1}, + {0x16F00, 0x16F44, 1}, + {0x16F50, 0x16F93, 67}, + {0x16F94, 0x16F9F, 1}, + {0x16FE0, 0x16FE1, 1}, + {0x17000, 0x187EC, 1}, + {0x18800, 0x18AF2, 1}, + {0x1B000, 0x1B11E, 1}, + {0x1B170, 0x1B2FB, 1}, + {0x1BC00, 0x1BC6A, 1}, + {0x1BC70, 0x1BC7C, 1}, + {0x1BC80, 0x1BC88, 1}, + {0x1BC90, 0x1BC99, 1}, {0x1D400, 0x1D454, 1}, {0x1D456, 0x1D49C, 1}, {0x1D49E, 0x1D49F, 1}, @@ -2686,9 +3323,37 @@ private static int[][] make_L() { {0x1D78A, 0x1D7A8, 1}, {0x1D7AA, 0x1D7C2, 1}, {0x1D7C4, 0x1D7CB, 1}, + {0x1E800, 0x1E8C4, 1}, + {0x1E900, 0x1E943, 1}, + {0x1EE00, 0x1EE03, 1}, + {0x1EE05, 0x1EE1F, 1}, + {0x1EE21, 0x1EE22, 1}, + {0x1EE24, 0x1EE27, 3}, + {0x1EE29, 0x1EE32, 1}, + {0x1EE34, 0x1EE37, 1}, + {0x1EE39, 0x1EE3B, 2}, + {0x1EE42, 0x1EE47, 5}, + {0x1EE49, 0x1EE4D, 2}, + {0x1EE4E, 0x1EE4F, 1}, + {0x1EE51, 0x1EE52, 1}, + {0x1EE54, 0x1EE57, 3}, + {0x1EE59, 0x1EE61, 2}, + {0x1EE62, 0x1EE64, 2}, + {0x1EE67, 0x1EE6A, 1}, + {0x1EE6C, 0x1EE72, 1}, + {0x1EE74, 0x1EE77, 1}, + {0x1EE79, 0x1EE7C, 1}, + {0x1EE7E, 0x1EE80, 2}, + {0x1EE81, 0x1EE89, 1}, + {0x1EE8B, 0x1EE9B, 1}, + {0x1EEA1, 0x1EEA3, 1}, + {0x1EEA5, 0x1EEA9, 1}, + {0x1EEAB, 0x1EEBB, 1}, {0x20000, 0x2A6D6, 1}, {0x2A700, 0x2B734, 1}, {0x2B740, 0x2B81D, 1}, + {0x2B820, 0x2CEA1, 1}, + {0x2CEB0, 0x2EBE0, 1}, {0x2F800, 0x2FA1D, 1} }; } @@ -2717,7 +3382,8 @@ private static int[][] make_M() { {0x0825, 0x0827, 1}, {0x0829, 0x082D, 1}, {0x0859, 0x085B, 1}, - {0x0900, 0x0903, 1}, + {0x08D4, 0x08E1, 1}, + {0x08E3, 0x0903, 1}, {0x093A, 0x093C, 1}, {0x093E, 0x094F, 1}, {0x0951, 0x0957, 1}, @@ -2742,6 +3408,7 @@ private static int[][] make_M() { {0x0AC7, 0x0AC9, 1}, {0x0ACB, 0x0ACD, 1}, {0x0AE2, 0x0AE3, 1}, + {0x0AFA, 0x0AFF, 1}, {0x0B01, 0x0B03, 1}, {0x0B3C, 0x0B3E, 2}, {0x0B3F, 0x0B44, 1}, @@ -2753,21 +3420,22 @@ private static int[][] make_M() { {0x0BBF, 0x0BC2, 1}, {0x0BC6, 0x0BC8, 1}, {0x0BCA, 0x0BCD, 1}, - {0x0BD7, 0x0C01, 42}, - {0x0C02, 0x0C03, 1}, + {0x0BD7, 0x0C00, 41}, + {0x0C01, 0x0C03, 1}, {0x0C3E, 0x0C44, 1}, {0x0C46, 0x0C48, 1}, {0x0C4A, 0x0C4D, 1}, {0x0C55, 0x0C56, 1}, {0x0C62, 0x0C63, 1}, - {0x0C82, 0x0C83, 1}, + {0x0C81, 0x0C83, 1}, {0x0CBC, 0x0CBE, 2}, {0x0CBF, 0x0CC4, 1}, {0x0CC6, 0x0CC8, 1}, {0x0CCA, 0x0CCD, 1}, {0x0CD5, 0x0CD6, 1}, {0x0CE2, 0x0CE3, 1}, - {0x0D02, 0x0D03, 1}, + {0x0D00, 0x0D03, 1}, + {0x0D3B, 0x0D3C, 1}, {0x0D3E, 0x0D44, 1}, {0x0D46, 0x0D48, 1}, {0x0D4A, 0x0D4D, 1}, @@ -2807,30 +3475,32 @@ private static int[][] make_M() { {0x1732, 0x1734, 1}, {0x1752, 0x1753, 1}, {0x1772, 0x1773, 1}, - {0x17B6, 0x17D3, 1}, + {0x17B4, 0x17D3, 1}, {0x17DD, 0x180B, 46}, {0x180C, 0x180D, 1}, + {0x1885, 0x1886, 1}, {0x18A9, 0x1920, 119}, {0x1921, 0x192B, 1}, {0x1930, 0x193B, 1}, - {0x19B0, 0x19C0, 1}, - {0x19C8, 0x19C9, 1}, {0x1A17, 0x1A1B, 1}, {0x1A55, 0x1A5E, 1}, {0x1A60, 0x1A7C, 1}, - {0x1A7F, 0x1B00, 129}, - {0x1B01, 0x1B04, 1}, + {0x1A7F, 0x1AB0, 49}, + {0x1AB1, 0x1ABE, 1}, + {0x1B00, 0x1B04, 1}, {0x1B34, 0x1B44, 1}, {0x1B6B, 0x1B73, 1}, {0x1B80, 0x1B82, 1}, - {0x1BA1, 0x1BAA, 1}, + {0x1BA1, 0x1BAD, 1}, {0x1BE6, 0x1BF3, 1}, {0x1C24, 0x1C37, 1}, {0x1CD0, 0x1CD2, 1}, {0x1CD4, 0x1CE8, 1}, {0x1CED, 0x1CF2, 5}, - {0x1DC0, 0x1DE6, 1}, - {0x1DFC, 0x1DFF, 1}, + {0x1CF3, 0x1CF4, 1}, + {0x1CF7, 0x1CF9, 1}, + {0x1DC0, 0x1DF9, 1}, + {0x1DFB, 0x1DFF, 1}, {0x20D0, 0x20F0, 1}, {0x2CEF, 0x2CF1, 1}, {0x2D7F, 0x2DE0, 97}, @@ -2838,47 +3508,112 @@ private static int[][] make_M() { {0x302A, 0x302F, 1}, {0x3099, 0x309A, 1}, {0xA66F, 0xA672, 1}, - {0xA67C, 0xA67D, 1}, + {0xA674, 0xA67D, 1}, + {0xA69E, 0xA69F, 1}, {0xA6F0, 0xA6F1, 1}, {0xA802, 0xA806, 4}, {0xA80B, 0xA823, 24}, {0xA824, 0xA827, 1}, {0xA880, 0xA881, 1}, - {0xA8B4, 0xA8C4, 1}, + {0xA8B4, 0xA8C5, 1}, {0xA8E0, 0xA8F1, 1}, {0xA926, 0xA92D, 1}, {0xA947, 0xA953, 1}, {0xA980, 0xA983, 1}, {0xA9B3, 0xA9C0, 1}, - {0xAA29, 0xAA36, 1}, + {0xA9E5, 0xAA29, 68}, + {0xAA2A, 0xAA36, 1}, {0xAA43, 0xAA4C, 9}, {0xAA4D, 0xAA7B, 46}, + {0xAA7C, 0xAA7D, 1}, {0xAAB0, 0xAAB2, 2}, {0xAAB3, 0xAAB4, 1}, {0xAAB7, 0xAAB8, 1}, {0xAABE, 0xAABF, 1}, - {0xAAC1, 0xABE3, 290}, - {0xABE4, 0xABEA, 1}, + {0xAAC1, 0xAAEB, 42}, + {0xAAEC, 0xAAEF, 1}, + {0xAAF5, 0xAAF6, 1}, + {0xABE3, 0xABEA, 1}, {0xABEC, 0xABED, 1}, {0xFB1E, 0xFE00, 738}, {0xFE01, 0xFE0F, 1}, - {0xFE20, 0xFE26, 1}, - {0x101FD, 0x10A01, 2052}, - {0x10A02, 0x10A03, 1}, + {0xFE20, 0xFE2F, 1}, + {0x101FD, 0x102E0, 227}, + {0x10376, 0x1037A, 1}, + {0x10A01, 0x10A03, 1}, {0x10A05, 0x10A06, 1}, {0x10A0C, 0x10A0F, 1}, {0x10A38, 0x10A3A, 1}, - {0x10A3F, 0x11000, 1473}, + {0x10A3F, 0x10AE5, 166}, + {0x10AE6, 0x11000, 1306}, {0x11001, 0x11002, 1}, {0x11038, 0x11046, 1}, - {0x11080, 0x11082, 1}, + {0x1107F, 0x11082, 1}, {0x110B0, 0x110BA, 1}, + {0x11100, 0x11102, 1}, + {0x11127, 0x11134, 1}, + {0x11173, 0x11180, 13}, + {0x11181, 0x11182, 1}, + {0x111B3, 0x111C0, 1}, + {0x111CA, 0x111CC, 1}, + {0x1122C, 0x11237, 1}, + {0x1123E, 0x112DF, 161}, + {0x112E0, 0x112EA, 1}, + {0x11300, 0x11303, 1}, + {0x1133C, 0x1133E, 2}, + {0x1133F, 0x11344, 1}, + {0x11347, 0x11348, 1}, + {0x1134B, 0x1134D, 1}, + {0x11357, 0x11362, 11}, + {0x11363, 0x11366, 3}, + {0x11367, 0x1136C, 1}, + {0x11370, 0x11374, 1}, + {0x11435, 0x11446, 1}, + {0x114B0, 0x114C3, 1}, + {0x115AF, 0x115B5, 1}, + {0x115B8, 0x115C0, 1}, + {0x115DC, 0x115DD, 1}, + {0x11630, 0x11640, 1}, + {0x116AB, 0x116B7, 1}, + {0x1171D, 0x1172B, 1}, + {0x11A01, 0x11A0A, 1}, + {0x11A33, 0x11A39, 1}, + {0x11A3B, 0x11A3E, 1}, + {0x11A47, 0x11A51, 10}, + {0x11A52, 0x11A5B, 1}, + {0x11A8A, 0x11A99, 1}, + {0x11C2F, 0x11C36, 1}, + {0x11C38, 0x11C3F, 1}, + {0x11C92, 0x11CA7, 1}, + {0x11CA9, 0x11CB6, 1}, + {0x11D31, 0x11D36, 1}, + {0x11D3A, 0x11D3C, 2}, + {0x11D3D, 0x11D3F, 2}, + {0x11D40, 0x11D45, 1}, + {0x11D47, 0x16AF0, 19881}, + {0x16AF1, 0x16AF4, 1}, + {0x16B30, 0x16B36, 1}, + {0x16F51, 0x16F7E, 1}, + {0x16F8F, 0x16F92, 1}, + {0x1BC9D, 0x1BC9E, 1}, {0x1D165, 0x1D169, 1}, {0x1D16D, 0x1D172, 1}, {0x1D17B, 0x1D182, 1}, {0x1D185, 0x1D18B, 1}, {0x1D1AA, 0x1D1AD, 1}, {0x1D242, 0x1D244, 1}, + {0x1DA00, 0x1DA36, 1}, + {0x1DA3B, 0x1DA6C, 1}, + {0x1DA75, 0x1DA84, 15}, + {0x1DA9B, 0x1DA9F, 1}, + {0x1DAA1, 0x1DAAF, 1}, + {0x1E000, 0x1E006, 1}, + {0x1E008, 0x1E018, 1}, + {0x1E01B, 0x1E021, 1}, + {0x1E023, 0x1E024, 1}, + {0x1E026, 0x1E02A, 1}, + {0x1E8D0, 0x1E8D6, 1}, + {0x1E944, 0x1E94A, 1}, {0xE0100, 0xE01EF, 1} }; } @@ -2903,7 +3638,9 @@ private static int[][] make_N() { {0x0C66, 0x0C6F, 1}, {0x0C78, 0x0C7E, 1}, {0x0CE6, 0x0CEF, 1}, - {0x0D66, 0x0D75, 1}, + {0x0D58, 0x0D5E, 1}, + {0x0D66, 0x0D78, 1}, + {0x0DE6, 0x0DEF, 1}, {0x0E50, 0x0E59, 1}, {0x0ED0, 0x0ED9, 1}, {0x0F20, 0x0F33, 1}, @@ -2935,6 +3672,7 @@ private static int[][] make_N() { {0x3038, 0x303A, 1}, {0x3192, 0x3195, 1}, {0x3220, 0x3229, 1}, + {0x3248, 0x324F, 1}, {0x3251, 0x325F, 1}, {0x3280, 0x3289, 1}, {0x32B1, 0x32BF, 1}, @@ -2944,28 +3682,58 @@ private static int[][] make_N() { {0xA8D0, 0xA8D9, 1}, {0xA900, 0xA909, 1}, {0xA9D0, 0xA9D9, 1}, + {0xA9F0, 0xA9F9, 1}, {0xAA50, 0xAA59, 1}, {0xABF0, 0xABF9, 1}, {0xFF10, 0xFF19, 1}, {0x10107, 0x10133, 1}, {0x10140, 0x10178, 1}, - {0x1018A, 0x10320, 406}, - {0x10321, 0x10323, 1}, + {0x1018A, 0x1018B, 1}, + {0x102E1, 0x102FB, 1}, + {0x10320, 0x10323, 1}, {0x10341, 0x1034A, 9}, {0x103D1, 0x103D5, 1}, {0x104A0, 0x104A9, 1}, {0x10858, 0x1085F, 1}, + {0x10879, 0x1087F, 1}, + {0x108A7, 0x108AF, 1}, + {0x108FB, 0x108FF, 1}, {0x10916, 0x1091B, 1}, + {0x109BC, 0x109BD, 1}, + {0x109C0, 0x109CF, 1}, + {0x109D2, 0x109FF, 1}, {0x10A40, 0x10A47, 1}, {0x10A7D, 0x10A7E, 1}, + {0x10A9D, 0x10A9F, 1}, + {0x10AEB, 0x10AEF, 1}, {0x10B58, 0x10B5F, 1}, {0x10B78, 0x10B7F, 1}, + {0x10BA9, 0x10BAF, 1}, + {0x10CFA, 0x10CFF, 1}, {0x10E60, 0x10E7E, 1}, {0x11052, 0x1106F, 1}, - {0x12400, 0x12462, 1}, + {0x110F0, 0x110F9, 1}, + {0x11136, 0x1113F, 1}, + {0x111D0, 0x111D9, 1}, + {0x111E1, 0x111F4, 1}, + {0x112F0, 0x112F9, 1}, + {0x11450, 0x11459, 1}, + {0x114D0, 0x114D9, 1}, + {0x11650, 0x11659, 1}, + {0x116C0, 0x116C9, 1}, + {0x11730, 0x1173B, 1}, + {0x118E0, 0x118F2, 1}, + {0x11C50, 0x11C6C, 1}, + {0x11D50, 0x11D59, 1}, + {0x12400, 0x1246E, 1}, + {0x16A60, 0x16A69, 1}, + {0x16B50, 0x16B59, 1}, + {0x16B5B, 0x16B61, 1}, {0x1D360, 0x1D371, 1}, {0x1D7CE, 0x1D7FF, 1}, - {0x1F100, 0x1F10A, 1} + {0x1E8C7, 0x1E8CF, 1}, + {0x1E950, 0x1E959, 1}, + {0x1F100, 0x1F10C, 1} }; } @@ -2982,12 +3750,11 @@ private static int[][] make_Common() { {0x02EC, 0x02FF, 1}, {0x0374, 0x037E, 10}, {0x0385, 0x0387, 2}, - {0x0589, 0x060C, 131}, - {0x061B, 0x061F, 4}, - {0x0640, 0x0660, 32}, - {0x0661, 0x0669, 1}, - {0x06DD, 0x0964, 647}, - {0x0965, 0x0970, 11}, + {0x0589, 0x0605, 124}, + {0x060C, 0x061B, 15}, + {0x061F, 0x0640, 33}, + {0x06DD, 0x08E2, 517}, + {0x0964, 0x0965, 1}, {0x0E3F, 0x0FD5, 406}, {0x0FD6, 0x0FD8, 1}, {0x10FB, 0x16EB, 1520}, @@ -2997,29 +3764,30 @@ private static int[][] make_Common() { {0x1805, 0x1CD3, 1230}, {0x1CE1, 0x1CE9, 8}, {0x1CEA, 0x1CEC, 1}, - {0x1CEE, 0x1CF2, 1}, + {0x1CEE, 0x1CF3, 1}, + {0x1CF5, 0x1CF7, 1}, {0x2000, 0x200B, 1}, {0x200E, 0x2064, 1}, - {0x206A, 0x2070, 1}, + {0x2066, 0x2070, 1}, {0x2074, 0x207E, 1}, {0x2080, 0x208E, 1}, - {0x20A0, 0x20B9, 1}, + {0x20A0, 0x20BF, 1}, {0x2100, 0x2125, 1}, {0x2127, 0x2129, 1}, {0x212C, 0x2131, 1}, {0x2133, 0x214D, 1}, {0x214F, 0x215F, 1}, - {0x2189, 0x2190, 7}, - {0x2191, 0x23F3, 1}, - {0x2400, 0x2426, 1}, + {0x2189, 0x218B, 1}, + {0x2190, 0x2426, 1}, {0x2440, 0x244A, 1}, - {0x2460, 0x26FF, 1}, - {0x2701, 0x27CA, 1}, - {0x27CC, 0x27CE, 2}, - {0x27CF, 0x27FF, 1}, - {0x2900, 0x2B4C, 1}, - {0x2B50, 0x2B59, 1}, - {0x2E00, 0x2E31, 1}, + {0x2460, 0x27FF, 1}, + {0x2900, 0x2B73, 1}, + {0x2B76, 0x2B95, 1}, + {0x2B98, 0x2BB9, 1}, + {0x2BBD, 0x2BC8, 1}, + {0x2BCA, 0x2BD2, 1}, + {0x2BEC, 0x2BEF, 1}, + {0x2E00, 0x2E49, 1}, {0x2FF0, 0x2FFB, 1}, {0x3000, 0x3004, 1}, {0x3006, 0x3008, 2}, @@ -3038,8 +3806,9 @@ private static int[][] make_Common() { {0xA700, 0xA721, 1}, {0xA788, 0xA78A, 1}, {0xA830, 0xA839, 1}, - {0xFD3E, 0xFD3F, 1}, - {0xFDFD, 0xFE10, 19}, + {0xA92E, 0xA9CF, 161}, + {0xAB5B, 0xFD3E, 20963}, + {0xFD3F, 0xFE10, 209}, {0xFE11, 0xFE19, 1}, {0xFE30, 0xFE52, 1}, {0xFE54, 0xFE66, 1}, @@ -3058,13 +3827,15 @@ private static int[][] make_Common() { {0x10137, 0x1013F, 1}, {0x10190, 0x1019B, 1}, {0x101D0, 0x101FC, 1}, + {0x102E1, 0x102FB, 1}, + {0x1BCA0, 0x1BCA3, 1}, {0x1D000, 0x1D0F5, 1}, {0x1D100, 0x1D126, 1}, {0x1D129, 0x1D166, 1}, {0x1D16A, 0x1D17A, 1}, {0x1D183, 0x1D184, 1}, {0x1D18C, 0x1D1A9, 1}, - {0x1D1AE, 0x1D1DD, 1}, + {0x1D1AE, 0x1D1E8, 1}, {0x1D300, 0x1D356, 1}, {0x1D360, 0x1D371, 1}, {0x1D400, 0x1D454, 1}, @@ -3091,44 +3862,36 @@ private static int[][] make_Common() { {0x1F000, 0x1F02B, 1}, {0x1F030, 0x1F093, 1}, {0x1F0A0, 0x1F0AE, 1}, - {0x1F0B1, 0x1F0BE, 1}, + {0x1F0B1, 0x1F0BF, 1}, {0x1F0C1, 0x1F0CF, 1}, - {0x1F0D1, 0x1F0DF, 1}, - {0x1F100, 0x1F10A, 1}, + {0x1F0D1, 0x1F0F5, 1}, + {0x1F100, 0x1F10C, 1}, {0x1F110, 0x1F12E, 1}, - {0x1F130, 0x1F169, 1}, - {0x1F170, 0x1F19A, 1}, + {0x1F130, 0x1F16B, 1}, + {0x1F170, 0x1F1AC, 1}, {0x1F1E6, 0x1F1FF, 1}, {0x1F201, 0x1F202, 1}, - {0x1F210, 0x1F23A, 1}, + {0x1F210, 0x1F23B, 1}, {0x1F240, 0x1F248, 1}, {0x1F250, 0x1F251, 1}, - {0x1F300, 0x1F320, 1}, - {0x1F330, 0x1F335, 1}, - {0x1F337, 0x1F37C, 1}, - {0x1F380, 0x1F393, 1}, - {0x1F3A0, 0x1F3C4, 1}, - {0x1F3C6, 0x1F3CA, 1}, - {0x1F3E0, 0x1F3F0, 1}, - {0x1F400, 0x1F43E, 1}, - {0x1F440, 0x1F442, 2}, - {0x1F443, 0x1F4F7, 1}, - {0x1F4F9, 0x1F4FC, 1}, - {0x1F500, 0x1F53D, 1}, - {0x1F550, 0x1F567, 1}, - {0x1F5FB, 0x1F5FF, 1}, - {0x1F601, 0x1F610, 1}, - {0x1F612, 0x1F614, 1}, - {0x1F616, 0x1F61C, 2}, - {0x1F61D, 0x1F61E, 1}, - {0x1F620, 0x1F625, 1}, - {0x1F628, 0x1F62B, 1}, - {0x1F62D, 0x1F630, 3}, - {0x1F631, 0x1F633, 1}, - {0x1F635, 0x1F640, 1}, - {0x1F645, 0x1F64F, 1}, - {0x1F680, 0x1F6C5, 1}, + {0x1F260, 0x1F265, 1}, + {0x1F300, 0x1F6D4, 1}, + {0x1F6E0, 0x1F6EC, 1}, + {0x1F6F0, 0x1F6F8, 1}, {0x1F700, 0x1F773, 1}, + {0x1F780, 0x1F7D4, 1}, + {0x1F800, 0x1F80B, 1}, + {0x1F810, 0x1F847, 1}, + {0x1F850, 0x1F859, 1}, + {0x1F860, 0x1F887, 1}, + {0x1F890, 0x1F8AD, 1}, + {0x1F900, 0x1F90B, 1}, + {0x1F910, 0x1F93E, 1}, + {0x1F940, 0x1F94C, 1}, + {0x1F950, 0x1F96B, 1}, + {0x1F980, 0x1F997, 1}, + {0x1F9C0, 0x1F9D0, 16}, + {0x1F9D1, 0x1F9E6, 1}, {0xE0001, 0xE0020, 31}, {0xE0021, 0xE007F, 1} }; @@ -3139,22 +3902,24 @@ private static int[][] make_Inherited() { {0x0300, 0x036F, 1}, {0x0485, 0x0486, 1}, {0x064B, 0x0655, 1}, - {0x065F, 0x0670, 17}, - {0x0951, 0x0952, 1}, + {0x0670, 0x0951, 737}, + {0x0952, 0x1AB0, 4446}, + {0x1AB1, 0x1ABE, 1}, {0x1CD0, 0x1CD2, 1}, {0x1CD4, 0x1CE0, 1}, {0x1CE2, 0x1CE8, 1}, - {0x1CED, 0x1DC0, 211}, - {0x1DC1, 0x1DE6, 1}, - {0x1DFC, 0x1DFF, 1}, + {0x1CED, 0x1CF4, 7}, + {0x1CF8, 0x1CF9, 1}, + {0x1DC0, 0x1DF9, 1}, + {0x1DFB, 0x1DFF, 1}, {0x200C, 0x200D, 1}, {0x20D0, 0x20F0, 1}, {0x302A, 0x302D, 1}, {0x3099, 0x309A, 1}, {0xFE00, 0xFE0F, 1}, - {0xFE20, 0xFE26, 1}, - {0x101FD, 0x1D167, 53098}, - {0x1D168, 0x1D169, 1}, + {0xFE20, 0xFE2D, 1}, + {0x101FD, 0x102E0, 227}, + {0x1D167, 0x1D169, 1}, {0x1D17B, 0x1D182, 1}, {0x1D185, 0x1D18B, 1}, {0x1D1AA, 0x1D1AD, 1}, @@ -3162,51 +3927,72 @@ private static int[][] make_Inherited() { }; } - private static int[][] make_Bamum() { - return new int[][] {{0xA6A0, 0xA6F7, 1}, {0x16800, 0x16A38, 1}}; - } - private static int[][] make_Arabic() { return new int[][] { - {0x0600, 0x0603, 1}, + {0x0600, 0x0604, 1}, {0x0606, 0x060B, 1}, {0x060D, 0x061A, 1}, - {0x061E, 0x0620, 2}, + {0x061C, 0x0620, 2}, {0x0621, 0x063F, 1}, {0x0641, 0x064A, 1}, - {0x0656, 0x065E, 1}, - {0x066A, 0x066F, 1}, + {0x0656, 0x066F, 1}, {0x0671, 0x06DC, 1}, {0x06DE, 0x06FF, 1}, {0x0750, 0x077F, 1}, + {0x08A0, 0x08B4, 1}, + {0x08B6, 0x08BD, 1}, + {0x08D4, 0x08E1, 1}, + {0x08E3, 0x08FF, 1}, {0xFB50, 0xFBC1, 1}, {0xFBD3, 0xFD3D, 1}, {0xFD50, 0xFD8F, 1}, {0xFD92, 0xFDC7, 1}, - {0xFDF0, 0xFDFC, 1}, + {0xFDF0, 0xFDFD, 1}, {0xFE70, 0xFE74, 1}, {0xFE76, 0xFEFC, 1}, - {0x10E60, 0x10E7E, 1} + {0x10E60, 0x10E7E, 1}, + {0x1EE00, 0x1EE03, 1}, + {0x1EE05, 0x1EE1F, 1}, + {0x1EE21, 0x1EE22, 1}, + {0x1EE24, 0x1EE27, 3}, + {0x1EE29, 0x1EE32, 1}, + {0x1EE34, 0x1EE37, 1}, + {0x1EE39, 0x1EE3B, 2}, + {0x1EE42, 0x1EE47, 5}, + {0x1EE49, 0x1EE4D, 2}, + {0x1EE4E, 0x1EE4F, 1}, + {0x1EE51, 0x1EE52, 1}, + {0x1EE54, 0x1EE57, 3}, + {0x1EE59, 0x1EE61, 2}, + {0x1EE62, 0x1EE64, 2}, + {0x1EE67, 0x1EE6A, 1}, + {0x1EE6C, 0x1EE72, 1}, + {0x1EE74, 0x1EE77, 1}, + {0x1EE79, 0x1EE7C, 1}, + {0x1EE7E, 0x1EE80, 2}, + {0x1EE81, 0x1EE89, 1}, + {0x1EE8B, 0x1EE9B, 1}, + {0x1EEA1, 0x1EEA3, 1}, + {0x1EEA5, 0x1EEA9, 1}, + {0x1EEAB, 0x1EEBB, 1}, + {0x1EEF0, 0x1EEF1, 1} }; } - private static int[][] make_Lisu() { - return new int[][] {{0xA4D0, 0xA4FF, 1}}; - } - private static int[][] make_Armenian() { return new int[][] { {0x0531, 0x0556, 1}, {0x0559, 0x055F, 1}, {0x0561, 0x0587, 1}, - {0x058A, 0xFB13, 62857}, - {0xFB14, 0xFB17, 1} + {0x058A, 0x058D, 3}, + {0x058E, 0x058F, 1}, + {0xFB13, 0xFB17, 1} }; } private static int[][] make_Bengali() { return new int[][] { - {0x0981, 0x0983, 1}, + {0x0980, 0x0983, 1}, {0x0985, 0x098C, 1}, {0x098F, 0x0990, 1}, {0x0993, 0x09A8, 1}, @@ -3219,34 +4005,31 @@ private static int[][] make_Bengali() { {0x09D7, 0x09DC, 5}, {0x09DD, 0x09DF, 2}, {0x09E0, 0x09E3, 1}, - {0x09E6, 0x09FB, 1} + {0x09E6, 0x09FD, 1} }; } - private static int[][] make_Old_South_Arabian() { - return new int[][] {{0x10A60, 0x10A7F, 1}}; - } - private static int[][] make_Bopomofo() { - return new int[][] {{0x02EA, 0x02EB, 1}, {0x3105, 0x312D, 1}, {0x31A0, 0x31BA, 1}}; + return new int[][] {{0x02EA, 0x02EB, 1}, {0x3105, 0x312E, 1}, {0x31A0, 0x31BA, 1}}; } private static int[][] make_Cherokee() { - return new int[][] {{0x13A0, 0x13F4, 1}}; + return new int[][] {{0x13A0, 0x13F5, 1}, {0x13F8, 0x13FD, 1}, {0xAB70, 0xABBF, 1}}; } private static int[][] make_Coptic() { - return new int[][] {{0x03E2, 0x03EF, 1}, {0x2C80, 0x2CF1, 1}, {0x2CF9, 0x2CFF, 1}}; + return new int[][] {{0x03E2, 0x03EF, 1}, {0x2C80, 0x2CF3, 1}, {0x2CF9, 0x2CFF, 1}}; } private static int[][] make_Cyrillic() { return new int[][] { {0x0400, 0x0484, 1}, - {0x0487, 0x0527, 1}, + {0x0487, 0x052F, 1}, + {0x1C80, 0x1C88, 1}, {0x1D2B, 0x1D78, 77}, {0x2DE0, 0x2DFF, 1}, - {0xA640, 0xA673, 1}, - {0xA67C, 0xA697, 1} + {0xA640, 0xA69F, 1}, + {0xFE2E, 0xFE2F, 1} }; } @@ -3256,12 +4039,7 @@ private static int[][] make_Deseret() { private static int[][] make_Devanagari() { return new int[][] { - {0x0900, 0x0950, 1}, - {0x0953, 0x0963, 1}, - {0x0966, 0x096F, 1}, - {0x0971, 0x0977, 1}, - {0x0979, 0x097F, 1}, - {0xA8E0, 0xA8FB, 1} + {0x0900, 0x0950, 1}, {0x0953, 0x0963, 1}, {0x0966, 0x097F, 1}, {0xA8E0, 0xA8FD, 1} }; } @@ -3304,7 +4082,12 @@ private static int[][] make_Ethiopic() { private static int[][] make_Georgian() { return new int[][] { - {0x10A0, 0x10C5, 1}, {0x10D0, 0x10FA, 1}, {0x10FC, 0x2D00, 7172}, {0x2D01, 0x2D25, 1} + {0x10A0, 0x10C5, 1}, + {0x10C7, 0x10CD, 6}, + {0x10D0, 0x10FA, 1}, + {0x10FC, 0x10FF, 1}, + {0x2D00, 0x2D25, 1}, + {0x2D27, 0x2D2D, 6} }; } @@ -3317,7 +4100,8 @@ private static int[][] make_Greek() { {0x0370, 0x0373, 1}, {0x0375, 0x0377, 1}, {0x037A, 0x037D, 1}, - {0x0384, 0x0388, 2}, + {0x037F, 0x0384, 5}, + {0x0386, 0x0388, 2}, {0x0389, 0x038A, 1}, {0x038C, 0x038E, 2}, {0x038F, 0x03A1, 1}, @@ -3341,9 +4125,10 @@ private static int[][] make_Greek() { {0x1FDD, 0x1FEF, 1}, {0x1FF2, 0x1FF4, 1}, {0x1FF6, 0x1FFE, 1}, - {0x2126, 0x10140, 57370}, - {0x10141, 0x1018A, 1}, - {0x1D200, 0x1D245, 1} + {0x2126, 0xAB65, 35391}, + {0x10140, 0x1018E, 1}, + {0x101A0, 0x1D200, 53344}, + {0x1D201, 0x1D245, 1} }; } @@ -3361,8 +4146,8 @@ private static int[][] make_Gujarati() { {0x0ACB, 0x0ACD, 1}, {0x0AD0, 0x0AE0, 16}, {0x0AE1, 0x0AE3, 1}, - {0x0AE6, 0x0AEF, 1}, - {0x0AF1, 0x0AF1, 1} + {0x0AE6, 0x0AF1, 1}, + {0x0AF9, 0x0AFF, 1} }; } @@ -3396,13 +4181,14 @@ private static int[][] make_Han() { {0x3021, 0x3029, 1}, {0x3038, 0x303B, 1}, {0x3400, 0x4DB5, 1}, - {0x4E00, 0x9FCB, 1}, - {0xF900, 0xFA2D, 1}, - {0xFA30, 0xFA6D, 1}, + {0x4E00, 0x9FEA, 1}, + {0xF900, 0xFA6D, 1}, {0xFA70, 0xFAD9, 1}, {0x20000, 0x2A6D6, 1}, {0x2A700, 0x2B734, 1}, {0x2B740, 0x2B81D, 1}, + {0x2B820, 0x2CEA1, 1}, + {0x2CEB0, 0x2EBE0, 1}, {0x2F800, 0x2FA1D, 1} }; } @@ -3441,12 +4227,14 @@ private static int[][] make_Hebrew() { } private static int[][] make_Hiragana() { - return new int[][] {{0x3041, 0x3096, 1}, {0x309D, 0x309F, 1}, {0x1B001, 0x1F200, 16895}}; + return new int[][] { + {0x3041, 0x3096, 1}, {0x309D, 0x309F, 1}, {0x1B001, 0x1B11E, 1}, {0x1F200, 0x1F200, 1} + }; } private static int[][] make_Kannada() { return new int[][] { - {0x0C82, 0x0C83, 1}, + {0x0C80, 0x0C83, 1}, {0x0C85, 0x0C8C, 1}, {0x0C8E, 0x0C90, 1}, {0x0C92, 0x0CA8, 1}, @@ -3499,7 +4287,7 @@ private static int[][] make_Lao() { {0x0EC6, 0x0EC8, 2}, {0x0EC9, 0x0ECD, 1}, {0x0ED0, 0x0ED9, 1}, - {0x0EDC, 0x0EDD, 1} + {0x0EDC, 0x0EDF, 1} }; } @@ -3525,10 +4313,11 @@ private static int[][] make_Latin() { {0x2160, 0x2188, 1}, {0x2C60, 0x2C7F, 1}, {0xA722, 0xA787, 1}, - {0xA78B, 0xA78E, 1}, - {0xA790, 0xA791, 1}, - {0xA7A0, 0xA7A9, 1}, - {0xA7FA, 0xA7FF, 1}, + {0xA78B, 0xA7AE, 1}, + {0xA7B0, 0xA7B7, 1}, + {0xA7F7, 0xA7FF, 1}, + {0xAB30, 0xAB5A, 1}, + {0xAB5C, 0xAB64, 1}, {0xFB00, 0xFB06, 1}, {0xFF21, 0xFF3A, 1}, {0xFF41, 0xFF5A, 1} @@ -3537,17 +4326,14 @@ private static int[][] make_Latin() { private static int[][] make_Malayalam() { return new int[][] { - {0x0D02, 0x0D03, 1}, + {0x0D00, 0x0D03, 1}, {0x0D05, 0x0D0C, 1}, {0x0D0E, 0x0D10, 1}, - {0x0D12, 0x0D3A, 1}, - {0x0D3D, 0x0D44, 1}, + {0x0D12, 0x0D44, 1}, {0x0D46, 0x0D48, 1}, - {0x0D4A, 0x0D4E, 1}, - {0x0D57, 0x0D60, 9}, - {0x0D61, 0x0D63, 1}, - {0x0D66, 0x0D75, 1}, - {0x0D79, 0x0D7F, 1} + {0x0D4A, 0x0D4F, 1}, + {0x0D54, 0x0D63, 1}, + {0x0D66, 0x0D7F, 1} }; } @@ -3558,12 +4344,13 @@ private static int[][] make_Mongolian() { {0x1807, 0x180E, 1}, {0x1810, 0x1819, 1}, {0x1820, 0x1877, 1}, - {0x1880, 0x18AA, 1} + {0x1880, 0x18AA, 1}, + {0x11660, 0x1166C, 1} }; } private static int[][] make_Myanmar() { - return new int[][] {{0x1000, 0x109F, 1}, {0xAA60, 0xAA7B, 1}}; + return new int[][] {{0x1000, 0x109F, 1}, {0xA9E0, 0xA9FE, 1}, {0xAA60, 0xAA7F, 1}}; } private static int[][] make_Ogham() { @@ -3571,7 +4358,7 @@ private static int[][] make_Ogham() { } private static int[][] make_Old_Italic() { - return new int[][] {{0x10300, 0x1031E, 1}, {0x10320, 0x10323, 1}}; + return new int[][] {{0x10300, 0x10323, 1}, {0x1032D, 0x1032F, 1}}; } private static int[][] make_Oriya() { @@ -3594,7 +4381,7 @@ private static int[][] make_Oriya() { } private static int[][] make_Runic() { - return new int[][] {{0x16A0, 0x16EA, 1}, {0x16EE, 0x16F0, 1}}; + return new int[][] {{0x16A0, 0x16EA, 1}, {0x16EE, 0x16F8, 1}}; } private static int[][] make_Sinhala() { @@ -3609,12 +4396,16 @@ private static int[][] make_Sinhala() { {0x0DD0, 0x0DD4, 1}, {0x0DD6, 0x0DD8, 2}, {0x0DD9, 0x0DDF, 1}, - {0x0DF2, 0x0DF4, 1} + {0x0DE6, 0x0DEF, 1}, + {0x0DF2, 0x0DF4, 1}, + {0x111E1, 0x111F4, 1} }; } private static int[][] make_Syriac() { - return new int[][] {{0x0700, 0x070D, 1}, {0x070F, 0x074A, 1}, {0x074D, 0x074F, 1}}; + return new int[][] { + {0x0700, 0x070D, 1}, {0x070F, 0x074A, 1}, {0x074D, 0x074F, 1}, {0x0860, 0x086A, 1} + }; } private static int[][] make_Tamil() { @@ -3639,17 +4430,16 @@ private static int[][] make_Tamil() { private static int[][] make_Telugu() { return new int[][] { - {0x0C01, 0x0C03, 1}, + {0x0C00, 0x0C03, 1}, {0x0C05, 0x0C0C, 1}, {0x0C0E, 0x0C10, 1}, {0x0C12, 0x0C28, 1}, - {0x0C2A, 0x0C33, 1}, - {0x0C35, 0x0C39, 1}, + {0x0C2A, 0x0C39, 1}, {0x0C3D, 0x0C44, 1}, {0x0C46, 0x0C48, 1}, {0x0C4A, 0x0C4D, 1}, {0x0C55, 0x0C56, 1}, - {0x0C58, 0x0C59, 1}, + {0x0C58, 0x0C5A, 1}, {0x0C60, 0x0C63, 1}, {0x0C66, 0x0C6F, 1}, {0x0C78, 0x0C7F, 1} @@ -3716,7 +4506,7 @@ private static int[][] make_Cypriot() { private static int[][] make_Limbu() { return new int[][] { - {0x1900, 0x191C, 1}, + {0x1900, 0x191E, 1}, {0x1920, 0x192B, 1}, {0x1930, 0x193B, 1}, {0x1940, 0x1944, 4}, @@ -3757,7 +4547,15 @@ private static int[][] make_Buginese() { } private static int[][] make_Glagolitic() { - return new int[][] {{0x2C00, 0x2C2E, 1}, {0x2C30, 0x2C5E, 1}}; + return new int[][] { + {0x2C00, 0x2C2E, 1}, + {0x2C30, 0x2C5E, 1}, + {0x1E000, 0x1E006, 1}, + {0x1E008, 0x1E018, 1}, + {0x1E01B, 0x1E021, 1}, + {0x1E023, 0x1E024, 1}, + {0x1E026, 0x1E02A, 1} + }; } private static int[][] make_Kharoshthi() { @@ -3784,7 +4582,7 @@ private static int[][] make_New_Tai_Lue() { } private static int[][] make_Tifinagh() { - return new int[][] {{0x2D30, 0x2D65, 1}, {0x2D6F, 0x2D70, 1}, {0x2D7F, 0x2D7F, 1}}; + return new int[][] {{0x2D30, 0x2D67, 1}, {0x2D6F, 0x2D70, 1}, {0x2D7F, 0x2D7F, 1}}; } private static int[][] make_Old_Persian() { @@ -3800,7 +4598,7 @@ private static int[][] make_Batak() { } private static int[][] make_Brahmi() { - return new int[][] {{0x11000, 0x1104D, 1}, {0x11052, 0x1106F, 1}}; + return new int[][] {{0x11000, 0x1104D, 1}, {0x11052, 0x1106F, 1}, {0x1107F, 0x1107F, 1}}; } private static int[][] make_Cham() { @@ -3813,22 +4611,44 @@ private static int[][] make_Egyptian_Hieroglyphs() { return new int[][] {{0x13000, 0x1342E, 1}}; } + private static int[][] make_Pahawh_Hmong() { + return new int[][] { + {0x16B00, 0x16B45, 1}, + {0x16B50, 0x16B59, 1}, + {0x16B5B, 0x16B61, 1}, + {0x16B63, 0x16B77, 1}, + {0x16B7D, 0x16B8F, 1} + }; + } + + private static int[][] make_Old_Hungarian() { + return new int[][] {{0x10C80, 0x10CB2, 1}, {0x10CC0, 0x10CF2, 1}, {0x10CFA, 0x10CFF, 1}}; + } + private static int[][] make_Javanese() { - return new int[][] {{0xA980, 0xA9CD, 1}, {0xA9CF, 0xA9D9, 1}, {0xA9DE, 0xA9DF, 1}}; + return new int[][] {{0xA980, 0xA9CD, 1}, {0xA9D0, 0xA9D9, 1}, {0xA9DE, 0xA9DF, 1}}; } private static int[][] make_Kayah_Li() { - return new int[][] {{0xA900, 0xA92F, 1}}; + return new int[][] {{0xA900, 0xA92D, 1}, {0xA92F, 0xA92F, 1}}; } private static int[][] make_Lepcha() { return new int[][] {{0x1C00, 0x1C37, 1}, {0x1C3B, 0x1C49, 1}, {0x1C4D, 0x1C4F, 1}}; } + private static int[][] make_Linear_A() { + return new int[][] {{0x10600, 0x10736, 1}, {0x10740, 0x10755, 1}, {0x10760, 0x10767, 1}}; + } + private static int[][] make_Mandaic() { return new int[][] {{0x0840, 0x085B, 1}, {0x085E, 0x085E, 1}}; } + private static int[][] make_Meroitic_Hieroglyphs() { + return new int[][] {{0x10980, 0x1099F, 1}}; + } + private static int[][] make_Nko() { return new int[][] {{0x07C0, 0x07FA, 1}}; } @@ -3837,6 +4657,10 @@ private static int[][] make_Old_Turkic() { return new int[][] {{0x10C00, 0x10C48, 1}}; } + private static int[][] make_Old_Permic() { + return new int[][] {{0x10350, 0x1037A, 1}}; + } + private static int[][] make_Phags_Pa() { return new int[][] {{0xA840, 0xA877, 1}}; } @@ -3845,12 +4669,18 @@ private static int[][] make_Phoenician() { return new int[][] {{0x10900, 0x1091B, 1}, {0x1091F, 0x1091F, 1}}; } + private static int[][] make_Miao() { + return new int[][] {{0x16F00, 0x16F44, 1}, {0x16F50, 0x16F7E, 1}, {0x16F8F, 0x16F9F, 1}}; + } + private static int[][] make_Vai() { return new int[][] {{0xA500, 0xA62B, 1}}; } private static int[][] make_Cuneiform() { - return new int[][] {{0x12000, 0x1236E, 1}, {0x12400, 0x12462, 1}, {0x12470, 0x12473, 1}}; + return new int[][] { + {0x12000, 0x12399, 1}, {0x12400, 0x1246E, 1}, {0x12470, 0x12474, 1}, {0x12480, 0x12543, 1} + }; } private static int[][] make_Unknown() { @@ -3888,15 +4718,19 @@ private static int[][] make_Rejang() { } private static int[][] make_Saurashtra() { - return new int[][] {{0xA880, 0xA8C4, 1}, {0xA8CE, 0xA8D9, 1}}; + return new int[][] {{0xA880, 0xA8C5, 1}, {0xA8CE, 0xA8D9, 1}}; + } + + private static int[][] make_SignWriting() { + return new int[][] {{0x1D800, 0x1DA8B, 1}, {0x1DA9B, 0x1DA9F, 1}, {0x1DAA1, 0x1DAAF, 1}}; } private static int[][] make_Sundanese() { - return new int[][] {{0x1B80, 0x1BAA, 1}, {0x1BAE, 0x1BB9, 1}}; + return new int[][] {{0x1B80, 0x1BBF, 1}, {0x1CC0, 0x1CC7, 1}}; } private static int[][] make_Meetei_Mayek() { - return new int[][] {{0xABC0, 0xABED, 1}, {0xABF0, 0xABF9, 1}}; + return new int[][] {{0xAAE0, 0xAAF6, 1}, {0xABC0, 0xABED, 1}, {0xABF0, 0xABF9, 1}}; } private static int[][] make_Imperial_Aramaic() { @@ -3907,14 +4741,26 @@ private static int[][] make_Avestan() { return new int[][] {{0x10B00, 0x10B35, 1}, {0x10B39, 0x10B3F, 1}}; } + private static int[][] make_Chakma() { + return new int[][] {{0x11100, 0x11134, 1}, {0x11136, 0x11143, 1}}; + } + private static int[][] make_Kaithi() { return new int[][] {{0x11080, 0x110C1, 1}}; } + private static int[][] make_Manichaean() { + return new int[][] {{0x10AC0, 0x10AE6, 1}, {0x10AEB, 0x10AF6, 1}}; + } + private static int[][] make_Inscriptional_Pahlavi() { return new int[][] {{0x10B60, 0x10B72, 1}, {0x10B78, 0x10B7F, 1}}; } + private static int[][] make_Psalter_Pahlavi() { + return new int[][] {{0x10B80, 0x10B91, 1}, {0x10B99, 0x10B9C, 1}, {0x10BA9, 0x10BAF, 1}}; + } + private static int[][] make_Inscriptional_Parthian() { return new int[][] {{0x10B40, 0x10B55, 1}, {0x10B58, 0x10B5F, 1}}; } @@ -3927,6 +4773,199 @@ private static int[][] make_Tai_Viet() { return new int[][] {{0xAA80, 0xAAC2, 1}, {0xAADB, 0xAADF, 1}}; } + private static int[][] make_Bamum() { + return new int[][] {{0xA6A0, 0xA6F7, 1}, {0x16800, 0x16A38, 1}}; + } + + private static int[][] make_Lisu() { + return new int[][] {{0xA4D0, 0xA4FF, 1}}; + } + + private static int[][] make_Old_South_Arabian() { + return new int[][] {{0x10A60, 0x10A7F, 1}}; + } + + private static int[][] make_Bassa_Vah() { + return new int[][] {{0x16AD0, 0x16AED, 1}, {0x16AF0, 0x16AF5, 1}}; + } + + private static int[][] make_Duployan() { + return new int[][] { + {0x1BC00, 0x1BC6A, 1}, + {0x1BC70, 0x1BC7C, 1}, + {0x1BC80, 0x1BC88, 1}, + {0x1BC90, 0x1BC99, 1}, + {0x1BC9C, 0x1BC9F, 1} + }; + } + + private static int[][] make_Elbasan() { + return new int[][] {{0x10500, 0x10527, 1}}; + } + + private static int[][] make_Grantha() { + return new int[][] { + {0x11300, 0x11303, 1}, + {0x11305, 0x1130C, 1}, + {0x1130F, 0x11310, 1}, + {0x11313, 0x11328, 1}, + {0x1132A, 0x11330, 1}, + {0x11332, 0x11333, 1}, + {0x11335, 0x11339, 1}, + {0x1133C, 0x11344, 1}, + {0x11347, 0x11348, 1}, + {0x1134B, 0x1134D, 1}, + {0x11350, 0x11357, 7}, + {0x1135D, 0x11363, 1}, + {0x11366, 0x1136C, 1}, + {0x11370, 0x11374, 1} + }; + } + + private static int[][] make_Mende_Kikakui() { + return new int[][] {{0x1E800, 0x1E8C4, 1}, {0x1E8C7, 0x1E8D6, 1}}; + } + + private static int[][] make_Meroitic_Cursive() { + return new int[][] {{0x109A0, 0x109B7, 1}, {0x109BC, 0x109CF, 1}, {0x109D2, 0x109FF, 1}}; + } + + private static int[][] make_Old_North_Arabian() { + return new int[][] {{0x10A80, 0x10A9F, 1}}; + } + + private static int[][] make_Nabataean() { + return new int[][] {{0x10880, 0x1089E, 1}, {0x108A7, 0x108AF, 1}}; + } + + private static int[][] make_Palmyrene() { + return new int[][] {{0x10860, 0x1087F, 1}}; + } + + private static int[][] make_Khudawadi() { + return new int[][] {{0x112B0, 0x112EA, 1}, {0x112F0, 0x112F9, 1}}; + } + + private static int[][] make_Warang_Citi() { + return new int[][] {{0x118A0, 0x118F2, 1}, {0x118FF, 0x118FF, 1}}; + } + + private static int[][] make_Mro() { + return new int[][] {{0x16A40, 0x16A5E, 1}, {0x16A60, 0x16A69, 1}, {0x16A6E, 0x16A6F, 1}}; + } + + private static int[][] make_Nushu() { + return new int[][] {{0x16FE1, 0x1B170, 16783}, {0x1B171, 0x1B2FB, 1}}; + } + + private static int[][] make_Sharada() { + return new int[][] {{0x11180, 0x111CD, 1}, {0x111D0, 0x111DF, 1}}; + } + + private static int[][] make_Sora_Sompeng() { + return new int[][] {{0x110D0, 0x110E8, 1}, {0x110F0, 0x110F9, 1}}; + } + + private static int[][] make_Takri() { + return new int[][] {{0x11680, 0x116B7, 1}, {0x116C0, 0x116C9, 1}}; + } + + private static int[][] make_Tangut() { + return new int[][] {{0x16FE0, 0x17000, 32}, {0x17001, 0x187EC, 1}, {0x18800, 0x18AF2, 1}}; + } + + private static int[][] make_Anatolian_Hieroglyphs() { + return new int[][] {{0x14400, 0x14646, 1}}; + } + + private static int[][] make_Khojki() { + return new int[][] {{0x11200, 0x11211, 1}, {0x11213, 0x1123E, 1}}; + } + + private static int[][] make_Tirhuta() { + return new int[][] {{0x11480, 0x114C7, 1}, {0x114D0, 0x114D9, 1}}; + } + + private static int[][] make_Caucasian_Albanian() { + return new int[][] {{0x10530, 0x10563, 1}, {0x1056F, 0x1056F, 1}}; + } + + private static int[][] make_Mahajani() { + return new int[][] {{0x11150, 0x11176, 1}}; + } + + private static int[][] make_Ahom() { + return new int[][] {{0x11700, 0x11719, 1}, {0x1171D, 0x1172B, 1}, {0x11730, 0x1173F, 1}}; + } + + private static int[][] make_Hatran() { + return new int[][] {{0x108E0, 0x108F2, 1}, {0x108F4, 0x108F5, 1}, {0x108FB, 0x108FF, 1}}; + } + + private static int[][] make_Modi() { + return new int[][] {{0x11600, 0x11644, 1}, {0x11650, 0x11659, 1}}; + } + + private static int[][] make_Multani() { + return new int[][] { + {0x11280, 0x11286, 1}, + {0x11288, 0x1128A, 2}, + {0x1128B, 0x1128D, 1}, + {0x1128F, 0x1129D, 1}, + {0x1129F, 0x112A9, 1} + }; + } + + private static int[][] make_Pau_Cin_Hau() { + return new int[][] {{0x11AC0, 0x11AF8, 1}}; + } + + private static int[][] make_Siddham() { + return new int[][] {{0x11580, 0x115B5, 1}, {0x115B8, 0x115DD, 1}}; + } + + private static int[][] make_Adlam() { + return new int[][] {{0x1E900, 0x1E94A, 1}, {0x1E950, 0x1E959, 1}, {0x1E95E, 0x1E95F, 1}}; + } + + private static int[][] make_Bhaiksuki() { + return new int[][] { + {0x11C00, 0x11C08, 1}, {0x11C0A, 0x11C36, 1}, {0x11C38, 0x11C45, 1}, {0x11C50, 0x11C6C, 1} + }; + } + + private static int[][] make_Marchen() { + return new int[][] {{0x11C70, 0x11C8F, 1}, {0x11C92, 0x11CA7, 1}, {0x11CA9, 0x11CB6, 1}}; + } + + private static int[][] make_Newa() { + return new int[][] {{0x11400, 0x11459, 1}, {0x1145B, 0x1145D, 2}}; + } + + private static int[][] make_Osage() { + return new int[][] {{0x104B0, 0x104D3, 1}, {0x104D8, 0x104FB, 1}}; + } + + private static int[][] make_Masaram_Gondi() { + return new int[][] { + {0x11D00, 0x11D06, 1}, + {0x11D08, 0x11D09, 1}, + {0x11D0B, 0x11D36, 1}, + {0x11D3A, 0x11D3C, 2}, + {0x11D3D, 0x11D3F, 2}, + {0x11D40, 0x11D47, 1}, + {0x11D50, 0x11D59, 1} + }; + } + + private static int[][] make_Soyombo() { + return new int[][] {{0x11A50, 0x11A83, 1}, {0x11A86, 0x11A9C, 1}, {0x11A9E, 0x11AA2, 1}}; + } + + private static int[][] make_Zanabazar_Square() { + return new int[][] {{0x11A00, 0x11A47, 1}}; + } + private static Map Categories() { Map map = new HashMap(); map.put("Lu", Lu); @@ -3972,12 +5011,9 @@ private static Map Scripts() { Map map = new HashMap(); map.put("Common", Common); map.put("Inherited", Inherited); - map.put("Bamum", Bamum); map.put("Arabic", Arabic); - map.put("Lisu", Lisu); map.put("Armenian", Armenian); map.put("Bengali", Bengali); - map.put("Old_South_Arabian", Old_South_Arabian); map.put("Bopomofo", Bopomofo); map.put("Cherokee", Cherokee); map.put("Coptic", Coptic); @@ -4039,14 +5075,20 @@ private static Map Scripts() { map.put("Brahmi", Brahmi); map.put("Cham", Cham); map.put("Egyptian_Hieroglyphs", Egyptian_Hieroglyphs); + map.put("Pahawh_Hmong", Pahawh_Hmong); + map.put("Old_Hungarian", Old_Hungarian); map.put("Javanese", Javanese); map.put("Kayah_Li", Kayah_Li); map.put("Lepcha", Lepcha); + map.put("Linear_A", Linear_A); map.put("Mandaic", Mandaic); + map.put("Meroitic_Hieroglyphs", Meroitic_Hieroglyphs); map.put("Nko", Nko); map.put("Old_Turkic", Old_Turkic); + map.put("Old_Permic", Old_Permic); map.put("Phags_Pa", Phags_Pa); map.put("Phoenician", Phoenician); + map.put("Miao", Miao); map.put("Vai", Vai); map.put("Cuneiform", Cuneiform); map.put("Unknown", Unknown); @@ -4057,15 +5099,58 @@ private static Map Scripts() { map.put("Ol_Chiki", Ol_Chiki); map.put("Rejang", Rejang); map.put("Saurashtra", Saurashtra); + map.put("SignWriting", SignWriting); map.put("Sundanese", Sundanese); map.put("Meetei_Mayek", Meetei_Mayek); map.put("Imperial_Aramaic", Imperial_Aramaic); map.put("Avestan", Avestan); + map.put("Chakma", Chakma); map.put("Kaithi", Kaithi); + map.put("Manichaean", Manichaean); map.put("Inscriptional_Pahlavi", Inscriptional_Pahlavi); + map.put("Psalter_Pahlavi", Psalter_Pahlavi); map.put("Inscriptional_Parthian", Inscriptional_Parthian); map.put("Samaritan", Samaritan); map.put("Tai_Viet", Tai_Viet); + map.put("Bamum", Bamum); + map.put("Lisu", Lisu); + map.put("Old_South_Arabian", Old_South_Arabian); + map.put("Bassa_Vah", Bassa_Vah); + map.put("Duployan", Duployan); + map.put("Elbasan", Elbasan); + map.put("Grantha", Grantha); + map.put("Mende_Kikakui", Mende_Kikakui); + map.put("Meroitic_Cursive", Meroitic_Cursive); + map.put("Old_North_Arabian", Old_North_Arabian); + map.put("Nabataean", Nabataean); + map.put("Palmyrene", Palmyrene); + map.put("Khudawadi", Khudawadi); + map.put("Warang_Citi", Warang_Citi); + map.put("Mro", Mro); + map.put("Nushu", Nushu); + map.put("Sharada", Sharada); + map.put("Sora_Sompeng", Sora_Sompeng); + map.put("Takri", Takri); + map.put("Tangut", Tangut); + map.put("Anatolian_Hieroglyphs", Anatolian_Hieroglyphs); + map.put("Khojki", Khojki); + map.put("Tirhuta", Tirhuta); + map.put("Caucasian_Albanian", Caucasian_Albanian); + map.put("Mahajani", Mahajani); + map.put("Ahom", Ahom); + map.put("Hatran", Hatran); + map.put("Modi", Modi); + map.put("Multani", Multani); + map.put("Pau_Cin_Hau", Pau_Cin_Hau); + map.put("Siddham", Siddham); + map.put("Adlam", Adlam); + map.put("Bhaiksuki", Bhaiksuki); + map.put("Marchen", Marchen); + map.put("Newa", Newa); + map.put("Osage", Osage); + map.put("Masaram_Gondi", Masaram_Gondi); + map.put("Soyombo", Soyombo); + map.put("Zanabazar_Square", Zanabazar_Square); return Collections.unmodifiableMap(map); } @@ -4126,14 +5211,16 @@ private static int[][] make_foldLu() { {0x0250, 0x0254, 1}, {0x0256, 0x0257, 1}, {0x0259, 0x025B, 2}, - {0x0260, 0x0263, 3}, - {0x0265, 0x0268, 3}, - {0x0269, 0x026B, 2}, + {0x025C, 0x0260, 4}, + {0x0261, 0x0265, 2}, + {0x0266, 0x0268, 2}, + {0x0269, 0x026C, 1}, {0x026F, 0x0271, 2}, {0x0272, 0x0275, 3}, {0x027D, 0x0283, 3}, - {0x0288, 0x028C, 1}, - {0x0292, 0x0345, 179}, + {0x0287, 0x028C, 1}, + {0x0292, 0x029D, 11}, + {0x029E, 0x0345, 167}, {0x0371, 0x0373, 2}, {0x0377, 0x037B, 4}, {0x037C, 0x037D, 1}, @@ -4142,14 +5229,16 @@ private static int[][] make_foldLu() { {0x03D0, 0x03D1, 1}, {0x03D5, 0x03D7, 1}, {0x03D9, 0x03EF, 2}, - {0x03F0, 0x03F2, 1}, + {0x03F0, 0x03F3, 1}, {0x03F5, 0x03FB, 3}, {0x0430, 0x045F, 1}, {0x0461, 0x0481, 2}, {0x048B, 0x04BF, 2}, {0x04C2, 0x04CE, 2}, - {0x04CF, 0x0527, 2}, + {0x04CF, 0x052F, 2}, {0x0561, 0x0586, 1}, + {0x13F8, 0x13FD, 1}, + {0x1C80, 0x1C88, 1}, {0x1D79, 0x1D7D, 4}, {0x1E01, 0x1E95, 2}, {0x1E9B, 0x1EA1, 6}, @@ -4173,17 +5262,27 @@ private static int[][] make_foldLu() { {0x2C73, 0x2C76, 3}, {0x2C81, 0x2CE3, 2}, {0x2CEC, 0x2CEE, 2}, - {0x2D00, 0x2D25, 1}, + {0x2CF3, 0x2D00, 13}, + {0x2D01, 0x2D25, 1}, + {0x2D27, 0x2D2D, 6}, {0xA641, 0xA66D, 2}, - {0xA681, 0xA697, 2}, + {0xA681, 0xA69B, 2}, {0xA723, 0xA72F, 2}, {0xA733, 0xA76F, 2}, {0xA77A, 0xA77C, 2}, {0xA77F, 0xA787, 2}, {0xA78C, 0xA791, 5}, - {0xA7A1, 0xA7A9, 2}, + {0xA793, 0xA797, 4}, + {0xA799, 0xA7A9, 2}, + {0xA7B5, 0xA7B7, 2}, + {0xAB53, 0xAB70, 29}, + {0xAB71, 0xABBF, 1}, {0xFF41, 0xFF5A, 1}, - {0x10428, 0x1044F, 1} + {0x10428, 0x1044F, 1}, + {0x104D8, 0x104FB, 1}, + {0x10CC0, 0x10CF2, 1}, + {0x118C0, 0x118DF, 1}, + {0x1E922, 0x1E943, 1} }; } @@ -4200,9 +5299,13 @@ private static int[][] make_foldLl() { {0x039C, 0x03A0, 4}, {0x03A1, 0x03A3, 2}, {0x03A6, 0x03A9, 3}, - {0x03F4, 0x1E60, 6764}, - {0x1E9E, 0x2126, 648}, - {0x212A, 0x212B, 1} + {0x03F4, 0x0412, 30}, + {0x0414, 0x041E, 10}, + {0x0421, 0x0422, 1}, + {0x042A, 0x0462, 56}, + {0x1E60, 0x1E9E, 62}, + {0x2126, 0x212A, 4}, + {0x212B, 0xA64A, 34079} }; } diff --git a/javatests/com/google/re2j/ParserTest.java b/javatests/com/google/re2j/ParserTest.java index 87cd152a..e567899a 100644 --- a/javatests/com/google/re2j/ParserTest.java +++ b/javatests/com/google/re2j/ParserTest.java @@ -172,12 +172,12 @@ public boolean applies(int r) { {"\\P{Braille}", "cc{0x0-0x27ff 0x2900-0x10ffff}"}, {"\\p{^Braille}", "cc{0x0-0x27ff 0x2900-0x10ffff}"}, {"\\P{^Braille}", "cc{0x2800-0x28ff}"}, - {"\\pZ", "cc{0x20 0xa0 0x1680 0x180e 0x2000-0x200a 0x2028-0x2029 0x202f 0x205f 0x3000}"}, + {"\\pZ", "cc{0x20 0xa0 0x1680 0x2000-0x200a 0x2028-0x2029 0x202f 0x205f 0x3000}"}, {"[\\p{Braille}]", "cc{0x2800-0x28ff}"}, {"[\\P{Braille}]", "cc{0x0-0x27ff 0x2900-0x10ffff}"}, {"[\\p{^Braille}]", "cc{0x0-0x27ff 0x2900-0x10ffff}"}, {"[\\P{^Braille}]", "cc{0x2800-0x28ff}"}, - {"[\\pZ]", "cc{0x20 0xa0 0x1680 0x180e 0x2000-0x200a 0x2028-0x2029 0x202f 0x205f 0x3000}"}, + {"[\\pZ]", "cc{0x20 0xa0 0x1680 0x2000-0x200a 0x2028-0x2029 0x202f 0x205f 0x3000}"}, {"\\p{Lu}", mkCharClass(IS_UPPER)}, {"[\\p{Lu}]", mkCharClass(IS_UPPER)}, {"(?i)[\\p{Lu}]", mkCharClass(IS_UPPER_FOLD)}, diff --git a/unicode/build.gradle b/unicode/build.gradle index 20297104..c2b615d9 100644 --- a/unicode/build.gradle +++ b/unicode/build.gradle @@ -12,6 +12,6 @@ repositories { dependencies { compile 'com.google.googlejavaformat:google-java-format:1.0' compile 'com.squareup:javapoet:1.12.1' - compile 'com.ibm.icu:icu4j:4.8.2' + compile 'com.ibm.icu:icu4j:60.1' compile 'com.google.guava:guava:29.0-jre' } From 31dd153154491730a51029eeb1a513b5dc8d6308 Mon Sep 17 00:00:00 2001 From: ittai Date: Sat, 30 May 2026 07:06:16 +0300 Subject: [PATCH 2/2] Generate complete static case fold orbits --- java/com/google/re2j/Unicode.java | 19 +- java/com/google/re2j/UnicodeTables.java | 2863 ++++++++++++++++- javatests/com/google/re2j/CharClassTest.java | 12 +- javatests/com/google/re2j/PatternTest.java | 21 + javatests/com/google/re2j/UnicodeTest.java | 13 + .../google/re2j/UnicodeTablesGenerator.java | 33 +- 6 files changed, 2813 insertions(+), 148 deletions(-) diff --git a/java/com/google/re2j/Unicode.java b/java/com/google/re2j/Unicode.java index 0415fcd5..f62b61af 100644 --- a/java/com/google/re2j/Unicode.java +++ b/java/com/google/re2j/Unicode.java @@ -107,19 +107,14 @@ static boolean isPrint(int r) { // Derived from Go's unicode.SimpleFold. // static int simpleFold(int r) { - // Consult caseOrbit table for special cases. - if (r < UnicodeTables.CASE_ORBIT.length && UnicodeTables.CASE_ORBIT[r] != 0) { - return UnicodeTables.CASE_ORBIT[r]; - } - - // No folding specified. This is a one- or two-element - // equivalence class containing rune and toLower(rune) - // and toUpper(rune) if they are different from rune. - int l = Characters.toLowerCase(r); - if (l != r) { - return l; + // Consult caseOrbit table. + if (r < UnicodeTables.CASE_ORBIT.length << 8) { + int[] page = UnicodeTables.CASE_ORBIT[r >> 8]; + if (page != null && page[r & 0xff] != 0) { + return page[r & 0xff]; + } } - return Characters.toUpperCase(r); + return r; } // equalsIgnoreCase performs case-insensitive equality comparison diff --git a/java/com/google/re2j/UnicodeTables.java b/java/com/google/re2j/UnicodeTables.java index 8cabce19..3342ab62 100644 --- a/java/com/google/re2j/UnicodeTables.java +++ b/java/com/google/re2j/UnicodeTables.java @@ -1,10 +1,10 @@ /* - * Copyright (c) 2023 The Go Authors. All rights reserved. + * Copyright (c) 2026 The Go Authors. All rights reserved. * * Use of this source code is governed by a BSD-style * license that can be found in the LICENSE file. */ -// Generated at 2023-08-29T20:58:39.441939Z by Java 11.0.18 using Unicode version 10.0.0.0. +// Generated at 2026-05-30T04:01:05.792401700Z by Java 21.0.11 using Unicode version 10.0.0.0. // Do not change this file, your edits will be lost. Instead change UnicodeTablesGenerator.java. package com.google.re2j; @@ -13,7 +13,7 @@ import java.util.Map; final class UnicodeTables { - static final char[] CASE_ORBIT; + static final int[][] CASE_ORBIT; static final int[][] Lu = make_Lu(); @@ -396,95 +396,2651 @@ final class UnicodeTables { static final Map FOLD_CATEGORIES = FoldCategory(); static { - CASE_ORBIT = new char[42572]; - CASE_ORBIT[0x4b] = 0x6b; - CASE_ORBIT[0x53] = 0x73; - CASE_ORBIT[0x6b] = 0x212a; - CASE_ORBIT[0x73] = 0x17f; - CASE_ORBIT[0xb5] = 0x39c; - CASE_ORBIT[0xc5] = 0xe5; - CASE_ORBIT[0xdf] = 0x1e9e; - CASE_ORBIT[0xe5] = 0x212b; - CASE_ORBIT[0x130] = 0x130; - CASE_ORBIT[0x131] = 0x131; - CASE_ORBIT[0x17f] = 0x53; - CASE_ORBIT[0x1c4] = 0x1c5; - CASE_ORBIT[0x1c5] = 0x1c6; - CASE_ORBIT[0x1c6] = 0x1c4; - CASE_ORBIT[0x1c7] = 0x1c8; - CASE_ORBIT[0x1c8] = 0x1c9; - CASE_ORBIT[0x1c9] = 0x1c7; - CASE_ORBIT[0x1ca] = 0x1cb; - CASE_ORBIT[0x1cb] = 0x1cc; - CASE_ORBIT[0x1cc] = 0x1ca; - CASE_ORBIT[0x1f1] = 0x1f2; - CASE_ORBIT[0x1f2] = 0x1f3; - CASE_ORBIT[0x1f3] = 0x1f1; - CASE_ORBIT[0x345] = 0x399; - CASE_ORBIT[0x392] = 0x3b2; - CASE_ORBIT[0x395] = 0x3b5; - CASE_ORBIT[0x398] = 0x3b8; - CASE_ORBIT[0x399] = 0x3b9; - CASE_ORBIT[0x39a] = 0x3ba; - CASE_ORBIT[0x39c] = 0x3bc; - CASE_ORBIT[0x3a0] = 0x3c0; - CASE_ORBIT[0x3a1] = 0x3c1; - CASE_ORBIT[0x3a3] = 0x3c2; - CASE_ORBIT[0x3a6] = 0x3c6; - CASE_ORBIT[0x3a9] = 0x3c9; - CASE_ORBIT[0x3b2] = 0x3d0; - CASE_ORBIT[0x3b5] = 0x3f5; - CASE_ORBIT[0x3b8] = 0x3d1; - CASE_ORBIT[0x3b9] = 0x1fbe; - CASE_ORBIT[0x3ba] = 0x3f0; - CASE_ORBIT[0x3bc] = 0xb5; - CASE_ORBIT[0x3c0] = 0x3d6; - CASE_ORBIT[0x3c1] = 0x3f1; - CASE_ORBIT[0x3c2] = 0x3c3; - CASE_ORBIT[0x3c3] = 0x3a3; - CASE_ORBIT[0x3c6] = 0x3d5; - CASE_ORBIT[0x3c9] = 0x2126; - CASE_ORBIT[0x3d0] = 0x392; - CASE_ORBIT[0x3d1] = 0x3f4; - CASE_ORBIT[0x3d5] = 0x3a6; - CASE_ORBIT[0x3d6] = 0x3a0; - CASE_ORBIT[0x3f0] = 0x39a; - CASE_ORBIT[0x3f1] = 0x3a1; - CASE_ORBIT[0x3f4] = 0x398; - CASE_ORBIT[0x3f5] = 0x395; - CASE_ORBIT[0x412] = 0x432; - CASE_ORBIT[0x414] = 0x434; - CASE_ORBIT[0x41e] = 0x43e; - CASE_ORBIT[0x421] = 0x441; - CASE_ORBIT[0x422] = 0x442; - CASE_ORBIT[0x42a] = 0x44a; - CASE_ORBIT[0x432] = 0x1c80; - CASE_ORBIT[0x434] = 0x1c81; - CASE_ORBIT[0x43e] = 0x1c82; - CASE_ORBIT[0x441] = 0x1c83; - CASE_ORBIT[0x442] = 0x1c84; - CASE_ORBIT[0x44a] = 0x1c86; - CASE_ORBIT[0x462] = 0x463; - CASE_ORBIT[0x463] = 0x1c87; - CASE_ORBIT[0x1c80] = 0x412; - CASE_ORBIT[0x1c81] = 0x414; - CASE_ORBIT[0x1c82] = 0x41e; - CASE_ORBIT[0x1c83] = 0x421; - CASE_ORBIT[0x1c84] = 0x1c85; - CASE_ORBIT[0x1c85] = 0x422; - CASE_ORBIT[0x1c86] = 0x42a; - CASE_ORBIT[0x1c87] = 0x462; - CASE_ORBIT[0x1c88] = 0xa64a; - CASE_ORBIT[0x1e60] = 0x1e61; - CASE_ORBIT[0x1e61] = 0x1e9b; - CASE_ORBIT[0x1e9b] = 0x1e60; - CASE_ORBIT[0x1e9e] = 0xdf; - CASE_ORBIT[0x1fbe] = 0x345; - CASE_ORBIT[0x2126] = 0x3a9; - CASE_ORBIT[0x212a] = 0x4b; - CASE_ORBIT[0x212b] = 0xc5; - CASE_ORBIT[0xa64a] = 0xa64b; - CASE_ORBIT[0xa64b] = 0x1c88; + CASE_ORBIT = new int[490][]; + CASE_ORBIT[0x0] = new int[256]; + CASE_ORBIT[0x0][0x41] = 0x61; + CASE_ORBIT[0x0][0x42] = 0x62; + CASE_ORBIT[0x0][0x43] = 0x63; + CASE_ORBIT[0x0][0x44] = 0x64; + CASE_ORBIT[0x0][0x45] = 0x65; + CASE_ORBIT[0x0][0x46] = 0x66; + CASE_ORBIT[0x0][0x47] = 0x67; + CASE_ORBIT[0x0][0x48] = 0x68; + CASE_ORBIT[0x0][0x49] = 0x69; + CASE_ORBIT[0x0][0x4a] = 0x6a; + CASE_ORBIT[0x0][0x4b] = 0x6b; + CASE_ORBIT[0x0][0x4c] = 0x6c; + CASE_ORBIT[0x0][0x4d] = 0x6d; + CASE_ORBIT[0x0][0x4e] = 0x6e; + CASE_ORBIT[0x0][0x4f] = 0x6f; + CASE_ORBIT[0x0][0x50] = 0x70; + CASE_ORBIT[0x0][0x51] = 0x71; + CASE_ORBIT[0x0][0x52] = 0x72; + CASE_ORBIT[0x0][0x53] = 0x73; + CASE_ORBIT[0x0][0x54] = 0x74; + CASE_ORBIT[0x0][0x55] = 0x75; + CASE_ORBIT[0x0][0x56] = 0x76; + CASE_ORBIT[0x0][0x57] = 0x77; + CASE_ORBIT[0x0][0x58] = 0x78; + CASE_ORBIT[0x0][0x59] = 0x79; + CASE_ORBIT[0x0][0x5a] = 0x7a; + CASE_ORBIT[0x0][0x61] = 0x41; + CASE_ORBIT[0x0][0x62] = 0x42; + CASE_ORBIT[0x0][0x63] = 0x43; + CASE_ORBIT[0x0][0x64] = 0x44; + CASE_ORBIT[0x0][0x65] = 0x45; + CASE_ORBIT[0x0][0x66] = 0x46; + CASE_ORBIT[0x0][0x67] = 0x47; + CASE_ORBIT[0x0][0x68] = 0x48; + CASE_ORBIT[0x0][0x69] = 0x49; + CASE_ORBIT[0x0][0x6a] = 0x4a; + CASE_ORBIT[0x0][0x6b] = 0x212a; + CASE_ORBIT[0x0][0x6c] = 0x4c; + CASE_ORBIT[0x0][0x6d] = 0x4d; + CASE_ORBIT[0x0][0x6e] = 0x4e; + CASE_ORBIT[0x0][0x6f] = 0x4f; + CASE_ORBIT[0x0][0x70] = 0x50; + CASE_ORBIT[0x0][0x71] = 0x51; + CASE_ORBIT[0x0][0x72] = 0x52; + CASE_ORBIT[0x0][0x73] = 0x17f; + CASE_ORBIT[0x0][0x74] = 0x54; + CASE_ORBIT[0x0][0x75] = 0x55; + CASE_ORBIT[0x0][0x76] = 0x56; + CASE_ORBIT[0x0][0x77] = 0x57; + CASE_ORBIT[0x0][0x78] = 0x58; + CASE_ORBIT[0x0][0x79] = 0x59; + CASE_ORBIT[0x0][0x7a] = 0x5a; + CASE_ORBIT[0x0][0xb5] = 0x39c; + CASE_ORBIT[0x0][0xc0] = 0xe0; + CASE_ORBIT[0x0][0xc1] = 0xe1; + CASE_ORBIT[0x0][0xc2] = 0xe2; + CASE_ORBIT[0x0][0xc3] = 0xe3; + CASE_ORBIT[0x0][0xc4] = 0xe4; + CASE_ORBIT[0x0][0xc5] = 0xe5; + CASE_ORBIT[0x0][0xc6] = 0xe6; + CASE_ORBIT[0x0][0xc7] = 0xe7; + CASE_ORBIT[0x0][0xc8] = 0xe8; + CASE_ORBIT[0x0][0xc9] = 0xe9; + CASE_ORBIT[0x0][0xca] = 0xea; + CASE_ORBIT[0x0][0xcb] = 0xeb; + CASE_ORBIT[0x0][0xcc] = 0xec; + CASE_ORBIT[0x0][0xcd] = 0xed; + CASE_ORBIT[0x0][0xce] = 0xee; + CASE_ORBIT[0x0][0xcf] = 0xef; + CASE_ORBIT[0x0][0xd0] = 0xf0; + CASE_ORBIT[0x0][0xd1] = 0xf1; + CASE_ORBIT[0x0][0xd2] = 0xf2; + CASE_ORBIT[0x0][0xd3] = 0xf3; + CASE_ORBIT[0x0][0xd4] = 0xf4; + CASE_ORBIT[0x0][0xd5] = 0xf5; + CASE_ORBIT[0x0][0xd6] = 0xf6; + CASE_ORBIT[0x0][0xd8] = 0xf8; + CASE_ORBIT[0x0][0xd9] = 0xf9; + CASE_ORBIT[0x0][0xda] = 0xfa; + CASE_ORBIT[0x0][0xdb] = 0xfb; + CASE_ORBIT[0x0][0xdc] = 0xfc; + CASE_ORBIT[0x0][0xdd] = 0xfd; + CASE_ORBIT[0x0][0xde] = 0xfe; + CASE_ORBIT[0x0][0xdf] = 0x1e9e; + CASE_ORBIT[0x0][0xe0] = 0xc0; + CASE_ORBIT[0x0][0xe1] = 0xc1; + CASE_ORBIT[0x0][0xe2] = 0xc2; + CASE_ORBIT[0x0][0xe3] = 0xc3; + CASE_ORBIT[0x0][0xe4] = 0xc4; + CASE_ORBIT[0x0][0xe5] = 0x212b; + CASE_ORBIT[0x0][0xe6] = 0xc6; + CASE_ORBIT[0x0][0xe7] = 0xc7; + CASE_ORBIT[0x0][0xe8] = 0xc8; + CASE_ORBIT[0x0][0xe9] = 0xc9; + CASE_ORBIT[0x0][0xea] = 0xca; + CASE_ORBIT[0x0][0xeb] = 0xcb; + CASE_ORBIT[0x0][0xec] = 0xcc; + CASE_ORBIT[0x0][0xed] = 0xcd; + CASE_ORBIT[0x0][0xee] = 0xce; + CASE_ORBIT[0x0][0xef] = 0xcf; + CASE_ORBIT[0x0][0xf0] = 0xd0; + CASE_ORBIT[0x0][0xf1] = 0xd1; + CASE_ORBIT[0x0][0xf2] = 0xd2; + CASE_ORBIT[0x0][0xf3] = 0xd3; + CASE_ORBIT[0x0][0xf4] = 0xd4; + CASE_ORBIT[0x0][0xf5] = 0xd5; + CASE_ORBIT[0x0][0xf6] = 0xd6; + CASE_ORBIT[0x0][0xf8] = 0xd8; + CASE_ORBIT[0x0][0xf9] = 0xd9; + CASE_ORBIT[0x0][0xfa] = 0xda; + CASE_ORBIT[0x0][0xfb] = 0xdb; + CASE_ORBIT[0x0][0xfc] = 0xdc; + CASE_ORBIT[0x0][0xfd] = 0xdd; + CASE_ORBIT[0x0][0xfe] = 0xde; + CASE_ORBIT[0x0][0xff] = 0x178; + CASE_ORBIT[0x1] = new int[256]; + CASE_ORBIT[0x1][0x0] = 0x101; + CASE_ORBIT[0x1][0x1] = 0x100; + CASE_ORBIT[0x1][0x2] = 0x103; + CASE_ORBIT[0x1][0x3] = 0x102; + CASE_ORBIT[0x1][0x4] = 0x105; + CASE_ORBIT[0x1][0x5] = 0x104; + CASE_ORBIT[0x1][0x6] = 0x107; + CASE_ORBIT[0x1][0x7] = 0x106; + CASE_ORBIT[0x1][0x8] = 0x109; + CASE_ORBIT[0x1][0x9] = 0x108; + CASE_ORBIT[0x1][0xa] = 0x10b; + CASE_ORBIT[0x1][0xb] = 0x10a; + CASE_ORBIT[0x1][0xc] = 0x10d; + CASE_ORBIT[0x1][0xd] = 0x10c; + CASE_ORBIT[0x1][0xe] = 0x10f; + CASE_ORBIT[0x1][0xf] = 0x10e; + CASE_ORBIT[0x1][0x10] = 0x111; + CASE_ORBIT[0x1][0x11] = 0x110; + CASE_ORBIT[0x1][0x12] = 0x113; + CASE_ORBIT[0x1][0x13] = 0x112; + CASE_ORBIT[0x1][0x14] = 0x115; + CASE_ORBIT[0x1][0x15] = 0x114; + CASE_ORBIT[0x1][0x16] = 0x117; + CASE_ORBIT[0x1][0x17] = 0x116; + CASE_ORBIT[0x1][0x18] = 0x119; + CASE_ORBIT[0x1][0x19] = 0x118; + CASE_ORBIT[0x1][0x1a] = 0x11b; + CASE_ORBIT[0x1][0x1b] = 0x11a; + CASE_ORBIT[0x1][0x1c] = 0x11d; + CASE_ORBIT[0x1][0x1d] = 0x11c; + CASE_ORBIT[0x1][0x1e] = 0x11f; + CASE_ORBIT[0x1][0x1f] = 0x11e; + CASE_ORBIT[0x1][0x20] = 0x121; + CASE_ORBIT[0x1][0x21] = 0x120; + CASE_ORBIT[0x1][0x22] = 0x123; + CASE_ORBIT[0x1][0x23] = 0x122; + CASE_ORBIT[0x1][0x24] = 0x125; + CASE_ORBIT[0x1][0x25] = 0x124; + CASE_ORBIT[0x1][0x26] = 0x127; + CASE_ORBIT[0x1][0x27] = 0x126; + CASE_ORBIT[0x1][0x28] = 0x129; + CASE_ORBIT[0x1][0x29] = 0x128; + CASE_ORBIT[0x1][0x2a] = 0x12b; + CASE_ORBIT[0x1][0x2b] = 0x12a; + CASE_ORBIT[0x1][0x2c] = 0x12d; + CASE_ORBIT[0x1][0x2d] = 0x12c; + CASE_ORBIT[0x1][0x2e] = 0x12f; + CASE_ORBIT[0x1][0x2f] = 0x12e; + CASE_ORBIT[0x1][0x32] = 0x133; + CASE_ORBIT[0x1][0x33] = 0x132; + CASE_ORBIT[0x1][0x34] = 0x135; + CASE_ORBIT[0x1][0x35] = 0x134; + CASE_ORBIT[0x1][0x36] = 0x137; + CASE_ORBIT[0x1][0x37] = 0x136; + CASE_ORBIT[0x1][0x39] = 0x13a; + CASE_ORBIT[0x1][0x3a] = 0x139; + CASE_ORBIT[0x1][0x3b] = 0x13c; + CASE_ORBIT[0x1][0x3c] = 0x13b; + CASE_ORBIT[0x1][0x3d] = 0x13e; + CASE_ORBIT[0x1][0x3e] = 0x13d; + CASE_ORBIT[0x1][0x3f] = 0x140; + CASE_ORBIT[0x1][0x40] = 0x13f; + CASE_ORBIT[0x1][0x41] = 0x142; + CASE_ORBIT[0x1][0x42] = 0x141; + CASE_ORBIT[0x1][0x43] = 0x144; + CASE_ORBIT[0x1][0x44] = 0x143; + CASE_ORBIT[0x1][0x45] = 0x146; + CASE_ORBIT[0x1][0x46] = 0x145; + CASE_ORBIT[0x1][0x47] = 0x148; + CASE_ORBIT[0x1][0x48] = 0x147; + CASE_ORBIT[0x1][0x4a] = 0x14b; + CASE_ORBIT[0x1][0x4b] = 0x14a; + CASE_ORBIT[0x1][0x4c] = 0x14d; + CASE_ORBIT[0x1][0x4d] = 0x14c; + CASE_ORBIT[0x1][0x4e] = 0x14f; + CASE_ORBIT[0x1][0x4f] = 0x14e; + CASE_ORBIT[0x1][0x50] = 0x151; + CASE_ORBIT[0x1][0x51] = 0x150; + CASE_ORBIT[0x1][0x52] = 0x153; + CASE_ORBIT[0x1][0x53] = 0x152; + CASE_ORBIT[0x1][0x54] = 0x155; + CASE_ORBIT[0x1][0x55] = 0x154; + CASE_ORBIT[0x1][0x56] = 0x157; + CASE_ORBIT[0x1][0x57] = 0x156; + CASE_ORBIT[0x1][0x58] = 0x159; + CASE_ORBIT[0x1][0x59] = 0x158; + CASE_ORBIT[0x1][0x5a] = 0x15b; + CASE_ORBIT[0x1][0x5b] = 0x15a; + CASE_ORBIT[0x1][0x5c] = 0x15d; + CASE_ORBIT[0x1][0x5d] = 0x15c; + CASE_ORBIT[0x1][0x5e] = 0x15f; + CASE_ORBIT[0x1][0x5f] = 0x15e; + CASE_ORBIT[0x1][0x60] = 0x161; + CASE_ORBIT[0x1][0x61] = 0x160; + CASE_ORBIT[0x1][0x62] = 0x163; + CASE_ORBIT[0x1][0x63] = 0x162; + CASE_ORBIT[0x1][0x64] = 0x165; + CASE_ORBIT[0x1][0x65] = 0x164; + CASE_ORBIT[0x1][0x66] = 0x167; + CASE_ORBIT[0x1][0x67] = 0x166; + CASE_ORBIT[0x1][0x68] = 0x169; + CASE_ORBIT[0x1][0x69] = 0x168; + CASE_ORBIT[0x1][0x6a] = 0x16b; + CASE_ORBIT[0x1][0x6b] = 0x16a; + CASE_ORBIT[0x1][0x6c] = 0x16d; + CASE_ORBIT[0x1][0x6d] = 0x16c; + CASE_ORBIT[0x1][0x6e] = 0x16f; + CASE_ORBIT[0x1][0x6f] = 0x16e; + CASE_ORBIT[0x1][0x70] = 0x171; + CASE_ORBIT[0x1][0x71] = 0x170; + CASE_ORBIT[0x1][0x72] = 0x173; + CASE_ORBIT[0x1][0x73] = 0x172; + CASE_ORBIT[0x1][0x74] = 0x175; + CASE_ORBIT[0x1][0x75] = 0x174; + CASE_ORBIT[0x1][0x76] = 0x177; + CASE_ORBIT[0x1][0x77] = 0x176; + CASE_ORBIT[0x1][0x78] = 0xff; + CASE_ORBIT[0x1][0x79] = 0x17a; + CASE_ORBIT[0x1][0x7a] = 0x179; + CASE_ORBIT[0x1][0x7b] = 0x17c; + CASE_ORBIT[0x1][0x7c] = 0x17b; + CASE_ORBIT[0x1][0x7d] = 0x17e; + CASE_ORBIT[0x1][0x7e] = 0x17d; + CASE_ORBIT[0x1][0x7f] = 0x53; + CASE_ORBIT[0x1][0x80] = 0x243; + CASE_ORBIT[0x1][0x81] = 0x253; + CASE_ORBIT[0x1][0x82] = 0x183; + CASE_ORBIT[0x1][0x83] = 0x182; + CASE_ORBIT[0x1][0x84] = 0x185; + CASE_ORBIT[0x1][0x85] = 0x184; + CASE_ORBIT[0x1][0x86] = 0x254; + CASE_ORBIT[0x1][0x87] = 0x188; + CASE_ORBIT[0x1][0x88] = 0x187; + CASE_ORBIT[0x1][0x89] = 0x256; + CASE_ORBIT[0x1][0x8a] = 0x257; + CASE_ORBIT[0x1][0x8b] = 0x18c; + CASE_ORBIT[0x1][0x8c] = 0x18b; + CASE_ORBIT[0x1][0x8e] = 0x1dd; + CASE_ORBIT[0x1][0x8f] = 0x259; + CASE_ORBIT[0x1][0x90] = 0x25b; + CASE_ORBIT[0x1][0x91] = 0x192; + CASE_ORBIT[0x1][0x92] = 0x191; + CASE_ORBIT[0x1][0x93] = 0x260; + CASE_ORBIT[0x1][0x94] = 0x263; + CASE_ORBIT[0x1][0x95] = 0x1f6; + CASE_ORBIT[0x1][0x96] = 0x269; + CASE_ORBIT[0x1][0x97] = 0x268; + CASE_ORBIT[0x1][0x98] = 0x199; + CASE_ORBIT[0x1][0x99] = 0x198; + CASE_ORBIT[0x1][0x9a] = 0x23d; + CASE_ORBIT[0x1][0x9c] = 0x26f; + CASE_ORBIT[0x1][0x9d] = 0x272; + CASE_ORBIT[0x1][0x9e] = 0x220; + CASE_ORBIT[0x1][0x9f] = 0x275; + CASE_ORBIT[0x1][0xa0] = 0x1a1; + CASE_ORBIT[0x1][0xa1] = 0x1a0; + CASE_ORBIT[0x1][0xa2] = 0x1a3; + CASE_ORBIT[0x1][0xa3] = 0x1a2; + CASE_ORBIT[0x1][0xa4] = 0x1a5; + CASE_ORBIT[0x1][0xa5] = 0x1a4; + CASE_ORBIT[0x1][0xa6] = 0x280; + CASE_ORBIT[0x1][0xa7] = 0x1a8; + CASE_ORBIT[0x1][0xa8] = 0x1a7; + CASE_ORBIT[0x1][0xa9] = 0x283; + CASE_ORBIT[0x1][0xac] = 0x1ad; + CASE_ORBIT[0x1][0xad] = 0x1ac; + CASE_ORBIT[0x1][0xae] = 0x288; + CASE_ORBIT[0x1][0xaf] = 0x1b0; + CASE_ORBIT[0x1][0xb0] = 0x1af; + CASE_ORBIT[0x1][0xb1] = 0x28a; + CASE_ORBIT[0x1][0xb2] = 0x28b; + CASE_ORBIT[0x1][0xb3] = 0x1b4; + CASE_ORBIT[0x1][0xb4] = 0x1b3; + CASE_ORBIT[0x1][0xb5] = 0x1b6; + CASE_ORBIT[0x1][0xb6] = 0x1b5; + CASE_ORBIT[0x1][0xb7] = 0x292; + CASE_ORBIT[0x1][0xb8] = 0x1b9; + CASE_ORBIT[0x1][0xb9] = 0x1b8; + CASE_ORBIT[0x1][0xbc] = 0x1bd; + CASE_ORBIT[0x1][0xbd] = 0x1bc; + CASE_ORBIT[0x1][0xbf] = 0x1f7; + CASE_ORBIT[0x1][0xc4] = 0x1c5; + CASE_ORBIT[0x1][0xc5] = 0x1c6; + CASE_ORBIT[0x1][0xc6] = 0x1c4; + CASE_ORBIT[0x1][0xc7] = 0x1c8; + CASE_ORBIT[0x1][0xc8] = 0x1c9; + CASE_ORBIT[0x1][0xc9] = 0x1c7; + CASE_ORBIT[0x1][0xca] = 0x1cb; + CASE_ORBIT[0x1][0xcb] = 0x1cc; + CASE_ORBIT[0x1][0xcc] = 0x1ca; + CASE_ORBIT[0x1][0xcd] = 0x1ce; + CASE_ORBIT[0x1][0xce] = 0x1cd; + CASE_ORBIT[0x1][0xcf] = 0x1d0; + CASE_ORBIT[0x1][0xd0] = 0x1cf; + CASE_ORBIT[0x1][0xd1] = 0x1d2; + CASE_ORBIT[0x1][0xd2] = 0x1d1; + CASE_ORBIT[0x1][0xd3] = 0x1d4; + CASE_ORBIT[0x1][0xd4] = 0x1d3; + CASE_ORBIT[0x1][0xd5] = 0x1d6; + CASE_ORBIT[0x1][0xd6] = 0x1d5; + CASE_ORBIT[0x1][0xd7] = 0x1d8; + CASE_ORBIT[0x1][0xd8] = 0x1d7; + CASE_ORBIT[0x1][0xd9] = 0x1da; + CASE_ORBIT[0x1][0xda] = 0x1d9; + CASE_ORBIT[0x1][0xdb] = 0x1dc; + CASE_ORBIT[0x1][0xdc] = 0x1db; + CASE_ORBIT[0x1][0xdd] = 0x18e; + CASE_ORBIT[0x1][0xde] = 0x1df; + CASE_ORBIT[0x1][0xdf] = 0x1de; + CASE_ORBIT[0x1][0xe0] = 0x1e1; + CASE_ORBIT[0x1][0xe1] = 0x1e0; + CASE_ORBIT[0x1][0xe2] = 0x1e3; + CASE_ORBIT[0x1][0xe3] = 0x1e2; + CASE_ORBIT[0x1][0xe4] = 0x1e5; + CASE_ORBIT[0x1][0xe5] = 0x1e4; + CASE_ORBIT[0x1][0xe6] = 0x1e7; + CASE_ORBIT[0x1][0xe7] = 0x1e6; + CASE_ORBIT[0x1][0xe8] = 0x1e9; + CASE_ORBIT[0x1][0xe9] = 0x1e8; + CASE_ORBIT[0x1][0xea] = 0x1eb; + CASE_ORBIT[0x1][0xeb] = 0x1ea; + CASE_ORBIT[0x1][0xec] = 0x1ed; + CASE_ORBIT[0x1][0xed] = 0x1ec; + CASE_ORBIT[0x1][0xee] = 0x1ef; + CASE_ORBIT[0x1][0xef] = 0x1ee; + CASE_ORBIT[0x1][0xf1] = 0x1f2; + CASE_ORBIT[0x1][0xf2] = 0x1f3; + CASE_ORBIT[0x1][0xf3] = 0x1f1; + CASE_ORBIT[0x1][0xf4] = 0x1f5; + CASE_ORBIT[0x1][0xf5] = 0x1f4; + CASE_ORBIT[0x1][0xf6] = 0x195; + CASE_ORBIT[0x1][0xf7] = 0x1bf; + CASE_ORBIT[0x1][0xf8] = 0x1f9; + CASE_ORBIT[0x1][0xf9] = 0x1f8; + CASE_ORBIT[0x1][0xfa] = 0x1fb; + CASE_ORBIT[0x1][0xfb] = 0x1fa; + CASE_ORBIT[0x1][0xfc] = 0x1fd; + CASE_ORBIT[0x1][0xfd] = 0x1fc; + CASE_ORBIT[0x1][0xfe] = 0x1ff; + CASE_ORBIT[0x1][0xff] = 0x1fe; + CASE_ORBIT[0x2] = new int[256]; + CASE_ORBIT[0x2][0x0] = 0x201; + CASE_ORBIT[0x2][0x1] = 0x200; + CASE_ORBIT[0x2][0x2] = 0x203; + CASE_ORBIT[0x2][0x3] = 0x202; + CASE_ORBIT[0x2][0x4] = 0x205; + CASE_ORBIT[0x2][0x5] = 0x204; + CASE_ORBIT[0x2][0x6] = 0x207; + CASE_ORBIT[0x2][0x7] = 0x206; + CASE_ORBIT[0x2][0x8] = 0x209; + CASE_ORBIT[0x2][0x9] = 0x208; + CASE_ORBIT[0x2][0xa] = 0x20b; + CASE_ORBIT[0x2][0xb] = 0x20a; + CASE_ORBIT[0x2][0xc] = 0x20d; + CASE_ORBIT[0x2][0xd] = 0x20c; + CASE_ORBIT[0x2][0xe] = 0x20f; + CASE_ORBIT[0x2][0xf] = 0x20e; + CASE_ORBIT[0x2][0x10] = 0x211; + CASE_ORBIT[0x2][0x11] = 0x210; + CASE_ORBIT[0x2][0x12] = 0x213; + CASE_ORBIT[0x2][0x13] = 0x212; + CASE_ORBIT[0x2][0x14] = 0x215; + CASE_ORBIT[0x2][0x15] = 0x214; + CASE_ORBIT[0x2][0x16] = 0x217; + CASE_ORBIT[0x2][0x17] = 0x216; + CASE_ORBIT[0x2][0x18] = 0x219; + CASE_ORBIT[0x2][0x19] = 0x218; + CASE_ORBIT[0x2][0x1a] = 0x21b; + CASE_ORBIT[0x2][0x1b] = 0x21a; + CASE_ORBIT[0x2][0x1c] = 0x21d; + CASE_ORBIT[0x2][0x1d] = 0x21c; + CASE_ORBIT[0x2][0x1e] = 0x21f; + CASE_ORBIT[0x2][0x1f] = 0x21e; + CASE_ORBIT[0x2][0x20] = 0x19e; + CASE_ORBIT[0x2][0x22] = 0x223; + CASE_ORBIT[0x2][0x23] = 0x222; + CASE_ORBIT[0x2][0x24] = 0x225; + CASE_ORBIT[0x2][0x25] = 0x224; + CASE_ORBIT[0x2][0x26] = 0x227; + CASE_ORBIT[0x2][0x27] = 0x226; + CASE_ORBIT[0x2][0x28] = 0x229; + CASE_ORBIT[0x2][0x29] = 0x228; + CASE_ORBIT[0x2][0x2a] = 0x22b; + CASE_ORBIT[0x2][0x2b] = 0x22a; + CASE_ORBIT[0x2][0x2c] = 0x22d; + CASE_ORBIT[0x2][0x2d] = 0x22c; + CASE_ORBIT[0x2][0x2e] = 0x22f; + CASE_ORBIT[0x2][0x2f] = 0x22e; + CASE_ORBIT[0x2][0x30] = 0x231; + CASE_ORBIT[0x2][0x31] = 0x230; + CASE_ORBIT[0x2][0x32] = 0x233; + CASE_ORBIT[0x2][0x33] = 0x232; + CASE_ORBIT[0x2][0x3a] = 0x2c65; + CASE_ORBIT[0x2][0x3b] = 0x23c; + CASE_ORBIT[0x2][0x3c] = 0x23b; + CASE_ORBIT[0x2][0x3d] = 0x19a; + CASE_ORBIT[0x2][0x3e] = 0x2c66; + CASE_ORBIT[0x2][0x3f] = 0x2c7e; + CASE_ORBIT[0x2][0x40] = 0x2c7f; + CASE_ORBIT[0x2][0x41] = 0x242; + CASE_ORBIT[0x2][0x42] = 0x241; + CASE_ORBIT[0x2][0x43] = 0x180; + CASE_ORBIT[0x2][0x44] = 0x289; + CASE_ORBIT[0x2][0x45] = 0x28c; + CASE_ORBIT[0x2][0x46] = 0x247; + CASE_ORBIT[0x2][0x47] = 0x246; + CASE_ORBIT[0x2][0x48] = 0x249; + CASE_ORBIT[0x2][0x49] = 0x248; + CASE_ORBIT[0x2][0x4a] = 0x24b; + CASE_ORBIT[0x2][0x4b] = 0x24a; + CASE_ORBIT[0x2][0x4c] = 0x24d; + CASE_ORBIT[0x2][0x4d] = 0x24c; + CASE_ORBIT[0x2][0x4e] = 0x24f; + CASE_ORBIT[0x2][0x4f] = 0x24e; + CASE_ORBIT[0x2][0x50] = 0x2c6f; + CASE_ORBIT[0x2][0x51] = 0x2c6d; + CASE_ORBIT[0x2][0x52] = 0x2c70; + CASE_ORBIT[0x2][0x53] = 0x181; + CASE_ORBIT[0x2][0x54] = 0x186; + CASE_ORBIT[0x2][0x56] = 0x189; + CASE_ORBIT[0x2][0x57] = 0x18a; + CASE_ORBIT[0x2][0x59] = 0x18f; + CASE_ORBIT[0x2][0x5b] = 0x190; + CASE_ORBIT[0x2][0x5c] = 0xa7ab; + CASE_ORBIT[0x2][0x60] = 0x193; + CASE_ORBIT[0x2][0x61] = 0xa7ac; + CASE_ORBIT[0x2][0x63] = 0x194; + CASE_ORBIT[0x2][0x65] = 0xa78d; + CASE_ORBIT[0x2][0x66] = 0xa7aa; + CASE_ORBIT[0x2][0x68] = 0x197; + CASE_ORBIT[0x2][0x69] = 0x196; + CASE_ORBIT[0x2][0x6a] = 0xa7ae; + CASE_ORBIT[0x2][0x6b] = 0x2c62; + CASE_ORBIT[0x2][0x6c] = 0xa7ad; + CASE_ORBIT[0x2][0x6f] = 0x19c; + CASE_ORBIT[0x2][0x71] = 0x2c6e; + CASE_ORBIT[0x2][0x72] = 0x19d; + CASE_ORBIT[0x2][0x75] = 0x19f; + CASE_ORBIT[0x2][0x7d] = 0x2c64; + CASE_ORBIT[0x2][0x80] = 0x1a6; + CASE_ORBIT[0x2][0x83] = 0x1a9; + CASE_ORBIT[0x2][0x87] = 0xa7b1; + CASE_ORBIT[0x2][0x88] = 0x1ae; + CASE_ORBIT[0x2][0x89] = 0x244; + CASE_ORBIT[0x2][0x8a] = 0x1b1; + CASE_ORBIT[0x2][0x8b] = 0x1b2; + CASE_ORBIT[0x2][0x8c] = 0x245; + CASE_ORBIT[0x2][0x92] = 0x1b7; + CASE_ORBIT[0x2][0x9d] = 0xa7b2; + CASE_ORBIT[0x2][0x9e] = 0xa7b0; + CASE_ORBIT[0x3] = new int[256]; + CASE_ORBIT[0x3][0x45] = 0x399; + CASE_ORBIT[0x3][0x70] = 0x371; + CASE_ORBIT[0x3][0x71] = 0x370; + CASE_ORBIT[0x3][0x72] = 0x373; + CASE_ORBIT[0x3][0x73] = 0x372; + CASE_ORBIT[0x3][0x76] = 0x377; + CASE_ORBIT[0x3][0x77] = 0x376; + CASE_ORBIT[0x3][0x7b] = 0x3fd; + CASE_ORBIT[0x3][0x7c] = 0x3fe; + CASE_ORBIT[0x3][0x7d] = 0x3ff; + CASE_ORBIT[0x3][0x7f] = 0x3f3; + CASE_ORBIT[0x3][0x86] = 0x3ac; + CASE_ORBIT[0x3][0x88] = 0x3ad; + CASE_ORBIT[0x3][0x89] = 0x3ae; + CASE_ORBIT[0x3][0x8a] = 0x3af; + CASE_ORBIT[0x3][0x8c] = 0x3cc; + CASE_ORBIT[0x3][0x8e] = 0x3cd; + CASE_ORBIT[0x3][0x8f] = 0x3ce; + CASE_ORBIT[0x3][0x91] = 0x3b1; + CASE_ORBIT[0x3][0x92] = 0x3b2; + CASE_ORBIT[0x3][0x93] = 0x3b3; + CASE_ORBIT[0x3][0x94] = 0x3b4; + CASE_ORBIT[0x3][0x95] = 0x3b5; + CASE_ORBIT[0x3][0x96] = 0x3b6; + CASE_ORBIT[0x3][0x97] = 0x3b7; + CASE_ORBIT[0x3][0x98] = 0x3b8; + CASE_ORBIT[0x3][0x99] = 0x3b9; + CASE_ORBIT[0x3][0x9a] = 0x3ba; + CASE_ORBIT[0x3][0x9b] = 0x3bb; + CASE_ORBIT[0x3][0x9c] = 0x3bc; + CASE_ORBIT[0x3][0x9d] = 0x3bd; + CASE_ORBIT[0x3][0x9e] = 0x3be; + CASE_ORBIT[0x3][0x9f] = 0x3bf; + CASE_ORBIT[0x3][0xa0] = 0x3c0; + CASE_ORBIT[0x3][0xa1] = 0x3c1; + CASE_ORBIT[0x3][0xa3] = 0x3c2; + CASE_ORBIT[0x3][0xa4] = 0x3c4; + CASE_ORBIT[0x3][0xa5] = 0x3c5; + CASE_ORBIT[0x3][0xa6] = 0x3c6; + CASE_ORBIT[0x3][0xa7] = 0x3c7; + CASE_ORBIT[0x3][0xa8] = 0x3c8; + CASE_ORBIT[0x3][0xa9] = 0x3c9; + CASE_ORBIT[0x3][0xaa] = 0x3ca; + CASE_ORBIT[0x3][0xab] = 0x3cb; + CASE_ORBIT[0x3][0xac] = 0x386; + CASE_ORBIT[0x3][0xad] = 0x388; + CASE_ORBIT[0x3][0xae] = 0x389; + CASE_ORBIT[0x3][0xaf] = 0x38a; + CASE_ORBIT[0x3][0xb1] = 0x391; + CASE_ORBIT[0x3][0xb2] = 0x3d0; + CASE_ORBIT[0x3][0xb3] = 0x393; + CASE_ORBIT[0x3][0xb4] = 0x394; + CASE_ORBIT[0x3][0xb5] = 0x3f5; + CASE_ORBIT[0x3][0xb6] = 0x396; + CASE_ORBIT[0x3][0xb7] = 0x397; + CASE_ORBIT[0x3][0xb8] = 0x3d1; + CASE_ORBIT[0x3][0xb9] = 0x1fbe; + CASE_ORBIT[0x3][0xba] = 0x3f0; + CASE_ORBIT[0x3][0xbb] = 0x39b; + CASE_ORBIT[0x3][0xbc] = 0xb5; + CASE_ORBIT[0x3][0xbd] = 0x39d; + CASE_ORBIT[0x3][0xbe] = 0x39e; + CASE_ORBIT[0x3][0xbf] = 0x39f; + CASE_ORBIT[0x3][0xc0] = 0x3d6; + CASE_ORBIT[0x3][0xc1] = 0x3f1; + CASE_ORBIT[0x3][0xc2] = 0x3c3; + CASE_ORBIT[0x3][0xc3] = 0x3a3; + CASE_ORBIT[0x3][0xc4] = 0x3a4; + CASE_ORBIT[0x3][0xc5] = 0x3a5; + CASE_ORBIT[0x3][0xc6] = 0x3d5; + CASE_ORBIT[0x3][0xc7] = 0x3a7; + CASE_ORBIT[0x3][0xc8] = 0x3a8; + CASE_ORBIT[0x3][0xc9] = 0x2126; + CASE_ORBIT[0x3][0xca] = 0x3aa; + CASE_ORBIT[0x3][0xcb] = 0x3ab; + CASE_ORBIT[0x3][0xcc] = 0x38c; + CASE_ORBIT[0x3][0xcd] = 0x38e; + CASE_ORBIT[0x3][0xce] = 0x38f; + CASE_ORBIT[0x3][0xcf] = 0x3d7; + CASE_ORBIT[0x3][0xd0] = 0x392; + CASE_ORBIT[0x3][0xd1] = 0x3f4; + CASE_ORBIT[0x3][0xd5] = 0x3a6; + CASE_ORBIT[0x3][0xd6] = 0x3a0; + CASE_ORBIT[0x3][0xd7] = 0x3cf; + CASE_ORBIT[0x3][0xd8] = 0x3d9; + CASE_ORBIT[0x3][0xd9] = 0x3d8; + CASE_ORBIT[0x3][0xda] = 0x3db; + CASE_ORBIT[0x3][0xdb] = 0x3da; + CASE_ORBIT[0x3][0xdc] = 0x3dd; + CASE_ORBIT[0x3][0xdd] = 0x3dc; + CASE_ORBIT[0x3][0xde] = 0x3df; + CASE_ORBIT[0x3][0xdf] = 0x3de; + CASE_ORBIT[0x3][0xe0] = 0x3e1; + CASE_ORBIT[0x3][0xe1] = 0x3e0; + CASE_ORBIT[0x3][0xe2] = 0x3e3; + CASE_ORBIT[0x3][0xe3] = 0x3e2; + CASE_ORBIT[0x3][0xe4] = 0x3e5; + CASE_ORBIT[0x3][0xe5] = 0x3e4; + CASE_ORBIT[0x3][0xe6] = 0x3e7; + CASE_ORBIT[0x3][0xe7] = 0x3e6; + CASE_ORBIT[0x3][0xe8] = 0x3e9; + CASE_ORBIT[0x3][0xe9] = 0x3e8; + CASE_ORBIT[0x3][0xea] = 0x3eb; + CASE_ORBIT[0x3][0xeb] = 0x3ea; + CASE_ORBIT[0x3][0xec] = 0x3ed; + CASE_ORBIT[0x3][0xed] = 0x3ec; + CASE_ORBIT[0x3][0xee] = 0x3ef; + CASE_ORBIT[0x3][0xef] = 0x3ee; + CASE_ORBIT[0x3][0xf0] = 0x39a; + CASE_ORBIT[0x3][0xf1] = 0x3a1; + CASE_ORBIT[0x3][0xf2] = 0x3f9; + CASE_ORBIT[0x3][0xf3] = 0x37f; + CASE_ORBIT[0x3][0xf4] = 0x398; + CASE_ORBIT[0x3][0xf5] = 0x395; + CASE_ORBIT[0x3][0xf7] = 0x3f8; + CASE_ORBIT[0x3][0xf8] = 0x3f7; + CASE_ORBIT[0x3][0xf9] = 0x3f2; + CASE_ORBIT[0x3][0xfa] = 0x3fb; + CASE_ORBIT[0x3][0xfb] = 0x3fa; + CASE_ORBIT[0x3][0xfd] = 0x37b; + CASE_ORBIT[0x3][0xfe] = 0x37c; + CASE_ORBIT[0x3][0xff] = 0x37d; + CASE_ORBIT[0x4] = new int[256]; + CASE_ORBIT[0x4][0x0] = 0x450; + CASE_ORBIT[0x4][0x1] = 0x451; + CASE_ORBIT[0x4][0x2] = 0x452; + CASE_ORBIT[0x4][0x3] = 0x453; + CASE_ORBIT[0x4][0x4] = 0x454; + CASE_ORBIT[0x4][0x5] = 0x455; + CASE_ORBIT[0x4][0x6] = 0x456; + CASE_ORBIT[0x4][0x7] = 0x457; + CASE_ORBIT[0x4][0x8] = 0x458; + CASE_ORBIT[0x4][0x9] = 0x459; + CASE_ORBIT[0x4][0xa] = 0x45a; + CASE_ORBIT[0x4][0xb] = 0x45b; + CASE_ORBIT[0x4][0xc] = 0x45c; + CASE_ORBIT[0x4][0xd] = 0x45d; + CASE_ORBIT[0x4][0xe] = 0x45e; + CASE_ORBIT[0x4][0xf] = 0x45f; + CASE_ORBIT[0x4][0x10] = 0x430; + CASE_ORBIT[0x4][0x11] = 0x431; + CASE_ORBIT[0x4][0x12] = 0x432; + CASE_ORBIT[0x4][0x13] = 0x433; + CASE_ORBIT[0x4][0x14] = 0x434; + CASE_ORBIT[0x4][0x15] = 0x435; + CASE_ORBIT[0x4][0x16] = 0x436; + CASE_ORBIT[0x4][0x17] = 0x437; + CASE_ORBIT[0x4][0x18] = 0x438; + CASE_ORBIT[0x4][0x19] = 0x439; + CASE_ORBIT[0x4][0x1a] = 0x43a; + CASE_ORBIT[0x4][0x1b] = 0x43b; + CASE_ORBIT[0x4][0x1c] = 0x43c; + CASE_ORBIT[0x4][0x1d] = 0x43d; + CASE_ORBIT[0x4][0x1e] = 0x43e; + CASE_ORBIT[0x4][0x1f] = 0x43f; + CASE_ORBIT[0x4][0x20] = 0x440; + CASE_ORBIT[0x4][0x21] = 0x441; + CASE_ORBIT[0x4][0x22] = 0x442; + CASE_ORBIT[0x4][0x23] = 0x443; + CASE_ORBIT[0x4][0x24] = 0x444; + CASE_ORBIT[0x4][0x25] = 0x445; + CASE_ORBIT[0x4][0x26] = 0x446; + CASE_ORBIT[0x4][0x27] = 0x447; + CASE_ORBIT[0x4][0x28] = 0x448; + CASE_ORBIT[0x4][0x29] = 0x449; + CASE_ORBIT[0x4][0x2a] = 0x44a; + CASE_ORBIT[0x4][0x2b] = 0x44b; + CASE_ORBIT[0x4][0x2c] = 0x44c; + CASE_ORBIT[0x4][0x2d] = 0x44d; + CASE_ORBIT[0x4][0x2e] = 0x44e; + CASE_ORBIT[0x4][0x2f] = 0x44f; + CASE_ORBIT[0x4][0x30] = 0x410; + CASE_ORBIT[0x4][0x31] = 0x411; + CASE_ORBIT[0x4][0x32] = 0x1c80; + CASE_ORBIT[0x4][0x33] = 0x413; + CASE_ORBIT[0x4][0x34] = 0x1c81; + CASE_ORBIT[0x4][0x35] = 0x415; + CASE_ORBIT[0x4][0x36] = 0x416; + CASE_ORBIT[0x4][0x37] = 0x417; + CASE_ORBIT[0x4][0x38] = 0x418; + CASE_ORBIT[0x4][0x39] = 0x419; + CASE_ORBIT[0x4][0x3a] = 0x41a; + CASE_ORBIT[0x4][0x3b] = 0x41b; + CASE_ORBIT[0x4][0x3c] = 0x41c; + CASE_ORBIT[0x4][0x3d] = 0x41d; + CASE_ORBIT[0x4][0x3e] = 0x1c82; + CASE_ORBIT[0x4][0x3f] = 0x41f; + CASE_ORBIT[0x4][0x40] = 0x420; + CASE_ORBIT[0x4][0x41] = 0x1c83; + CASE_ORBIT[0x4][0x42] = 0x1c84; + CASE_ORBIT[0x4][0x43] = 0x423; + CASE_ORBIT[0x4][0x44] = 0x424; + CASE_ORBIT[0x4][0x45] = 0x425; + CASE_ORBIT[0x4][0x46] = 0x426; + CASE_ORBIT[0x4][0x47] = 0x427; + CASE_ORBIT[0x4][0x48] = 0x428; + CASE_ORBIT[0x4][0x49] = 0x429; + CASE_ORBIT[0x4][0x4a] = 0x1c86; + CASE_ORBIT[0x4][0x4b] = 0x42b; + CASE_ORBIT[0x4][0x4c] = 0x42c; + CASE_ORBIT[0x4][0x4d] = 0x42d; + CASE_ORBIT[0x4][0x4e] = 0x42e; + CASE_ORBIT[0x4][0x4f] = 0x42f; + CASE_ORBIT[0x4][0x50] = 0x400; + CASE_ORBIT[0x4][0x51] = 0x401; + CASE_ORBIT[0x4][0x52] = 0x402; + CASE_ORBIT[0x4][0x53] = 0x403; + CASE_ORBIT[0x4][0x54] = 0x404; + CASE_ORBIT[0x4][0x55] = 0x405; + CASE_ORBIT[0x4][0x56] = 0x406; + CASE_ORBIT[0x4][0x57] = 0x407; + CASE_ORBIT[0x4][0x58] = 0x408; + CASE_ORBIT[0x4][0x59] = 0x409; + CASE_ORBIT[0x4][0x5a] = 0x40a; + CASE_ORBIT[0x4][0x5b] = 0x40b; + CASE_ORBIT[0x4][0x5c] = 0x40c; + CASE_ORBIT[0x4][0x5d] = 0x40d; + CASE_ORBIT[0x4][0x5e] = 0x40e; + CASE_ORBIT[0x4][0x5f] = 0x40f; + CASE_ORBIT[0x4][0x60] = 0x461; + CASE_ORBIT[0x4][0x61] = 0x460; + CASE_ORBIT[0x4][0x62] = 0x463; + CASE_ORBIT[0x4][0x63] = 0x1c87; + CASE_ORBIT[0x4][0x64] = 0x465; + CASE_ORBIT[0x4][0x65] = 0x464; + CASE_ORBIT[0x4][0x66] = 0x467; + CASE_ORBIT[0x4][0x67] = 0x466; + CASE_ORBIT[0x4][0x68] = 0x469; + CASE_ORBIT[0x4][0x69] = 0x468; + CASE_ORBIT[0x4][0x6a] = 0x46b; + CASE_ORBIT[0x4][0x6b] = 0x46a; + CASE_ORBIT[0x4][0x6c] = 0x46d; + CASE_ORBIT[0x4][0x6d] = 0x46c; + CASE_ORBIT[0x4][0x6e] = 0x46f; + CASE_ORBIT[0x4][0x6f] = 0x46e; + CASE_ORBIT[0x4][0x70] = 0x471; + CASE_ORBIT[0x4][0x71] = 0x470; + CASE_ORBIT[0x4][0x72] = 0x473; + CASE_ORBIT[0x4][0x73] = 0x472; + CASE_ORBIT[0x4][0x74] = 0x475; + CASE_ORBIT[0x4][0x75] = 0x474; + CASE_ORBIT[0x4][0x76] = 0x477; + CASE_ORBIT[0x4][0x77] = 0x476; + CASE_ORBIT[0x4][0x78] = 0x479; + CASE_ORBIT[0x4][0x79] = 0x478; + CASE_ORBIT[0x4][0x7a] = 0x47b; + CASE_ORBIT[0x4][0x7b] = 0x47a; + CASE_ORBIT[0x4][0x7c] = 0x47d; + CASE_ORBIT[0x4][0x7d] = 0x47c; + CASE_ORBIT[0x4][0x7e] = 0x47f; + CASE_ORBIT[0x4][0x7f] = 0x47e; + CASE_ORBIT[0x4][0x80] = 0x481; + CASE_ORBIT[0x4][0x81] = 0x480; + CASE_ORBIT[0x4][0x8a] = 0x48b; + CASE_ORBIT[0x4][0x8b] = 0x48a; + CASE_ORBIT[0x4][0x8c] = 0x48d; + CASE_ORBIT[0x4][0x8d] = 0x48c; + CASE_ORBIT[0x4][0x8e] = 0x48f; + CASE_ORBIT[0x4][0x8f] = 0x48e; + CASE_ORBIT[0x4][0x90] = 0x491; + CASE_ORBIT[0x4][0x91] = 0x490; + CASE_ORBIT[0x4][0x92] = 0x493; + CASE_ORBIT[0x4][0x93] = 0x492; + CASE_ORBIT[0x4][0x94] = 0x495; + CASE_ORBIT[0x4][0x95] = 0x494; + CASE_ORBIT[0x4][0x96] = 0x497; + CASE_ORBIT[0x4][0x97] = 0x496; + CASE_ORBIT[0x4][0x98] = 0x499; + CASE_ORBIT[0x4][0x99] = 0x498; + CASE_ORBIT[0x4][0x9a] = 0x49b; + CASE_ORBIT[0x4][0x9b] = 0x49a; + CASE_ORBIT[0x4][0x9c] = 0x49d; + CASE_ORBIT[0x4][0x9d] = 0x49c; + CASE_ORBIT[0x4][0x9e] = 0x49f; + CASE_ORBIT[0x4][0x9f] = 0x49e; + CASE_ORBIT[0x4][0xa0] = 0x4a1; + CASE_ORBIT[0x4][0xa1] = 0x4a0; + CASE_ORBIT[0x4][0xa2] = 0x4a3; + CASE_ORBIT[0x4][0xa3] = 0x4a2; + CASE_ORBIT[0x4][0xa4] = 0x4a5; + CASE_ORBIT[0x4][0xa5] = 0x4a4; + CASE_ORBIT[0x4][0xa6] = 0x4a7; + CASE_ORBIT[0x4][0xa7] = 0x4a6; + CASE_ORBIT[0x4][0xa8] = 0x4a9; + CASE_ORBIT[0x4][0xa9] = 0x4a8; + CASE_ORBIT[0x4][0xaa] = 0x4ab; + CASE_ORBIT[0x4][0xab] = 0x4aa; + CASE_ORBIT[0x4][0xac] = 0x4ad; + CASE_ORBIT[0x4][0xad] = 0x4ac; + CASE_ORBIT[0x4][0xae] = 0x4af; + CASE_ORBIT[0x4][0xaf] = 0x4ae; + CASE_ORBIT[0x4][0xb0] = 0x4b1; + CASE_ORBIT[0x4][0xb1] = 0x4b0; + CASE_ORBIT[0x4][0xb2] = 0x4b3; + CASE_ORBIT[0x4][0xb3] = 0x4b2; + CASE_ORBIT[0x4][0xb4] = 0x4b5; + CASE_ORBIT[0x4][0xb5] = 0x4b4; + CASE_ORBIT[0x4][0xb6] = 0x4b7; + CASE_ORBIT[0x4][0xb7] = 0x4b6; + CASE_ORBIT[0x4][0xb8] = 0x4b9; + CASE_ORBIT[0x4][0xb9] = 0x4b8; + CASE_ORBIT[0x4][0xba] = 0x4bb; + CASE_ORBIT[0x4][0xbb] = 0x4ba; + CASE_ORBIT[0x4][0xbc] = 0x4bd; + CASE_ORBIT[0x4][0xbd] = 0x4bc; + CASE_ORBIT[0x4][0xbe] = 0x4bf; + CASE_ORBIT[0x4][0xbf] = 0x4be; + CASE_ORBIT[0x4][0xc0] = 0x4cf; + CASE_ORBIT[0x4][0xc1] = 0x4c2; + CASE_ORBIT[0x4][0xc2] = 0x4c1; + CASE_ORBIT[0x4][0xc3] = 0x4c4; + CASE_ORBIT[0x4][0xc4] = 0x4c3; + CASE_ORBIT[0x4][0xc5] = 0x4c6; + CASE_ORBIT[0x4][0xc6] = 0x4c5; + CASE_ORBIT[0x4][0xc7] = 0x4c8; + CASE_ORBIT[0x4][0xc8] = 0x4c7; + CASE_ORBIT[0x4][0xc9] = 0x4ca; + CASE_ORBIT[0x4][0xca] = 0x4c9; + CASE_ORBIT[0x4][0xcb] = 0x4cc; + CASE_ORBIT[0x4][0xcc] = 0x4cb; + CASE_ORBIT[0x4][0xcd] = 0x4ce; + CASE_ORBIT[0x4][0xce] = 0x4cd; + CASE_ORBIT[0x4][0xcf] = 0x4c0; + CASE_ORBIT[0x4][0xd0] = 0x4d1; + CASE_ORBIT[0x4][0xd1] = 0x4d0; + CASE_ORBIT[0x4][0xd2] = 0x4d3; + CASE_ORBIT[0x4][0xd3] = 0x4d2; + CASE_ORBIT[0x4][0xd4] = 0x4d5; + CASE_ORBIT[0x4][0xd5] = 0x4d4; + CASE_ORBIT[0x4][0xd6] = 0x4d7; + CASE_ORBIT[0x4][0xd7] = 0x4d6; + CASE_ORBIT[0x4][0xd8] = 0x4d9; + CASE_ORBIT[0x4][0xd9] = 0x4d8; + CASE_ORBIT[0x4][0xda] = 0x4db; + CASE_ORBIT[0x4][0xdb] = 0x4da; + CASE_ORBIT[0x4][0xdc] = 0x4dd; + CASE_ORBIT[0x4][0xdd] = 0x4dc; + CASE_ORBIT[0x4][0xde] = 0x4df; + CASE_ORBIT[0x4][0xdf] = 0x4de; + CASE_ORBIT[0x4][0xe0] = 0x4e1; + CASE_ORBIT[0x4][0xe1] = 0x4e0; + CASE_ORBIT[0x4][0xe2] = 0x4e3; + CASE_ORBIT[0x4][0xe3] = 0x4e2; + CASE_ORBIT[0x4][0xe4] = 0x4e5; + CASE_ORBIT[0x4][0xe5] = 0x4e4; + CASE_ORBIT[0x4][0xe6] = 0x4e7; + CASE_ORBIT[0x4][0xe7] = 0x4e6; + CASE_ORBIT[0x4][0xe8] = 0x4e9; + CASE_ORBIT[0x4][0xe9] = 0x4e8; + CASE_ORBIT[0x4][0xea] = 0x4eb; + CASE_ORBIT[0x4][0xeb] = 0x4ea; + CASE_ORBIT[0x4][0xec] = 0x4ed; + CASE_ORBIT[0x4][0xed] = 0x4ec; + CASE_ORBIT[0x4][0xee] = 0x4ef; + CASE_ORBIT[0x4][0xef] = 0x4ee; + CASE_ORBIT[0x4][0xf0] = 0x4f1; + CASE_ORBIT[0x4][0xf1] = 0x4f0; + CASE_ORBIT[0x4][0xf2] = 0x4f3; + CASE_ORBIT[0x4][0xf3] = 0x4f2; + CASE_ORBIT[0x4][0xf4] = 0x4f5; + CASE_ORBIT[0x4][0xf5] = 0x4f4; + CASE_ORBIT[0x4][0xf6] = 0x4f7; + CASE_ORBIT[0x4][0xf7] = 0x4f6; + CASE_ORBIT[0x4][0xf8] = 0x4f9; + CASE_ORBIT[0x4][0xf9] = 0x4f8; + CASE_ORBIT[0x4][0xfa] = 0x4fb; + CASE_ORBIT[0x4][0xfb] = 0x4fa; + CASE_ORBIT[0x4][0xfc] = 0x4fd; + CASE_ORBIT[0x4][0xfd] = 0x4fc; + CASE_ORBIT[0x4][0xfe] = 0x4ff; + CASE_ORBIT[0x4][0xff] = 0x4fe; + CASE_ORBIT[0x5] = new int[256]; + CASE_ORBIT[0x5][0x0] = 0x501; + CASE_ORBIT[0x5][0x1] = 0x500; + CASE_ORBIT[0x5][0x2] = 0x503; + CASE_ORBIT[0x5][0x3] = 0x502; + CASE_ORBIT[0x5][0x4] = 0x505; + CASE_ORBIT[0x5][0x5] = 0x504; + CASE_ORBIT[0x5][0x6] = 0x507; + CASE_ORBIT[0x5][0x7] = 0x506; + CASE_ORBIT[0x5][0x8] = 0x509; + CASE_ORBIT[0x5][0x9] = 0x508; + CASE_ORBIT[0x5][0xa] = 0x50b; + CASE_ORBIT[0x5][0xb] = 0x50a; + CASE_ORBIT[0x5][0xc] = 0x50d; + CASE_ORBIT[0x5][0xd] = 0x50c; + CASE_ORBIT[0x5][0xe] = 0x50f; + CASE_ORBIT[0x5][0xf] = 0x50e; + CASE_ORBIT[0x5][0x10] = 0x511; + CASE_ORBIT[0x5][0x11] = 0x510; + CASE_ORBIT[0x5][0x12] = 0x513; + CASE_ORBIT[0x5][0x13] = 0x512; + CASE_ORBIT[0x5][0x14] = 0x515; + CASE_ORBIT[0x5][0x15] = 0x514; + CASE_ORBIT[0x5][0x16] = 0x517; + CASE_ORBIT[0x5][0x17] = 0x516; + CASE_ORBIT[0x5][0x18] = 0x519; + CASE_ORBIT[0x5][0x19] = 0x518; + CASE_ORBIT[0x5][0x1a] = 0x51b; + CASE_ORBIT[0x5][0x1b] = 0x51a; + CASE_ORBIT[0x5][0x1c] = 0x51d; + CASE_ORBIT[0x5][0x1d] = 0x51c; + CASE_ORBIT[0x5][0x1e] = 0x51f; + CASE_ORBIT[0x5][0x1f] = 0x51e; + CASE_ORBIT[0x5][0x20] = 0x521; + CASE_ORBIT[0x5][0x21] = 0x520; + CASE_ORBIT[0x5][0x22] = 0x523; + CASE_ORBIT[0x5][0x23] = 0x522; + CASE_ORBIT[0x5][0x24] = 0x525; + CASE_ORBIT[0x5][0x25] = 0x524; + CASE_ORBIT[0x5][0x26] = 0x527; + CASE_ORBIT[0x5][0x27] = 0x526; + CASE_ORBIT[0x5][0x28] = 0x529; + CASE_ORBIT[0x5][0x29] = 0x528; + CASE_ORBIT[0x5][0x2a] = 0x52b; + CASE_ORBIT[0x5][0x2b] = 0x52a; + CASE_ORBIT[0x5][0x2c] = 0x52d; + CASE_ORBIT[0x5][0x2d] = 0x52c; + CASE_ORBIT[0x5][0x2e] = 0x52f; + CASE_ORBIT[0x5][0x2f] = 0x52e; + CASE_ORBIT[0x5][0x31] = 0x561; + CASE_ORBIT[0x5][0x32] = 0x562; + CASE_ORBIT[0x5][0x33] = 0x563; + CASE_ORBIT[0x5][0x34] = 0x564; + CASE_ORBIT[0x5][0x35] = 0x565; + CASE_ORBIT[0x5][0x36] = 0x566; + CASE_ORBIT[0x5][0x37] = 0x567; + CASE_ORBIT[0x5][0x38] = 0x568; + CASE_ORBIT[0x5][0x39] = 0x569; + CASE_ORBIT[0x5][0x3a] = 0x56a; + CASE_ORBIT[0x5][0x3b] = 0x56b; + CASE_ORBIT[0x5][0x3c] = 0x56c; + CASE_ORBIT[0x5][0x3d] = 0x56d; + CASE_ORBIT[0x5][0x3e] = 0x56e; + CASE_ORBIT[0x5][0x3f] = 0x56f; + CASE_ORBIT[0x5][0x40] = 0x570; + CASE_ORBIT[0x5][0x41] = 0x571; + CASE_ORBIT[0x5][0x42] = 0x572; + CASE_ORBIT[0x5][0x43] = 0x573; + CASE_ORBIT[0x5][0x44] = 0x574; + CASE_ORBIT[0x5][0x45] = 0x575; + CASE_ORBIT[0x5][0x46] = 0x576; + CASE_ORBIT[0x5][0x47] = 0x577; + CASE_ORBIT[0x5][0x48] = 0x578; + CASE_ORBIT[0x5][0x49] = 0x579; + CASE_ORBIT[0x5][0x4a] = 0x57a; + CASE_ORBIT[0x5][0x4b] = 0x57b; + CASE_ORBIT[0x5][0x4c] = 0x57c; + CASE_ORBIT[0x5][0x4d] = 0x57d; + CASE_ORBIT[0x5][0x4e] = 0x57e; + CASE_ORBIT[0x5][0x4f] = 0x57f; + CASE_ORBIT[0x5][0x50] = 0x580; + CASE_ORBIT[0x5][0x51] = 0x581; + CASE_ORBIT[0x5][0x52] = 0x582; + CASE_ORBIT[0x5][0x53] = 0x583; + CASE_ORBIT[0x5][0x54] = 0x584; + CASE_ORBIT[0x5][0x55] = 0x585; + CASE_ORBIT[0x5][0x56] = 0x586; + CASE_ORBIT[0x5][0x61] = 0x531; + CASE_ORBIT[0x5][0x62] = 0x532; + CASE_ORBIT[0x5][0x63] = 0x533; + CASE_ORBIT[0x5][0x64] = 0x534; + CASE_ORBIT[0x5][0x65] = 0x535; + CASE_ORBIT[0x5][0x66] = 0x536; + CASE_ORBIT[0x5][0x67] = 0x537; + CASE_ORBIT[0x5][0x68] = 0x538; + CASE_ORBIT[0x5][0x69] = 0x539; + CASE_ORBIT[0x5][0x6a] = 0x53a; + CASE_ORBIT[0x5][0x6b] = 0x53b; + CASE_ORBIT[0x5][0x6c] = 0x53c; + CASE_ORBIT[0x5][0x6d] = 0x53d; + CASE_ORBIT[0x5][0x6e] = 0x53e; + CASE_ORBIT[0x5][0x6f] = 0x53f; + CASE_ORBIT[0x5][0x70] = 0x540; + CASE_ORBIT[0x5][0x71] = 0x541; + CASE_ORBIT[0x5][0x72] = 0x542; + CASE_ORBIT[0x5][0x73] = 0x543; + CASE_ORBIT[0x5][0x74] = 0x544; + CASE_ORBIT[0x5][0x75] = 0x545; + CASE_ORBIT[0x5][0x76] = 0x546; + CASE_ORBIT[0x5][0x77] = 0x547; + CASE_ORBIT[0x5][0x78] = 0x548; + CASE_ORBIT[0x5][0x79] = 0x549; + CASE_ORBIT[0x5][0x7a] = 0x54a; + CASE_ORBIT[0x5][0x7b] = 0x54b; + CASE_ORBIT[0x5][0x7c] = 0x54c; + CASE_ORBIT[0x5][0x7d] = 0x54d; + CASE_ORBIT[0x5][0x7e] = 0x54e; + CASE_ORBIT[0x5][0x7f] = 0x54f; + CASE_ORBIT[0x5][0x80] = 0x550; + CASE_ORBIT[0x5][0x81] = 0x551; + CASE_ORBIT[0x5][0x82] = 0x552; + CASE_ORBIT[0x5][0x83] = 0x553; + CASE_ORBIT[0x5][0x84] = 0x554; + CASE_ORBIT[0x5][0x85] = 0x555; + CASE_ORBIT[0x5][0x86] = 0x556; + CASE_ORBIT[0x10] = new int[256]; + CASE_ORBIT[0x10][0xa0] = 0x2d00; + CASE_ORBIT[0x10][0xa1] = 0x2d01; + CASE_ORBIT[0x10][0xa2] = 0x2d02; + CASE_ORBIT[0x10][0xa3] = 0x2d03; + CASE_ORBIT[0x10][0xa4] = 0x2d04; + CASE_ORBIT[0x10][0xa5] = 0x2d05; + CASE_ORBIT[0x10][0xa6] = 0x2d06; + CASE_ORBIT[0x10][0xa7] = 0x2d07; + CASE_ORBIT[0x10][0xa8] = 0x2d08; + CASE_ORBIT[0x10][0xa9] = 0x2d09; + CASE_ORBIT[0x10][0xaa] = 0x2d0a; + CASE_ORBIT[0x10][0xab] = 0x2d0b; + CASE_ORBIT[0x10][0xac] = 0x2d0c; + CASE_ORBIT[0x10][0xad] = 0x2d0d; + CASE_ORBIT[0x10][0xae] = 0x2d0e; + CASE_ORBIT[0x10][0xaf] = 0x2d0f; + CASE_ORBIT[0x10][0xb0] = 0x2d10; + CASE_ORBIT[0x10][0xb1] = 0x2d11; + CASE_ORBIT[0x10][0xb2] = 0x2d12; + CASE_ORBIT[0x10][0xb3] = 0x2d13; + CASE_ORBIT[0x10][0xb4] = 0x2d14; + CASE_ORBIT[0x10][0xb5] = 0x2d15; + CASE_ORBIT[0x10][0xb6] = 0x2d16; + CASE_ORBIT[0x10][0xb7] = 0x2d17; + CASE_ORBIT[0x10][0xb8] = 0x2d18; + CASE_ORBIT[0x10][0xb9] = 0x2d19; + CASE_ORBIT[0x10][0xba] = 0x2d1a; + CASE_ORBIT[0x10][0xbb] = 0x2d1b; + CASE_ORBIT[0x10][0xbc] = 0x2d1c; + CASE_ORBIT[0x10][0xbd] = 0x2d1d; + CASE_ORBIT[0x10][0xbe] = 0x2d1e; + CASE_ORBIT[0x10][0xbf] = 0x2d1f; + CASE_ORBIT[0x10][0xc0] = 0x2d20; + CASE_ORBIT[0x10][0xc1] = 0x2d21; + CASE_ORBIT[0x10][0xc2] = 0x2d22; + CASE_ORBIT[0x10][0xc3] = 0x2d23; + CASE_ORBIT[0x10][0xc4] = 0x2d24; + CASE_ORBIT[0x10][0xc5] = 0x2d25; + CASE_ORBIT[0x10][0xc7] = 0x2d27; + CASE_ORBIT[0x10][0xcd] = 0x2d2d; + CASE_ORBIT[0x13] = new int[256]; + CASE_ORBIT[0x13][0xa0] = 0xab70; + CASE_ORBIT[0x13][0xa1] = 0xab71; + CASE_ORBIT[0x13][0xa2] = 0xab72; + CASE_ORBIT[0x13][0xa3] = 0xab73; + CASE_ORBIT[0x13][0xa4] = 0xab74; + CASE_ORBIT[0x13][0xa5] = 0xab75; + CASE_ORBIT[0x13][0xa6] = 0xab76; + CASE_ORBIT[0x13][0xa7] = 0xab77; + CASE_ORBIT[0x13][0xa8] = 0xab78; + CASE_ORBIT[0x13][0xa9] = 0xab79; + CASE_ORBIT[0x13][0xaa] = 0xab7a; + CASE_ORBIT[0x13][0xab] = 0xab7b; + CASE_ORBIT[0x13][0xac] = 0xab7c; + CASE_ORBIT[0x13][0xad] = 0xab7d; + CASE_ORBIT[0x13][0xae] = 0xab7e; + CASE_ORBIT[0x13][0xaf] = 0xab7f; + CASE_ORBIT[0x13][0xb0] = 0xab80; + CASE_ORBIT[0x13][0xb1] = 0xab81; + CASE_ORBIT[0x13][0xb2] = 0xab82; + CASE_ORBIT[0x13][0xb3] = 0xab83; + CASE_ORBIT[0x13][0xb4] = 0xab84; + CASE_ORBIT[0x13][0xb5] = 0xab85; + CASE_ORBIT[0x13][0xb6] = 0xab86; + CASE_ORBIT[0x13][0xb7] = 0xab87; + CASE_ORBIT[0x13][0xb8] = 0xab88; + CASE_ORBIT[0x13][0xb9] = 0xab89; + CASE_ORBIT[0x13][0xba] = 0xab8a; + CASE_ORBIT[0x13][0xbb] = 0xab8b; + CASE_ORBIT[0x13][0xbc] = 0xab8c; + CASE_ORBIT[0x13][0xbd] = 0xab8d; + CASE_ORBIT[0x13][0xbe] = 0xab8e; + CASE_ORBIT[0x13][0xbf] = 0xab8f; + CASE_ORBIT[0x13][0xc0] = 0xab90; + CASE_ORBIT[0x13][0xc1] = 0xab91; + CASE_ORBIT[0x13][0xc2] = 0xab92; + CASE_ORBIT[0x13][0xc3] = 0xab93; + CASE_ORBIT[0x13][0xc4] = 0xab94; + CASE_ORBIT[0x13][0xc5] = 0xab95; + CASE_ORBIT[0x13][0xc6] = 0xab96; + CASE_ORBIT[0x13][0xc7] = 0xab97; + CASE_ORBIT[0x13][0xc8] = 0xab98; + CASE_ORBIT[0x13][0xc9] = 0xab99; + CASE_ORBIT[0x13][0xca] = 0xab9a; + CASE_ORBIT[0x13][0xcb] = 0xab9b; + CASE_ORBIT[0x13][0xcc] = 0xab9c; + CASE_ORBIT[0x13][0xcd] = 0xab9d; + CASE_ORBIT[0x13][0xce] = 0xab9e; + CASE_ORBIT[0x13][0xcf] = 0xab9f; + CASE_ORBIT[0x13][0xd0] = 0xaba0; + CASE_ORBIT[0x13][0xd1] = 0xaba1; + CASE_ORBIT[0x13][0xd2] = 0xaba2; + CASE_ORBIT[0x13][0xd3] = 0xaba3; + CASE_ORBIT[0x13][0xd4] = 0xaba4; + CASE_ORBIT[0x13][0xd5] = 0xaba5; + CASE_ORBIT[0x13][0xd6] = 0xaba6; + CASE_ORBIT[0x13][0xd7] = 0xaba7; + CASE_ORBIT[0x13][0xd8] = 0xaba8; + CASE_ORBIT[0x13][0xd9] = 0xaba9; + CASE_ORBIT[0x13][0xda] = 0xabaa; + CASE_ORBIT[0x13][0xdb] = 0xabab; + CASE_ORBIT[0x13][0xdc] = 0xabac; + CASE_ORBIT[0x13][0xdd] = 0xabad; + CASE_ORBIT[0x13][0xde] = 0xabae; + CASE_ORBIT[0x13][0xdf] = 0xabaf; + CASE_ORBIT[0x13][0xe0] = 0xabb0; + CASE_ORBIT[0x13][0xe1] = 0xabb1; + CASE_ORBIT[0x13][0xe2] = 0xabb2; + CASE_ORBIT[0x13][0xe3] = 0xabb3; + CASE_ORBIT[0x13][0xe4] = 0xabb4; + CASE_ORBIT[0x13][0xe5] = 0xabb5; + CASE_ORBIT[0x13][0xe6] = 0xabb6; + CASE_ORBIT[0x13][0xe7] = 0xabb7; + CASE_ORBIT[0x13][0xe8] = 0xabb8; + CASE_ORBIT[0x13][0xe9] = 0xabb9; + CASE_ORBIT[0x13][0xea] = 0xabba; + CASE_ORBIT[0x13][0xeb] = 0xabbb; + CASE_ORBIT[0x13][0xec] = 0xabbc; + CASE_ORBIT[0x13][0xed] = 0xabbd; + CASE_ORBIT[0x13][0xee] = 0xabbe; + CASE_ORBIT[0x13][0xef] = 0xabbf; + CASE_ORBIT[0x13][0xf0] = 0x13f8; + CASE_ORBIT[0x13][0xf1] = 0x13f9; + CASE_ORBIT[0x13][0xf2] = 0x13fa; + CASE_ORBIT[0x13][0xf3] = 0x13fb; + CASE_ORBIT[0x13][0xf4] = 0x13fc; + CASE_ORBIT[0x13][0xf5] = 0x13fd; + CASE_ORBIT[0x13][0xf8] = 0x13f0; + CASE_ORBIT[0x13][0xf9] = 0x13f1; + CASE_ORBIT[0x13][0xfa] = 0x13f2; + CASE_ORBIT[0x13][0xfb] = 0x13f3; + CASE_ORBIT[0x13][0xfc] = 0x13f4; + CASE_ORBIT[0x13][0xfd] = 0x13f5; + CASE_ORBIT[0x1c] = new int[256]; + CASE_ORBIT[0x1c][0x80] = 0x412; + CASE_ORBIT[0x1c][0x81] = 0x414; + CASE_ORBIT[0x1c][0x82] = 0x41e; + CASE_ORBIT[0x1c][0x83] = 0x421; + CASE_ORBIT[0x1c][0x84] = 0x1c85; + CASE_ORBIT[0x1c][0x85] = 0x422; + CASE_ORBIT[0x1c][0x86] = 0x42a; + CASE_ORBIT[0x1c][0x87] = 0x462; + CASE_ORBIT[0x1c][0x88] = 0xa64a; + CASE_ORBIT[0x1d] = new int[256]; + CASE_ORBIT[0x1d][0x79] = 0xa77d; + CASE_ORBIT[0x1d][0x7d] = 0x2c63; + CASE_ORBIT[0x1e] = new int[256]; + CASE_ORBIT[0x1e][0x0] = 0x1e01; + CASE_ORBIT[0x1e][0x1] = 0x1e00; + CASE_ORBIT[0x1e][0x2] = 0x1e03; + CASE_ORBIT[0x1e][0x3] = 0x1e02; + CASE_ORBIT[0x1e][0x4] = 0x1e05; + CASE_ORBIT[0x1e][0x5] = 0x1e04; + CASE_ORBIT[0x1e][0x6] = 0x1e07; + CASE_ORBIT[0x1e][0x7] = 0x1e06; + CASE_ORBIT[0x1e][0x8] = 0x1e09; + CASE_ORBIT[0x1e][0x9] = 0x1e08; + CASE_ORBIT[0x1e][0xa] = 0x1e0b; + CASE_ORBIT[0x1e][0xb] = 0x1e0a; + CASE_ORBIT[0x1e][0xc] = 0x1e0d; + CASE_ORBIT[0x1e][0xd] = 0x1e0c; + CASE_ORBIT[0x1e][0xe] = 0x1e0f; + CASE_ORBIT[0x1e][0xf] = 0x1e0e; + CASE_ORBIT[0x1e][0x10] = 0x1e11; + CASE_ORBIT[0x1e][0x11] = 0x1e10; + CASE_ORBIT[0x1e][0x12] = 0x1e13; + CASE_ORBIT[0x1e][0x13] = 0x1e12; + CASE_ORBIT[0x1e][0x14] = 0x1e15; + CASE_ORBIT[0x1e][0x15] = 0x1e14; + CASE_ORBIT[0x1e][0x16] = 0x1e17; + CASE_ORBIT[0x1e][0x17] = 0x1e16; + CASE_ORBIT[0x1e][0x18] = 0x1e19; + CASE_ORBIT[0x1e][0x19] = 0x1e18; + CASE_ORBIT[0x1e][0x1a] = 0x1e1b; + CASE_ORBIT[0x1e][0x1b] = 0x1e1a; + CASE_ORBIT[0x1e][0x1c] = 0x1e1d; + CASE_ORBIT[0x1e][0x1d] = 0x1e1c; + CASE_ORBIT[0x1e][0x1e] = 0x1e1f; + CASE_ORBIT[0x1e][0x1f] = 0x1e1e; + CASE_ORBIT[0x1e][0x20] = 0x1e21; + CASE_ORBIT[0x1e][0x21] = 0x1e20; + CASE_ORBIT[0x1e][0x22] = 0x1e23; + CASE_ORBIT[0x1e][0x23] = 0x1e22; + CASE_ORBIT[0x1e][0x24] = 0x1e25; + CASE_ORBIT[0x1e][0x25] = 0x1e24; + CASE_ORBIT[0x1e][0x26] = 0x1e27; + CASE_ORBIT[0x1e][0x27] = 0x1e26; + CASE_ORBIT[0x1e][0x28] = 0x1e29; + CASE_ORBIT[0x1e][0x29] = 0x1e28; + CASE_ORBIT[0x1e][0x2a] = 0x1e2b; + CASE_ORBIT[0x1e][0x2b] = 0x1e2a; + CASE_ORBIT[0x1e][0x2c] = 0x1e2d; + CASE_ORBIT[0x1e][0x2d] = 0x1e2c; + CASE_ORBIT[0x1e][0x2e] = 0x1e2f; + CASE_ORBIT[0x1e][0x2f] = 0x1e2e; + CASE_ORBIT[0x1e][0x30] = 0x1e31; + CASE_ORBIT[0x1e][0x31] = 0x1e30; + CASE_ORBIT[0x1e][0x32] = 0x1e33; + CASE_ORBIT[0x1e][0x33] = 0x1e32; + CASE_ORBIT[0x1e][0x34] = 0x1e35; + CASE_ORBIT[0x1e][0x35] = 0x1e34; + CASE_ORBIT[0x1e][0x36] = 0x1e37; + CASE_ORBIT[0x1e][0x37] = 0x1e36; + CASE_ORBIT[0x1e][0x38] = 0x1e39; + CASE_ORBIT[0x1e][0x39] = 0x1e38; + CASE_ORBIT[0x1e][0x3a] = 0x1e3b; + CASE_ORBIT[0x1e][0x3b] = 0x1e3a; + CASE_ORBIT[0x1e][0x3c] = 0x1e3d; + CASE_ORBIT[0x1e][0x3d] = 0x1e3c; + CASE_ORBIT[0x1e][0x3e] = 0x1e3f; + CASE_ORBIT[0x1e][0x3f] = 0x1e3e; + CASE_ORBIT[0x1e][0x40] = 0x1e41; + CASE_ORBIT[0x1e][0x41] = 0x1e40; + CASE_ORBIT[0x1e][0x42] = 0x1e43; + CASE_ORBIT[0x1e][0x43] = 0x1e42; + CASE_ORBIT[0x1e][0x44] = 0x1e45; + CASE_ORBIT[0x1e][0x45] = 0x1e44; + CASE_ORBIT[0x1e][0x46] = 0x1e47; + CASE_ORBIT[0x1e][0x47] = 0x1e46; + CASE_ORBIT[0x1e][0x48] = 0x1e49; + CASE_ORBIT[0x1e][0x49] = 0x1e48; + CASE_ORBIT[0x1e][0x4a] = 0x1e4b; + CASE_ORBIT[0x1e][0x4b] = 0x1e4a; + CASE_ORBIT[0x1e][0x4c] = 0x1e4d; + CASE_ORBIT[0x1e][0x4d] = 0x1e4c; + CASE_ORBIT[0x1e][0x4e] = 0x1e4f; + CASE_ORBIT[0x1e][0x4f] = 0x1e4e; + CASE_ORBIT[0x1e][0x50] = 0x1e51; + CASE_ORBIT[0x1e][0x51] = 0x1e50; + CASE_ORBIT[0x1e][0x52] = 0x1e53; + CASE_ORBIT[0x1e][0x53] = 0x1e52; + CASE_ORBIT[0x1e][0x54] = 0x1e55; + CASE_ORBIT[0x1e][0x55] = 0x1e54; + CASE_ORBIT[0x1e][0x56] = 0x1e57; + CASE_ORBIT[0x1e][0x57] = 0x1e56; + CASE_ORBIT[0x1e][0x58] = 0x1e59; + CASE_ORBIT[0x1e][0x59] = 0x1e58; + CASE_ORBIT[0x1e][0x5a] = 0x1e5b; + CASE_ORBIT[0x1e][0x5b] = 0x1e5a; + CASE_ORBIT[0x1e][0x5c] = 0x1e5d; + CASE_ORBIT[0x1e][0x5d] = 0x1e5c; + CASE_ORBIT[0x1e][0x5e] = 0x1e5f; + CASE_ORBIT[0x1e][0x5f] = 0x1e5e; + CASE_ORBIT[0x1e][0x60] = 0x1e61; + CASE_ORBIT[0x1e][0x61] = 0x1e9b; + CASE_ORBIT[0x1e][0x62] = 0x1e63; + CASE_ORBIT[0x1e][0x63] = 0x1e62; + CASE_ORBIT[0x1e][0x64] = 0x1e65; + CASE_ORBIT[0x1e][0x65] = 0x1e64; + CASE_ORBIT[0x1e][0x66] = 0x1e67; + CASE_ORBIT[0x1e][0x67] = 0x1e66; + CASE_ORBIT[0x1e][0x68] = 0x1e69; + CASE_ORBIT[0x1e][0x69] = 0x1e68; + CASE_ORBIT[0x1e][0x6a] = 0x1e6b; + CASE_ORBIT[0x1e][0x6b] = 0x1e6a; + CASE_ORBIT[0x1e][0x6c] = 0x1e6d; + CASE_ORBIT[0x1e][0x6d] = 0x1e6c; + CASE_ORBIT[0x1e][0x6e] = 0x1e6f; + CASE_ORBIT[0x1e][0x6f] = 0x1e6e; + CASE_ORBIT[0x1e][0x70] = 0x1e71; + CASE_ORBIT[0x1e][0x71] = 0x1e70; + CASE_ORBIT[0x1e][0x72] = 0x1e73; + CASE_ORBIT[0x1e][0x73] = 0x1e72; + CASE_ORBIT[0x1e][0x74] = 0x1e75; + CASE_ORBIT[0x1e][0x75] = 0x1e74; + CASE_ORBIT[0x1e][0x76] = 0x1e77; + CASE_ORBIT[0x1e][0x77] = 0x1e76; + CASE_ORBIT[0x1e][0x78] = 0x1e79; + CASE_ORBIT[0x1e][0x79] = 0x1e78; + CASE_ORBIT[0x1e][0x7a] = 0x1e7b; + CASE_ORBIT[0x1e][0x7b] = 0x1e7a; + CASE_ORBIT[0x1e][0x7c] = 0x1e7d; + CASE_ORBIT[0x1e][0x7d] = 0x1e7c; + CASE_ORBIT[0x1e][0x7e] = 0x1e7f; + CASE_ORBIT[0x1e][0x7f] = 0x1e7e; + CASE_ORBIT[0x1e][0x80] = 0x1e81; + CASE_ORBIT[0x1e][0x81] = 0x1e80; + CASE_ORBIT[0x1e][0x82] = 0x1e83; + CASE_ORBIT[0x1e][0x83] = 0x1e82; + CASE_ORBIT[0x1e][0x84] = 0x1e85; + CASE_ORBIT[0x1e][0x85] = 0x1e84; + CASE_ORBIT[0x1e][0x86] = 0x1e87; + CASE_ORBIT[0x1e][0x87] = 0x1e86; + CASE_ORBIT[0x1e][0x88] = 0x1e89; + CASE_ORBIT[0x1e][0x89] = 0x1e88; + CASE_ORBIT[0x1e][0x8a] = 0x1e8b; + CASE_ORBIT[0x1e][0x8b] = 0x1e8a; + CASE_ORBIT[0x1e][0x8c] = 0x1e8d; + CASE_ORBIT[0x1e][0x8d] = 0x1e8c; + CASE_ORBIT[0x1e][0x8e] = 0x1e8f; + CASE_ORBIT[0x1e][0x8f] = 0x1e8e; + CASE_ORBIT[0x1e][0x90] = 0x1e91; + CASE_ORBIT[0x1e][0x91] = 0x1e90; + CASE_ORBIT[0x1e][0x92] = 0x1e93; + CASE_ORBIT[0x1e][0x93] = 0x1e92; + CASE_ORBIT[0x1e][0x94] = 0x1e95; + CASE_ORBIT[0x1e][0x95] = 0x1e94; + CASE_ORBIT[0x1e][0x9b] = 0x1e60; + CASE_ORBIT[0x1e][0x9e] = 0xdf; + CASE_ORBIT[0x1e][0xa0] = 0x1ea1; + CASE_ORBIT[0x1e][0xa1] = 0x1ea0; + CASE_ORBIT[0x1e][0xa2] = 0x1ea3; + CASE_ORBIT[0x1e][0xa3] = 0x1ea2; + CASE_ORBIT[0x1e][0xa4] = 0x1ea5; + CASE_ORBIT[0x1e][0xa5] = 0x1ea4; + CASE_ORBIT[0x1e][0xa6] = 0x1ea7; + CASE_ORBIT[0x1e][0xa7] = 0x1ea6; + CASE_ORBIT[0x1e][0xa8] = 0x1ea9; + CASE_ORBIT[0x1e][0xa9] = 0x1ea8; + CASE_ORBIT[0x1e][0xaa] = 0x1eab; + CASE_ORBIT[0x1e][0xab] = 0x1eaa; + CASE_ORBIT[0x1e][0xac] = 0x1ead; + CASE_ORBIT[0x1e][0xad] = 0x1eac; + CASE_ORBIT[0x1e][0xae] = 0x1eaf; + CASE_ORBIT[0x1e][0xaf] = 0x1eae; + CASE_ORBIT[0x1e][0xb0] = 0x1eb1; + CASE_ORBIT[0x1e][0xb1] = 0x1eb0; + CASE_ORBIT[0x1e][0xb2] = 0x1eb3; + CASE_ORBIT[0x1e][0xb3] = 0x1eb2; + CASE_ORBIT[0x1e][0xb4] = 0x1eb5; + CASE_ORBIT[0x1e][0xb5] = 0x1eb4; + CASE_ORBIT[0x1e][0xb6] = 0x1eb7; + CASE_ORBIT[0x1e][0xb7] = 0x1eb6; + CASE_ORBIT[0x1e][0xb8] = 0x1eb9; + CASE_ORBIT[0x1e][0xb9] = 0x1eb8; + CASE_ORBIT[0x1e][0xba] = 0x1ebb; + CASE_ORBIT[0x1e][0xbb] = 0x1eba; + CASE_ORBIT[0x1e][0xbc] = 0x1ebd; + CASE_ORBIT[0x1e][0xbd] = 0x1ebc; + CASE_ORBIT[0x1e][0xbe] = 0x1ebf; + CASE_ORBIT[0x1e][0xbf] = 0x1ebe; + CASE_ORBIT[0x1e][0xc0] = 0x1ec1; + CASE_ORBIT[0x1e][0xc1] = 0x1ec0; + CASE_ORBIT[0x1e][0xc2] = 0x1ec3; + CASE_ORBIT[0x1e][0xc3] = 0x1ec2; + CASE_ORBIT[0x1e][0xc4] = 0x1ec5; + CASE_ORBIT[0x1e][0xc5] = 0x1ec4; + CASE_ORBIT[0x1e][0xc6] = 0x1ec7; + CASE_ORBIT[0x1e][0xc7] = 0x1ec6; + CASE_ORBIT[0x1e][0xc8] = 0x1ec9; + CASE_ORBIT[0x1e][0xc9] = 0x1ec8; + CASE_ORBIT[0x1e][0xca] = 0x1ecb; + CASE_ORBIT[0x1e][0xcb] = 0x1eca; + CASE_ORBIT[0x1e][0xcc] = 0x1ecd; + CASE_ORBIT[0x1e][0xcd] = 0x1ecc; + CASE_ORBIT[0x1e][0xce] = 0x1ecf; + CASE_ORBIT[0x1e][0xcf] = 0x1ece; + CASE_ORBIT[0x1e][0xd0] = 0x1ed1; + CASE_ORBIT[0x1e][0xd1] = 0x1ed0; + CASE_ORBIT[0x1e][0xd2] = 0x1ed3; + CASE_ORBIT[0x1e][0xd3] = 0x1ed2; + CASE_ORBIT[0x1e][0xd4] = 0x1ed5; + CASE_ORBIT[0x1e][0xd5] = 0x1ed4; + CASE_ORBIT[0x1e][0xd6] = 0x1ed7; + CASE_ORBIT[0x1e][0xd7] = 0x1ed6; + CASE_ORBIT[0x1e][0xd8] = 0x1ed9; + CASE_ORBIT[0x1e][0xd9] = 0x1ed8; + CASE_ORBIT[0x1e][0xda] = 0x1edb; + CASE_ORBIT[0x1e][0xdb] = 0x1eda; + CASE_ORBIT[0x1e][0xdc] = 0x1edd; + CASE_ORBIT[0x1e][0xdd] = 0x1edc; + CASE_ORBIT[0x1e][0xde] = 0x1edf; + CASE_ORBIT[0x1e][0xdf] = 0x1ede; + CASE_ORBIT[0x1e][0xe0] = 0x1ee1; + CASE_ORBIT[0x1e][0xe1] = 0x1ee0; + CASE_ORBIT[0x1e][0xe2] = 0x1ee3; + CASE_ORBIT[0x1e][0xe3] = 0x1ee2; + CASE_ORBIT[0x1e][0xe4] = 0x1ee5; + CASE_ORBIT[0x1e][0xe5] = 0x1ee4; + CASE_ORBIT[0x1e][0xe6] = 0x1ee7; + CASE_ORBIT[0x1e][0xe7] = 0x1ee6; + CASE_ORBIT[0x1e][0xe8] = 0x1ee9; + CASE_ORBIT[0x1e][0xe9] = 0x1ee8; + CASE_ORBIT[0x1e][0xea] = 0x1eeb; + CASE_ORBIT[0x1e][0xeb] = 0x1eea; + CASE_ORBIT[0x1e][0xec] = 0x1eed; + CASE_ORBIT[0x1e][0xed] = 0x1eec; + CASE_ORBIT[0x1e][0xee] = 0x1eef; + CASE_ORBIT[0x1e][0xef] = 0x1eee; + CASE_ORBIT[0x1e][0xf0] = 0x1ef1; + CASE_ORBIT[0x1e][0xf1] = 0x1ef0; + CASE_ORBIT[0x1e][0xf2] = 0x1ef3; + CASE_ORBIT[0x1e][0xf3] = 0x1ef2; + CASE_ORBIT[0x1e][0xf4] = 0x1ef5; + CASE_ORBIT[0x1e][0xf5] = 0x1ef4; + CASE_ORBIT[0x1e][0xf6] = 0x1ef7; + CASE_ORBIT[0x1e][0xf7] = 0x1ef6; + CASE_ORBIT[0x1e][0xf8] = 0x1ef9; + CASE_ORBIT[0x1e][0xf9] = 0x1ef8; + CASE_ORBIT[0x1e][0xfa] = 0x1efb; + CASE_ORBIT[0x1e][0xfb] = 0x1efa; + CASE_ORBIT[0x1e][0xfc] = 0x1efd; + CASE_ORBIT[0x1e][0xfd] = 0x1efc; + CASE_ORBIT[0x1e][0xfe] = 0x1eff; + CASE_ORBIT[0x1e][0xff] = 0x1efe; + CASE_ORBIT[0x1f] = new int[256]; + CASE_ORBIT[0x1f][0x0] = 0x1f08; + CASE_ORBIT[0x1f][0x1] = 0x1f09; + CASE_ORBIT[0x1f][0x2] = 0x1f0a; + CASE_ORBIT[0x1f][0x3] = 0x1f0b; + CASE_ORBIT[0x1f][0x4] = 0x1f0c; + CASE_ORBIT[0x1f][0x5] = 0x1f0d; + CASE_ORBIT[0x1f][0x6] = 0x1f0e; + CASE_ORBIT[0x1f][0x7] = 0x1f0f; + CASE_ORBIT[0x1f][0x8] = 0x1f00; + CASE_ORBIT[0x1f][0x9] = 0x1f01; + CASE_ORBIT[0x1f][0xa] = 0x1f02; + CASE_ORBIT[0x1f][0xb] = 0x1f03; + CASE_ORBIT[0x1f][0xc] = 0x1f04; + CASE_ORBIT[0x1f][0xd] = 0x1f05; + CASE_ORBIT[0x1f][0xe] = 0x1f06; + CASE_ORBIT[0x1f][0xf] = 0x1f07; + CASE_ORBIT[0x1f][0x10] = 0x1f18; + CASE_ORBIT[0x1f][0x11] = 0x1f19; + CASE_ORBIT[0x1f][0x12] = 0x1f1a; + CASE_ORBIT[0x1f][0x13] = 0x1f1b; + CASE_ORBIT[0x1f][0x14] = 0x1f1c; + CASE_ORBIT[0x1f][0x15] = 0x1f1d; + CASE_ORBIT[0x1f][0x18] = 0x1f10; + CASE_ORBIT[0x1f][0x19] = 0x1f11; + CASE_ORBIT[0x1f][0x1a] = 0x1f12; + CASE_ORBIT[0x1f][0x1b] = 0x1f13; + CASE_ORBIT[0x1f][0x1c] = 0x1f14; + CASE_ORBIT[0x1f][0x1d] = 0x1f15; + CASE_ORBIT[0x1f][0x20] = 0x1f28; + CASE_ORBIT[0x1f][0x21] = 0x1f29; + CASE_ORBIT[0x1f][0x22] = 0x1f2a; + CASE_ORBIT[0x1f][0x23] = 0x1f2b; + CASE_ORBIT[0x1f][0x24] = 0x1f2c; + CASE_ORBIT[0x1f][0x25] = 0x1f2d; + CASE_ORBIT[0x1f][0x26] = 0x1f2e; + CASE_ORBIT[0x1f][0x27] = 0x1f2f; + CASE_ORBIT[0x1f][0x28] = 0x1f20; + CASE_ORBIT[0x1f][0x29] = 0x1f21; + CASE_ORBIT[0x1f][0x2a] = 0x1f22; + CASE_ORBIT[0x1f][0x2b] = 0x1f23; + CASE_ORBIT[0x1f][0x2c] = 0x1f24; + CASE_ORBIT[0x1f][0x2d] = 0x1f25; + CASE_ORBIT[0x1f][0x2e] = 0x1f26; + CASE_ORBIT[0x1f][0x2f] = 0x1f27; + CASE_ORBIT[0x1f][0x30] = 0x1f38; + CASE_ORBIT[0x1f][0x31] = 0x1f39; + CASE_ORBIT[0x1f][0x32] = 0x1f3a; + CASE_ORBIT[0x1f][0x33] = 0x1f3b; + CASE_ORBIT[0x1f][0x34] = 0x1f3c; + CASE_ORBIT[0x1f][0x35] = 0x1f3d; + CASE_ORBIT[0x1f][0x36] = 0x1f3e; + CASE_ORBIT[0x1f][0x37] = 0x1f3f; + CASE_ORBIT[0x1f][0x38] = 0x1f30; + CASE_ORBIT[0x1f][0x39] = 0x1f31; + CASE_ORBIT[0x1f][0x3a] = 0x1f32; + CASE_ORBIT[0x1f][0x3b] = 0x1f33; + CASE_ORBIT[0x1f][0x3c] = 0x1f34; + CASE_ORBIT[0x1f][0x3d] = 0x1f35; + CASE_ORBIT[0x1f][0x3e] = 0x1f36; + CASE_ORBIT[0x1f][0x3f] = 0x1f37; + CASE_ORBIT[0x1f][0x40] = 0x1f48; + CASE_ORBIT[0x1f][0x41] = 0x1f49; + CASE_ORBIT[0x1f][0x42] = 0x1f4a; + CASE_ORBIT[0x1f][0x43] = 0x1f4b; + CASE_ORBIT[0x1f][0x44] = 0x1f4c; + CASE_ORBIT[0x1f][0x45] = 0x1f4d; + CASE_ORBIT[0x1f][0x48] = 0x1f40; + CASE_ORBIT[0x1f][0x49] = 0x1f41; + CASE_ORBIT[0x1f][0x4a] = 0x1f42; + CASE_ORBIT[0x1f][0x4b] = 0x1f43; + CASE_ORBIT[0x1f][0x4c] = 0x1f44; + CASE_ORBIT[0x1f][0x4d] = 0x1f45; + CASE_ORBIT[0x1f][0x51] = 0x1f59; + CASE_ORBIT[0x1f][0x53] = 0x1f5b; + CASE_ORBIT[0x1f][0x55] = 0x1f5d; + CASE_ORBIT[0x1f][0x57] = 0x1f5f; + CASE_ORBIT[0x1f][0x59] = 0x1f51; + CASE_ORBIT[0x1f][0x5b] = 0x1f53; + CASE_ORBIT[0x1f][0x5d] = 0x1f55; + CASE_ORBIT[0x1f][0x5f] = 0x1f57; + CASE_ORBIT[0x1f][0x60] = 0x1f68; + CASE_ORBIT[0x1f][0x61] = 0x1f69; + CASE_ORBIT[0x1f][0x62] = 0x1f6a; + CASE_ORBIT[0x1f][0x63] = 0x1f6b; + CASE_ORBIT[0x1f][0x64] = 0x1f6c; + CASE_ORBIT[0x1f][0x65] = 0x1f6d; + CASE_ORBIT[0x1f][0x66] = 0x1f6e; + CASE_ORBIT[0x1f][0x67] = 0x1f6f; + CASE_ORBIT[0x1f][0x68] = 0x1f60; + CASE_ORBIT[0x1f][0x69] = 0x1f61; + CASE_ORBIT[0x1f][0x6a] = 0x1f62; + CASE_ORBIT[0x1f][0x6b] = 0x1f63; + CASE_ORBIT[0x1f][0x6c] = 0x1f64; + CASE_ORBIT[0x1f][0x6d] = 0x1f65; + CASE_ORBIT[0x1f][0x6e] = 0x1f66; + CASE_ORBIT[0x1f][0x6f] = 0x1f67; + CASE_ORBIT[0x1f][0x70] = 0x1fba; + CASE_ORBIT[0x1f][0x71] = 0x1fbb; + CASE_ORBIT[0x1f][0x72] = 0x1fc8; + CASE_ORBIT[0x1f][0x73] = 0x1fc9; + CASE_ORBIT[0x1f][0x74] = 0x1fca; + CASE_ORBIT[0x1f][0x75] = 0x1fcb; + CASE_ORBIT[0x1f][0x76] = 0x1fda; + CASE_ORBIT[0x1f][0x77] = 0x1fdb; + CASE_ORBIT[0x1f][0x78] = 0x1ff8; + CASE_ORBIT[0x1f][0x79] = 0x1ff9; + CASE_ORBIT[0x1f][0x7a] = 0x1fea; + CASE_ORBIT[0x1f][0x7b] = 0x1feb; + CASE_ORBIT[0x1f][0x7c] = 0x1ffa; + CASE_ORBIT[0x1f][0x7d] = 0x1ffb; + CASE_ORBIT[0x1f][0x80] = 0x1f88; + CASE_ORBIT[0x1f][0x81] = 0x1f89; + CASE_ORBIT[0x1f][0x82] = 0x1f8a; + CASE_ORBIT[0x1f][0x83] = 0x1f8b; + CASE_ORBIT[0x1f][0x84] = 0x1f8c; + CASE_ORBIT[0x1f][0x85] = 0x1f8d; + CASE_ORBIT[0x1f][0x86] = 0x1f8e; + CASE_ORBIT[0x1f][0x87] = 0x1f8f; + CASE_ORBIT[0x1f][0x88] = 0x1f80; + CASE_ORBIT[0x1f][0x89] = 0x1f81; + CASE_ORBIT[0x1f][0x8a] = 0x1f82; + CASE_ORBIT[0x1f][0x8b] = 0x1f83; + CASE_ORBIT[0x1f][0x8c] = 0x1f84; + CASE_ORBIT[0x1f][0x8d] = 0x1f85; + CASE_ORBIT[0x1f][0x8e] = 0x1f86; + CASE_ORBIT[0x1f][0x8f] = 0x1f87; + CASE_ORBIT[0x1f][0x90] = 0x1f98; + CASE_ORBIT[0x1f][0x91] = 0x1f99; + CASE_ORBIT[0x1f][0x92] = 0x1f9a; + CASE_ORBIT[0x1f][0x93] = 0x1f9b; + CASE_ORBIT[0x1f][0x94] = 0x1f9c; + CASE_ORBIT[0x1f][0x95] = 0x1f9d; + CASE_ORBIT[0x1f][0x96] = 0x1f9e; + CASE_ORBIT[0x1f][0x97] = 0x1f9f; + CASE_ORBIT[0x1f][0x98] = 0x1f90; + CASE_ORBIT[0x1f][0x99] = 0x1f91; + CASE_ORBIT[0x1f][0x9a] = 0x1f92; + CASE_ORBIT[0x1f][0x9b] = 0x1f93; + CASE_ORBIT[0x1f][0x9c] = 0x1f94; + CASE_ORBIT[0x1f][0x9d] = 0x1f95; + CASE_ORBIT[0x1f][0x9e] = 0x1f96; + CASE_ORBIT[0x1f][0x9f] = 0x1f97; + CASE_ORBIT[0x1f][0xa0] = 0x1fa8; + CASE_ORBIT[0x1f][0xa1] = 0x1fa9; + CASE_ORBIT[0x1f][0xa2] = 0x1faa; + CASE_ORBIT[0x1f][0xa3] = 0x1fab; + CASE_ORBIT[0x1f][0xa4] = 0x1fac; + CASE_ORBIT[0x1f][0xa5] = 0x1fad; + CASE_ORBIT[0x1f][0xa6] = 0x1fae; + CASE_ORBIT[0x1f][0xa7] = 0x1faf; + CASE_ORBIT[0x1f][0xa8] = 0x1fa0; + CASE_ORBIT[0x1f][0xa9] = 0x1fa1; + CASE_ORBIT[0x1f][0xaa] = 0x1fa2; + CASE_ORBIT[0x1f][0xab] = 0x1fa3; + CASE_ORBIT[0x1f][0xac] = 0x1fa4; + CASE_ORBIT[0x1f][0xad] = 0x1fa5; + CASE_ORBIT[0x1f][0xae] = 0x1fa6; + CASE_ORBIT[0x1f][0xaf] = 0x1fa7; + CASE_ORBIT[0x1f][0xb0] = 0x1fb8; + CASE_ORBIT[0x1f][0xb1] = 0x1fb9; + CASE_ORBIT[0x1f][0xb3] = 0x1fbc; + CASE_ORBIT[0x1f][0xb8] = 0x1fb0; + CASE_ORBIT[0x1f][0xb9] = 0x1fb1; + CASE_ORBIT[0x1f][0xba] = 0x1f70; + CASE_ORBIT[0x1f][0xbb] = 0x1f71; + CASE_ORBIT[0x1f][0xbc] = 0x1fb3; + CASE_ORBIT[0x1f][0xbe] = 0x345; + CASE_ORBIT[0x1f][0xc3] = 0x1fcc; + CASE_ORBIT[0x1f][0xc8] = 0x1f72; + CASE_ORBIT[0x1f][0xc9] = 0x1f73; + CASE_ORBIT[0x1f][0xca] = 0x1f74; + CASE_ORBIT[0x1f][0xcb] = 0x1f75; + CASE_ORBIT[0x1f][0xcc] = 0x1fc3; + CASE_ORBIT[0x1f][0xd0] = 0x1fd8; + CASE_ORBIT[0x1f][0xd1] = 0x1fd9; + CASE_ORBIT[0x1f][0xd8] = 0x1fd0; + CASE_ORBIT[0x1f][0xd9] = 0x1fd1; + CASE_ORBIT[0x1f][0xda] = 0x1f76; + CASE_ORBIT[0x1f][0xdb] = 0x1f77; + CASE_ORBIT[0x1f][0xe0] = 0x1fe8; + CASE_ORBIT[0x1f][0xe1] = 0x1fe9; + CASE_ORBIT[0x1f][0xe5] = 0x1fec; + CASE_ORBIT[0x1f][0xe8] = 0x1fe0; + CASE_ORBIT[0x1f][0xe9] = 0x1fe1; + CASE_ORBIT[0x1f][0xea] = 0x1f7a; + CASE_ORBIT[0x1f][0xeb] = 0x1f7b; + CASE_ORBIT[0x1f][0xec] = 0x1fe5; + CASE_ORBIT[0x1f][0xf3] = 0x1ffc; + CASE_ORBIT[0x1f][0xf8] = 0x1f78; + CASE_ORBIT[0x1f][0xf9] = 0x1f79; + CASE_ORBIT[0x1f][0xfa] = 0x1f7c; + CASE_ORBIT[0x1f][0xfb] = 0x1f7d; + CASE_ORBIT[0x1f][0xfc] = 0x1ff3; + CASE_ORBIT[0x21] = new int[256]; + CASE_ORBIT[0x21][0x26] = 0x3a9; + CASE_ORBIT[0x21][0x2a] = 0x4b; + CASE_ORBIT[0x21][0x2b] = 0xc5; + CASE_ORBIT[0x21][0x32] = 0x214e; + CASE_ORBIT[0x21][0x4e] = 0x2132; + CASE_ORBIT[0x21][0x60] = 0x2170; + CASE_ORBIT[0x21][0x61] = 0x2171; + CASE_ORBIT[0x21][0x62] = 0x2172; + CASE_ORBIT[0x21][0x63] = 0x2173; + CASE_ORBIT[0x21][0x64] = 0x2174; + CASE_ORBIT[0x21][0x65] = 0x2175; + CASE_ORBIT[0x21][0x66] = 0x2176; + CASE_ORBIT[0x21][0x67] = 0x2177; + CASE_ORBIT[0x21][0x68] = 0x2178; + CASE_ORBIT[0x21][0x69] = 0x2179; + CASE_ORBIT[0x21][0x6a] = 0x217a; + CASE_ORBIT[0x21][0x6b] = 0x217b; + CASE_ORBIT[0x21][0x6c] = 0x217c; + CASE_ORBIT[0x21][0x6d] = 0x217d; + CASE_ORBIT[0x21][0x6e] = 0x217e; + CASE_ORBIT[0x21][0x6f] = 0x217f; + CASE_ORBIT[0x21][0x70] = 0x2160; + CASE_ORBIT[0x21][0x71] = 0x2161; + CASE_ORBIT[0x21][0x72] = 0x2162; + CASE_ORBIT[0x21][0x73] = 0x2163; + CASE_ORBIT[0x21][0x74] = 0x2164; + CASE_ORBIT[0x21][0x75] = 0x2165; + CASE_ORBIT[0x21][0x76] = 0x2166; + CASE_ORBIT[0x21][0x77] = 0x2167; + CASE_ORBIT[0x21][0x78] = 0x2168; + CASE_ORBIT[0x21][0x79] = 0x2169; + CASE_ORBIT[0x21][0x7a] = 0x216a; + CASE_ORBIT[0x21][0x7b] = 0x216b; + CASE_ORBIT[0x21][0x7c] = 0x216c; + CASE_ORBIT[0x21][0x7d] = 0x216d; + CASE_ORBIT[0x21][0x7e] = 0x216e; + CASE_ORBIT[0x21][0x7f] = 0x216f; + CASE_ORBIT[0x21][0x83] = 0x2184; + CASE_ORBIT[0x21][0x84] = 0x2183; + CASE_ORBIT[0x24] = new int[256]; + CASE_ORBIT[0x24][0xb6] = 0x24d0; + CASE_ORBIT[0x24][0xb7] = 0x24d1; + CASE_ORBIT[0x24][0xb8] = 0x24d2; + CASE_ORBIT[0x24][0xb9] = 0x24d3; + CASE_ORBIT[0x24][0xba] = 0x24d4; + CASE_ORBIT[0x24][0xbb] = 0x24d5; + CASE_ORBIT[0x24][0xbc] = 0x24d6; + CASE_ORBIT[0x24][0xbd] = 0x24d7; + CASE_ORBIT[0x24][0xbe] = 0x24d8; + CASE_ORBIT[0x24][0xbf] = 0x24d9; + CASE_ORBIT[0x24][0xc0] = 0x24da; + CASE_ORBIT[0x24][0xc1] = 0x24db; + CASE_ORBIT[0x24][0xc2] = 0x24dc; + CASE_ORBIT[0x24][0xc3] = 0x24dd; + CASE_ORBIT[0x24][0xc4] = 0x24de; + CASE_ORBIT[0x24][0xc5] = 0x24df; + CASE_ORBIT[0x24][0xc6] = 0x24e0; + CASE_ORBIT[0x24][0xc7] = 0x24e1; + CASE_ORBIT[0x24][0xc8] = 0x24e2; + CASE_ORBIT[0x24][0xc9] = 0x24e3; + CASE_ORBIT[0x24][0xca] = 0x24e4; + CASE_ORBIT[0x24][0xcb] = 0x24e5; + CASE_ORBIT[0x24][0xcc] = 0x24e6; + CASE_ORBIT[0x24][0xcd] = 0x24e7; + CASE_ORBIT[0x24][0xce] = 0x24e8; + CASE_ORBIT[0x24][0xcf] = 0x24e9; + CASE_ORBIT[0x24][0xd0] = 0x24b6; + CASE_ORBIT[0x24][0xd1] = 0x24b7; + CASE_ORBIT[0x24][0xd2] = 0x24b8; + CASE_ORBIT[0x24][0xd3] = 0x24b9; + CASE_ORBIT[0x24][0xd4] = 0x24ba; + CASE_ORBIT[0x24][0xd5] = 0x24bb; + CASE_ORBIT[0x24][0xd6] = 0x24bc; + CASE_ORBIT[0x24][0xd7] = 0x24bd; + CASE_ORBIT[0x24][0xd8] = 0x24be; + CASE_ORBIT[0x24][0xd9] = 0x24bf; + CASE_ORBIT[0x24][0xda] = 0x24c0; + CASE_ORBIT[0x24][0xdb] = 0x24c1; + CASE_ORBIT[0x24][0xdc] = 0x24c2; + CASE_ORBIT[0x24][0xdd] = 0x24c3; + CASE_ORBIT[0x24][0xde] = 0x24c4; + CASE_ORBIT[0x24][0xdf] = 0x24c5; + CASE_ORBIT[0x24][0xe0] = 0x24c6; + CASE_ORBIT[0x24][0xe1] = 0x24c7; + CASE_ORBIT[0x24][0xe2] = 0x24c8; + CASE_ORBIT[0x24][0xe3] = 0x24c9; + CASE_ORBIT[0x24][0xe4] = 0x24ca; + CASE_ORBIT[0x24][0xe5] = 0x24cb; + CASE_ORBIT[0x24][0xe6] = 0x24cc; + CASE_ORBIT[0x24][0xe7] = 0x24cd; + CASE_ORBIT[0x24][0xe8] = 0x24ce; + CASE_ORBIT[0x24][0xe9] = 0x24cf; + CASE_ORBIT[0x2c] = new int[256]; + CASE_ORBIT[0x2c][0x0] = 0x2c30; + CASE_ORBIT[0x2c][0x1] = 0x2c31; + CASE_ORBIT[0x2c][0x2] = 0x2c32; + CASE_ORBIT[0x2c][0x3] = 0x2c33; + CASE_ORBIT[0x2c][0x4] = 0x2c34; + CASE_ORBIT[0x2c][0x5] = 0x2c35; + CASE_ORBIT[0x2c][0x6] = 0x2c36; + CASE_ORBIT[0x2c][0x7] = 0x2c37; + CASE_ORBIT[0x2c][0x8] = 0x2c38; + CASE_ORBIT[0x2c][0x9] = 0x2c39; + CASE_ORBIT[0x2c][0xa] = 0x2c3a; + CASE_ORBIT[0x2c][0xb] = 0x2c3b; + CASE_ORBIT[0x2c][0xc] = 0x2c3c; + CASE_ORBIT[0x2c][0xd] = 0x2c3d; + CASE_ORBIT[0x2c][0xe] = 0x2c3e; + CASE_ORBIT[0x2c][0xf] = 0x2c3f; + CASE_ORBIT[0x2c][0x10] = 0x2c40; + CASE_ORBIT[0x2c][0x11] = 0x2c41; + CASE_ORBIT[0x2c][0x12] = 0x2c42; + CASE_ORBIT[0x2c][0x13] = 0x2c43; + CASE_ORBIT[0x2c][0x14] = 0x2c44; + CASE_ORBIT[0x2c][0x15] = 0x2c45; + CASE_ORBIT[0x2c][0x16] = 0x2c46; + CASE_ORBIT[0x2c][0x17] = 0x2c47; + CASE_ORBIT[0x2c][0x18] = 0x2c48; + CASE_ORBIT[0x2c][0x19] = 0x2c49; + CASE_ORBIT[0x2c][0x1a] = 0x2c4a; + CASE_ORBIT[0x2c][0x1b] = 0x2c4b; + CASE_ORBIT[0x2c][0x1c] = 0x2c4c; + CASE_ORBIT[0x2c][0x1d] = 0x2c4d; + CASE_ORBIT[0x2c][0x1e] = 0x2c4e; + CASE_ORBIT[0x2c][0x1f] = 0x2c4f; + CASE_ORBIT[0x2c][0x20] = 0x2c50; + CASE_ORBIT[0x2c][0x21] = 0x2c51; + CASE_ORBIT[0x2c][0x22] = 0x2c52; + CASE_ORBIT[0x2c][0x23] = 0x2c53; + CASE_ORBIT[0x2c][0x24] = 0x2c54; + CASE_ORBIT[0x2c][0x25] = 0x2c55; + CASE_ORBIT[0x2c][0x26] = 0x2c56; + CASE_ORBIT[0x2c][0x27] = 0x2c57; + CASE_ORBIT[0x2c][0x28] = 0x2c58; + CASE_ORBIT[0x2c][0x29] = 0x2c59; + CASE_ORBIT[0x2c][0x2a] = 0x2c5a; + CASE_ORBIT[0x2c][0x2b] = 0x2c5b; + CASE_ORBIT[0x2c][0x2c] = 0x2c5c; + CASE_ORBIT[0x2c][0x2d] = 0x2c5d; + CASE_ORBIT[0x2c][0x2e] = 0x2c5e; + CASE_ORBIT[0x2c][0x30] = 0x2c00; + CASE_ORBIT[0x2c][0x31] = 0x2c01; + CASE_ORBIT[0x2c][0x32] = 0x2c02; + CASE_ORBIT[0x2c][0x33] = 0x2c03; + CASE_ORBIT[0x2c][0x34] = 0x2c04; + CASE_ORBIT[0x2c][0x35] = 0x2c05; + CASE_ORBIT[0x2c][0x36] = 0x2c06; + CASE_ORBIT[0x2c][0x37] = 0x2c07; + CASE_ORBIT[0x2c][0x38] = 0x2c08; + CASE_ORBIT[0x2c][0x39] = 0x2c09; + CASE_ORBIT[0x2c][0x3a] = 0x2c0a; + CASE_ORBIT[0x2c][0x3b] = 0x2c0b; + CASE_ORBIT[0x2c][0x3c] = 0x2c0c; + CASE_ORBIT[0x2c][0x3d] = 0x2c0d; + CASE_ORBIT[0x2c][0x3e] = 0x2c0e; + CASE_ORBIT[0x2c][0x3f] = 0x2c0f; + CASE_ORBIT[0x2c][0x40] = 0x2c10; + CASE_ORBIT[0x2c][0x41] = 0x2c11; + CASE_ORBIT[0x2c][0x42] = 0x2c12; + CASE_ORBIT[0x2c][0x43] = 0x2c13; + CASE_ORBIT[0x2c][0x44] = 0x2c14; + CASE_ORBIT[0x2c][0x45] = 0x2c15; + CASE_ORBIT[0x2c][0x46] = 0x2c16; + CASE_ORBIT[0x2c][0x47] = 0x2c17; + CASE_ORBIT[0x2c][0x48] = 0x2c18; + CASE_ORBIT[0x2c][0x49] = 0x2c19; + CASE_ORBIT[0x2c][0x4a] = 0x2c1a; + CASE_ORBIT[0x2c][0x4b] = 0x2c1b; + CASE_ORBIT[0x2c][0x4c] = 0x2c1c; + CASE_ORBIT[0x2c][0x4d] = 0x2c1d; + CASE_ORBIT[0x2c][0x4e] = 0x2c1e; + CASE_ORBIT[0x2c][0x4f] = 0x2c1f; + CASE_ORBIT[0x2c][0x50] = 0x2c20; + CASE_ORBIT[0x2c][0x51] = 0x2c21; + CASE_ORBIT[0x2c][0x52] = 0x2c22; + CASE_ORBIT[0x2c][0x53] = 0x2c23; + CASE_ORBIT[0x2c][0x54] = 0x2c24; + CASE_ORBIT[0x2c][0x55] = 0x2c25; + CASE_ORBIT[0x2c][0x56] = 0x2c26; + CASE_ORBIT[0x2c][0x57] = 0x2c27; + CASE_ORBIT[0x2c][0x58] = 0x2c28; + CASE_ORBIT[0x2c][0x59] = 0x2c29; + CASE_ORBIT[0x2c][0x5a] = 0x2c2a; + CASE_ORBIT[0x2c][0x5b] = 0x2c2b; + CASE_ORBIT[0x2c][0x5c] = 0x2c2c; + CASE_ORBIT[0x2c][0x5d] = 0x2c2d; + CASE_ORBIT[0x2c][0x5e] = 0x2c2e; + CASE_ORBIT[0x2c][0x60] = 0x2c61; + CASE_ORBIT[0x2c][0x61] = 0x2c60; + CASE_ORBIT[0x2c][0x62] = 0x26b; + CASE_ORBIT[0x2c][0x63] = 0x1d7d; + CASE_ORBIT[0x2c][0x64] = 0x27d; + CASE_ORBIT[0x2c][0x65] = 0x23a; + CASE_ORBIT[0x2c][0x66] = 0x23e; + CASE_ORBIT[0x2c][0x67] = 0x2c68; + CASE_ORBIT[0x2c][0x68] = 0x2c67; + CASE_ORBIT[0x2c][0x69] = 0x2c6a; + CASE_ORBIT[0x2c][0x6a] = 0x2c69; + CASE_ORBIT[0x2c][0x6b] = 0x2c6c; + CASE_ORBIT[0x2c][0x6c] = 0x2c6b; + CASE_ORBIT[0x2c][0x6d] = 0x251; + CASE_ORBIT[0x2c][0x6e] = 0x271; + CASE_ORBIT[0x2c][0x6f] = 0x250; + CASE_ORBIT[0x2c][0x70] = 0x252; + CASE_ORBIT[0x2c][0x72] = 0x2c73; + CASE_ORBIT[0x2c][0x73] = 0x2c72; + CASE_ORBIT[0x2c][0x75] = 0x2c76; + CASE_ORBIT[0x2c][0x76] = 0x2c75; + CASE_ORBIT[0x2c][0x7e] = 0x23f; + CASE_ORBIT[0x2c][0x7f] = 0x240; + CASE_ORBIT[0x2c][0x80] = 0x2c81; + CASE_ORBIT[0x2c][0x81] = 0x2c80; + CASE_ORBIT[0x2c][0x82] = 0x2c83; + CASE_ORBIT[0x2c][0x83] = 0x2c82; + CASE_ORBIT[0x2c][0x84] = 0x2c85; + CASE_ORBIT[0x2c][0x85] = 0x2c84; + CASE_ORBIT[0x2c][0x86] = 0x2c87; + CASE_ORBIT[0x2c][0x87] = 0x2c86; + CASE_ORBIT[0x2c][0x88] = 0x2c89; + CASE_ORBIT[0x2c][0x89] = 0x2c88; + CASE_ORBIT[0x2c][0x8a] = 0x2c8b; + CASE_ORBIT[0x2c][0x8b] = 0x2c8a; + CASE_ORBIT[0x2c][0x8c] = 0x2c8d; + CASE_ORBIT[0x2c][0x8d] = 0x2c8c; + CASE_ORBIT[0x2c][0x8e] = 0x2c8f; + CASE_ORBIT[0x2c][0x8f] = 0x2c8e; + CASE_ORBIT[0x2c][0x90] = 0x2c91; + CASE_ORBIT[0x2c][0x91] = 0x2c90; + CASE_ORBIT[0x2c][0x92] = 0x2c93; + CASE_ORBIT[0x2c][0x93] = 0x2c92; + CASE_ORBIT[0x2c][0x94] = 0x2c95; + CASE_ORBIT[0x2c][0x95] = 0x2c94; + CASE_ORBIT[0x2c][0x96] = 0x2c97; + CASE_ORBIT[0x2c][0x97] = 0x2c96; + CASE_ORBIT[0x2c][0x98] = 0x2c99; + CASE_ORBIT[0x2c][0x99] = 0x2c98; + CASE_ORBIT[0x2c][0x9a] = 0x2c9b; + CASE_ORBIT[0x2c][0x9b] = 0x2c9a; + CASE_ORBIT[0x2c][0x9c] = 0x2c9d; + CASE_ORBIT[0x2c][0x9d] = 0x2c9c; + CASE_ORBIT[0x2c][0x9e] = 0x2c9f; + CASE_ORBIT[0x2c][0x9f] = 0x2c9e; + CASE_ORBIT[0x2c][0xa0] = 0x2ca1; + CASE_ORBIT[0x2c][0xa1] = 0x2ca0; + CASE_ORBIT[0x2c][0xa2] = 0x2ca3; + CASE_ORBIT[0x2c][0xa3] = 0x2ca2; + CASE_ORBIT[0x2c][0xa4] = 0x2ca5; + CASE_ORBIT[0x2c][0xa5] = 0x2ca4; + CASE_ORBIT[0x2c][0xa6] = 0x2ca7; + CASE_ORBIT[0x2c][0xa7] = 0x2ca6; + CASE_ORBIT[0x2c][0xa8] = 0x2ca9; + CASE_ORBIT[0x2c][0xa9] = 0x2ca8; + CASE_ORBIT[0x2c][0xaa] = 0x2cab; + CASE_ORBIT[0x2c][0xab] = 0x2caa; + CASE_ORBIT[0x2c][0xac] = 0x2cad; + CASE_ORBIT[0x2c][0xad] = 0x2cac; + CASE_ORBIT[0x2c][0xae] = 0x2caf; + CASE_ORBIT[0x2c][0xaf] = 0x2cae; + CASE_ORBIT[0x2c][0xb0] = 0x2cb1; + CASE_ORBIT[0x2c][0xb1] = 0x2cb0; + CASE_ORBIT[0x2c][0xb2] = 0x2cb3; + CASE_ORBIT[0x2c][0xb3] = 0x2cb2; + CASE_ORBIT[0x2c][0xb4] = 0x2cb5; + CASE_ORBIT[0x2c][0xb5] = 0x2cb4; + CASE_ORBIT[0x2c][0xb6] = 0x2cb7; + CASE_ORBIT[0x2c][0xb7] = 0x2cb6; + CASE_ORBIT[0x2c][0xb8] = 0x2cb9; + CASE_ORBIT[0x2c][0xb9] = 0x2cb8; + CASE_ORBIT[0x2c][0xba] = 0x2cbb; + CASE_ORBIT[0x2c][0xbb] = 0x2cba; + CASE_ORBIT[0x2c][0xbc] = 0x2cbd; + CASE_ORBIT[0x2c][0xbd] = 0x2cbc; + CASE_ORBIT[0x2c][0xbe] = 0x2cbf; + CASE_ORBIT[0x2c][0xbf] = 0x2cbe; + CASE_ORBIT[0x2c][0xc0] = 0x2cc1; + CASE_ORBIT[0x2c][0xc1] = 0x2cc0; + CASE_ORBIT[0x2c][0xc2] = 0x2cc3; + CASE_ORBIT[0x2c][0xc3] = 0x2cc2; + CASE_ORBIT[0x2c][0xc4] = 0x2cc5; + CASE_ORBIT[0x2c][0xc5] = 0x2cc4; + CASE_ORBIT[0x2c][0xc6] = 0x2cc7; + CASE_ORBIT[0x2c][0xc7] = 0x2cc6; + CASE_ORBIT[0x2c][0xc8] = 0x2cc9; + CASE_ORBIT[0x2c][0xc9] = 0x2cc8; + CASE_ORBIT[0x2c][0xca] = 0x2ccb; + CASE_ORBIT[0x2c][0xcb] = 0x2cca; + CASE_ORBIT[0x2c][0xcc] = 0x2ccd; + CASE_ORBIT[0x2c][0xcd] = 0x2ccc; + CASE_ORBIT[0x2c][0xce] = 0x2ccf; + CASE_ORBIT[0x2c][0xcf] = 0x2cce; + CASE_ORBIT[0x2c][0xd0] = 0x2cd1; + CASE_ORBIT[0x2c][0xd1] = 0x2cd0; + CASE_ORBIT[0x2c][0xd2] = 0x2cd3; + CASE_ORBIT[0x2c][0xd3] = 0x2cd2; + CASE_ORBIT[0x2c][0xd4] = 0x2cd5; + CASE_ORBIT[0x2c][0xd5] = 0x2cd4; + CASE_ORBIT[0x2c][0xd6] = 0x2cd7; + CASE_ORBIT[0x2c][0xd7] = 0x2cd6; + CASE_ORBIT[0x2c][0xd8] = 0x2cd9; + CASE_ORBIT[0x2c][0xd9] = 0x2cd8; + CASE_ORBIT[0x2c][0xda] = 0x2cdb; + CASE_ORBIT[0x2c][0xdb] = 0x2cda; + CASE_ORBIT[0x2c][0xdc] = 0x2cdd; + CASE_ORBIT[0x2c][0xdd] = 0x2cdc; + CASE_ORBIT[0x2c][0xde] = 0x2cdf; + CASE_ORBIT[0x2c][0xdf] = 0x2cde; + CASE_ORBIT[0x2c][0xe0] = 0x2ce1; + CASE_ORBIT[0x2c][0xe1] = 0x2ce0; + CASE_ORBIT[0x2c][0xe2] = 0x2ce3; + CASE_ORBIT[0x2c][0xe3] = 0x2ce2; + CASE_ORBIT[0x2c][0xeb] = 0x2cec; + CASE_ORBIT[0x2c][0xec] = 0x2ceb; + CASE_ORBIT[0x2c][0xed] = 0x2cee; + CASE_ORBIT[0x2c][0xee] = 0x2ced; + CASE_ORBIT[0x2c][0xf2] = 0x2cf3; + CASE_ORBIT[0x2c][0xf3] = 0x2cf2; + CASE_ORBIT[0x2d] = new int[256]; + CASE_ORBIT[0x2d][0x0] = 0x10a0; + CASE_ORBIT[0x2d][0x1] = 0x10a1; + CASE_ORBIT[0x2d][0x2] = 0x10a2; + CASE_ORBIT[0x2d][0x3] = 0x10a3; + CASE_ORBIT[0x2d][0x4] = 0x10a4; + CASE_ORBIT[0x2d][0x5] = 0x10a5; + CASE_ORBIT[0x2d][0x6] = 0x10a6; + CASE_ORBIT[0x2d][0x7] = 0x10a7; + CASE_ORBIT[0x2d][0x8] = 0x10a8; + CASE_ORBIT[0x2d][0x9] = 0x10a9; + CASE_ORBIT[0x2d][0xa] = 0x10aa; + CASE_ORBIT[0x2d][0xb] = 0x10ab; + CASE_ORBIT[0x2d][0xc] = 0x10ac; + CASE_ORBIT[0x2d][0xd] = 0x10ad; + CASE_ORBIT[0x2d][0xe] = 0x10ae; + CASE_ORBIT[0x2d][0xf] = 0x10af; + CASE_ORBIT[0x2d][0x10] = 0x10b0; + CASE_ORBIT[0x2d][0x11] = 0x10b1; + CASE_ORBIT[0x2d][0x12] = 0x10b2; + CASE_ORBIT[0x2d][0x13] = 0x10b3; + CASE_ORBIT[0x2d][0x14] = 0x10b4; + CASE_ORBIT[0x2d][0x15] = 0x10b5; + CASE_ORBIT[0x2d][0x16] = 0x10b6; + CASE_ORBIT[0x2d][0x17] = 0x10b7; + CASE_ORBIT[0x2d][0x18] = 0x10b8; + CASE_ORBIT[0x2d][0x19] = 0x10b9; + CASE_ORBIT[0x2d][0x1a] = 0x10ba; + CASE_ORBIT[0x2d][0x1b] = 0x10bb; + CASE_ORBIT[0x2d][0x1c] = 0x10bc; + CASE_ORBIT[0x2d][0x1d] = 0x10bd; + CASE_ORBIT[0x2d][0x1e] = 0x10be; + CASE_ORBIT[0x2d][0x1f] = 0x10bf; + CASE_ORBIT[0x2d][0x20] = 0x10c0; + CASE_ORBIT[0x2d][0x21] = 0x10c1; + CASE_ORBIT[0x2d][0x22] = 0x10c2; + CASE_ORBIT[0x2d][0x23] = 0x10c3; + CASE_ORBIT[0x2d][0x24] = 0x10c4; + CASE_ORBIT[0x2d][0x25] = 0x10c5; + CASE_ORBIT[0x2d][0x27] = 0x10c7; + CASE_ORBIT[0x2d][0x2d] = 0x10cd; + CASE_ORBIT[0xa6] = new int[256]; + CASE_ORBIT[0xa6][0x40] = 0xa641; + CASE_ORBIT[0xa6][0x41] = 0xa640; + CASE_ORBIT[0xa6][0x42] = 0xa643; + CASE_ORBIT[0xa6][0x43] = 0xa642; + CASE_ORBIT[0xa6][0x44] = 0xa645; + CASE_ORBIT[0xa6][0x45] = 0xa644; + CASE_ORBIT[0xa6][0x46] = 0xa647; + CASE_ORBIT[0xa6][0x47] = 0xa646; + CASE_ORBIT[0xa6][0x48] = 0xa649; + CASE_ORBIT[0xa6][0x49] = 0xa648; + CASE_ORBIT[0xa6][0x4a] = 0xa64b; + CASE_ORBIT[0xa6][0x4b] = 0x1c88; + CASE_ORBIT[0xa6][0x4c] = 0xa64d; + CASE_ORBIT[0xa6][0x4d] = 0xa64c; + CASE_ORBIT[0xa6][0x4e] = 0xa64f; + CASE_ORBIT[0xa6][0x4f] = 0xa64e; + CASE_ORBIT[0xa6][0x50] = 0xa651; + CASE_ORBIT[0xa6][0x51] = 0xa650; + CASE_ORBIT[0xa6][0x52] = 0xa653; + CASE_ORBIT[0xa6][0x53] = 0xa652; + CASE_ORBIT[0xa6][0x54] = 0xa655; + CASE_ORBIT[0xa6][0x55] = 0xa654; + CASE_ORBIT[0xa6][0x56] = 0xa657; + CASE_ORBIT[0xa6][0x57] = 0xa656; + CASE_ORBIT[0xa6][0x58] = 0xa659; + CASE_ORBIT[0xa6][0x59] = 0xa658; + CASE_ORBIT[0xa6][0x5a] = 0xa65b; + CASE_ORBIT[0xa6][0x5b] = 0xa65a; + CASE_ORBIT[0xa6][0x5c] = 0xa65d; + CASE_ORBIT[0xa6][0x5d] = 0xa65c; + CASE_ORBIT[0xa6][0x5e] = 0xa65f; + CASE_ORBIT[0xa6][0x5f] = 0xa65e; + CASE_ORBIT[0xa6][0x60] = 0xa661; + CASE_ORBIT[0xa6][0x61] = 0xa660; + CASE_ORBIT[0xa6][0x62] = 0xa663; + CASE_ORBIT[0xa6][0x63] = 0xa662; + CASE_ORBIT[0xa6][0x64] = 0xa665; + CASE_ORBIT[0xa6][0x65] = 0xa664; + CASE_ORBIT[0xa6][0x66] = 0xa667; + CASE_ORBIT[0xa6][0x67] = 0xa666; + CASE_ORBIT[0xa6][0x68] = 0xa669; + CASE_ORBIT[0xa6][0x69] = 0xa668; + CASE_ORBIT[0xa6][0x6a] = 0xa66b; + CASE_ORBIT[0xa6][0x6b] = 0xa66a; + CASE_ORBIT[0xa6][0x6c] = 0xa66d; + CASE_ORBIT[0xa6][0x6d] = 0xa66c; + CASE_ORBIT[0xa6][0x80] = 0xa681; + CASE_ORBIT[0xa6][0x81] = 0xa680; + CASE_ORBIT[0xa6][0x82] = 0xa683; + CASE_ORBIT[0xa6][0x83] = 0xa682; + CASE_ORBIT[0xa6][0x84] = 0xa685; + CASE_ORBIT[0xa6][0x85] = 0xa684; + CASE_ORBIT[0xa6][0x86] = 0xa687; + CASE_ORBIT[0xa6][0x87] = 0xa686; + CASE_ORBIT[0xa6][0x88] = 0xa689; + CASE_ORBIT[0xa6][0x89] = 0xa688; + CASE_ORBIT[0xa6][0x8a] = 0xa68b; + CASE_ORBIT[0xa6][0x8b] = 0xa68a; + CASE_ORBIT[0xa6][0x8c] = 0xa68d; + CASE_ORBIT[0xa6][0x8d] = 0xa68c; + CASE_ORBIT[0xa6][0x8e] = 0xa68f; + CASE_ORBIT[0xa6][0x8f] = 0xa68e; + CASE_ORBIT[0xa6][0x90] = 0xa691; + CASE_ORBIT[0xa6][0x91] = 0xa690; + CASE_ORBIT[0xa6][0x92] = 0xa693; + CASE_ORBIT[0xa6][0x93] = 0xa692; + CASE_ORBIT[0xa6][0x94] = 0xa695; + CASE_ORBIT[0xa6][0x95] = 0xa694; + CASE_ORBIT[0xa6][0x96] = 0xa697; + CASE_ORBIT[0xa6][0x97] = 0xa696; + CASE_ORBIT[0xa6][0x98] = 0xa699; + CASE_ORBIT[0xa6][0x99] = 0xa698; + CASE_ORBIT[0xa6][0x9a] = 0xa69b; + CASE_ORBIT[0xa6][0x9b] = 0xa69a; + CASE_ORBIT[0xa7] = new int[256]; + CASE_ORBIT[0xa7][0x22] = 0xa723; + CASE_ORBIT[0xa7][0x23] = 0xa722; + CASE_ORBIT[0xa7][0x24] = 0xa725; + CASE_ORBIT[0xa7][0x25] = 0xa724; + CASE_ORBIT[0xa7][0x26] = 0xa727; + CASE_ORBIT[0xa7][0x27] = 0xa726; + CASE_ORBIT[0xa7][0x28] = 0xa729; + CASE_ORBIT[0xa7][0x29] = 0xa728; + CASE_ORBIT[0xa7][0x2a] = 0xa72b; + CASE_ORBIT[0xa7][0x2b] = 0xa72a; + CASE_ORBIT[0xa7][0x2c] = 0xa72d; + CASE_ORBIT[0xa7][0x2d] = 0xa72c; + CASE_ORBIT[0xa7][0x2e] = 0xa72f; + CASE_ORBIT[0xa7][0x2f] = 0xa72e; + CASE_ORBIT[0xa7][0x32] = 0xa733; + CASE_ORBIT[0xa7][0x33] = 0xa732; + CASE_ORBIT[0xa7][0x34] = 0xa735; + CASE_ORBIT[0xa7][0x35] = 0xa734; + CASE_ORBIT[0xa7][0x36] = 0xa737; + CASE_ORBIT[0xa7][0x37] = 0xa736; + CASE_ORBIT[0xa7][0x38] = 0xa739; + CASE_ORBIT[0xa7][0x39] = 0xa738; + CASE_ORBIT[0xa7][0x3a] = 0xa73b; + CASE_ORBIT[0xa7][0x3b] = 0xa73a; + CASE_ORBIT[0xa7][0x3c] = 0xa73d; + CASE_ORBIT[0xa7][0x3d] = 0xa73c; + CASE_ORBIT[0xa7][0x3e] = 0xa73f; + CASE_ORBIT[0xa7][0x3f] = 0xa73e; + CASE_ORBIT[0xa7][0x40] = 0xa741; + CASE_ORBIT[0xa7][0x41] = 0xa740; + CASE_ORBIT[0xa7][0x42] = 0xa743; + CASE_ORBIT[0xa7][0x43] = 0xa742; + CASE_ORBIT[0xa7][0x44] = 0xa745; + CASE_ORBIT[0xa7][0x45] = 0xa744; + CASE_ORBIT[0xa7][0x46] = 0xa747; + CASE_ORBIT[0xa7][0x47] = 0xa746; + CASE_ORBIT[0xa7][0x48] = 0xa749; + CASE_ORBIT[0xa7][0x49] = 0xa748; + CASE_ORBIT[0xa7][0x4a] = 0xa74b; + CASE_ORBIT[0xa7][0x4b] = 0xa74a; + CASE_ORBIT[0xa7][0x4c] = 0xa74d; + CASE_ORBIT[0xa7][0x4d] = 0xa74c; + CASE_ORBIT[0xa7][0x4e] = 0xa74f; + CASE_ORBIT[0xa7][0x4f] = 0xa74e; + CASE_ORBIT[0xa7][0x50] = 0xa751; + CASE_ORBIT[0xa7][0x51] = 0xa750; + CASE_ORBIT[0xa7][0x52] = 0xa753; + CASE_ORBIT[0xa7][0x53] = 0xa752; + CASE_ORBIT[0xa7][0x54] = 0xa755; + CASE_ORBIT[0xa7][0x55] = 0xa754; + CASE_ORBIT[0xa7][0x56] = 0xa757; + CASE_ORBIT[0xa7][0x57] = 0xa756; + CASE_ORBIT[0xa7][0x58] = 0xa759; + CASE_ORBIT[0xa7][0x59] = 0xa758; + CASE_ORBIT[0xa7][0x5a] = 0xa75b; + CASE_ORBIT[0xa7][0x5b] = 0xa75a; + CASE_ORBIT[0xa7][0x5c] = 0xa75d; + CASE_ORBIT[0xa7][0x5d] = 0xa75c; + CASE_ORBIT[0xa7][0x5e] = 0xa75f; + CASE_ORBIT[0xa7][0x5f] = 0xa75e; + CASE_ORBIT[0xa7][0x60] = 0xa761; + CASE_ORBIT[0xa7][0x61] = 0xa760; + CASE_ORBIT[0xa7][0x62] = 0xa763; + CASE_ORBIT[0xa7][0x63] = 0xa762; + CASE_ORBIT[0xa7][0x64] = 0xa765; + CASE_ORBIT[0xa7][0x65] = 0xa764; + CASE_ORBIT[0xa7][0x66] = 0xa767; + CASE_ORBIT[0xa7][0x67] = 0xa766; + CASE_ORBIT[0xa7][0x68] = 0xa769; + CASE_ORBIT[0xa7][0x69] = 0xa768; + CASE_ORBIT[0xa7][0x6a] = 0xa76b; + CASE_ORBIT[0xa7][0x6b] = 0xa76a; + CASE_ORBIT[0xa7][0x6c] = 0xa76d; + CASE_ORBIT[0xa7][0x6d] = 0xa76c; + CASE_ORBIT[0xa7][0x6e] = 0xa76f; + CASE_ORBIT[0xa7][0x6f] = 0xa76e; + CASE_ORBIT[0xa7][0x79] = 0xa77a; + CASE_ORBIT[0xa7][0x7a] = 0xa779; + CASE_ORBIT[0xa7][0x7b] = 0xa77c; + CASE_ORBIT[0xa7][0x7c] = 0xa77b; + CASE_ORBIT[0xa7][0x7d] = 0x1d79; + CASE_ORBIT[0xa7][0x7e] = 0xa77f; + CASE_ORBIT[0xa7][0x7f] = 0xa77e; + CASE_ORBIT[0xa7][0x80] = 0xa781; + CASE_ORBIT[0xa7][0x81] = 0xa780; + CASE_ORBIT[0xa7][0x82] = 0xa783; + CASE_ORBIT[0xa7][0x83] = 0xa782; + CASE_ORBIT[0xa7][0x84] = 0xa785; + CASE_ORBIT[0xa7][0x85] = 0xa784; + CASE_ORBIT[0xa7][0x86] = 0xa787; + CASE_ORBIT[0xa7][0x87] = 0xa786; + CASE_ORBIT[0xa7][0x8b] = 0xa78c; + CASE_ORBIT[0xa7][0x8c] = 0xa78b; + CASE_ORBIT[0xa7][0x8d] = 0x265; + CASE_ORBIT[0xa7][0x90] = 0xa791; + CASE_ORBIT[0xa7][0x91] = 0xa790; + CASE_ORBIT[0xa7][0x92] = 0xa793; + CASE_ORBIT[0xa7][0x93] = 0xa792; + CASE_ORBIT[0xa7][0x96] = 0xa797; + CASE_ORBIT[0xa7][0x97] = 0xa796; + CASE_ORBIT[0xa7][0x98] = 0xa799; + CASE_ORBIT[0xa7][0x99] = 0xa798; + CASE_ORBIT[0xa7][0x9a] = 0xa79b; + CASE_ORBIT[0xa7][0x9b] = 0xa79a; + CASE_ORBIT[0xa7][0x9c] = 0xa79d; + CASE_ORBIT[0xa7][0x9d] = 0xa79c; + CASE_ORBIT[0xa7][0x9e] = 0xa79f; + CASE_ORBIT[0xa7][0x9f] = 0xa79e; + CASE_ORBIT[0xa7][0xa0] = 0xa7a1; + CASE_ORBIT[0xa7][0xa1] = 0xa7a0; + CASE_ORBIT[0xa7][0xa2] = 0xa7a3; + CASE_ORBIT[0xa7][0xa3] = 0xa7a2; + CASE_ORBIT[0xa7][0xa4] = 0xa7a5; + CASE_ORBIT[0xa7][0xa5] = 0xa7a4; + CASE_ORBIT[0xa7][0xa6] = 0xa7a7; + CASE_ORBIT[0xa7][0xa7] = 0xa7a6; + CASE_ORBIT[0xa7][0xa8] = 0xa7a9; + CASE_ORBIT[0xa7][0xa9] = 0xa7a8; + CASE_ORBIT[0xa7][0xaa] = 0x266; + CASE_ORBIT[0xa7][0xab] = 0x25c; + CASE_ORBIT[0xa7][0xac] = 0x261; + CASE_ORBIT[0xa7][0xad] = 0x26c; + CASE_ORBIT[0xa7][0xae] = 0x26a; + CASE_ORBIT[0xa7][0xb0] = 0x29e; + CASE_ORBIT[0xa7][0xb1] = 0x287; + CASE_ORBIT[0xa7][0xb2] = 0x29d; + CASE_ORBIT[0xa7][0xb3] = 0xab53; + CASE_ORBIT[0xa7][0xb4] = 0xa7b5; + CASE_ORBIT[0xa7][0xb5] = 0xa7b4; + CASE_ORBIT[0xa7][0xb6] = 0xa7b7; + CASE_ORBIT[0xa7][0xb7] = 0xa7b6; + CASE_ORBIT[0xab] = new int[256]; + CASE_ORBIT[0xab][0x53] = 0xa7b3; + CASE_ORBIT[0xab][0x70] = 0x13a0; + CASE_ORBIT[0xab][0x71] = 0x13a1; + CASE_ORBIT[0xab][0x72] = 0x13a2; + CASE_ORBIT[0xab][0x73] = 0x13a3; + CASE_ORBIT[0xab][0x74] = 0x13a4; + CASE_ORBIT[0xab][0x75] = 0x13a5; + CASE_ORBIT[0xab][0x76] = 0x13a6; + CASE_ORBIT[0xab][0x77] = 0x13a7; + CASE_ORBIT[0xab][0x78] = 0x13a8; + CASE_ORBIT[0xab][0x79] = 0x13a9; + CASE_ORBIT[0xab][0x7a] = 0x13aa; + CASE_ORBIT[0xab][0x7b] = 0x13ab; + CASE_ORBIT[0xab][0x7c] = 0x13ac; + CASE_ORBIT[0xab][0x7d] = 0x13ad; + CASE_ORBIT[0xab][0x7e] = 0x13ae; + CASE_ORBIT[0xab][0x7f] = 0x13af; + CASE_ORBIT[0xab][0x80] = 0x13b0; + CASE_ORBIT[0xab][0x81] = 0x13b1; + CASE_ORBIT[0xab][0x82] = 0x13b2; + CASE_ORBIT[0xab][0x83] = 0x13b3; + CASE_ORBIT[0xab][0x84] = 0x13b4; + CASE_ORBIT[0xab][0x85] = 0x13b5; + CASE_ORBIT[0xab][0x86] = 0x13b6; + CASE_ORBIT[0xab][0x87] = 0x13b7; + CASE_ORBIT[0xab][0x88] = 0x13b8; + CASE_ORBIT[0xab][0x89] = 0x13b9; + CASE_ORBIT[0xab][0x8a] = 0x13ba; + CASE_ORBIT[0xab][0x8b] = 0x13bb; + CASE_ORBIT[0xab][0x8c] = 0x13bc; + CASE_ORBIT[0xab][0x8d] = 0x13bd; + CASE_ORBIT[0xab][0x8e] = 0x13be; + CASE_ORBIT[0xab][0x8f] = 0x13bf; + CASE_ORBIT[0xab][0x90] = 0x13c0; + CASE_ORBIT[0xab][0x91] = 0x13c1; + CASE_ORBIT[0xab][0x92] = 0x13c2; + CASE_ORBIT[0xab][0x93] = 0x13c3; + CASE_ORBIT[0xab][0x94] = 0x13c4; + CASE_ORBIT[0xab][0x95] = 0x13c5; + CASE_ORBIT[0xab][0x96] = 0x13c6; + CASE_ORBIT[0xab][0x97] = 0x13c7; + CASE_ORBIT[0xab][0x98] = 0x13c8; + CASE_ORBIT[0xab][0x99] = 0x13c9; + CASE_ORBIT[0xab][0x9a] = 0x13ca; + CASE_ORBIT[0xab][0x9b] = 0x13cb; + CASE_ORBIT[0xab][0x9c] = 0x13cc; + CASE_ORBIT[0xab][0x9d] = 0x13cd; + CASE_ORBIT[0xab][0x9e] = 0x13ce; + CASE_ORBIT[0xab][0x9f] = 0x13cf; + CASE_ORBIT[0xab][0xa0] = 0x13d0; + CASE_ORBIT[0xab][0xa1] = 0x13d1; + CASE_ORBIT[0xab][0xa2] = 0x13d2; + CASE_ORBIT[0xab][0xa3] = 0x13d3; + CASE_ORBIT[0xab][0xa4] = 0x13d4; + CASE_ORBIT[0xab][0xa5] = 0x13d5; + CASE_ORBIT[0xab][0xa6] = 0x13d6; + CASE_ORBIT[0xab][0xa7] = 0x13d7; + CASE_ORBIT[0xab][0xa8] = 0x13d8; + CASE_ORBIT[0xab][0xa9] = 0x13d9; + CASE_ORBIT[0xab][0xaa] = 0x13da; + CASE_ORBIT[0xab][0xab] = 0x13db; + CASE_ORBIT[0xab][0xac] = 0x13dc; + CASE_ORBIT[0xab][0xad] = 0x13dd; + CASE_ORBIT[0xab][0xae] = 0x13de; + CASE_ORBIT[0xab][0xaf] = 0x13df; + CASE_ORBIT[0xab][0xb0] = 0x13e0; + CASE_ORBIT[0xab][0xb1] = 0x13e1; + CASE_ORBIT[0xab][0xb2] = 0x13e2; + CASE_ORBIT[0xab][0xb3] = 0x13e3; + CASE_ORBIT[0xab][0xb4] = 0x13e4; + CASE_ORBIT[0xab][0xb5] = 0x13e5; + CASE_ORBIT[0xab][0xb6] = 0x13e6; + CASE_ORBIT[0xab][0xb7] = 0x13e7; + CASE_ORBIT[0xab][0xb8] = 0x13e8; + CASE_ORBIT[0xab][0xb9] = 0x13e9; + CASE_ORBIT[0xab][0xba] = 0x13ea; + CASE_ORBIT[0xab][0xbb] = 0x13eb; + CASE_ORBIT[0xab][0xbc] = 0x13ec; + CASE_ORBIT[0xab][0xbd] = 0x13ed; + CASE_ORBIT[0xab][0xbe] = 0x13ee; + CASE_ORBIT[0xab][0xbf] = 0x13ef; + CASE_ORBIT[0xff] = new int[256]; + CASE_ORBIT[0xff][0x21] = 0xff41; + CASE_ORBIT[0xff][0x22] = 0xff42; + CASE_ORBIT[0xff][0x23] = 0xff43; + CASE_ORBIT[0xff][0x24] = 0xff44; + CASE_ORBIT[0xff][0x25] = 0xff45; + CASE_ORBIT[0xff][0x26] = 0xff46; + CASE_ORBIT[0xff][0x27] = 0xff47; + CASE_ORBIT[0xff][0x28] = 0xff48; + CASE_ORBIT[0xff][0x29] = 0xff49; + CASE_ORBIT[0xff][0x2a] = 0xff4a; + CASE_ORBIT[0xff][0x2b] = 0xff4b; + CASE_ORBIT[0xff][0x2c] = 0xff4c; + CASE_ORBIT[0xff][0x2d] = 0xff4d; + CASE_ORBIT[0xff][0x2e] = 0xff4e; + CASE_ORBIT[0xff][0x2f] = 0xff4f; + CASE_ORBIT[0xff][0x30] = 0xff50; + CASE_ORBIT[0xff][0x31] = 0xff51; + CASE_ORBIT[0xff][0x32] = 0xff52; + CASE_ORBIT[0xff][0x33] = 0xff53; + CASE_ORBIT[0xff][0x34] = 0xff54; + CASE_ORBIT[0xff][0x35] = 0xff55; + CASE_ORBIT[0xff][0x36] = 0xff56; + CASE_ORBIT[0xff][0x37] = 0xff57; + CASE_ORBIT[0xff][0x38] = 0xff58; + CASE_ORBIT[0xff][0x39] = 0xff59; + CASE_ORBIT[0xff][0x3a] = 0xff5a; + CASE_ORBIT[0xff][0x41] = 0xff21; + CASE_ORBIT[0xff][0x42] = 0xff22; + CASE_ORBIT[0xff][0x43] = 0xff23; + CASE_ORBIT[0xff][0x44] = 0xff24; + CASE_ORBIT[0xff][0x45] = 0xff25; + CASE_ORBIT[0xff][0x46] = 0xff26; + CASE_ORBIT[0xff][0x47] = 0xff27; + CASE_ORBIT[0xff][0x48] = 0xff28; + CASE_ORBIT[0xff][0x49] = 0xff29; + CASE_ORBIT[0xff][0x4a] = 0xff2a; + CASE_ORBIT[0xff][0x4b] = 0xff2b; + CASE_ORBIT[0xff][0x4c] = 0xff2c; + CASE_ORBIT[0xff][0x4d] = 0xff2d; + CASE_ORBIT[0xff][0x4e] = 0xff2e; + CASE_ORBIT[0xff][0x4f] = 0xff2f; + CASE_ORBIT[0xff][0x50] = 0xff30; + CASE_ORBIT[0xff][0x51] = 0xff31; + CASE_ORBIT[0xff][0x52] = 0xff32; + CASE_ORBIT[0xff][0x53] = 0xff33; + CASE_ORBIT[0xff][0x54] = 0xff34; + CASE_ORBIT[0xff][0x55] = 0xff35; + CASE_ORBIT[0xff][0x56] = 0xff36; + CASE_ORBIT[0xff][0x57] = 0xff37; + CASE_ORBIT[0xff][0x58] = 0xff38; + CASE_ORBIT[0xff][0x59] = 0xff39; + CASE_ORBIT[0xff][0x5a] = 0xff3a; + CASE_ORBIT[0x104] = new int[256]; + CASE_ORBIT[0x104][0x0] = 0x10428; + CASE_ORBIT[0x104][0x1] = 0x10429; + CASE_ORBIT[0x104][0x2] = 0x1042a; + CASE_ORBIT[0x104][0x3] = 0x1042b; + CASE_ORBIT[0x104][0x4] = 0x1042c; + CASE_ORBIT[0x104][0x5] = 0x1042d; + CASE_ORBIT[0x104][0x6] = 0x1042e; + CASE_ORBIT[0x104][0x7] = 0x1042f; + CASE_ORBIT[0x104][0x8] = 0x10430; + CASE_ORBIT[0x104][0x9] = 0x10431; + CASE_ORBIT[0x104][0xa] = 0x10432; + CASE_ORBIT[0x104][0xb] = 0x10433; + CASE_ORBIT[0x104][0xc] = 0x10434; + CASE_ORBIT[0x104][0xd] = 0x10435; + CASE_ORBIT[0x104][0xe] = 0x10436; + CASE_ORBIT[0x104][0xf] = 0x10437; + CASE_ORBIT[0x104][0x10] = 0x10438; + CASE_ORBIT[0x104][0x11] = 0x10439; + CASE_ORBIT[0x104][0x12] = 0x1043a; + CASE_ORBIT[0x104][0x13] = 0x1043b; + CASE_ORBIT[0x104][0x14] = 0x1043c; + CASE_ORBIT[0x104][0x15] = 0x1043d; + CASE_ORBIT[0x104][0x16] = 0x1043e; + CASE_ORBIT[0x104][0x17] = 0x1043f; + CASE_ORBIT[0x104][0x18] = 0x10440; + CASE_ORBIT[0x104][0x19] = 0x10441; + CASE_ORBIT[0x104][0x1a] = 0x10442; + CASE_ORBIT[0x104][0x1b] = 0x10443; + CASE_ORBIT[0x104][0x1c] = 0x10444; + CASE_ORBIT[0x104][0x1d] = 0x10445; + CASE_ORBIT[0x104][0x1e] = 0x10446; + CASE_ORBIT[0x104][0x1f] = 0x10447; + CASE_ORBIT[0x104][0x20] = 0x10448; + CASE_ORBIT[0x104][0x21] = 0x10449; + CASE_ORBIT[0x104][0x22] = 0x1044a; + CASE_ORBIT[0x104][0x23] = 0x1044b; + CASE_ORBIT[0x104][0x24] = 0x1044c; + CASE_ORBIT[0x104][0x25] = 0x1044d; + CASE_ORBIT[0x104][0x26] = 0x1044e; + CASE_ORBIT[0x104][0x27] = 0x1044f; + CASE_ORBIT[0x104][0x28] = 0x10400; + CASE_ORBIT[0x104][0x29] = 0x10401; + CASE_ORBIT[0x104][0x2a] = 0x10402; + CASE_ORBIT[0x104][0x2b] = 0x10403; + CASE_ORBIT[0x104][0x2c] = 0x10404; + CASE_ORBIT[0x104][0x2d] = 0x10405; + CASE_ORBIT[0x104][0x2e] = 0x10406; + CASE_ORBIT[0x104][0x2f] = 0x10407; + CASE_ORBIT[0x104][0x30] = 0x10408; + CASE_ORBIT[0x104][0x31] = 0x10409; + CASE_ORBIT[0x104][0x32] = 0x1040a; + CASE_ORBIT[0x104][0x33] = 0x1040b; + CASE_ORBIT[0x104][0x34] = 0x1040c; + CASE_ORBIT[0x104][0x35] = 0x1040d; + CASE_ORBIT[0x104][0x36] = 0x1040e; + CASE_ORBIT[0x104][0x37] = 0x1040f; + CASE_ORBIT[0x104][0x38] = 0x10410; + CASE_ORBIT[0x104][0x39] = 0x10411; + CASE_ORBIT[0x104][0x3a] = 0x10412; + CASE_ORBIT[0x104][0x3b] = 0x10413; + CASE_ORBIT[0x104][0x3c] = 0x10414; + CASE_ORBIT[0x104][0x3d] = 0x10415; + CASE_ORBIT[0x104][0x3e] = 0x10416; + CASE_ORBIT[0x104][0x3f] = 0x10417; + CASE_ORBIT[0x104][0x40] = 0x10418; + CASE_ORBIT[0x104][0x41] = 0x10419; + CASE_ORBIT[0x104][0x42] = 0x1041a; + CASE_ORBIT[0x104][0x43] = 0x1041b; + CASE_ORBIT[0x104][0x44] = 0x1041c; + CASE_ORBIT[0x104][0x45] = 0x1041d; + CASE_ORBIT[0x104][0x46] = 0x1041e; + CASE_ORBIT[0x104][0x47] = 0x1041f; + CASE_ORBIT[0x104][0x48] = 0x10420; + CASE_ORBIT[0x104][0x49] = 0x10421; + CASE_ORBIT[0x104][0x4a] = 0x10422; + CASE_ORBIT[0x104][0x4b] = 0x10423; + CASE_ORBIT[0x104][0x4c] = 0x10424; + CASE_ORBIT[0x104][0x4d] = 0x10425; + CASE_ORBIT[0x104][0x4e] = 0x10426; + CASE_ORBIT[0x104][0x4f] = 0x10427; + CASE_ORBIT[0x104][0xb0] = 0x104d8; + CASE_ORBIT[0x104][0xb1] = 0x104d9; + CASE_ORBIT[0x104][0xb2] = 0x104da; + CASE_ORBIT[0x104][0xb3] = 0x104db; + CASE_ORBIT[0x104][0xb4] = 0x104dc; + CASE_ORBIT[0x104][0xb5] = 0x104dd; + CASE_ORBIT[0x104][0xb6] = 0x104de; + CASE_ORBIT[0x104][0xb7] = 0x104df; + CASE_ORBIT[0x104][0xb8] = 0x104e0; + CASE_ORBIT[0x104][0xb9] = 0x104e1; + CASE_ORBIT[0x104][0xba] = 0x104e2; + CASE_ORBIT[0x104][0xbb] = 0x104e3; + CASE_ORBIT[0x104][0xbc] = 0x104e4; + CASE_ORBIT[0x104][0xbd] = 0x104e5; + CASE_ORBIT[0x104][0xbe] = 0x104e6; + CASE_ORBIT[0x104][0xbf] = 0x104e7; + CASE_ORBIT[0x104][0xc0] = 0x104e8; + CASE_ORBIT[0x104][0xc1] = 0x104e9; + CASE_ORBIT[0x104][0xc2] = 0x104ea; + CASE_ORBIT[0x104][0xc3] = 0x104eb; + CASE_ORBIT[0x104][0xc4] = 0x104ec; + CASE_ORBIT[0x104][0xc5] = 0x104ed; + CASE_ORBIT[0x104][0xc6] = 0x104ee; + CASE_ORBIT[0x104][0xc7] = 0x104ef; + CASE_ORBIT[0x104][0xc8] = 0x104f0; + CASE_ORBIT[0x104][0xc9] = 0x104f1; + CASE_ORBIT[0x104][0xca] = 0x104f2; + CASE_ORBIT[0x104][0xcb] = 0x104f3; + CASE_ORBIT[0x104][0xcc] = 0x104f4; + CASE_ORBIT[0x104][0xcd] = 0x104f5; + CASE_ORBIT[0x104][0xce] = 0x104f6; + CASE_ORBIT[0x104][0xcf] = 0x104f7; + CASE_ORBIT[0x104][0xd0] = 0x104f8; + CASE_ORBIT[0x104][0xd1] = 0x104f9; + CASE_ORBIT[0x104][0xd2] = 0x104fa; + CASE_ORBIT[0x104][0xd3] = 0x104fb; + CASE_ORBIT[0x104][0xd8] = 0x104b0; + CASE_ORBIT[0x104][0xd9] = 0x104b1; + CASE_ORBIT[0x104][0xda] = 0x104b2; + CASE_ORBIT[0x104][0xdb] = 0x104b3; + CASE_ORBIT[0x104][0xdc] = 0x104b4; + CASE_ORBIT[0x104][0xdd] = 0x104b5; + CASE_ORBIT[0x104][0xde] = 0x104b6; + CASE_ORBIT[0x104][0xdf] = 0x104b7; + CASE_ORBIT[0x104][0xe0] = 0x104b8; + CASE_ORBIT[0x104][0xe1] = 0x104b9; + CASE_ORBIT[0x104][0xe2] = 0x104ba; + CASE_ORBIT[0x104][0xe3] = 0x104bb; + CASE_ORBIT[0x104][0xe4] = 0x104bc; + CASE_ORBIT[0x104][0xe5] = 0x104bd; + CASE_ORBIT[0x104][0xe6] = 0x104be; + CASE_ORBIT[0x104][0xe7] = 0x104bf; + CASE_ORBIT[0x104][0xe8] = 0x104c0; + CASE_ORBIT[0x104][0xe9] = 0x104c1; + CASE_ORBIT[0x104][0xea] = 0x104c2; + CASE_ORBIT[0x104][0xeb] = 0x104c3; + CASE_ORBIT[0x104][0xec] = 0x104c4; + CASE_ORBIT[0x104][0xed] = 0x104c5; + CASE_ORBIT[0x104][0xee] = 0x104c6; + CASE_ORBIT[0x104][0xef] = 0x104c7; + CASE_ORBIT[0x104][0xf0] = 0x104c8; + CASE_ORBIT[0x104][0xf1] = 0x104c9; + CASE_ORBIT[0x104][0xf2] = 0x104ca; + CASE_ORBIT[0x104][0xf3] = 0x104cb; + CASE_ORBIT[0x104][0xf4] = 0x104cc; + CASE_ORBIT[0x104][0xf5] = 0x104cd; + CASE_ORBIT[0x104][0xf6] = 0x104ce; + CASE_ORBIT[0x104][0xf7] = 0x104cf; + CASE_ORBIT[0x104][0xf8] = 0x104d0; + CASE_ORBIT[0x104][0xf9] = 0x104d1; + CASE_ORBIT[0x104][0xfa] = 0x104d2; + CASE_ORBIT[0x104][0xfb] = 0x104d3; + CASE_ORBIT[0x10c] = new int[256]; + CASE_ORBIT[0x10c][0x80] = 0x10cc0; + CASE_ORBIT[0x10c][0x81] = 0x10cc1; + CASE_ORBIT[0x10c][0x82] = 0x10cc2; + CASE_ORBIT[0x10c][0x83] = 0x10cc3; + CASE_ORBIT[0x10c][0x84] = 0x10cc4; + CASE_ORBIT[0x10c][0x85] = 0x10cc5; + CASE_ORBIT[0x10c][0x86] = 0x10cc6; + CASE_ORBIT[0x10c][0x87] = 0x10cc7; + CASE_ORBIT[0x10c][0x88] = 0x10cc8; + CASE_ORBIT[0x10c][0x89] = 0x10cc9; + CASE_ORBIT[0x10c][0x8a] = 0x10cca; + CASE_ORBIT[0x10c][0x8b] = 0x10ccb; + CASE_ORBIT[0x10c][0x8c] = 0x10ccc; + CASE_ORBIT[0x10c][0x8d] = 0x10ccd; + CASE_ORBIT[0x10c][0x8e] = 0x10cce; + CASE_ORBIT[0x10c][0x8f] = 0x10ccf; + CASE_ORBIT[0x10c][0x90] = 0x10cd0; + CASE_ORBIT[0x10c][0x91] = 0x10cd1; + CASE_ORBIT[0x10c][0x92] = 0x10cd2; + CASE_ORBIT[0x10c][0x93] = 0x10cd3; + CASE_ORBIT[0x10c][0x94] = 0x10cd4; + CASE_ORBIT[0x10c][0x95] = 0x10cd5; + CASE_ORBIT[0x10c][0x96] = 0x10cd6; + CASE_ORBIT[0x10c][0x97] = 0x10cd7; + CASE_ORBIT[0x10c][0x98] = 0x10cd8; + CASE_ORBIT[0x10c][0x99] = 0x10cd9; + CASE_ORBIT[0x10c][0x9a] = 0x10cda; + CASE_ORBIT[0x10c][0x9b] = 0x10cdb; + CASE_ORBIT[0x10c][0x9c] = 0x10cdc; + CASE_ORBIT[0x10c][0x9d] = 0x10cdd; + CASE_ORBIT[0x10c][0x9e] = 0x10cde; + CASE_ORBIT[0x10c][0x9f] = 0x10cdf; + CASE_ORBIT[0x10c][0xa0] = 0x10ce0; + CASE_ORBIT[0x10c][0xa1] = 0x10ce1; + CASE_ORBIT[0x10c][0xa2] = 0x10ce2; + CASE_ORBIT[0x10c][0xa3] = 0x10ce3; + CASE_ORBIT[0x10c][0xa4] = 0x10ce4; + CASE_ORBIT[0x10c][0xa5] = 0x10ce5; + CASE_ORBIT[0x10c][0xa6] = 0x10ce6; + CASE_ORBIT[0x10c][0xa7] = 0x10ce7; + CASE_ORBIT[0x10c][0xa8] = 0x10ce8; + CASE_ORBIT[0x10c][0xa9] = 0x10ce9; + CASE_ORBIT[0x10c][0xaa] = 0x10cea; + CASE_ORBIT[0x10c][0xab] = 0x10ceb; + CASE_ORBIT[0x10c][0xac] = 0x10cec; + CASE_ORBIT[0x10c][0xad] = 0x10ced; + CASE_ORBIT[0x10c][0xae] = 0x10cee; + CASE_ORBIT[0x10c][0xaf] = 0x10cef; + CASE_ORBIT[0x10c][0xb0] = 0x10cf0; + CASE_ORBIT[0x10c][0xb1] = 0x10cf1; + CASE_ORBIT[0x10c][0xb2] = 0x10cf2; + CASE_ORBIT[0x10c][0xc0] = 0x10c80; + CASE_ORBIT[0x10c][0xc1] = 0x10c81; + CASE_ORBIT[0x10c][0xc2] = 0x10c82; + CASE_ORBIT[0x10c][0xc3] = 0x10c83; + CASE_ORBIT[0x10c][0xc4] = 0x10c84; + CASE_ORBIT[0x10c][0xc5] = 0x10c85; + CASE_ORBIT[0x10c][0xc6] = 0x10c86; + CASE_ORBIT[0x10c][0xc7] = 0x10c87; + CASE_ORBIT[0x10c][0xc8] = 0x10c88; + CASE_ORBIT[0x10c][0xc9] = 0x10c89; + CASE_ORBIT[0x10c][0xca] = 0x10c8a; + CASE_ORBIT[0x10c][0xcb] = 0x10c8b; + CASE_ORBIT[0x10c][0xcc] = 0x10c8c; + CASE_ORBIT[0x10c][0xcd] = 0x10c8d; + CASE_ORBIT[0x10c][0xce] = 0x10c8e; + CASE_ORBIT[0x10c][0xcf] = 0x10c8f; + CASE_ORBIT[0x10c][0xd0] = 0x10c90; + CASE_ORBIT[0x10c][0xd1] = 0x10c91; + CASE_ORBIT[0x10c][0xd2] = 0x10c92; + CASE_ORBIT[0x10c][0xd3] = 0x10c93; + CASE_ORBIT[0x10c][0xd4] = 0x10c94; + CASE_ORBIT[0x10c][0xd5] = 0x10c95; + CASE_ORBIT[0x10c][0xd6] = 0x10c96; + CASE_ORBIT[0x10c][0xd7] = 0x10c97; + CASE_ORBIT[0x10c][0xd8] = 0x10c98; + CASE_ORBIT[0x10c][0xd9] = 0x10c99; + CASE_ORBIT[0x10c][0xda] = 0x10c9a; + CASE_ORBIT[0x10c][0xdb] = 0x10c9b; + CASE_ORBIT[0x10c][0xdc] = 0x10c9c; + CASE_ORBIT[0x10c][0xdd] = 0x10c9d; + CASE_ORBIT[0x10c][0xde] = 0x10c9e; + CASE_ORBIT[0x10c][0xdf] = 0x10c9f; + CASE_ORBIT[0x10c][0xe0] = 0x10ca0; + CASE_ORBIT[0x10c][0xe1] = 0x10ca1; + CASE_ORBIT[0x10c][0xe2] = 0x10ca2; + CASE_ORBIT[0x10c][0xe3] = 0x10ca3; + CASE_ORBIT[0x10c][0xe4] = 0x10ca4; + CASE_ORBIT[0x10c][0xe5] = 0x10ca5; + CASE_ORBIT[0x10c][0xe6] = 0x10ca6; + CASE_ORBIT[0x10c][0xe7] = 0x10ca7; + CASE_ORBIT[0x10c][0xe8] = 0x10ca8; + CASE_ORBIT[0x10c][0xe9] = 0x10ca9; + CASE_ORBIT[0x10c][0xea] = 0x10caa; + CASE_ORBIT[0x10c][0xeb] = 0x10cab; + CASE_ORBIT[0x10c][0xec] = 0x10cac; + CASE_ORBIT[0x10c][0xed] = 0x10cad; + CASE_ORBIT[0x10c][0xee] = 0x10cae; + CASE_ORBIT[0x10c][0xef] = 0x10caf; + CASE_ORBIT[0x10c][0xf0] = 0x10cb0; + CASE_ORBIT[0x10c][0xf1] = 0x10cb1; + CASE_ORBIT[0x10c][0xf2] = 0x10cb2; + CASE_ORBIT[0x118] = new int[256]; + CASE_ORBIT[0x118][0xa0] = 0x118c0; + CASE_ORBIT[0x118][0xa1] = 0x118c1; + CASE_ORBIT[0x118][0xa2] = 0x118c2; + CASE_ORBIT[0x118][0xa3] = 0x118c3; + CASE_ORBIT[0x118][0xa4] = 0x118c4; + CASE_ORBIT[0x118][0xa5] = 0x118c5; + CASE_ORBIT[0x118][0xa6] = 0x118c6; + CASE_ORBIT[0x118][0xa7] = 0x118c7; + CASE_ORBIT[0x118][0xa8] = 0x118c8; + CASE_ORBIT[0x118][0xa9] = 0x118c9; + CASE_ORBIT[0x118][0xaa] = 0x118ca; + CASE_ORBIT[0x118][0xab] = 0x118cb; + CASE_ORBIT[0x118][0xac] = 0x118cc; + CASE_ORBIT[0x118][0xad] = 0x118cd; + CASE_ORBIT[0x118][0xae] = 0x118ce; + CASE_ORBIT[0x118][0xaf] = 0x118cf; + CASE_ORBIT[0x118][0xb0] = 0x118d0; + CASE_ORBIT[0x118][0xb1] = 0x118d1; + CASE_ORBIT[0x118][0xb2] = 0x118d2; + CASE_ORBIT[0x118][0xb3] = 0x118d3; + CASE_ORBIT[0x118][0xb4] = 0x118d4; + CASE_ORBIT[0x118][0xb5] = 0x118d5; + CASE_ORBIT[0x118][0xb6] = 0x118d6; + CASE_ORBIT[0x118][0xb7] = 0x118d7; + CASE_ORBIT[0x118][0xb8] = 0x118d8; + CASE_ORBIT[0x118][0xb9] = 0x118d9; + CASE_ORBIT[0x118][0xba] = 0x118da; + CASE_ORBIT[0x118][0xbb] = 0x118db; + CASE_ORBIT[0x118][0xbc] = 0x118dc; + CASE_ORBIT[0x118][0xbd] = 0x118dd; + CASE_ORBIT[0x118][0xbe] = 0x118de; + CASE_ORBIT[0x118][0xbf] = 0x118df; + CASE_ORBIT[0x118][0xc0] = 0x118a0; + CASE_ORBIT[0x118][0xc1] = 0x118a1; + CASE_ORBIT[0x118][0xc2] = 0x118a2; + CASE_ORBIT[0x118][0xc3] = 0x118a3; + CASE_ORBIT[0x118][0xc4] = 0x118a4; + CASE_ORBIT[0x118][0xc5] = 0x118a5; + CASE_ORBIT[0x118][0xc6] = 0x118a6; + CASE_ORBIT[0x118][0xc7] = 0x118a7; + CASE_ORBIT[0x118][0xc8] = 0x118a8; + CASE_ORBIT[0x118][0xc9] = 0x118a9; + CASE_ORBIT[0x118][0xca] = 0x118aa; + CASE_ORBIT[0x118][0xcb] = 0x118ab; + CASE_ORBIT[0x118][0xcc] = 0x118ac; + CASE_ORBIT[0x118][0xcd] = 0x118ad; + CASE_ORBIT[0x118][0xce] = 0x118ae; + CASE_ORBIT[0x118][0xcf] = 0x118af; + CASE_ORBIT[0x118][0xd0] = 0x118b0; + CASE_ORBIT[0x118][0xd1] = 0x118b1; + CASE_ORBIT[0x118][0xd2] = 0x118b2; + CASE_ORBIT[0x118][0xd3] = 0x118b3; + CASE_ORBIT[0x118][0xd4] = 0x118b4; + CASE_ORBIT[0x118][0xd5] = 0x118b5; + CASE_ORBIT[0x118][0xd6] = 0x118b6; + CASE_ORBIT[0x118][0xd7] = 0x118b7; + CASE_ORBIT[0x118][0xd8] = 0x118b8; + CASE_ORBIT[0x118][0xd9] = 0x118b9; + CASE_ORBIT[0x118][0xda] = 0x118ba; + CASE_ORBIT[0x118][0xdb] = 0x118bb; + CASE_ORBIT[0x118][0xdc] = 0x118bc; + CASE_ORBIT[0x118][0xdd] = 0x118bd; + CASE_ORBIT[0x118][0xde] = 0x118be; + CASE_ORBIT[0x118][0xdf] = 0x118bf; + CASE_ORBIT[0x1e9] = new int[256]; + CASE_ORBIT[0x1e9][0x0] = 0x1e922; + CASE_ORBIT[0x1e9][0x1] = 0x1e923; + CASE_ORBIT[0x1e9][0x2] = 0x1e924; + CASE_ORBIT[0x1e9][0x3] = 0x1e925; + CASE_ORBIT[0x1e9][0x4] = 0x1e926; + CASE_ORBIT[0x1e9][0x5] = 0x1e927; + CASE_ORBIT[0x1e9][0x6] = 0x1e928; + CASE_ORBIT[0x1e9][0x7] = 0x1e929; + CASE_ORBIT[0x1e9][0x8] = 0x1e92a; + CASE_ORBIT[0x1e9][0x9] = 0x1e92b; + CASE_ORBIT[0x1e9][0xa] = 0x1e92c; + CASE_ORBIT[0x1e9][0xb] = 0x1e92d; + CASE_ORBIT[0x1e9][0xc] = 0x1e92e; + CASE_ORBIT[0x1e9][0xd] = 0x1e92f; + CASE_ORBIT[0x1e9][0xe] = 0x1e930; + CASE_ORBIT[0x1e9][0xf] = 0x1e931; + CASE_ORBIT[0x1e9][0x10] = 0x1e932; + CASE_ORBIT[0x1e9][0x11] = 0x1e933; + CASE_ORBIT[0x1e9][0x12] = 0x1e934; + CASE_ORBIT[0x1e9][0x13] = 0x1e935; + CASE_ORBIT[0x1e9][0x14] = 0x1e936; + CASE_ORBIT[0x1e9][0x15] = 0x1e937; + CASE_ORBIT[0x1e9][0x16] = 0x1e938; + CASE_ORBIT[0x1e9][0x17] = 0x1e939; + CASE_ORBIT[0x1e9][0x18] = 0x1e93a; + CASE_ORBIT[0x1e9][0x19] = 0x1e93b; + CASE_ORBIT[0x1e9][0x1a] = 0x1e93c; + CASE_ORBIT[0x1e9][0x1b] = 0x1e93d; + CASE_ORBIT[0x1e9][0x1c] = 0x1e93e; + CASE_ORBIT[0x1e9][0x1d] = 0x1e93f; + CASE_ORBIT[0x1e9][0x1e] = 0x1e940; + CASE_ORBIT[0x1e9][0x1f] = 0x1e941; + CASE_ORBIT[0x1e9][0x20] = 0x1e942; + CASE_ORBIT[0x1e9][0x21] = 0x1e943; + CASE_ORBIT[0x1e9][0x22] = 0x1e900; + CASE_ORBIT[0x1e9][0x23] = 0x1e901; + CASE_ORBIT[0x1e9][0x24] = 0x1e902; + CASE_ORBIT[0x1e9][0x25] = 0x1e903; + CASE_ORBIT[0x1e9][0x26] = 0x1e904; + CASE_ORBIT[0x1e9][0x27] = 0x1e905; + CASE_ORBIT[0x1e9][0x28] = 0x1e906; + CASE_ORBIT[0x1e9][0x29] = 0x1e907; + CASE_ORBIT[0x1e9][0x2a] = 0x1e908; + CASE_ORBIT[0x1e9][0x2b] = 0x1e909; + CASE_ORBIT[0x1e9][0x2c] = 0x1e90a; + CASE_ORBIT[0x1e9][0x2d] = 0x1e90b; + CASE_ORBIT[0x1e9][0x2e] = 0x1e90c; + CASE_ORBIT[0x1e9][0x2f] = 0x1e90d; + CASE_ORBIT[0x1e9][0x30] = 0x1e90e; + CASE_ORBIT[0x1e9][0x31] = 0x1e90f; + CASE_ORBIT[0x1e9][0x32] = 0x1e910; + CASE_ORBIT[0x1e9][0x33] = 0x1e911; + CASE_ORBIT[0x1e9][0x34] = 0x1e912; + CASE_ORBIT[0x1e9][0x35] = 0x1e913; + CASE_ORBIT[0x1e9][0x36] = 0x1e914; + CASE_ORBIT[0x1e9][0x37] = 0x1e915; + CASE_ORBIT[0x1e9][0x38] = 0x1e916; + CASE_ORBIT[0x1e9][0x39] = 0x1e917; + CASE_ORBIT[0x1e9][0x3a] = 0x1e918; + CASE_ORBIT[0x1e9][0x3b] = 0x1e919; + CASE_ORBIT[0x1e9][0x3c] = 0x1e91a; + CASE_ORBIT[0x1e9][0x3d] = 0x1e91b; + CASE_ORBIT[0x1e9][0x3e] = 0x1e91c; + CASE_ORBIT[0x1e9][0x3f] = 0x1e91d; + CASE_ORBIT[0x1e9][0x40] = 0x1e91e; + CASE_ORBIT[0x1e9][0x41] = 0x1e91f; + CASE_ORBIT[0x1e9][0x42] = 0x1e920; + CASE_ORBIT[0x1e9][0x43] = 0x1e921; } private UnicodeTables() {} @@ -5288,24 +7844,113 @@ private static int[][] make_foldLu() { private static int[][] make_foldLl() { return new int[][] { - {0x004B, 0x0053, 8}, - {0x00C5, 0x01C4, 255}, - {0x01C5, 0x01C7, 2}, - {0x01C8, 0x01CA, 2}, - {0x01CB, 0x01F1, 38}, - {0x01F2, 0x0345, 339}, - {0x0392, 0x0398, 3}, - {0x0399, 0x039A, 1}, - {0x039C, 0x03A0, 4}, - {0x03A1, 0x03A3, 2}, - {0x03A6, 0x03A9, 3}, - {0x03F4, 0x0412, 30}, - {0x0414, 0x041E, 10}, - {0x0421, 0x0422, 1}, - {0x042A, 0x0462, 56}, - {0x1E60, 0x1E9E, 62}, + {0x0041, 0x005A, 1}, + {0x00C0, 0x00D6, 1}, + {0x00D8, 0x00DE, 1}, + {0x0100, 0x012E, 2}, + {0x0132, 0x0136, 2}, + {0x0139, 0x0147, 2}, + {0x014A, 0x0178, 2}, + {0x0179, 0x017D, 2}, + {0x0181, 0x0182, 1}, + {0x0184, 0x0186, 2}, + {0x0187, 0x0189, 2}, + {0x018A, 0x018B, 1}, + {0x018E, 0x0191, 1}, + {0x0193, 0x0194, 1}, + {0x0196, 0x0198, 1}, + {0x019C, 0x019D, 1}, + {0x019F, 0x01A0, 1}, + {0x01A2, 0x01A6, 2}, + {0x01A7, 0x01A9, 2}, + {0x01AC, 0x01AE, 2}, + {0x01AF, 0x01B1, 2}, + {0x01B2, 0x01B3, 1}, + {0x01B5, 0x01B7, 2}, + {0x01B8, 0x01BC, 4}, + {0x01C4, 0x01C5, 1}, + {0x01C7, 0x01C8, 1}, + {0x01CA, 0x01CB, 1}, + {0x01CD, 0x01DB, 2}, + {0x01DE, 0x01EE, 2}, + {0x01F1, 0x01F2, 1}, + {0x01F4, 0x01F6, 2}, + {0x01F7, 0x01F8, 1}, + {0x01FA, 0x0232, 2}, + {0x023A, 0x023B, 1}, + {0x023D, 0x023E, 1}, + {0x0241, 0x0243, 2}, + {0x0244, 0x0246, 1}, + {0x0248, 0x024E, 2}, + {0x0345, 0x0370, 43}, + {0x0372, 0x0376, 4}, + {0x037F, 0x0386, 7}, + {0x0388, 0x038A, 1}, + {0x038C, 0x038E, 2}, + {0x038F, 0x0391, 2}, + {0x0392, 0x03A1, 1}, + {0x03A3, 0x03AB, 1}, + {0x03CF, 0x03D8, 9}, + {0x03DA, 0x03EE, 2}, + {0x03F4, 0x03F7, 3}, + {0x03F9, 0x03FA, 1}, + {0x03FD, 0x042F, 1}, + {0x0460, 0x0480, 2}, + {0x048A, 0x04C0, 2}, + {0x04C1, 0x04CD, 2}, + {0x04D0, 0x052E, 2}, + {0x0531, 0x0556, 1}, + {0x10A0, 0x10C5, 1}, + {0x10C7, 0x10CD, 6}, + {0x13A0, 0x13F5, 1}, + {0x1E00, 0x1E94, 2}, + {0x1E9E, 0x1EFE, 2}, + {0x1F08, 0x1F0F, 1}, + {0x1F18, 0x1F1D, 1}, + {0x1F28, 0x1F2F, 1}, + {0x1F38, 0x1F3F, 1}, + {0x1F48, 0x1F4D, 1}, + {0x1F59, 0x1F5F, 2}, + {0x1F68, 0x1F6F, 1}, + {0x1F88, 0x1F8F, 1}, + {0x1F98, 0x1F9F, 1}, + {0x1FA8, 0x1FAF, 1}, + {0x1FB8, 0x1FBC, 1}, + {0x1FC8, 0x1FCC, 1}, + {0x1FD8, 0x1FDB, 1}, + {0x1FE8, 0x1FEC, 1}, + {0x1FF8, 0x1FFC, 1}, {0x2126, 0x212A, 4}, - {0x212B, 0xA64A, 34079} + {0x212B, 0x2132, 7}, + {0x2183, 0x2C00, 2685}, + {0x2C01, 0x2C2E, 1}, + {0x2C60, 0x2C62, 2}, + {0x2C63, 0x2C64, 1}, + {0x2C67, 0x2C6D, 2}, + {0x2C6E, 0x2C70, 1}, + {0x2C72, 0x2C75, 3}, + {0x2C7E, 0x2C80, 1}, + {0x2C82, 0x2CE2, 2}, + {0x2CEB, 0x2CED, 2}, + {0x2CF2, 0xA640, 31054}, + {0xA642, 0xA66C, 2}, + {0xA680, 0xA69A, 2}, + {0xA722, 0xA72E, 2}, + {0xA732, 0xA76E, 2}, + {0xA779, 0xA77D, 2}, + {0xA77E, 0xA786, 2}, + {0xA78B, 0xA78D, 2}, + {0xA790, 0xA792, 2}, + {0xA796, 0xA7AA, 2}, + {0xA7AB, 0xA7AE, 1}, + {0xA7B0, 0xA7B4, 1}, + {0xA7B6, 0xFF21, 22379}, + {0xFF22, 0xFF3A, 1}, + {0x10400, 0x10427, 1}, + {0x104B0, 0x104D3, 1}, + {0x10C80, 0x10CB2, 1}, + {0x118A0, 0x118BF, 1}, + {0x1E900, 0x1E921, 1} }; } diff --git a/javatests/com/google/re2j/CharClassTest.java b/javatests/com/google/re2j/CharClassTest.java index 00eea0b3..1852aa82 100644 --- a/javatests/com/google/re2j/CharClassTest.java +++ b/javatests/com/google/re2j/CharClassTest.java @@ -129,7 +129,7 @@ public void testAppendFoldedRange() { // These cases are derived directly from the program logic: // Range is full: folding can't add more. - assertClass(cc().appendFoldedRange(10, 0x10ff0), 10, 0x10ff0); + assertClass(cc().appendFoldedRange(10, Unicode.MAX_RUNE), 10, Unicode.MAX_RUNE); // Range is outside folding possibilities. assertClass(cc().appendFoldedRange(' ', '&'), ' ', '&'); @@ -139,13 +139,9 @@ public void testAppendFoldedRange() { // [MAX_FOLD...] needs no folding assertClass( - cc().appendFoldedRange(0x10400, 0x104f0), - 0x10450, - 0x104f0, - 0x10400, - 0x10426, // lowercase Deseret - 0x10426, - 0x1044f); // uppercase Deseret, abutting. + cc().appendFoldedRange(Unicode.MAX_FOLD + 1, Unicode.MAX_FOLD + 10), + Unicode.MAX_FOLD + 1, + Unicode.MAX_FOLD + 10); } @Test diff --git a/javatests/com/google/re2j/PatternTest.java b/javatests/com/google/re2j/PatternTest.java index 9251a37b..8438de1a 100644 --- a/javatests/com/google/re2j/PatternTest.java +++ b/javatests/com/google/re2j/PatternTest.java @@ -42,6 +42,27 @@ public void testCompile() { assertEquals(0, p.flags()); } + @Test + public void testCompileCaseInsensitiveUnicodeOrbit() { + String cyrillicSmallLetterRoundedVe = "\u1C80"; + String cyrillicCapitalLetterVe = "\u0412"; + String deseretCapitalLetterLongI = "\uD801\uDC00"; + String deseretSmallLetterLongI = "\uD801\uDC28"; + + assertTrue( + Pattern.compile("(?i)" + cyrillicSmallLetterRoundedVe) + .matcher(cyrillicCapitalLetterVe) + .matches()); + assertTrue( + Pattern.compile("(?i)[" + cyrillicSmallLetterRoundedVe + "]") + .matcher(cyrillicCapitalLetterVe) + .matches()); + assertTrue( + Pattern.compile("(?i)" + deseretCapitalLetterLongI) + .matcher(deseretSmallLetterLongI) + .matches()); + } + @Test public void testCompileExceptionWithDuplicateGroups() { try { diff --git a/javatests/com/google/re2j/UnicodeTest.java b/javatests/com/google/re2j/UnicodeTest.java index 8309e4ef..3e06dd4d 100644 --- a/javatests/com/google/re2j/UnicodeTest.java +++ b/javatests/com/google/re2j/UnicodeTest.java @@ -32,6 +32,17 @@ public void testFoldConstants() { } } + @Test + public void testSimpleFoldOrbitsClose() { + for (int r = 0; r <= Unicode.MAX_RUNE; r++) { + int folded = Unicode.simpleFold(r); + for (int steps = 0; folded != r; steps++) { + assertTrue(String.format("simpleFold orbit for #%04X did not close", r), steps < 16); + folded = Unicode.simpleFold(folded); + } + } + } + @Test public void testEqualsIgnoreCase() { List testCases = new ArrayList(); @@ -49,6 +60,8 @@ public void testEqualsIgnoreCase() { testCases.add(new EqualsIgnoreCaseTest('Ú', 'ú', true)); testCases.add(new EqualsIgnoreCaseTest('\u212A', 'K', true)); testCases.add(new EqualsIgnoreCaseTest('\u212A', 'k', true)); + testCases.add(new EqualsIgnoreCaseTest('\u1C80', '\u0412', true)); + testCases.add(new EqualsIgnoreCaseTest(0x10400, 0x10428, true)); testCases.add(new EqualsIgnoreCaseTest('\u212A', 'a', false)); testCases.add(new EqualsIgnoreCaseTest('ü', 'ű', false)); diff --git a/unicode/src/main/java/com/google/re2j/UnicodeTablesGenerator.java b/unicode/src/main/java/com/google/re2j/UnicodeTablesGenerator.java index 324dc219..7f218a86 100644 --- a/unicode/src/main/java/com/google/re2j/UnicodeTablesGenerator.java +++ b/unicode/src/main/java/com/google/re2j/UnicodeTablesGenerator.java @@ -106,18 +106,25 @@ public UnicodeTablesGenerator() { scriptRange.add(i); } - // Emit code fold orbits. In order to avoid a binary search at runtime, this code emits a sparse - // array of codepoint to the next codepoint in a case folding orbit, e.g. + // Emit code fold orbits. In order to avoid a binary search at runtime, this code emits sparse + // pages from codepoint to the next codepoint in a case folding orbit, e.g. // k -> K -> K (Kelvin) -> k. { FieldSpec.Builder caseOrbitField = - FieldSpec.builder(char[].class, "CASE_ORBIT", Modifier.STATIC, Modifier.FINAL); + FieldSpec.builder(int[][].class, "CASE_ORBIT", Modifier.STATIC, Modifier.FINAL); CodeBlock.Builder staticInitBlock = CodeBlock.builder(); - staticInitBlock.addStatement("CASE_ORBIT = new char[$L]", sortedOrbits.lastKey() + 1); + staticInitBlock.addStatement("CASE_ORBIT = new int[$L][]", (sortedOrbits.lastKey() >> 8) + 1); + int lastPage = -1; for (Map.Entry entry : sortedOrbits.entrySet()) { + int page = entry.getKey() >> 8; + if (page != lastPage) { + staticInitBlock.addStatement("CASE_ORBIT[0x$L] = new int[256]", Integer.toHexString(page)); + lastPage = page; + } staticInitBlock.addStatement( - "CASE_ORBIT[0x$L] = 0x$L", - Integer.toHexString(entry.getKey()), + "CASE_ORBIT[0x$L][0x$L] = 0x$L", + Integer.toHexString(page), + Integer.toHexString(entry.getKey() & 0xff), Integer.toHexString(entry.getValue())); } unicodeTables.addField(caseOrbitField.build()); @@ -322,20 +329,8 @@ private SortedMap generateCaseFoldOrbits() { for (int i = 0; i < UCharacter.MAX_CODE_POINT; i++) { SortedSet orb = orbits.get(i); - int u = UCharacter.toUpperCase(i); - int l = UCharacter.toLowerCase(i); - - if (orb.size() == 1 && u == i && l == i) { + if (orb.size() == 1) { orbits.removeAll(i); - } else if (orb.size() == 2) { - int first = orb.first(); - int second = orb.last(); - if (UCharacter.toLowerCase(first) == second && UCharacter.toUpperCase(second) == first) { - orbits.removeAll(i); - } - if (UCharacter.toUpperCase(first) == second && UCharacter.toLowerCase(second) == first) { - orbits.removeAll(i); - } } }