OSDN Git Service

2008-07-06 Kai Tietz <kai.tietz@onevision.com>
[pf3gnuchains/gcc-fork.git] / libjava / include / java-chartables.h
index 3ae8882..d882c67 100644 (file)
@@ -1,6 +1,6 @@
 /* java-chartables.h -- Character tables for java.lang.Character -*- c++ -*-
-   Copyright (C) 2002 Free Software Foundation, Inc.
-   *** This file is generated by scripts/MakeCharTables.java ***
+   Copyright (C) 2002, 2006 Free Software Foundation, Inc.
+   *** This file is generated by scripts/unicode_to_chartables.pl ***
 
 This file is part of GNU Classpath.
 
@@ -16,8 +16,8 @@ General Public License for more details.
 
 You should have received a copy of the GNU General Public License
 along with GNU Classpath; see the file COPYING.  If not, write to the
-Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
-02111-1307 USA.
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
 
 Linking this library statically or dynamically with other modules is
 making a combined work based on this library.  Thus, the terms and
@@ -39,17 +39,15 @@ exception statement from your version. */
 #ifndef __JAVA_CHARTABLES_H__
 #define __JAVA_CHARTABLES_H__
 
-// These tables are automatically generated by scripts/MakeCharTables.java.
-// This is in turn parsing gnu.java.lang.CharData, which is generated by
-// scripts/unicode-muncher.pl.  The Unicode data comes from
-// www.unicode.org; this header is based on
-// gnu/gcj/convert/UnicodeData-3.0.0.txt. JDK 1.4 uses Unicode version 3.0.0.
+// These tables are automatically generated by scripts/unicode_to_chartables.pl.
+// The Unicode data comes from www.unicode.org; this header is based on
+// UnicodeData-4.0.0.txt. JDK 1.5 uses Unicode version 4.0.0.
 // DO NOT EDIT the tables.  Instead, fix the upstream scripts and run
 // them again.
 
 // The data is stored in C style arrays of the appropriate CNI types, to
 // guarantee that the data is constant and non-relocatable.  The field
-// <code>blocks</code> stores the offset of a block of 2<supSHIFT</sup>
+// <code>blocks</code> stores the offset of a block of 2<sup>SHIFT</sup>
 // characters within <code>data</code>. The data field, in turn, stores
 // information about each character in the low order bits, and an offset
 // into the attribute tables <code>upper</code>, <code>lower</code>,
@@ -62,912 +60,1545 @@ exception statement from your version. */
 // This file should only be included by natCharacter.cc
 
 /**
+ * The array containing the numeric values that are too large to be stored as
+ * chars in NUM_VALUE.  NUM_VALUE in this case will contain a negative integer
+ * N such that LARGENUMS[-N - 3] contains the correct numeric value.
+ */
+static const jint largenums[] = {
+    40000, 50000, 60000, 70000, 80000, 90000, };
+
+/**
  * The character shift amount to look up the block offset. In other words,
- * <code>(char) (blocks[ch >> SHIFT] + ch)</code> is the index where
- * <code>ch</code> is described in <code>data</code>.
+ * <code>(char) (blocks[p][off >> SHIFT[p]] + off)</code> is the index where
+ * <code>ch</code> is described in <code>data</code>, where <code>off</code>
+ * is ch & 0xffff and <code>p</code> is the plane the character belongs to.
  */
-#define SHIFT 5
+static const int shift[] = {
+    4, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, };
 
 /**
  * The mapping of character blocks to their location in <code>data</code>.
  * Each entry has been adjusted so that a modulo 16 sum with the desired
  * character gives the actual index into <code>data</code>.
  */
