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 ***
5 This file is part of GNU Classpath.
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)
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.
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
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
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. */
39 #ifndef __JAVA_CHARTABLES_H__
40 #define __JAVA_CHARTABLES_H__
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
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).
60 // This file should only be included by natCharacter.cc
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.
67 static const jint largenums
[] = {
68 40000, 50000, 60000, 70000, 80000, 90000, };
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.
76 static const int shift
[] = {
77 4, 6, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 7, 8, 8, };
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>.
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,
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,
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,
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,
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
};
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.
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,
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,
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,
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,
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
};
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.
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,
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,
1407 static const jshort numValue2
[] = {
1411 static const jshort numValue14
[] = {
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
};
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.
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,
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,
1472 static const jshort upper2
[] = {
1476 static const jshort upper14
[] = {
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
};
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.
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,
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,
1536 static const jshort lower2
[] = {
1540 static const jshort lower14
[] = {
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
};
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.
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,
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,
1588 static const jbyte direction2
[] = {
1592 static const jbyte direction14
[] = {
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
};
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.
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,
1614 /** Length of title. */
1615 static const int title_length
= 24;
1617 #endif /* __JAVA_CHARTABLES_H__ */