OSDN Git Service

2012-01-09 Richard Guenther <rguenther@suse.de>
[pf3gnuchains/gcc-fork.git] / libjava / include / java-chartables.h
1 /* java-chartables.h -- Character tables for java.lang.Character -*- c++ -*-
2    Copyright (C) 2002, 2006 Free Software Foundation, Inc.
3    *** This file is generated by scripts/unicode_to_chartables.pl ***
4
5 This file is part of GNU Classpath.
6
7 GNU Classpath is free software; you can redistribute it and/or modify
8 it under the terms of the GNU General Public License as published by
9 the Free Software Foundation; either version 2, or (at your option)
10 any later version.
11
12 GNU Classpath is distributed in the hope that it will be useful, but
13 WITHOUT ANY WARRANTY; without even the implied warranty of
14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
15 General Public License for more details.
16
17 You should have received a copy of the GNU General Public License
18 along with GNU Classpath; see the file COPYING.  If not, write to the
19 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20 02110-1301 USA.
21
22 Linking this library statically or dynamically with other modules is
23 making a combined work based on this library.  Thus, the terms and
24 conditions of the GNU General Public License cover the whole
25 combination.
26
27 As a special exception, the copyright holders of this library give you
28 permission to link this library with independent modules to produce an
29 executable, regardless of the license terms of these independent
30 modules, and to copy and distribute the resulting executable under
31 terms of your choice, provided that you also meet, for each linked
32 independent module, the terms and conditions of the license of that
33 module.  An independent module is a module which is not derived from
34 or based on this library.  If you modify this library, you may extend
35 this exception to your version of the library, but you are not
36 obligated to do so.  If you do not wish to do so, delete this
37 exception statement from your version. */
38
39 #ifndef __JAVA_CHARTABLES_H__
40 #define __JAVA_CHARTABLES_H__
41
42 // These tables are automatically generated by scripts/unicode_to_chartables.pl.
43 // The Unicode data comes from www.unicode.org; this header is based on
44 // UnicodeData-4.0.0.txt. JDK 1.5 uses Unicode version 4.0.0.
45 // DO NOT EDIT the tables.  Instead, fix the upstream scripts and run
46 // them again.
47
48 // The data is stored in C style arrays of the appropriate CNI types, to
49 // guarantee that the data is constant and non-relocatable.  The field
50 // <code>blocks</code> stores the offset of a block of 2<sup>SHIFT</sup>
51 // characters within <code>data</code>. The data field, in turn, stores
52 // information about each character in the low order bits, and an offset
53 // into the attribute tables <code>upper</code>, <code>lower</code>,
54 // <code>numValue</code>, and <code>direction</code>.  Notice that the
55 // attribute tables are much smaller than 0xffff entries; as many characters
56 // in Unicode share common attributes.  Finally, there is a listing for
57 // <code>title</code> exceptions (most characters just have the same title
58 // case as upper case).
59
60 // This file should only be included by natCharacter.cc
61
62 /**
63  * The array containing the numeric values that are too large to be stored as
64  * chars in NUM_VALUE.  NUM_VALUE in this case will contain a negative integer
65  * N such that LARGENUMS[-N - 3] contains the correct numeric value.
66  */
67 static const jint largenums[] = {
68     40000, 50000, 60000, 70000, 80000, 90000, };
69
70 /**
71  * The character shift amount to look up the block offset. In other words,
72  * <code>(char) (blocks[p][off >> SHIFT[p]] + off)</code> is the index where
73  * <code>ch</code> is described in <code>data</code>, where <code>off</code>
74  * is ch & 0xffff and <code>p</code> is the plane the character belongs to.
75  */
76 static const int shift[] = {
77     4, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, };
78
79 /**
80  * The mapping of character blocks to their location in <code>data</code>.
81  * Each entry has been adjusted so that a modulo 16 sum with the desired
82  * character gives the actual index into <code>data</code>.
83  */
84 static const jchar blocks0[] = {
85     15, 23, 53, 7, 52, 52, 90, 65424, 65437, 65427, 
86     11, 65461, 11, 4, 28, 21, 23, 7, 65527, 173, 
87     269, 65479, 65463, 65403, 273, 273, 183, 257, 65500, 65354, 
88     65335, 65267, 65303, 65287, 65269, 65401, 220, 50, 321, 5, 
89     65511, 317, 304, 311, 355, 355, 274, 325, 358, 342, 
90     326, 310, 65409, 401, 262, 65156, 458, 64826, 442, 64843, 
91     426, 65140, 64823, 334, 435, 64699, 64683, 64716, 64700, 371, 
92     64695, 64679, 64680, 64647, 64631, 64615, 275, 64583, 64567, 64578, 
93     64535, 65036, 65020, 64723, 64708, 64701, 65034, 65019, 65012, 65237, 
94     65219, 64791, 64789, 138, 127, 181, 64945, 220, 64878, 249, 
95     203, 65507, 107, 249, 64783, 64767, 64751, 64735, 64719, 9, 
96     171, 105, 65531, 88, 64623, 64822, 65494, 64460, 64444, 64428, 
97     64527, 64511, 65392, 65529, 64348, 64332, 64316, 64300, 64284, 64268, 
98     64252, 64236, 64220, 64204, 64188, 64172, 64156, 64140, 64124, 64108, 
99     64092, 64076, 64060, 64044, 65249, 64259, 64243, 65267, 64724, 65291, 
100     65299, 63915, 64394, 63482, 64105, 64485, 64366, 63758, 65193, 65199, 
101     64377, 63354, 63977, 63687, 65020, 63328, 64386, 65087, 63204, 63872, 
102     63849, 63246, 64454, 63332, 64937, 64989, 64010, 63098, 63721, 64328, 
103     63117, 62956, 64913, 63171, 63428, 63323, 63407, 63323, 63803, 64222, 
104     64347, 64791, 63236, 63489, 63465, 64420, 64727, 63279, 64657, 63148, 
105     64331, 63361, 63337, 64631, 64369, 63898, 64529, 63020, 64203, 63233, 
106     63209, 64143, 64503, 63838, 64401, 62892, 64468, 62443, 63091, 63450, 
107     64391, 63538, 62780, 62759, 62994, 62979, 62963, 64143, 64157, 64041, 
108     62652, 62636, 62151, 63220, 63096, 64185, 64185, 63935, 62524, 62508, 
109     64137, 62218, 63176, 63172, 62666, 62659, 63643, 62845, 63847, 62669, 
110     62662, 62649, 62052, 62284, 62268, 62252, 62483, 62467, 62722, 63849, 
111     63671, 63833, 62140, 62124, 62108, 62092, 63783, 63767, 63761, 62275, 
112     62259, 63347, 62227, 62211, 62195, 62179, 62163, 63148, 62131, 62115, 
113     62099, 62083, 63075, 62051, 62035, 62019, 62003, 63473, 61963, 61955, 
114     61939, 61923, 61227, 61211, 61875, 61859, 61163, 61827, 61795, 61123, 
115     61107, 61755, 61731, 61731, 61699, 61027, 61683, 61667, 61643, 62635, 
116     62147, 62425, 61340, 61324, 61555, 61539, 61523, 61507, 61491, 62966, 
117     61458, 61443, 61427, 61411, 61395, 61379, 61363, 61347, 61331, 61315, 
118     61299, 61283, 61267, 61251, 61235, 61219, 61203, 61187, 61171, 61155, 
119     61139, 61123, 61107, 61091, 61075, 61059, 61043, 61027, 61011, 60995, 
120     60979, 60963, 60947, 60931, 60915, 60899, 60883, 60867, 60205, 62324, 
121     61814, 61782, 60787, 60771, 60755, 60739, 62073, 62215, 60677, 62199, 
122     60659, 62183, 60627, 62167, 60581, 62151, 60563, 60547, 60531, 62103, 
123     61004, 62098, 60246, 62097, 62097, 60198, 60403, 60387, 61402, 60355, 
124     60339, 61811, 60307, 60291, 61953, 60012, 59996, 59980, 59964, 59948, 
125     60179, 61161, 61746, 60531, 59888, 60099, 61080, 61558, 59804, 59788, 
126     59772, 59756, 59740, 59724, 61668, 61652, 59676, 59660, 59644, 59628, 
127     59612, 59596, 59580, 59564, 59548, 59532, 59516, 59500, 59484, 59468, 
128     59452, 59436, 59420, 59404, 59388, 59372, 59356, 59340, 59324, 59308, 
129     59292, 59276, 59260, 59244, 59228, 59212, 59196, 59180, 59164, 59148, 
130     59132, 59116, 59100, 59084, 59068, 59052, 59036, 59020, 59004, 58988, 
131     58972, 58956, 58940, 58924, 59088, 59072, 59060, 59056, 59040, 59024, 
132     61022, 58796, 58780, 58764, 58748, 58732, 58716, 58700, 58684, 58668, 
133     58135, 58119, 58103, 58087, 58071, 58055, 58039, 58023, 58007, 58200, 
134     57975, 57959, 57943, 57927, 57911, 59112, 60622, 60622, 60590, 60574, 
135     60574, 60574, 60526, 60558, 60558, 60542, 60526, 60526, 58499, 60510, 
136     60510, 57701, 60494, 60494, 57467, 60493, 57427, 57334, 59163, 60445, 
137     60445, 57996, 60429, 60427, 57948, 60411, 58887, 57900, 58047, 59809, 
138     60046, 59529, 60439, 58731, 60423, 60423, 60423, 59922, 60407, 59668, 
139     59654, 59631, 59620, 59616, 59751, 60187, 60182, 59602, 60111, 60058, 
140     59577, 60060, 59602, 59637, 60006, 60003, 59952, 59516, 59950, 59932, 
141     60070, 59316, 60048, 60043, 60033, 60017, 60001, 57613, 59204, 57620, 
142     59188, 57600, 59140, 59945, 57148, 57132, 59076, 59060, 59859, 57068, 
143     59823, 57036, 59825, 59805, 59785, 59785, 59681, 59818, 59808, 59808, 
144     59798, 58754, 58820, 58804, 58788, 58772, 58756, 58740, 58724, 58708, 
145     58692, 58676, 58660, 59374, 58626, 58612, 58596, 58588, 58564, 57001, 
146     58532, 58516, 58500, 58484, 58469, 59260, 58436, 59240, 59224, 56428, 
147     56412, 56396, 56380, 56364, 56728, 58292, 56729, 58260, 56650, 59204, 
148     56673, 56667, 56657, 58964, 58148, 58939, 56156, 58635, 59076, 58084, 
149     58052, 58036, 58020, 58004, 57988, 57972, 57956, 57940, 57924, 57908, 
150     57892, 57876, 57860, 57844, 57828, 57812, 57812, 57796, 57780, 57764, 
151     57748, 57732, 57716, 57700, 57710, 57702, 58220, 57822, 57775, 58235, 
152     57679, 57584, 57562, 58161, 57661, 57673, 57492, 57671, 58045, 57561, 
153     57996, 57980, 57473, 57948, 57932, 57405, 57879, 57420, 58092, 55308, 
154     55292, 55276, 55260, 55244, 55228, 55212, 55196, 55180, 55164, 55148, 
155     55132, 55116, 55100, 55084, 55068, 55052, 55036, 55020, 55004, 54988, 
156     54972, 54956, 54940, 54924, 54908, 54892, 54876, 54860, 54844, 54828, 
157     54812, 54796, 54780, 54764, 54748, 54732, 54716, 54700, 54684, 54668, 
158     54652, 54636, 54620, 54604, 54588, 54572, 54556, 54540, 54524, 54508, 
159     54492, 54476, 54460, 54444, 56388, 54823, 56356, 56340, 56324, 56308, 
160     56292, 57094, 56260, 56244, 56228, 56212, 56196, 56180, 56164, 56148, 
161     56132, 56116, 56100, 56084, 56068, 56868, 54076, 56830, 57012, 57010, 
162     54323, 56918, 54226, 54211, 54195, 54179, 54163, 55228, 54114, 54115, 
163     54099, 54083, 54067, 55067, 55046, 54019, 55001, 53986, 53971, 53955, 
164     53939, 53923, 53891, 53991, 53875, 55347, 53596, 53580, 53564, 53795, 
165     56257, 56244, 56368, 56209, 56320, 56450, 56161, 56149, 56272, 56113, 
166     56097, 56100, 56165, 56049, 56033, 56133, 56001, 55985, 55969, 55953, 
167     55937, 55921, 55905, 55994, 55873, 55857, 55841, 55825, 55809, 55795, 
168     55777, 55762, 53267, 53251, 53235, 53219, 53203, 53187, 53171, 53155, 
169     53139, 53123, 53107, 53091, 53075, 53059, 53043, 53027, 53011, 52995, 
170     52979, 52963, 52947, 52931, 52915, 52899, 52883, 52867, 52851, 52835, 
171     52819, 52803, 52787, 52771, 52755, 52739, 52723, 52707, 52691, 52675, 
172     52659, 52643, 52627, 52611, 52595, 52579, 52563, 52547, 52531, 52515, 
173     52499, 52483, 52467, 52451, 52435, 52419, 52403, 52387, 52371, 52355, 
174     52339, 52323, 52307, 52291, 52275, 52259, 52243, 52227, 52211, 52195, 
175     52179, 52163, 52147, 52131, 52115, 52099, 52083, 52067, 52051, 52035, 
176     52019, 52003, 51987, 51971, 51955, 51939, 51923, 51907, 51891, 51875, 
177     51859, 51843, 51827, 51811, 51795, 51779, 51763, 51747, 51731, 51715, 
178     51699, 51683, 51667, 51651, 51635, 51619, 51603, 51587, 51571, 51555, 
179     51539, 51523, 51507, 51491, 51475, 51459, 51443, 51427, 51411, 51395, 
180     51379, 51363, 51347, 51331, 51315, 51299, 51283, 51267, 51251, 51235, 
181     51219, 51203, 51187, 51171, 51155, 51139, 51123, 51107, 51091, 51075, 
182     51059, 51043, 51027, 51011, 50995, 50979, 50963, 50947, 50931, 50915, 
183     50899, 50883, 50867, 50851, 50835, 50819, 50803, 50787, 50771, 50755, 
184     50739, 50723, 50707, 50691, 50675, 50659, 50643, 50627, 50611, 50595, 
185     50579, 50563, 50547, 50531, 50515, 50499, 50483, 50467, 50451, 50435, 
186     50419, 50403, 50387, 50371, 50355, 50339, 50323, 50307, 50291, 50275, 
187     50259, 50243, 50227, 50211, 50195, 50179, 50163, 50147, 50131, 50115, 
188     50099, 50083, 50067, 50051, 50035, 50019, 50003, 49987, 49971, 49955, 
189     49939, 49923, 49907, 49891, 49875, 49859, 49843, 49827, 49811, 49795, 
190     49779, 49763, 49747, 49731, 49715, 49699, 49683, 49667, 49651, 49635, 
191     49619, 49603, 49587, 49571, 49555, 49539, 49523, 49507, 49491, 49475, 
192     49459, 49443, 49427, 49411, 49395, 49379, 49363, 49347, 49331, 49315, 
193     49299, 49283, 49267, 49251, 49235, 49219, 49203, 49187, 49171, 49155, 
194     49139, 49123, 49107, 49091, 49075, 49059, 49043, 49027, 49011, 48995, 
195     48979, 48963, 48947, 48931, 48915, 48899, 48883, 48867, 48851, 48835, 
196     48819, 48803, 48787, 48771, 48755, 48739, 48723, 48707, 48691, 48675, 
197     48659, 48643, 48627, 48611, 48595, 48579, 48563, 48547, 48531, 48515, 
198     48499, 48483, 48467, 48451, 48435, 48419, 48403, 48387, 48371, 48355, 
199     48339, 48323, 48307, 48291, 48275, 48259, 48243, 48227, 48211, 48195, 
200     48179, 48163, 48147, 48131, 48115, 48099, 48083, 48067, 48051, 48035, 
201     48019, 48003, 47987, 47971, 47955, 47939, 47923, 47907, 47891, 47875, 
202     47859, 47843, 47827, 47811, 47795, 47779, 47763, 47747, 47731, 47715, 
203     47699, 47683, 47667, 47651, 47635, 47619, 47603, 47587, 47571, 47555, 
204     47539, 47523, 47507, 47491, 47475, 47459, 47443, 47427, 47411, 47395, 
205     47379, 47363, 47347, 47331, 47315, 47299, 47283, 47267, 47251, 47235, 
206     47219, 47203, 47187, 47171, 47155, 47139, 47123, 47107, 47091, 47075, 
207     47059, 47043, 47027, 47011, 46995, 46979, 46963, 46947, 46931, 46915, 
208     46899, 46883, 46867, 46851, 46835, 46819, 46803, 46787, 46771, 46755, 
209     46739, 46723, 46707, 48181, 48388, 48372, 48356, 48340, 46611, 46595, 
210     46579, 46563, 46547, 46531, 46515, 46499, 46483, 46467, 46451, 46435, 
211     46419, 46403, 46387, 46371, 46355, 46339, 46323, 46307, 46291, 46275, 
212     46259, 46243, 46227, 46211, 46195, 46179, 46163, 46147, 46131, 46115, 
213     46099, 46083, 46067, 46051, 46035, 46019, 46003, 45987, 45971, 45955, 
214     45939, 45923, 45907, 45891, 45875, 45859, 45843, 45827, 45811, 45795, 
215     45779, 45763, 45747, 45731, 45715, 45699, 45683, 45667, 45651, 45635, 
216     45619, 45603, 45587, 45571, 45555, 45539, 45523, 45507, 45491, 45475, 
217     45459, 45443, 45427, 45411, 45395, 45379, 45363, 45347, 45331, 45315, 
218     45299, 45283, 45267, 45251, 45235, 45219, 45203, 45187, 45171, 45155, 
219     45139, 45123, 45107, 45091, 45075, 45059, 45043, 45027, 45011, 44995, 
220     44979, 44963, 44947, 44931, 44915, 44899, 44883, 44867, 44851, 44835, 
221     44819, 44803, 44787, 44771, 44755, 44739, 44723, 44707, 44691, 44675, 
222     44659, 44643, 44627, 44611, 44595, 44579, 44563, 44547, 44531, 44515, 
223     44499, 44483, 44467, 44451, 44435, 44419, 44403, 44387, 44371, 44355, 
224     44339, 44323, 44307, 44291, 44275, 44259, 44243, 44227, 44211, 44195, 
225     44179, 44163, 44147, 44131, 44115, 44099, 44083, 44067, 44051, 44035, 
226     44019, 44003, 43987, 43971, 43955, 43939, 43923, 43907, 43891, 43875, 
227     43859, 43843, 43827, 43811, 43795, 43779, 43763, 43747, 43731, 43715, 
228     43699, 43683, 43667, 43651, 43635, 43619, 43603, 43587, 43571, 43555, 
229     43539, 43523, 43507, 43491, 43475, 43459, 43443, 43427, 43411, 43395, 
230     43379, 43363, 43347, 43331, 43315, 43299, 43283, 43267, 43251, 43235, 
231     43219, 43203, 43187, 43171, 43155, 43139, 43123, 43107, 43091, 43075, 
232     43059, 43043, 43027, 43011, 42995, 42979, 42963, 42947, 42931, 42915, 
233     42899, 42883, 42867, 42851, 42835, 42819, 42803, 42787, 42771, 42755, 
234     42739, 42723, 42707, 42691, 42675, 42659, 42643, 42627, 42611, 42595, 
235     42579, 42563, 42547, 42531, 42515, 42499, 42483, 42467, 42451, 42435, 
236     42419, 42403, 42387, 42371, 42355, 42339, 42323, 42307, 42291, 42275, 
237     42259, 42243, 42227, 42211, 42195, 42179, 42163, 42147, 42131, 42115, 
238     42099, 42083, 42067, 42051, 42035, 42019, 42003, 41987, 41971, 41955, 
239     41939, 41923, 41907, 41891, 41875, 41859, 41843, 41827, 41811, 41795, 
240     41779, 41763, 41747, 41731, 41715, 41699, 41683, 41667, 41651, 41635, 
241     41619, 41603, 41587, 41571, 41555, 41539, 41523, 41507, 41491, 41475, 
242     41459, 41443, 41427, 41411, 41395, 41379, 41363, 41347, 41331, 41315, 
243     41299, 41283, 41267, 41251, 41235, 41219, 41203, 41187, 41171, 41155, 
244     41139, 41123, 41107, 41091, 41075, 41059, 41043, 41027, 41011, 40995, 
245     40979, 40963, 40947, 40931, 40915, 40899, 40883, 40867, 40851, 40835, 
246     40819, 40803, 40787, 40771, 40755, 40739, 40723, 40707, 40691, 40675, 
247     40659, 40643, 40627, 40611, 40595, 40579, 40563, 40547, 40531, 40515, 
248     40499, 40483, 40467, 40451, 40435, 40419, 40403, 40387, 40371, 40355, 
249     40339, 40323, 40307, 40291, 40275, 40259, 40243, 40227, 40211, 40195, 
250     40179, 40163, 40147, 40131, 40115, 40099, 40083, 40067, 40051, 40035, 
251     40019, 40003, 39987, 39971, 39955, 39939, 39923, 39907, 39891, 39875, 
252     39859, 39843, 39827, 39811, 39795, 39779, 39763, 39747, 39731, 39715, 
253     39699, 39683, 39667, 39651, 39635, 39619, 39603, 39587, 39571, 39555, 
254     39539, 39523, 39507, 39491, 39475, 39459, 39443, 39427, 39411, 39395, 
255     39379, 39363, 39347, 39331, 39315, 39299, 39283, 39267, 39251, 39235, 
256     39219, 39203, 39187, 39171, 39155, 39139, 39123, 39107, 39091, 39075, 
257     39059, 39043, 39027, 39011, 38995, 38979, 38963, 38947, 38931, 38915, 
258     38899, 38883, 38867, 38851, 38835, 38819, 38803, 38787, 38771, 38755, 
259     38739, 38723, 38707, 38691, 38675, 38659, 38643, 38627, 38611, 38595, 
260     38579, 38563, 38547, 38531, 38515, 38499, 38483, 38467, 38451, 38435, 
261     38419, 38403, 38387, 38371, 38355, 38339, 38323, 38307, 38291, 38275, 
262     38259, 38243, 38227, 38211, 38195, 38179, 38163, 38147, 38131, 38115, 
263     38099, 38083, 38067, 38051, 38035, 38019, 38003, 37987, 37971, 37955, 
264     37939, 37923, 37907, 37891, 37875, 37859, 37843, 37827, 37811, 37795, 
265     37779, 37763, 37747, 37731, 37715, 37699, 37683, 37667, 37651, 37635, 
266     37619, 37603, 37587, 37571, 37555, 37539, 37523, 37507, 37491, 37475, 
267     37459, 37443, 37427, 37411, 37395, 37379, 37363, 37347, 37331, 37315, 
268     37299, 37283, 37267, 37251, 37235, 37219, 37203, 37187, 37171, 37155, 
269     37139, 37123, 37107, 37091, 37075, 37059, 37043, 37027, 37011, 36995, 
270     36979, 36963, 36947, 36931, 36915, 36899, 36883, 36867, 36851, 36835, 
271     36819, 36803, 36787, 36771, 36755, 36739, 36723, 36707, 36691, 36675, 
272     36659, 36643, 36627, 36611, 36595, 36579, 36563, 36547, 36531, 36515, 
273     36499, 36483, 36467, 36451, 36435, 36419, 36403, 36387, 36371, 36355, 
274     36339, 36323, 36307, 36291, 36275, 36259, 36243, 36227, 36211, 36195, 
275     36179, 36163, 36147, 36131, 36115, 36099, 36083, 36067, 36051, 36035, 
276     36019, 36003, 35987, 35971, 35955, 35939, 35923, 35907, 35891, 35875, 
277     35859, 35843, 35827, 35811, 35795, 35779, 35763, 35747, 35731, 35715, 
278     35699, 35683, 35667, 35651, 35635, 35619, 35603, 35587, 35571, 35555, 
279     35539, 35523, 35507, 35491, 35475, 35459, 35443, 35427, 35411, 35395, 
280     35379, 35363, 35347, 35331, 35315, 35299, 35283, 35267, 35251, 35235, 
281     35219, 35203, 35187, 35171, 35155, 35139, 35123, 35107, 35091, 35075, 
282     35059, 35043, 35027, 35011, 34995, 34979, 34963, 34947, 34931, 34915, 
283     34899, 34883, 34867, 34851, 34835, 34819, 34803, 34787, 34771, 34755, 
284     34739, 34723, 34707, 34691, 34675, 34659, 34643, 34627, 34611, 34595, 
285     34579, 34563, 34547, 34531, 34515, 34499, 34483, 34467, 34451, 34435, 
286     34419, 34403, 34387, 34371, 34355, 34339, 34323, 34307, 34291, 34275, 
287     34259, 34243, 34227, 34211, 34195, 34179, 34163, 34147, 34131, 34115, 
288     34099, 34083, 34067, 34051, 34035, 34019, 34003, 33987, 33971, 33955, 
289     33939, 33923, 33907, 33891, 33875, 33859, 33843, 33827, 33811, 33795, 
290     33779, 33763, 33747, 33731, 33715, 33699, 33683, 33667, 33651, 33635, 
291     33619, 33603, 33587, 33571, 33555, 33539, 33523, 33507, 33491, 33475, 
292     33459, 33443, 33427, 33411, 33395, 33379, 33363, 33347, 33331, 33315, 
293     33299, 33283, 33267, 33251, 33235, 33219, 33203, 33187, 33171, 33155, 
294     33139, 33123, 33107, 33091, 33075, 33059, 33043, 33027, 33011, 32995, 
295     32979, 32963, 32947, 32931, 32915, 32899, 32883, 32867, 32851, 32835, 
296     32819, 32803, 32787, 32771, 32755, 32739, 32723, 32707, 32691, 32675, 
297     32659, 32643, 32627, 32611, 32595, 32579, 32563, 32547, 32531, 32515, 
298     32499, 32483, 32467, 32451, 32435, 32419, 32403, 32387, 32371, 32355, 
299     32339, 32323, 32307, 32291, 32275, 32259, 32243, 32227, 32211, 32195, 
300     32179, 32163, 32147, 32131, 32115, 32099, 32083, 32067, 32051, 32035, 
301     32019, 32003, 31987, 31971, 31955, 31939, 31923, 31907, 31891, 31875, 
302     31859, 31843, 31827, 31811, 31795, 31779, 31763, 31747, 31731, 31715, 
303     31699, 31683, 31667, 31651, 31635, 31619, 31603, 31587, 31571, 31555, 
304     31539, 31523, 31507, 31491, 31475, 31459, 31443, 31427, 31411, 31395, 
305     31379, 31363, 31347, 31331, 31315, 31299, 31283, 31267, 31251, 31235, 
306     31219, 31203, 31187, 31171, 31155, 31139, 31123, 31107, 31091, 31075, 
307     31059, 31043, 31027, 31011, 30995, 30979, 30963, 30947, 30931, 30915, 
308     30899, 30883, 30867, 30851, 30835, 30819, 30803, 30787, 30771, 30755, 
309     30739, 30723, 30707, 30691, 30675, 30659, 30643, 30627, 30611, 30595, 
310     30579, 30563, 30547, 30531, 30515, 30499, 30483, 30467, 30451, 30435, 
311     30419, 30403, 30387, 30371, 30355, 30339, 30323, 30307, 30291, 30275, 
312     30259, 30243, 30227, 30211, 30195, 30179, 30163, 30147, 30131, 30115, 
313     30099, 30083, 30067, 30051, 30035, 30019, 30003, 29987, 29971, 29955, 
314     29939, 29923, 29907, 29891, 29875, 29859, 29843, 29827, 29811, 29795, 
315     29779, 29763, 29747, 29731, 29715, 29699, 29683, 29667, 29651, 29635, 
316     29619, 29603, 29587, 29571, 29555, 29539, 29523, 29507, 29491, 29475, 
317     29459, 29443, 29427, 29411, 29395, 29379, 29363, 29347, 29331, 29315, 
318     29299, 29283, 29267, 29251, 29235, 29219, 29203, 29187, 29171, 29155, 
319     29139, 29123, 29107, 29091, 29075, 29059, 29043, 29027, 29011, 28995, 
320     28979, 28963, 28947, 28931, 28915, 28899, 28883, 28867, 28851, 28835, 
321     28819, 28803, 28787, 28771, 28755, 28739, 28723, 28707, 28691, 28675, 
322     28659, 28643, 28627, 28611, 28595, 28579, 28563, 28547, 28531, 28515, 
323     28499, 28483, 28467, 28451, 28435, 28419, 28403, 28387, 28371, 28355, 
324     28339, 28323, 28307, 28291, 28275, 28259, 28243, 28227, 28211, 28195, 
325     28179, 28163, 28147, 28131, 28115, 28099, 28083, 28067, 28051, 28035, 
326     28019, 28003, 27987, 27971, 27955, 27939, 27923, 27907, 27891, 27875, 
327     27859, 27843, 27827, 27811, 27795, 27779, 27763, 27747, 27731, 27715, 
328     27699, 27683, 27667, 27651, 27635, 27619, 27603, 27587, 27571, 27555, 
329     27539, 27523, 27507, 27491, 27475, 27459, 27443, 27427, 27411, 27395, 
330     27379, 27363, 27347, 27331, 27315, 27299, 27283, 27267, 27251, 27235, 
331     27219, 27203, 27187, 27171, 27155, 27139, 27123, 27107, 27091, 27075, 
332     27059, 27043, 27027, 27011, 26995, 26979, 26963, 26947, 26931, 26915, 
333     26899, 26883, 26867, 26851, 26835, 26819, 26803, 26787, 26771, 26755, 
334     26739, 26723, 26707, 26691, 26675, 26659, 26643, 26627, 26611, 26595, 
335     26579, 26563, 26547, 26531, 26515, 26499, 26483, 26467, 26451, 26435, 
336     26419, 26403, 26387, 26371, 26355, 26339, 26323, 26307, 26291, 26275, 
337     26259, 26243, 26227, 26211, 26195, 26179, 26163, 26147, 26131, 26115, 
338     26099, 26083, 26067, 26051, 26035, 26019, 26003, 25987, 25971, 25955, 
339     25939, 25923, 25907, 25891, 25875, 25859, 25843, 25827, 25811, 25795, 
340     25779, 25763, 25747, 25731, 27205, 25452, 25436, 25420, 25404, 25388, 
341     25619, 25603, 25587, 25571, 25555, 25539, 25523, 25507, 25491, 25475, 
342     25459, 25443, 25427, 25411, 25395, 25379, 25363, 25347, 25331, 25315, 
343     25299, 25283, 25267, 25251, 25235, 25219, 25203, 25187, 25171, 25155, 
344     25139, 25123, 25107, 25091, 25075, 25059, 25043, 25027, 25011, 24995, 
345     24979, 24963, 24947, 24931, 24915, 24899, 24883, 24867, 24851, 24835, 
346     24819, 24803, 24787, 24771, 24755, 24739, 24723, 24707, 24691, 24675, 
347     24659, 24643, 24627, 24611, 24595, 24579, 24563, 24547, 24531, 24515, 
348     24499, 24483, 25465, 26164, 26148, 26132, 26931, 24140, 24124, 24108, 
349     24092, 24076, 24060, 24044, 24028, 24012, 23996, 23980, 23964, 23948, 
350     23932, 23916, 23900, 23884, 23868, 23852, 23836, 23820, 23804, 23788, 
351     23772, 23756, 23740, 23724, 23708, 23692, 23676, 23660, 23644, 23628, 
352     23612, 23596, 23580, 23564, 23548, 23532, 23516, 23500, 23484, 23468, 
353     23452, 23436, 23420, 23404, 23388, 23372, 23356, 23340, 23324, 23308, 
354     23292, 23276, 23260, 23244, 23228, 23212, 23196, 23180, 23164, 23148, 
355     23132, 23116, 23100, 23084, 23068, 23052, 23036, 23020, 23004, 22988, 
356     22972, 22956, 22940, 22924, 22908, 22892, 22876, 22860, 22844, 22828, 
357     22812, 22796, 22780, 22764, 22748, 22732, 22716, 22700, 22684, 22668, 
358     22652, 22636, 22620, 22604, 22588, 22572, 22556, 22540, 22524, 22508, 
359     22492, 22476, 22460, 22444, 22428, 22412, 22396, 22380, 22364, 22348, 
360     22332, 22316, 22547, 22531, 22515, 22499, 22483, 22467, 22451, 22435, 
361     22419, 22403, 22387, 22371, 22355, 22339, 22323, 22307, 22291, 22275, 
362     22259, 22243, 22227, 22211, 22195, 22179, 22163, 22147, 22131, 22115, 
363     22099, 22083, 22067, 22051, 22035, 22019, 22003, 21987, 21971, 21955, 
364     21939, 21923, 21907, 21891, 21875, 21859, 21843, 21827, 21811, 21795, 
365     21779, 21763, 21747, 21731, 21715, 21699, 21683, 21667, 21651, 21635, 
366     21619, 21603, 21587, 21571, 21555, 21539, 21523, 21507, 21491, 21475, 
367     21459, 21443, 21427, 21411, 21395, 21379, 21363, 21347, 21331, 21315, 
368     21299, 21283, 21267, 21251, 21235, 21219, 21203, 21187, 21171, 21155, 
369     21139, 21123, 21107, 21091, 21075, 21059, 21043, 21027, 21011, 20995, 
370     20979, 20963, 20947, 20931, 20915, 20899, 20883, 20867, 20851, 20835, 
371     20819, 20803, 20787, 20771, 20755, 20739, 20723, 20707, 20691, 20675, 
372     20659, 20643, 20627, 20611, 20595, 20579, 20563, 20547, 20531, 20515, 
373     20499, 20483, 20467, 20451, 20435, 20419, 20403, 20387, 20371, 20355, 
374     20339, 20323, 20307, 20291, 20275, 20259, 20243, 20227, 20211, 20195, 
375     20179, 20163, 20147, 20131, 20115, 20099, 20083, 20067, 20051, 20035, 
376     20019, 20003, 19987, 19971, 19955, 19939, 19923, 19907, 19891, 19875, 
377     19859, 19843, 19827, 19811, 19795, 19779, 19763, 19747, 19731, 19715, 
378     19699, 19683, 19667, 19651, 19635, 19619, 19603, 19587, 19571, 19555, 
379     19539, 19523, 19507, 19491, 19475, 19459, 19443, 19427, 19411, 19395, 
380     19379, 19363, 19347, 19331, 19315, 19299, 19283, 19267, 19251, 19235, 
381     19219, 19203, 19187, 19171, 19155, 19139, 19123, 19107, 19091, 19075, 
382     19059, 19043, 19027, 19011, 18995, 18979, 18963, 18947, 18931, 18915, 
383     18899, 18883, 18867, 18851, 18835, 18819, 18803, 18787, 18771, 18755, 
384     18739, 18723, 18707, 18691, 18675, 18659, 18643, 18627, 18611, 18595, 
385     18579, 18563, 18547, 18531, 18515, 18499, 18483, 18467, 18451, 18435, 
386     18419, 18403, 18387, 18371, 18355, 18339, 18323, 18307, 18291, 18275, 
387     18259, 18243, 18227, 18211, 18195, 18179, 18163, 18147, 18131, 18115, 
388     18099, 18083, 18067, 18051, 18035, 18019, 18003, 17987, 17971, 17955, 
389     17939, 17923, 17907, 17891, 17875, 17859, 17843, 17827, 17811, 17795, 
390     17779, 17763, 17747, 17731, 17715, 17699, 17683, 17667, 17651, 17635, 
391     17619, 17603, 17587, 17571, 17555, 17539, 17523, 17507, 17491, 17475, 
392     17459, 17443, 17427, 17411, 17395, 17379, 17363, 17347, 17331, 17315, 
393     17299, 17283, 17267, 17251, 17235, 17219, 17203, 17187, 17171, 17155, 
394     17139, 17123, 17107, 17091, 17075, 17059, 17043, 17027, 17011, 16995, 
395     16979, 16963, 16947, 16931, 16915, 16899, 16883, 16867, 16851, 16835, 
396     16819, 16803, 16787, 16771, 16755, 16739, 16723, 16707, 16691, 16675, 
397     16659, 16643, 16627, 16611, 16595, 16579, 16563, 16547, 16531, 16515, 
398     16499, 16483, 16467, 16451, 16435, 16419, 16403, 16387, 16371, 16355, 
399     16339, 16323, 16307, 16291, 16275, 16259, 16243, 16227, 16211, 16195, 
400     16179, 16163, 16147, 16131, 16115, 16099, 16083, 16067, 16051, 16035, 
401     16019, 16003, 15987, 15971, 15955, 15939, 15923, 15907, 15891, 15875, 
402     15859, 15843, 15827, 15811, 15795, 15779, 15763, 15747, 15731, 15715, 
403     15699, 15683, 15667, 15651, 15635, 15619, 15603, 15587, 15571, 15555, 
404     15539, 15523, 15507, 15491, 15475, 15459, 15443, 15427, 15411, 15395, 
405     15379, 15363, 15347, 15331, 15315, 15299, 15283, 15267, 15251, 15235, 
406     15219, 15203, 15187, 15171, 15155, 15139, 15123, 15107, 15091, 15075, 
407     15059, 15043, 15027, 15011, 14995, 14979, 14963, 14947, 14931, 14915, 
408     14899, 14883, 14867, 14851, 14835, 14819, 14803, 14787, 14771, 14755, 
409     14739, 14723, 14707, 14691, 14675, 14659, 14643, 14627, 14611, 14595, 
410     14579, 14563, 14547, 14531, 14515, 14499, 14483, 14467, 14451, 14435, 
411     14419, 14403, 14387, 14371, 14355, 14339, 14323, 14307, 14291, 14275, 
412     14259, 14243, 14227, 14211, 14195, 14179, 14163, 14147, 14131, 14115, 
413     14099, 14083, 14067, 14051, 14035, 14019, 14003, 13987, 13971, 13955, 
414     13939, 13923, 13907, 13891, 13875, 13859, 13843, 13827, 13811, 13795, 
415     13779, 13763, 13747, 13731, 13715, 13699, 13683, 13667, 13651, 13635, 
416     13619, 13603, 13587, 13571, 13555, 13539, 13523, 13507, 13491, 13475, 
417     13459, 13443, 13427, 13411, 13395, 13379, 13363, 13347, 13331, 13315, 
418     13299, 13283, 13267, 13251, 13235, 13219, 13203, 13187, 13171, 13155, 
419     13139, 13123, 13107, 13091, 13075, 13059, 13043, 13027, 13011, 12995, 
420     12979, 12963, 12947, 12931, 12915, 12899, 12883, 12867, 12851, 12835, 
421     12819, 12803, 12787, 12771, 12755, 12739, 12723, 12707, 12691, 12675, 
422     12659, 12643, 12627, 12611, 12595, 12579, 12563, 12547, 12531, 12515, 
423     12499, 12483, 12467, 12451, 12435, 12419, 12403, 12387, 12371, 12355, 
424     12339, 12323, 12307, 12291, 12275, 12259, 12243, 12227, 12211, 12195, 
425     12179, 12163, 12147, 12131, 12115, 12099, 12083, 12067, 12051, 12035, 
426     12019, 12003, 11987, 11971, 11955, 11939, 11923, 11907, 11891, 11875, 
427     11859, 11843, 11827, 11811, 11795, 11779, 11763, 11747, 11731, 11715, 
428     11699, 11683, 11667, 11651, 11635, 11619, 11603, 11587, 11571, 11555, 
429     11539, 11523, 11507, 11491, 11475, 11459, 11443, 11427, 11411, 11395, 
430     12871, 11116, 11100, 11084, 11068, 11052, 14050, 14034, 14018, 14002, 
431     13986, 13970, 13954, 13938, 13922, 13906, 13890, 13874, 13858, 13842, 
432     13826, 13810, 13794, 13778, 13762, 13746, 13730, 13714, 13698, 13682, 
433     13666, 13650, 13634, 13618, 13602, 13586, 13570, 13554, 13538, 13522, 
434     13506, 13490, 13474, 13458, 13442, 13426, 13410, 13394, 13378, 13362, 
435     13346, 13330, 13314, 13298, 13282, 13266, 13250, 13234, 13218, 13202, 
436     13186, 13170, 13154, 13138, 13122, 13106, 13090, 13074, 13058, 13042, 
437     13026, 13010, 12994, 12978, 12962, 12946, 12930, 12914, 12898, 12882, 
438     12866, 12850, 12834, 12818, 12802, 12786, 12770, 12754, 12738, 12722, 
439     12706, 12690, 12674, 12658, 12642, 12626, 12610, 12594, 12578, 12562, 
440     12546, 12530, 12514, 12498, 12482, 12466, 12450, 12434, 12418, 12402, 
441     12386, 12370, 12354, 12338, 12322, 12306, 12290, 12274, 12258, 12242, 
442     12226, 12210, 12194, 12178, 12162, 12146, 12130, 12114, 12098, 12082, 
443     12066, 12050, 12034, 12018, 12018, 12002, 11986, 11970, 11954, 11938, 
444     11922, 11906, 11890, 11874, 11858, 11842, 11826, 11810, 11794, 11778, 
445     11762, 11746, 11730, 11714, 11698, 11682, 11666, 11650, 11634, 11618, 
446     11602, 11586, 11570, 11554, 11538, 11522, 11506, 11490, 11474, 11458, 
447     11442, 11426, 11410, 11394, 11378, 11362, 11346, 11330, 11314, 11298, 
448     11282, 11266, 11250, 11234, 11218, 11202, 11186, 11170, 11154, 11138, 
449     11122, 11106, 11090, 11074, 11058, 11042, 11026, 11010, 10994, 10978, 
450     10962, 10946, 10930, 10914, 10898, 10882, 10866, 10850, 10834, 10818, 
451     10802, 10786, 10770, 10754, 10738, 10722, 10706, 10690, 10674, 10658, 
452     10642, 10626, 10610, 10594, 10578, 10562, 10546, 10530, 10514, 10498, 
453     10482, 10466, 10450, 10434, 10418, 10402, 10386, 10370, 10354, 10338, 
454     10322, 10306, 10290, 10274, 10258, 10242, 10226, 10210, 10194, 10178, 
455     10162, 10146, 10130, 10114, 10098, 10082, 10066, 10050, 10034, 10018, 
456     10002, 9986, 9970, 9954, 9938, 9922, 9906, 9890, 9874, 9858, 
457     9842, 9826, 9810, 9794, 9778, 9762, 9746, 9730, 9714, 9698, 
458     9682, 9666, 9650, 9634, 9618, 9602, 9586, 9570, 9554, 9538, 
459     9522, 9506, 9490, 9474, 9458, 9442, 9426, 9410, 9394, 9378, 
460     9362, 9346, 9330, 9314, 9298, 9282, 9266, 9250, 9234, 9218, 
461     9202, 9186, 9170, 9154, 9138, 9122, 9106, 9090, 9074, 9058, 
462     9042, 9026, 9010, 8994, 8978, 8962, 8946, 8930, 8914, 8898, 
463     8882, 8866, 8850, 8834, 8818, 8802, 8786, 8770, 8754, 8738, 
464     8722, 8706, 8690, 8674, 8658, 8642, 8626, 8610, 8594, 8578, 
465     8562, 8546, 8530, 8514, 8498, 8482, 8466, 8450, 8434, 8418, 
466     8402, 8386, 8370, 8354, 8338, 8322, 8306, 8290, 8274, 8258, 
467     8242, 8226, 8210, 8194, 8178, 8162, 8146, 8130, 8114, 8098, 
468     8082, 8066, 8050, 8034, 8018, 8002, 7986, 7970, 7954, 7938, 
469     7922, 7906, 7890, 7874, 7858, 7842, 7826, 7810, 7794, 7778, 
470     7762, 7746, 7730, 7714, 7698, 7682, 7666, 7650, 7634, 7618, 
471     7602, 7586, 7570, 7554, 7538, 7522, 7506, 7490, 7474, 7458, 
472     7442, 7426, 7410, 7394, 7378, 7362, 7346, 7330, 7314, 7298, 
473     7282, 7266, 7250, 7234, 7218, 7202, 7186, 7170, 7154, 7138, 
474     7122, 7106, 7090, 7074, 7058, 7042, 7026, 7010, 6994, 6978, 
475     6962, 6946, 6930, 6914, 6898, 6882, 6866, 6850, 6834, 6818, 
476     6802, 6786, 6770, 6754, 6738, 6722, 6706, 6690, 6674, 6658, 
477     6642, 6626, 6610, 6594, 6578, 6562, 6546, 6530, 6514, 6498, 
478     6482, 6466, 6450, 6434, 6418, 6402, 6386, 6370, 6354, 6338, 
479     6322, 6306, 6290, 6274, 6258, 6242, 6226, 6210, 6194, 6178, 
480     6162, 6146, 6130, 6114, 6098, 6082, 6066, 6050, 6034, 6018, 
481     6002, 5986, 5970, 5954, 5938, 5922, 5906, 5890, 5874, 5858, 
482     5842, 5826, 5810, 5794, 5778, 5762, 5746, 5730, 5714, 5698, 
483     5682, 5666, 5650, 5634, 2835, 2819, 2803, 2787, 2771, 2755, 
484     2739, 2723, 2707, 2691, 2675, 2659, 2643, 2627, 2611, 2595, 
485     2579, 2563, 3544, 2531, 2515, 2499, 3483, 2220, 2204, 2188, 
486     2172, 2156, 2140, 2124, 2108, 2092, 5122, 2869, 5106, 5100, 
487     2836, 2111, 2095, 2079, 2063, 2047, 2031, 2946, 1884, 1980, 
488     1967, 1951, 1935, 1919, 1903, 1887, 1871, 1855, 1839, 1823, 
489     1807, 1791, 1775, 1759, 1743, 1727, 1711, 1695, 1679, 1663, 
490     1647, 1633, 1500, 1599, 1583, 1567, 1551, 1533, 1519, 1503, 
491     2412, 1356, 1340, 2473, 1638, 1292, 2072, 4348, 4344, 3614, 
492     4328, 2227, 1295, 1279, 1263, 1247, 1231, 1215, 1199, 2172, 
493     1941, 295, 340, 340, 378, 4104, 2137, 2221, 1171, 1157, 
494     1139, 1107, 451, 907, 3976, 819, 
495 };
496
497 static const jchar blocks1[] = {
498     0, 65535, 63, 4, 4, 253, 189, 125, 61, 65533, 
499     65469, 65405, 65405, 65266, 65325, 65149, 64639, 64623, 65133, 64893, 
500     64829, 64765, 64701, 64637, 64573, 64509, 64445, 64381, 64317, 64253, 
501     64189, 64125, 64301, 63997, 63933, 63869, 63805, 63741, 63677, 63613, 
502     63549, 63485, 63421, 63357, 63293, 63229, 63165, 63101, 63037, 62973, 
503     62909, 62845, 62781, 62717, 62653, 62589, 62525, 62461, 62397, 62333, 
504     62269, 62205, 62141, 62077, 62013, 61949, 61885, 61821, 61757, 61693, 
505     61629, 61565, 61501, 61437, 61373, 61309, 61245, 61181, 61117, 61053, 
506     60989, 60925, 60861, 60797, 60733, 60669, 60605, 60541, 60477, 60413, 
507     60349, 60285, 60221, 60157, 60093, 60029, 59965, 59901, 59837, 59773, 
508     59709, 59645, 59581, 59517, 59453, 59389, 59325, 59261, 59197, 59133, 
509     59069, 59005, 58941, 58877, 58813, 58749, 58685, 58621, 58557, 58493, 
510     58429, 58365, 58301, 58237, 58173, 58109, 58045, 57981, 57917, 57853, 
511     57789, 57725, 57661, 57597, 57533, 57469, 57405, 57341, 57277, 57213, 
512     57149, 57085, 57021, 56957, 56893, 56829, 56765, 56701, 56637, 56573, 
513     56509, 56445, 56381, 56317, 56253, 56189, 56125, 56061, 55997, 55933, 
514     55869, 55805, 55741, 55677, 55613, 55549, 55485, 55421, 55357, 55293, 
515     55229, 55165, 55101, 55037, 54973, 54909, 54845, 54781, 54717, 54653, 
516     54589, 54525, 54461, 54397, 54333, 54269, 54205, 54141, 54077, 54013, 
517     53949, 53885, 53821, 53757, 53693, 53629, 53565, 53501, 53437, 53373, 
518     53309, 53245, 53181, 53117, 53053, 52989, 52925, 52861, 52797, 52733, 
519     52669, 52605, 52541, 52477, 52413, 52349, 52285, 52221, 52157, 52093, 
520     52029, 51965, 51901, 51837, 51773, 51709, 51645, 51581, 51517, 51453, 
521     51389, 51325, 51261, 51197, 51133, 51069, 51005, 50941, 50877, 50813, 
522     50749, 50685, 50621, 50557, 50493, 50429, 50365, 50301, 50237, 50173, 
523     50109, 50045, 49981, 49917, 49853, 49789, 49725, 49661, 49597, 49533, 
524     49469, 49405, 49341, 49277, 49213, 49149, 49085, 49021, 48957, 48893, 
525     48829, 48765, 48701, 48637, 48573, 48509, 48445, 48381, 48317, 48253, 
526     48189, 48125, 48061, 47997, 47933, 47869, 47805, 47741, 47677, 47613, 
527     47549, 47485, 47421, 47357, 47293, 47229, 47165, 47101, 47037, 46973, 
528     46909, 46845, 46781, 46717, 46653, 46589, 46525, 46461, 46397, 46333, 
529     46269, 46205, 46141, 46077, 46013, 45949, 45885, 45821, 45757, 45693, 
530     45629, 45565, 45501, 45437, 45373, 45309, 45245, 45181, 45117, 45053, 
531     44989, 44925, 44861, 44797, 44733, 44669, 44605, 44541, 44477, 44413, 
532     44349, 44285, 44221, 44157, 44093, 44029, 43965, 43901, 43837, 43773, 
533     43709, 43645, 43581, 43517, 43453, 43389, 43325, 43261, 43197, 43133, 
534     43069, 43005, 42941, 42877, 42813, 42749, 42685, 42621, 42557, 42493, 
535     42429, 42365, 42301, 42237, 42173, 42109, 42045, 41981, 41917, 41853, 
536     41789, 41725, 41661, 41597, 41533, 41469, 41405, 41341, 41277, 41213, 
537     41149, 41085, 41021, 40957, 40893, 40829, 40765, 40701, 40637, 40573, 
538     40509, 40445, 40381, 40317, 40253, 40189, 40125, 40061, 39997, 39933, 
539     39869, 39805, 39741, 39677, 39613, 39549, 39485, 39421, 39357, 39293, 
540     39229, 39165, 39101, 39037, 38973, 38909, 38845, 38781, 38717, 38653, 
541     38589, 38525, 38461, 38397, 38333, 38269, 38205, 38141, 38077, 38013, 
542     37949, 37885, 37821, 37757, 37693, 37629, 37565, 37501, 37437, 37373, 
543     37309, 37245, 37181, 37117, 37053, 36989, 36925, 36861, 36797, 36733, 
544     36669, 36605, 36541, 36477, 36413, 36349, 36285, 36221, 36157, 36093, 
545     36029, 35965, 35901, 35837, 35773, 35709, 35645, 35581, 35517, 35453, 
546     35389, 35325, 35261, 35197, 35133, 35069, 35005, 34941, 34877, 34813, 
547     34749, 34685, 34621, 34557, 34493, 34429, 34365, 34301, 34237, 34173, 
548     34109, 34045, 33981, 33917, 33853, 33789, 33725, 33661, 33597, 33533, 
549     33469, 33405, 33341, 33277, 33213, 33149, 33085, 33021, 32957, 32893, 
550     32829, 32765, 32701, 32637, 32573, 32509, 32445, 32381, 32317, 32253, 
551     32189, 32125, 32061, 31997, 31933, 31869, 31805, 31741, 31677, 31613, 
552     31549, 31485, 31421, 31357, 31293, 31229, 31165, 31101, 31037, 30973, 
553     30909, 30845, 30781, 30717, 30653, 30589, 30525, 30461, 30397, 30333, 
554     30269, 30205, 30141, 30077, 30013, 29949, 29885, 29821, 29757, 29693, 
555     29629, 29565, 29501, 29437, 29373, 29309, 29245, 29181, 29117, 29053, 
556     28989, 28925, 28861, 28797, 28733, 28669, 28605, 28541, 28477, 28413, 
557     28349, 28285, 28221, 28157, 28093, 28029, 27965, 27901, 27837, 27773, 
558     27709, 27645, 27581, 27517, 27453, 27389, 27325, 27261, 27197, 27133, 
559     27069, 27005, 26941, 26877, 26813, 26749, 26685, 26621, 26557, 26493, 
560     26429, 26365, 26301, 26237, 26173, 26109, 26045, 25981, 25917, 25853, 
561     25789, 25725, 25661, 25597, 25533, 25469, 25405, 25341, 25277, 25213, 
562     25149, 25085, 25021, 24957, 24893, 24829, 24765, 24701, 24637, 24573, 
563     24509, 24445, 24381, 24317, 24253, 24189, 24125, 24061, 23997, 23933, 
564     23869, 23805, 23741, 23677, 23613, 23549, 23485, 23421, 23357, 23293, 
565     23229, 23165, 23101, 23037, 22973, 22909, 22845, 22781, 22717, 22653, 
566     22589, 22525, 22461, 22397, 22333, 22269, 22205, 22141, 22077, 22013, 
567     21949, 21885, 21821, 21757, 21693, 21629, 21565, 21501, 21437, 21373, 
568     21309, 21245, 21181, 21117, 21053, 20989, 20925, 20861, 20797, 20733, 
569     20669, 20605, 20541, 20477, 20413, 20349, 20285, 20221, 20157, 20093, 
570     20029, 19965, 19901, 19837, 19773, 19709, 19645, 19581, 19517, 19453, 
571     19389, 19325, 19261, 19197, 19133, 19069, 19005, 18941, 18877, 18813, 
572     18749, 18685, 18621, 18557, 18493, 18429, 18365, 18301, 18237, 18173, 
573     18109, 18045, 17981, 17917, 17853, 17789, 17725, 17661, 17597, 17533, 
574     17469, 17405, 17341, 17277, 17213, 17149, 17085, 17021, 16957, 16893, 
575     16829, 16765, 16701, 16637, 16573, 16509, 16445, 16381, 16317, 16253, 
576     16189, 16125, 16061, 15997, 15933, 15869, 15805, 15741, 15677, 15613, 
577     15549, 15485, 15421, 15357, 15293, 15229, 15165, 15101, 15037, 14973, 
578     14909, 14845, 14781, 14717, 14653, 14589, 14525, 14461, 14397, 14333, 
579     14269, 14205, 14141, 14077, 14013, 13949, 13885, 13821, 13757, 13693, 
580     13629, 13565, 13501, 13437, 13373, 13309, 13245, 13181, 13117, 13053, 
581     12989, 12925, 12752, 12688, 12624, 12570, 12454, 12283, 12280, 12338, 
582     12349, 12285, 12221, 12157, 12397, 12374, 11965, 11901, 12340, 12394, 
583     12451, 12132, 12384, 12197, 11976, 11924, 11820, 11768, 11768, 11542, 
584     11484, 11426, 11368, 11744, 10813, 10749, 10685, 10621, 10557, 10493, 
585     10429, 10365, 10301, 10237, 10173, 10109, 10045, 9981, 9917, 9853, 
586     9789, 9725, 9661, 9597, 9533, 9469, 9405, 9341, 9277, 9213, 
587     9149, 9085, 9021, 8957, 8893, 8829, 8765, 8701, 8637, 8573, 
588     8509, 8445, 8381, 8317, 8253, 8189, 8125, 8061, 7997, 7933, 
589     7869, 7805, 7741, 7677, 7613, 7549, 7485, 7421, 7357, 7293, 
590     7229, 7165, 7101, 7037, 6973, 6909, 6845, 6781, 6717, 6653, 
591     6589, 6525, 6461, 6397, 6333, 6269, 6205, 6141, 6077, 6013, 
592     5949, 5885, 5821, 5757, 5693, 5629, 5565, 5501, 5437, 5373, 
593     5309, 5245, 5181, 5117, 5053, 4989, 4925, 4861, 4797, 4733, 
594     4669, 4605, 4541, 4477, 4413, 4349, 4285, 4221, 4157, 4093, 
595     4029, 3965, 3901, 3837, 3773, 3709, 3645, 3581, 3517, 3453, 
596     3389, 3325, 3261, 3197, 3133, 3069, 3005, 2941, 2877, 2813, 
597     2749, 2685, 2621, 2557, 2493, 2429, 2365, 2301, 2237, 2173, 
598     2109, 2045, 1981, 1917, 1853, 1789, 1725, 1661, 1597, 1533, 
599     1469, 1405, 1341, 1277, 1213, 1149, 1085, 1021, 957, 893, 
600     829, 765, 701, 637, 
601 };
602
603 static const jchar blocks2[] = {
604     0, 65408, 65280, 65152, 65024, 64896, 64768, 64640, 64512, 64384, 
605     64256, 64128, 64000, 63872, 63744, 63616, 63488, 63360, 63232, 63104, 
606     62976, 62848, 62720, 62592, 62464, 62336, 62208, 62080, 61952, 61824, 
607     61696, 61568, 61440, 61312, 61184, 61056, 60928, 60800, 60672, 60544, 
608     60416, 60288, 60160, 60032, 59904, 59776, 59648, 59520, 59392, 59264, 
609     59136, 59008, 58880, 58752, 58624, 58496, 58368, 58240, 58112, 57984, 
610     57856, 57728, 57600, 57472, 57344, 57216, 57088, 56960, 56832, 56704, 
611     56576, 56448, 56320, 56192, 56064, 55936, 55808, 55680, 55552, 55424, 
612     55296, 55168, 55040, 54912, 54784, 54656, 54528, 54400, 54272, 54144, 
613     54016, 53888, 53760, 53632, 53504, 53376, 53248, 53120, 52992, 52864, 
614     52736, 52608, 52480, 52352, 52224, 52096, 51968, 51840, 51712, 51584, 
615     51456, 51328, 51200, 51072, 50944, 50816, 50688, 50560, 50432, 50304, 
616     50176, 50048, 49920, 49792, 49664, 49536, 49408, 49280, 49152, 49024, 
617     48896, 48768, 48640, 48512, 48384, 48256, 48128, 48000, 47872, 47744, 
618     47616, 47488, 47360, 47232, 47104, 46976, 46848, 46720, 46592, 46464, 
619     46336, 46208, 46080, 45952, 45824, 45696, 45568, 45440, 45312, 45184, 
620     45056, 44928, 44800, 44672, 44544, 44416, 44288, 44160, 44032, 43904, 
621     43776, 43648, 43520, 43392, 43264, 43136, 43008, 42880, 42752, 42624, 
622     42496, 42368, 42240, 42112, 41984, 41856, 41728, 41600, 41472, 41344, 
623     41216, 41088, 40960, 40832, 40704, 40576, 40448, 40320, 40192, 40064, 
624     39936, 39808, 39680, 39552, 39424, 39296, 39168, 39040, 38912, 38784, 
625     38656, 38528, 38400, 38272, 38144, 38016, 37888, 37760, 37632, 37504, 
626     37376, 37248, 37120, 36992, 36864, 36736, 36608, 36480, 36352, 36224, 
627     36096, 35968, 35840, 35712, 35584, 35456, 35328, 35200, 35072, 34944, 
628     34816, 34688, 34560, 34432, 34304, 34176, 34048, 33920, 33792, 33664, 
629     33536, 33408, 33280, 33152, 33024, 32896, 32768, 32640, 32512, 32384, 
630     32256, 32128, 32000, 31872, 31744, 31616, 31488, 31360, 31232, 31104, 
631     30976, 30848, 30720, 30592, 30464, 30336, 30208, 30080, 29952, 29824, 
632     29696, 29568, 29440, 29312, 29184, 29056, 28928, 28800, 28672, 28544, 
633     28416, 28288, 28160, 28032, 27904, 27776, 27648, 27520, 27392, 27264, 
634     27136, 27008, 26880, 26752, 26624, 26496, 26368, 26240, 26112, 25984, 
635     25856, 25728, 25600, 25472, 25344, 25216, 25088, 24960, 24832, 24704, 
636     24576, 24448, 24320, 24192, 24064, 23936, 23808, 23680, 23552, 23424, 
637     23296, 23168, 23040, 22953, 22912, 22784, 22656, 22528, 22400, 22272, 
638     22144, 22016, 21888, 21760, 21632, 21504, 21376, 21248, 21120, 20992, 
639     20864, 20736, 20608, 20480, 20352, 20224, 20096, 19968, 19840, 19712, 
640     19584, 19456, 19328, 19200, 19072, 18944, 18816, 18688, 18560, 18432, 
641     18304, 18176, 18048, 17920, 17792, 17664, 17536, 17408, 17280, 17152, 
642     17024, 16896, 16768, 16640, 16512, 16384, 16256, 16128, 16000, 15872, 
643     15744, 15616, 15488, 15360, 15232, 15104, 14976, 14848, 14720, 14592, 
644     14464, 14336, 14208, 14080, 13952, 13824, 13696, 13568, 13440, 13312, 
645     13184, 13056, 12928, 12800, 12672, 12544, 12416, 12288, 12160, 12032, 
646     11904, 11776, 11648, 11520, 11392, 11264, 11136, 11008, 10880, 10752, 
647     10624, 10496, 10368, 10240, 10112, 9984, 9856, 9728, 9600, 9472, 
648     9344, 9216, 9088, 8960, 8832, 8704, 8576, 8448, 8320, 8192, 
649     8064, 7936, 7808, 7680, 7552, 7424, 7296, 7168, 7040, 6912, 
650     6784, 6656, 6528, 6400, 6272, 6144, 6016, 5888, 5760, 5632, 
651     5504, 5376, 5248, 5120, 4992, 4864, 4736, 4608, 4480, 4352, 
652     4224, 4096, 3968, 3840, 3712, 3584, 3456, 3328, 3200, 3072, 
653     2944, 2816, 2688, 2560, 2432, 2304, 2048, 1920, 1792, 1664, 
654     1634, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512, 
655     384, 256, 
656 };
657
658 static const jchar blocks14[] = {
659     255, 0, 65280, 65168, 65152, 65024, 64896, 64768, 64640, 64512, 
660     64384, 64256, 64128, 64000, 63872, 63744, 63616, 63488, 63360, 63232, 
661     63104, 62976, 62848, 62720, 62592, 62464, 62336, 62208, 62080, 61952, 
662     61824, 61696, 61568, 61440, 61312, 61184, 61056, 60928, 60800, 60672, 
663     60544, 60416, 60288, 60160, 60032, 59904, 59776, 59648, 59520, 59392, 
664     59264, 59136, 59008, 58880, 58752, 58624, 58496, 58368, 58240, 58112, 
665     57984, 57856, 57728, 57600, 57472, 57344, 57216, 57088, 56960, 56832, 
666     56704, 56576, 56448, 56320, 56192, 56064, 55936, 55808, 55680, 55552, 
667     55424, 55296, 55168, 55040, 54912, 54784, 54656, 54528, 54400, 54272, 
668     54144, 54016, 53888, 53760, 53632, 53504, 53376, 53248, 53120, 52992, 
669     52864, 52736, 52608, 52480, 52352, 52224, 52096, 51968, 51840, 51712, 
670     51584, 51456, 51328, 51200, 51072, 50944, 50816, 50688, 50560, 50432, 
671     50304, 50176, 50048, 49920, 49792, 49664, 49536, 49408, 49280, 49152, 
672     49024, 48896, 48768, 48640, 48512, 48384, 48256, 48128, 48000, 47872, 
673     47744, 47616, 47488, 47360, 47232, 47104, 46976, 46848, 46720, 46592, 
674     46464, 46336, 46208, 46080, 45952, 45824, 45696, 45568, 45440, 45312, 
675     45184, 45056, 44928, 44800, 44672, 44544, 44416, 44288, 44160, 44032, 
676     43904, 43776, 43648, 43520, 43392, 43264, 43136, 43008, 42880, 42752, 
677     42624, 42496, 42368, 42240, 42112, 41984, 41856, 41728, 41600, 41472, 
678     41344, 41216, 41088, 40960, 40832, 40704, 40576, 40448, 40320, 40192, 
679     40064, 39936, 39808, 39680, 39552, 39424, 39296, 39168, 39040, 38912, 
680     38784, 38656, 38528, 38400, 38272, 38144, 38016, 37888, 37760, 37632, 
681     37504, 37376, 37248, 37120, 36992, 36864, 36736, 36608, 36480, 36352, 
682     36224, 36096, 35968, 35840, 35712, 35584, 35456, 35328, 35200, 35072, 
683     34944, 34816, 34688, 34560, 34432, 34304, 34176, 34048, 33920, 33792, 
684     33664, 33536, 33408, 33280, 33152, 33024, 32896, 32768, 32640, 32512, 
685     32384, 32256, 32128, 32000, 31872, 31744, 31616, 31488, 31360, 31232, 
686     31104, 30976, 30848, 30720, 30592, 30464, 30336, 30208, 30080, 29952, 
687     29824, 29696, 29568, 29440, 29312, 29184, 29056, 28928, 28800, 28672, 
688     28544, 28416, 28288, 28160, 28032, 27904, 27776, 27648, 27520, 27392, 
689     27264, 27136, 27008, 26880, 26752, 26624, 26496, 26368, 26240, 26112, 
690     25984, 25856, 25728, 25600, 25472, 25344, 25216, 25088, 24960, 24832, 
691     24704, 24576, 24448, 24320, 24192, 24064, 23936, 23808, 23680, 23552, 
692     23424, 23296, 23168, 23040, 22912, 22784, 22656, 22528, 22400, 22272, 
693     22144, 22016, 21888, 21760, 21632, 21504, 21376, 21248, 21120, 20992, 
694     20864, 20736, 20608, 20480, 20352, 20224, 20096, 19968, 19840, 19712, 
695     19584, 19456, 19328, 19200, 19072, 18944, 18816, 18688, 18560, 18432, 
696     18304, 18176, 18048, 17920, 17792, 17664, 17536, 17408, 17280, 17152, 
697     17024, 16896, 16768, 16640, 16512, 16384, 16256, 16128, 16000, 15872, 
698     15744, 15616, 15488, 15360, 15232, 15104, 14976, 14848, 14720, 14592, 
699     14464, 14336, 14208, 14080, 13952, 13824, 13696, 13568, 13440, 13312, 
700     13184, 13056, 12928, 12800, 12672, 12544, 12416, 12288, 12160, 12032, 
701     11904, 11776, 11648, 11520, 11392, 11264, 11136, 11008, 10880, 10752, 
702     10624, 10496, 10368, 10240, 10112, 9984, 9856, 9728, 9600, 9472, 
703     9344, 9216, 9088, 8960, 8832, 8704, 8576, 8448, 8320, 8192, 
704     8064, 7936, 7808, 7680, 7552, 7424, 7296, 7168, 7040, 6912, 
705     6784, 6656, 6528, 6400, 6272, 6144, 6016, 5888, 5760, 5632, 
706     5504, 5376, 5248, 5120, 4992, 4864, 4736, 4608, 4480, 4352, 
707     4224, 4096, 3968, 3840, 3712, 3584, 3456, 3328, 3200, 3072, 
708     2944, 2816, 2688, 2560, 2432, 2304, 2176, 2048, 1920, 1792, 
709     1664, 1536, 1408, 1280, 1152, 1024, 896, 768, 640, 512, 
710     384, 256, 
711 };
712
713 static const int blocks_length[] = {
714     4096, 1024, 512, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 512, -1, -1, };
715 static const jchar* blocks[] = {
716     blocks0, blocks1, blocks2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
717     NULL, NULL, NULL, NULL, blocks14, NULL, NULL};
718
719 /**
720  * Information about each character.  The low order 5 bits form the
721  * character type, the next bit is a flag for non-breaking spaces, and the
722  * next bit is a flag for mirrored directionality.  The high order 9 bits
723  * form the offset into the attribute tables.  Note that this limits the
724  * number of unique character attributes per plane to 512, which is not a 
725  * problem as of Unicode version 4.0.0, but may soon become one.
726  */
727 static const jchar data0[] = {
728     8834, 8962, 9090, 9218, 9346, 9474, 9602, 9730, 9858, 9986, 
729     10114, 1109, 3225, 1238, 3225, 15, 15, 15, 15, 15, 
730     15, 15, 15, 15, 143, 271, 143, 399, 271, 15, 
731     15, 15, 15, 15, 271, 15, 15, 15, 15, 15, 
732     15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 
733     15, 271, 271, 271, 143, 1801, 1929, 2057, 2185, 2313, 
734     2441, 2569, 2697, 2825, 2953, 1432, 664, 3161, 3225, 3161, 
735     664, 664, 3225, 664, 6807, 16256, 16256, 664, 16256, 16256, 
736     16256, 16256, 16256, 16256, 16256, 524, 664, 664, 792, 922, 
737     792, 664, 664, 1109, 1238, 664, 1305, 1432, 1556, 1432, 
738     1688, 10908, 1305, 11019, 11147, 6683, 11266, 10396, 664, 6683, 
739     11403, 10498, 11614, 11659, 11659, 11659, 664, 3329, 3457, 3585, 
740     3713, 3841, 3969, 4097, 4225, 4353, 4481, 4609, 4737, 4865, 
741     4993, 5121, 5249, 5377, 5505, 5633, 5761, 5889, 6017, 6145, 
742     6273, 6401, 6529, 1109, 664, 1238, 6683, 6807, 664, 664, 
743     664, 3225, 1109, 1238, 664, 664, 664, 664, 664, 664, 
744     664, 664, 664, 34189, 34318, 34448, 34576, 34704, 34832, 34960, 
745     33452, 10284, 664, 922, 922, 922, 922, 10396, 10396, 6683, 
746     10396, 10498, 10717, 3225, 10768, 10396, 6683, 6914, 7042, 7170, 
747     7298, 7426, 7554, 7682, 7810, 7938, 8066, 8194, 8322, 8450, 
748     8578, 8706, 19074, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 
749     11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 3225, 
750     11777, 11777, 11777, 11777, 11777, 11777, 11777, 11906, 15361, 15491, 
751     15618, 12289, 12418, 15873, 16001, 12289, 12418, 12289, 12418, 12289, 
752     12418, 12289, 12418, 12801, 12289, 12418, 12289, 12418, 12289, 12418, 
753     12930, 19074, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 
754     12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 3225, 12034, 
755     12034, 12034, 12034, 12034, 12034, 12034, 12162, 16129, 10498, 12289, 
756     12418, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 
757     12418, 12289, 12418, 12289, 12418, 15746, 12289, 12418, 21404, 18310, 
758     18310, 18310, 18310, 16256, 21511, 21511, 12289, 12418, 12289, 12418, 
759     12289, 12418, 16256, 16256, 12289, 12418, 16256, 16256, 16256, 16256, 
760     16256, 16256, 18310, 24584, 16256, 16256, 16256, 16256, 15109, 15109, 
761     16256, 15109, 16256, 16256, 15109, 15109, 16256, 15109, 16256, 16256, 
762     15109, 16256, 16256, 11906, 32258, 11906, 16256, 11906, 19074, 33153, 
763     33153, 33281, 33281, 32515, 6683, 6683, 16256, 18310, 18310, 24584, 
764     16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
765     16256, 15109, 16256, 15109, 15109, 15109, 15109, 16256, 16256, 15109, 
766     15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 16256, 15109, 
767     15109, 15109, 15109, 15109, 15109, 16256, 16256, 15109, 15109, 15109, 
768     15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
769     21784, 21784, 15109, 15109, 15109, 15109, 15361, 15491, 15618, 15361, 
770     15491, 15618, 15361, 15491, 15618, 12289, 12418, 12289, 12418, 10498, 
771     10498, 10498, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
772     16256, 15109, 15109, 15109, 15109, 16256, 15109, 16256, 15109, 15109, 
773     16256, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 18310, 15109, 
774     24584, 24584, 18310, 18310, 18310, 16256, 16256, 16256, 24584, 24584, 
775     16256, 16256, 24584, 24584, 18310, 16256, 16256, 12545, 12674, 12289, 
776     12418, 12289, 12418, 12289, 12418, 10498, 12289, 12418, 12289, 12418, 
777     12289, 12418, 12289, 12418, 11906, 11906, 11906, 11906, 11906, 30850, 
778     16256, 16256, 16256, 16256, 6683, 6683, 16256, 16256, 16256, 16256, 
779     18052, 16256, 16256, 16256, 664, 16256, 21633, 21633, 21633, 21633, 
780     21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 21633, 
781     21633, 21633, 16256, 16256, 18052, 21784, 21784, 21784, 21784, 21784, 
782     21784, 21404, 21404, 21404, 21404, 21404, 18310, 18310, 21404, 21404, 
783     21404, 21404, 21404, 21404, 18310, 21404, 21404, 21404, 21404, 21404, 
784     21404, 16256, 16256, 21404, 15109, 16256, 16256, 16256, 16256, 16256, 
785     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
786     19842, 19970, 20097, 20097, 20097, 20226, 20354, 10498, 12289, 12418, 
787     12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 11906, 12289, 
788     12418, 12289, 12418, 12289, 12418, 14721, 12289, 12418, 14721, 10498, 
789     10498, 12289, 12418, 14721, 12289, 17666, 10498, 10498, 17666, 10498, 
790     10498, 10498, 10498, 17666, 10498, 17794, 17794, 10498, 10498, 10498, 
791     10498, 17410, 10498, 10498, 17538, 10498, 10498, 10498, 10498, 10498, 
792     10498, 10498, 10498, 10498, 10498, 16386, 16514, 10498, 16642, 16642, 
793     10498, 16770, 10498, 16898, 10498, 10498, 10498, 10498, 13057, 12289, 
794     12418, 12289, 12418, 13185, 12289, 12418, 13313, 13313, 12289, 12418, 
795     10498, 13441, 13569, 13697, 12289, 12418, 13313, 13825, 13954, 14081, 
796     14209, 12289, 12418, 10498, 10498, 14081, 14337, 14466, 14593, 12418, 
797     14849, 14849, 12289, 12418, 12289, 12418, 14977, 12289, 12418, 10498, 
798     15109, 12289, 12418, 10498, 15234, 18310, 18310, 18310, 18310, 18310, 
799     18438, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 
800     18310, 16256, 18310, 18310, 18310, 22168, 18310, 18310, 22168, 18310, 
801     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
802     16256, 24584, 16256, 16256, 16256, 16256, 15109, 15109, 16256, 15109, 
803     15109, 15109, 15109, 16256, 16256, 16256, 15109, 15109, 16256, 15109, 
804     16256, 15109, 15109, 16256, 15109, 15109, 16256, 15109, 15109, 16256, 
805     16256, 18310, 16256, 24584, 24584, 24584, 16256, 15109, 15109, 15109, 
806     15109, 15109, 15109, 15109, 15109, 16256, 15109, 15109, 15109, 16256, 
807     16256, 16256, 16256, 24584, 24584, 21784, 16256, 16256, 16256, 16256, 
808     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
809     16256, 16256, 24464, 24464, 24464, 10396, 10396, 16256, 16256, 16256, 
810     664, 664, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, 
811     25737, 25865, 16256, 16256, 16256, 16256, 16256, 16256, 18310, 15109, 
812     16256, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 16256, 
813     15109, 15109, 16256, 16256, 16256, 15109, 15109, 15109, 16256, 16256, 
814     16256, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 15109, 
815     15109, 15109, 16256, 16256, 16256, 21890, 21890, 21890, 21890, 21890, 
816     21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 21890, 
817     21890, 11906, 16256, 21784, 22036, 16256, 16256, 16256, 16256, 16256, 
818     18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
819     16256, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 
820     22661, 22661, 22661, 22661, 22661, 22661, 22661, 27541, 27670, 16642, 
821     10498, 10498, 17026, 10498, 10498, 10498, 10498, 17154, 17282, 10498, 
822     10498, 10498, 10498, 10498, 17282, 22416, 22416, 22416, 22416, 16256, 
823     16256, 16256, 16256, 16256, 16256, 16256, 16256, 1432, 22552, 10396, 
824     10396, 20097, 10396, 10396, 10396, 10396, 20097, 10396, 10396, 10498, 
825     20097, 20097, 20097, 10498, 10498, 17922, 10498, 10498, 10498, 10498, 
826     10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 
827     10498, 10498, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 
828     18052, 18052, 18052, 18052, 18052, 18052, 18052, 18052, 18180, 18180, 
829     18052, 18052, 18052, 18052, 18052, 6683, 6683, 6683, 6683, 6683, 
830     6683, 6683, 6683, 6683, 18052, 6683, 22036, 15109, 15109, 15109, 
831     15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
832     15109, 15109, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
833     15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 18052, 
834     18052, 6683, 6683, 6683, 6683, 18180, 18180, 18180, 18180, 18180, 
835     18180, 18180, 18180, 18180, 18180, 18052, 18052, 6683, 6683, 6683, 
836     6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 6683, 
837     6683, 6683, 6683, 11906, 32258, 11906, 16256, 11906, 19074, 32769, 
838     32769, 32769, 32769, 32515, 6683, 6683, 6683, 10396, 44170, 44298, 
839     44426, 44554, 44682, 44810, 44938, 45066, 45194, 18310, 18310, 18310, 
840     18310, 18310, 18310, 18310, 18310, 16256, 18310, 18310, 18310, 18310, 
841     18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 
842     18310, 18310, 16256, 21404, 21404, 25995, 26123, 26251, 26379, 21404, 
843     21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 
844     10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 
845     10396, 10396, 10396, 10396, 16256, 10396, 16256, 10396, 10396, 10396, 
846     10396, 16256, 10396, 10396, 10396, 10396, 16256, 16256, 10396, 10396, 
847     10396, 10396, 10396, 21404, 10396, 10396, 10396, 10396, 10396, 3225, 
848     3225, 3225, 3225, 3225, 27541, 27670, 664, 10396, 10396, 10396, 
849     10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 10396, 10396, 
850     10396, 10396, 10396, 10396, 10396, 1109, 1238, 1109, 1238, 1109, 
851     1238, 1109, 1238, 29579, 29707, 29835, 29963, 30091, 30219, 30347, 
852     30475, 30603, 43915, 29579, 29707, 29835, 29963, 30091, 30219, 18310, 
853     18310, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 16256, 
854     16256, 16256, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 
855     18310, 18310, 18310, 18310, 18310, 18310, 24584, 24584, 16256, 16256, 
856     16256, 24584, 24584, 24584, 16256, 24584, 24584, 24584, 18310, 16256, 
857     16256, 18310, 24584, 24584, 16256, 15109, 15109, 15109, 15109, 15109, 
858     15109, 15109, 15109, 16256, 16256, 15109, 15109, 15109, 16256, 15109, 
859     16256, 15109, 16256, 16256, 15109, 15109, 16256, 15109, 15109, 15109, 
860     15109, 15109, 16256, 15109, 15109, 16256, 24584, 18310, 18310, 18310, 
861     18310, 16256, 16256, 24584, 24584, 16256, 16256, 24584, 24584, 18310, 
862     16256, 16256, 20482, 20610, 20738, 10498, 20865, 20994, 3225, 12289, 
863     12418, 21121, 12289, 12418, 16256, 16256, 16256, 16256, 6683, 6683, 
864     18561, 664, 18689, 18689, 18689, 16256, 18817, 16256, 18945, 18945, 
865     11777, 11777, 16256, 11777, 11777, 11777, 11777, 11777, 11777, 11777, 
866     11777, 11777, 19202, 19330, 19330, 19330, 12034, 12034, 19458, 12034, 
867     12034, 12034, 12034, 12034, 12034, 12034, 12034, 12034, 19586, 19714, 
868     19714, 16256, 18310, 18310, 24584, 16256, 15109, 15109, 15109, 15109, 
869     15109, 15109, 16256, 16256, 16256, 16256, 15109, 15109, 15109, 15109, 
870     16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
871     16256, 15109, 16256, 16256, 16256, 15109, 15109, 15109, 15109, 16256, 
872     16256, 18310, 15109, 24584, 24584, 18310, 24584, 24584, 24584, 24584, 
873     24584, 24584, 18310, 18310, 18310, 16256, 16256, 16256, 16256, 21249, 
874     21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 21249, 
875     21249, 21249, 21249, 21249, 21249, 20610, 20610, 20610, 20610, 20610, 
876     20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 20610, 
877     20610, 20097, 12289, 12418, 12289, 12418, 12289, 12418, 12289, 12418, 
878     12289, 12418, 12289, 12418, 12289, 12418, 16256, 16256, 16256, 16256, 
879     16256, 16256, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, 
880     25737, 25865, 27403, 27403, 27403, 27403, 27403, 27403, 21404, 18310, 
881     21404, 18310, 21404, 18310, 27541, 27670, 27541, 27670, 24584, 24584, 
882     18310, 18310, 18310, 16256, 18310, 16256, 24584, 24584, 24584, 24584, 
883     24584, 24584, 24584, 24584, 18310, 24584, 24584, 18310, 18310, 18310, 
884     18310, 18310, 18310, 18310, 18310, 24584, 24584, 24584, 24584, 18310, 
885     16256, 16256, 21784, 21784, 21784, 21784, 21784, 21784, 21784, 21784, 
886     24841, 24969, 25097, 25225, 25353, 25481, 25609, 18310, 18310, 18310, 
887     18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 16256, 16256, 
888     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 11906, 11906, 
889     11906, 11906, 11906, 16256, 16256, 16256, 16256, 16256, 22277, 18310, 
890     22277, 22277, 16256, 22277, 22277, 16256, 22277, 22277, 22277, 22277, 
891     22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 22277, 
892     22277, 22277, 16256, 16256, 16256, 16256, 16256, 24584, 24584, 16256, 
893     16256, 16256, 16256, 16256, 16256, 16256, 15109, 16256, 15109, 15109, 
894     16256, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 18310, 15109, 
895     24584, 18310, 18310, 18310, 18310, 18310, 16256, 18310, 18310, 24584, 
896     16256, 24584, 24584, 18310, 16256, 16256, 664, 664, 792, 922, 
897     792, 664, 664, 1109, 1238, 664, 1305, 1432, 1556, 1432, 
898     1688, 22277, 22277, 22277, 22168, 22168, 16256, 16256, 16256, 16256, 
899     16256, 16256, 16256, 16256, 16256, 16256, 16256, 24584, 16256, 16256, 
900     16256, 16256, 16256, 16256, 16256, 16256, 11659, 11659, 11659, 11659, 
901     11659, 11659, 11659, 11659, 11659, 11659, 11659, 11659, 29579, 22921, 
902     23049, 23177, 23305, 23433, 23561, 23689, 23817, 23945, 24073, 792, 
903     24216, 24216, 22552, 22661, 22661, 22661, 22661, 22552, 22661, 18310, 
904     18310, 18310, 18310, 18310, 18310, 18310, 22416, 21511, 18310, 21511, 
905     21511, 21511, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 16256, 
906     16256, 16256, 16256, 22552, 16256, 16256, 16256, 22552, 22552, 22552, 
907     22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 22552, 
908     22552, 16256, 24464, 22788, 22661, 22661, 22661, 22661, 22661, 22661, 
909     22661, 22661, 22661, 22661, 18310, 18310, 18310, 18310, 18310, 18310, 
910     18310, 18310, 18310, 18310, 18310, 16256, 16256, 22661, 22661, 22661, 
911     22661, 22661, 16256, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 
912     22661, 22661, 22661, 22661, 16256, 16256, 16256, 16256, 16256, 16256, 
913     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 24841, 24969, 
914     25097, 25225, 25353, 25481, 25609, 25737, 25865, 26763, 27787, 27915, 
915     28043, 28171, 28299, 28427, 28555, 28683, 26891, 28811, 16256, 16256, 
916     16256, 1801, 1929, 2057, 2185, 2313, 2441, 2569, 2697, 2825, 
917     2953, 22661, 22661, 22661, 24348, 24348, 22661, 18310, 22661, 22661, 
918     22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 22661, 
919     22661, 22661, 22661, 16256, 16256, 24464, 24464, 24464, 24464, 16256, 
920     16256, 16256, 16256, 16256, 16256, 24464, 24464, 24464, 24464, 24464, 
921     24464, 18310, 18310, 18310, 18310, 18310, 22788, 22788, 18310, 18310, 
922     10396, 18310, 18310, 18310, 18310, 22661, 22661, 22661, 22661, 22661, 
923     22661, 22661, 22661, 22661, 22661, 22661, 22661, 50458, 10396, 16256, 
924     16256, 18310, 22661, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
925     16256, 16256, 16256, 16256, 16256, 16256, 16256, 1238, 664, 1109, 
926     1238, 664, 6807, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
927     15109, 15109, 15109, 16256, 16256, 16256, 16256, 24584, 24584, 16256, 
928     15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 15109, 
929     15109, 15109, 15109, 15109, 16256, 16256, 16256, 16256, 18310, 18310, 
930     24584, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
931     15109, 15109, 15109, 27541, 27670, 16256, 16256, 16256, 524, 15109, 
932     15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
933     15109, 15109, 15109, 15109, 16256, 16256, 16256, 16256, 16256, 15109, 
934     15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
935     6807, 18052, 18052, 18052, 15109, 15109, 15109, 18052, 15109, 15109, 
936     15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
937     15109, 15109, 15109, 16256, 16256, 18310, 15109, 24584, 24584, 24584, 
938     24584, 24584, 16256, 27142, 24584, 24584, 16256, 24584, 24584, 18310, 
939     18310, 16256, 16256, 16256, 16256, 18310, 18310, 16256, 16256, 18310, 
940     18310, 18310, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 
941     15109, 16256, 16256, 18310, 18310, 6683, 6683, 18052, 18052, 15109, 
942     18310, 18310, 18310, 18310, 16256, 16256, 16256, 15109, 15109, 15109, 
943     15109, 15109, 15109, 15109, 15109, 15109, 16256, 16256, 21784, 16256, 
944     16256, 16256, 16256, 15109, 15109, 18310, 18310, 21784, 21784, 24713, 
945     24841, 24969, 25097, 25225, 25353, 25481, 25609, 25737, 25865, 21784, 
946     21784, 16256, 16256, 16256, 16256, 15109, 15109, 18310, 18310, 16256, 
947     16256, 24713, 24841, 24969, 25097, 25225, 25353, 25481, 25609, 25737, 
948     25865, 16256, 16256, 15109, 15109, 16256, 16256, 15109, 15109, 922, 
949     922, 25995, 26123, 26251, 26379, 26507, 26635, 21404, 16256, 16256, 
950     16256, 16256, 16256, 18310, 18310, 15109, 15109, 15109, 16256, 16256, 
951     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 
952     18310, 15109, 15109, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 
953     16256, 16256, 16256, 16256, 922, 16256, 16256, 16256, 16256, 16256, 
954     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 
955     15109, 15109, 15109, 15109, 15109, 18052, 18310, 18310, 18310, 18310, 
956     18310, 18310, 18310, 18310, 21784, 18310, 18310, 15109, 15109, 15109, 
957     15109, 16256, 16256, 16256, 16256, 24713, 24841, 24969, 25097, 25225, 
958     25353, 25481, 25609, 25737, 25865, 21784, 21784, 21784, 21784, 21784, 
959     21784, 26763, 26891, 27019, 10396, 10396, 10396, 10396, 10396, 10396, 
960     922, 10396, 16256, 16256, 16256, 16256, 16256, 18310, 24584, 24584, 
961     24584, 24584, 16256, 18310, 18310, 18310, 16256, 18310, 18310, 18310, 
962     18310, 16256, 16256, 15109, 15109, 15109, 15109, 16256, 15109, 15109, 
963     15109, 15109, 15109, 16256, 16256, 18310, 15109, 24584, 27142, 24584, 
964     18310, 18310, 18310, 16256, 16256, 24584, 24584, 24584, 16256, 24584, 
965     24584, 24584, 18310, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 
966     15109, 15109, 16256, 16256, 16256, 18310, 16256, 16256, 16256, 16256, 
967     24584, 24584, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
968     15109, 15109, 15109, 15109, 21784, 21784, 21784, 28938, 29066, 15109, 
969     18310, 15109, 15109, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 
970     18310, 18310, 15109, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 
971     16256, 18052, 16256, 18310, 18310, 18310, 18310, 18310, 18310, 16256, 
972     16256, 15109, 21404, 21404, 21404, 21784, 21784, 21784, 21784, 21784, 
973     21784, 21784, 21784, 27320, 21784, 21784, 21784, 18310, 24584, 18310, 
974     16256, 16256, 16256, 18310, 18310, 24584, 18310, 16256, 16256, 16256, 
975     16256, 16256, 16256, 15109, 15109, 15109, 15109, 15109, 15109, 24584, 
976     24584, 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 20097, 
977     20097, 10396, 20097, 10498, 15109, 15109, 15109, 15109, 10498, 10396, 
978     10396, 16256, 10498, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 
979     20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 20097, 16256, 
980     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 
981     15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 16256, 
982     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
983     16256, 29194, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
984     16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 15109, 18310, 
985     18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
986     16256, 16256, 16256, 15109, 15109, 18310, 18310, 18310, 21784, 21784, 
987     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 15109, 
988     15109, 18310, 18310, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
989     16256, 16256, 16256, 16256, 16256, 15109, 16256, 18310, 18310, 16256, 
990     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
991     16256, 15109, 15109, 15109, 15109, 29328, 29328, 24584, 18310, 18310, 
992     18310, 18310, 18310, 18310, 18310, 24584, 24584, 24584, 24584, 18310, 
993     18310, 30728, 30728, 30728, 16256, 16256, 16256, 16256, 18310, 18310, 
994     18310, 18310, 21784, 21784, 21784, 18052, 21784, 21784, 21784, 922, 
995     15109, 18310, 16256, 16256, 43275, 43403, 43531, 43659, 43787, 29579, 
996     29707, 29835, 29963, 30091, 30219, 30347, 30475, 30603, 43915, 29451, 
997     29579, 29707, 29835, 29963, 30091, 30219, 30347, 30475, 30603, 16256, 
998     16256, 16256, 16256, 16256, 16256, 664, 664, 664, 664, 664, 
999     664, 22036, 664, 664, 664, 664, 18310, 18310, 18310, 524, 
1000     16256, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 15109, 
1001     18310, 16256, 16256, 16256, 16256, 16256, 16256, 20097, 20097, 20097, 
1002     10498, 10396, 20097, 10396, 10396, 10396, 20097, 20097, 20097, 20097, 
1003     20097, 10396, 10396, 3225, 10396, 3225, 10396, 10396, 10396, 10396, 
1004     10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 
1005     10396, 10396, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 
1006     3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3161, 3161, 
1007     3161, 3161, 3161, 3161, 3225, 3225, 1109, 1238, 3225, 3225, 
1008     3225, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 
1009     1238, 1109, 1238, 1109, 1238, 3225, 3225, 3161, 3161, 3161, 
1010     3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3161, 
1011     3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, 
1012     3225, 3161, 3225, 3161, 3225, 3161, 3161, 3161, 3161, 3161, 
1013     3161, 3161, 3161, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 
1014     3161, 3161, 3161, 3225, 3161, 3225, 3161, 3161, 3161, 3225, 
1015     3225, 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3161, 
1016     3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3225, 3161, 
1017     3225, 3225, 3161, 3161, 3225, 3225, 3225, 3225, 3161, 3161, 
1018     3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 
1019     3161, 3225, 3225, 3161, 3225, 3161, 3225, 3225, 3161, 3225, 
1020     3161, 3161, 3161, 3161, 3225, 3225, 3225, 3161, 3161, 3161, 
1021     3161, 3161, 3161, 3225, 3225, 3225, 3161, 3225, 3225, 3225, 
1022     3225, 3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3161, 
1023     3161, 3161, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225, 
1024     3225, 3225, 3225, 3225, 3225, 3225, 3161, 3225, 3225, 3225, 
1025     3225, 3225, 3225, 3225, 3161, 3161, 3225, 3225, 3225, 3225, 
1026     3225, 3225, 3225, 10396, 10396, 10396, 10396, 10396, 3225, 3225, 
1027     10396, 10396, 10396, 10396, 20097, 10396, 35969, 10396, 20097, 10396, 
1028     36097, 36225, 20097, 20097, 10908, 10498, 18052, 18052, 10498, 10498, 
1029     10498, 10498, 10498, 10498, 10498, 10498, 10498, 10498, 16256, 16256, 
1030     16256, 16256, 30978, 30978, 30978, 30978, 30978, 30978, 30978, 30978, 
1031     31105, 31105, 31105, 31105, 31105, 31105, 31105, 31105, 30978, 30978, 
1032     30978, 30978, 30978, 30978, 16256, 16256, 31105, 31105, 31105, 31105, 
1033     31105, 31105, 16256, 16256, 11906, 30978, 19074, 30978, 19074, 30978, 
1034     19074, 30978, 16256, 31105, 16256, 31105, 16256, 31105, 16256, 31105, 
1035     31234, 31234, 31362, 31362, 31362, 31362, 31490, 31490, 31618, 31618, 
1036     31746, 31746, 31874, 31874, 16256, 16256, 32002, 32002, 32002, 32002, 
1037     32002, 32002, 32002, 32002, 32131, 32131, 32131, 32131, 32131, 32131, 
1038     32131, 32131, 30978, 30978, 11906, 32258, 11906, 16256, 11906, 19074, 
1039     31105, 31105, 32385, 32385, 32515, 6683, 32642, 6683, 30978, 30978, 
1040     19074, 19074, 16256, 16256, 11906, 19074, 31105, 31105, 32897, 32897, 
1041     16256, 6683, 6683, 6683, 30978, 30978, 19074, 19074, 11906, 20738, 
1042     11906, 19074, 31105, 31105, 33025, 33025, 21121, 6683, 6683, 6683, 
1043     524, 524, 524, 524, 524, 524, 524, 33452, 524, 524, 
1044     524, 33548, 24464, 24464, 29328, 33680, 22036, 33844, 22036, 22036, 
1045     22036, 22036, 664, 664, 33949, 34078, 27541, 33949, 33949, 34078, 
1046     27541, 33949, 1432, 664, 1432, 16256, 664, 1432, 664, 664, 
1047     22036, 27541, 27670, 27541, 27670, 27541, 27670, 792, 792, 792, 
1048     792, 792, 664, 664, 664, 664, 10717, 11614, 664, 664, 
1049     664, 664, 6807, 35083, 10498, 16256, 16256, 35211, 35339, 35467, 
1050     35595, 35723, 35851, 1305, 1305, 3225, 1109, 1238, 10498, 35083, 
1051     11403, 11019, 11147, 35211, 35339, 35467, 35595, 35723, 35851, 1305, 
1052     1305, 3225, 1109, 1238, 16256, 922, 922, 922, 922, 922, 
1053     922, 922, 922, 922, 922, 922, 922, 922, 922, 922, 
1054     922, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
1055     16256, 16256, 16256, 16256, 16256, 18310, 18310, 18310, 18310, 18310, 
1056     18310, 18310, 18310, 18310, 18310, 18310, 18310, 18310, 21511, 21511, 
1057     21511, 3225, 3225, 3225, 3161, 3161, 3161, 3161, 3225, 3225, 
1058     3225, 3225, 3225, 3161, 3161, 3161, 3225, 3225, 3161, 3161, 
1059     3161, 3161, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 3225, 
1060     3225, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, 
1061     3225, 3161, 3161, 3161, 3225, 3225, 3161, 3161, 3225, 3225, 
1062     3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 
1063     3161, 3161, 3161, 3161, 3161, 3161, 3225, 3225, 3225, 3225, 
1064     3225, 3161, 3161, 3225, 3225, 3225, 3225, 3161, 3161, 3161, 
1065     3161, 3225, 3161, 1305, 1305, 3225, 3161, 3161, 3225, 3225, 
1066     3225, 3161, 3161, 3161, 3161, 3225, 3161, 3225, 3161, 3225, 
1067     3225, 3225, 3225, 3161, 3161, 3161, 3161, 3161, 3161, 3161, 
1068     3161, 3161, 3161, 3161, 3161, 3161, 3225, 3161, 3161, 3225, 
1069     3225, 1109, 1238, 1109, 1238, 3161, 3225, 3225, 3225, 3225, 
1070     20097, 10498, 10498, 10498, 10498, 10396, 3225, 16256, 16256, 16256, 
1071     16256, 36362, 36490, 36618, 36746, 36874, 37002, 37130, 37258, 37386, 
1072     37514, 37642, 37770, 37898, 38026, 38154, 38282, 38410, 38538, 38666, 
1073     38794, 38922, 39050, 39178, 39306, 39434, 39562, 39690, 39818, 39946, 
1074     40074, 40202, 40330, 40458, 40586, 40714, 40842, 16256, 16256, 16256, 
1075     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 3225, 
1076     10396, 10396, 3225, 10396, 10396, 3225, 10396, 10396, 10396, 10396, 
1077     10396, 10396, 10396, 3225, 10396, 10396, 10396, 10396, 10396, 10396, 
1078     10396, 10396, 3161, 3161, 3161, 3161, 10396, 10396, 10396, 10396, 
1079     10396, 10396, 10396, 1109, 1238, 10396, 10396, 10396, 10396, 10396, 
1080     10396, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 
1081     21404, 21404, 21404, 21404, 21404, 21404, 21404, 10396, 10396, 16256, 
1082     21404, 48267, 48395, 48523, 48651, 48779, 48907, 49035, 49163, 49291, 
1083     49419, 49547, 49675, 49803, 49931, 50059, 30347, 30475, 30603, 43915, 
1084     10396, 16256, 16256, 16256, 10396, 10396, 10396, 10396, 10396, 10396, 
1085     10396, 10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 16256, 
1086     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
1087     16256, 16256, 16256, 41355, 41483, 41611, 41739, 41867, 41995, 42123, 
1088     42251, 11403, 11019, 11147, 35211, 35339, 35467, 35595, 35723, 35851, 
1089     40971, 41099, 41227, 41355, 41483, 41611, 41739, 41867, 41995, 42123, 
1090     42251, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 
1091     21404, 21404, 21404, 10396, 10396, 10396, 10396, 21404, 21404, 21404, 
1092     21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 21404, 
1093     21404, 21404, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 
1094     16256, 16256, 16256, 16256, 25995, 26123, 26251, 26379, 45707, 45835, 
1095     45963, 46091, 46219, 26763, 21404, 21404, 21404, 21404, 21404, 21404, 
1096     42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 42396, 
1097     42396, 42396, 42396, 42396, 42396, 42396, 42524, 42524, 42524, 42524, 
1098     42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 42524, 
1099     42524, 42524, 35083, 42635, 42763, 42891, 43019, 43147, 22036, 18052, 
1100     18052, 18052, 18052, 18052, 10396, 10396, 45322, 45450, 45578, 18052, 
1101     15109, 664, 10396, 10396, 10396, 16256, 16256, 16256, 10396, 16256, 
1102     10396, 10396, 10396, 10396, 10396, 10396, 10396, 16256, 3225, 3225, 
1103     3161, 3161, 3161, 3161, 1109, 1238, 1109, 1238, 1109, 1238, 
1104     16256, 16256, 16256, 16256, 524, 664, 664, 664, 10396, 18052, 
1105     15109, 44042, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, 
1106     10396, 10396, 1109, 1238, 1109, 1238, 1109, 1238, 1109, 1238, 
1107     22036, 27541, 27670, 27670, 10396, 46347, 46475, 46603, 46731, 46859, 
1108     46987, 47115, 47243, 47371, 47499, 47627, 47755, 47883, 48011, 48139, 
1109     50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 50195, 
1110     50195, 50195, 50195, 50195, 50195, 50195, 50322, 50322, 50322, 50322, 
1111     50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 50322, 
1112     50322, 50322, 11906, 11906, 11906, 19074, 19074, 11906, 11906, 16256, 
1113     16256, 16256, 16256, 16256, 16256, 16256, 16256, 16256, 22277, 22277, 
1114     22277, 22277, 22277, 22277, 22277, 22277, 22277, 1305, 22277, 22277, 
1115     22277, 22277, 22277, 22277, 22277, 16256, 22277, 22277, 22277, 22277, 
1116     22277, 16256, 22277, 16256, 664, 22036, 22036, 6807, 6807, 27541, 
1117     27670, 27541, 27670, 27541, 27670, 27541, 27670, 27541, 27670, 27541, 
1118     27670, 664, 664, 27541, 27670, 664, 664, 664, 664, 6807, 
1119     6807, 6807, 664, 664, 1305, 1556, 3225, 3225, 3225, 16256, 
1120     664, 922, 792, 664, 16256, 16256, 16256, 16256, 8834, 8962, 
1121     9090, 9218, 9346, 9474, 9602, 9730, 9858, 9986, 10114, 1109, 
1122     3225, 1238, 3225, 1109, 922, 922, 3225, 6683, 10396, 922, 
1123     922, 16256, 10396, 3225, 3225, 3225, 3225, 10396, 10396, 16256, 
1124 };
1125
1126 static const jchar data1[] = {
1127     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1128     5, 5, 128, 5, 5, 5, 5, 5, 5, 5, 
1129     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1130     5, 5, 5, 5, 5, 5, 5, 5, 5, 128, 
1131     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1132     5, 5, 5, 5, 5, 5, 5, 5, 5, 128, 
1133     5, 5, 128, 5, 5, 5, 5, 5, 5, 5, 
1134     5, 5, 5, 5, 5, 5, 5, 128, 128, 5, 
1135     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1136     5, 5, 5, 128, 128, 128, 128, 128, 128, 128, 
1137     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1138     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1139     128, 128, 128, 128, 128, 128, 128, 6529, 6529, 6529, 
1140     6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 
1141     6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 
1142     6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 6529, 
1143     6529, 6529, 6529, 6529, 6529, 6529, 6529, 6658, 6658, 6658, 
1144     6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 
1145     6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 6658, 
1146     6658, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1147     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1148     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1149     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1150     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1151     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1152     5, 5, 5, 5, 5, 128, 128, 128, 128, 128, 
1153     280, 408, 540, 128, 128, 128, 128, 651, 779, 907, 
1154     1035, 1163, 1291, 1419, 1547, 1675, 1803, 1931, 2059, 2187, 
1155     2315, 2443, 2571, 2699, 2827, 2955, 3083, 3211, 3339, 3467, 
1156     3595, 3723, 3851, 3979, 4107, 4235, 4363, 4491, 4619, 4747, 
1157     4875, 5003, 5131, 5259, 5387, 5515, 5643, 5771, 5899, 6027, 
1158     6155, 6283, 128, 128, 128, 540, 540, 540, 540, 540, 
1159     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1160     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1161     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1162     540, 540, 8200, 8200, 8326, 8326, 8326, 540, 540, 540, 
1163     8200, 8200, 8200, 8200, 8200, 8200, 8464, 8464, 8464, 8464, 
1164     8464, 8464, 8464, 8464, 8326, 8326, 8326, 8326, 8326, 540, 
1165     540, 8326, 8326, 8326, 8326, 8326, 8326, 8326, 540, 540, 
1166     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1167     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1168     540, 540, 540, 540, 540, 540, 540, 540, 8326, 8326, 
1169     8326, 8326, 540, 540, 540, 540, 540, 540, 540, 540, 
1170     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1171     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1172     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1173     540, 128, 128, 128, 540, 540, 540, 540, 540, 540, 
1174     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1175     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1176     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1177     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1178     540, 540, 540, 540, 540, 540, 540, 540, 540, 540, 
1179     540, 540, 540, 540, 540, 540, 540, 540, 128, 128, 
1180     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1181     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1182     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1183     128, 128, 5, 5, 5, 5, 5, 5, 5, 5, 
1184     5, 5, 6410, 128, 128, 128, 128, 128, 128, 128, 
1185     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1186     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1187     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1188     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1189     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1190     128, 128, 128, 128, 128, 128, 128, 5, 5, 5, 
1191     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1192     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1193     5, 5, 5, 5, 5, 5, 5, 5, 128, 651, 
1194     1163, 1803, 2315, 128, 128, 128, 128, 128, 128, 128, 
1195     128, 128, 128, 128, 128, 5, 5, 5, 5, 5, 
1196     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1197     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1198     5, 5, 5, 5, 5, 128, 280, 128, 128, 128, 
1199     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1200     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1201     128, 128, 128, 128, 128, 128, 128, 128, 128, 5, 
1202     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1203     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1204     5, 5, 5, 5, 5, 5, 5, 5, 5, 128, 
1205     128, 6793, 6921, 7049, 7177, 7305, 7433, 7561, 7689, 7817, 
1206     7945, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1207     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1208     128, 128, 128, 8069, 8069, 8069, 8069, 8069, 8069, 128, 
1209     128, 8069, 128, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 
1210     8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 
1211     8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 
1212     8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 8069, 
1213     8069, 8069, 8069, 8069, 8069, 8069, 8069, 128, 8069, 8069, 
1214     128, 128, 128, 8069, 128, 128, 8069, 8604, 8604, 8604, 
1215     8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
1216     8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
1217     8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
1218     8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
1219     8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
1220     8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 8604, 
1221     8604, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1222     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1223     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1224     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1225     128, 128, 8705, 8985, 8834, 8834, 8834, 8834, 8834, 8834, 
1226     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1227     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8985, 
1228     8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, 
1229     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
1230     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
1231     8705, 8985, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1232     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1233     8834, 8834, 8834, 8834, 128, 8834, 8834, 8834, 8834, 8834, 
1234     8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, 
1235     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
1236     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
1237     8705, 8705, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1238     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1239     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 
1240     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
1241     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
1242     8705, 8705, 8705, 8705, 8834, 8834, 8834, 8834, 8834, 8834, 
1243     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1244     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1245     128, 128, 128, 128, 8705, 8705, 8705, 8705, 8705, 8705, 
1246     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
1247     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 8834, 
1248     8834, 8834, 8834, 8834, 8834, 128, 8834, 8834, 8834, 8834, 
1249     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1250     8834, 8834, 8834, 8834, 8705, 8705, 8705, 8705, 8705, 8705, 
1251     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
1252     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 128, 8705, 
1253     128, 128, 128, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
1254     128, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1255     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1256     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8705, 8705, 8705, 
1257     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 
1258     8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 8834, 8834, 
1259     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1260     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1261     8834, 8834, 8834, 8705, 128, 8705, 8705, 128, 128, 8705, 
1262     128, 128, 8705, 8705, 128, 128, 8705, 8705, 8705, 8705, 
1263     128, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8705, 8834, 
1264     8834, 8834, 8834, 128, 8834, 128, 8834, 8834, 8834, 8834, 
1265     8705, 8705, 128, 8705, 8705, 8705, 8705, 128, 128, 8705, 
1266     8705, 8705, 8705, 8705, 8705, 8705, 8705, 128, 8705, 8705, 
1267     8705, 8705, 8705, 8705, 8705, 128, 8834, 8834, 8834, 8834, 
1268     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1269     8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 8834, 
1270     8834, 8834, 8705, 8705, 128, 8705, 8705, 8705, 8705, 128, 
1271     8834, 8834, 8834, 8985, 8834, 8834, 8834, 8834, 8834, 8834, 
1272     128, 128, 128, 128, 9097, 9225, 9353, 9481, 9609, 9737, 
1273     9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, 
1274     9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, 
1275     9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, 
1276     9865, 9993, 10121, 10249, 9097, 9225, 9353, 9481, 9609, 9737, 
1277     9865, 9993, 10121, 10249, 
1278 };
1279
1280 static const jchar data2[] = {
1281     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1282     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1283     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1284     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1285     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1286     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1287     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1288     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1289     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1290     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1291     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1292     5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 
1293     5, 5, 5, 5, 5, 5, 5, 5, 128, 128, 
1294     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1295     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1296     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1297     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1298     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1299     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1300     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1301     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1302     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1303     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1304     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1305     128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 
1306     128, 128, 128, 128, 128, 128, 
1307 };
1308
1309 static const jchar data14[] = {
1310     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1311     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1312     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1313     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1314     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1315     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1316     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1317     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1318     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1319     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1320     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1321     262, 262, 262, 262, 262, 262, 262, 262, 262, 262, 
1322     262, 262, 262, 262, 262, 262, 262, 262, 0, 0, 
1323     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1324     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1325     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1326     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1327     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1328     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1329     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1330     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1331     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1332     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1333     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1334     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1335     0, 0, 0, 0, 0, 0, 144, 0, 0, 0, 
1336     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1337     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1338     0, 0, 0, 0, 0, 0, 0, 144, 144, 144, 
1339     144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
1340     144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
1341     144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
1342     144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
1343     144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
1344     144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
1345     144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
1346     144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
1347     144, 144, 144, 144, 144, 144, 144, 144, 144, 144, 
1348     144, 144, 144, 
1349 };
1350
1351 static const int data_length[] = {
1352     3960, 1504, 256, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 383, -1, -1, };
1353 static const jchar* data[] = {
1354     data0, data1, data2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
1355     NULL, NULL, NULL, NULL, data14, NULL, NULL};
1356
1357
1358 /**
1359  * This is the attribute table for computing the numeric value of a
1360  * character.  The value is -1 if Unicode does not define a value, -2
1361  * if the value is not a positive integer, otherwise it is the value.
1362  */
1363 static const jshort numValue0[] = {
1364     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1365     -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, 
1366     10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 
1367     23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 
1368     -1, -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 
1369     21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 
1370     34, 35, -1, -1, -1, -1, -1, -1, 2, 3, -1, 1, -1, 
1371     -2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1372     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1373     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1374     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1375     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1376     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1377     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 0, 1, 2, 
1378     3, 4, 5, 6, 7, 8, 9, -1, -1, -1, -1, 0, 1, 
1379     2, 3, 4, 5, 6, 7, 8, 9, 1, 2, 3, 4, -1, 
1380     16, 10, 100, 1000, -1, -1, -2, -1, -1, 20, 30, 40, 50, 
1381     60, 70, 80, 90, 10000, 17, 18, 19, -1, 0, 1, 2, 3, 
1382     4, 5, 6, 7, 8, 9, -1, -1, -1, -1, -1, -1, -1, 
1383     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1384     -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 
1385     -1, 0, 4, 5, 6, 7, 8, 9, -1, -1, -1, 1, 2, 
1386     3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 50, 100, 500, 
1387     1000, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 
1388     50, 100, 500, 1000, 1000, 5000, 10000, -1, 10, 11, 12, 13, 14, 
1389     15, 16, 17, 18, 19, 20, -1, -1, 11, 12, 13, 14, 15, 
1390     16, 17, 18, 19, 20, 10, 0, 1, 2, 3, 4, 5, 6, 
1391     7, 8, 9, 10, 20, 30, 5, 6, 7, 8, 9, 21, 22, 
1392     23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 
1393     36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 
1394     49, 50, -1, -1, -1, 
1395 };
1396
1397 static const jshort numValue1[] = {
1398     -1, -1, -1, -1, -1, 1, 2, 3, 4, 5, 6, 7, 8, 
1399     9, 10, 20, 30, 40, 50, 60, 70, 80, 90, 100, 200, 300, 
1400     400, 500, 600, 700, 800, 900, 1000, 2000, 3000, 4000, 5000, 6000, 7000, 
1401     8000, 9000, 10000, 20000, 30000, -3, -4, -5, -6, -7, -8, -1, -1, 
1402     -1, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, -1, -1, 
1403     -1, -1, -1, -1, -1, -1, 0, 1, 2, 3, 4, 5, 6, 
1404     7, 8, 9, 
1405 };
1406
1407 static const jshort numValue2[] = {
1408     -1, -1, 
1409 };
1410
1411 static const jshort numValue14[] = {
1412     -1, -1, -1, 
1413 };
1414
1415 static const int numValue_length[] = {
1416     395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
1417 static const jshort* numValue[] = {
1418     numValue0, numValue1, numValue2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
1419     NULL, NULL, NULL, NULL, numValue14, NULL, NULL};
1420
1421
1422
1423 /**
1424  * This is the attribute table for computing the uppercase representation
1425  * of a character.  The value is the difference between the character and
1426  * its uppercase version.
1427  */
1428 static const jshort upper0[] = {
1429     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1430     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1431     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1432     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1433     0, 0, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 
1434     -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, -32, 
1435     -32, -32, 0, 0, 0, 0, 0, 0, 0, 0, 743, 0, 0, 
1436     0, 0, 0, -32, 121, 0, -1, 0, -232, 0, -300, 0, 0, 
1437     0, 0, 0, 0, 0, 97, 0, 0, 0, 130, 0, 0, 0, 
1438     0, 0, 56, 0, -1, -2, -79, 0, 0, 0, 0, -210, -206, 
1439     -205, -202, -203, -207, -209, -211, -213, -214, -218, -217, -219, 0, 0, 
1440     0, 84, 0, 0, 0, 0, 0, -38, -37, -31, -64, -63, -62, 
1441     -57, 0, -47, -54, -86, -80, 7, 0, -96, 0, 0, 0, 0, 
1442     0, 0, -48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1443     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1444     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1445     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1446     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1447     0, 0, 0, 0, 0, 0, 0, -59, 8, 0, 74, 86, 100, 
1448     128, 112, 126, 8, 0, 9, 0, 0, -7205, 0, 0, 0, 0, 
1449     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1450     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1451     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1452     0, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, -16, 
1453     -16, -16, -16, -16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1454     0, 0, 0, 0, 0, 0, 0, -26, 0, 0, 0, 0, 0, 
1455     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1456     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1457     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1458     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1459     0, 0, 0, 0, 0, 
1460 };
1461
1462 static const jshort upper1[] = {
1463     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1464     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1465     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1466     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1467     -40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1468     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1469     0, 0, 0, 
1470 };
1471
1472 static const jshort upper2[] = {
1473     0, 0, 
1474 };
1475
1476 static const jshort upper14[] = {
1477     0, 0, 0, 
1478 };
1479
1480 static const int upper_length[] = {
1481     395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
1482 static const jshort* upper[] = {
1483     upper0, upper1, upper2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
1484     NULL, NULL, NULL, NULL, upper14, NULL, NULL};
1485
1486
1487 /**
1488  * This is the attribute table for computing the lowercase representation
1489  * of a character.  The value is the difference between the character and
1490  * its lowercase version.
1491  */
1492 static const jshort lower0[] = {
1493     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1494     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1495     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
1496     32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 
1497     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1498     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1499     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1500     0, 32, 0, 0, 0, 1, 0, -199, 0, -121, 0, 210, 206, 
1501     205, 79, 202, 203, 207, 0, 211, 209, 213, 0, 214, 218, 217, 
1502     219, 0, 0, 2, 1, 0, 0, -97, -56, -130, 0, 0, 0, 
1503     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1504     0, 0, 38, 37, 64, 63, 0, 0, 0, 0, 0, 0, 0, 
1505     0, 0, 0, 0, 0, 0, 0, -60, 0, -7, 80, 0, 0, 
1506     48, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1507     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1508     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1509     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1510     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1511     0, 0, 0, 0, 0, 0, 0, 0, 0, -8, 0, 0, 0, 
1512     0, 0, 0, 0, -8, 0, -74, -9, 0, -86, -100, -112, -128, 
1513     -126, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1514     0, 0, 0, 0, 0, 0, 0, 0, -7517, -8383, -8262, 16, 16, 
1515     16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 16, 
1516     16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1517     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1518     0, 0, 0, 0, 0, 0, 26, 0, 0, 0, 0, 0, 0, 
1519     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1520     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1521     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1522     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1523     0, 0, 0, 0, 0, 
1524 };
1525
1526 static const jshort lower1[] = {
1527     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1528     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1529     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1530     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 40, 
1531     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1532     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1533     0, 0, 0, 
1534 };
1535
1536 static const jshort lower2[] = {
1537     0, 0, 
1538 };
1539
1540 static const jshort lower14[] = {
1541     0, 0, 0, 
1542 };
1543
1544 static const int lower_length[] = {
1545     395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
1546 static const jshort* lower[] = {
1547     lower0, lower1, lower2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
1548     NULL, NULL, NULL, NULL, lower14, NULL, NULL};
1549
1550
1551 /**
1552  * This is the attribute table for computing the directionality class
1553  * of a character.  At present, the value is in the range 0 - 18 if the
1554  * character has a direction, otherwise it is -1.
1555  */
1556 static const jbyte direction0[] = {
1557     9, 11, 10, 12, 12, 13, 5, 5, 13, 13, 5, 7, 5, 4, 3, 3, 3, 3, 3, 
1558     3, 3, 3, 3, 3, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1559     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 
1560     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1561     0, 0, 0, 0, 7, 13, 0, 13, 13, 5, 3, 3, 0, 3, 13, 13, 0, 0, 0, 
1562     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1563     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, 
1564     0, 0, 0, 0, 0, 0, 0, 0, 0, 13, 8, 8, 0, 0, 0, 0, 0, 0, 0, 
1565     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 8, 0, 0, 
1566     0, 13, 1, 1, 2, 2, 2, 2, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 
1567     2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1568     0, 0, 0, 0, 0, 0, 13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1569     0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 8, 0, 0, 0, 0, 0, 0, 
1570     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 12, 9, 1, 13, 13, 
1571     13, 12, 10, 14, 16, 18, 15, 17, 3, 3, 3, 3, 3, 3, 3, 0, 0, 0, 0, 
1572     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1573     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 3, 3, 
1574     3, 3, 3, 3, 3, 3, 3, 3, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 
1575     13, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1576     0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 
1577     13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 0, 0, 2, 
1578 };
1579
1580 static const jbyte direction1[] = {
1581     0, -1, 0, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1582     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1583     0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 
1584     0, 0, 0, 0, 0, 0, 1, 0, 8, 9, 13, 0, 0, 0, 3, 3, 3, 3, 3, 
1585     3, 3, 3, 3, 3, 
1586 };
1587
1588 static const jbyte direction2[] = {
1589     0, -1, 
1590 };
1591
1592 static const jbyte direction14[] = {
1593     -1, 9, 8, 
1594 };
1595
1596 static const int direction_length[] = {
1597     395, 81, 2, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, 3, -1, -1, };
1598 static const jbyte* direction[] = {
1599     direction0, direction1, direction2, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 
1600     NULL, NULL, NULL, NULL, direction14, NULL, NULL};
1601
1602
1603 /**
1604  * This is the listing of titlecase special cases (all other character
1605  * can use <code>upper</code> to determine their titlecase).  The listing
1606  * is a sequence of character pairs; converting the first character of the
1607  * pair to titlecase produces the second character.
1608  */
1609 static const jchar title[] = {
1610     452, 453, 453, 453, 454, 453, 455, 456, 456, 456, 
1611     457, 456, 458, 459, 459, 459, 460, 459, 497, 498, 
1612     498, 498, 499, 498, 
1613   };
1614 /** Length of title. */
1615 static const int title_length = 24;
1616
1617 #endif /* __JAVA_CHARTABLES_H__ */