-static const jchar blocks[] = {
-    450, 450, 449, 300, 299, 416, 504, 638, 513, 656,
-    439, 713, 343, 681, 575, 440, 257, 599, 761, 761,
-    880, 867, 65167, 830, 65413, 65381, 64949, 64929, 65469, 702,
-    65470, 65513, 65192, 65326, 559, 65185, 65437, 65121, 65449, 64288,
-    195, 269, 254, 64353, 64346, 261, 259, 248, 65163, 547,
-    600, 449, 502, 470, 65249, 547, 64938, 64341, 355, 65123,
-    246, 253, 65027, 64995, 64963, 64931, 64899, 64867, 64835, 64803,
-    64771, 64739, 95, 74, 165, 307, 65032, 93, 335, 418,
-    63081, 291, 290, 63681, 65104, 258, 257, 64067, 64648, 65191,
-    192, 64673, 64399, 62589, 153, 64273, 65050, 64802, 64297, 53,
-    62393, 65105, 64712, 65461, 62265, 64146, 65413, 65333, 64078, 63334,
-    65317, 64209, 64355, 64564, 65247, 63331, 64682, 64130, 64953, 63203,
-    65087, 64705, 65097, 63467, 63247, 62184, 64921, 62947, 63844, 64508,
-    64913, 62819, 62787, 62524, 62518, 61291, 63588, 63556, 64594, 63492,
-    63460, 64521, 63396, 61084, 64394, 63300, 63476, 63236, 63428, 63372,
-    62571, 62668, 63276, 63044, 62459, 63047, 62019, 62916, 62884, 60577,
-    62819, 62788, 62756, 62724, 62692, 62660, 62628, 62596, 62564, 62532,
-    62500, 62468, 62436, 62404, 62372, 62340, 62308, 62276, 62244, 62083,
-    63345, 62148, 62116, 63281, 61123, 61091, 61059, 61027, 61924, 62620,
-    62783, 60745, 62161, 61764, 59629, 59422, 61668, 62865, 60675, 60643,
-    60611, 60579, 60547, 60515, 60483, 60451, 60419, 60387, 60355, 60323,
-    60291, 60259, 60227, 60195, 60163, 60131, 60099, 60067, 60035, 60003,
-    59971, 59939, 59907, 59875, 59843, 59811, 59779, 59747, 59715, 59683,
-    59651, 59619, 59587, 59555, 59523, 59491, 59459, 59427, 59395, 59363,
-    58625, 58593, 58561, 58529, 61393, 58465, 58433, 58407, 61313, 61265,
-    61265, 61265, 61265, 61249, 57773, 61248, 61248, 61248, 57824, 58239,
-    61184, 59859, 60389, 58591, 61134, 61279, 58512, 61247, 61155, 61302,
-    61038, 61290, 61303, 61298, 61067, 61389, 61047, 60959, 60961, 61279,
-    61399, 61072, 61389, 61403, 61283, 57891, 57859, 57827, 60709, 60727,
-    60691, 61206, 61186, 60737, 60727, 60717, 60453, 60421, 60389, 60357,
-    60360, 60022, 60259, 60262, 59824, 60165, 60133, 59875, 57155, 57123,
-    57091, 57059, 59658, 59933, 60242, 60233, 60223, 60127, 56835, 56803,
-    59685, 59653, 59621, 59589, 59557, 59525, 59493, 59461, 56515, 56483,
-    56451, 56419, 56387, 56355, 56323, 56291, 56259, 56227, 56195, 56163,
-    56131, 56099, 56067, 56035, 56003, 55971, 55939, 55907, 55875, 55843,
-    55811, 55779, 55747, 55715, 55683, 55651, 55619, 55587, 55555, 55523,
-    55491, 55459, 55427, 55395, 55363, 55331, 55299, 55267, 55235, 55203,
-    55171, 55139, 58027, 57989, 57957, 57962, 57893, 57861, 57829, 57797,
-    57765, 57733, 57736, 56713, 58274, 57293, 55587, 55556, 58178, 55491,
-    55460, 56529, 56492, 54907, 55332, 55300, 57954, 52958, 54275, 54243,
-    57616, 57571, 57797, 57521, 57521, 57688, 57105, 57390, 57357, 57325,
-    57293, 56934, 57229, 57197, 57167, 57134, 54628, 54596, 54564, 54532,
-    54500, 54468, 54436, 54404, 54372, 54340, 54308, 54276, 54244, 54212,
-    54180, 54148, 54116, 54084, 54052, 54020, 53988, 53956, 53924, 53892,
-    53860, 53828, 53796, 53764, 53732, 53700, 53668, 53636, 53604, 53572,
-    53540, 53508, 53476, 53444, 53412, 53380, 53348, 53316, 53284, 53252,
-    53220, 53188, 53156, 53124, 53092, 53060, 53028, 52996, 52964, 52932,
-    52900, 52868, 52836, 52804, 52772, 52740, 52708, 52676, 52644, 52612,
-    52580, 52548, 52516, 52484, 52452, 52420, 52388, 52356, 52324, 52292,
-    52260, 52228, 52196, 52164, 52132, 52100, 52068, 52036, 52004, 51972,
-    51940, 51908, 51876, 51844, 51812, 51780, 51748, 51716, 51684, 51652,
-    51620, 51588, 51556, 51524, 51492, 51460, 51428, 51396, 51364, 51332,
-    51300, 51268, 51236, 51204, 51172, 51140, 51108, 51076, 51044, 51012,
-    50980, 50948, 50916, 50884, 50852, 50820, 50788, 50756, 50724, 50692,
-    50660, 50628, 50596, 50564, 50532, 50500, 50468, 50436, 50404, 50372,
-    50340, 50308, 50276, 50244, 50212, 50180, 50148, 50116, 50084, 50052,
-    50020, 49988, 49956, 49924, 49892, 49860, 49828, 49796, 49764, 49732,
-    49700, 49668, 49636, 49604, 49572, 49540, 49508, 49476, 49444, 49412,
-    49380, 49348, 49316, 49284, 49252, 49220, 49188, 49156, 49124, 49092,
-    49060, 49028, 48996, 48964, 48932, 48900, 48868, 48836, 48804, 48772,
-    48740, 48708, 48676, 48644, 48612, 48580, 48548, 48516, 48484, 48452,
-    48420, 48388, 48356, 48324, 48292, 48260, 48228, 48196, 48164, 48132,
-    48100, 45792, 47107, 47075, 47972, 47940, 47908, 47876, 47844, 47812,
-    47780, 47748, 47716, 47684, 47652, 47620, 47588, 47556, 47524, 47492,
-    47460, 47428, 47396, 47364, 47332, 47300, 47268, 47236, 47204, 47172,
-    47140, 47108, 47076, 47044, 47012, 46980, 46948, 46916, 46884, 46852,
-    46820, 46788, 46756, 46724, 46692, 46660, 46628, 46596, 46564, 46532,
-    46500, 46468, 46436, 46404, 46372, 46340, 46308, 46276, 46244, 46212,
-    46180, 46148, 46116, 46084, 46052, 46020, 45988, 45956, 45924, 45892,
-    45860, 45828, 45796, 45764, 45732, 45700, 45668, 45636, 45604, 45572,
-    45540, 45508, 45476, 45444, 45412, 45380, 45348, 45316, 45284, 45252,
-    45220, 45188, 45156, 45124, 45092, 45060, 45028, 44996, 44964, 44932,
-    44900, 44868, 44836, 44804, 44772, 44740, 44708, 44676, 44644, 44612,
-    44580, 44548, 44516, 44484, 44452, 44420, 44388, 44356, 44324, 44292,
-    44260, 44228, 44196, 44164, 44132, 44100, 44068, 44036, 44004, 43972,
-    43940, 43908, 43876, 43844, 43812, 43780, 43748, 43716, 43684, 43652,
-    43620, 43588, 43556, 43524, 43492, 43460, 43428, 43396, 43364, 43332,
-    43300, 43268, 43236, 43204, 43172, 43140, 43108, 43076, 43044, 43012,
-    42980, 42948, 42916, 42884, 42852, 42820, 42788, 42756, 42724, 42692,
-    42660, 42628, 42596, 42564, 42532, 42500, 42468, 42436, 42404, 42372,
-    42340, 42308, 42276, 42244, 42212, 42180, 42148, 42116, 42084, 42052,
-    42020, 41988, 41956, 41924, 41892, 41860, 41828, 41796, 41764, 41732,
-    41700, 41668, 41636, 41604, 41572, 41540, 41508, 41476, 41444, 41412,
-    41380, 41348, 41316, 41284, 41252, 41220, 41188, 41156, 41124, 41092,
-    41060, 41028, 40996, 40964, 40932, 40900, 40868, 40836, 40804, 40772,
-    40740, 40708, 40676, 40644, 40612, 40580, 40548, 40516, 40484, 40452,
-    40420, 40388, 40356, 40324, 40292, 40260, 40228, 40196, 40164, 40132,
-    40100, 40068, 40036, 40004, 39972, 39940, 39908, 39876, 39844, 39812,
-    39780, 39748, 39716, 39684, 39652, 39620, 39588, 39556, 39524, 39492,
-    39460, 39428, 39396, 39364, 39332, 39300, 39268, 39236, 39204, 39172,
-    39140, 39108, 39076, 39044, 39012, 38980, 38948, 38916, 38884, 38852,
-    38820, 38788, 38756, 38724, 38692, 38660, 38628, 38596, 38564, 38532,
-    38500, 38468, 38436, 38404, 38372, 38340, 38308, 38276, 38244, 38212,
-    38180, 38148, 38116, 38084, 38052, 38020, 37988, 37956, 37924, 37892,
-    37860, 37828, 37796, 37764, 37732, 37700, 37668, 37636, 37604, 37572,
-    37540, 37508, 37476, 37444, 37412, 37380, 37348, 37316, 37284, 37252,
-    37220, 37188, 37156, 37124, 37092, 37060, 37028, 36996, 36964, 36932,
-    36900, 36868, 36836, 36804, 36772, 36740, 36708, 36676, 36644, 36612,
-    36580, 36548, 36516, 36484, 36452, 36420, 36388, 36356, 36324, 36292,
-    36260, 36228, 36196, 36164, 36132, 36100, 36068, 36036, 36004, 35972,
-    35940, 35908, 35876, 35844, 35812, 35780, 35748, 35716, 35684, 35652,
-    35620, 35588, 35556, 35524, 35492, 35460, 35428, 35396, 35364, 35332,
-    35300, 35268, 35236, 35204, 35172, 35140, 35108, 35076, 35044, 35012,
-    34980, 34948, 34916, 34884, 34852, 34820, 34788, 34756, 34724, 34692,
-    34660, 34628, 34596, 34564, 34532, 34500, 34468, 34436, 34404, 34372,
-    34340, 34308, 34276, 34244, 34212, 34180, 34148, 34116, 34084, 34052,
-    34020, 33988, 33956, 33924, 33892, 33860, 33828, 33796, 33764, 33732,
-    33700, 33668, 33636, 33604, 33572, 33540, 33508, 33476, 33444, 33412,
-    33380, 33348, 33316, 33284, 33252, 33220, 33188, 33156, 33124, 33092,
-    33060, 33028, 32996, 32964, 32932, 32900, 32868, 32836, 32804, 32772,
-    32740, 32708, 32676, 32644, 32612, 32580, 32548, 32516, 32484, 32452,
-    32420, 32388, 32356, 32324, 32292, 32260, 32228, 32196, 32164, 32132,
-    32100, 32068, 32036, 32004, 31972, 31940, 31908, 31876, 31844, 31812,
-    31780, 31748, 31716, 31684, 31652, 31620, 31588, 31556, 31524, 31492,
-    31460, 31428, 31396, 31364, 31332, 31300, 31268, 31236, 31204, 31172,
-    31140, 31108, 31076, 31044, 31012, 30980, 30948, 30916, 30884, 30852,
-    30820, 30788, 30756, 30724, 30692, 30660, 30628, 30596, 30564, 30532,
-    30500, 30468, 30436, 30404, 30372, 30340, 30308, 30276, 30244, 30212,
-    30180, 30148, 30116, 30084, 30052, 30020, 29988, 29956, 29924, 29892,
-    29860, 29828, 29796, 29764, 29732, 29700, 29668, 29636, 29604, 29572,
-    29540, 29508, 29476, 29444, 29412, 29380, 29348, 29316, 29284, 29252,
-    29220, 29188, 29156, 29124, 29092, 29060, 29028, 28996, 28964, 28932,
-    28900, 28868, 28836, 28804, 28772, 28740, 28708, 28676, 28644, 28612,
-    28580, 28548, 28516, 28484, 28452, 28420, 28388, 28356, 28324, 28292,
-    28260, 28228, 28196, 28164, 28132, 28100, 28068, 28036, 28004, 27972,
-    27940, 27908, 27876, 27844, 27812, 27780, 27748, 27716, 27684, 27652,
-    27620, 27588, 27556, 27524, 27492, 27460, 27428, 27396, 27364, 27332,
-    27300, 27268, 27236, 27204, 27172, 27140, 27108, 24816, 26115, 26083,
-    26980, 26948, 26916, 26884, 26852, 26820, 26788, 26756, 26724, 26692,
-    26660, 26628, 26596, 26564, 26532, 26500, 26468, 26436, 26404, 26372,
-    26340, 26308, 26276, 26244, 26212, 26180, 26148, 26116, 26084, 26052,
-    26020, 25988, 25956, 25924, 25892, 25860, 27424, 28123, 28310, 24803,
-    24771, 24739, 24707, 24675, 24643, 24611, 24579, 24547, 24515, 24483,
-    24451, 24419, 24387, 24355, 24323, 24291, 24259, 24227, 24195, 24163,
-    24131, 24099, 24067, 24035, 24003, 23971, 23939, 23907, 23875, 23843,
-    23811, 23779, 23747, 23715, 23683, 23651, 23619, 23587, 23555, 23523,
-    23491, 23459, 23427, 23395, 23363, 23331, 23299, 23267, 23235, 23203,
-    23171, 23139, 23107, 23075, 23043, 23011, 23908, 23876, 23844, 23812,
-    23780, 23748, 23716, 23684, 23652, 23620, 23588, 23556, 23524, 23492,
-    23460, 23428, 23396, 23364, 23332, 23300, 23268, 23236, 23204, 23172,
-    23140, 23108, 23076, 23044, 23012, 22980, 22948, 22916, 22884, 22852,
-    22820, 22788, 22756, 22724, 22692, 22660, 22628, 22596, 22564, 22532,
-    22500, 22468, 22436, 22404, 22372, 22340, 22308, 22276, 22244, 22212,
-    22180, 22148, 22116, 22084, 22052, 22020, 21988, 21956, 21924, 21892,
-    21860, 21828, 21796, 21764, 21732, 21700, 21668, 21636, 21604, 21572,
-    21540, 21508, 21476, 21444, 21412, 21380, 21348, 21316, 21284, 21252,
-    21220, 21188, 21156, 21124, 21092, 21060, 21028, 20996, 20964, 20932,
-    20900, 20868, 20836, 20804, 20772, 20740, 20708, 20676, 20644, 20612,
-    20580, 20548, 20516, 20484, 20452, 20420, 20388, 20356, 20324, 20292,
-    20260, 20228, 20196, 20164, 20132, 20100, 20068, 20036, 20004, 19972,
-    19940, 19908, 19876, 19844, 19812, 19780, 19748, 19716, 19684, 19652,
-    19620, 19588, 19556, 19524, 19492, 19460, 19428, 19396, 19364, 19332,
-    19300, 19268, 19236, 19204, 19172, 19140, 19108, 19076, 19044, 19012,
-    18980, 18948, 18916, 18884, 18852, 18820, 18788, 18756, 18724, 18692,
-    18660, 18628, 18596, 18564, 18532, 18500, 18468, 18436, 18404, 18372,
-    18340, 18308, 18276, 18244, 18212, 18180, 18148, 18116, 18084, 18052,
-    18020, 17988, 17956, 17924, 17892, 17860, 17828, 17796, 17764, 17732,
-    17700, 17668, 17636, 17604, 17572, 17540, 17508, 17476, 17444, 17412,
-    17380, 17348, 17316, 17284, 17252, 17220, 17188, 17156, 17124, 17092,
-    17060, 17028, 16996, 16964, 16932, 16900, 16868, 16836, 16804, 16772,
-    16740, 16708, 16676, 16644, 16612, 16580, 16548, 16516, 16484, 16452,
-    16420, 16388, 16356, 16324, 16292, 16260, 16228, 16196, 16164, 16132,
-    16100, 16068, 16036, 16004, 15972, 15940, 15908, 15876, 15844, 15812,
-    15780, 15748, 15716, 15684, 15652, 15620, 15588, 15556, 15524, 15492,
-    15460, 15428, 15396, 15364, 15332, 15300, 15268, 15236, 15204, 15172,
-    15140, 15108, 15076, 15044, 15012, 14980, 14948, 14916, 14884, 14852,
-    14820, 14788, 14756, 14724, 14692, 14660, 14628, 14596, 14564, 14532,
-    14500, 14468, 14436, 14404, 14372, 14340, 14308, 14276, 14244, 14212,
-    14180, 14148, 14116, 14084, 14052, 14020, 13988, 13956, 13924, 13892,
-    13860, 13828, 13796, 13764, 13732, 13700, 13668, 13636, 13604, 13572,
-    13540, 13508, 13476, 13444, 13412, 13380, 13348, 13316, 13284, 13252,
-    13220, 13188, 13156, 13124, 13092, 13060, 13028, 12996, 12964, 12932,
-    12900, 12868, 12836, 12804, 12772, 10482, 11779, 11747, 15397, 15365,
-    15333, 15301, 15269, 15237, 15205, 15173, 15141, 15109, 15077, 15045,
-    15013, 14981, 14949, 14917, 14885, 14853, 14821, 14789, 14757, 14725,
-    14693, 14661, 14629, 14597, 14565, 14533, 14501, 14469, 14437, 14405,
-    14373, 14341, 14309, 14277, 14245, 14213, 14181, 14149, 14117, 14085,
-    14053, 14021, 13989, 13957, 13925, 13893, 13861, 13829, 13797, 13765,
-    13733, 13701, 13669, 13637, 13605, 13573, 13541, 13509, 13477, 13445,
-    13413, 13381, 13381, 13349, 13317, 13285, 13253, 13221, 13189, 13157,
-    13125, 13093, 13061, 13029, 12997, 12965, 12933, 12901, 12869, 12837,
-    12805, 12773, 12741, 12709, 12677, 12645, 12613, 12581, 12549, 12517,
-    12485, 12453, 12421, 12389, 12357, 12325, 12293, 12261, 12229, 12197,
-    12165, 12133, 12101, 12069, 12037, 12005, 11973, 11941, 11909, 11877,
-    11845, 11813, 11781, 11749, 11717, 11685, 11653, 11621, 11589, 11557,
-    11525, 11493, 11461, 11429, 11397, 11365, 11333, 11301, 11269, 11237,
-    11205, 11173, 11141, 11109, 11077, 11045, 11013, 10981, 10949, 10917,
-    10885, 10853, 10821, 10789, 10757, 10725, 10693, 10661, 10629, 10597,
-    10565, 10533, 10501, 10469, 10437, 10405, 10373, 10341, 10309, 10277,
-    10245, 10213, 10181, 10149, 10117, 10085, 10053, 10021, 9989, 9957,
-    9925, 9893, 9861, 9829, 9797, 9765, 9733, 9701, 9669, 9637,
-    9605, 9573, 9541, 9509, 9477, 9445, 9413, 9381, 9349, 9317,
-    9285, 9253, 9221, 9189, 9157, 9125, 9093, 9061, 9029, 8997,
-    8965, 8933, 8901, 8869, 8837, 8805, 8773, 8741, 8709, 8677,
-    8645, 8613, 8581, 8549, 8517, 8485, 8453, 8421, 8389, 8357,
-    8325, 8293, 8261, 8229, 8197, 8165, 8133, 8101, 8069, 8037,
-    8005, 7973, 7941, 7909, 7877, 7845, 7813, 7781, 7749, 7717,
-    7685, 7653, 7621, 7589, 7557, 7525, 7493, 7461, 7429, 7397,
-    7365, 7333, 7301, 7269, 7237, 7205, 7173, 7141, 7109, 7077,
-    7045, 7013, 4196, 4164, 4132, 4100, 4068, 4036, 4004, 3972,
-    3940, 1640, 2947, 2915, 2883, 2851, 2819, 2787, 2674, 6469,
-    2641, 3350, 3318, 3244, 3235, 3222, 3190, 3158, 3126, 3094,
-    3062, 3030, 2998, 2966, 2934, 2904, 2854, 2838, 2738, 2774,
-    2710, 706, 1987, 5733, 5729, 1023, 2550, 2518, 2486, 1500,
-    2994, 5537, 4032, 448, 433, 2501, 2086, 4735,
-  };
-/** Length of blocks. */
-static const int blocks_length = 2048;
+static const jchar blocks0[] = {
+    15, 23, 53, 7, 52, 52, 90, 65424, 65437, 65427, 
+    11, 65461, 11, 4, 28, 21, 23, 7, 65527, 173, 
+    269, 65479, 65463, 65403, 273, 273, 183, 257, 65500, 65354, 
+    65335, 65267, 65303, 65287, 65269, 65401, 220, 50, 321, 5, 
+    65511, 317, 304, 311, 355, 355, 274, 325, 358, 342, 
+    326, 310, 65409, 401, 262, 65156, 458, 64826, 442, 64843, 
+    426, 65140, 64823, 334, 435, 64699, 64683, 64716, 64700, 371, 
+    64695, 64679, 64680, 64647, 64631, 64615, 275, 64583, 64567, 64578, 
+    64535, 65036, 65020, 64723, 64708, 64701, 65034, 65019, 65012, 65237, 
+    65219, 64791, 64789, 138, 127, 181, 64945, 220, 64878, 249, 
+    203, 65507, 107, 249, 64783, 64767, 64751, 64735, 64719, 9, 
+    171, 105, 65531, 88, 64623, 64822, 65494, 64460, 64444, 64428, 
+    64527, 64511, 65392, 65529, 64348, 64332, 64316, 64300, 64284, 64268, 
+    64252, 64236, 64220, 64204, 64188, 64172, 64156, 64140, 64124, 64108, 
+    64092, 64076, 64060, 64044, 65249, 64259, 64243, 65267, 64724, 65291, 
+    65299, 63915, 64394, 63482, 64105, 64485, 64366, 63758, 65193, 65199, 
+    64377, 63354, 63977, 63687, 65020, 63328, 64386, 65087, 63204, 63872, 
+    63849, 63246, 64454, 63332, 64937, 64989, 64010, 63098, 63721, 64328, 
+    63117, 62956, 64913, 63171, 63428, 63323, 63407, 63323, 63803, 64222, 
+    64347, 64791, 63236, 63489, 63465, 64420, 64727, 63279, 64657, 63148, 
+    64331, 63361, 63337, 64631, 64369, 63898, 64529, 63020, 64203, 63233, 
+    63209, 64143, 64503, 63838, 64401, 62892, 64468, 62443, 63091, 63450, 
+    64391, 63538, 62780, 62759, 62994, 62979, 62963, 64143, 64157, 64041, 
+    62652, 62636, 62151, 63220, 63096, 64185, 64185, 63935, 62524, 62508, 
+    64137, 62218, 63176, 63172, 62666, 62659, 63643, 62845, 63847, 62669, 
+    62662, 62649, 62052, 62284, 62268, 62252, 62483, 62467, 62722, 63849, 
+    63671, 63833, 62140, 62124, 62108, 62092, 63783, 63767, 63761, 62275, 
+    62259, 63347, 62227, 62211, 62195, 62179, 62163, 63148, 62131, 62115, 
+    62099, 62083, 63075, 62051, 62035, 62019, 62003, 63473, 61963, 61955, 
+    61939, 61923, 61227, 61211, 61875, 61859, 61163, 61827, 61795, 61123, 
+    61107, 61755, 61731, 61731, 61699, 61027, 61683, 61667, 61643, 62635, 
+    62147, 62425, 61340, 61324, 61555, 61539, 61523, 61507, 61491, 62966, 
+    61458, 61443, 61427, 61411, 61395, 61379, 61363, 61347, 61331, 61315, 
+    61299, 61283, 61267, 61251, 61235, 61219, 61203, 61187, 61171, 61155, 
+    61139, 61123, 61107, 61091, 61075, 61059, 61043, 61027, 61011, 60995, 
+    60979, 60963, 60947, 60931, 60915, 60899, 60883, 60867, 60205, 62324, 
+    61814, 61782, 60787, 60771, 60755, 60739, 62073, 62215, 60677, 62199, 
+    60659, 62183, 60627, 62167, 60581, 62151, 60563, 60547, 60531, 62103, 
+    61004, 62098, 60246, 62097, 62097, 60198, 60403, 60387, 61402, 60355, 
+    60339, 61811, 60307, 60291, 61953, 60012, 59996, 59980, 59964, 59948, 
+    60179, 61161, 61746, 60531, 59888, 60099, 61080, 61558, 59804, 59788, 
+    59772, 59756, 59740, 59724, 61668, 61652, 59676, 59660, 59644, 59628, 
+    59612, 59596, 59580, 59564, 59548, 59532, 59516, 59500, 59484, 59468, 
+    59452, 59436, 59420, 59404, 59388, 59372, 59356, 59340, 59324, 59308, 
+    59292, 59276, 59260, 59244, 59228, 59212, 59196, 59180, 59164, 59148, 
+    59132, 59116, 59100, 59084, 59068, 59052, 59036, 59020, 59004, 58988, 
+    58972, 58956, 58940, 58924, 59088, 59072, 59060, 59056, 59040, 59024, 
+    61022, 58796, 58780, 58764, 58748, 58732, 58716, 58700, 58684, 58668, 
+    58135, 58119, 58103, 58087, 58071, 58055, 58039, 58023, 58007, 58200, 
+    57975, 57959, 57943, 57927, 57911, 59112, 60622, 60622, 60590, 60574, 
+    60574, 60574, 60526, 60558, 60558, 60542, 60526, 60526, 58499, 60510, 
+    60510, 57701, 60494, 60494, 57467, 60493, 57427, 57334, 59163, 60445, 
+    60445, 57996, 60429, 60427, 57948, 60411, 58887, 57900, 58047, 59809, 
+    60046, 59529, 60439, 58731, 60423, 60423, 60423, 59922, 60407, 59668, 
+    59654, 59631, 59620, 59616, 59751, 60187, 60182, 59602, 60111, 60058, 
+    59577, 60060, 59602, 59637, 60006, 60003, 59952, 59516, 59950, 59932, 
+    60070, 59316, 60048, 60043, 60033, 60017, 60001, 57613, 59204, 57620, 
+    59188, 57600, 59140, 59945, 57148, 57132, 59076, 59060, 59859, 57068, 
+    59823, 57036, 59825, 59805, 59785, 59785, 59681, 59818, 59808, 59808, 
+    59798, 58754, 58820, 58804, 58788, 58772, 58756, 58740, 58724, 58708, 
+    58692, 58676, 58660, 59374, 58626, 58612, 58596, 58588, 58564, 57001, 
+    58532, 58516, 58500, 58484, 58469, 59260, 58436, 59240, 59224, 56428, 
+    56412, 56396, 56380, 56364, 56728, 58292, 56729, 58260, 56650, 59204, 
+    56673, 56667, 56657, 58964, 58148, 58939, 56156, 58635, 59076, 58084, 
+    58052, 58036, 58020, 58004, 57988, 57972, 57956, 57940, 57924, 57908, 
+    57892, 57876, 57860, 57844, 57828, 57812, 57812, 57796, 57780, 57764, 
+    57748, 57732, 57716, 57700, 57710, 57702, 58220, 57822, 57775, 58235, 
+    57679, 57584, 57562, 58161, 57661, 57673, 57492, 57671, 58045, 57561, 
+    57996, 57980, 57473, 57948, 57932, 57405, 57879, 57420, 58092, 55308, 
+    55292, 55276, 55260, 55244, 55228, 55212, 55196, 55180, 55164, 55148, 
+    55132, 55116, 55100, 55084, 55068, 55052, 55036, 55020, 55004, 54988, 
+    54972, 54956, 54940, 54924, 54908, 54892, 54876, 54860, 54844, 54828, 
+    54812, 54796, 54780, 54764, 54748, 54732, 54716, 54700, 54684, 54668, 
+    54652, 54636, 54620, 54604, 54588, 54572, 54556, 54540, 54524, 54508, 
+    54492, 54476, 54460, 54444, 56388, 54823, 56356, 56340, 56324, 56308, 
+    56292, 57094, 56260, 56244, 56228, 56212, 56196, 56180, 56164, 56148, 
+    56132, 56116, 56100, 56084, 56068, 56868, 54076, 56830, 57012, 57010, 
+    54323, 56918, 54226, 54211, 54195, 54179, 54163, 55228, 54114, 54115, 
+    54099, 54083, 54067, 55067, 55046, 54019, 55001, 53986, 53971, 53955, 
+    53939, 53923, 53891, 53991, 53875, 55347, 53596, 53580, 53564, 53795, 
+    56257, 56244, 56368, 56209, 56320, 56450, 56161, 56149, 56272, 56113, 
+    56097, 56100, 56165, 56049, 56033, 56133, 56001, 55985, 55969, 55953, 
+    55937, 55921, 55905, 55994, 55873, 55857, 55841, 55825, 55809, 55795, 
+    55777, 55762, 53267, 53251, 53235, 53219, 53203, 53187, 53171, 53155, 
+    53139, 53123, 53107, 53091, 53075, 53059, 53043, 53027, 53011, 52995, 
+    52979, 52963, 52947, 52931, 52915, 52899, 52883, 52867, 52851, 52835, 
+    52819, 52803, 52787, 52771, 52755, 52739, 52723, 52707, 52691, 52675, 
+    52659, 52643, 52627, 52611, 52595, 52579, 52563, 52547, 52531, 52515, 
+    52499, 52483, 52467, 52451, 52435, 52419, 52403, 52387, 52371, 52355, 
+    52339, 52323, 52307, 52291, 52275, 52259, 52243, 52227, 52211, 52195, 
+    52179, 52163, 52147, 52131, 52115, 52099, 52083, 52067, 52051, 52035, 
+    52019, 52003, 51987, 51971, 51955, 51939, 51923, 51907, 51891, 51875, 
+    51859, 51843, 51827, 51811, 51795, 51779, 51763, 51747, 51731, 51715, 
+    51699, 51683, 51667, 51651, 51635, 51619, 51603, 51587, 51571, 51555, 
+    51539, 51523, 51507, 51491, 51475, 51459, 51443, 51427, 51411, 51395, 
+    51379, 51363, 51347, 51331, 51315, 51299, 51283, 51267, 51251, 51235, 
+    51219, 51203, 51187, 51171, 51155, 51139, 51123, 51107, 51091, 51075, 
+    51059, 51043, 51027, 51011, 50995, 50979, 50963, 50947, 50931, 50915, 
+    50899, 50883, 50867, 50851, 50835, 50819, 50803, 50787, 50771, 50755, 
+    50739, 50723, 50707, 50691, 50675, 50659, 50643, 50627, 50611, 50595, 
+    50579, 50563, 50547, 50531, 50515, 50499, 50483, 50467, 50451, 50435, 
+    50419, 50403, 50387, 50371, 50355, 50339, 50323, 50307, 50291, 50275, 
+    50259, 50243, 50227, 50211, 50195, 50179, 50163, 50147, 50131, 50115, 
+    50099, 50083, 50067, 50051, 50035, 50019, 50003, 49987, 49971, 49955, 
+    49939, 49923, 49907, 49891, 49875, 49859, 49843, 49827, 49811, 49795, 
+    49779, 49763, 49747, 49731, 49715, 49699, 49683, 49667, 49651, 49635, 
+    49619, 49603, 49587, 49571, 49555, 49539, 49523, 49507, 49491, 49475, 
+    49459, 49443, 49427, 49411, 49395, 49379, 49363, 49347, 49331, 49315, 
+    49299, 49283, 49267, 49251, 49235, 49219, 49203, 49187, 49171, 49155, 
+    49139, 49123, 49107, 49091, 49075, 49059, 49043, 49027, 49011, 48995, 
+    48979, 48963, 48947, 48931, 48915, 48899, 48883, 48867, 48851, 48835, 
+    48819, 48803, 48787, 48771, 48755, 48739, 48723, 48707, 48691, 48675, 
+    48659, 48643, 48627, 48611, 48595, 48579, 48563, 48547, 48531, 48515, 
+    48499, 48483, 48467, 48451, 48435, 48419, 48403, 48387, 48371, 48355, 
+    48339, 48323, 48307, 48291, 48275, 48259, 48243, 48227, 48211, 48195, 
+    48179, 48163, 48147, 48131, 48115, 48099, 48083, 48067, 48051, 48035, 
+    48019, 48003, 47987, 47971, 47955, 47939, 47923, 47907, 47891, 47875, 
+    47859, 47843, 47827, 47811, 47795, 47779, 47763, 47747, 47731, 47715, 
+    47699, 47683, 47667, 47651, 47635, 47619, 47603, 47587, 47571, 47555, 
+    47539, 47523, 47507, 47491, 47475, 47459, 47443, 47427, 47411, 47395, 
+    47379, 47363, 47347, 47331, 47315, 47299, 47283, 47267, 47251, 47235, 
+    47219, 47203, 47187, 47171, 47155, 47139, 47123, 47107, 47091, 47075, 
+    47059, 47043, 47027, 47011, 46995, 46979, 46963, 46947, 46931, 46915, 
+    46899, 46883, 46867, 46851, 46835, 46819, 46803, 46787, 46771, 46755, 
+    46739, 46723, 46707, 48181, 48388, 48372, 48356, 48340, 46611, 46595, 
+    46579, 46563, 46547, 46531, 46515, 46499, 46483, 46467, 46451, 46435, 
+    46419, 46403, 46387, 46371, 46355, 46339, 46323, 46307, 46291, 46275, 
+    46259, 46243, 46227, 46211, 46195, 46179, 46163, 46147, 46131, 46115, 
+    46099, 46083, 46067, 46051, 46035, 46019, 46003, 45987, 45971, 45955, 
+    45939, 45923, 45907, 45891, 45875, 45859, 45843, 45827, 45811, 45795, 
+    45779, 45763, 45747, 45731, 45715, 45699, 45683, 45667, 45651, 45635, 
+    45619, 45603, 45587, 45571, 45555, 45539, 45523, 45507, 45491, 45475, 
+    45459, 45443, 45427, 45411, 45395, 45379, 45363, 45347, 45331, 45315, 
+    45299, 45283, 45267, 45251, 45235, 45219, 45203, 45187, 45171, 45155, 
+    45139, 45123, 45107, 45091, 45075, 45059, 45043, 45027, 45011, 44995, 
+    44979, 44963, 44947, 44931, 44915, 44899, 44883, 44867, 44851, 44835, 
+    44819, 44803, 44787, 44771, 44755, 44739, 44723, 44707, 44691, 44675, 
+    44659, 44643, 44627, 44611, 44595, 44579, 44563, 44547, 44531, 44515, 
+    44499, 44483, 44467, 44451, 44435, 44419, 44403, 44387, 44371, 44355, 
+    44339, 44323, 44307, 44291, 44275, 44259, 44243, 44227, 44211, 44195, 
+    44179, 44163, 44147, 44131, 44115, 44099, 44083, 44067, 44051, 44035, 
+    44019, 44003, 43987, 43971, 43955, 43939, 43923, 43907, 43891, 43875, 
+    43859, 43843, 43827, 43811, 43795, 43779, 43763, 43747, 43731, 43715, 
+    43699, 43683, 43667, 43651, 43635, 43619, 43603, 43587, 43571, 43555, 
+    43539, 43523, 43507, 43491, 43475, 43459, 43443, 43427, 43411, 43395, 
+    43379, 43363, 43347, 43331, 43315, 43299, 43283, 43267, 43251, 43235, 
+    43219, 43203, 43187, 43171, 43155, 43139, 43123, 43107, 43091, 43075, 
+    43059, 43043, 43027, 43011, 42995, 42979, 42963, 42947, 42931, 42915, 
+    42899, 42883, 42867, 42851, 42835, 42819, 42803, 42787, 42771, 42755, 
+    42739, 42723, 42707, 42691, 42675, 42659, 42643, 42627, 42611, 42595, 
+    42579, 42563, 42547, 42531, 42515, 42499, 42483, 42467, 42451, 42435, 
+    42419, 42403, 42387, 42371, 42355, 42339, 42323, 42307, 42291, 42275, 
+    42259, 42243, 42227, 42211, 42195, 42179, 42163, 42147, 42131, 42115, 
+    42099, 42083, 42067, 42051, 42035, 42019, 42003, 41987, 41971, 41955, 
+    41939, 41923, 41907, 41891, 41875, 41859, 41843, 41827, 41811, 41795, 
+    41779, 41763, 41747, 41731, 41715, 41699, 41683, 41667, 41651, 41635, 
+    41619, 41603, 41587, 41571, 41555, 41539, 41523, 41507, 41491, 41475, 
+    41459, 41443, 41427, 41411, 41395, 41379, 41363, 41347, 41331, 41315, 
+    41299, 41283, 41267, 41251, 41235, 41219, 41203, 41187, 41171, 41155, 
+    41139, 41123, 41107, 41091, 41075, 41059, 41043, 41027, 41011, 40995, 
+    40979, 40963, 40947, 40931, 40915, 40899, 40883, 40867, 40851, 40835, 
+    40819, 40803, 40787, 40771, 40755, 40739, 40723, 40707, 40691, 40675, 
+    40659, 40643, 40627, 40611, 40595, 40579, 40563, 40547, 40531, 40515, 
+    40499, 40483, 40467, 40451, 40435, 40419, 40403, 40387, 40371, 40355, 
+    40339, 40323, 40307, 40291, 40275, 40259, 40243, 40227, 40211, 40195, 
+    40179, 40163, 40147, 40131, 40115, 40099, 40083, 40067, 40051, 40035, 
+    40019, 40003, 39987, 39971, 39955, 39939, 39923, 39907, 39891, 39875, 
+    39859, 39843, 39827, 39811, 39795, 39779, 39763, 39747, 39731, 39715, 
+    39699, 39683, 39667, 39651, 39635, 39619, 39603, 39587, 39571, 39555, 
+    39539, 39523, 39507, 39491, 39475, 39459, 39443, 39427, 39411, 39395, 
+    39379, 39363, 39347, 39331, 39315, 39299, 39283, 39267, 39251, 39235, 
+    39219, 39203, 39187, 39171, 39155, 39139, 39123, 39107, 39091, 39075, 
+    39059, 39043, 39027, 39011, 38995, 38979, 38963, 38947, 38931, 38915, 
+    38899, 38883, 38867, 38851, 38835, 38819, 38803, 38787, 38771, 38755, 
+    38739, 38723, 38707, 38691, 38675, 38659, 38643, 38627, 38611, 38595, 
+    38579, 38563, 38547, 38531, 38515, 38499, 38483, 38467, 38451, 38435, 
+    38419, 38403, 38387, 38371, 38355, 38339, 38323, 38307, 38291, 38275, 
+    38259, 38243, 38227, 38211, 38195, 38179, 38163, 38147, 38131, 38115, 
+    38099, 38083, 38067, 38051, 38035, 38019, 38003, 37987, 37971, 37955, 
+    37939, 37923, 37907, 37891, 37875, 37859, 37843, 37827, 37811, 37795, 
+    37779, 37763, 37747, 37731, 37715, 37699, 37683, 37667, 37651, 37635, 
+    37619, 37603, 37587, 37571, 37555, 37539, 37523, 37507, 37491, 37475, 
+    37459, 37443, 37427, 37411, 37395, 37379, 37363, 37347, 37331, 37315, 
+    37299, 37283, 37267, 37251, 37235, 37219, 37203, 37187, 37171, 37155, 
+    37139, 37123, 37107, 37091, 37075, 37059, 37043, 37027, 37011, 36995, 
+    36979, 36963, 36947, 36931, 36915, 36899, 36883, 36867, 36851, 36835, 
+    36819, 36803, 36787, 36771, 36755, 36739, 36723, 36707, 36691, 36675, 
+    36659, 36643, 36627, 36611, 36595, 36579, 36563, 36547, 36531, 36515, 
+    36499, 36483, 36467, 36451, 36435, 36419, 36403, 36387, 36371, 36355, 
+    36339, 36323, 36307, 36291, 36275, 36259, 36243, 36227, 36211, 36195, 
+    36179, 36163, 36147, 36131, 36115, 36099, 36083, 36067, 36051, 36035, 
+    36019, 36003, 35987, 35971, 35955, 35939, 35923, 35907, 35891, 35875, 
+    35859, 35843, 35827, 35811, 35795, 35779, 35763, 35747, 35731, 35715, 
+    35699, 35683, 35667, 35651, 35635, 35619, 35603, 35587, 35571, 35555, 
+    35539, 35523, 35507, 35491, 35475, 35459, 35443, 35427, 35411, 35395, 
+    35379, 35363, 35347, 35331, 35315, 35299, 35283, 35267, 35251, 35235, 
+    35219, 35203, 35187, 35171, 35155, 35139, 35123, 35107, 35091, 35075, 
+    35059, 35043, 35027, 35011, 34995, 34979, 34963, 34947, 34931, 34915, 
+    34899, 34883, 34867, 34851, 34835, 34819, 34803, 34787, 34771, 34755, 
+    34739, 34723, 34707, 34691, 34675, 34659, 34643, 34627, 34611, 34595, 
+    34579, 34563, 34547, 34531, 34515, 34499, 34483, 34467, 34451, 34435, 
+    34419, 34403, 34387, 34371, 34355, 34339, 34323, 34307, 34291, 34275, 
+    34259, 34243, 34227, 34211, 34195, 34179, 34163, 34147, 34131, 34115, 
+    34099, 34083, 34067, 34051, 34035, 34019, 34003, 33987, 33971, 33955, 
+    33939, 33923, 33907, 33891, 33875, 33859, 33843, 33827, 33811, 33795, 
+    33779, 33763, 33747, 33731, 33715, 33699, 33683, 33667, 33651, 33635, 
+    33619, 33603, 33587, 33571, 33555, 33539, 33523, 33507, 33491, 33475, 
+    33459, 33443, 33427, 33411, 33395, 33379, 33363, 33347, 33331, 33315, 
+    33299, 33283, 33267, 33251, 33235, 33219, 33203, 33187, 33171, 33155, 
+    33139, 33123, 33107, 33091, 33075, 33059, 33043, 33027, 33011, 32995, 
+    32979, 32963, 32947, 32931, 32915, 32899, 32883, 32867, 32851, 32835, 
+    32819, 32803, 32787, 32771, 32755, 32739, 32723, 32707, 32691, 32675, 
+    32659, 32643, 32627, 32611, 32595, 32579, 32563, 32547, 32531, 32515, 
+    32499, 32483, 32467, 32451, 32435, 32419, 32403, 32387, 32371, 32355, 
+    32339, 32323, 32307, 32291, 32275, 32259, 32243, 32227, 32211, 32195, 
+    32179, 32163, 32147, 32131, 32115, 32099, 32083, 32067, 32051, 32035, 
+    32019, 32003, 31987, 31971, 31955, 31939, 31923, 31907, 31891, 31875, 
+    31859, 31843, 31827, 31811, 31795, 31779, 31763, 31747, 31731, 31715, 
+    31699, 31683, 31667, 31651, 31635, 31619, 31603, 31587, 31571, 31555, 
+    31539, 31523, 31507, 31491, 31475, 31459, 31443, 31427, 31411, 31395, 
+    31379, 31363, 31347, 31331, 31315, 31299, 31283, 31267, 31251, 31235, 
+    31219, 31203, 31187, 31171, 31155, 31139, 31123, 31107, 31091, 31075, 
+    31059, 31043, 31027, 31011, 30995, 30979, 30963, 30947, 30931, 30915, 
+    30899, 30883, 30867, 30851, 30835, 30819, 30803, 30787, 30771, 30755, 
+    30739, 30723, 30707, 30691, 30675, 30659, 30643, 30627, 30611, 30595, 
+    30579, 30563, 30547, 30531, 30515, 30499, 30483, 30467, 30451, 30435, 
+    30419, 30403, 30387, 30371, 30355, 30339, 30323, 30307, 30291, 30275, 
+    30259, 30243, 30227, 30211, 30195, 30179, 30163, 30147, 30131, 30115, 
+    30099, 30083, 30067, 30051, 30035, 30019, 30003, 29987, 29971, 29955, 
+    29939, 29923, 29907, 29891, 29875, 29859, 29843, 29827, 29811, 29795, 
+    29779, 29763, 29747, 29731, 29715, 29699, 29683, 29667, 29651, 29635, 
+    29619, 29603, 29587, 29571, 29555, 29539, 29523, 29507, 29491, 29475, 
+    29459, 29443, 29427, 29411, 29395, 29379, 29363, 29347, 29331, 29315, 
+    29299, 29283, 29267, 29251, 29235, 29219, 29203, 29187, 29171, 29155, 
+    29139, 29123, 29107, 29091, 29075, 29059, 29043, 29027, 29011, 28995, 
+    28979, 28963, 28947, 28931, 28915, 28899, 28883, 28867, 28851, 28835, 
+    28819, 28803, 28787, 28771, 28755, 28739, 28723, 28707, 28691, 28675, 
+    28659, 28643, 28627, 28611, 28595, 28579, 28563, 28547, 28531, 28515, 
+    28499, 28483, 28467, 28451, 28435, 28419, 28403, 28387, 28371, 28355, 
+    28339, 28323, 28307, 28291, 28275, 28259, 28243, 28227, 28211, 28195, 
+    28179, 28163, 28147, 28131, 28115, 28099, 28083, 28067, 28051, 28035, 
+    28019, 28003, 27987, 27971, 27955, 27939, 27923, 27907, 27891, 27875, 
+    27859, 27843, 27827, 27811, 27795, 27779, 27763, 27747, 27731, 27715, 
+    27699, 27683, 27667, 27651, 27635, 27619, 27603, 27587, 27571, 27555, 
+    27539, 27523, 27507, 27491, 27475, 27459, 27443, 27427, 27411, 27395, 
+    27379, 27363, 27347, 27331, 27315, 27299, 27283, 27267, 27251, 27235, 
+    27219, 27203, 27187, 27171, 27155, 27139, 27123, 27107, 27091, 27075, 
+    27059, 27043, 27027, 27011, 26995, 26979, 26963, 26947, 26931, 26915, 
+    26899, 26883, 26867, 26851, 26835, 26819, 26803, 26787, 26771, 26755, 
+    26739, 26723, 26707, 26691, 26675, 26659, 26643, 26627, 26611, 26595, 
+    26579, 26563, 26547, 26531, 26515, 26499, 26483, 26467, 26451, 26435, 
+    26419, 26403, 26387, 26371, 26355, 26339, 26323, 26307, 26291, 26275, 
+    26259, 26243, 26227, 26211, 26195, 26179, 26163, 26147, 26131, 26115, 
+    26099, 26083, 26067, 26051, 26035, 26019, 26003, 25987, 25971, 25955, 
+    25939, 25923, 25907, 25891, 25875, 25859, 25843, 25827, 25811, 25795, 
+    25779, 25763, 25747, 25731, 27205, 25452, 25436, 25420, 25404, 25388, 
+    25619, 25603, 25587, 25571, 25555, 25539, 25523, 25507, 25491, 25475, 
+    25459, 25443, 25427, 25411, 25395, 25379, 25363, 25347, 25331, 25315, 
+    25299, 25283, 25267, 25251, 25235, 25219, 25203, 25187, 25171, 25155, 
+    25139, 25123, 25107, 25091, 25075, 25059, 25043, 25027, 25011, 24995, 
+    24979, 24963, 24947, 24931, 24915, 24899, 24883, 24867, 24851, 24835, 
+    24819, 24803, 24787, 24771, 24755, 24739, 24723, 24707, 24691, 24675, 
+    24659, 24643, 24627, 24611, 24595, 24579, 24563, 24547, 24531, 24515, 
+    24499, 24483, 25465, 26164, 26148, 26132, 26931, 24140, 24124, 24108, 
+    24092, 24076, 24060, 24044, 24028, 24012, 23996, 23980, 23964, 23948, 
+    23932, 23916, 23900, 23884, 23868, 23852, 23836, 23820, 23804, 23788, 
+    23772, 23756, 23740, 23724, 23708, 23692, 23676, 23660, 23644, 23628, 
+    23612, 23596, 23580, 23564, 23548, 23532, 23516, 23500, 23484, 23468, 
+    23452, 23436, 23420, 23404, 23388, 23372, 23356, 23340, 23324, 23308, 
+    23292, 23276, 23260, 23244, 23228, 23212, 23196, 23180, 23164, 23148, 
+    23132, 23116, 23100, 23084, 23068, 23052, 23036, 23020, 23004, 22988, 
+    22972, 22956, 22940, 22924, 22908, 22892, 22876, 22860, 22844, 22828, 
+    22812, 22796, 22780, 22764, 22748, 22732, 22716, 22700, 22684, 22668, 
+    22652, 22636, 22620, 22604, 22588, 22572, 22556, 22540, 22524, 22508, 
+    22492, 22476, 22460, 22444, 22428, 22412, 22396, 22380, 22364, 22348, 
+    22332, 22316, 22547, 22531, 22515, 22499, 22483, 22467, 22451, 22435, 
+    22419, 22403, 22387, 22371, 22355, 22339, 22323, 22307, 22291, 22275, 
+    22259, 22243, 22227, 22211, 22195, 22179, 22163, 22147, 22131, 22115, 
+    22099, 22083, 22067, 22051, 22035, 22019, 22003, 21987, 21971, 21955, 
+    21939, 21923, 21907, 21891, 21875, 21859, 21843, 21827, 21811, 21795, 
+    21779, 21763, 21747, 21731, 21715, 21699, 21683, 21667, 21651, 21635, 
+    21619, 21603, 21587, 21571, 21555, 21539, 21523, 21507, 21491, 21475, 
+    21459, 21443, 21427, 21411, 21395, 21379, 21363, 21347, 21331, 21315, 
+    21299, 21283, 21267, 21251, 21235, 21219, 21203, 21187, 21171, 21155, 
+    21139, 21123, 21107, 21091, 21075, 21059, 21043, 21027, 21011, 20995, 
+    20979, 20963, 20947, 20931, 20915, 20899, 20883, 20867, 20851, 20835, 
+    20819, 20803, 20787, 20771, 20755, 20739, 20723, 20707, 20691, 20675, 
+    20659, 20643, 20627, 20611, 20595, 20579, 20563, 20547, 20531, 20515, 
+    20499, 20483, 20467, 20451, 20435, 20419, 20403, 20387, 20371, 20355, 
+    20339, 20323, 20307, 20291, 20275, 20259, 20243, 20227, 20211, 20195, 
+    20179, 20163, 20147, 20131, 20115, 20099, 20083, 20067, 20051, 20035, 
+    20019, 20003, 19987, 19971, 19955, 19939, 19923, 19907, 19891, 19875, 
+    19859, 19843, 19827, 19811, 19795, 19779, 19763, 19747, 19731, 19715, 
+    19699, 19683, 19667, 19651, 19635, 19619, 19603, 19587, 19571, 19555, 
+    19539, 19523, 19507, 19491, 19475, 19459, 19443, 19427, 19411, 19395, 
+    19379, 19363, 19347, 19331, 19315, 19299, 19283, 19267, 19251, 19235, 
+    19219, 19203, 19187, 19171, 19155, 19139, 19123, 19107, 19091, 19075, 
+    19059, 19043, 19027, 19011, 18995, 18979, 18963, 18947, 18931, 18915, 
+    18899, 18883, 18867, 18851, 18835, 18819, 18803, 18787, 18771, 18755, 
+    18739, 18723, 18707, 18691, 18675, 18659, 18643, 18627, 18611, 18595, 
+    18579, 18563, 18547, 18531, 18515, 18499, 18483, 18467, 18451, 18435, 
+    18419, 18403, 18387, 18371, 18355, 18339, 18323, 18307, 18291, 18275, 
+    18259, 18243, 18227, 18211, 18195, 18179, 18163, 18147, 18131, 18115, 
+    18099, 18083, 18067, 18051, 18035, 18019, 18003, 17987, 17971, 17955, 
+    17939, 17923, 17907, 17891, 17875, 17859, 17843, 17827, 17811, 17795, 
+    17779, 17763, 17747, 17731, 17715, 17699, 17683, 17667, 17651, 17635, 
+    17619, 17603, 17587, 17571, 17555, 17539, 17523, 17507, 17491, 17475, 
+    17459, 17443, 17427, 17411, 17395, 17379, 17363, 17347, 17331, 17315, 
+    17299, 17283, 17267, 17251, 17235, 17219, 17203, 17187, 17171, 17155, 
+    17139, 17123, 17107, 17091, 17075, 17059, 17043, 17027, 17011, 16995, 
+    16979, 16963, 16947, 16931, 16915, 16899, 16883, 16867, 16851, 16835, 
+    16819, 16803, 16787, 16771, 16755, 16739, 16723, 16707, 16691, 16675, 
+    16659, 16643, 16627, 16611, 16595, 16579, 16563, 16547, 16531, 16515, 
+    16499, 16483, 16467, 16451, 16435, 16419, 16403, 16387, 16371, 16355, 
+    16339, 16323, 16307, 16291, 16275, 16259, 16243, 16227, 16211, 16195, 
+    16179, 16163, 16147, 16131, 16115, 16099, 16083, 16067, 16051, 16035, 
+    16019, 16003, 15987, 15971, 15955, 15939, 15923, 15907, 15891, 15875, 
+    15859, 15843, 15827, 15811, 15795, 15779, 15763, 15747, 15731, 15715, 
+    15699, 15683, 15667, 15651, 15635, 15619, 15603, 15587, 15571, 15555, 
+    15539, 15523, 15507, 15491, 15475, 15459, 15443, 15427, 15411, 15395, 
+    15379, 15363, 15347, 15331, 15315, 15299, 15283, 15267, 15251, 15235, 
+    15219, 15203, 15187, 15171, 15155, 15139, 15123, 15107, 15091, 15075, 
+    15059, 15043, 15027, 15011, 14995, 14979, 14963, 14947, 14931, 14915, 
+    14899, 14883, 14867, 14851, 14835, 14819, 14803, 14787, 14771, 14755, 
+    14739, 14723, 14707, 14691, 14675, 14659, 14643, 14627, 14611, 14595, 
+    14579, 14563, 14547, 14531, 14515, 14499, 14483, 14467, 14451, 14435, 
+    14419, 14403, 14387, 14371, 14355, 14339, 14323, 14307, 14291, 14275, 
+    14259, 14243, 14227, 14211, 14195, 14179, 14163, 14147, 14131, 14115, 
+    14099, 14083, 14067, 14051, 14035, 14019, 14003, 13987, 13971, 13955, 
+    13939, 13923, 13907, 13891, 13875, 13859, 13843, 13827, 13811, 13795, 
+    13779, 13763, 13747, 13731, 13715, 13699, 13683, 13667, 13651, 13635, 
+    13619, 13603, 13587, 13571, 13555, 13539, 13523, 13507, 13491, 13475, 
+    13459, 13443, 13427, 13411, 13395, 13379, 13363, 13347, 13331, 13315, 
+    13299, 13283, 13267, 13251, 13235, 13219, 13203, 13187, 13171, 13155, 
+    13139, 13123, 13107, 13091, 13075, 13059, 13043, 13027, 13011, 12995, 
+    12979, 12963, 12947, 12931, 12915, 12899, 12883, 12867, 12851, 12835, 
+    12819, 12803, 12787, 12771, 12755, 12739, 12723, 12707, 12691, 12675, 
+    12659, 12643, 12627, 12611, 12595, 12579, 12563, 12547, 12531, 12515, 
+    12499, 12483, 12467, 12451, 12435, 12419, 12403, 12387, 12371, 12355, 
+    12339, 12323, 12307, 12291, 12275, 12259, 12243, 12227, 12211, 12195, 
+    12179, 12163, 12147, 12131, 12115, 12099, 12083, 12067, 12051, 12035, 
+    12019, 12003, 11987, 11971, 11955, 11939, 11923, 11907, 11891, 11875, 
+    11859, 11843, 11827, 11811, 11795, 11779, 11763, 11747, 11731, 11715, 
+    11699, 11683, 11667, 11651, 11635, 11619, 11603, 11587, 11571, 11555, 
+    11539, 11523, 11507, 11491, 11475, 11459, 11443, 11427, 11411, 11395, 
+    12871, 11116, 11100, 11084, 11068, 11052, 14050, 14034, 14018, 14002, 
+    13986, 13970, 13954, 13938, 13922, 13906, 13890, 13874, 13858, 13842, 
+    13826, 13810, 13794, 13778, 13762, 13746, 13730, 13714, 13698, 13682, 
+    13666, 13650, 13634, 13618, 13602, 13586, 13570, 13554, 13538, 13522, 
+    13506, 13490, 13474, 13458, 13442, 13426, 13410, 13394, 13378, 13362, 
+    13346, 13330, 13314, 13298, 13282, 13266, 13250, 13234, 13218, 13202, 
+    13186, 13170, 13154, 13138, 13122, 13106, 13090, 13074, 13058, 13042, 
+    13026, 13010, 12994, 12978, 12962, 12946, 12930, 12914, 12898, 12882, 
+    12866, 12850, 12834, 12818, 12802, 12786, 12770, 12754, 12738, 12722, 
+    12706, 12690, 12674, 12658, 12642, 12626, 12610, 12594, 12578, 12562, 
+    12546, 12530, 12514, 12498, 12482, 12466, 12450, 12434, 12418, 12402, 
+    12386, 12370, 12354, 12338, 12322, 12306, 12290, 12274, 12258, 12242, 
+    12226, 12210, 12194, 12178, 12162, 12146, 12130, 12114, 12098, 12082, 
+    12066, 12050, 12034, 12018, 12018, 12002, 11986, 11970, 11954, 11938, 
+    11922, 11906, 11890, 11874, 11858, 11842, 11826, 11810, 11794, 11778, 
+    11762, 11746, 11730, 11714, 11698, 11682, 11666, 11650, 11634, 11618, 
+    11602, 11586, 11570, 11554, 11538, 11522, 11506, 11490, 11474, 11458, 
+    11442, 11426, 11410, 11394, 11378, 11362, 11346, 11330, 11314, 11298, 
+    11282, 11266, 11250, 11234, 11218, 11202, 11186, 11170, 11154, 11138, 
+    11122, 11106, 11090, 11074, 11058, 11042, 11026, 11010, 10994, 10978, 
+    10962, 10946, 10930, 10914, 10898, 10882, 10866, 10850, 10834, 10818, 
+    10802, 10786, 10770, 10754, 10738, 10722, 10706, 10690, 10674, 10658, 
+    10642, 10626, 10610, 10594, 10578, 10562, 10546, 10530, 10514, 10498, 
+    10482, 10466, 10450, 10434, 10418, 10402, 10386, 10370, 10354, 10338, 
+    10322, 10306, 10290, 10274, 10258, 10242, 10226, 10210, 10194, 10178, 
+    10162, 10146, 10130, 10114, 10098, 10082, 10066, 10050, 10034, 10018, 
+    10002, 9986, 9970, 9954, 9938, 9922, 9906, 9890, 9874, 9858, 
+    9842, 9826, 9810, 9794, 9778, 9762, 9746, 9730, 9714, 9698, 
+    9682, 9666, 9650, 9634, 9618, 9602, 9586, 9570, 9554, 9538, 
+    9522, 9506, 9490, 9474, 9458, 9442, 9426, 9410, 9394, 9378, 
+    9362, 9346, 9330, 9314, 9298, 9282, 9266, 9250, 9234, 9218, 
+    9202, 9186, 9170, 9154, 9138, 9122, 9106, 9090, 9074, 9058, 
+    9042, 9026, 9010, 8994, 8978, 8962, 8946, 8930, 8914, 8898, 
+    8882, 8866, 8850, 8834, 8818, 8802, 8786, 8770, 8754, 8738, 
+    8722, 8706, 8690, 8674, 8658, 8642, 8626, 8610, 8594, 8578, 
+    8562, 8546, 8530, 8514, 8498, 8482, 8466, 8450, 8434, 8418, 
+    8402, 8386, 8370, 8354, 8338, 8322, 8306, 8290, 8274, 8258, 
+    8242, 8226, 8210, 8194, 8178, 8162, 8146, 8130, 8114, 8098, 
+    8082, 8066, 8050, 8034, 8018, 8002, 7986, 7970, 7954, 7938, 
+    7922, 7906, 7890, 7874, 7858, 7842, 7826, 7810, 7794, 7778, 
+    7762, 7746, 7730, 7714, 7698, 7682, 7666, 7650, 7634, 7618, 
+    7602, 7586, 7570, 7554, 7538, 7522, 7506, 7490, 7474, 7458, 
+    7442, 7426, 7410, 7394, 7378, 7362, 7346, 7330, 7314, 7298, 
+    7282, 7266, 7250, 7234, 7218, 7202, 7186, 7170, 7154, 7138, 
+    7122, 7106, 7090, 7074, 7058, 7042, 7026, 7010, 6994, 6978, 
+    6962, 6946, 6930, 6914, 6898, 6882, 6866, 6850, 6834, 6818, 
+    6802, 6786, 6770, 6754, 6738, 6722, 6706, 6690, 6674, 6658, 
+    6642, 6626, 6610, 6594, 6578, 6562, 6546, 6530, 6514, 6498, 
+    6482, 6466, 6450, 6434, 6418, 6402, 6386, 6370, 6354, 6338, 
+    6322, 6306, 6290, 6274, 6258, 6242, 6226, 6210, 6194, 6178, 
+    6162, 6146, 6130, 6114, 6098, 6082, 6066, 6050, 6034, 6018, 
+    6002, 5986, 5970, 5954, 5938, 5922, 5906, 5890, 5874, 5858, 
+    5842, 5826, 5810, 5794, 5778, 5762, 5746, 5730, 5714, 5698, 
+    5682, 5666, 5650, 5634, 2835, 2819, 2803, 2787, 2771, 2755, 
+    2739, 2723, 2707, 2691, 2675, 2659, 2643, 2627, 2611, 2595, 
+    2579, 2563, 3544, 2531, 2515, 2499, 3483, 2220, 2204, 2188, 
+    2172, 2156, 2140, 2124, 2108, 2092, 5122, 2869, 5106, 5100, 
+    2836, 2111, 2095, 2079, 2063, 2047, 2031, 2946, 1884, 1980, 
+    1967, 1951, 1935, 1919, 1903, 1887, 1871, 1855, 1839, 1823, 
+    1807, 1791, 1775, 1759, 1743, 1727, 1711, 1695, 1679, 1663, 
+    1647, 1633, 1500, 1599, 1583, 1567, 1551, 1533, 1519, 1503, 
+    2412, 1356, 1340, 2473, 1638, 1292, 2072, 4348, 4344, 3614, 
+    4328, 2227, 1295, 1279, 1263, 1247, 1231, 1215, 1199, 2172, 
+    1941, 295, 340, 340, 378, 4104, 2137, 2221, 1171, 1157, 
+    1139, 1107, 451, 907, 3976, 819, 
+};
+
+static const jchar blocks1[] = {
+    0, 65535, 63, 4, 4, 253, 189, 125, 61, 65533, 
+    65469, 65405, 65405, 65266, 65325, 65149, 64639, 64623, 65133, 64893, 
+    64829, 64765, 64701, 64637, 64573, 64509, 64445, 64381, 64317, 64253, 
+    64189, 64125, 64301, 63997, 63933, 63869, 63805, 63741, 63677, 63613, 
+    63549, 63485, 63421, 63357, 63293, 63229, 63165, 63101, 63037, 62973, 
+    62909, 62845, 62781, 62717, 62653, 62589, 62525, 62461, 62397, 62333, 
+    62269, 62205, 62141, 62077, 62013, 61949, 61885, 61821, 61757, 61693, 
+    61629, 61565, 61501, 61437, 61373, 61309, 61245, 61181, 61117, 61053, 
+    60989, 60925, 60861, 60797, 60733, 60669, 60605, 60541, 60477, 60413, 
+    60349, 60285, 60221, 60157, 60093, 60029, 59965, 59901, 59837, 59773, 
+    59709, 59645, 59581, 59517, 59453, 59389, 59325, 59261, 59197, 59133, 
+    59069, 59005, 58941, 58877, 58813, 58749, 58685, 58621, 58557, 58493, 
+    58429, 58365, 58301, 58237, 58173, 58109, 58045, 57981, 57917, 57853, 
+    57789, 57725, 57661, 57597, 57533, 57469, 57405, 57341, 57277, 57213, 
+    57149, 57085, 57021, 56957, 56893, 56829, 56765, 56701, 56637, 56573, 
+    56509, 56445, 56381, 56317, 56253, 56189, 56125, 56061, 55997, 55933, 
+    55869, 55805, 55741, 55677, 55613, 55549, 55485, 55421, 55357, 55293, 
+    55229, 55165, 55101, 55037, 54973, 54909, 54845, 54781, 54717, 54653, 
+    54589, 54525, 54461, 54397, 54333, 54269, 54205, 54141, 54077, 54013, 
+    53949, 53885, 53821, 53757, 53693, 53629, 53565, 53501, 53437, 53373, 
+    53309, 53245, 53181, 53117, 53053, 52989, 52925, 52861, 52797, 52733, 
+    52669, 52605, 52541, 52477, 52413, 52349, 52285, 52221, 52157, 52093, 
+    52029, 51965, 51901, 51837, 51773, 51709, 51645, 51581, 51517, 51453, 
+    51389, 51325, 51261, 51197, 51133, 51069, 51005, 50941, 50877, 50813, 
+    50749, 50685, 50621, 50557, 50493, 50429, 50365, 50301, 50237, 50173, 
+    50109, 50045, 49981, 49917, 49853, 49789, 49725, 49661, 49597, 49533, 
+    49469, 49405, 49341, 49277, 49213, 49149, 49085, 49021, 48957, 48893, 
+    48829, 48765, 48701, 48637, 48573, 48509, 48445, 48381, 48317, 48253, 
+    48189, 48125, 48061, 47997, 47933, 47869, 47805, 47741, 47677, 47613, 
+    47549, 47485, 47421, 47357, 47293, 47229, 47165, 47101, 47037, 46973, 
+    46909, 46845, 46781, 46717, 46653, 46589, 46525, 46461, 46397, 46333, 
+    46269, 46205, 46141, 46077, 46013, 45949, 45885, 45821, 45757, 45693, 
+    45629, 45565, 45501, 45437, 45373, 45309, 45245, 45181, 45117, 45053, 
+    44989, 44925, 44861, 44797, 44733, 44669, 44605, 44541, 44477, 44413, 
+    44349, 44285, 44221, 44157, 44093, 44029, 43965, 43901, 43837, 43773, 
+    43709, 43645, 43581, 43517, 43453, 43389, 43325, 43261, 43197, 43133, 
+    43069, 43005, 42941, 42877, 42813, 42749, 42685, 42621, 42557, 42493, 
+    42429, 42365, 42301, 42237, 42173, 42109, 42045, 41981, 41917, 41853, 
+    41789, 41725, 41661, 41597, 41533, 41469, 41405, 41341, 41277, 41213, 
+    41149, 41085, 41021, 40957, 40893, 40829, 40765, 40701, 40637, 40573, 
+    40509, 40445, 40381, 40317, 40253, 40189, 40125, 40061, 39997, 39933, 
+    39869, 39805, 39741, 39677, 39613, 39549, 39485, 39421, 39357, 39293, 
+    39229, 39165, 39101, 39037, 38973, 38909, 38845, 38781, 38717, 38653, 
+    38589, 38525, 38461, 38397, 38333, 38269, 38205, 38141, 38077, 38013, 
+    37949, 37885, 37821, 37757, 37693, 37629, 37565, 37501, 37437, 37373, 
+    37309, 37245, 37181, 37117, 37053, 36989, 36925, 36861, 36797, 36733, 
+    36669, 36605, 36541, 36477, 36413, 36349, 36285, 36221, 36157, 36093, 
+    36029, 35965, 35901, 35837, 35773, 35709, 35645, 35581, 35517, 35453, 
+    35389, 35325, 35261, 35197, 35133, 35069, 35005, 34941, 34877, 34813, 
+    34749, 34685, 34621, 34557, 34493, 34429, 34365, 34301, 34237, 34173, 
+    34109, 34045, 33981, 33917, 33853, 33789, 33725, 33661, 33597, 33533, 
+    33469, 33405, 33341, 33277, 33213, 33149, 33085, 33021, 32957, 32893, 
+    32829, 32765, 32701, 32637, 32573, 32509, 32445, 32381, 32317, 32253, 
+    32189, 32125, 32061, 31997, 31933, 31869, 31805, 31741, 31677, 31613, 
+    31549, 31485, 31421, 31357, 31293, 31229, 31165, 31101, 31037, 30973, 
+    30909, 30845, 30781, 30717, 30653, 30589, 30525, 30461, 30397, 30333, 
+    30269, 30205, 30141, 30077, 30013, 29949, 29885, 29821, 29757, 29693, 
+    29629, 29565, 29501, 29437, 29373, 29309, 29245, 29181, 29117, 29053, 
+    28989, 28925, 28861, 28797, 28733, 28669, 28605, 28541, 28477, 28413, 
+    28349, 28285, 28221, 28157, 28093, 28029, 27965, 27901, 27837, 27773, 
+    27709, 27645, 27581, 27517, 27453, 27389, 27325, 27261, 27197, 27133, 
+    27069, 27005, 26941, 26877, 26813, 26749, 26685, 26621, 26557, 26493, 
+    26429, 26365, 26301, 26237, 26173, 26109, 26045, 25981, 25917, 25853, 
+    25789, 25725, 25661, 25597, 25533, 25469, 25405, 25341, 25277, 25213, 
+    25149, 25085, 25021, 24957, 24893, 24829, 24765, 24701, 24637, 24573, 
+    24509, 24445, 24381, 24317, 24253, 24189, 24125, 24061, 23997, 23933, 
+    23869, 23805, 23741, 23677, 23613, 23549, 23485, 23421, 23357, 23293, 
+    23229, 23165, 23101, 23037, 22973, 22909, 22845, 22781, 22717, 22653, 
+    22589, 22525, 22461, 22397, 22333, 22269, 22205, 22141, 22077, 22013, 
+    21949, 21885, 21821, 21757, 21693, 21629, 21565, 21501, 21437, 21373, 
+    21309, 21245, 21181, 21117, 21053, 20989, 20925, 20861, 20797, 20733, 
+    20669, 20605, 20541, 20477, 20413, 20349, 20285, 20221, 20157, 20093, 
+    20029, 19965, 19901, 19837, 19773, 19709, 19645, 19581, 19517, 19453, 
+    19389, 19325, 19261, 19197, 19133, 19069, 19005, 18941, 18877, 18813, 
+    18749, 18685, 18621, 18557, 18493, 18429, 18365, 18301, 18237, 18173, 
+    18109, 18045, 17981, 17917, 17853, 17789, 17725, 17661, 17597, 17533, 
+    17469, 17405, 17341, 17277, 17213, 17149, 17085, 17021, 16957, 16893, 
+    16829, 16765, 16701, 16637, 16573, 16509, 16445, 16381, 16317, 16253, 
+    16189, 16125, 16061, 15997, 15933, 15869, 15805, 15741, 15677, 15613, 
+    15549, 15485, 15421, 15357, 15293, 15229, 15165, 15101, 15037, 14973, 
+    14909, 14845, 14781, 14717, 14653, 14589, 14525, 14461, 14397, 14333, 
+    14269, 14205, 14141, 14077, 14013, 13949, 13885, 13821, 13757, 13693, 
+    13629, 13565, 13501, 13437, 13373, 13309, 13245, 13181, 13117, 13053, 
+    12989, 12925, 12752, 12688, 12624, 12570, 12454, 12283, 12280, 12338, 
+    12349, 12285, 12221, 12157, 12397, 12374, 11965, 11901, 12340, 12394, 
+    12451, 12132, 12384, 12197, 11976, 11924, 11820, 11768, 11768, 11542, 
+    11484, 11426, 11368, 11744, 10813, 10749, 10685, 10621, 10557, 10493, 
+    10429, 10365, 10301, 10237, 10173, 10109, 10045, 9981, 9917, 9853, 
+    9789, 9725, 9661, 9597, 9533, 9469, 9405, 9341, 9277, 9213, 
+    9149, 9085, 9021, 8957, 8893, 8829, 8765, 8701, 8637, 8573, 
+    8509, 8445, 8381, 8317, 8253, 8189, 8125, 8061, 7997, 7933, 
+    7869, 7805, 7741, 7677, 7613, 7549, 7485, 7421, 7357, 7293, 
+    7229, 7165, 7101, 7037, 6973, 6909, 6845, 6781, 6717, 6653, 
+    6589, 6525, 6461, 6397, 6333, 6269, 6205, 6141, 6077, 6013, 
+    5949, 5885, 5821, 5757, 5693, 5629, 5565, 5501, 5437, 5373, 
+    5309, 5245, 5181, 5117, 5053, 4989, 4925, 4861, 4797, 4733, 
+    4669, 4605, 4541, 4477, 4413, 4349, 4285, 4221, 4157, 4093, 
+    4029, 3965, 3901, 3837, 3773, 3709, 3645, 3581, 3517, 3453, 
+    3389, 3325, 3261, 3197, 3133, 3069, 3005, 2941, 2877, 2813, 
+    2749, 2685, 2621, 2557, 2493, 2429, 2365, 2301, 2237, 2173, 
+    2109, 2045, 1981, 1917, 1853, 1789, 1725, 1661, 1597, 1533, 
+    1469, 1405, 1341, 1277, 1213, 1149, 1085, 1021, 957, 893, 
+    829, 765, 701, 637, 
+};
+
+static const jchar blocks2[] = {
+    0, 65408, 65280, 65152, 65024, 64896, 64768, 64640, 64512, 64384, 
+    64256, 64128, 64000, 63872, 63744, 63616, 63488, 63360, 63232, 63104, 
+    62976, 62848, 62720, 62592, 62464, 62336, 62208, 62080, 61952, 61824, 
+    61696, 61568, 61440, 61312, 61184, 61056, 60928, 60800, 60672, 60544, 
+    60416, 60288, 60160, 60032, 59904, 59776, 59648, 59520, 59392, 59264, 
+    59136, 59008, 58880, 58752, 58624, 58496, 58368, 58240, 58112, 57984, 
+    57856, 57728, 57600, 57472, 57344, 57216, 57088, 56960, 56832, 56704, 
+    56576, 56448, 56320, 56192, 56064, 55936, 55808, 55680, 55552, 55424, 
+    55296, 55168, 55040, 54912, 54784, 54656, 54528, 54400, 54272, 54144, 
+    54016, 53888, 53760, 53632, 53504, 53376, 53248, 53120, 52992, 52864, 
+    52736, 52608, 52480, 52352, 52224, 52096, 51968, 51840, 51712, 51584, 
+    51456, 51328, 51200, 51072, 50944, 50816, 50688, 50560, 50432, 50304, 
+    50176, 50048, 49920, 49792, 49664, 49536, 49408, 49280, 49152, 49024, 
+    48896, 48768, 48640, 48512, 48384, 48256, 48128, 48000, 47872, 47744, 
+    47616, 47488, 47360, 47232, 47104, 46976, 46848, 46720, 46592, 46464, 
+    46336, 46208, 46080, 45952, 45824, 45696, 45568, 45440, 45312, 45184, 
+    45056, 44928, 44800, 44672, 44544, 44416, 44288, 44160, 44032, 43904, 
+    43776, 43648, 43520, 43392, 43264, 43136, 43008, 42880, 42752, 42624, 
+    42496, 42368, 42240, 42112, 41984, 41856, 41728, 41600, 41472, 41344, 
+    41216, 41088, 40960, 40832, 40704, 40576, 40448, 40320, 40192, 40064, 
+    39936, 39808, 39680, 39552, 39424, 39296, 39168, 39040, 38912, 38784, 
+    38656, 38528, 38400, 38272, 38144, 38016, 37888, 37760, 37632, 37504, 
+    37376, 37248, 37120, 36992, 36864, 36736, 36608, 36480, 36352, 36224, 
+    36096, 35968, 35840, 35712, 35584, 35456, 35328, 35200, 35072, 34944, 
+    34816, 34688, 34560, 34432, 34304, 34176, 34048, 33920, 33792, 33664, 
+    33536, 33408, 33280, 33152, 33024, 32896, 32768, 32640, 32512, 32384, 
+    32256, 32128, 32000, 31872, 31744, 31616, 31488, 31360, 31232, 31104, 
+    30976, 30848, 30720, 30592, 30464, 30336, 30208, 30080, 29952, 29824, 
+    29696, 29568, 29440, 29312, 29184, 29056, 28928, 28800, 28672, 28544, 
+    28416, 28288, 28160, 28032, 27904, 27776, 27648, 27520, 27392, 27264, 
+    27136, 27008, 26880, 26752, 26624, 26496, 26368, 26240, 26112, 25984, 
+    25856, 25728, 25600, 25472, 25344, 25216, 25088, 24960, 24832, 24704, 
+    24576, 24448, 24320, 24192, 24064, 23936, 23808, 23680, 23552, 23424, 
+    23296, 23168, 23040, 22953, 22912, 22784, 22656, 22528, 22400, 22272, 
+    22144, 22016, 21888, 21760, 21632, 21504, 21376, 21248, 21120, 20992, 
+    20864, 20736, 20608, 20480, 20352, 20224, 20096, 19968, 19840, 19712, 
+    19584, 19456, 19328, 19200, 19072, 18944, 18816, 18688, 18560, 18432, 
+    18304, 18176, 18048, 17920, 17792, 17664, 17536, 17408, 17280, 17152, 
+    17024, 16896, 16768, 16640, 16512, 16384, 16256, 16128, 16000, 15872, 
+    15744, 15616, 15488, 15360, 15232, 15104, 14976, 14848, 14720, 14592, 
+    14464, 14336, 14208, 14080, 13952, 13824, 13696, 13568, 13440, 13312, 
+    13184, 13056, 12928, 12800, 12672, 12544, 12416, 12288, 12160, 12032, 
+    11904, 11776, 11648, 11520, 11392, 11264, 11136, 11008, 10880, 10752, 
+    10624, 10496, 10368, 10240, 10112, 9984, 9856, 9728, 9600, 9472, 
+    9344, 9216, 9088, 8960, 8832, 8704, 8576, 8448, 8320, 8192, 
+    8064, 7936, 7808, 7680, 7552, 7424, 7296, 7168, 7040, 6912, 
+    6784, 6656, 6528, 6400, 6272, 6144, 6016, 5888, 5760, 5632, 
+    5504, 5376, 5248, 5120, 4992, 4864, 4736, 4608, 4480, 4352, 
+    4224, 4096, 3968, 3840, 3712, 3584, 3456, 3328, 3200, 3072, 
+    2944, 2816, 2688, 2560, 2432, 2304, 2048, 1920, 1792, 1664, 
+    1634, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512, 
+    384, 256, 
+};
+
+static const jchar blocks14[] = {
+    255, 0, 65280, 65168, 65152, 65024, 64896, 64768, 64640, 64512, 
+    64384, 64256, 64128, 64000, 63872, 63744, 63616, 63488, 63360, 63232, 
+    63104, 62976, 62848, 62720, 62592, 62464, 62336, 62208, 62080, 61952, 
+    61824, 61696, 61568, 61440, 61312, 61184, 61056, 60928, 60800, 60672, 
+    60544, 60416, 60288, 60160, 60032, 59904, 59776, 59648, 59520, 59392, 
+    59264, 59136, 59008, 58880, 58752, 58624, 58496, 58368, 58240, 58112, 
+    57984, 57856, 57728, 57600, 57472, 57344, 57216, 57088, 56960, 56832, 
+    56704, 56576, 56448, 56320, 56192, 56064, 55936, 55808, 55680, 55552, 
+    55424, 55296, 55168, 55040, 54912, 54784, 54656, 54528, 54400, 54272, 
+    54144, 54016, 53888, 53760, 53632, 53504, 53376, 53248, 53120, 52992, 
+    52864, 52736, 52608, 52480, 52352, 52224, 52096, 51968, 51840, 51712, 
+    51584, 51456, 51328, 51200, 51072, 50944, 50816, 50688, 50560, 50432, 
+    50304, 50176, 50048, 49920, 49792, 49664, 49536, 49408, 49280, 49152, 
+    49024, 48896, 48768, 48640, 48512, 48384, 48256, 48128, 48000, 47872, 
+    47744, 47616, 47488, 47360, 47232, 47104, 46976, 46848, 46720, 46592, 
+    46464, 46336, 46208, 46080, 45952, 45824, 45696, 45568, 45440, 45312, 
+    45184, 45056, 44928, 44800, 44672, 44544, 44416, 44288, 44160, 44032, 
+    43904, 43776, 43648, 43520, 43392, 43264, 43136, 43008, 42880, 42752, 
+    42624, 42496, 42368, 42240, 42112, 41984, 41856, 41728, 41600, 41472, 
+    41344, 41216, 41088, 40960, 40832, 40704, 40576, 40448, 40320, 40192, 
+    40064, 39936, 39808, 39680, 39552, 39424, 39296, 39168, 39040, 38912, 
+    38784, 38656, 38528, 38400, 38272, 38144, 38016, 37888, 37760, 37632, 
+    37504, 37376, 37248, 37120, 36992, 36864, 36736, 36608, 36480, 36352, 
+    36224, 36096, 35968, 35840, 35712, 35584, 35456, 35328, 35200, 35072, 
+    34944, 34816, 34688, 34560, 34432, 34304, 34176, 34048, 33920, 33792, 
+    33664, 33536, 33408, 33280, 33152, 33024, 32896, 32768, 32640, 32512, 
+    32384, 32256, 32128, 32000, 31872, 31744, 31616, 31488, 31360, 31232, 
+    31104, 30976, 30848, 30720, 30592, 30464, 30336, 30208, 30080, 29952, 
+    29824, 29696, 29568, 29440, 29312, 29184, 29056, 28928, 28800, 28672, 
+    28544, 28416, 28288, 28160, 28032, 27904, 27776, 27648, 27520, 27392, 
+    27264, 27136, 27008, 26880, 26752, 26624, 26496, 26368, 26240, 26112, 
+    25984, 25856, 25728, 25600, 25472, 25344, 25216, 25088, 24960, 24832, 
+    24704, 24576, 24448, 24320, 24192, 24064, 23936, 23808, 23680, 23552, 
+    23424, 23296, 23168, 23040, 22912, 22784, 22656, 22528, 22400, 22272, 
+    22144, 22016, 21888, 21760, 21632, 21504, 21376, 21248, 21120, 20992, 
+    20864, 20736, 20608, 20480, 20352, 20224, 20096, 19968, 19840, 19712, 
+    19584, 19456, 19328, 19200, 19072, 18944, 18816, 18688, 18560, 18432, 
+    18304, 18176, 18048, 17920, 17792, 17664, 17536, 17408, 17280, 17152, 
+    17024, 16896, 16768, 16640, 16512, 16384, 16256, 16128, 16000, 15872, 
+    15744, 15616, 15488, 15360, 15232, 15104, 14976, 14848, 14720, 14592, 
+    14464, 14336, 14208, 14080, 13952, 13824, 13696, 13568, 13440, 13312, 
+    13184, 13056, 12928, 12800, 12672, 12544, 12416, 12288, 12160, 12032, 
+    11904, 11776, 11648, 11520, 11392, 11264, 11136, 11008, 10880, 10752, 
+    10624, 10496, 10368, 10240, 10112, 9984, 9856, 9728, 9600, 9472, 
+    9344, 9216, 9088, 8960, 8832, 8704, 8576, 8448, 8320, 8192, 
+    8064, 7936, 7808, 7680, 7552, 7424, 7296, 7168, 7040, 6912, 
+    6784, 6656, 6528, 6400, 6272, 6144, 6016, 5888, 5760, 5632, 
+    5504, 5376, 5248, 5120, 4992, 4864, 4736, 4608, 4480, 4352, 
+    4224, 4096, 3968, 3840, 3712, 3584, 3456, 3328, 3200, 3072, 
+    2944, 2816, 2688, 2560, 2432, 2304, 2176, 2048, 1920, 1792, 
+    1664, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512, 
+    384, 256, 
+};
+
+static const int blocks_length[] = {
+    4096, 1024, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, -1, -1, };
+static const jchar* blocks[] = {
+    blocks0, blocks1, blocks2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
+    NULL, NULL, NULL, NULL, blocks14, NULL, NULL};
 
 /**
  * Information about each character.  The low order 5 bits form the
  * character type, the next bit is a flag for non-breaking spaces, and the
  * next bit is a flag for mirrored directionality.  The high order 9 bits
  * form the offset into the attribute tables.  Note that this limits the
- * number of unique character attributes to 512, which is not a problem
- * as of Unicode version 3.2.0, but may soon become one.
+ * number of unique character attributes per plane to 512, which is not a 
+ * problem as of Unicode version 4.0.0, but may soon become one.
  */
-static const jchar data[] = {
-    12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290,
-    12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290,
-    12161, 12290, 15872, 15872, 12161, 12290, 15872, 15872, 15872, 15872,
-    15872, 15872, 14853, 14853, 15872, 15872, 15872, 14853, 14853, 14853,
-    15872, 15872, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 15872, 14853, 14853, 14853, 15872, 15872, 15872, 15872, 23176,
-    23176, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    15872, 14853, 14853, 14853, 15872, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872, 15872,
-    15872, 15872, 20632, 15872, 15872, 15872, 15872, 17798, 15872, 15872,
-    14853, 14853, 14853, 14853, 14853, 14853, 15872, 15872, 15872, 15872,
-    14853, 14853, 15872, 15872, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 21253, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    15872, 15872, 15872, 15872, 20738, 20738, 20738, 20738, 20738, 20738,
-    20738, 20738, 20738, 20738, 20738, 20738, 20738, 20738, 20738, 20738,
-    20738, 20738, 20738, 20738, 20738, 20738, 20738, 20738, 20738, 20738,
-    20738, 20738, 20738, 20738, 20738, 10498, 15872, 20632, 10772, 15872,
-    15872, 15872, 15872, 15872, 15872, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798,
-    17926, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 6683, 6683, 15872,
-    15872, 15872, 15872, 17668, 15872, 15872, 15872, 664, 15872, 664,
-    25877, 26006, 664, 6807, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 17668, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 17668, 17668, 6683, 6683, 6683,
-    6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683,
-    6683, 17668, 17668, 6683, 6683, 6683, 6683, 6683, 6683, 6683,
-    6683, 6683, 6683, 6683, 6683, 6683, 6683, 10498, 28930, 10498,
-    15872, 10498, 10498, 29441, 29441, 29441, 29441, 29187, 6683, 6683,
-    6683, 27778, 27778, 10498, 10498, 15872, 15872, 10498, 10498, 27905,
-    27905, 29569, 29569, 15872, 6683, 6683, 6683, 6914, 7042, 7170,
-    7298, 7426, 7554, 7682, 7810, 7938, 8066, 8194, 8322, 8450,
-    8578, 8706, 8834, 8962, 9090, 9218, 9346, 9474, 9602, 9730,
-    9858, 9986, 10114, 1109, 3225, 1238, 3225, 15, 15, 15,
-    15, 15, 271, 15, 15, 15, 15, 15, 15, 15,
-    15, 15, 15, 15, 15, 15, 15, 15, 15, 15,
-    15, 15, 15, 15, 15, 15, 15, 15, 15, 143,
-    271, 143, 399, 271, 15, 15, 15, 15, 15, 15,
-    15, 15, 15, 15, 15, 15, 15, 15, 271, 271,
-    271, 143, 524, 664, 664, 792, 922, 792, 664, 664,
-    1109, 1238, 664, 1305, 1432, 1556, 1432, 1688, 1801, 1929,
-    2057, 2185, 2313, 2441, 2569, 2697, 2825, 2953, 1432, 664,
-    3161, 3225, 3161, 664, 3329, 3457, 3585, 3713, 3841, 3969,
-    4097, 4225, 4353, 4481, 4609, 4737, 4865, 4993, 5121, 5249,
-    5377, 5505, 5633, 5761, 5889, 6017, 6145, 6273, 6401, 6529,
-    1109, 664, 1238, 6683, 6807, 664, 664, 664, 3225, 1109,
-    1238, 15872, 664, 664, 664, 664, 664, 664, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 10284, 664, 922, 922,
-    922, 922, 10396, 10396, 6683, 10396, 10498, 10717, 3225, 10772,
-    10396, 6683, 10908, 1305, 11019, 11147, 6683, 11266, 10396, 664,
-    6683, 11403, 10498, 11614, 11659, 11659, 11659, 664, 664, 1305,
-    1556, 3225, 3225, 3225, 15872, 664, 922, 792, 664, 15872,
-    15872, 15872, 15872, 21253, 21253, 21253, 15872, 21253, 15872, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 21253, 15872, 15872, 15872, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 17798, 17798, 17798, 17798, 15872, 20252, 20252,
-    20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097,
-    20097, 20097, 20097, 20097, 20097, 20097, 11777, 11777, 11777, 11777,
-    11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777,
-    11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 3225,
-    11777, 11777, 11777, 11777, 11777, 11777, 11777, 10498, 12929, 12161,
-    12290, 12161, 12290, 13057, 12161, 12290, 13185, 13185, 12161, 12290,
-    10498, 13313, 13441, 13569, 12161, 12290, 13185, 13697, 13826, 13953,
-    14081, 12161, 12290, 10498, 10498, 13953, 14209, 10498, 14337, 12290,
-    12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 10498, 12161,
-    12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161,
-    12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161,
-    12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161,
-    12290, 15872, 15872, 15872, 15872, 15872, 15872, 23305, 23433, 23561,
-    23689, 23817, 23945, 24073, 24201, 24329, 24457, 17798, 17798, 14853,
-    14853, 14853, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 6683, 6683, 18049, 664, 18177, 18177, 18177,
-    15872, 18305, 15872, 18433, 18433, 10498, 11777, 11777, 11777, 11777,
-    11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777,
-    11777, 11777, 11906, 11906, 11906, 11906, 11906, 11906, 11906, 11906,
-    11906, 11906, 11906, 11906, 11906, 11906, 11906, 11906, 11906, 11906,
-    11906, 11906, 11906, 11906, 11906, 3225, 11906, 11906, 11906, 11906,
-    11906, 11906, 11906, 12034, 11906, 11906, 18818, 11906, 11906, 11906,
-    11906, 11906, 11906, 11906, 11906, 11906, 18946, 19074, 19074, 15872,
-    19202, 19330, 19457, 19457, 19457, 19586, 19714, 10498, 15872, 15872,
-    12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290,
-    12161, 12290, 12161, 12290, 12161, 12290, 10498, 15105, 15235, 15362,
-    12161, 12290, 15617, 15745, 12161, 12290, 12161, 12290, 12161, 12290,
-    12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290,
-    12417, 12546, 12161, 12290, 12161, 12290, 12161, 12290, 10498, 12161,
-    12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161,
-    12290, 12161, 12290, 12161, 12290, 19842, 19970, 15490, 10498, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 23056, 23056, 23056, 23056, 23056, 23056, 32139, 15872, 15872,
-    15872, 32267, 32395, 32523, 32651, 32779, 32907, 1305, 1305, 3225,
-    1109, 1238, 10498, 14853, 14853, 14853, 14853, 15105, 15235, 15362,
-    15105, 15235, 15362, 15105, 15235, 15362, 12161, 12290, 12161, 12290,
-    12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290,
-    12161, 12290, 15490, 12161, 12290, 20252, 17798, 17798, 17798, 17798,
-    15872, 20359, 20359, 15872, 15872, 12161, 12290, 12161, 12290, 12161,
-    12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161,
-    12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12673,
-    12161, 12290, 12161, 12290, 12161, 12290, 12802, 12161, 12290, 12161,
-    12290, 12161, 12290, 14465, 12161, 12290, 14465, 10498, 10498, 12161,
-    12290, 14465, 12161, 12290, 14593, 14593, 12161, 12290, 12161, 12290,
-    14721, 12161, 12290, 10498, 14853, 12161, 12290, 10498, 14978, 19457,
-    12161, 12290, 12161, 12290, 15872, 15872, 12161, 12290, 15872, 15872,
-    12161, 12290, 15872, 15872, 15872, 12161, 12290, 12161, 12290, 12161,
-    12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161,
-    12290, 12161, 12290, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 1432, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    21144, 15872, 15872, 15872, 21144, 21144, 21144, 21144, 21144, 21144,
-    21144, 21144, 21144, 21144, 21144, 21144, 21144, 21144, 15872, 23056,
-    21253, 17798, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 15872, 15872, 23056, 19457, 19457, 19457, 19457, 19457, 19457,
-    19457, 19457, 19457, 19457, 19457, 19457, 19457, 19457, 19457, 19457,
-    19457, 19457, 19457, 19457, 19457, 19457, 19457, 19457, 19457, 19457,
-    19457, 19457, 19457, 19457, 19457, 19457, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 15872, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 15872, 14853, 15872, 15872, 15872, 15872,
-    15872, 23305, 23433, 23561, 23689, 23817, 23945, 24073, 24201, 24329,
-    24457, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 10498, 10498, 10498, 16002, 16130, 10498, 16258,
-    16258, 10498, 16386, 10498, 16514, 10498, 10498, 10498, 10498, 16258,
-    10498, 10498, 16642, 10498, 10498, 10498, 10498, 16770, 16898, 10498,
-    10498, 10498, 10498, 10498, 16898, 10498, 10498, 17026, 10498, 10498,
-    17154, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498,
-    10498, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 10498, 10498, 10498, 10498, 10498, 15872, 15872,
-    15872, 15872, 15872, 20997, 17798, 20997, 20997, 15872, 20997, 20997,
-    15872, 20997, 20997, 20997, 20997, 20997, 20997, 20997, 20997, 20997,
-    20997, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 21144, 21253, 17798, 17798, 17798, 17798, 17798, 17798, 17798,
-    20359, 20359, 17798, 20359, 20359, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 11659, 11659, 11659,
-    11659, 11659, 11659, 11659, 11659, 11659, 11659, 11659, 11659, 33419,
-    17282, 10498, 10498, 17282, 10498, 10498, 10498, 10498, 17282, 10498,
-    17410, 17410, 10498, 10498, 10498, 10498, 10498, 10498, 17538, 10498,
-    10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498,
-    10498, 10498, 10498, 15872, 15872, 17668, 17668, 17668, 17668, 17668,
-    17668, 17668, 17668, 17668, 6683, 6683, 17668, 17668, 17668, 17668,
-    17668, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683,
-    17668, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 20481, 20481,
-    20481, 20481, 20481, 20481, 20481, 20481, 20481, 20481, 20481, 20481,
-    20481, 20481, 20481, 20481, 20481, 20481, 20481, 20481, 20481, 20481,
-    20481, 15872, 15872, 17668, 20632, 20632, 20632, 20632, 20632, 20632,
-    11777, 11777, 15872, 11777, 11777, 11777, 11777, 11777, 11777, 11777,
-    11777, 11777, 18562, 18690, 18690, 18690, 10498, 11906, 11906, 11906,
-    11906, 11906, 11906, 11906, 11906, 11906, 11906, 11906, 11906, 11906,
-    11906, 11906, 11906, 19970, 19970, 19970, 19970, 19970, 19970, 19970,
-    19970, 19970, 19970, 19970, 19970, 19970, 19970, 19970, 19970, 17798,
-    17798, 17798, 17798, 17798, 20632, 17798, 17798, 14853, 14853, 14853,
-    14853, 15872, 15872, 15872, 15872, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 15872, 17798, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 17798, 17798, 17798, 17798, 15872, 17798, 17798,
-    17798, 20888, 17798, 17798, 20888, 17798, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 20997, 20997, 20997,
-    20997, 20997, 20997, 20997, 20997, 20997, 20997, 20997, 20997, 20997,
-    20997, 20997, 20997, 15872, 15872, 15872, 15872, 15872, 20997, 20997,
-    20997, 20888, 20888, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 23433, 23561, 23689, 23817, 23945, 24073,
-    24201, 24329, 24457, 25355, 25483, 25611, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 17798,
-    23176, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 15872, 15872,
-    15872, 14853, 14853, 14853, 15872, 14853, 14853, 14853, 14853, 15872,
-    15872, 15872, 14853, 14853, 15872, 14853, 15872, 14853, 14853, 14853,
-    14853, 15872, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872, 15872,
-    15872, 15872, 15872, 15872, 17798, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 23176, 23176,
-    23176, 23176, 15872, 17798, 17798, 17798, 15872, 17798, 17798, 17798,
-    17798, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 17798, 17798,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 17798,
-    23176, 23176, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 15872, 15872, 14853, 14853, 15872, 15872, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    15872, 15872, 15872, 15872, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 15872, 15872, 15872, 15872,
-    23176, 23176, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 15872, 15872, 15872, 14853, 14853, 14853, 14853, 14853, 14853,
-    15872, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 15872, 15872,
-    14853, 14853, 14853, 14853, 14853, 14853, 15872, 15872, 14853, 14853,
-    14853, 15872, 15872, 15872, 15872, 23305, 23433, 23561, 23689, 23817,
-    23945, 24073, 24201, 24329, 24457, 20252, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 21513, 21641, 21769, 21897, 22025, 22153, 22281, 22409, 22537,
-    22665, 792, 22808, 22808, 21144, 15872, 15872, 17798, 21253, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 21253, 21253, 21253, 15872, 15872, 21253, 21253, 21253, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 21253, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 21253, 21253, 21253, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 25877, 26006,
-    21380, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253, 21253,
-    21253, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 23176, 23176, 20632, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 17798, 17798, 23176,
-    15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872, 14853,
-    15872, 14853, 14853, 14853, 15872, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 20632, 20632,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 17798, 17798, 17798,
-    17798, 17798, 21380, 21380, 17798, 17798, 10396, 17798, 17798, 17798,
-    17798, 15872, 15872, 1801, 1929, 2057, 2185, 2313, 2441, 2569,
-    2697, 2825, 2953, 21253, 21253, 21253, 22940, 22940, 15872, 14853,
-    14853, 14853, 15872, 14853, 15872, 14853, 15872, 15872, 14853, 14853,
-    15872, 14853, 14853, 14853, 14853, 17798, 14853, 14853, 17798, 17798,
-    17798, 17798, 17798, 17798, 15872, 17798, 17798, 14853, 15872, 15872,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    15872, 14853, 14853, 14853, 14853, 14853, 15872, 15872, 15872, 15872,
-    17798, 17798, 23176, 15872, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 15872, 15872, 17798, 14853,
-    23176, 23176, 23176, 23176, 23176, 15872, 17798, 23176, 23176, 15872,
-    23176, 23176, 17798, 17798, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 23176, 23176, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    14853, 15872, 20632, 20632, 20632, 20632, 20632, 20632, 20632, 20632,
-    23433, 23561, 23689, 23817, 23945, 24073, 24201, 24329, 24457, 25355,
-    26123, 26251, 26379, 26507, 26635, 26763, 26891, 27019, 25483, 27147,
-    15872, 15872, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    15872, 14853, 14853, 15872, 15872, 14853, 14853, 14853, 14853, 15872,
-    15872, 17798, 14853, 23176, 17798, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 23176, 23176, 23176, 23176, 17798, 15872, 15872, 14853,
-    17798, 17798, 17798, 17798, 15872, 15872, 15872, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 15872, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 15872, 14853, 15872, 15872, 15872, 14853,
-    14853, 14853, 14853, 15872, 15872, 17798, 15872, 23176, 23176, 23176,
-    15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872,
-    14853, 14853, 14853, 15872, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872,
-    14853, 15872, 14853, 14853, 14853, 14853, 15872, 15872, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 15872, 14853, 15872, 14853, 14853,
-    14853, 14853, 15872, 15872, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 17798, 14853, 14853, 17798, 17798, 17798, 17798, 17798, 17798,
-    17798, 15872, 15872, 15872, 15872, 922, 922, 922, 922, 922,
-    922, 922, 922, 922, 922, 922, 922, 922, 922, 922,
-    922, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 14853, 14853, 17798,
-    17798, 20632, 20632, 23305, 23433, 23561, 23689, 23817, 23945, 24073,
-    24201, 24329, 24457, 20632, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 664,
-    664, 792, 922, 792, 664, 664, 25877, 26006, 664, 1305,
-    1432, 1556, 1432, 1688, 1801, 1929, 2057, 2185, 2313, 2441,
-    2569, 2697, 2825, 2953, 1432, 664, 3225, 3225, 3225, 664,
-    664, 664, 664, 664, 664, 10772, 664, 664, 664, 664,
-    23056, 23056, 23056, 23056, 15872, 23305, 23433, 23561, 23689, 23817,
-    23945, 24073, 24201, 24329, 24457, 15872, 15872, 15872, 15872, 15872,
-    15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 15872, 14853, 14853, 14853, 14853, 14853, 15872, 15872, 15872,
-    15872, 23176, 17798, 17798, 17798, 17798, 15872, 15872, 23176, 23176,
-    15872, 15872, 23176, 23176, 17798, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 23176, 15872, 15872, 15872, 15872, 14853,
-    14853, 15872, 14853, 15872, 15872, 14853, 14853, 15872, 14853, 15872,
-    15872, 14853, 15872, 15872, 15872, 15872, 15872, 15872, 14853, 14853,
-    14853, 14853, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    15872, 14853, 14853, 15872, 14853, 14853, 15872, 14853, 14853, 15872,
-    15872, 17798, 15872, 23176, 23176, 17798, 17798, 15872, 15872, 15872,
-    15872, 17798, 17798, 15872, 15872, 17798, 17798, 17798, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 14853,
-    14853, 14853, 14853, 15872, 14853, 15872, 14853, 14853, 17798, 17798,
-    15872, 15872, 23305, 23433, 23561, 23689, 23817, 23945, 24073, 24201,
-    24329, 24457, 14853, 14853, 922, 922, 24587, 24715, 24843, 24971,
-    25099, 25227, 20252, 15872, 15872, 15872, 15872, 15872, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 15872, 14853, 14853, 15872, 14853,
-    14853, 14853, 14853, 14853, 15872, 15872, 17798, 14853, 23176, 23176,
-    17798, 17798, 17798, 17798, 17798, 15872, 17798, 17798, 23176, 15872,
-    23176, 23176, 17798, 15872, 15872, 14853, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 23305, 23433, 23561, 23689, 23817, 23945, 24073, 24201, 24329,
-    24457, 25099, 25099, 25099, 25099, 25099, 25099, 25099, 25099, 25099,
-    25099, 20252, 17798, 20252, 17798, 20252, 17798, 25877, 26006, 25877,
-    26006, 23176, 23176, 17798, 17798, 17798, 15872, 15872, 15872, 23176,
-    23176, 15872, 15872, 23176, 23176, 17798, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 17798, 23176, 15872, 15872, 15872, 15872,
-    14853, 14853, 15872, 14853, 14853, 14853, 14853, 14853, 15872, 14853,
-    14853, 15872, 23176, 17798, 17798, 17798, 17798, 23176, 17798, 15872,
-    15872, 15872, 17798, 17798, 23176, 17798, 15872, 15872, 15872, 15872,
-    15872, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 23176, 23176, 23176, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 23176, 23176, 15872, 15872, 15872, 23176, 23176, 23176,
-    15872, 23176, 23176, 23176, 17798, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 23176, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 14853, 14853, 14853, 14853, 14853, 15872, 17668,
-    15872, 17798, 17798, 17798, 17798, 17798, 17798, 15872, 15872, 23305,
-    23433, 23561, 23689, 23817, 23945, 24073, 24201, 24329, 24457, 15872,
-    15872, 14853, 14853, 15872, 15872, 15872, 15872, 23305, 23433, 23561,
-    23689, 23817, 23945, 24073, 24201, 24329, 24457, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 17798, 17798, 17798, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 17798, 17798, 17798, 20359, 20359, 20359, 23176,
-    17798, 17798, 17798, 15872, 15872, 23176, 23176, 23176, 15872, 23176,
-    23176, 23176, 17798, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 23176, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872, 15872,
-    15872, 17798, 15872, 15872, 15872, 15872, 23176, 23176, 23176, 17798,
-    17798, 17798, 15872, 17798, 15872, 23176, 23176, 23176, 23176, 23176,
-    23176, 23176, 23176, 17798, 23176, 23176, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 17798, 17798, 17798, 17798, 20632, 20632, 20632,
-    20632, 20632, 20632, 20632, 922, 20632, 15872, 15872, 15872, 14853,
-    14853, 14853, 14853, 14853, 14853, 17668, 17798, 17798, 17798, 17798,
-    17798, 17798, 17798, 17798, 20632, 23305, 23433, 23561, 23689, 23817,
-    23945, 24073, 24201, 24329, 24457, 20632, 20632, 15872, 15872, 15872,
-    15872, 14853, 20252, 20252, 20252, 20632, 20632, 20632, 20632, 20632,
-    20632, 20632, 20632, 25784, 20632, 20632, 20632, 20632, 20632, 20632,
-    20252, 20252, 20252, 20252, 20252, 17798, 17798, 20252, 20252, 20252,
-    20252, 20252, 20252, 17798, 20252, 20252, 20252, 20252, 20252, 20252,
-    15872, 15872, 20252, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 15872, 15872, 15872, 15872, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 15872, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    15872, 15872, 15872, 15872, 15872, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 6807, 17668, 17668, 17668, 15872, 23305, 23433, 23561,
-    23689, 23817, 23945, 24073, 24201, 24329, 24457, 20632, 20632, 20632,
-    20632, 20632, 20632, 14853, 14853, 14853, 14853, 14853, 14853, 23176,
-    23176, 17798, 17798, 15872, 15872, 15872, 15872, 15872, 15872, 524,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 25877, 26006, 15872, 15872,
-    15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 20632, 20632, 20632, 27275, 27403, 27531, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 17798, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 12161, 12290, 12161, 12290, 12161,
-    12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161, 12290, 12161,
-    12290, 12161, 12290, 12161, 12290, 12161, 12290, 10498, 10498, 10498,
-    10498, 10498, 27650, 15872, 15872, 15872, 15872, 27778, 27778, 27778,
-    27778, 27778, 27778, 27778, 27778, 27905, 27905, 27905, 27905, 27905,
-    27905, 27905, 27905, 27778, 27778, 27778, 27778, 27778, 27778, 27778,
-    27778, 27905, 27905, 27905, 27905, 27905, 27905, 27905, 27905, 27778,
-    27778, 27778, 27778, 27778, 27778, 15872, 15872, 27905, 27905, 27905,
-    27905, 27905, 27905, 15872, 15872, 10498, 27778, 10498, 27778, 10498,
-    27778, 10498, 27778, 15872, 27905, 15872, 27905, 15872, 27905, 15872,
-    27905, 27778, 27778, 27778, 27778, 27778, 27778, 27778, 27778, 27905,
-    27905, 27905, 27905, 27905, 27905, 27905, 27905, 28034, 28034, 28162,
-    28162, 28162, 28162, 28290, 28290, 28418, 28418, 28546, 28546, 28674,
-    28674, 15872, 15872, 27778, 27778, 27778, 27778, 27778, 27778, 27778,
-    27778, 28803, 28803, 28803, 28803, 28803, 28803, 28803, 28803, 27778,
-    27778, 27778, 27778, 27778, 27778, 27778, 27778, 28803, 28803, 28803,
-    28803, 28803, 28803, 28803, 28803, 27778, 27778, 10498, 28930, 10498,
-    15872, 10498, 10498, 27905, 27905, 29057, 29057, 29187, 6683, 29314,
-    6683, 6914, 7042, 7170, 7298, 7426, 7554, 7682, 7810, 7938,
-    8066, 8194, 8322, 8450, 8578, 8706, 8834, 8962, 9090, 9218,
-    9346, 9474, 9602, 9730, 9858, 9986, 10114, 25877, 3225, 26006,
-    3225, 15872, 27778, 27778, 10498, 10498, 10498, 29698, 10498, 10498,
-    27905, 27905, 29825, 29825, 29953, 6683, 6683, 6683, 15872, 15872,
-    10498, 28930, 10498, 15872, 10498, 10498, 30081, 30081, 30209, 30209,
-    29187, 6683, 6683, 15872, 524, 524, 524, 524, 524, 524,
-    524, 30380, 524, 524, 524, 30476, 23056, 23056, 30608, 30736,
-    10772, 30900, 10772, 10772, 10772, 10772, 664, 664, 31005, 31134,
-    25877, 31005, 31005, 31134, 25877, 31005, 664, 664, 664, 664,
-    664, 664, 664, 664, 31245, 31374, 31504, 31632, 31760, 31888,
-    32016, 30380, 792, 792, 792, 792, 792, 664, 664, 664,
-    664, 10717, 11614, 664, 664, 664, 664, 6807, 32139, 11403,
-    11019, 11147, 32267, 32395, 32523, 32651, 32779, 32907, 1305, 1305,
-    3225, 1109, 1238, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 15872, 15872, 15872, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 15872, 15872, 15872, 15872,
-    15872, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 19457, 10396,
-    10396, 10396, 10396, 19457, 10396, 10396, 10498, 19457, 19457, 19457,
-    10498, 10498, 19457, 19457, 19457, 10498, 10396, 19457, 10396, 10396,
-    10396, 19457, 19457, 19457, 19457, 19457, 10396, 10396, 41098, 41226,
-    41354, 41482, 41610, 41738, 41866, 41994, 42122, 17798, 17798, 17798,
-    17798, 17798, 17798, 10772, 17668, 17668, 17668, 17668, 17668, 10396,
-    10396, 42250, 42378, 42506, 15872, 15872, 15872, 10396, 10396, 10396,
-    10396, 15872, 10396, 10396, 10396, 10396, 15872, 15872, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 3225, 3225, 10396, 10396,
-    3225, 10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 3225, 10396,
-    10396, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 37642, 37770, 37898, 38026, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 3225, 3225, 3225, 3225, 3225, 10396, 10396, 10396, 10396,
-    10396, 3225, 3225, 10396, 10396, 10396, 10396, 19457, 10396, 33025,
-    10396, 19457, 10396, 33153, 33281, 19457, 19457, 10908, 10498, 19457,
-    19457, 10396, 19457, 10498, 14853, 14853, 14853, 14853, 10498, 10396,
-    15872, 15872, 15872, 15872, 15872, 33546, 33674, 33802, 33930, 34058,
-    34186, 34314, 34442, 34570, 34698, 34826, 34954, 35082, 35210, 35338,
-    35466, 35594, 35722, 35850, 35978, 36106, 36234, 36362, 36490, 36618,
-    36746, 36874, 37002, 37130, 37258, 37386, 37514, 3225, 3225, 3161,
-    3161, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3161, 3161,
-    3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161,
-    3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3161, 3161,
-    3161, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225,
-    3161, 3161, 3161, 3161, 3161, 3225, 3225, 3161, 3161, 3225,
-    3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3161, 3161,
-    3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3161, 3161,
-    3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225,
-    3225, 3225, 3225, 3225, 3225, 10396, 10396, 3225, 10396, 10396,
-    3225, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 3225, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 15872, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 3225, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3161,
-    3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3161, 1305,
-    1305, 3225, 3161, 3161, 3225, 3225, 3225, 3161, 3161, 3161,
-    3161, 3225, 3161, 3225, 3161, 3225, 3225, 3225, 3225, 3161,
-    3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225,
-    3225, 3225, 3225, 3161, 3225, 3161, 3161, 3161, 3161, 3161,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 1109, 1238, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252,
-    20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252,
-    20252, 20252, 20252, 15872, 15872, 15872, 15872, 20252, 20252, 20252,
-    20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252,
-    20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 39580,
-    39580, 39580, 39580, 39580, 39580, 39580, 39580, 39580, 39580, 39580,
-    39580, 39580, 39580, 39580, 39580, 39708, 39708, 39708, 39708, 39708,
-    39708, 39708, 39708, 39708, 39708, 39708, 39708, 39708, 39708, 39708,
-    39708, 32139, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 3161, 3225, 3161, 3225, 3161, 3161, 3161,
-    3161, 3161, 3161, 3161, 3161, 3225, 3225, 3161, 3161, 3161,
-    3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161,
-    3161, 3161, 3161, 3161, 3161, 3225, 3225, 3161, 3161, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 922, 922, 3225, 6683, 10396, 922, 922,
-    15872, 10396, 3225, 3225, 3225, 3225, 10396, 10396, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 23056, 23056,
-    23056, 10396, 10396, 15872, 15872, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 15872, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 15872, 10396, 15872, 10396,
-    10396, 10396, 10396, 15872, 15872, 15872, 10396, 15872, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 33419,
-    39819, 39947, 40075, 40203, 40331, 40459, 40587, 40715, 40843, 33419,
-    39819, 39947, 40075, 40203, 40331, 40459, 40587, 40715, 40843, 10396,
-    15872, 15872, 15872, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 3161, 3161, 3161, 3161, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396,
-    10396, 10396, 10396, 10396, 10396, 10396, 20252, 10396, 10396, 10396,
-    10396, 10396, 15872, 15872, 15872, 15872, 15872, 25099, 25099, 25099,
-    25099, 25099, 25099, 25099, 25099, 25099, 25099, 20252, 20252, 20252,
-    20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252,
-    20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252,
-    20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 15872,
-    15872, 15872, 20252, 24587, 24715, 24843, 24971, 42635, 42763, 42891,
-    43019, 43147, 25355, 20252, 20252, 20252, 20252, 20252, 20252, 20252,
-    20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252,
-    20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252,
-    10396, 15872, 10396, 10396, 10396, 15872, 10396, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 11403, 11019, 11147, 32267, 32395, 32523, 32651, 32779,
-    32907, 38155, 38283, 38411, 38539, 38667, 38795, 38923, 39051, 39179,
-    39307, 39435, 11403, 11019, 11147, 32267, 32395, 32523, 32651, 32779,
-    32907, 38155, 38283, 38411, 38539, 38667, 38795, 38923, 39051, 39179,
-    39307, 39435, 20252, 20252, 20252, 20252, 524, 664, 664, 664,
-    10396, 17668, 14853, 40970, 1109, 1238, 1109, 1238, 1109, 1238,
-    1109, 1238, 1109, 1238, 10396, 10396, 1109, 1238, 1109, 1238,
-    1109, 1238, 1109, 1238, 10772, 25877, 26006, 26006, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 15872,
-    15872, 15872, 15872, 17798, 17798, 6683, 6683, 17668, 17668, 15872,
-    14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853, 14853,
-    14853, 14853, 14853, 14853, 14853, 15872, 20252, 20252, 25099, 25099,
-    25099, 25099, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252,
-    20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 20252, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 43283, 43283, 43283,
-    43283, 43283, 43283, 43283, 43283, 43283, 43283, 43283, 43283, 43283,
-    43283, 43283, 43283, 43283, 43283, 43283, 43283, 43283, 43283, 43283,
-    43283, 43283, 43283, 43283, 43283, 43283, 43283, 43283, 43283, 43410,
-    43410, 43410, 43410, 43410, 43410, 43410, 43410, 43410, 43410, 43410,
-    43410, 43410, 43410, 43410, 43410, 43410, 43410, 43410, 43410, 43410,
-    43410, 43410, 43410, 43410, 43410, 43410, 43410, 43410, 43410, 43410,
-    43410, 20997, 20997, 20997, 20997, 20997, 20997, 20997, 20997, 20997,
-    1305, 20997, 20997, 20997, 20997, 20997, 20997, 20997, 20997, 20997,
-    20997, 20997, 20997, 20997, 15872, 20997, 20997, 20997, 20997, 20997,
-    15872, 20997, 15872, 17798, 17798, 17798, 17798, 15872, 15872, 15872,
-    15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 15872, 664,
-    10772, 10772, 6807, 6807, 25877, 26006, 25877, 26006, 25877, 26006,
-    25877, 26006, 25877, 26006, 25877, 26006, 15872, 15872, 15872, 15872,
-    664, 664, 664, 664, 6807, 6807, 6807, 1432, 664, 1432,
-    15872, 664, 1432, 664, 664, 10772, 25877, 26006, 25877, 26006,
-    25877, 26006, 792, 664, 3329, 3457, 3585, 3713, 3841, 3969,
-    4097, 4225, 4353, 4481, 4609, 4737, 4865, 4993, 5121, 5249,
-    5377, 5505, 5633, 5761, 5889, 6017, 6145, 6273, 6401, 6529,
-    25877, 664, 26006, 6683, 6807,
-  };
-/** Length of data. */
-static const int data_length = 5345;
+static const jchar data0[] = {
+    8834, 8962, 9090, 9218, 9346, 9474, 9602, 9730, 9858, 9986, 
+    10114, 1109, 3225, 1238, 3225, 15, 15, 15, 15, 15, 
+    15, 15, 15, 15, 143, 271, 143, 399, 271, 15, 
+    15, 15, 15, 15, 271, 15, 15, 15, 15, 15, 
+    15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 
+    15, 271, 271, 271, 143, 1801, 1929, 2057, 2185, 2313, 
+    2441, 2569, 2697, 2825, 2953, 1432, 664, 3161, 3225, 3161, 
+    664, 664, 3225, 664, 6807, 16256, 16256, 664, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 524, 664, 664, 792, 922, 
+    792, 664, 664, 1109, 1238, 664, 1305, 1432, 1556, 1432, 
+    1688, 10908, 1305, 11019, 11147, 6683, 11266, 10396, 664, 6683, 
+    11403, 10498, 11614, 11659, 11659, 11659, 664, 3329, 3457, 3585, 
+    3713, 3841, 3969, 4097, 4225, 4353, 4481, 4609, 4737, 4865, 
+    4993, 5121, 5249, 5377, 5505, 5633, 5761, 5889, 6017, 6145, 
+    6273, 6401, 6529, 1109, 664, 1238, 6683, 6807, 664, 664, 
+    664, 3225, 1109, 1238, 664, 664, 664, 664, 664, 664, 
+    664, 664, 664, 34189, 34318, 34448, 34576, 34704, 34832, 34960, 
+    33452, 10284, 664, 922, 922, 922, 922, 10396, 10396, 6683, 
+    10396, 10498, 10717, 3225, 10768, 10396, 6683, 6914, 7042, 7170, 
+    7298, 7426, 7554, 7682, 7810, 7938, 8066, 8194, 8322, 8450, 
+    8578, 8706, 19074, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 
+    11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 3225, 
+    11777, 11777, 11777, 11777, 11777, 11777, 11777, 11906, 15361, 15491, 
+    15618, 12289, 12418, 15873, 16001, 12289, 12418, 12289, 12418, 12289, 
+    12418, 12289, 12418, 12801, 12289, 12418, 12289, 12418, 12289, 12418, 
+    12930, 19074, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 
+    12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 3225, 12034, 
+    12034, 12034, 12034, 12034, 12034, 12034, 12162, 16129, 10498, 12289, 
+    12418, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 
+    12418, 12289, 12418, 12289, 12418, 15746, 12289, 12418, 21404, 18310, 
+    18310, 18310, 18310, 16256, 21511, 21511, 12289, 12418, 12289, 12418, 
+    12289, 12418, 16256, 16256, 12289, 12418, 16256, 16256, 16256, 16256, 
+    16256, 16256, 18310, 24584, 16256, 16256, 16256, 16256, 15109, 15109, 
+    16256, 15109, 16256, 16256, 15109, 15109, 16256, 15109, 16256, 16256, 
+    15109, 16256, 16256, 11906, 32258, 11906, 16256, 11906, 19074, 33153, 
+    33153, 33281, 33281, 32515, 6683, 6683, 16256, 18310, 18310, 24584, 
+    16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    16256, 15109, 16256, 15109, 15109, 15109, 15109, 16256, 16256, 15109, 
+    15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 16256, 15109, 
+    15109, 15109, 15109, 15109, 15109, 16256, 16256, 15109, 15109, 15109, 
+    15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    21784, 21784, 15109, 15109, 15109, 15109, 15361, 15491, 15618, 15361, 
+    15491, 15618, 15361, 15491, 15618, 12289, 12418, 12289, 12418, 10498, 
+    10498, 10498, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 15109, 15109, 15109, 15109, 16256, 15109, 16256, 15109, 15109, 
+    16256, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 18310, 15109, 
+    24584, 24584, 18310, 18310, 18310, 16256, 16256, 16256, 24584, 24584, 
+    16256, 16256, 24584, 24584, 18310, 16256, 16256, 12545, 12674, 12289, 
+    12418, 12289, 12418, 12289, 12418, 10498, 12289, 12418, 12289, 12418, 
+    12289, 12418, 12289, 12418, 11906, 11906, 11906, 11906, 11906, 30850, 
+    16256, 16256, 16256, 16256, 6683, 6683, 16256, 16256, 16256, 16256, 
+    18052, 16256, 16256, 16256, 664, 16256, 21633, 21633, 21633, 21633, 
+    21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 
+    21633, 21633, 16256, 16256, 18052, 21784, 21784, 21784, 21784, 21784, 
+    21784, 21404, 21404, 21404, 21404, 21404, 18310, 18310, 21404, 21404, 
+    21404, 21404, 21404, 21404, 18310, 21404, 21404, 21404, 21404, 21404, 
+    21404, 16256, 16256, 21404, 15109, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    19842, 19970, 20097, 20097, 20097, 20226, 20354, 10498, 12289, 12418, 
+    12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 11906, 12289, 
+    12418, 12289, 12418, 12289, 12418, 14721, 12289, 12418, 14721, 10498, 
+    10498, 12289, 12418, 14721, 12289, 17666, 10498, 10498, 17666, 10498, 
+    10498, 10498, 10498, 17666, 10498, 17794, 17794, 10498, 10498, 10498, 
+    10498, 17410, 10498, 10498, 17538, 10498, 10498, 10498, 10498, 10498, 
+    10498, 10498, 10498, 10498, 10498, 16386, 16514, 10498, 16642, 16642, 
+    10498, 16770, 10498, 16898, 10498, 10498, 10498, 10498, 13057, 12289, 
+    12418, 12289, 12418, 13185, 12289, 12418, 13313, 13313, 12289, 12418, 
+    10498, 13441, 13569, 13697, 12289, 12418, 13313, 13825, 13954, 14081, 
+    14209, 12289, 12418, 10498, 10498, 14081, 14337, 14466, 14593, 12418, 
+    14849, 14849, 12289, 12418, 12289, 12418, 14977, 12289, 12418, 10498, 
+    15109, 12289, 12418, 10498, 15234, 18310, 18310, 18310, 18310, 18310, 
+    18438, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 
+    18310, 16256, 18310, 18310, 18310, 22168, 18310, 18310, 22168, 18310, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 24584, 16256, 16256, 16256, 16256, 15109, 15109, 16256, 15109, 
+    15109, 15109, 15109, 16256, 16256, 16256, 15109, 15109, 16256, 15109, 
+    16256, 15109, 15109, 16256, 15109, 15109, 16256, 15109, 15109, 16256, 
+    16256, 18310, 16256, 24584, 24584, 24584, 16256, 15109, 15109, 15109, 
+    15109, 15109, 15109, 15109, 15109, 16256, 15109, 15109, 15109, 16256, 
+    16256, 16256, 16256, 24584, 24584, 21784, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 24464, 24464, 24464, 10396, 10396, 16256, 16256, 16256, 
+    664, 664, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, 
+    25737, 25865, 16256, 16256, 16256, 16256, 16256, 16256, 18310, 15109, 
+    16256, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 16256, 
+    15109, 15109, 16256, 16256, 16256, 15109, 15109, 15109, 16256, 16256, 
+    16256, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 15109, 
+    15109, 15109, 16256, 16256, 16256, 21890, 21890, 21890, 21890, 21890, 
+    21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 
+    21890, 11906, 16256, 21784, 22036, 16256, 16256, 16256, 16256, 16256, 
+    18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 
+    22661, 22661, 22661, 22661, 22661, 22661, 22661, 27541, 27670, 16642, 
+    10498, 10498, 17026, 10498, 10498, 10498, 10498, 17154, 17282, 10498, 
+    10498, 10498, 10498, 10498, 17282, 22416, 22416, 22416, 22416, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 1432, 22552, 10396, 
+    10396, 20097, 10396, 10396, 10396, 10396, 20097, 10396, 10396, 10498, 
+    20097, 20097, 20097, 10498, 10498, 17922, 10498, 10498, 10498, 10498, 
+    10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 
+    10498, 10498, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 
+    18052, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18180, 18180, 
+    18052, 18052, 18052, 18052, 18052, 6683, 6683, 6683, 6683, 6683, 
+    6683, 6683, 6683, 6683, 18052, 6683, 22036, 15109, 15109, 15109, 
+    15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    15109, 15109, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 18052, 
+    18052, 6683, 6683, 6683, 6683, 18180, 18180, 18180, 18180, 18180, 
+    18180, 18180, 18180, 18180, 18180, 18052, 18052, 6683, 6683, 6683, 
+    6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 
+    6683, 6683, 6683, 11906, 32258, 11906, 16256, 11906, 19074, 32769, 
+    32769, 32769, 32769, 32515, 6683, 6683, 6683, 10396, 44170, 44298, 
+    44426, 44554, 44682, 44810, 44938, 45066, 45194, 18310, 18310, 18310, 
+    18310, 18310, 18310, 18310, 18310, 16256, 18310, 18310, 18310, 18310, 
+    18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 
+    18310, 18310, 16256, 21404, 21404, 25995, 26123, 26251, 26379, 21404, 
+    21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 
+    10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 
+    10396, 10396, 10396, 10396, 16256, 10396, 16256, 10396, 10396, 10396, 
+    10396, 16256, 10396, 10396, 10396, 10396, 16256, 16256, 10396, 10396, 
+    10396, 10396, 10396, 21404, 10396, 10396, 10396, 10396, 10396, 3225, 
+    3225, 3225, 3225, 3225, 27541, 27670, 664, 10396, 10396, 10396, 
+    10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 10396, 10396, 
+    10396, 10396, 10396, 10396, 10396, 1109, 1238, 1109, 1238, 1109, 
+    1238, 1109, 1238, 29579, 29707, 29835, 29963, 30091, 30219, 30347, 
+    30475, 30603, 43915, 29579, 29707, 29835, 29963, 30091, 30219, 18310, 
+    18310, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 16256, 
+    16256, 16256, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 
+    18310, 18310, 18310, 18310, 18310, 18310, 24584, 24584, 16256, 16256, 
+    16256, 24584, 24584, 24584, 16256, 24584, 24584, 24584, 18310, 16256, 
+    16256, 18310, 24584, 24584, 16256, 15109, 15109, 15109, 15109, 15109, 
+    15109, 15109, 15109, 16256, 16256, 15109, 15109, 15109, 16256, 15109, 
+    16256, 15109, 16256, 16256, 15109, 15109, 16256, 15109, 15109, 15109, 
+    15109, 15109, 16256, 15109, 15109, 16256, 24584, 18310, 18310, 18310, 
+    18310, 16256, 16256, 24584, 24584, 16256, 16256, 24584, 24584, 18310, 
+    16256, 16256, 20482, 20610, 20738, 10498, 20865, 20994, 3225, 12289, 
+    12418, 21121, 12289, 12418, 16256, 16256, 16256, 16256, 6683, 6683, 
+    18561, 664, 18689, 18689, 18689, 16256, 18817, 16256, 18945, 18945, 
+    11777, 11777, 16256, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 
+    11777, 11777, 19202, 19330, 19330, 19330, 12034, 12034, 19458, 12034, 
+    12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 19586, 19714, 
+    19714, 16256, 18310, 18310, 24584, 16256, 15109, 15109, 15109, 15109, 
+    15109, 15109, 16256, 16256, 16256, 16256, 15109, 15109, 15109, 15109, 
+    16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    16256, 15109, 16256, 16256, 16256, 15109, 15109, 15109, 15109, 16256, 
+    16256, 18310, 15109, 24584, 24584, 18310, 24584, 24584, 24584, 24584, 
+    24584, 24584, 18310, 18310, 18310, 16256, 16256, 16256, 16256, 21249, 
+    21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 
+    21249, 21249, 21249, 21249, 21249, 20610, 20610, 20610, 20610, 20610, 
+    20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 
+    20610, 20097, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 
+    12289, 12418, 12289, 12418, 12289, 12418, 16256, 16256, 16256, 16256, 
+    16256, 16256, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, 
+    25737, 25865, 27403, 27403, 27403, 27403, 27403, 27403, 21404, 18310, 
+    21404, 18310, 21404, 18310, 27541, 27670, 27541, 27670, 24584, 24584, 
+    18310, 18310, 18310, 16256, 18310, 16256, 24584, 24584, 24584, 24584, 
+    24584, 24584, 24584, 24584, 18310, 24584, 24584, 18310, 18310, 18310, 
+    18310, 18310, 18310, 18310, 18310, 24584, 24584, 24584, 24584, 18310, 
+    16256, 16256, 21784, 21784, 21784, 21784, 21784, 21784, 21784, 21784, 
+    24841, 24969, 25097, 25225, 25353, 25481, 25609, 18310, 18310, 18310, 
+    18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 11906, 11906, 
+    11906, 11906, 11906, 16256, 16256, 16256, 16256, 16256, 22277, 18310, 
+    22277, 22277, 16256, 22277, 22277, 16256, 22277, 22277, 22277, 22277, 
+    22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 
+    22277, 22277, 16256, 16256, 16256, 16256, 16256, 24584, 24584, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 15109, 16256, 15109, 15109, 
+    16256, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 18310, 15109, 
+    24584, 18310, 18310, 18310, 18310, 18310, 16256, 18310, 18310, 24584, 
+    16256, 24584, 24584, 18310, 16256, 16256, 664, 664, 792, 922, 
+    792, 664, 664, 1109, 1238, 664, 1305, 1432, 1556, 1432, 
+    1688, 22277, 22277, 22277, 22168, 22168, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 24584, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 11659, 11659, 11659, 11659, 
+    11659, 11659, 11659, 11659, 11659, 11659, 11659, 11659, 29579, 22921, 
+    23049, 23177, 23305, 23433, 23561, 23689, 23817, 23945, 24073, 792, 
+    24216, 24216, 22552, 22661, 22661, 22661, 22661, 22552, 22661, 18310, 
+    18310, 18310, 18310, 18310, 18310, 18310, 22416, 21511, 18310, 21511, 
+    21511, 21511, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 
+    16256, 16256, 16256, 22552, 16256, 16256, 16256, 22552, 22552, 22552, 
+    22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 
+    22552, 16256, 24464, 22788, 22661, 22661, 22661, 22661, 22661, 22661, 
+    22661, 22661, 22661, 22661, 18310, 18310, 18310, 18310, 18310, 18310, 
+    18310, 18310, 18310, 18310, 18310, 16256, 16256, 22661, 22661, 22661, 
+    22661, 22661, 16256, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 
+    22661, 22661, 22661, 22661, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 24841, 24969, 
+    25097, 25225, 25353, 25481, 25609, 25737, 25865, 26763, 27787, 27915, 
+    28043, 28171, 28299, 28427, 28555, 28683, 26891, 28811, 16256, 16256, 
+    16256, 1801, 1929, 2057, 2185, 2313, 2441, 2569, 2697, 2825, 
+    2953, 22661, 22661, 22661, 24348, 24348, 22661, 18310, 22661, 22661, 
+    22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 
+    22661, 22661, 22661, 16256, 16256, 24464, 24464, 24464, 24464, 16256, 
+    16256, 16256, 16256, 16256, 16256, 24464, 24464, 24464, 24464, 24464, 
+    24464, 18310, 18310, 18310, 18310, 18310, 22788, 22788, 18310, 18310, 
+    10396, 18310, 18310, 18310, 18310, 22661, 22661, 22661, 22661, 22661, 
+    22661, 22661, 22661, 22661, 22661, 22661, 22661, 50458, 10396, 16256, 
+    16256, 18310, 22661, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 1238, 664, 1109, 
+    1238, 664, 6807, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    15109, 15109, 15109, 16256, 16256, 16256, 16256, 24584, 24584, 16256, 
+    15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 15109, 
+    15109, 15109, 15109, 15109, 16256, 16256, 16256, 16256, 18310, 18310, 
+    24584, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    15109, 15109, 15109, 27541, 27670, 16256, 16256, 16256, 524, 15109, 
+    15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    15109, 15109, 15109, 15109, 16256, 16256, 16256, 16256, 16256, 15109, 
+    15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    6807, 18052, 18052, 18052, 15109, 15109, 15109, 18052, 15109, 15109, 
+    15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    15109, 15109, 15109, 16256, 16256, 18310, 15109, 24584, 24584, 24584, 
+    24584, 24584, 16256, 27142, 24584, 24584, 16256, 24584, 24584, 18310, 
+    18310, 16256, 16256, 16256, 16256, 18310, 18310, 16256, 16256, 18310, 
+    18310, 18310, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 
+    15109, 16256, 16256, 18310, 18310, 6683, 6683, 18052, 18052, 15109, 
+    18310, 18310, 18310, 18310, 16256, 16256, 16256, 15109, 15109, 15109, 
+    15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 21784, 16256, 
+    16256, 16256, 16256, 15109, 15109, 18310, 18310, 21784, 21784, 24713, 
+    24841, 24969, 25097, 25225, 25353, 25481, 25609, 25737, 25865, 21784, 
+    21784, 16256, 16256, 16256, 16256, 15109, 15109, 18310, 18310, 16256, 
+    16256, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, 25737, 
+    25865, 16256, 16256, 15109, 15109, 16256, 16256, 15109, 15109, 922, 
+    922, 25995, 26123, 26251, 26379, 26507, 26635, 21404, 16256, 16256, 
+    16256, 16256, 16256, 18310, 18310, 15109, 15109, 15109, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 
+    18310, 15109, 15109, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 
+    16256, 16256, 16256, 16256, 922, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 
+    15109, 15109, 15109, 15109, 15109, 18052, 18310, 18310, 18310, 18310, 
+    18310, 18310, 18310, 18310, 21784, 18310, 18310, 15109, 15109, 15109, 
+    15109, 16256, 16256, 16256, 16256, 24713, 24841, 24969, 25097, 25225, 
+    25353, 25481, 25609, 25737, 25865, 21784, 21784, 21784, 21784, 21784, 
+    21784, 26763, 26891, 27019, 10396, 10396, 10396, 10396, 10396, 10396, 
+    922, 10396, 16256, 16256, 16256, 16256, 16256, 18310, 24584, 24584, 
+    24584, 24584, 16256, 18310, 18310, 18310, 16256, 18310, 18310, 18310, 
+    18310, 16256, 16256, 15109, 15109, 15109, 15109, 16256, 15109, 15109, 
+    15109, 15109, 15109, 16256, 16256, 18310, 15109, 24584, 27142, 24584, 
+    18310, 18310, 18310, 16256, 16256, 24584, 24584, 24584, 16256, 24584, 
+    24584, 24584, 18310, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 
+    15109, 15109, 16256, 16256, 16256, 18310, 16256, 16256, 16256, 16256, 
+    24584, 24584, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    15109, 15109, 15109, 15109, 21784, 21784, 21784, 28938, 29066, 15109, 
+    18310, 15109, 15109, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 
+    18310, 18310, 15109, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 
+    16256, 18052, 16256, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 
+    16256, 15109, 21404, 21404, 21404, 21784, 21784, 21784, 21784, 21784, 
+    21784, 21784, 21784, 27320, 21784, 21784, 21784, 18310, 24584, 18310, 
+    16256, 16256, 16256, 18310, 18310, 24584, 18310, 16256, 16256, 16256, 
+    16256, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 24584, 
+    24584, 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 20097, 
+    20097, 10396, 20097, 10498, 15109, 15109, 15109, 15109, 10498, 10396, 
+    10396, 16256, 10498, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 
+    20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 
+    15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 29194, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 15109, 18310, 
+    18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 15109, 15109, 18310, 18310, 18310, 21784, 21784, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 
+    15109, 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 15109, 16256, 18310, 18310, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 15109, 15109, 15109, 15109, 29328, 29328, 24584, 18310, 18310, 
+    18310, 18310, 18310, 18310, 18310, 24584, 24584, 24584, 24584, 18310, 
+    18310, 30728, 30728, 30728, 16256, 16256, 16256, 16256, 18310, 18310, 
+    18310, 18310, 21784, 21784, 21784, 18052, 21784, 21784, 21784, 922, 
+    15109, 18310, 16256, 16256, 43275, 43403, 43531, 43659, 43787, 29579, 
+    29707, 29835, 29963, 30091, 30219, 30347, 30475, 30603, 43915, 29451, 
+    29579, 29707, 29835, 29963, 30091, 30219, 30347, 30475, 30603, 16256, 
+    16256, 16256, 16256, 16256, 16256, 664, 664, 664, 664, 664, 
+    664, 22036, 664, 664, 664, 664, 18310, 18310, 18310, 524, 
+    16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
+    18310, 16256, 16256, 16256, 16256, 16256, 16256, 20097, 20097, 20097, 
+    10498, 10396, 20097, 10396, 10396, 10396, 20097, 20097, 20097, 20097, 
+    20097, 10396, 10396, 3225, 10396, 3225, 10396, 10396, 10396, 10396, 
+    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 
+    10396, 10396, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 
+    3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3161, 3161, 
+    3161, 3161, 3161, 3161, 3225, 3225, 1109, 1238, 3225, 3225, 
+    3225, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 
+    1238, 1109, 1238, 1109, 1238, 3225, 3225, 3161, 3161, 3161, 
+    3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3161, 
+    3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, 
+    3225, 3161, 3225, 3161, 3225, 3161, 3161, 3161, 3161, 3161, 
+    3161, 3161, 3161, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 
+    3161, 3161, 3161, 3225, 3161, 3225, 3161, 3161, 3161, 3225, 
+    3225, 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3161, 
+    3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3225, 3161, 
+    3225, 3225, 3161, 3161, 3225, 3225, 3225, 3225, 3161, 3161, 
+    3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 
+    3161, 3225, 3225, 3161, 3225, 3161, 3225, 3225, 3161, 3225, 
+    3161, 3161, 3161, 3161, 3225, 3225, 3225, 3161, 3161, 3161, 
+    3161, 3161, 3161, 3225, 3225, 3225, 3161, 3225, 3225, 3225, 
+    3225, 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3161, 
+    3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225, 
+    3225, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225, 3225, 
+    3225, 3225, 3225, 3225, 3161, 3161, 3225, 3225, 3225, 3225, 
+    3225, 3225, 3225, 10396, 10396, 10396, 10396, 10396, 3225, 3225, 
+    10396, 10396, 10396, 10396, 20097, 10396, 35969, 10396, 20097, 10396, 
+    36097, 36225, 20097, 20097, 10908, 10498, 18052, 18052, 10498, 10498, 
+    10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 16256, 16256, 
+    16256, 16256, 30978, 30978, 30978, 30978, 30978, 30978, 30978, 30978, 
+    31105, 31105, 31105, 31105, 31105, 31105, 31105, 31105, 30978, 30978, 
+    30978, 30978, 30978, 30978, 16256, 16256, 31105, 31105, 31105, 31105, 
+    31105, 31105, 16256, 16256, 11906, 30978, 19074, 30978, 19074, 30978, 
+    19074, 30978, 16256, 31105, 16256, 31105, 16256, 31105, 16256, 31105, 
+    31234, 31234, 31362, 31362, 31362, 31362, 31490, 31490, 31618, 31618, 
+    31746, 31746, 31874, 31874, 16256, 16256, 32002, 32002, 32002, 32002, 
+    32002, 32002, 32002, 32002, 32131, 32131, 32131, 32131, 32131, 32131, 
+    32131, 32131, 30978, 30978, 11906, 32258, 11906, 16256, 11906, 19074, 
+    31105, 31105, 32385, 32385, 32515, 6683, 32642, 6683, 30978, 30978, 
+    19074, 19074, 16256, 16256, 11906, 19074, 31105, 31105, 32897, 32897, 
+    16256, 6683, 6683, 6683, 30978, 30978, 19074, 19074, 11906, 20738, 
+    11906, 19074, 31105, 31105, 33025, 33025, 21121, 6683, 6683, 6683, 
+    524, 524, 524, 524, 524, 524, 524, 33452, 524, 524, 
+    524, 33548, 24464, 24464, 29328, 33680, 22036, 33844, 22036, 22036, 
+    22036, 22036, 664, 664, 33949, 34078, 27541, 33949, 33949, 34078, 
+    27541, 33949, 1432, 664, 1432, 16256, 664, 1432, 664, 664, 
+    22036, 27541, 27670, 27541, 27670, 27541, 27670, 792, 792, 792, 
+    792, 792, 664, 664, 664, 664, 10717, 11614, 664, 664, 
+    664, 664, 6807, 35083, 10498, 16256, 16256, 35211, 35339, 35467, 
+    35595, 35723, 35851, 1305, 1305, 3225, 1109, 1238, 10498, 35083, 
+    11403, 11019, 11147, 35211, 35339, 35467, 35595, 35723, 35851, 1305, 
+    1305, 3225, 1109, 1238, 16256, 922, 922, 922, 922, 922, 
+    922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 
+    922, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 18310, 18310, 18310, 18310, 18310, 
+    18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 21511, 21511, 
+    21511, 3225, 3225, 3225, 3161, 3161, 3161, 3161, 3225, 3225, 
+    3225, 3225, 3225, 3161, 3161, 3161, 3225, 3225, 3161, 3161, 
+    3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 
+    3225, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, 
+    3225, 3161, 3161, 3161, 3225, 3225, 3161, 3161, 3225, 3225, 
+    3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 
+    3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, 
+    3225, 3161, 3161, 3225, 3225, 3225, 3225, 3161, 3161, 3161, 
+    3161, 3225, 3161, 1305, 1305, 3225, 3161, 3161, 3225, 3225, 
+    3225, 3161, 3161, 3161, 3161, 3225, 3161, 3225, 3161, 3225, 
+    3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 
+    3161, 3161, 3161, 3161, 3161, 3161, 3225, 3161, 3161, 3225, 
+    3225, 1109, 1238, 1109, 1238, 3161, 3225, 3225, 3225, 3225, 
+    20097, 10498, 10498, 10498, 10498, 10396, 3225, 16256, 16256, 16256, 
+    16256, 36362, 36490, 36618, 36746, 36874, 37002, 37130, 37258, 37386, 
+    37514, 37642, 37770, 37898, 38026, 38154, 38282, 38410, 38538, 38666, 
+    38794, 38922, 39050, 39178, 39306, 39434, 39562, 39690, 39818, 39946, 
+    40074, 40202, 40330, 40458, 40586, 40714, 40842, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 3225, 
+    10396, 10396, 3225, 10396, 10396, 3225, 10396, 10396, 10396, 10396, 
+    10396, 10396, 10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, 
+    10396, 10396, 3161, 3161, 3161, 3161, 10396, 10396, 10396, 10396, 
+    10396, 10396, 10396, 1109, 1238, 10396, 10396, 10396, 10396, 10396, 
+    10396, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 
+    21404, 21404, 21404, 21404, 21404, 21404, 21404, 10396, 10396, 16256, 
+    21404, 48267, 48395, 48523, 48651, 48779, 48907, 49035, 49163, 49291, 
+    49419, 49547, 49675, 49803, 49931, 50059, 30347, 30475, 30603, 43915, 
+    10396, 16256, 16256, 16256, 10396, 10396, 10396, 10396, 10396, 10396, 
+    10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 41355, 41483, 41611, 41739, 41867, 41995, 42123, 
+    42251, 11403, 11019, 11147, 35211, 35339, 35467, 35595, 35723, 35851, 
+    40971, 41099, 41227, 41355, 41483, 41611, 41739, 41867, 41995, 42123, 
+    42251, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 
+    21404, 21404, 21404, 10396, 10396, 10396, 10396, 21404, 21404, 21404, 
+    21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 
+    21404, 21404, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
+    16256, 16256, 16256, 16256, 25995, 26123, 26251, 26379, 45707, 45835, 
+    45963, 46091, 46219, 26763, 21404, 21404, 21404, 21404, 21404, 21404, 
+    42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 
+    42396, 42396, 42396, 42396, 42396, 42396, 42524, 42524, 42524, 42524, 
+    42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 
+    42524, 42524, 35083, 42635, 42763, 42891, 43019, 43147, 22036, 18052, 
+    18052, 18052, 18052, 18052, 10396, 10396, 45322, 45450, 45578, 18052, 
+    15109, 664, 10396, 10396, 10396, 16256, 16256, 16256, 10396, 16256, 
+    10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 3225, 3225, 
+    3161, 3161, 3161, 3161, 1109, 1238, 1109, 1238, 1109, 1238, 
+    16256, 16256, 16256, 16256, 524, 664, 664, 664, 10396, 18052, 
+    15109, 44042, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, 
+    10396, 10396, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, 
+    22036, 27541, 27670, 27670, 10396, 46347, 46475, 46603, 46731, 46859, 
+    46987, 47115, 47243, 47371, 47499, 47627, 47755, 47883, 48011, 48139, 
+    50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 
+    50195, 50195, 50195, 50195, 50195, 50195, 50322, 50322, 50322, 50322, 
+    50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 
+    50322, 50322, 11906, 11906, 11906, 19074, 19074, 11906, 11906, 16256, 
+    16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 22277, 22277, 
+    22277, 22277, 22277, 22277, 22277, 22277, 22277, 1305, 22277, 22277, 
+    22277, 22277, 22277, 22277, 22277, 16256, 22277, 22277, 22277, 22277, 
+    22277, 16256, 22277, 16256, 664, 22036, 22036, 6807, 6807, 27541, 
+    27670, 27541, 27670, 27541, 27670, 27541, 27670, 27541, 27670, 27541, 
+    27670, 664, 664, 27541, 27670, 664, 664, 664, 664, 6807, 
+    6807, 6807, 664, 664, 1305, 1556, 3225, 3225, 3225, 16256, 
+    664, 922, 792, 664, 16256, 16256, 16256, 16256, 8834, 8962, 
+    9090, 9218, 9346, 9474, 9602, 9730, 9858, 9986, 10114, 1109, 
+    3225, 1238, 3225, 1109, 922, 922, 3225, 6683, 10396, 922, 
+    922, 16256, 10396, 3225, 3225, 3225, 3225, 10396, 10396, 16256, 
+};
+
+static const jchar data1[] = {
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 128, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 128, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 128, 
+    5, 5, 128, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 128, 128, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 6529, 6529, 6529, 
+    6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 
+    6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 
+    6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 
+    6529, 6529, 6529, 6529, 6529, 6529, 6529, 6658, 6658, 6658, 
+    6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 
+    6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 
+    6658, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 128, 128, 128, 128, 128, 
+    280, 408, 540, 128, 128, 128, 128, 651, 779, 907, 
+    1035, 1163, 1291, 1419, 1547, 1675, 1803, 1931, 2059, 2187, 
+    2315, 2443, 2571, 2699, 2827, 2955, 3083, 3211, 3339, 3467, 
+    3595, 3723, 3851, 3979, 4107, 4235, 4363, 4491, 4619, 4747, 
+    4875, 5003, 5131, 5259, 5387, 5515, 5643, 5771, 5899, 6027, 
+    6155, 6283, 128, 128, 128, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 8200, 8200, 8326, 8326, 8326, 540, 540, 540, 
+    8200, 8200, 8200, 8200, 8200, 8200, 8464, 8464, 8464, 8464, 
+    8464, 8464, 8464, 8464, 8326, 8326, 8326, 8326, 8326, 540, 
+    540, 8326, 8326, 8326, 8326, 8326, 8326, 8326, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 8326, 8326, 
+    8326, 8326, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 128, 128, 128, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
+    540, 540, 540, 540, 540, 540, 540, 540, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 6410, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 128, 651, 
+    1163, 1803, 2315, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 128, 280, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 128, 
+    128, 6793, 6921, 7049, 7177, 7305, 7433, 7561, 7689, 7817, 
+    7945, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 8069, 8069, 8069, 8069, 8069, 8069, 128, 
+    128, 8069, 128, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 
+    8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 
+    8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 
+    8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 
+    8069, 8069, 8069, 8069, 8069, 8069, 8069, 128, 8069, 8069, 
+    128, 128, 128, 8069, 128, 128, 8069, 8604, 8604, 8604, 
+    8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
+    8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
+    8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
+    8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
+    8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
+    8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
+    8604, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 8705, 8985, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8985, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8985, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 128, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    128, 128, 128, 128, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 128, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 128, 8705, 
+    128, 128, 128, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
+    128, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8705, 128, 8705, 8705, 128, 128, 8705, 
+    128, 128, 8705, 8705, 128, 128, 8705, 8705, 8705, 8705, 
+    128, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 
+    8834, 8834, 8834, 128, 8834, 128, 8834, 8834, 8834, 8834, 
+    8705, 8705, 128, 8705, 8705, 8705, 8705, 128, 128, 8705, 
+    8705, 8705, 8705, 8705, 8705, 8705, 8705, 128, 8705, 8705, 
+    8705, 8705, 8705, 8705, 8705, 128, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
+    8834, 8834, 8705, 8705, 128, 8705, 8705, 8705, 8705, 128, 
+    8834, 8834, 8834, 8985, 8834, 8834, 8834, 8834, 8834, 8834, 
+    128, 128, 128, 128, 9097, 9225, 9353, 9481, 9609, 9737, 
+    9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, 
+    9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, 
+    9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, 
+    9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, 
+    9865, 9993, 10121, 10249, 
+};
+
+static const jchar data2[] = {
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
+    5, 5, 5, 5, 5, 5, 5, 5, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
+    128, 128, 128, 128, 128, 128, 
+};
+
+static const jchar data14[] = {
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
+    262, 262, 262, 262, 262, 262, 262, 262, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 
+    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
+    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
+    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
+    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
+    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
+    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
+    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
+    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
+    144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
+    144, 144, 144, 
+};
+
+static const int data_length[] = {
+    3960, 1504, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, -1, -1, };
+static const jchar* data[] = {
+    data0, data1, data2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
+    NULL, NULL, NULL, NULL, data14, NULL, NULL};
+
 
 /**
  * This is the attribute table for computing the numeric value of a
  * character.  The value is -1 if Unicode does not define a value, -2
  * if the value is not a positive integer, otherwise it is the value.
  */
-static const jshort numValue[] = {
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1,
-    10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,
-    23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
-    -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
-    21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
-    34, 35, -1, -1, -1, -1, -1, -1, 2, 3, -1, 1, -1,
-    -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0,
-    1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1,
-    0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3,
-    4, -1, 16, 10, 100, 1000, -1, -1, -1, 20, 30, 40, 50,
-    60, 70, 80, 90, 10000, 17, 18, 19, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-    -1, -1, -1, -1, 0, 4, 5, 6, 7, 8, 9, -1, -1,
-    -1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11,
-    12, 50, 100, 500, 1000, 1, 2, 3, 4, 5, 6, 7, 8,
-    9, 10, 11, 12, 50, 100, 500, 1000, 1000, 5000, 10000, -1, 10,
-    11, 12, 13, 14, 15, 16, 17, 18, 19, 20, -1, -1, 2,
-    3, 4, 5, 6, 7, 8, 9, 10, 0, 1, 2, 3, 4,
-    5, 6, 7, 8, 9, 10, 20, 30, 5, 6, 7, 8, 9,
-    -1, -1,
-  };
-/** Length of numValue. */
-static const int numValue_length = 340;
+static const jshort numValue0[] = {
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+    -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, 
+    10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 
+    23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 
+    -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 
+    21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 
+    34, 35, -1, -1, -1, -1, -1, -1, 2, 3, -1, 1, -1, 
+    -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 
+    3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 0, 1, 
+    2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, -1, 
+    16, 10, 100, 1000, -1, -1, -2, -1, -1, 20, 30, 40, 50, 
+    60, 70, 80, 90, 10000, 17, 18, 19, -1, 0, 1, 2, 3, 
+    4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, -1, 
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+    -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
+    -1, 0, 4, 5, 6, 7, 8, 9, -1, -1, -1, 1, 2, 
+    3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 50, 100, 500, 
+    1000, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
+    50, 100, 500, 1000, 1000, 5000, 10000, -1, 10, 11, 12, 13, 14, 
+    15, 16, 17, 18, 19, 20, -1, -1, 11, 12, 13, 14, 15, 
+    16, 17, 18, 19, 20, 10, 0, 1, 2, 3, 4, 5, 6, 
+    7, 8, 9, 10, 20, 30, 5, 6, 7, 8, 9, 21, 22, 
+    23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 
+    36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 
+    49, 50, -1, -1, -1, 
+};
+
+static const jshort numValue1[] = {
+    -1, -1, -1, -1, -1, 1, 2, 3, 4, 5, 6, 7, 8, 
+    9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 
+    400, 500, 600, 700, 800, 900, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 
+    8000, 9000, 10000, 20000, 30000, -3, -4, -5, -6, -7, -8, -1, -1, 
+    -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, 
+    -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 
+    7, 8, 9, 
+};
+
+static const jshort numValue2[] = {
+    -1, -1, 
+};
+
+static const jshort numValue14[] = {
+    -1, -1, -1, 
+};
+
+static const int numValue_length[] = {
+    395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
+static const jshort* numValue[] = {
+    numValue0, numValue1, numValue2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
+    NULL, NULL, NULL, NULL, numValue14, NULL, NULL};
+
+
 
 /**
  * This is the attribute table for computing the uppercase representation
  * of a character.  The value is the difference between the character and
  * its uppercase version.
  */
-static const jshort upper[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-    -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32,
-    -32, -32, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0,
-    0, 0, -32, 121, 0, -1, 0, -232, 0, -300, 0, 0, 0,
-    0, 0, 0, 0, 97, 0, 0, 0, 0, 0, 0, 0, 0,
-    56, 0, -1, -2, -79, 0, 0, 0, -210, -206, -205, -202, -203,
-    -207, -209, -211, -213, -214, -218, -217, -219, 0, 0, 84, 0, 0,
-    0, 0, -38, -37, -31, -64, -63, -62, -57, 0, -47, -54, -86,
-    -80, 0, 0, 0, 0, 0, -48, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, -59, 8, 0, 74, 86,
-    100, 128, 112, 126, 0, 9, 0, 0, -7205, 0, 0, 7, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, -16, -16, -16, -16, -16, -16, -16, -16,
-    -16, -16, -16, -16, -16, -16, -16, -16, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -26, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0,
-  };
-/** Length of upper. */
-static const int upper_length = 340;
+static const jshort upper0[] = {
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 
+    -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 
+    -32, -32, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0, 
+    0, 0, 0, -32, 121, 0, -1, 0, -232, 0, -300, 0, 0, 
+    0, 0, 0, 0, 0, 97, 0, 0, 0, 130, 0, 0, 0, 
+    0, 0, 56, 0, -1, -2, -79, 0, 0, 0, 0, -210, -206, 
+    -205, -202, -203, -207, -209, -211, -213, -214, -218, -217, -219, 0, 0, 
+    0, 84, 0, 0, 0, 0, 0, -38, -37, -31, -64, -63, -62, 
+    -57, 0, -47, -54, -86, -80, 7, 0, -96, 0, 0, 0, 0, 
+    0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, -59, 8, 0, 74, 86, 100, 
+    128, 112, 126, 8, 0, 9, 0, 0, -7205, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 
+    -16, -16, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 
+};
+
+static const jshort upper1[] = {
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    -40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 
+};
+
+static const jshort upper2[] = {
+    0, 0, 
+};
+
+static const jshort upper14[] = {
+    0, 0, 0, 
+};
+
+static const int upper_length[] = {
+    395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
+static const jshort* upper[] = {
+    upper0, upper1, upper2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
+    NULL, NULL, NULL, NULL, upper14, NULL, NULL};
+
 
 /**
  * This is the attribute table for computing the lowercase representation
  * of a character.  The value is the difference between the character and
  * its lowercase version.
  */
-static const jshort lower[] = {
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 32, 0, 0, 1, 0, -199, 0, -121, 0, 210, 206, 205,
-    79, 202, 203, 207, 0, 211, 209, 213, 214, 218, 217, 219, 0,
-    0, 2, 1, 0, 0, -97, -56, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 38, 37,
-    64, 63, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 80, 0, 0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0,
-    0, 0, 0, 0, -8, 0, -74, -9, 0, -86, -100, 0, -112,
-    -7, -128, -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -7517, -8383,
-    -8262, 0, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16,
-    16, 16, 16, 16, 16, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 26, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0,
-  };
-/** Length of lower. */
-static const int lower_length = 340;
+static const jshort lower0[] = {
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
+    32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 32, 0, 0, 0, 1, 0, -199, 0, -121, 0, 210, 206, 
+    205, 79, 202, 203, 207, 0, 211, 209, 213, 0, 214, 218, 217, 
+    219, 0, 0, 2, 1, 0, 0, -97, -56, -130, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 38, 37, 64, 63, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, -60, 0, -7, 80, 0, 0, 
+    48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 
+    0, 0, 0, 0, -8, 0, -74, -9, 0, -86, -100, -112, -128, 
+    -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, -7517, -8383, -8262, 16, 16, 
+    16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 
+    16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 
+};
+
+static const jshort lower1[] = {
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 
+};
+
+static const jshort lower2[] = {
+    0, 0, 
+};
+
+static const jshort lower14[] = {
+    0, 0, 0, 
+};
+
+static const int lower_length[] = {
+    395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
+static const jshort* lower[] = {
+    lower0, lower1, lower2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
+    NULL, NULL, NULL, NULL, lower14, NULL, NULL};
+
 
 /**
  * This is the attribute table for computing the directionality class
  * of a character.  At present, the value is in the range 0 - 18 if the
  * character has a direction, otherwise it is -1.
  */
-static const jbyte direction[] = {
-    9, 11, 10, 12, 12, 13, 5, 5, 13, 13, 5, 7, 5, 4, 3, 3, 3, 3, 3, 3, 3,
-    3, 3, 3, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 7, 13, 0, 13,
-    13, 5, 3, 3, 0, 3, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 8, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 0, 1, 1, 2, 2, 2,
-    6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 12, 9, 0, 1, 13, 13, 13, 12, 10, 14, 16, 18, 15, 17, 3,
-    3, 3, 3, 3, 3, 3, 0, 0, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 13, 13, 13, 13,
-    13, 13, 13, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0,
-  };
-/** Length of direction. */
-static const int direction_length = 340;
+static const jbyte direction0[] = {
+    9, 11, 10, 12, 12, 13, 5, 5, 13, 13, 5, 7, 5, 4, 3, 3, 3, 3, 3, 
+    3, 3, 3, 3, 3, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 7, 13, 0, 13, 13, 5, 3, 3, 0, 3, 13, 13, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 8, 8, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 
+    0, 13, 1, 1, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
+    2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 8, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 1, 13, 13, 
+    13, 12, 10, 14, 16, 18, 15, 17, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 
+    3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 
+    13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 
+    13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 2, 
+};
+
+static const jbyte direction1[] = {
+    0, -1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
+    0, 0, 0, 0, 0, 0, 1, 0, 8, 9, 13, 0, 0, 0, 3, 3, 3, 3, 3, 
+    3, 3, 3, 3, 3, 
+};
+
+static const jbyte direction2[] = {
+    0, -1, 
+};
+
+static const jbyte direction14[] = {
+    -1, 9, 8, 
+};
+
+static const int direction_length[] = {
+    395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
+static const jbyte* direction[] = {
+    direction0, direction1, direction2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
+    NULL, NULL, NULL, NULL, direction14, NULL, NULL};
+
 
 /**
  * This is the listing of titlecase special cases (all other character
@@ -976,9 +1607,9 @@ static const int direction_length = 340;
  * pair to titlecase produces the second character.
  */
 static const jchar title[] = {
-    452, 453, 453, 453, 454, 453, 455, 456, 456, 456,
-    457, 456, 458, 459, 459, 459, 460, 459, 497, 498,
-    498, 498, 499, 498,
+    452, 453, 453, 453, 454, 453, 455, 456, 456, 456, 
+    457, 456, 458, 459, 459, 459, 460, 459, 497, 498, 
+    498, 498, 499, 498, 
   };
 /** Length of title. */
 static const int title_length = 24;