Chameleon

Chameleon Svn Source Tree

Root/branches/xZenu/src/util/doxygen/qtools/qstring.cpp

Source at commit 1322 created 12 years 8 months ago.
By meklort, Add doxygen to utils folder
1/****************************************************************************
2**
3**
4** Implementation of the QString class and related Unicode functions
5**
6** Created : 920722
7**
8** Copyright (C) 1992-2000 Trolltech AS. All rights reserved.
9**
10** This file is part of the tools module of the Qt GUI Toolkit.
11**
12** This file may be distributed under the terms of the Q Public License
13** as defined by Trolltech AS of Norway and appearing in the file
14** LICENSE.QPL included in the packaging of this file.
15**
16** This file may be distributed and/or modified under the terms of the
17** GNU General Public License version 2 as published by the Free Software
18** Foundation and appearing in the file LICENSE.GPL included in the
19** packaging of this file.
20**
21** Licensees holding valid Qt Enterprise Edition or Qt Professional Edition
22** licenses may use this file in accordance with the Qt Commercial License
23** Agreement provided with the Software.
24**
25** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
26** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
27**
28** See http://www.trolltech.com/pricing.html or email sales@trolltech.com for
29** information about Qt Commercial License Agreements.
30** See http://www.trolltech.com/qpl/ for QPL licensing information.
31** See http://www.trolltech.com/gpl/ for GPL licensing information.
32**
33** Contact info@trolltech.com if any conditions of this licensing are
34** not clear to you.
35**
36**********************************************************************/
37
38// Don't define it while compiling this module, or USERS of Qt will
39// not be able to link.
40#ifdef QT_NO_CAST_ASCII
41#undef QT_NO_CAST_ASCII
42#endif
43
44#include "qstring.h"
45#include "qregexp.h"
46#include "qdatastream.h"
47#include "qtextcodec.h"
48#include "qstack.h"
49#include <stdio.h>
50#include <stdlib.h>
51#include <stdarg.h>
52#include <ctype.h>
53#include <limits.h>
54
55
56/* -------------------------------------------------------------------------
57 * unicode information
58 * these tables are generated from the unicode reference file
59 * ftp://ftp.unicode.org/Public/3.0-Update/UnicodeData-3.0.0.html
60 *
61 * Lars Knoll <knoll@mpi-hd.mpg.de>
62 * -------------------------------------------------------------------------
63 */
64
65/* Perl script to generate (run perl -x tools/qstring.cpp)
66
67#!perl
68
69sub numberize
70{
71 my(%r, $n, $id);
72 for $id ( @_ ) {
73$id="" if $id eq "EMPTY";
74$r{$id}=$n++;
75 }
76 return %r;
77}
78
79
80# Code to integer mappings...
81#
82%category_code = numberize(qw{
83 EMPTY
84 Mn Mc Me
85 Nd Nl No
86 Zs Zl Zp
87 Cc Cf Cs Co Cn
88
89 Lu Ll Lt Lm Lo
90 Pc Pd Ps Pe Pi Pf Po
91 Sm Sc Sk So
92});
93%bidi_category_code = numberize(qw{
94 L R EN ES ET AN CS B S WS ON LRE LRO AL RLE RLO PDF NSM BN});
95%character_decomposition_tag = numberize(qw{
96 <single> <canonical> <font> <noBreak> <initial> <medial>
97 <final> <isolated> <circle> <super> <sub> <vertical>
98 <wide> <narrow> <small> <square> <compat> <fraction>
99});
100%mirrored_code = numberize(qw{N Y});
101
102%joining_code = numberize(qw{U D R C});
103
104# Read data into hashes...
105#
106open IN, "UnicodeData.txt";
107$position = 1;
108while (<IN>) {
109 @fields = split /;/;
110 $code = shift @fields;
111 for $n (qw{
112 name category combining_class bidi_category
113 character_decomposition decimal_digit_value digit_value
114 numeric_value mirrored oldname comment
115 uppercase lowercase titlecase})
116 {
117$id = shift @fields;
118$codes = "${n}_code";
119if ( defined %$codes && defined $$codes{$id} ) {
120 $id = $$codes{$id};
121}
122${$n}{$code}=$id;
123 }
124 $decomp = $character_decomposition{$code};
125 if ( length $decomp == 0 ) {
126$decomp = "<single>";
127 }
128 if (substr($decomp, 0, 1) ne '<') {
129$decomp = "<canonical> " . $decomp;
130 }
131 @fields = split(" ", $decomp);
132 $tag = shift @fields;
133 $tag = $character_decomposition_tag{$tag};
134 $decomp = join( ", 0x", @fields );
135 $decomp = "0x".$decomp;
136 $decomposition{$code} = $decomp;
137 $decomposition_tag{$code} = $tag;
138 $decomposition_pos{$code} = $position;
139 $len = scalar(@fields);
140 $decomposition_len{$code} = $len;
141
142# we use canonical decompositions longer than 1 char
143# and all arabic ligatures for the ligature table
144 if(($len > 1 and $tag == 1) or ($tag > 3 and $tag < 8)) {
145# ligature to add...
146$start = shift @fields;
147$ligature{$start} = $ligature{$start}." ".$code;
148 }
149
150# adjust position
151 if($len != 0) {
152$position += $len + 3;
153 }
154
155
156}
157
158open IN2, "ArabicShaping.txt";
159$position = 1;
160while (<IN2>) {
161 @fields = split /;/;
162 $code = shift @fields;
163 $dummy = shift @fields;
164 $join = shift @fields;
165 $join =~ s/ //g;
166 $join = $joining_code{$join};
167 $joining{$code}=$join;
168}
169
170# Build pages...
171#
172$rowtable_txt =
173 "static const Q_UINT8 * const unicode_info[256] = {";
174for $row ( 0..255 ) {
175 $nonzero=0;
176 $txt = "";
177 for $cell ( 0..255 ) {
178$code = sprintf("%02X%02X",$row,$cell);
179$info = $category{$code};
180$info = 0 if !defined $info;
181$txt .= "\n " if $cell%8 == 0;
182$txt .= "$info, ";
183 }
184 $therow = $row{$txt};
185 if ( !defined $therow ) {
186$size+=256;
187$therow = "ui_".sprintf("%02X",$row);
188$rowtext{$therow} =
189 "static const Q_UINT8 ${therow}[] = {$txt\n};\n\n";
190$row{$txt}=$therow;
191 }
192 $rowtable_txt .= "\n " if $row%8 == 0;
193 $rowtable_txt .= "$therow, ";
194}
195
196print "// START OF GENERATED DATA\n\n";
197print "#ifndef QT_NO_UNICODETABLES\n\n";
198
199# Print pages...
200#
201for $r ( sort keys %rowtext ) {
202 print $rowtext{$r};
203}
204print "$rowtable_txt\n};\n";
205$size += 256*4;
206print "// $size bytes\n\n";
207
208# Build decomposition tables
209#
210$rowtable_txt =
211 "static const Q_UINT16 * const decomposition_info[256] = {";
212$table_txt =
213 "static const Q_UINT16 decomposition_map[] = {\n 0,\n";
214for $row ( 0..255 ) {
215 $nonzero=0;
216 $txt = "";
217 for $cell ( 0..255 ) {
218$code = sprintf("%02X%02X",$row,$cell);
219$txt .= "\n " if $cell%8 == 0;
220if( $decomposition_tag{$code} != 0 ) {
221 $txt .= " $decomposition_pos{$code},";
222 $table_txt .= " $decomposition_tag{$code},";
223 $table_txt .= " 0x$code,";
224 $table_txt .= " $decomposition{$code}, 0,\n";
225 $size += 2 * $decomposition_len{$code} + 6;
226} else {
227 $txt .= " 0,";
228}
229 }
230 $therow = $row{$txt};
231 if ( !defined $therow ) {
232$size+=512;
233$therow = "di_".sprintf("%02X",$row);
234$dec_rowtext{$therow} =
235 "static const Q_UINT16 ${therow}[] = {$txt\n};\n\n";
236$row{$txt}=$therow;
237 }
238 $rowtable_txt .= "\n " if $row%8 == 0;
239 $rowtable_txt .= "$therow, ";
240}
241
242# Print decomposition tables
243#
244print "$table_txt\n};\n\n";
245for $r ( sort keys %dec_rowtext ) {
246 print $dec_rowtext{$r};
247}
248print "$rowtable_txt\n};\n";
249$size += 256*4;
250print "// $size bytes\n\n";
251
252
253# build ligature tables
254#
255$size = 0;
256$position = 1;
257$rowtable_txt =
258 "static const Q_UINT16 * const ligature_info[256] = {";
259$table_txt =
260 "static const Q_UINT16 ligature_map[] = {\n 0,\n";
261for $lig_row ( 0..255 ) {
262 $nonzero=0;
263 $txt = "";
264 for $cell ( 0..255 ) {
265$code = sprintf("%02X%02X",$lig_row,$cell);
266$txt .= "\n " if $cell%8 == 0;
267if( defined $ligature{$code} ) {
268 $txt .= " $position,";
269 @ligature = split(" ", $ligature{$code});
270# we need to sort ligatures according to their length.
271# long ones have to come first!
272 @ligature_sort = sort { $decomposition_len{$b} <=> $decomposition_len{$a} } @ligature;
273# now replace each code by it's position in
274# the decomposition map.
275 undef(@lig_pos);
276 for $n (@ligature_sort) {
277push(@lig_pos, $decomposition_pos{$n});
278 }
279# debug info
280 if( 0 ) {
281print "ligatures: $ligature{$code}\n";
282$sort = join(" ", @ligature_sort);
283print "sorted : $sort\n";
284 }
285 $lig = join(", ", @lig_pos);
286 $table_txt .= " $lig, 0,\n";
287 $size += 2 * scalar(@ligature) + 2;
288 $position += scalar(@ligature) + 1;
289} else {
290 $txt .= " 0,";
291}
292 }
293 $therow = $lig_row{$txt};
294 if ( !defined $therow ) {
295$size+=512;
296$therow = "li_".sprintf("%02X",$lig_row);
297$lig_rowtext{$therow} =
298 "static const Q_UINT16 ${therow}[] = {$txt\n};\n\n";
299$lig_row{$txt}=$therow;
300 }
301 $rowtable_txt .= "\n " if $lig_row%8 == 0;
302 $rowtable_txt .= "$therow, ";
303}
304
305# Print ligature tables
306#
307print "$table_txt\n};\n\n";
308for $r ( sort keys %lig_rowtext ) {
309 print $lig_rowtext{$r};
310}
311print "$rowtable_txt\n};\n";
312$size += 256*4;
313print "// $size bytes\n\n";
314
315
316
317# Build direction/joining/mirrored pages...
318#
319$rowtable_txt =
320 "static const Q_UINT8 * const direction_info[256] = {";
321for $dir_row ( 0..255 ) {
322 $nonzero=0;
323 $txt = "";
324 for $cell ( 0..255 ) {
325$code = sprintf("%02X%02X",$dir_row,$cell);
326$dir = $bidi_category{$code};
327$dir = 0 if !defined $dir;
328$join = $joining{$code};
329$join = 0 if !defined $join;
330$mirr = $mirrored{$code};
331$mirr = 0 if !defined $mirr;
332$info = $dir + 32*$join + 128*$mirr;
333$txt .= "\n " if $cell%8 == 0;
334$txt .= "$info, ";
335 }
336 $therow = $dir_row{$txt};
337 if ( !defined $therow ) {
338$size+=256;
339$therow = "dir_".sprintf("%02X",$dir_row);
340$dir_rowtext{$therow} =
341 "static const Q_UINT8 ${therow}[] = {$txt\n};\n\n";
342$dir_row{$txt}=$therow;
343 }
344 $rowtable_txt .= "\n " if $dir_row%8 == 0;
345 $rowtable_txt .= "$therow, ";
346}
347
348# Print pages...
349#
350for $r ( sort keys %dir_rowtext ) {
351 print $dir_rowtext{$r};
352}
353print "$rowtable_txt\n};\n";
354$size += 256*4;
355print "// $size bytes\n\n";
356
357
358
359print "#endif\n\n";
360print "// END OF GENERATED DATA\n\n";
361
362
363__END__
364
365*/
366
367
368// START OF GENERATED DATA
369
370static const Q_UINT8 ui_00[] = {
371 10, 10, 10, 10, 10, 10, 10, 10,
372 10, 10, 10, 10, 10, 10, 10, 10,
373 10, 10, 10, 10, 10, 10, 10, 10,
374 10, 10, 10, 10, 10, 10, 10, 10,
375 7, 26, 26, 26, 28, 26, 26, 26,
376 22, 23, 26, 27, 26, 21, 26, 26,
377 4, 4, 4, 4, 4, 4, 4, 4,
378 4, 4, 26, 26, 27, 27, 27, 26,
379 26, 15, 15, 15, 15, 15, 15, 15,
380 15, 15, 15, 15, 15, 15, 15, 15,
381 15, 15, 15, 15, 15, 15, 15, 15,
382 15, 15, 15, 22, 26, 23, 29, 20,
383 29, 16, 16, 16, 16, 16, 16, 16,
384 16, 16, 16, 16, 16, 16, 16, 16,
385 16, 16, 16, 16, 16, 16, 16, 16,
386 16, 16, 16, 22, 27, 23, 27, 10,
387 10, 10, 10, 10, 10, 10, 10, 10,
388 10, 10, 10, 10, 10, 10, 10, 10,
389 10, 10, 10, 10, 10, 10, 10, 10,
390 10, 10, 10, 10, 10, 10, 10, 10,
391 7, 26, 28, 28, 28, 28, 30, 30,
392 29, 30, 16, 24, 27, 21, 30, 29,
393 30, 27, 6, 6, 29, 16, 30, 26,
394 29, 6, 16, 25, 6, 6, 6, 26,
395 15, 15, 15, 15, 15, 15, 15, 15,
396 15, 15, 15, 15, 15, 15, 15, 15,
397 15, 15, 15, 15, 15, 15, 15, 27,
398 15, 15, 15, 15, 15, 15, 15, 16,
399 16, 16, 16, 16, 16, 16, 16, 16,
400 16, 16, 16, 16, 16, 16, 16, 16,
401 16, 16, 16, 16, 16, 16, 16, 27,
402 16, 16, 16, 16, 16, 16, 16, 16,
403};
404
405#ifndef QT_NO_UNICODETABLES
406
407static const Q_UINT8 ui_01[] = {
408 15, 16, 15, 16, 15, 16, 15, 16,
409 15, 16, 15, 16, 15, 16, 15, 16,
410 15, 16, 15, 16, 15, 16, 15, 16,
411 15, 16, 15, 16, 15, 16, 15, 16,
412 15, 16, 15, 16, 15, 16, 15, 16,
413 15, 16, 15, 16, 15, 16, 15, 16,
414 15, 16, 15, 16, 15, 16, 15, 16,
415 16, 15, 16, 15, 16, 15, 16, 15,
416 16, 15, 16, 15, 16, 15, 16, 15,
417 16, 16, 15, 16, 15, 16, 15, 16,
418 15, 16, 15, 16, 15, 16, 15, 16,
419 15, 16, 15, 16, 15, 16, 15, 16,
420 15, 16, 15, 16, 15, 16, 15, 16,
421 15, 16, 15, 16, 15, 16, 15, 16,
422 15, 16, 15, 16, 15, 16, 15, 16,
423 15, 15, 16, 15, 16, 15, 16, 16,
424 16, 15, 15, 16, 15, 16, 15, 15,
425 16, 15, 15, 15, 16, 16, 15, 15,
426 15, 15, 16, 15, 15, 16, 15, 15,
427 15, 16, 16, 16, 15, 15, 16, 15,
428 15, 16, 15, 16, 15, 16, 15, 15,
429 16, 15, 16, 16, 15, 16, 15, 15,
430 16, 15, 15, 15, 16, 15, 16, 15,
431 15, 16, 16, 19, 15, 16, 16, 16,
432 19, 19, 19, 19, 15, 17, 16, 15,
433 17, 16, 15, 17, 16, 15, 16, 15,
434 16, 15, 16, 15, 16, 15, 16, 15,
435 16, 15, 16, 15, 16, 16, 15, 16,
436 15, 16, 15, 16, 15, 16, 15, 16,
437 15, 16, 15, 16, 15, 16, 15, 16,
438 16, 15, 17, 16, 15, 16, 15, 15,
439 15, 16, 15, 16, 15, 16, 15, 16,
440};
441
442static const Q_UINT8 ui_02[] = {
443 15, 16, 15, 16, 15, 16, 15, 16,
444 15, 16, 15, 16, 15, 16, 15, 16,
445 15, 16, 15, 16, 15, 16, 15, 16,
446 15, 16, 15, 16, 15, 16, 15, 16,
447 0, 0, 15, 16, 15, 16, 15, 16,
448 15, 16, 15, 16, 15, 16, 15, 16,
449 15, 16, 15, 16, 0, 0, 0, 0,
450 0, 0, 0, 0, 0, 0, 0, 0,
451 0, 0, 0, 0, 0, 0, 0, 0,
452 0, 0, 0, 0, 0, 0, 0, 0,
453 16, 16, 16, 16, 16, 16, 16, 16,
454 16, 16, 16, 16, 16, 16, 16, 16,
455 16, 16, 16, 16, 16, 16, 16, 16,
456 16, 16, 16, 16, 16, 16, 16, 16,
457 16, 16, 16, 16, 16, 16, 16, 16,
458 16, 16, 16, 16, 16, 16, 16, 16,
459 16, 16, 16, 16, 16, 16, 16, 16,
460 16, 16, 16, 16, 16, 16, 16, 16,
461 16, 16, 16, 16, 16, 16, 16, 16,
462 16, 16, 16, 16, 16, 16, 16, 16,
463 16, 16, 16, 16, 16, 16, 16, 16,
464 16, 16, 16, 16, 16, 16, 0, 0,
465 18, 18, 18, 18, 18, 18, 18, 18,
466 18, 29, 29, 18, 18, 18, 18, 18,
467 18, 18, 29, 29, 29, 29, 29, 29,
468 29, 29, 29, 29, 29, 29, 29, 29,
469 18, 18, 29, 29, 29, 29, 29, 29,
470 29, 29, 29, 29, 29, 29, 29, 29,
471 18, 18, 18, 18, 18, 29, 29, 29,
472 29, 29, 29, 29, 29, 29, 18, 0,
473 0, 0, 0, 0, 0, 0, 0, 0,
474 0, 0, 0, 0, 0, 0, 0, 0,
475};
476
477static const Q_UINT8 ui_03[] = {
478 1, 1, 1, 1, 1, 1, 1, 1,
479 1, 1, 1, 1, 1, 1, 1, 1,
480 1, 1, 1, 1, 1, 1, 1, 1,
481 1, 1, 1, 1, 1, 1, 1, 1,
482 1, 1, 1, 1, 1, 1, 1, 1,
483 1, 1, 1, 1, 1, 1, 1, 1,
484 1, 1, 1, 1, 1, 1, 1, 1,
485 1, 1, 1, 1, 1, 1, 1, 1,
486 1, 1, 1, 1, 1, 1, 1, 1,
487 1, 1, 1, 1, 1, 1, 1, 0,
488 0, 0, 0, 0, 0, 0, 0, 0,
489 0, 0, 0, 0, 0, 0, 0, 0,
490 1, 1, 1, 0, 0, 0, 0, 0,
491 0, 0, 0, 0, 0, 0, 0, 0,
492 0, 0, 0, 0, 29, 29, 0, 0,
493 0, 0, 18, 0, 0, 0, 26, 0,
494 0, 0, 0, 0, 29, 29, 15, 26,
495 15, 15, 15, 0, 15, 0, 15, 15,
496 16, 15, 15, 15, 15, 15, 15, 15,
497 15, 15, 15, 15, 15, 15, 15, 15,
498 15, 15, 0, 15, 15, 15, 15, 15,
499 15, 15, 15, 15, 16, 16, 16, 16,
500 16, 16, 16, 16, 16, 16, 16, 16,
501 16, 16, 16, 16, 16, 16, 16, 16,
502 16, 16, 16, 16, 16, 16, 16, 16,
503 16, 16, 16, 16, 16, 16, 16, 0,
504 16, 16, 15, 15, 15, 16, 16, 16,
505 0, 0, 15, 16, 15, 16, 15, 16,
506 15, 16, 15, 16, 15, 16, 15, 16,
507 15, 16, 15, 16, 15, 16, 15, 16,
508 16, 16, 16, 16, 0, 0, 0, 0,
509 0, 0, 0, 0, 0, 0, 0, 0,
510};
511
512static const Q_UINT8 ui_04[] = {
513 15, 15, 15, 15, 15, 15, 15, 15,
514 15, 15, 15, 15, 15, 15, 15, 15,
515 15, 15, 15, 15, 15, 15, 15, 15,
516 15, 15, 15, 15, 15, 15, 15, 15,
517 15, 15, 15, 15, 15, 15, 15, 15,
518 15, 15, 15, 15, 15, 15, 15, 15,
519 16, 16, 16, 16, 16, 16, 16, 16,
520 16, 16, 16, 16, 16, 16, 16, 16,
521 16, 16, 16, 16, 16, 16, 16, 16,
522 16, 16, 16, 16, 16, 16, 16, 16,
523 16, 16, 16, 16, 16, 16, 16, 16,
524 16, 16, 16, 16, 16, 16, 16, 16,
525 15, 16, 15, 16, 15, 16, 15, 16,
526 15, 16, 15, 16, 15, 16, 15, 16,
527 15, 16, 15, 16, 15, 16, 15, 16,
528 15, 16, 15, 16, 15, 16, 15, 16,
529 15, 16, 30, 1, 1, 1, 1, 0,
530 3, 3, 0, 0, 15, 16, 15, 16,
531 15, 16, 15, 16, 15, 16, 15, 16,
532 15, 16, 15, 16, 15, 16, 15, 16,
533 15, 16, 15, 16, 15, 16, 15, 16,
534 15, 16, 15, 16, 15, 16, 15, 16,
535 15, 16, 15, 16, 15, 16, 15, 16,
536 15, 16, 15, 16, 15, 16, 15, 16,
537 15, 15, 16, 15, 16, 0, 0, 15,
538 16, 0, 0, 15, 16, 0, 0, 0,
539 15, 16, 15, 16, 15, 16, 15, 16,
540 15, 16, 15, 16, 15, 16, 15, 16,
541 15, 16, 15, 16, 15, 16, 15, 16,
542 15, 16, 15, 16, 15, 16, 15, 16,
543 15, 16, 15, 16, 15, 16, 0, 0,
544 15, 16, 0, 0, 0, 0, 0, 0,
545};
546
547static const Q_UINT8 ui_05[] = {
548 0, 0, 0, 0, 0, 0, 0, 0,
549 0, 0, 0, 0, 0, 0, 0, 0,
550 0, 0, 0, 0, 0, 0, 0, 0,
551 0, 0, 0, 0, 0, 0, 0, 0,
552 0, 0, 0, 0, 0, 0, 0, 0,
553 0, 0, 0, 0, 0, 0, 0, 0,
554 0, 15, 15, 15, 15, 15, 15, 15,
555 15, 15, 15, 15, 15, 15, 15, 15,
556 15, 15, 15, 15, 15, 15, 15, 15,
557 15, 15, 15, 15, 15, 15, 15, 15,
558 15, 15, 15, 15, 15, 15, 15, 0,
559 0, 18, 26, 26, 26, 26, 26, 26,
560 0, 16, 16, 16, 16, 16, 16, 16,
561 16, 16, 16, 16, 16, 16, 16, 16,
562 16, 16, 16, 16, 16, 16, 16, 16,
563 16, 16, 16, 16, 16, 16, 16, 16,
564 16, 16, 16, 16, 16, 16, 16, 16,
565 0, 26, 21, 0, 0, 0, 0, 0,
566 0, 1, 1, 1, 1, 1, 1, 1,
567 1, 1, 1, 1, 1, 1, 1, 1,
568 1, 1, 0, 1, 1, 1, 1, 1,
569 1, 1, 1, 1, 1, 1, 1, 1,
570 1, 1, 1, 1, 1, 1, 1, 1,
571 1, 1, 0, 1, 1, 1, 26, 1,
572 26, 1, 1, 26, 1, 0, 0, 0,
573 0, 0, 0, 0, 0, 0, 0, 0,
574 19, 19, 19, 19, 19, 19, 19, 19,
575 19, 19, 19, 19, 19, 19, 19, 19,
576 19, 19, 19, 19, 19, 19, 19, 19,
577 19, 19, 19, 0, 0, 0, 0, 0,
578 19, 19, 19, 26, 26, 0, 0, 0,
579 0, 0, 0, 0, 0, 0, 0, 0,
580};
581
582static const Q_UINT8 ui_06[] = {
583 0, 0, 0, 0, 0, 0, 0, 0,
584 0, 0, 0, 0, 26, 0, 0, 0,
585 0, 0, 0, 0, 0, 0, 0, 0,
586 0, 0, 0, 26, 0, 0, 0, 26,
587 0, 19, 19, 19, 19, 19, 19, 19,
588 19, 19, 19, 19, 19, 19, 19, 19,
589 19, 19, 19, 19, 19, 19, 19, 19,
590 19, 19, 19, 0, 0, 0, 0, 0,
591 18, 19, 19, 19, 19, 19, 19, 19,
592 19, 19, 19, 1, 1, 1, 1, 1,
593 1, 1, 1, 1, 1, 1, 0, 0,
594 0, 0, 0, 0, 0, 0, 0, 0,
595 4, 4, 4, 4, 4, 4, 4, 4,
596 4, 4, 26, 26, 26, 26, 0, 0,
597 1, 19, 19, 19, 19, 19, 19, 19,
598 19, 19, 19, 19, 19, 19, 19, 19,
599 19, 19, 19, 19, 19, 19, 19, 19,
600 19, 19, 19, 19, 19, 19, 19, 19,
601 19, 19, 19, 19, 19, 19, 19, 19,
602 19, 19, 19, 19, 19, 19, 19, 19,
603 19, 19, 19, 19, 19, 19, 19, 19,
604 19, 19, 19, 19, 19, 19, 19, 19,
605 19, 19, 19, 19, 19, 19, 19, 19,
606 19, 19, 19, 19, 19, 19, 19, 19,
607 19, 19, 19, 19, 19, 19, 19, 19,
608 19, 19, 19, 19, 19, 19, 19, 19,
609 19, 19, 19, 19, 26, 19, 1, 1,
610 1, 1, 1, 1, 1, 3, 3, 1,
611 1, 1, 1, 1, 1, 18, 18, 1,
612 1, 30, 1, 1, 1, 1, 0, 0,
613 4, 4, 4, 4, 4, 4, 4, 4,
614 4, 4, 19, 19, 19, 30, 30, 0,
615};
616
617static const Q_UINT8 ui_07[] = {
618 26, 26, 26, 26, 26, 26, 26, 26,
619 26, 26, 26, 26, 26, 26, 0, 11,
620 19, 1, 19, 19, 19, 19, 19, 19,
621 19, 19, 19, 19, 19, 19, 19, 19,
622 19, 19, 19, 19, 19, 19, 19, 19,
623 19, 19, 19, 19, 19, 0, 0, 0,
624 1, 1, 1, 1, 1, 1, 1, 1,
625 1, 1, 1, 1, 1, 1, 1, 1,
626 1, 1, 1, 1, 1, 1, 1, 1,
627 1, 1, 1, 0, 0, 0, 0, 0,
628 0, 0, 0, 0, 0, 0, 0, 0,
629 0, 0, 0, 0, 0, 0, 0, 0,
630 0, 0, 0, 0, 0, 0, 0, 0,
631 0, 0, 0, 0, 0, 0, 0, 0,
632 0, 0, 0, 0, 0, 0, 0, 0,
633 0, 0, 0, 0, 0, 0, 0, 0,
634 19, 19, 19, 19, 19, 19, 19, 19,
635 19, 19, 19, 19, 19, 19, 19, 19,
636 19, 19, 19, 19, 19, 19, 19, 19,
637 19, 19, 19, 19, 19, 19, 19, 19,
638 19, 19, 19, 19, 19, 19, 1, 1,
639 1, 1, 1, 1, 1, 1, 1, 1,
640 1, 0, 0, 0, 0, 0, 0, 0,
641 0, 0, 0, 0, 0, 0, 0, 0,
642 0, 0, 0, 0, 0, 0, 0, 0,
643 0, 0, 0, 0, 0, 0, 0, 0,
644 0, 0, 0, 0, 0, 0, 0, 0,
645 0, 0, 0, 0, 0, 0, 0, 0,
646 0, 0, 0, 0, 0, 0, 0, 0,
647 0, 0, 0, 0, 0, 0, 0, 0,
648 0, 0, 0, 0, 0, 0, 0, 0,
649 0, 0, 0, 0, 0, 0, 0, 0,
650};
651
652static const Q_UINT8 ui_08[] = {
653 0, 0, 0, 0, 0, 0, 0, 0,
654 0, 0, 0, 0, 0, 0, 0, 0,
655 0, 0, 0, 0, 0, 0, 0, 0,
656 0, 0, 0, 0, 0, 0, 0, 0,
657 0, 0, 0, 0, 0, 0, 0, 0,
658 0, 0, 0, 0, 0, 0, 0, 0,
659 0, 0, 0, 0, 0, 0, 0, 0,
660 0, 0, 0, 0, 0, 0, 0, 0,
661 0, 0, 0, 0, 0, 0, 0, 0,
662 0, 0, 0, 0, 0, 0, 0, 0,
663 0, 0, 0, 0, 0, 0, 0, 0,
664 0, 0, 0, 0, 0, 0, 0, 0,
665 0, 0, 0, 0, 0, 0, 0, 0,
666 0, 0, 0, 0, 0, 0, 0, 0,
667 0, 0, 0, 0, 0, 0, 0, 0,
668 0, 0, 0, 0, 0, 0, 0, 0,
669 0, 0, 0, 0, 0, 0, 0, 0,
670 0, 0, 0, 0, 0, 0, 0, 0,
671 0, 0, 0, 0, 0, 0, 0, 0,
672 0, 0, 0, 0, 0, 0, 0, 0,
673 0, 0, 0, 0, 0, 0, 0, 0,
674 0, 0, 0, 0, 0, 0, 0, 0,
675 0, 0, 0, 0, 0, 0, 0, 0,
676 0, 0, 0, 0, 0, 0, 0, 0,
677 0, 0, 0, 0, 0, 0, 0, 0,
678 0, 0, 0, 0, 0, 0, 0, 0,
679 0, 0, 0, 0, 0, 0, 0, 0,
680 0, 0, 0, 0, 0, 0, 0, 0,
681 0, 0, 0, 0, 0, 0, 0, 0,
682 0, 0, 0, 0, 0, 0, 0, 0,
683 0, 0, 0, 0, 0, 0, 0, 0,
684 0, 0, 0, 0, 0, 0, 0, 0,
685};
686
687static const Q_UINT8 ui_09[] = {
688 0, 1, 1, 2, 0, 19, 19, 19,
689 19, 19, 19, 19, 19, 19, 19, 19,
690 19, 19, 19, 19, 19, 19, 19, 19,
691 19, 19, 19, 19, 19, 19, 19, 19,
692 19, 19, 19, 19, 19, 19, 19, 19,
693 19, 19, 19, 19, 19, 19, 19, 19,
694 19, 19, 19, 19, 19, 19, 19, 19,
695 19, 19, 0, 0, 1, 19, 2, 2,
696 2, 1, 1, 1, 1, 1, 1, 1,
697 1, 2, 2, 2, 2, 1, 0, 0,
698 19, 1, 1, 1, 1, 0, 0, 0,
699 19, 19, 19, 19, 19, 19, 19, 19,
700 19, 19, 1, 1, 26, 26, 4, 4,
701 4, 4, 4, 4, 4, 4, 4, 4,
702 26, 0, 0, 0, 0, 0, 0, 0,
703 0, 0, 0, 0, 0, 0, 0, 0,
704 0, 1, 2, 2, 0, 19, 19, 19,
705 19, 19, 19, 19, 19, 0, 0, 19,
706 19, 0, 0, 19, 19, 19, 19, 19,
707 19, 19, 19, 19, 19, 19, 19, 19,
708 19, 19, 19, 19, 19, 19, 19, 19,
709 19, 0, 19, 19, 19, 19, 19, 19,
710 19, 0, 19, 0, 0, 0, 19, 19,
711 19, 19, 0, 0, 1, 0, 2, 2,
712 2, 1, 1, 1, 1, 0, 0, 2,
713 2, 0, 0, 2, 2, 1, 0, 0,
714 0, 0, 0, 0, 0, 0, 0, 2,
715 0, 0, 0, 0, 19, 19, 0, 19,
716 19, 19, 1, 1, 0, 0, 4, 4,
717 4, 4, 4, 4, 4, 4, 4, 4,
718 19, 19, 28, 28, 6, 6, 6, 6,
719 6, 6, 30, 0, 0, 0, 0, 0,
720};
721
722static const Q_UINT8 ui_0A[] = {
723 0, 0, 1, 0, 0, 19, 19, 19,
724 19, 19, 19, 0, 0, 0, 0, 19,
725 19, 0, 0, 19, 19, 19, 19, 19,
726 19, 19, 19, 19, 19, 19, 19, 19,
727 19, 19, 19, 19, 19, 19, 19, 19,
728 19, 0, 19, 19, 19, 19, 19, 19,
729 19, 0, 19, 19, 0, 19, 19, 0,
730 19, 19, 0, 0, 1, 0, 2, 2,
731 2, 1, 1, 0, 0, 0, 0, 1,
732 1, 0, 0, 1, 1, 1, 0, 0,
733 0, 0, 0, 0, 0, 0, 0, 0,
734 0, 19, 19, 19, 19, 0, 19, 0,
735 0, 0, 0, 0, 0, 0, 4, 4,
736 4, 4, 4, 4, 4, 4, 4, 4,
737 1, 1, 19, 19, 19, 0, 0, 0,
738 0, 0, 0, 0, 0, 0, 0, 0,
739 0, 1, 1, 2, 0, 19, 19, 19,
740 19, 19, 19, 19, 0, 19, 0, 19,
741 19, 19, 0, 19, 19, 19, 19, 19,
742 19, 19, 19, 19, 19, 19, 19, 19,
743 19, 19, 19, 19, 19, 19, 19, 19,
744 19, 0, 19, 19, 19, 19, 19, 19,
745 19, 0, 19, 19, 0, 19, 19, 19,
746 19, 19, 0, 0, 1, 19, 2, 2,
747 2, 1, 1, 1, 1, 1, 0, 1,
748 1, 2, 0, 2, 2, 1, 0, 0,
749 19, 0, 0, 0, 0, 0, 0, 0,
750 0, 0, 0, 0, 0, 0, 0, 0,
751 19, 0, 0, 0, 0, 0, 4, 4,
752 4, 4, 4, 4, 4, 4, 4, 4,
753 0, 0, 0, 0, 0, 0, 0, 0,
754 0, 0, 0, 0, 0, 0, 0, 0,
755};
756
757static const Q_UINT8 ui_0B[] = {
758 0, 1, 2, 2, 0, 19, 19, 19,
759 19, 19, 19, 19, 19, 0, 0, 19,
760 19, 0, 0, 19, 19, 19, 19, 19,
761 19, 19, 19, 19, 19, 19, 19, 19,
762 19, 19, 19, 19, 19, 19, 19, 19,
763 19, 0, 19, 19, 19, 19, 19, 19,
764 19, 0, 19, 19, 0, 0, 19, 19,
765 19, 19, 0, 0, 1, 19, 2, 1,
766 2, 1, 1, 1, 0, 0, 0, 2,
767 2, 0, 0, 2, 2, 1, 0, 0,
768 0, 0, 0, 0, 0, 0, 1, 2,
769 0, 0, 0, 0, 19, 19, 0, 19,
770 19, 19, 0, 0, 0, 0, 4, 4,
771 4, 4, 4, 4, 4, 4, 4, 4,
772 30, 0, 0, 0, 0, 0, 0, 0,
773 0, 0, 0, 0, 0, 0, 0, 0,
774 0, 0, 1, 2, 0, 19, 19, 19,
775 19, 19, 19, 0, 0, 0, 19, 19,
776 19, 0, 19, 19, 19, 19, 0, 0,
777 0, 19, 19, 0, 19, 0, 19, 19,
778 0, 0, 0, 19, 19, 0, 0, 0,
779 19, 19, 19, 0, 0, 0, 19, 19,
780 19, 19, 19, 19, 19, 19, 0, 19,
781 19, 19, 0, 0, 0, 0, 2, 2,
782 1, 2, 2, 0, 0, 0, 2, 2,
783 2, 0, 2, 2, 2, 1, 0, 0,
784 0, 0, 0, 0, 0, 0, 0, 2,
785 0, 0, 0, 0, 0, 0, 0, 0,
786 0, 0, 0, 0, 0, 0, 0, 4,
787 4, 4, 4, 4, 4, 4, 4, 4,
788 6, 6, 6, 0, 0, 0, 0, 0,
789 0, 0, 0, 0, 0, 0, 0, 0,
790};
791
792static const Q_UINT8 ui_0C[] = {
793 0, 2, 2, 2, 0, 19, 19, 19,
794 19, 19, 19, 19, 19, 0, 19, 19,
795 19, 0, 19, 19, 19, 19, 19, 19,
796 19, 19, 19, 19, 19, 19, 19, 19,
797 19, 19, 19, 19, 19, 19, 19, 19,
798 19, 0, 19, 19, 19, 19, 19, 19,
799 19, 19, 19, 19, 0, 19, 19, 19,
800 19, 19, 0, 0, 0, 0, 1, 1,
801 1, 2, 2, 2, 2, 0, 1, 1,
802 1, 0, 1, 1, 1, 1, 0, 0,
803 0, 0, 0, 0, 0, 1, 1, 0,
804 0, 0, 0, 0, 0, 0, 0, 0,
805 19, 19, 0, 0, 0, 0, 4, 4,
806 4, 4, 4, 4, 4, 4, 4, 4,
807 0, 0, 0, 0, 0, 0, 0, 0,
808 0, 0, 0, 0, 0, 0, 0, 0,
809 0, 0, 2, 2, 0, 19, 19, 19,
810 19, 19, 19, 19, 19, 0, 19, 19,
811 19, 0, 19, 19, 19, 19, 19, 19,
812 19, 19, 19, 19, 19, 19, 19, 19,
813 19, 19, 19, 19, 19, 19, 19, 19,
814 19, 0, 19, 19, 19, 19, 19, 19,
815 19, 19, 19, 19, 0, 19, 19, 19,
816 19, 19, 0, 0, 0, 0, 2, 1,
817 2, 2, 2, 2, 2, 0, 1, 2,
818 2, 0, 2, 2, 1, 1, 0, 0,
819 0, 0, 0, 0, 0, 2, 2, 0,
820 0, 0, 0, 0, 0, 0, 19, 0,
821 19, 19, 0, 0, 0, 0, 4, 4,
822 4, 4, 4, 4, 4, 4, 4, 4,
823 0, 0, 0, 0, 0, 0, 0, 0,
824 0, 0, 0, 0, 0, 0, 0, 0,
825};
826
827static const Q_UINT8 ui_0D[] = {
828 0, 0, 2, 2, 0, 19, 19, 19,
829 19, 19, 19, 19, 19, 0, 19, 19,
830 19, 0, 19, 19, 19, 19, 19, 19,
831 19, 19, 19, 19, 19, 19, 19, 19,
832 19, 19, 19, 19, 19, 19, 19, 19,
833 19, 0, 19, 19, 19, 19, 19, 19,
834 19, 19, 19, 19, 19, 19, 19, 19,
835 19, 19, 0, 0, 0, 0, 2, 2,
836 2, 1, 1, 1, 0, 0, 2, 2,
837 2, 0, 2, 2, 2, 1, 0, 0,
838 0, 0, 0, 0, 0, 0, 0, 2,
839 0, 0, 0, 0, 0, 0, 0, 0,
840 19, 19, 0, 0, 0, 0, 4, 4,
841 4, 4, 4, 4, 4, 4, 4, 4,
842 0, 0, 0, 0, 0, 0, 0, 0,
843 0, 0, 0, 0, 0, 0, 0, 0,
844 0, 0, 2, 2, 0, 19, 19, 19,
845 19, 19, 19, 19, 19, 19, 19, 19,
846 19, 19, 19, 19, 19, 19, 19, 0,
847 0, 0, 19, 19, 19, 19, 19, 19,
848 19, 19, 19, 19, 19, 19, 19, 19,
849 19, 19, 19, 19, 19, 19, 19, 19,
850 19, 19, 0, 19, 19, 19, 19, 19,
851 19, 19, 19, 19, 0, 19, 0, 0,
852 19, 19, 19, 19, 19, 19, 19, 0,
853 0, 0, 1, 0, 0, 0, 0, 2,
854 2, 2, 1, 1, 1, 0, 1, 0,
855 2, 2, 2, 2, 2, 2, 2, 2,
856 0, 0, 0, 0, 0, 0, 0, 0,
857 0, 0, 0, 0, 0, 0, 0, 0,
858 0, 0, 2, 2, 26, 0, 0, 0,
859 0, 0, 0, 0, 0, 0, 0, 0,
860};
861
862static const Q_UINT8 ui_0E[] = {
863 0, 19, 19, 19, 19, 19, 19, 19,
864 19, 19, 19, 19, 19, 19, 19, 19,
865 19, 19, 19, 19, 19, 19, 19, 19,
866 19, 19, 19, 19, 19, 19, 19, 19,
867 19, 19, 19, 19, 19, 19, 19, 19,
868 19, 19, 19, 19, 19, 19, 19, 19,
869 19, 1, 19, 19, 1, 1, 1, 1,
870 1, 1, 1, 0, 0, 0, 0, 28,
871 19, 19, 19, 19, 19, 19, 18, 1,
872 1, 1, 1, 1, 1, 1, 1, 26,
873 4, 4, 4, 4, 4, 4, 4, 4,
874 4, 4, 26, 26, 0, 0, 0, 0,
875 0, 0, 0, 0, 0, 0, 0, 0,
876 0, 0, 0, 0, 0, 0, 0, 0,
877 0, 0, 0, 0, 0, 0, 0, 0,
878 0, 0, 0, 0, 0, 0, 0, 0,
879 0, 19, 19, 0, 19, 0, 0, 19,
880 19, 0, 19, 0, 0, 19, 0, 0,
881 0, 0, 0, 0, 19, 19, 19, 19,
882 0, 19, 19, 19, 19, 19, 19, 19,
883 0, 19, 19, 19, 0, 19, 0, 19,
884 0, 0, 19, 19, 0, 19, 19, 19,
885 19, 1, 19, 19, 1, 1, 1, 1,
886 1, 1, 0, 1, 1, 19, 0, 0,
887 19, 19, 19, 19, 19, 0, 18, 0,
888 1, 1, 1, 1, 1, 1, 0, 0,
889 4, 4, 4, 4, 4, 4, 4, 4,
890 4, 4, 0, 0, 19, 19, 0, 0,
891 0, 0, 0, 0, 0, 0, 0, 0,
892 0, 0, 0, 0, 0, 0, 0, 0,
893 0, 0, 0, 0, 0, 0, 0, 0,
894 0, 0, 0, 0, 0, 0, 0, 0,
895};
896
897static const Q_UINT8 ui_0F[] = {
898 19, 30, 30, 30, 26, 26, 26, 26,
899 26, 26, 26, 26, 26, 26, 26, 26,
900 26, 26, 26, 30, 30, 30, 30, 30,
901 1, 1, 30, 30, 30, 30, 30, 30,
902 4, 4, 4, 4, 4, 4, 4, 4,
903 4, 4, 6, 6, 6, 6, 6, 6,
904 6, 6, 6, 6, 30, 1, 30, 1,
905 30, 1, 22, 23, 22, 23, 2, 2,
906 19, 19, 19, 19, 19, 19, 19, 19,
907 0, 19, 19, 19, 19, 19, 19, 19,
908 19, 19, 19, 19, 19, 19, 19, 19,
909 19, 19, 19, 19, 19, 19, 19, 19,
910 19, 19, 19, 19, 19, 19, 19, 19,
911 19, 19, 19, 0, 0, 0, 0, 0,
912 0, 1, 1, 1, 1, 1, 1, 1,
913 1, 1, 1, 1, 1, 1, 1, 2,
914 1, 1, 1, 1, 1, 26, 1, 1,
915 19, 19, 19, 19, 0, 0, 0, 0,
916 1, 1, 1, 1, 1, 1, 1, 1,
917 0, 1, 1, 1, 1, 1, 1, 1,
918 1, 1, 1, 1, 1, 1, 1, 1,
919 1, 1, 1, 1, 1, 1, 1, 1,
920 1, 1, 1, 1, 1, 1, 1, 1,
921 1, 1, 1, 1, 1, 0, 30, 30,
922 30, 30, 30, 30, 30, 30, 1, 30,
923 30, 30, 30, 30, 30, 0, 0, 30,
924 0, 0, 0, 0, 0, 0, 0, 0,
925 0, 0, 0, 0, 0, 0, 0, 0,
926 0, 0, 0, 0, 0, 0, 0, 0,
927 0, 0, 0, 0, 0, 0, 0, 0,
928 0, 0, 0, 0, 0, 0, 0, 0,
929 0, 0, 0, 0, 0, 0, 0, 0,
930};
931
932static const Q_UINT8 ui_10[] = {
933 19, 19, 19, 19, 19, 19, 19, 19,
934 19, 19, 19, 19, 19, 19, 19, 19,
935 19, 19, 19, 19, 19, 19, 19, 19,
936 19, 19, 19, 19, 19, 19, 19, 19,
937 19, 19, 0, 19, 19, 19, 19, 19,
938 0, 19, 19, 0, 2, 1, 1, 1,
939 1, 2, 1, 0, 0, 0, 1, 1,
940 2, 1, 0, 0, 0, 0, 0, 0,
941 4, 4, 4, 4, 4, 4, 4, 4,
942 4, 4, 26, 26, 26, 26, 26, 26,
943 19, 19, 19, 19, 19, 19, 2, 2,
944 1, 1, 0, 0, 0, 0, 0, 0,
945 0, 0, 0, 0, 0, 0, 0, 0,
946 0, 0, 0, 0, 0, 0, 0, 0,
947 0, 0, 0, 0, 0, 0, 0, 0,
948 0, 0, 0, 0, 0, 0, 0, 0,
949 0, 0, 0, 0, 0, 0, 0, 0,
950 0, 0, 0, 0, 0, 0, 0, 0,
951 0, 0, 0, 0, 0, 0, 0, 0,
952 0, 0, 0, 0, 0, 0, 0, 0,
953 15, 15, 15, 15, 15, 15, 15, 15,
954 15, 15, 15, 15, 15, 15, 15, 15,
955 15, 15, 15, 15, 15, 15, 15, 15,
956 15, 15, 15, 15, 15, 15, 15, 15,
957 15, 15, 15, 15, 15, 15, 0, 0,
958 0, 0, 0, 0, 0, 0, 0, 0,
959 19, 19, 19, 19, 19, 19, 19, 19,
960 19, 19, 19, 19, 19, 19, 19, 19,
961 19, 19, 19, 19, 19, 19, 19, 19,
962 19, 19, 19, 19, 19, 19, 19, 19,
963 19, 19, 19, 19, 19, 19, 19, 0,
964 0, 0, 0, 26, 0, 0, 0, 0,
965};
966
967static const Q_UINT8 ui_11[] = {
968 19, 19, 19, 19, 19, 19, 19, 19,
969 19, 19, 19, 19, 19, 19, 19, 19,
970 19, 19, 19, 19, 19, 19, 19, 19,
971 19, 19, 19, 19, 19, 19, 19, 19,
972 19, 19, 19, 19, 19, 19, 19, 19,
973 19, 19, 19, 19, 19, 19, 19, 19,
974 19, 19, 19, 19, 19, 19, 19, 19,
975 19, 19, 19, 19, 19, 19, 19, 19,
976 19, 19, 19, 19, 19, 19, 19, 19,
977 19, 19, 19, 19, 19, 19, 19, 19,
978 19, 19, 19, 19, 19, 19, 19, 19,
979 19, 19, 0, 0, 0, 0, 0, 19,
980 19, 19, 19, 19, 19, 19, 19, 19,
981 19, 19, 19, 19, 19, 19, 19, 19,
982 19, 19, 19, 19, 19, 19, 19, 19,
983 19, 19, 19, 19, 19, 19, 19, 19,
984 19, 19, 19, 19, 19, 19, 19, 19,
985 19, 19, 19, 19, 19, 19, 19, 19,
986 19, 19, 19, 19, 19, 19, 19, 19,
987 19, 19, 19, 19, 19, 19, 19, 19,
988 19, 19, 19, 0, 0, 0, 0, 0,
989 19, 19, 19, 19, 19, 19, 19, 19,
990 19, 19, 19, 19, 19, 19, 19, 19,
991 19, 19, 19, 19, 19, 19, 19, 19,
992 19, 19, 19, 19, 19, 19, 19, 19,
993 19, 19, 19, 19, 19, 19, 19, 19,
994 19, 19, 19, 19, 19, 19, 19, 19,
995 19, 19, 19, 19, 19, 19, 19, 19,
996 19, 19, 19, 19, 19, 19, 19, 19,
997 19, 19, 19, 19, 19, 19, 19, 19,
998 19, 19, 19, 19, 19, 19, 19, 19,
999 19, 19, 0, 0, 0, 0, 0, 0,
1000};
1001
1002static const Q_UINT8 ui_12[] = {
1003 19, 19, 19, 19, 19, 19, 19, 0,
1004 19, 19, 19, 19, 19, 19, 19, 19,
1005 19, 19, 19, 19, 19, 19, 19, 19,
1006 19, 19, 19, 19, 19, 19, 19, 19,
1007 19, 19, 19, 19, 19, 19, 19, 19,
1008 19, 19, 19, 19, 19, 19, 19, 19,
1009 19, 19, 19, 19, 19, 19, 19, 19,
1010 19, 19, 19, 19, 19, 19, 19, 19,
1011 19, 19, 19, 19, 19, 19, 19, 0,
1012 19, 0, 19, 19, 19, 19, 0, 0,
1013 19, 19, 19, 19, 19, 19, 19, 0,
1014 19, 0, 19, 19, 19, 19, 0, 0,
1015 19, 19, 19, 19, 19, 19, 19, 19,
1016 19, 19, 19, 19, 19, 19, 19, 19,
1017 19, 19, 19, 19, 19, 19, 19, 19,
1018 19, 19, 19, 19, 19, 19, 19, 19,
1019 19, 19, 19, 19, 19, 19, 19, 0,
1020 19, 0, 19, 19, 19, 19, 0, 0,
1021 19, 19, 19, 19, 19, 19, 19, 19,
1022 19, 19, 19, 19, 19, 19, 19, 19,
1023 19, 19, 19, 19, 19, 19, 19, 19,
1024 19, 19, 19, 19, 19, 19, 19, 0,
1025 19, 0, 19, 19, 19, 19, 0, 0,
1026 19, 19, 19, 19, 19, 19, 19, 0,
1027 19, 0, 19, 19, 19, 19, 0, 0,
1028 19, 19, 19, 19, 19, 19, 19, 0,
1029 19, 19, 19, 19, 19, 19, 19, 0,
1030 19, 19, 19, 19, 19, 19, 19, 19,
1031 19, 19, 19, 19, 19, 19, 19, 19,
1032 19, 19, 19, 19, 19, 19, 19, 0,
1033 19, 19, 19, 19, 19, 19, 19, 19,
1034 19, 19, 19, 19, 19, 19, 19, 19,
1035};
1036
1037static const Q_UINT8 ui_13[] = {
1038 19, 19, 19, 19, 19, 19, 19, 19,
1039 19, 19, 19, 19, 19, 19, 19, 0,
1040 19, 0, 19, 19, 19, 19, 0, 0,
1041 19, 19, 19, 19, 19, 19, 19, 0,
1042 19, 19, 19, 19, 19, 19, 19, 19,
1043 19, 19, 19, 19, 19, 19, 19, 19,
1044 19, 19, 19, 19, 19, 19, 19, 19,
1045 19, 19, 19, 19, 19, 19, 19, 19,
1046 19, 19, 19, 19, 19, 19, 19, 0,
1047 19, 19, 19, 19, 19, 19, 19, 19,
1048 19, 19, 19, 19, 19, 19, 19, 19,
1049 19, 19, 19, 0, 0, 0, 0, 0,
1050 0, 26, 26, 26, 26, 26, 26, 26,
1051 26, 4, 4, 4, 4, 4, 4, 4,
1052 4, 4, 6, 6, 6, 6, 6, 6,
1053 6, 6, 6, 6, 6, 0, 0, 0,
1054 0, 0, 0, 0, 0, 0, 0, 0,
1055 0, 0, 0, 0, 0, 0, 0, 0,
1056 0, 0, 0, 0, 0, 0, 0, 0,
1057 0, 0, 0, 0, 0, 0, 0, 0,
1058 19, 19, 19, 19, 19, 19, 19, 19,
1059 19, 19, 19, 19, 19, 19, 19, 19,
1060 19, 19, 19, 19, 19, 19, 19, 19,
1061 19, 19, 19, 19, 19, 19, 19, 19,
1062 19, 19, 19, 19, 19, 19, 19, 19,
1063 19, 19, 19, 19, 19, 19, 19, 19,
1064 19, 19, 19, 19, 19, 19, 19, 19,
1065 19, 19, 19, 19, 19, 19, 19, 19,
1066 19, 19, 19, 19, 19, 19, 19, 19,
1067 19, 19, 19, 19, 19, 19, 19, 19,
1068 19, 19, 19, 19, 19, 0, 0, 0,
1069 0, 0, 0, 0, 0, 0, 0, 0,
1070};
1071
1072static const Q_UINT8 ui_14[] = {
1073 0, 19, 19, 19, 19, 19, 19, 19,
1074 19, 19, 19, 19, 19, 19, 19, 19,
1075 19, 19, 19, 19, 19, 19, 19, 19,
1076 19, 19, 19, 19, 19, 19, 19, 19,
1077 19, 19, 19, 19, 19, 19, 19, 19,
1078 19, 19, 19, 19, 19, 19, 19, 19,
1079 19, 19, 19, 19, 19, 19, 19, 19,
1080 19, 19, 19, 19, 19, 19, 19, 19,
1081 19, 19, 19, 19, 19, 19, 19, 19,
1082 19, 19, 19, 19, 19, 19, 19, 19,
1083 19, 19, 19, 19, 19, 19, 19, 19,
1084 19, 19, 19, 19, 19, 19, 19, 19,
1085 19, 19, 19, 19, 19, 19, 19, 19,
1086 19, 19, 19, 19, 19, 19, 19, 19,
1087 19, 19, 19, 19, 19, 19, 19, 19,
1088 19, 19, 19, 19, 19, 19, 19, 19,
1089 19, 19, 19, 19, 19, 19, 19, 19,
1090 19, 19, 19, 19, 19, 19, 19, 19,
1091 19, 19, 19, 19, 19, 19, 19, 19,
1092 19, 19, 19, 19, 19, 19, 19, 19,
1093 19, 19, 19, 19, 19, 19, 19, 19,
1094 19, 19, 19, 19, 19, 19, 19, 19,
1095 19, 19, 19, 19, 19, 19, 19, 19,
1096 19, 19, 19, 19, 19, 19, 19, 19,
1097 19, 19, 19, 19, 19, 19, 19, 19,
1098 19, 19, 19, 19, 19, 19, 19, 19,
1099 19, 19, 19, 19, 19, 19, 19, 19,
1100 19, 19, 19, 19, 19, 19, 19, 19,
1101 19, 19, 19, 19, 19, 19, 19, 19,
1102 19, 19, 19, 19, 19, 19, 19, 19,
1103 19, 19, 19, 19, 19, 19, 19, 19,
1104 19, 19, 19, 19, 19, 19, 19, 19,
1105};
1106
1107static const Q_UINT8 ui_15[] = {
1108 19, 19, 19, 19, 19, 19, 19, 19,
1109 19, 19, 19, 19, 19, 19, 19, 19,
1110 19, 19, 19, 19, 19, 19, 19, 19,
1111 19, 19, 19, 19, 19, 19, 19, 19,
1112 19, 19, 19, 19, 19, 19, 19, 19,
1113 19, 19, 19, 19, 19, 19, 19, 19,
1114 19, 19, 19, 19, 19, 19, 19, 19,
1115 19, 19, 19, 19, 19, 19, 19, 19,
1116 19, 19, 19, 19, 19, 19, 19, 19,
1117 19, 19, 19, 19, 19, 19, 19, 19,
1118 19, 19, 19, 19, 19, 19, 19, 19,
1119 19, 19, 19, 19, 19, 19, 19, 19,
1120 19, 19, 19, 19, 19, 19, 19, 19,
1121 19, 19, 19, 19, 19, 19, 19, 19,
1122 19, 19, 19, 19, 19, 19, 19, 19,
1123 19, 19, 19, 19, 19, 19, 19, 19,
1124 19, 19, 19, 19, 19, 19, 19, 19,
1125 19, 19, 19, 19, 19, 19, 19, 19,
1126 19, 19, 19, 19, 19, 19, 19, 19,
1127 19, 19, 19, 19, 19, 19, 19, 19,
1128 19, 19, 19, 19, 19, 19, 19, 19,
1129 19, 19, 19, 19, 19, 19, 19, 19,
1130 19, 19, 19, 19, 19, 19, 19, 19,
1131 19, 19, 19, 19, 19, 19, 19, 19,
1132 19, 19, 19, 19, 19, 19, 19, 19,
1133 19, 19, 19, 19, 19, 19, 19, 19,
1134 19, 19, 19, 19, 19, 19, 19, 19,
1135 19, 19, 19, 19, 19, 19, 19, 19,
1136 19, 19, 19, 19, 19, 19, 19, 19,
1137 19, 19, 19, 19, 19, 19, 19, 19,
1138 19, 19, 19, 19, 19, 19, 19, 19,
1139 19, 19, 19, 19, 19, 19, 19, 19,
1140};
1141
1142static const Q_UINT8 ui_16[] = {
1143 19, 19, 19, 19, 19, 19, 19, 19,
1144 19, 19, 19, 19, 19, 19, 19, 19,
1145 19, 19, 19, 19, 19, 19, 19, 19,
1146 19, 19, 19, 19, 19, 19, 19, 19,
1147 19, 19, 19, 19, 19, 19, 19, 19,
1148 19, 19, 19, 19, 19, 19, 19, 19,
1149 19, 19, 19, 19, 19, 19, 19, 19,
1150 19, 19, 19, 19, 19, 19, 19, 19,
1151 19, 19, 19, 19, 19, 19, 19, 19,
1152 19, 19, 19, 19, 19, 19, 19, 19,
1153 19, 19, 19, 19, 19, 19, 19, 19,
1154 19, 19, 19, 19, 19, 19, 19, 19,
1155 19, 19, 19, 19, 19, 19, 19, 19,
1156 19, 19, 19, 19, 19, 26, 26, 19,
1157 19, 19, 19, 19, 19, 19, 19, 0,
1158 0, 0, 0, 0, 0, 0, 0, 0,
1159 7, 19, 19, 19, 19, 19, 19, 19,
1160 19, 19, 19, 19, 19, 19, 19, 19,
1161 19, 19, 19, 19, 19, 19, 19, 19,
1162 19, 19, 19, 22, 23, 0, 0, 0,
1163 19, 19, 19, 19, 19, 19, 19, 19,
1164 19, 19, 19, 19, 19, 19, 19, 19,
1165 19, 19, 19, 19, 19, 19, 19, 19,
1166 19, 19, 19, 19, 19, 19, 19, 19,
1167 19, 19, 19, 19, 19, 19, 19, 19,
1168 19, 19, 19, 19, 19, 19, 19, 19,
1169 19, 19, 19, 19, 19, 19, 19, 19,
1170 19, 19, 19, 19, 19, 19, 19, 19,
1171 19, 19, 19, 19, 19, 19, 19, 19,
1172 19, 19, 19, 26, 26, 26, 6, 6,
1173 6, 0, 0, 0, 0, 0, 0, 0,
1174 0, 0, 0, 0, 0, 0, 0, 0,
1175};
1176
1177static const Q_UINT8 ui_17[] = {
1178 0, 0, 0, 0, 0, 0, 0, 0,
1179 0, 0, 0, 0, 0, 0, 0, 0,
1180 0, 0, 0, 0, 0, 0, 0, 0,
1181 0, 0, 0, 0, 0, 0, 0, 0,
1182 0, 0, 0, 0, 0, 0, 0, 0,
1183 0, 0, 0, 0, 0, 0, 0, 0,
1184 0, 0, 0, 0, 0, 0, 0, 0,
1185 0, 0, 0, 0, 0, 0, 0, 0,
1186 0, 0, 0, 0, 0, 0, 0, 0,
1187 0, 0, 0, 0, 0, 0, 0, 0,
1188 0, 0, 0, 0, 0, 0, 0, 0,
1189 0, 0, 0, 0, 0, 0, 0, 0,
1190 0, 0, 0, 0, 0, 0, 0, 0,
1191 0, 0, 0, 0, 0, 0, 0, 0,
1192 0, 0, 0, 0, 0, 0, 0, 0,
1193 0, 0, 0, 0, 0, 0, 0, 0,
1194 19, 19, 19, 19, 19, 19, 19, 19,
1195 19, 19, 19, 19, 19, 19, 19, 19,
1196 19, 19, 19, 19, 19, 19, 19, 19,
1197 19, 19, 19, 19, 19, 19, 19, 19,
1198 19, 19, 19, 19, 19, 19, 19, 19,
1199 19, 19, 19, 19, 19, 19, 19, 19,
1200 19, 19, 19, 19, 2, 2, 2, 1,
1201 1, 1, 1, 1, 1, 1, 2, 2,
1202 2, 2, 2, 2, 2, 2, 1, 2,
1203 2, 1, 1, 1, 1, 1, 1, 1,
1204 1, 1, 1, 1, 26, 26, 26, 26,
1205 26, 26, 26, 28, 26, 0, 0, 0,
1206 4, 4, 4, 4, 4, 4, 4, 4,
1207 4, 4, 0, 0, 0, 0, 0, 0,
1208 0, 0, 0, 0, 0, 0, 0, 0,
1209 0, 0, 0, 0, 0, 0, 0, 0,
1210};
1211
1212static const Q_UINT8 ui_18[] = {
1213 26, 26, 26, 26, 26, 26, 21, 26,
1214 26, 26, 26, 11, 11, 11, 11, 0,
1215 4, 4, 4, 4, 4, 4, 4, 4,
1216 4, 4, 0, 0, 0, 0, 0, 0,
1217 19, 19, 19, 19, 19, 19, 19, 19,
1218 19, 19, 19, 19, 19, 19, 19, 19,
1219 19, 19, 19, 19, 19, 19, 19, 19,
1220 19, 19, 19, 19, 19, 19, 19, 19,
1221 19, 19, 19, 18, 19, 19, 19, 19,
1222 19, 19, 19, 19, 19, 19, 19, 19,
1223 19, 19, 19, 19, 19, 19, 19, 19,
1224 19, 19, 19, 19, 19, 19, 19, 19,
1225 19, 19, 19, 19, 19, 19, 19, 19,
1226 19, 19, 19, 19, 19, 19, 19, 19,
1227 19, 19, 19, 19, 19, 19, 19, 19,
1228 0, 0, 0, 0, 0, 0, 0, 0,
1229 19, 19, 19, 19, 19, 19, 19, 19,
1230 19, 19, 19, 19, 19, 19, 19, 19,
1231 19, 19, 19, 19, 19, 19, 19, 19,
1232 19, 19, 19, 19, 19, 19, 19, 19,
1233 19, 19, 19, 19, 19, 19, 19, 19,
1234 19, 1, 0, 0, 0, 0, 0, 0,
1235 0, 0, 0, 0, 0, 0, 0, 0,
1236 0, 0, 0, 0, 0, 0, 0, 0,
1237 0, 0, 0, 0, 0, 0, 0, 0,
1238 0, 0, 0, 0, 0, 0, 0, 0,
1239 0, 0, 0, 0, 0, 0, 0, 0,
1240 0, 0, 0, 0, 0, 0, 0, 0,
1241 0, 0, 0, 0, 0, 0, 0, 0,
1242 0, 0, 0, 0, 0, 0, 0, 0,
1243 0, 0, 0, 0, 0, 0, 0, 0,
1244 0, 0, 0, 0, 0, 0, 0, 0,
1245};
1246
1247static const Q_UINT8 ui_1E[] = {
1248 15, 16, 15, 16, 15, 16, 15, 16,
1249 15, 16, 15, 16, 15, 16, 15, 16,
1250 15, 16, 15, 16, 15, 16, 15, 16,
1251 15, 16, 15, 16, 15, 16, 15, 16,
1252 15, 16, 15, 16, 15, 16, 15, 16,
1253 15, 16, 15, 16, 15, 16, 15, 16,
1254 15, 16, 15, 16, 15, 16, 15, 16,
1255 15, 16, 15, 16, 15, 16, 15, 16,
1256 15, 16, 15, 16, 15, 16, 15, 16,
1257 15, 16, 15, 16, 15, 16, 15, 16,
1258 15, 16, 15, 16, 15, 16, 15, 16,
1259 15, 16, 15, 16, 15, 16, 15, 16,
1260 15, 16, 15, 16, 15, 16, 15, 16,
1261 15, 16, 15, 16, 15, 16, 15, 16,
1262 15, 16, 15, 16, 15, 16, 15, 16,
1263 15, 16, 15, 16, 15, 16, 15, 16,
1264 15, 16, 15, 16, 15, 16, 15, 16,
1265 15, 16, 15, 16, 15, 16, 15, 16,
1266 15, 16, 15, 16, 15, 16, 16, 16,
1267 16, 16, 16, 16, 0, 0, 0, 0,
1268 15, 16, 15, 16, 15, 16, 15, 16,
1269 15, 16, 15, 16, 15, 16, 15, 16,
1270 15, 16, 15, 16, 15, 16, 15, 16,
1271 15, 16, 15, 16, 15, 16, 15, 16,
1272 15, 16, 15, 16, 15, 16, 15, 16,
1273 15, 16, 15, 16, 15, 16, 15, 16,
1274 15, 16, 15, 16, 15, 16, 15, 16,
1275 15, 16, 15, 16, 15, 16, 15, 16,
1276 15, 16, 15, 16, 15, 16, 15, 16,
1277 15, 16, 15, 16, 15, 16, 15, 16,
1278 15, 16, 15, 16, 15, 16, 15, 16,
1279 15, 16, 0, 0, 0, 0, 0, 0,
1280};
1281
1282static const Q_UINT8 ui_1F[] = {
1283 16, 16, 16, 16, 16, 16, 16, 16,
1284 15, 15, 15, 15, 15, 15, 15, 15,
1285 16, 16, 16, 16, 16, 16, 0, 0,
1286 15, 15, 15, 15, 15, 15, 0, 0,
1287 16, 16, 16, 16, 16, 16, 16, 16,
1288 15, 15, 15, 15, 15, 15, 15, 15,
1289 16, 16, 16, 16, 16, 16, 16, 16,
1290 15, 15, 15, 15, 15, 15, 15, 15,
1291 16, 16, 16, 16, 16, 16, 0, 0,
1292 15, 15, 15, 15, 15, 15, 0, 0,
1293 16, 16, 16, 16, 16, 16, 16, 16,
1294 0, 15, 0, 15, 0, 15, 0, 15,
1295 16, 16, 16, 16, 16, 16, 16, 16,
1296 15, 15, 15, 15, 15, 15, 15, 15,
1297 16, 16, 16, 16, 16, 16, 16, 16,
1298 16, 16, 16, 16, 16, 16, 0, 0,
1299 16, 16, 16, 16, 16, 16, 16, 16,
1300 17, 17, 17, 17, 17, 17, 17, 17,
1301 16, 16, 16, 16, 16, 16, 16, 16,
1302 17, 17, 17, 17, 17, 17, 17, 17,
1303 16, 16, 16, 16, 16, 16, 16, 16,
1304 17, 17, 17, 17, 17, 17, 17, 17,
1305 16, 16, 16, 16, 16, 0, 16, 16,
1306 15, 15, 15, 15, 17, 29, 16, 29,
1307 29, 29, 16, 16, 16, 0, 16, 16,
1308 15, 15, 15, 15, 17, 29, 29, 29,
1309 16, 16, 16, 16, 0, 0, 16, 16,
1310 15, 15, 15, 15, 0, 29, 29, 29,
1311 16, 16, 16, 16, 16, 16, 16, 16,
1312 15, 15, 15, 15, 15, 29, 29, 29,
1313 0, 0, 16, 16, 16, 0, 16, 16,
1314 15, 15, 15, 15, 17, 29, 29, 0,
1315};
1316
1317static const Q_UINT8 ui_20[] = {
1318 7, 7, 7, 7, 7, 7, 7, 7,
1319 7, 7, 7, 7, 11, 11, 11, 11,
1320 21, 21, 21, 21, 21, 21, 26, 26,
1321 24, 25, 22, 24, 24, 25, 22, 24,
1322 26, 26, 26, 26, 26, 26, 26, 26,
1323 8, 9, 11, 11, 11, 11, 11, 7,
1324 26, 26, 26, 26, 26, 26, 26, 26,
1325 26, 24, 25, 26, 26, 26, 26, 20,
1326 20, 26, 26, 26, 27, 22, 23, 0,
1327 26, 26, 26, 26, 26, 26, 0, 0,
1328 0, 0, 0, 0, 0, 0, 0, 0,
1329 0, 0, 0, 0, 0, 0, 0, 0,
1330 0, 0, 0, 0, 0, 0, 0, 0,
1331 0, 0, 11, 11, 11, 11, 11, 11,
1332 6, 0, 0, 0, 6, 6, 6, 6,
1333 6, 6, 27, 27, 27, 22, 23, 16,
1334 6, 6, 6, 6, 6, 6, 6, 6,
1335 6, 6, 27, 27, 27, 22, 23, 0,
1336 0, 0, 0, 0, 0, 0, 0, 0,
1337 0, 0, 0, 0, 0, 0, 0, 0,
1338 28, 28, 28, 28, 28, 28, 28, 28,
1339 28, 28, 28, 28, 28, 28, 28, 28,
1340 0, 0, 0, 0, 0, 0, 0, 0,
1341 0, 0, 0, 0, 0, 0, 0, 0,
1342 0, 0, 0, 0, 0, 0, 0, 0,
1343 0, 0, 0, 0, 0, 0, 0, 0,
1344 1, 1, 1, 1, 1, 1, 1, 1,
1345 1, 1, 1, 1, 1, 3, 3, 3,
1346 3, 1, 3, 3, 0, 0, 0, 0,
1347 0, 0, 0, 0, 0, 0, 0, 0,
1348 0, 0, 0, 0, 0, 0, 0, 0,
1349 0, 0, 0, 0, 0, 0, 0, 0,
1350};
1351
1352static const Q_UINT8 ui_21[] = {
1353 30, 30, 15, 30, 30, 30, 30, 15,
1354 30, 30, 16, 15, 15, 15, 16, 16,
1355 15, 15, 15, 16, 30, 15, 30, 30,
1356 30, 15, 15, 15, 15, 15, 30, 30,
1357 30, 30, 30, 30, 15, 30, 15, 30,
1358 15, 30, 15, 15, 15, 15, 30, 16,
1359 15, 15, 30, 15, 16, 19, 19, 19,
1360 19, 16, 30, 0, 0, 0, 0, 0,
1361 0, 0, 0, 0, 0, 0, 0, 0,
1362 0, 0, 0, 0, 0, 0, 0, 0,
1363 0, 0, 0, 6, 6, 6, 6, 6,
1364 6, 6, 6, 6, 6, 6, 6, 6,
1365 5, 5, 5, 5, 5, 5, 5, 5,
1366 5, 5, 5, 5, 5, 5, 5, 5,
1367 5, 5, 5, 5, 5, 5, 5, 5,
1368 5, 5, 5, 5, 5, 5, 5, 5,
1369 5, 5, 5, 5, 0, 0, 0, 0,
1370 0, 0, 0, 0, 0, 0, 0, 0,
1371 27, 27, 27, 27, 27, 30, 30, 30,
1372 30, 30, 27, 27, 30, 30, 30, 30,
1373 27, 30, 30, 27, 30, 30, 27, 30,
1374 30, 30, 30, 30, 30, 30, 27, 30,
1375 30, 30, 30, 30, 30, 30, 30, 30,
1376 30, 30, 30, 30, 30, 30, 30, 30,
1377 30, 30, 30, 30, 30, 30, 30, 30,
1378 30, 30, 30, 30, 30, 30, 27, 27,
1379 30, 30, 27, 30, 27, 30, 30, 30,
1380 30, 30, 30, 30, 30, 30, 30, 30,
1381 30, 30, 30, 30, 30, 30, 30, 30,
1382 30, 30, 30, 30, 30, 30, 30, 30,
1383 30, 30, 30, 30, 0, 0, 0, 0,
1384 0, 0, 0, 0, 0, 0, 0, 0,
1385};
1386
1387static const Q_UINT8 ui_22[] = {
1388 27, 27, 27, 27, 27, 27, 27, 27,
1389 27, 27, 27, 27, 27, 27, 27, 27,
1390 27, 27, 27, 27, 27, 27, 27, 27,
1391 27, 27, 27, 27, 27, 27, 27, 27,
1392 27, 27, 27, 27, 27, 27, 27, 27,
1393 27, 27, 27, 27, 27, 27, 27, 27,
1394 27, 27, 27, 27, 27, 27, 27, 27,
1395 27, 27, 27, 27, 27, 27, 27, 27,
1396 27, 27, 27, 27, 27, 27, 27, 27,
1397 27, 27, 27, 27, 27, 27, 27, 27,
1398 27, 27, 27, 27, 27, 27, 27, 27,
1399 27, 27, 27, 27, 27, 27, 27, 27,
1400 27, 27, 27, 27, 27, 27, 27, 27,
1401 27, 27, 27, 27, 27, 27, 27, 27,
1402 27, 27, 27, 27, 27, 27, 27, 27,
1403 27, 27, 27, 27, 27, 27, 27, 27,
1404 27, 27, 27, 27, 27, 27, 27, 27,
1405 27, 27, 27, 27, 27, 27, 27, 27,
1406 27, 27, 27, 27, 27, 27, 27, 27,
1407 27, 27, 27, 27, 27, 27, 27, 27,
1408 27, 27, 27, 27, 27, 27, 27, 27,
1409 27, 27, 27, 27, 27, 27, 27, 27,
1410 27, 27, 27, 27, 27, 27, 27, 27,
1411 27, 27, 27, 27, 27, 27, 27, 27,
1412 27, 27, 27, 27, 27, 27, 27, 27,
1413 27, 27, 27, 27, 27, 27, 27, 27,
1414 27, 27, 27, 27, 27, 27, 27, 27,
1415 27, 27, 27, 27, 27, 27, 27, 27,
1416 27, 27, 27, 27, 27, 27, 27, 27,
1417 27, 27, 27, 27, 27, 27, 27, 27,
1418 27, 27, 0, 0, 0, 0, 0, 0,
1419 0, 0, 0, 0, 0, 0, 0, 0,
1420};
1421
1422static const Q_UINT8 ui_23[] = {
1423 30, 30, 30, 30, 30, 30, 30, 30,
1424 27, 27, 27, 27, 30, 30, 30, 30,
1425 30, 30, 30, 30, 30, 30, 30, 30,
1426 30, 30, 30, 30, 30, 30, 30, 30,
1427 27, 27, 30, 30, 30, 30, 30, 30,
1428 30, 22, 23, 30, 30, 30, 30, 30,
1429 30, 30, 30, 30, 30, 30, 30, 30,
1430 30, 30, 30, 30, 30, 30, 30, 30,
1431 30, 30, 30, 30, 30, 30, 30, 30,
1432 30, 30, 30, 30, 30, 30, 30, 30,
1433 30, 30, 30, 30, 30, 30, 30, 30,
1434 30, 30, 30, 30, 30, 30, 30, 30,
1435 30, 30, 30, 30, 30, 30, 30, 30,
1436 30, 30, 30, 30, 30, 30, 30, 30,
1437 30, 30, 30, 30, 30, 30, 30, 30,
1438 30, 30, 30, 30, 0, 30, 30, 30,
1439 30, 30, 30, 30, 30, 30, 30, 30,
1440 30, 30, 30, 30, 30, 30, 30, 30,
1441 30, 30, 30, 30, 30, 30, 30, 30,
1442 30, 30, 30, 0, 0, 0, 0, 0,
1443 0, 0, 0, 0, 0, 0, 0, 0,
1444 0, 0, 0, 0, 0, 0, 0, 0,
1445 0, 0, 0, 0, 0, 0, 0, 0,
1446 0, 0, 0, 0, 0, 0, 0, 0,
1447 0, 0, 0, 0, 0, 0, 0, 0,
1448 0, 0, 0, 0, 0, 0, 0, 0,
1449 0, 0, 0, 0, 0, 0, 0, 0,
1450 0, 0, 0, 0, 0, 0, 0, 0,
1451 0, 0, 0, 0, 0, 0, 0, 0,
1452 0, 0, 0, 0, 0, 0, 0, 0,
1453 0, 0, 0, 0, 0, 0, 0, 0,
1454 0, 0, 0, 0, 0, 0, 0, 0,
1455};
1456
1457static const Q_UINT8 ui_24[] = {
1458 30, 30, 30, 30, 30, 30, 30, 30,
1459 30, 30, 30, 30, 30, 30, 30, 30,
1460 30, 30, 30, 30, 30, 30, 30, 30,
1461 30, 30, 30, 30, 30, 30, 30, 30,
1462 30, 30, 30, 30, 30, 30, 30, 0,
1463 0, 0, 0, 0, 0, 0, 0, 0,
1464 0, 0, 0, 0, 0, 0, 0, 0,
1465 0, 0, 0, 0, 0, 0, 0, 0,
1466 30, 30, 30, 30, 30, 30, 30, 30,
1467 30, 30, 30, 0, 0, 0, 0, 0,
1468 0, 0, 0, 0, 0, 0, 0, 0,
1469 0, 0, 0, 0, 0, 0, 0, 0,
1470 6, 6, 6, 6, 6, 6, 6, 6,
1471 6, 6, 6, 6, 6, 6, 6, 6,
1472 6, 6, 6, 6, 6, 6, 6, 6,
1473 6, 6, 6, 6, 6, 6, 6, 6,
1474 6, 6, 6, 6, 6, 6, 6, 6,
1475 6, 6, 6, 6, 6, 6, 6, 6,
1476 6, 6, 6, 6, 6, 6, 6, 6,
1477 6, 6, 6, 6, 30, 30, 30, 30,
1478 30, 30, 30, 30, 30, 30, 30, 30,
1479 30, 30, 30, 30, 30, 30, 30, 30,
1480 30, 30, 30, 30, 30, 30, 30, 30,
1481 30, 30, 30, 30, 30, 30, 30, 30,
1482 30, 30, 30, 30, 30, 30, 30, 30,
1483 30, 30, 30, 30, 30, 30, 30, 30,
1484 30, 30, 30, 30, 30, 30, 30, 30,
1485 30, 30, 30, 30, 30, 30, 30, 30,
1486 30, 30, 30, 30, 30, 30, 30, 30,
1487 30, 30, 6, 0, 0, 0, 0, 0,
1488 0, 0, 0, 0, 0, 0, 0, 0,
1489 0, 0, 0, 0, 0, 0, 0, 0,
1490};
1491
1492static const Q_UINT8 ui_25[] = {
1493 30, 30, 30, 30, 30, 30, 30, 30,
1494 30, 30, 30, 30, 30, 30, 30, 30,
1495 30, 30, 30, 30, 30, 30, 30, 30,
1496 30, 30, 30, 30, 30, 30, 30, 30,
1497 30, 30, 30, 30, 30, 30, 30, 30,
1498 30, 30, 30, 30, 30, 30, 30, 30,
1499 30, 30, 30, 30, 30, 30, 30, 30,
1500 30, 30, 30, 30, 30, 30, 30, 30,
1501 30, 30, 30, 30, 30, 30, 30, 30,
1502 30, 30, 30, 30, 30, 30, 30, 30,
1503 30, 30, 30, 30, 30, 30, 30, 30,
1504 30, 30, 30, 30, 30, 30, 30, 30,
1505 30, 30, 30, 30, 30, 30, 30, 30,
1506 30, 30, 30, 30, 30, 30, 30, 30,
1507 30, 30, 30, 30, 30, 30, 30, 30,
1508 30, 30, 30, 30, 30, 30, 30, 30,
1509 30, 30, 30, 30, 30, 30, 30, 30,
1510 30, 30, 30, 30, 30, 30, 30, 30,
1511 30, 30, 30, 30, 30, 30, 0, 0,
1512 0, 0, 0, 0, 0, 0, 0, 0,
1513 30, 30, 30, 30, 30, 30, 30, 30,
1514 30, 30, 30, 30, 30, 30, 30, 30,
1515 30, 30, 30, 30, 30, 30, 30, 27,
1516 30, 30, 30, 30, 30, 30, 30, 30,
1517 30, 27, 30, 30, 30, 30, 30, 30,
1518 30, 30, 30, 30, 30, 30, 30, 30,
1519 30, 30, 30, 30, 30, 30, 30, 30,
1520 30, 30, 30, 30, 30, 30, 30, 30,
1521 30, 30, 30, 30, 30, 30, 30, 30,
1522 30, 30, 30, 30, 30, 30, 30, 30,
1523 30, 30, 30, 30, 30, 30, 30, 30,
1524 0, 0, 0, 0, 0, 0, 0, 0,
1525};
1526
1527static const Q_UINT8 ui_26[] = {
1528 30, 30, 30, 30, 30, 30, 30, 30,
1529 30, 30, 30, 30, 30, 30, 30, 30,
1530 30, 30, 30, 30, 0, 0, 0, 0,
1531 0, 30, 30, 30, 30, 30, 30, 30,
1532 30, 30, 30, 30, 30, 30, 30, 30,
1533 30, 30, 30, 30, 30, 30, 30, 30,
1534 30, 30, 30, 30, 30, 30, 30, 30,
1535 30, 30, 30, 30, 30, 30, 30, 30,
1536 30, 30, 30, 30, 30, 30, 30, 30,
1537 30, 30, 30, 30, 30, 30, 30, 30,
1538 30, 30, 30, 30, 30, 30, 30, 30,
1539 30, 30, 30, 30, 30, 30, 30, 30,
1540 30, 30, 30, 30, 30, 30, 30, 30,
1541 30, 30, 30, 30, 30, 30, 30, 27,
1542 30, 30, 0, 0, 0, 0, 0, 0,
1543 0, 0, 0, 0, 0, 0, 0, 0,
1544 0, 0, 0, 0, 0, 0, 0, 0,
1545 0, 0, 0, 0, 0, 0, 0, 0,
1546 0, 0, 0, 0, 0, 0, 0, 0,
1547 0, 0, 0, 0, 0, 0, 0, 0,
1548 0, 0, 0, 0, 0, 0, 0, 0,
1549 0, 0, 0, 0, 0, 0, 0, 0,
1550 0, 0, 0, 0, 0, 0, 0, 0,
1551 0, 0, 0, 0, 0, 0, 0, 0,
1552 0, 0, 0, 0, 0, 0, 0, 0,
1553 0, 0, 0, 0, 0, 0, 0, 0,
1554 0, 0, 0, 0, 0, 0, 0, 0,
1555 0, 0, 0, 0, 0, 0, 0, 0,
1556 0, 0, 0, 0, 0, 0, 0, 0,
1557 0, 0, 0, 0, 0, 0, 0, 0,
1558 0, 0, 0, 0, 0, 0, 0, 0,
1559 0, 0, 0, 0, 0, 0, 0, 0,
1560};
1561
1562static const Q_UINT8 ui_27[] = {
1563 0, 30, 30, 30, 30, 0, 30, 30,
1564 30, 30, 0, 0, 30, 30, 30, 30,
1565 30, 30, 30, 30, 30, 30, 30, 30,
1566 30, 30, 30, 30, 30, 30, 30, 30,
1567 30, 30, 30, 30, 30, 30, 30, 30,
1568 0, 30, 30, 30, 30, 30, 30, 30,
1569 30, 30, 30, 30, 30, 30, 30, 30,
1570 30, 30, 30, 30, 30, 30, 30, 30,
1571 30, 30, 30, 30, 30, 30, 30, 30,
1572 30, 30, 30, 30, 0, 30, 0, 30,
1573 30, 30, 30, 0, 0, 0, 30, 0,
1574 30, 30, 30, 30, 30, 30, 30, 0,
1575 0, 30, 30, 30, 30, 30, 30, 30,
1576 0, 0, 0, 0, 0, 0, 0, 0,
1577 0, 0, 0, 0, 0, 0, 6, 6,
1578 6, 6, 6, 6, 6, 6, 6, 6,
1579 6, 6, 6, 6, 6, 6, 6, 6,
1580 6, 6, 6, 6, 6, 6, 6, 6,
1581 6, 6, 6, 6, 30, 0, 0, 0,
1582 30, 30, 30, 30, 30, 30, 30, 30,
1583 30, 30, 30, 30, 30, 30, 30, 30,
1584 30, 30, 30, 30, 30, 30, 30, 30,
1585 0, 30, 30, 30, 30, 30, 30, 30,
1586 30, 30, 30, 30, 30, 30, 30, 0,
1587 0, 0, 0, 0, 0, 0, 0, 0,
1588 0, 0, 0, 0, 0, 0, 0, 0,
1589 0, 0, 0, 0, 0, 0, 0, 0,
1590 0, 0, 0, 0, 0, 0, 0, 0,
1591 0, 0, 0, 0, 0, 0, 0, 0,
1592 0, 0, 0, 0, 0, 0, 0, 0,
1593 0, 0, 0, 0, 0, 0, 0, 0,
1594 0, 0, 0, 0, 0, 0, 0, 0,
1595};
1596
1597static const Q_UINT8 ui_28[] = {
1598 30, 30, 30, 30, 30, 30, 30, 30,
1599 30, 30, 30, 30, 30, 30, 30, 30,
1600 30, 30, 30, 30, 30, 30, 30, 30,
1601 30, 30, 30, 30, 30, 30, 30, 30,
1602 30, 30, 30, 30, 30, 30, 30, 30,
1603 30, 30, 30, 30, 30, 30, 30, 30,
1604 30, 30, 30, 30, 30, 30, 30, 30,
1605 30, 30, 30, 30, 30, 30, 30, 30,
1606 30, 30, 30, 30, 30, 30, 30, 30,
1607 30, 30, 30, 30, 30, 30, 30, 30,
1608 30, 30, 30, 30, 30, 30, 30, 30,
1609 30, 30, 30, 30, 30, 30, 30, 30,
1610 30, 30, 30, 30, 30, 30, 30, 30,
1611 30, 30, 30, 30, 30, 30, 30, 30,
1612 30, 30, 30, 30, 30, 30, 30, 30,
1613 30, 30, 30, 30, 30, 30, 30, 30,
1614 30, 30, 30, 30, 30, 30, 30, 30,
1615 30, 30, 30, 30, 30, 30, 30, 30,
1616 30, 30, 30, 30, 30, 30, 30, 30,
1617 30, 30, 30, 30, 30, 30, 30, 30,
1618 30, 30, 30, 30, 30, 30, 30, 30,
1619 30, 30, 30, 30, 30, 30, 30, 30,
1620 30, 30, 30, 30, 30, 30, 30, 30,
1621 30, 30, 30, 30, 30, 30, 30, 30,
1622 30, 30, 30, 30, 30, 30, 30, 30,
1623 30, 30, 30, 30, 30, 30, 30, 30,
1624 30, 30, 30, 30, 30, 30, 30, 30,
1625 30, 30, 30, 30, 30, 30, 30, 30,
1626 30, 30, 30, 30, 30, 30, 30, 30,
1627 30, 30, 30, 30, 30, 30, 30, 30,
1628 30, 30, 30, 30, 30, 30, 30, 30,
1629 30, 30, 30, 30, 30, 30, 30, 30,
1630};
1631
1632static const Q_UINT8 ui_2E[] = {
1633 0, 0, 0, 0, 0, 0, 0, 0,
1634 0, 0, 0, 0, 0, 0, 0, 0,
1635 0, 0, 0, 0, 0, 0, 0, 0,
1636 0, 0, 0, 0, 0, 0, 0, 0,
1637 0, 0, 0, 0, 0, 0, 0, 0,
1638 0, 0, 0, 0, 0, 0, 0, 0,
1639 0, 0, 0, 0, 0, 0, 0, 0,
1640 0, 0, 0, 0, 0, 0, 0, 0,
1641 0, 0, 0, 0, 0, 0, 0, 0,
1642 0, 0, 0, 0, 0, 0, 0, 0,
1643 0, 0, 0, 0, 0, 0, 0, 0,
1644 0, 0, 0, 0, 0, 0, 0, 0,
1645 0, 0, 0, 0, 0, 0, 0, 0,
1646 0, 0, 0, 0, 0, 0, 0, 0,
1647 0, 0, 0, 0, 0, 0, 0, 0,
1648 0, 0, 0, 0, 0, 0, 0, 0,
1649 30, 30, 30, 30, 30, 30, 30, 30,
1650 30, 30, 30, 30, 30, 30, 30, 30,
1651 30, 30, 30, 30, 30, 30, 30, 30,
1652 30, 30, 0, 30, 30, 30, 30, 30,
1653 30, 30, 30, 30, 30, 30, 30, 30,
1654 30, 30, 30, 30, 30, 30, 30, 30,
1655 30, 30, 30, 30, 30, 30, 30, 30,
1656 30, 30, 30, 30, 30, 30, 30, 30,
1657 30, 30, 30, 30, 30, 30, 30, 30,
1658 30, 30, 30, 30, 30, 30, 30, 30,
1659 30, 30, 30, 30, 30, 30, 30, 30,
1660 30, 30, 30, 30, 30, 30, 30, 30,
1661 30, 30, 30, 30, 30, 30, 30, 30,
1662 30, 30, 30, 30, 30, 30, 30, 30,
1663 30, 30, 30, 30, 0, 0, 0, 0,
1664 0, 0, 0, 0, 0, 0, 0, 0,
1665};
1666
1667static const Q_UINT8 ui_2F[] = {
1668 30, 30, 30, 30, 30, 30, 30, 30,
1669 30, 30, 30, 30, 30, 30, 30, 30,
1670 30, 30, 30, 30, 30, 30, 30, 30,
1671 30, 30, 30, 30, 30, 30, 30, 30,
1672 30, 30, 30, 30, 30, 30, 30, 30,
1673 30, 30, 30, 30, 30, 30, 30, 30,
1674 30, 30, 30, 30, 30, 30, 30, 30,
1675 30, 30, 30, 30, 30, 30, 30, 30,
1676 30, 30, 30, 30, 30, 30, 30, 30,
1677 30, 30, 30, 30, 30, 30, 30, 30,
1678 30, 30, 30, 30, 30, 30, 30, 30,
1679 30, 30, 30, 30, 30, 30, 30, 30,
1680 30, 30, 30, 30, 30, 30, 30, 30,
1681 30, 30, 30, 30, 30, 30, 30, 30,
1682 30, 30, 30, 30, 30, 30, 30, 30,
1683 30, 30, 30, 30, 30, 30, 30, 30,
1684 30, 30, 30, 30, 30, 30, 30, 30,
1685 30, 30, 30, 30, 30, 30, 30, 30,
1686 30, 30, 30, 30, 30, 30, 30, 30,
1687 30, 30, 30, 30, 30, 30, 30, 30,
1688 30, 30, 30, 30, 30, 30, 30, 30,
1689 30, 30, 30, 30, 30, 30, 30, 30,
1690 30, 30, 30, 30, 30, 30, 30, 30,
1691 30, 30, 30, 30, 30, 30, 30, 30,
1692 30, 30, 30, 30, 30, 30, 30, 30,
1693 30, 30, 30, 30, 30, 30, 30, 30,
1694 30, 30, 30, 30, 30, 30, 0, 0,
1695 0, 0, 0, 0, 0, 0, 0, 0,
1696 0, 0, 0, 0, 0, 0, 0, 0,
1697 0, 0, 0, 0, 0, 0, 0, 0,
1698 30, 30, 30, 30, 30, 30, 30, 30,
1699 30, 30, 30, 30, 0, 0, 0, 0,
1700};
1701
1702static const Q_UINT8 ui_30[] = {
1703 7, 26, 26, 26, 30, 18, 19, 5,
1704 22, 23, 22, 23, 22, 23, 22, 23,
1705 22, 23, 30, 30, 22, 23, 22, 23,
1706 22, 23, 22, 23, 21, 22, 23, 23,
1707 30, 5, 5, 5, 5, 5, 5, 5,
1708 5, 5, 1, 1, 1, 1, 1, 1,
1709 21, 18, 18, 18, 18, 18, 30, 30,
1710 5, 5, 5, 0, 0, 0, 30, 30,
1711 0, 19, 19, 19, 19, 19, 19, 19,
1712 19, 19, 19, 19, 19, 19, 19, 19,
1713 19, 19, 19, 19, 19, 19, 19, 19,
1714 19, 19, 19, 19, 19, 19, 19, 19,
1715 19, 19, 19, 19, 19, 19, 19, 19,
1716 19, 19, 19, 19, 19, 19, 19, 19,
1717 19, 19, 19, 19, 19, 19, 19, 19,
1718 19, 19, 19, 19, 19, 19, 19, 19,
1719 19, 19, 19, 19, 19, 19, 19, 19,
1720 19, 19, 19, 19, 19, 19, 19, 19,
1721 19, 19, 19, 19, 19, 0, 0, 0,
1722 0, 1, 1, 29, 29, 18, 18, 0,
1723 0, 19, 19, 19, 19, 19, 19, 19,
1724 19, 19, 19, 19, 19, 19, 19, 19,
1725 19, 19, 19, 19, 19, 19, 19, 19,
1726 19, 19, 19, 19, 19, 19, 19, 19,
1727 19, 19, 19, 19, 19, 19, 19, 19,
1728 19, 19, 19, 19, 19, 19, 19, 19,
1729 19, 19, 19, 19, 19, 19, 19, 19,
1730 19, 19, 19, 19, 19, 19, 19, 19,
1731 19, 19, 19, 19, 19, 19, 19, 19,
1732 19, 19, 19, 19, 19, 19, 19, 19,
1733 19, 19, 19, 19, 19, 19, 19, 19,
1734 19, 19, 19, 20, 18, 18, 18, 0,
1735};
1736
1737static const Q_UINT8 ui_31[] = {
1738 0, 0, 0, 0, 0, 19, 19, 19,
1739 19, 19, 19, 19, 19, 19, 19, 19,
1740 19, 19, 19, 19, 19, 19, 19, 19,
1741 19, 19, 19, 19, 19, 19, 19, 19,
1742 19, 19, 19, 19, 19, 19, 19, 19,
1743 19, 19, 19, 19, 19, 0, 0, 0,
1744 0, 19, 19, 19, 19, 19, 19, 19,
1745 19, 19, 19, 19, 19, 19, 19, 19,
1746 19, 19, 19, 19, 19, 19, 19, 19,
1747 19, 19, 19, 19, 19, 19, 19, 19,
1748 19, 19, 19, 19, 19, 19, 19, 19,
1749 19, 19, 19, 19, 19, 19, 19, 19,
1750 19, 19, 19, 19, 19, 19, 19, 19,
1751 19, 19, 19, 19, 19, 19, 19, 19,
1752 19, 19, 19, 19, 19, 19, 19, 19,
1753 19, 19, 19, 19, 19, 19, 19, 19,
1754 19, 19, 19, 19, 19, 19, 19, 19,
1755 19, 19, 19, 19, 19, 19, 19, 0,
1756 30, 30, 6, 6, 6, 6, 30, 30,
1757 30, 30, 30, 30, 30, 30, 30, 30,
1758 19, 19, 19, 19, 19, 19, 19, 19,
1759 19, 19, 19, 19, 19, 19, 19, 19,
1760 19, 19, 19, 19, 19, 19, 19, 19,
1761 0, 0, 0, 0, 0, 0, 0, 0,
1762 0, 0, 0, 0, 0, 0, 0, 0,
1763 0, 0, 0, 0, 0, 0, 0, 0,
1764 0, 0, 0, 0, 0, 0, 0, 0,
1765 0, 0, 0, 0, 0, 0, 0, 0,
1766 0, 0, 0, 0, 0, 0, 0, 0,
1767 0, 0, 0, 0, 0, 0, 0, 0,
1768 0, 0, 0, 0, 0, 0, 0, 0,
1769 0, 0, 0, 0, 0, 0, 0, 0,
1770};
1771
1772static const Q_UINT8 ui_32[] = {
1773 30, 30, 30, 30, 30, 30, 30, 30,
1774 30, 30, 30, 30, 30, 30, 30, 30,
1775 30, 30, 30, 30, 30, 30, 30, 30,
1776 30, 30, 30, 30, 30, 0, 0, 0,
1777 6, 6, 6, 6, 6, 6, 6, 6,
1778 6, 6, 30, 30, 30, 30, 30, 30,
1779 30, 30, 30, 30, 30, 30, 30, 30,
1780 30, 30, 30, 30, 30, 30, 30, 30,
1781 30, 30, 30, 30, 0, 0, 0, 0,
1782 0, 0, 0, 0, 0, 0, 0, 0,
1783 0, 0, 0, 0, 0, 0, 0, 0,
1784 0, 0, 0, 0, 0, 0, 0, 0,
1785 30, 30, 30, 30, 30, 30, 30, 30,
1786 30, 30, 30, 30, 30, 30, 30, 30,
1787 30, 30, 30, 30, 30, 30, 30, 30,
1788 30, 30, 30, 30, 0, 0, 0, 30,
1789 6, 6, 6, 6, 6, 6, 6, 6,
1790 6, 6, 30, 30, 30, 30, 30, 30,
1791 30, 30, 30, 30, 30, 30, 30, 30,
1792 30, 30, 30, 30, 30, 30, 30, 30,
1793 30, 30, 30, 30, 30, 30, 30, 30,
1794 30, 30, 30, 30, 30, 30, 30, 30,
1795 30, 0, 0, 0, 0, 0, 0, 0,
1796 0, 0, 0, 0, 0, 0, 0, 0,
1797 30, 30, 30, 30, 30, 30, 30, 30,
1798 30, 30, 30, 30, 0, 0, 0, 0,
1799 30, 30, 30, 30, 30, 30, 30, 30,
1800 30, 30, 30, 30, 30, 30, 30, 30,
1801 30, 30, 30, 30, 30, 30, 30, 30,
1802 30, 30, 30, 30, 30, 30, 30, 30,
1803 30, 30, 30, 30, 30, 30, 30, 30,
1804 30, 30, 30, 30, 30, 30, 30, 0,
1805};
1806
1807static const Q_UINT8 ui_33[] = {
1808 30, 30, 30, 30, 30, 30, 30, 30,
1809 30, 30, 30, 30, 30, 30, 30, 30,
1810 30, 30, 30, 30, 30, 30, 30, 30,
1811 30, 30, 30, 30, 30, 30, 30, 30,
1812 30, 30, 30, 30, 30, 30, 30, 30,
1813 30, 30, 30, 30, 30, 30, 30, 30,
1814 30, 30, 30, 30, 30, 30, 30, 30,
1815 30, 30, 30, 30, 30, 30, 30, 30,
1816 30, 30, 30, 30, 30, 30, 30, 30,
1817 30, 30, 30, 30, 30, 30, 30, 30,
1818 30, 30, 30, 30, 30, 30, 30, 30,
1819 30, 30, 30, 30, 30, 30, 30, 30,
1820 30, 30, 30, 30, 30, 30, 30, 30,
1821 30, 30, 30, 30, 30, 30, 30, 30,
1822 30, 30, 30, 30, 30, 30, 30, 0,
1823 0, 0, 0, 30, 30, 30, 30, 30,
1824 30, 30, 30, 30, 30, 30, 30, 30,
1825 30, 30, 30, 30, 30, 30, 30, 30,
1826 30, 30, 30, 30, 30, 30, 30, 30,
1827 30, 30, 30, 30, 30, 30, 30, 30,
1828 30, 30, 30, 30, 30, 30, 30, 30,
1829 30, 30, 30, 30, 30, 30, 30, 30,
1830 30, 30, 30, 30, 30, 30, 30, 30,
1831 30, 30, 30, 30, 30, 30, 30, 30,
1832 30, 30, 30, 30, 30, 30, 30, 30,
1833 30, 30, 30, 30, 30, 30, 30, 30,
1834 30, 30, 30, 30, 30, 30, 30, 30,
1835 30, 30, 30, 30, 30, 30, 0, 0,
1836 30, 30, 30, 30, 30, 30, 30, 30,
1837 30, 30, 30, 30, 30, 30, 30, 30,
1838 30, 30, 30, 30, 30, 30, 30, 30,
1839 30, 30, 30, 30, 30, 30, 30, 0,
1840};
1841
1842static const Q_UINT8 ui_34[] = {
1843 19, 0, 0, 0, 0, 0, 0, 0,
1844 0, 0, 0, 0, 0, 0, 0, 0,
1845 0, 0, 0, 0, 0, 0, 0, 0,
1846 0, 0, 0, 0, 0, 0, 0, 0,
1847 0, 0, 0, 0, 0, 0, 0, 0,
1848 0, 0, 0, 0, 0, 0, 0, 0,
1849 0, 0, 0, 0, 0, 0, 0, 0,
1850 0, 0, 0, 0, 0, 0, 0, 0,
1851 0, 0, 0, 0, 0, 0, 0, 0,
1852 0, 0, 0, 0, 0, 0, 0, 0,
1853 0, 0, 0, 0, 0, 0, 0, 0,
1854 0, 0, 0, 0, 0, 0, 0, 0,
1855 0, 0, 0, 0, 0, 0, 0, 0,
1856 0, 0, 0, 0, 0, 0, 0, 0,
1857 0, 0, 0, 0, 0, 0, 0, 0,
1858 0, 0, 0, 0, 0, 0, 0, 0,
1859 0, 0, 0, 0, 0, 0, 0, 0,
1860 0, 0, 0, 0, 0, 0, 0, 0,
1861 0, 0, 0, 0, 0, 0, 0, 0,
1862 0, 0, 0, 0, 0, 0, 0, 0,
1863 0, 0, 0, 0, 0, 0, 0, 0,
1864 0, 0, 0, 0, 0, 0, 0, 0,
1865 0, 0, 0, 0, 0, 0, 0, 0,
1866 0, 0, 0, 0, 0, 0, 0, 0,
1867 0, 0, 0, 0, 0, 0, 0, 0,
1868 0, 0, 0, 0, 0, 0, 0, 0,
1869 0, 0, 0, 0, 0, 0, 0, 0,
1870 0, 0, 0, 0, 0, 0, 0, 0,
1871 0, 0, 0, 0, 0, 0, 0, 0,
1872 0, 0, 0, 0, 0, 0, 0, 0,
1873 0, 0, 0, 0, 0, 0, 0, 0,
1874 0, 0, 0, 0, 0, 0, 0, 0,
1875};
1876
1877static const Q_UINT8 ui_4D[] = {
1878 0, 0, 0, 0, 0, 0, 0, 0,
1879 0, 0, 0, 0, 0, 0, 0, 0,
1880 0, 0, 0, 0, 0, 0, 0, 0,
1881 0, 0, 0, 0, 0, 0, 0, 0,
1882 0, 0, 0, 0, 0, 0, 0, 0,
1883 0, 0, 0, 0, 0, 0, 0, 0,
1884 0, 0, 0, 0, 0, 0, 0, 0,
1885 0, 0, 0, 0, 0, 0, 0, 0,
1886 0, 0, 0, 0, 0, 0, 0, 0,
1887 0, 0, 0, 0, 0, 0, 0, 0,
1888 0, 0, 0, 0, 0, 0, 0, 0,
1889 0, 0, 0, 0, 0, 0, 0, 0,
1890 0, 0, 0, 0, 0, 0, 0, 0,
1891 0, 0, 0, 0, 0, 0, 0, 0,
1892 0, 0, 0, 0, 0, 0, 0, 0,
1893 0, 0, 0, 0, 0, 0, 0, 0,
1894 0, 0, 0, 0, 0, 0, 0, 0,
1895 0, 0, 0, 0, 0, 0, 0, 0,
1896 0, 0, 0, 0, 0, 0, 0, 0,
1897 0, 0, 0, 0, 0, 0, 0, 0,
1898 0, 0, 0, 0, 0, 0, 0, 0,
1899 0, 0, 0, 0, 0, 0, 0, 0,
1900 0, 0, 0, 0, 0, 19, 0, 0,
1901 0, 0, 0, 0, 0, 0, 0, 0,
1902 0, 0, 0, 0, 0, 0, 0, 0,
1903 0, 0, 0, 0, 0, 0, 0, 0,
1904 0, 0, 0, 0, 0, 0, 0, 0,
1905 0, 0, 0, 0, 0, 0, 0, 0,
1906 0, 0, 0, 0, 0, 0, 0, 0,
1907 0, 0, 0, 0, 0, 0, 0, 0,
1908 0, 0, 0, 0, 0, 0, 0, 0,
1909 0, 0, 0, 0, 0, 0, 0, 0,
1910};
1911
1912static const Q_UINT8 ui_9F[] = {
1913 0, 0, 0, 0, 0, 0, 0, 0,
1914 0, 0, 0, 0, 0, 0, 0, 0,
1915 0, 0, 0, 0, 0, 0, 0, 0,
1916 0, 0, 0, 0, 0, 0, 0, 0,
1917 0, 0, 0, 0, 0, 0, 0, 0,
1918 0, 0, 0, 0, 0, 0, 0, 0,
1919 0, 0, 0, 0, 0, 0, 0, 0,
1920 0, 0, 0, 0, 0, 0, 0, 0,
1921 0, 0, 0, 0, 0, 0, 0, 0,
1922 0, 0, 0, 0, 0, 0, 0, 0,
1923 0, 0, 0, 0, 0, 0, 0, 0,
1924 0, 0, 0, 0, 0, 0, 0, 0,
1925 0, 0, 0, 0, 0, 0, 0, 0,
1926 0, 0, 0, 0, 0, 0, 0, 0,
1927 0, 0, 0, 0, 0, 0, 0, 0,
1928 0, 0, 0, 0, 0, 0, 0, 0,
1929 0, 0, 0, 0, 0, 0, 0, 0,
1930 0, 0, 0, 0, 0, 0, 0, 0,
1931 0, 0, 0, 0, 0, 0, 0, 0,
1932 0, 0, 0, 0, 0, 0, 0, 0,
1933 0, 0, 0, 0, 0, 19, 0, 0,
1934 0, 0, 0, 0, 0, 0, 0, 0,
1935 0, 0, 0, 0, 0, 0, 0, 0,
1936 0, 0, 0, 0, 0, 0, 0, 0,
1937 0, 0, 0, 0, 0, 0, 0, 0,
1938 0, 0, 0, 0, 0, 0, 0, 0,
1939 0, 0, 0, 0, 0, 0, 0, 0,
1940 0, 0, 0, 0, 0, 0, 0, 0,
1941 0, 0, 0, 0, 0, 0, 0, 0,
1942 0, 0, 0, 0, 0, 0, 0, 0,
1943 0, 0, 0, 0, 0, 0, 0, 0,
1944 0, 0, 0, 0, 0, 0, 0, 0,
1945};
1946
1947static const Q_UINT8 ui_A4[] = {
1948 19, 19, 19, 19, 19, 19, 19, 19,
1949 19, 19, 19, 19, 19, 19, 19, 19,
1950 19, 19, 19, 19, 19, 19, 19, 19,
1951 19, 19, 19, 19, 19, 19, 19, 19,
1952 19, 19, 19, 19, 19, 19, 19, 19,
1953 19, 19, 19, 19, 19, 19, 19, 19,
1954 19, 19, 19, 19, 19, 19, 19, 19,
1955 19, 19, 19, 19, 19, 19, 19, 19,
1956 19, 19, 19, 19, 19, 19, 19, 19,
1957 19, 19, 19, 19, 19, 19, 19, 19,
1958 19, 19, 19, 19, 19, 19, 19, 19,
1959 19, 19, 19, 19, 19, 19, 19, 19,
1960 19, 19, 19, 19, 19, 19, 19, 19,
1961 19, 19, 19, 19, 19, 19, 19, 19,
1962 19, 19, 19, 19, 19, 19, 19, 19,
1963 19, 19, 19, 19, 19, 19, 19, 19,
1964 19, 19, 19, 19, 19, 19, 19, 19,
1965 19, 19, 19, 19, 19, 0, 0, 0,
1966 30, 30, 30, 30, 30, 30, 30, 30,
1967 30, 30, 30, 30, 30, 30, 30, 30,
1968 30, 30, 0, 0, 30, 30, 30, 30,
1969 30, 30, 30, 30, 30, 30, 30, 30,
1970 30, 30, 30, 30, 0, 30, 30, 30,
1971 30, 30, 30, 30, 30, 30, 30, 30,
1972 30, 0, 30, 30, 30, 0, 30, 0,
1973 0, 0, 0, 0, 0, 0, 0, 0,
1974 0, 0, 0, 0, 0, 0, 0, 0,
1975 0, 0, 0, 0, 0, 0, 0, 0,
1976 0, 0, 0, 0, 0, 0, 0, 0,
1977 0, 0, 0, 0, 0, 0, 0, 0,
1978 0, 0, 0, 0, 0, 0, 0, 0,
1979 0, 0, 0, 0, 0, 0, 0, 0,
1980};
1981
1982static const Q_UINT8 ui_D7[] = {
1983 0, 0, 0, 0, 0, 0, 0, 0,
1984 0, 0, 0, 0, 0, 0, 0, 0,
1985 0, 0, 0, 0, 0, 0, 0, 0,
1986 0, 0, 0, 0, 0, 0, 0, 0,
1987 0, 0, 0, 0, 0, 0, 0, 0,
1988 0, 0, 0, 0, 0, 0, 0, 0,
1989 0, 0, 0, 0, 0, 0, 0, 0,
1990 0, 0, 0, 0, 0, 0, 0, 0,
1991 0, 0, 0, 0, 0, 0, 0, 0,
1992 0, 0, 0, 0, 0, 0, 0, 0,
1993 0, 0, 0, 0, 0, 0, 0, 0,
1994 0, 0, 0, 0, 0, 0, 0, 0,
1995 0, 0, 0, 0, 0, 0, 0, 0,
1996 0, 0, 0, 0, 0, 0, 0, 0,
1997 0, 0, 0, 0, 0, 0, 0, 0,
1998 0, 0, 0, 0, 0, 0, 0, 0,
1999 0, 0, 0, 0, 0, 0, 0, 0,
2000 0, 0, 0, 0, 0, 0, 0, 0,
2001 0, 0, 0, 0, 0, 0, 0, 0,
2002 0, 0, 0, 0, 0, 0, 0, 0,
2003 0, 0, 0, 19, 0, 0, 0, 0,
2004 0, 0, 0, 0, 0, 0, 0, 0,
2005 0, 0, 0, 0, 0, 0, 0, 0,
2006 0, 0, 0, 0, 0, 0, 0, 0,
2007 0, 0, 0, 0, 0, 0, 0, 0,
2008 0, 0, 0, 0, 0, 0, 0, 0,
2009 0, 0, 0, 0, 0, 0, 0, 0,
2010 0, 0, 0, 0, 0, 0, 0, 0,
2011 0, 0, 0, 0, 0, 0, 0, 0,
2012 0, 0, 0, 0, 0, 0, 0, 0,
2013 0, 0, 0, 0, 0, 0, 0, 0,
2014 0, 0, 0, 0, 0, 0, 0, 0,
2015};
2016
2017static const Q_UINT8 ui_D8[] = {
2018 12, 0, 0, 0, 0, 0, 0, 0,
2019 0, 0, 0, 0, 0, 0, 0, 0,
2020 0, 0, 0, 0, 0, 0, 0, 0,
2021 0, 0, 0, 0, 0, 0, 0, 0,
2022 0, 0, 0, 0, 0, 0, 0, 0,
2023 0, 0, 0, 0, 0, 0, 0, 0,
2024 0, 0, 0, 0, 0, 0, 0, 0,
2025 0, 0, 0, 0, 0, 0, 0, 0,
2026 0, 0, 0, 0, 0, 0, 0, 0,
2027 0, 0, 0, 0, 0, 0, 0, 0,
2028 0, 0, 0, 0, 0, 0, 0, 0,
2029 0, 0, 0, 0, 0, 0, 0, 0,
2030 0, 0, 0, 0, 0, 0, 0, 0,
2031 0, 0, 0, 0, 0, 0, 0, 0,
2032 0, 0, 0, 0, 0, 0, 0, 0,
2033 0, 0, 0, 0, 0, 0, 0, 0,
2034 0, 0, 0, 0, 0, 0, 0, 0,
2035 0, 0, 0, 0, 0, 0, 0, 0,
2036 0, 0, 0, 0, 0, 0, 0, 0,
2037 0, 0, 0, 0, 0, 0, 0, 0,
2038 0, 0, 0, 0, 0, 0, 0, 0,
2039 0, 0, 0, 0, 0, 0, 0, 0,
2040 0, 0, 0, 0, 0, 0, 0, 0,
2041 0, 0, 0, 0, 0, 0, 0, 0,
2042 0, 0, 0, 0, 0, 0, 0, 0,
2043 0, 0, 0, 0, 0, 0, 0, 0,
2044 0, 0, 0, 0, 0, 0, 0, 0,
2045 0, 0, 0, 0, 0, 0, 0, 0,
2046 0, 0, 0, 0, 0, 0, 0, 0,
2047 0, 0, 0, 0, 0, 0, 0, 0,
2048 0, 0, 0, 0, 0, 0, 0, 0,
2049 0, 0, 0, 0, 0, 0, 0, 0,
2050};
2051
2052static const Q_UINT8 ui_DB[] = {
2053 0, 0, 0, 0, 0, 0, 0, 0,
2054 0, 0, 0, 0, 0, 0, 0, 0,
2055 0, 0, 0, 0, 0, 0, 0, 0,
2056 0, 0, 0, 0, 0, 0, 0, 0,
2057 0, 0, 0, 0, 0, 0, 0, 0,
2058 0, 0, 0, 0, 0, 0, 0, 0,
2059 0, 0, 0, 0, 0, 0, 0, 0,
2060 0, 0, 0, 0, 0, 0, 0, 0,
2061 0, 0, 0, 0, 0, 0, 0, 0,
2062 0, 0, 0, 0, 0, 0, 0, 0,
2063 0, 0, 0, 0, 0, 0, 0, 0,
2064 0, 0, 0, 0, 0, 0, 0, 0,
2065 0, 0, 0, 0, 0, 0, 0, 0,
2066 0, 0, 0, 0, 0, 0, 0, 0,
2067 0, 0, 0, 0, 0, 0, 0, 0,
2068 0, 0, 0, 0, 0, 0, 0, 12,
2069 12, 0, 0, 0, 0, 0, 0, 0,
2070 0, 0, 0, 0, 0, 0, 0, 0,
2071 0, 0, 0, 0, 0, 0, 0, 0,
2072 0, 0, 0, 0, 0, 0, 0, 0,
2073 0, 0, 0, 0, 0, 0, 0, 0,
2074 0, 0, 0, 0, 0, 0, 0, 0,
2075 0, 0, 0, 0, 0, 0, 0, 0,
2076 0, 0, 0, 0, 0, 0, 0, 0,
2077 0, 0, 0, 0, 0, 0, 0, 0,
2078 0, 0, 0, 0, 0, 0, 0, 0,
2079 0, 0, 0, 0, 0, 0, 0, 0,
2080 0, 0, 0, 0, 0, 0, 0, 0,
2081 0, 0, 0, 0, 0, 0, 0, 0,
2082 0, 0, 0, 0, 0, 0, 0, 0,
2083 0, 0, 0, 0, 0, 0, 0, 0,
2084 0, 0, 0, 0, 0, 0, 0, 12,
2085};
2086
2087static const Q_UINT8 ui_DF[] = {
2088 0, 0, 0, 0, 0, 0, 0, 0,
2089 0, 0, 0, 0, 0, 0, 0, 0,
2090 0, 0, 0, 0, 0, 0, 0, 0,
2091 0, 0, 0, 0, 0, 0, 0, 0,
2092 0, 0, 0, 0, 0, 0, 0, 0,
2093 0, 0, 0, 0, 0, 0, 0, 0,
2094 0, 0, 0, 0, 0, 0, 0, 0,
2095 0, 0, 0, 0, 0, 0, 0, 0,
2096 0, 0, 0, 0, 0, 0, 0, 0,
2097 0, 0, 0, 0, 0, 0, 0, 0,
2098 0, 0, 0, 0, 0, 0, 0, 0,
2099 0, 0, 0, 0, 0, 0, 0, 0,
2100 0, 0, 0, 0, 0, 0, 0, 0,
2101 0, 0, 0, 0, 0, 0, 0, 0,
2102 0, 0, 0, 0, 0, 0, 0, 0,
2103 0, 0, 0, 0, 0, 0, 0, 0,
2104 0, 0, 0, 0, 0, 0, 0, 0,
2105 0, 0, 0, 0, 0, 0, 0, 0,
2106 0, 0, 0, 0, 0, 0, 0, 0,
2107 0, 0, 0, 0, 0, 0, 0, 0,
2108 0, 0, 0, 0, 0, 0, 0, 0,
2109 0, 0, 0, 0, 0, 0, 0, 0,
2110 0, 0, 0, 0, 0, 0, 0, 0,
2111 0, 0, 0, 0, 0, 0, 0, 0,
2112 0, 0, 0, 0, 0, 0, 0, 0,
2113 0, 0, 0, 0, 0, 0, 0, 0,
2114 0, 0, 0, 0, 0, 0, 0, 0,
2115 0, 0, 0, 0, 0, 0, 0, 0,
2116 0, 0, 0, 0, 0, 0, 0, 0,
2117 0, 0, 0, 0, 0, 0, 0, 0,
2118 0, 0, 0, 0, 0, 0, 0, 0,
2119 0, 0, 0, 0, 0, 0, 0, 12,
2120};
2121
2122static const Q_UINT8 ui_E0[] = {
2123 13, 0, 0, 0, 0, 0, 0, 0,
2124 0, 0, 0, 0, 0, 0, 0, 0,
2125 0, 0, 0, 0, 0, 0, 0, 0,
2126 0, 0, 0, 0, 0, 0, 0, 0,
2127 0, 0, 0, 0, 0, 0, 0, 0,
2128 0, 0, 0, 0, 0, 0, 0, 0,
2129 0, 0, 0, 0, 0, 0, 0, 0,
2130 0, 0, 0, 0, 0, 0, 0, 0,
2131 0, 0, 0, 0, 0, 0, 0, 0,
2132 0, 0, 0, 0, 0, 0, 0, 0,
2133 0, 0, 0, 0, 0, 0, 0, 0,
2134 0, 0, 0, 0, 0, 0, 0, 0,
2135 0, 0, 0, 0, 0, 0, 0, 0,
2136 0, 0, 0, 0, 0, 0, 0, 0,
2137 0, 0, 0, 0, 0, 0, 0, 0,
2138 0, 0, 0, 0, 0, 0, 0, 0,
2139 0, 0, 0, 0, 0, 0, 0, 0,
2140 0, 0, 0, 0, 0, 0, 0, 0,
2141 0, 0, 0, 0, 0, 0, 0, 0,
2142 0, 0, 0, 0, 0, 0, 0, 0,
2143 0, 0, 0, 0, 0, 0, 0, 0,
2144 0, 0, 0, 0, 0, 0, 0, 0,
2145 0, 0, 0, 0, 0, 0, 0, 0,
2146 0, 0, 0, 0, 0, 0, 0, 0,
2147 0, 0, 0, 0, 0, 0, 0, 0,
2148 0, 0, 0, 0, 0, 0, 0, 0,
2149 0, 0, 0, 0, 0, 0, 0, 0,
2150 0, 0, 0, 0, 0, 0, 0, 0,
2151 0, 0, 0, 0, 0, 0, 0, 0,
2152 0, 0, 0, 0, 0, 0, 0, 0,
2153 0, 0, 0, 0, 0, 0, 0, 0,
2154 0, 0, 0, 0, 0, 0, 0, 0,
2155};
2156
2157static const Q_UINT8 ui_F8[] = {
2158 0, 0, 0, 0, 0, 0, 0, 0,
2159 0, 0, 0, 0, 0, 0, 0, 0,
2160 0, 0, 0, 0, 0, 0, 0, 0,
2161 0, 0, 0, 0, 0, 0, 0, 0,
2162 0, 0, 0, 0, 0, 0, 0, 0,
2163 0, 0, 0, 0, 0, 0, 0, 0,
2164 0, 0, 0, 0, 0, 0, 0, 0,
2165 0, 0, 0, 0, 0, 0, 0, 0,
2166 0, 0, 0, 0, 0, 0, 0, 0,
2167 0, 0, 0, 0, 0, 0, 0, 0,
2168 0, 0, 0, 0, 0, 0, 0, 0,
2169 0, 0, 0, 0, 0, 0, 0, 0,
2170 0, 0, 0, 0, 0, 0, 0, 0,
2171 0, 0, 0, 0, 0, 0, 0, 0,
2172 0, 0, 0, 0, 0, 0, 0, 0,
2173 0, 0, 0, 0, 0, 0, 0, 0,
2174 0, 0, 0, 0, 0, 0, 0, 0,
2175 0, 0, 0, 0, 0, 0, 0, 0,
2176 0, 0, 0, 0, 0, 0, 0, 0,
2177 0, 0, 0, 0, 0, 0, 0, 0,
2178 0, 0, 0, 0, 0, 0, 0, 0,
2179 0, 0, 0, 0, 0, 0, 0, 0,
2180 0, 0, 0, 0, 0, 0, 0, 0,
2181 0, 0, 0, 0, 0, 0, 0, 0,
2182 0, 0, 0, 0, 0, 0, 0, 0,
2183 0, 0, 0, 0, 0, 0, 0, 0,
2184 0, 0, 0, 0, 0, 0, 0, 0,
2185 0, 0, 0, 0, 0, 0, 0, 0,
2186 0, 0, 0, 0, 0, 0, 0, 0,
2187 0, 0, 0, 0, 0, 0, 0, 0,
2188 0, 0, 0, 0, 0, 0, 0, 0,
2189 0, 0, 0, 0, 0, 0, 0, 13,
2190};
2191
2192static const Q_UINT8 ui_FA[] = {
2193 19, 19, 19, 19, 19, 19, 19, 19,
2194 19, 19, 19, 19, 19, 19, 19, 19,
2195 19, 19, 19, 19, 19, 19, 19, 19,
2196 19, 19, 19, 19, 19, 19, 19, 19,
2197 19, 19, 19, 19, 19, 19, 19, 19,
2198 19, 19, 19, 19, 19, 19, 0, 0,
2199 0, 0, 0, 0, 0, 0, 0, 0,
2200 0, 0, 0, 0, 0, 0, 0, 0,
2201 0, 0, 0, 0, 0, 0, 0, 0,
2202 0, 0, 0, 0, 0, 0, 0, 0,
2203 0, 0, 0, 0, 0, 0, 0, 0,
2204 0, 0, 0, 0, 0, 0, 0, 0,
2205 0, 0, 0, 0, 0, 0, 0, 0,
2206 0, 0, 0, 0, 0, 0, 0, 0,
2207 0, 0, 0, 0, 0, 0, 0, 0,
2208 0, 0, 0, 0, 0, 0, 0, 0,
2209 0, 0, 0, 0, 0, 0, 0, 0,
2210 0, 0, 0, 0, 0, 0, 0, 0,
2211 0, 0, 0, 0, 0, 0, 0, 0,
2212 0, 0, 0, 0, 0, 0, 0, 0,
2213 0, 0, 0, 0, 0, 0, 0, 0,
2214 0, 0, 0, 0, 0, 0, 0, 0,
2215 0, 0, 0, 0, 0, 0, 0, 0,
2216 0, 0, 0, 0, 0, 0, 0, 0,
2217 0, 0, 0, 0, 0, 0, 0, 0,
2218 0, 0, 0, 0, 0, 0, 0, 0,
2219 0, 0, 0, 0, 0, 0, 0, 0,
2220 0, 0, 0, 0, 0, 0, 0, 0,
2221 0, 0, 0, 0, 0, 0, 0, 0,
2222 0, 0, 0, 0, 0, 0, 0, 0,
2223 0, 0, 0, 0, 0, 0, 0, 0,
2224 0, 0, 0, 0, 0, 0, 0, 0,
2225};
2226
2227static const Q_UINT8 ui_FB[] = {
2228 16, 16, 16, 16, 16, 16, 16, 0,
2229 0, 0, 0, 0, 0, 0, 0, 0,
2230 0, 0, 0, 16, 16, 16, 16, 16,
2231 0, 0, 0, 0, 0, 19, 1, 19,
2232 19, 19, 19, 19, 19, 19, 19, 19,
2233 19, 27, 19, 19, 19, 19, 19, 19,
2234 19, 19, 19, 19, 19, 19, 19, 0,
2235 19, 19, 19, 19, 19, 0, 19, 0,
2236 19, 19, 0, 19, 19, 0, 19, 19,
2237 19, 19, 19, 19, 19, 19, 19, 19,
2238 19, 19, 19, 19, 19, 19, 19, 19,
2239 19, 19, 19, 19, 19, 19, 19, 19,
2240 19, 19, 19, 19, 19, 19, 19, 19,
2241 19, 19, 19, 19, 19, 19, 19, 19,
2242 19, 19, 19, 19, 19, 19, 19, 19,
2243 19, 19, 19, 19, 19, 19, 19, 19,
2244 19, 19, 19, 19, 19, 19, 19, 19,
2245 19, 19, 19, 19, 19, 19, 19, 19,
2246 19, 19, 19, 19, 19, 19, 19, 19,
2247 19, 19, 19, 19, 19, 19, 19, 19,
2248 19, 19, 19, 19, 19, 19, 19, 19,
2249 19, 19, 19, 19, 19, 19, 19, 19,
2250 19, 19, 0, 0, 0, 0, 0, 0,
2251 0, 0, 0, 0, 0, 0, 0, 0,
2252 0, 0, 0, 0, 0, 0, 0, 0,
2253 0, 0, 0, 0, 0, 0, 0, 0,
2254 0, 0, 0, 19, 19, 19, 19, 19,
2255 19, 19, 19, 19, 19, 19, 19, 19,
2256 19, 19, 19, 19, 19, 19, 19, 19,
2257 19, 19, 19, 19, 19, 19, 19, 19,
2258 19, 19, 19, 19, 19, 19, 19, 19,
2259 19, 19, 19, 19, 19, 19, 19, 19,
2260};
2261
2262static const Q_UINT8 ui_FD[] = {
2263 19, 19, 19, 19, 19, 19, 19, 19,
2264 19, 19, 19, 19, 19, 19, 19, 19,
2265 19, 19, 19, 19, 19, 19, 19, 19,
2266 19, 19, 19, 19, 19, 19, 19, 19,
2267 19, 19, 19, 19, 19, 19, 19, 19,
2268 19, 19, 19, 19, 19, 19, 19, 19,
2269 19, 19, 19, 19, 19, 19, 19, 19,
2270 19, 19, 19, 19, 19, 19, 22, 23,
2271 0, 0, 0, 0, 0, 0, 0, 0,
2272 0, 0, 0, 0, 0, 0, 0, 0,
2273 19, 19, 19, 19, 19, 19, 19, 19,
2274 19, 19, 19, 19, 19, 19, 19, 19,
2275 19, 19, 19, 19, 19, 19, 19, 19,
2276 19, 19, 19, 19, 19, 19, 19, 19,
2277 19, 19, 19, 19, 19, 19, 19, 19,
2278 19, 19, 19, 19, 19, 19, 19, 19,
2279 19, 19, 19, 19, 19, 19, 19, 19,
2280 19, 19, 19, 19, 19, 19, 19, 19,
2281 0, 0, 19, 19, 19, 19, 19, 19,
2282 19, 19, 19, 19, 19, 19, 19, 19,
2283 19, 19, 19, 19, 19, 19, 19, 19,
2284 19, 19, 19, 19, 19, 19, 19, 19,
2285 19, 19, 19, 19, 19, 19, 19, 19,
2286 19, 19, 19, 19, 19, 19, 19, 19,
2287 19, 19, 19, 19, 19, 19, 19, 19,
2288 0, 0, 0, 0, 0, 0, 0, 0,
2289 0, 0, 0, 0, 0, 0, 0, 0,
2290 0, 0, 0, 0, 0, 0, 0, 0,
2291 0, 0, 0, 0, 0, 0, 0, 0,
2292 0, 0, 0, 0, 0, 0, 0, 0,
2293 19, 19, 19, 19, 19, 19, 19, 19,
2294 19, 19, 19, 19, 0, 0, 0, 0,
2295};
2296
2297static const Q_UINT8 ui_FE[] = {
2298 0, 0, 0, 0, 0, 0, 0, 0,
2299 0, 0, 0, 0, 0, 0, 0, 0,
2300 0, 0, 0, 0, 0, 0, 0, 0,
2301 0, 0, 0, 0, 0, 0, 0, 0,
2302 1, 1, 1, 1, 0, 0, 0, 0,
2303 0, 0, 0, 0, 0, 0, 0, 0,
2304 26, 21, 21, 20, 20, 22, 23, 22,
2305 23, 22, 23, 22, 23, 22, 23, 22,
2306 23, 22, 23, 22, 23, 0, 0, 0,
2307 0, 26, 26, 26, 26, 20, 20, 20,
2308 26, 26, 26, 0, 26, 26, 26, 26,
2309 21, 22, 23, 22, 23, 22, 23, 26,
2310 26, 26, 27, 21, 27, 27, 27, 0,
2311 26, 28, 26, 26, 0, 0, 0, 0,
2312 19, 19, 19, 0, 19, 0, 19, 19,
2313 19, 19, 19, 19, 19, 19, 19, 19,
2314 19, 19, 19, 19, 19, 19, 19, 19,
2315 19, 19, 19, 19, 19, 19, 19, 19,
2316 19, 19, 19, 19, 19, 19, 19, 19,
2317 19, 19, 19, 19, 19, 19, 19, 19,
2318 19, 19, 19, 19, 19, 19, 19, 19,
2319 19, 19, 19, 19, 19, 19, 19, 19,
2320 19, 19, 19, 19, 19, 19, 19, 19,
2321 19, 19, 19, 19, 19, 19, 19, 19,
2322 19, 19, 19, 19, 19, 19, 19, 19,
2323 19, 19, 19, 19, 19, 19, 19, 19,
2324 19, 19, 19, 19, 19, 19, 19, 19,
2325 19, 19, 19, 19, 19, 19, 19, 19,
2326 19, 19, 19, 19, 19, 19, 19, 19,
2327 19, 19, 19, 19, 19, 19, 19, 19,
2328 19, 19, 19, 19, 19, 19, 19, 19,
2329 19, 19, 19, 19, 19, 0, 0, 11,
2330};
2331
2332static const Q_UINT8 ui_FF[] = {
2333 0, 26, 26, 26, 28, 26, 26, 26,
2334 22, 23, 26, 27, 26, 21, 26, 26,
2335 4, 4, 4, 4, 4, 4, 4, 4,
2336 4, 4, 26, 26, 27, 27, 27, 26,
2337 26, 15, 15, 15, 15, 15, 15, 15,
2338 15, 15, 15, 15, 15, 15, 15, 15,
2339 15, 15, 15, 15, 15, 15, 15, 15,
2340 15, 15, 15, 22, 26, 23, 29, 20,
2341 29, 16, 16, 16, 16, 16, 16, 16,
2342 16, 16, 16, 16, 16, 16, 16, 16,
2343 16, 16, 16, 16, 16, 16, 16, 16,
2344 16, 16, 16, 22, 27, 23, 27, 0,
2345 0, 26, 22, 23, 26, 20, 19, 19,
2346 19, 19, 19, 19, 19, 19, 19, 19,
2347 18, 19, 19, 19, 19, 19, 19, 19,
2348 19, 19, 19, 19, 19, 19, 19, 19,
2349 19, 19, 19, 19, 19, 19, 19, 19,
2350 19, 19, 19, 19, 19, 19, 19, 19,
2351 19, 19, 19, 19, 19, 19, 19, 19,
2352 19, 19, 19, 19, 19, 19, 18, 18,
2353 19, 19, 19, 19, 19, 19, 19, 19,
2354 19, 19, 19, 19, 19, 19, 19, 19,
2355 19, 19, 19, 19, 19, 19, 19, 19,
2356 19, 19, 19, 19, 19, 19, 19, 0,
2357 0, 0, 19, 19, 19, 19, 19, 19,
2358 0, 0, 19, 19, 19, 19, 19, 19,
2359 0, 0, 19, 19, 19, 19, 19, 19,
2360 0, 0, 19, 19, 19, 0, 0, 0,
2361 28, 28, 27, 29, 30, 28, 28, 0,
2362 30, 27, 27, 27, 27, 30, 30, 0,
2363 0, 0, 0, 0, 0, 0, 0, 0,
2364 0, 11, 11, 11, 30, 30, 0, 0,
2365};
2366
2367static const Q_UINT8 * const unicode_info[256] = {
2368 ui_00, ui_01, ui_02, ui_03, ui_04, ui_05, ui_06, ui_07,
2369 ui_08, ui_09, ui_0A, ui_0B, ui_0C, ui_0D, ui_0E, ui_0F,
2370 ui_10, ui_11, ui_12, ui_13, ui_14, ui_15, ui_16, ui_17,
2371 ui_18, ui_08, ui_08, ui_08, ui_08, ui_08, ui_1E, ui_1F,
2372 ui_20, ui_21, ui_22, ui_23, ui_24, ui_25, ui_26, ui_27,
2373 ui_28, ui_08, ui_08, ui_08, ui_08, ui_08, ui_2E, ui_2F,
2374 ui_30, ui_31, ui_32, ui_33, ui_34, ui_08, ui_08, ui_08,
2375 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2376 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2377 ui_08, ui_08, ui_08, ui_08, ui_08, ui_4D, ui_34, ui_08,
2378 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2379 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2380 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2381 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2382 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2383 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2384 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2385 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2386 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2387 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_9F,
2388 ui_15, ui_15, ui_15, ui_15, ui_A4, ui_08, ui_08, ui_08,
2389 ui_08, ui_08, ui_08, ui_08, ui_34, ui_08, ui_08, ui_08,
2390 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2391 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2392 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2393 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2394 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_D7,
2395 ui_D8, ui_08, ui_08, ui_DB, ui_D8, ui_08, ui_08, ui_DF,
2396 ui_E0, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2397 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2398 ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08, ui_08,
2399 ui_F8, ui_15, ui_FA, ui_FB, ui_15, ui_FD, ui_FE, ui_FF,
2400};
2401// 15616 bytes
2402
2403static const Q_UINT16 decomposition_map [] = {
2404 0,
2405 3, 0x00A0, 0x0020, 0,
2406 16, 0x00A8, 0x0020, 0x0308, 0,
2407 9, 0x00AA, 0x0061, 0,
2408 16, 0x00AF, 0x0020, 0x0304, 0,
2409 9, 0x00B2, 0x0032, 0,
2410 9, 0x00B3, 0x0033, 0,
2411 16, 0x00B4, 0x0020, 0x0301, 0,
2412 16, 0x00B5, 0x03BC, 0,
2413 16, 0x00B8, 0x0020, 0x0327, 0,
2414 9, 0x00B9, 0x0031, 0,
2415 9, 0x00BA, 0x006F, 0,
2416 17, 0x00BC, 0x0031, 0x2044, 0x0034, 0,
2417 17, 0x00BD, 0x0031, 0x2044, 0x0032, 0,
2418 17, 0x00BE, 0x0033, 0x2044, 0x0034, 0,
2419 1, 0x00C0, 0x0041, 0x0300, 0,
2420 1, 0x00C1, 0x0041, 0x0301, 0,
2421 1, 0x00C2, 0x0041, 0x0302, 0,
2422 1, 0x00C3, 0x0041, 0x0303, 0,
2423 1, 0x00C4, 0x0041, 0x0308, 0,
2424 1, 0x00C5, 0x0041, 0x030A, 0,
2425 1, 0x00C7, 0x0043, 0x0327, 0,
2426 1, 0x00C8, 0x0045, 0x0300, 0,
2427 1, 0x00C9, 0x0045, 0x0301, 0,
2428 1, 0x00CA, 0x0045, 0x0302, 0,
2429 1, 0x00CB, 0x0045, 0x0308, 0,
2430 1, 0x00CC, 0x0049, 0x0300, 0,
2431 1, 0x00CD, 0x0049, 0x0301, 0,
2432 1, 0x00CE, 0x0049, 0x0302, 0,
2433 1, 0x00CF, 0x0049, 0x0308, 0,
2434 1, 0x00D1, 0x004E, 0x0303, 0,
2435 1, 0x00D2, 0x004F, 0x0300, 0,
2436 1, 0x00D3, 0x004F, 0x0301, 0,
2437 1, 0x00D4, 0x004F, 0x0302, 0,
2438 1, 0x00D5, 0x004F, 0x0303, 0,
2439 1, 0x00D6, 0x004F, 0x0308, 0,
2440 1, 0x00D9, 0x0055, 0x0300, 0,
2441 1, 0x00DA, 0x0055, 0x0301, 0,
2442 1, 0x00DB, 0x0055, 0x0302, 0,
2443 1, 0x00DC, 0x0055, 0x0308, 0,
2444 1, 0x00DD, 0x0059, 0x0301, 0,
2445 1, 0x00E0, 0x0061, 0x0300, 0,
2446 1, 0x00E1, 0x0061, 0x0301, 0,
2447 1, 0x00E2, 0x0061, 0x0302, 0,
2448 1, 0x00E3, 0x0061, 0x0303, 0,
2449 1, 0x00E4, 0x0061, 0x0308, 0,
2450 1, 0x00E5, 0x0061, 0x030A, 0,
2451 1, 0x00E7, 0x0063, 0x0327, 0,
2452 1, 0x00E8, 0x0065, 0x0300, 0,
2453 1, 0x00E9, 0x0065, 0x0301, 0,
2454 1, 0x00EA, 0x0065, 0x0302, 0,
2455 1, 0x00EB, 0x0065, 0x0308, 0,
2456 1, 0x00EC, 0x0069, 0x0300, 0,
2457 1, 0x00ED, 0x0069, 0x0301, 0,
2458 1, 0x00EE, 0x0069, 0x0302, 0,
2459 1, 0x00EF, 0x0069, 0x0308, 0,
2460 1, 0x00F1, 0x006E, 0x0303, 0,
2461 1, 0x00F2, 0x006F, 0x0300, 0,
2462 1, 0x00F3, 0x006F, 0x0301, 0,
2463 1, 0x00F4, 0x006F, 0x0302, 0,
2464 1, 0x00F5, 0x006F, 0x0303, 0,
2465 1, 0x00F6, 0x006F, 0x0308, 0,
2466 1, 0x00F9, 0x0075, 0x0300, 0,
2467 1, 0x00FA, 0x0075, 0x0301, 0,
2468 1, 0x00FB, 0x0075, 0x0302, 0,
2469 1, 0x00FC, 0x0075, 0x0308, 0,
2470 1, 0x00FD, 0x0079, 0x0301, 0,
2471 1, 0x00FF, 0x0079, 0x0308, 0,
2472 1, 0x0100, 0x0041, 0x0304, 0,
2473 1, 0x0101, 0x0061, 0x0304, 0,
2474 1, 0x0102, 0x0041, 0x0306, 0,
2475 1, 0x0103, 0x0061, 0x0306, 0,
2476 1, 0x0104, 0x0041, 0x0328, 0,
2477 1, 0x0105, 0x0061, 0x0328, 0,
2478 1, 0x0106, 0x0043, 0x0301, 0,
2479 1, 0x0107, 0x0063, 0x0301, 0,
2480 1, 0x0108, 0x0043, 0x0302, 0,
2481 1, 0x0109, 0x0063, 0x0302, 0,
2482 1, 0x010A, 0x0043, 0x0307, 0,
2483 1, 0x010B, 0x0063, 0x0307, 0,
2484 1, 0x010C, 0x0043, 0x030C, 0,
2485 1, 0x010D, 0x0063, 0x030C, 0,
2486 1, 0x010E, 0x0044, 0x030C, 0,
2487 1, 0x010F, 0x0064, 0x030C, 0,
2488 1, 0x0112, 0x0045, 0x0304, 0,
2489 1, 0x0113, 0x0065, 0x0304, 0,
2490 1, 0x0114, 0x0045, 0x0306, 0,
2491 1, 0x0115, 0x0065, 0x0306, 0,
2492 1, 0x0116, 0x0045, 0x0307, 0,
2493 1, 0x0117, 0x0065, 0x0307, 0,
2494 1, 0x0118, 0x0045, 0x0328, 0,
2495 1, 0x0119, 0x0065, 0x0328, 0,
2496 1, 0x011A, 0x0045, 0x030C, 0,
2497 1, 0x011B, 0x0065, 0x030C, 0,
2498 1, 0x011C, 0x0047, 0x0302, 0,
2499 1, 0x011D, 0x0067, 0x0302, 0,
2500 1, 0x011E, 0x0047, 0x0306, 0,
2501 1, 0x011F, 0x0067, 0x0306, 0,
2502 1, 0x0120, 0x0047, 0x0307, 0,
2503 1, 0x0121, 0x0067, 0x0307, 0,
2504 1, 0x0122, 0x0047, 0x0327, 0,
2505 1, 0x0123, 0x0067, 0x0327, 0,
2506 1, 0x0124, 0x0048, 0x0302, 0,
2507 1, 0x0125, 0x0068, 0x0302, 0,
2508 1, 0x0128, 0x0049, 0x0303, 0,
2509 1, 0x0129, 0x0069, 0x0303, 0,
2510 1, 0x012A, 0x0049, 0x0304, 0,
2511 1, 0x012B, 0x0069, 0x0304, 0,
2512 1, 0x012C, 0x0049, 0x0306, 0,
2513 1, 0x012D, 0x0069, 0x0306, 0,
2514 1, 0x012E, 0x0049, 0x0328, 0,
2515 1, 0x012F, 0x0069, 0x0328, 0,
2516 1, 0x0130, 0x0049, 0x0307, 0,
2517 16, 0x0132, 0x0049, 0x004A, 0,
2518 16, 0x0133, 0x0069, 0x006A, 0,
2519 1, 0x0134, 0x004A, 0x0302, 0,
2520 1, 0x0135, 0x006A, 0x0302, 0,
2521 1, 0x0136, 0x004B, 0x0327, 0,
2522 1, 0x0137, 0x006B, 0x0327, 0,
2523 1, 0x0139, 0x004C, 0x0301, 0,
2524 1, 0x013A, 0x006C, 0x0301, 0,
2525 1, 0x013B, 0x004C, 0x0327, 0,
2526 1, 0x013C, 0x006C, 0x0327, 0,
2527 1, 0x013D, 0x004C, 0x030C, 0,
2528 1, 0x013E, 0x006C, 0x030C, 0,
2529 16, 0x013F, 0x004C, 0x00B7, 0,
2530 16, 0x0140, 0x006C, 0x00B7, 0,
2531 1, 0x0143, 0x004E, 0x0301, 0,
2532 1, 0x0144, 0x006E, 0x0301, 0,
2533 1, 0x0145, 0x004E, 0x0327, 0,
2534 1, 0x0146, 0x006E, 0x0327, 0,
2535 1, 0x0147, 0x004E, 0x030C, 0,
2536 1, 0x0148, 0x006E, 0x030C, 0,
2537 16, 0x0149, 0x02BC, 0x006E, 0,
2538 1, 0x014C, 0x004F, 0x0304, 0,
2539 1, 0x014D, 0x006F, 0x0304, 0,
2540 1, 0x014E, 0x004F, 0x0306, 0,
2541 1, 0x014F, 0x006F, 0x0306, 0,
2542 1, 0x0150, 0x004F, 0x030B, 0,
2543 1, 0x0151, 0x006F, 0x030B, 0,
2544 1, 0x0154, 0x0052, 0x0301, 0,
2545 1, 0x0155, 0x0072, 0x0301, 0,
2546 1, 0x0156, 0x0052, 0x0327, 0,
2547 1, 0x0157, 0x0072, 0x0327, 0,
2548 1, 0x0158, 0x0052, 0x030C, 0,
2549 1, 0x0159, 0x0072, 0x030C, 0,
2550 1, 0x015A, 0x0053, 0x0301, 0,
2551 1, 0x015B, 0x0073, 0x0301, 0,
2552 1, 0x015C, 0x0053, 0x0302, 0,
2553 1, 0x015D, 0x0073, 0x0302, 0,
2554 1, 0x015E, 0x0053, 0x0327, 0,
2555 1, 0x015F, 0x0073, 0x0327, 0,
2556 1, 0x0160, 0x0053, 0x030C, 0,
2557 1, 0x0161, 0x0073, 0x030C, 0,
2558 1, 0x0162, 0x0054, 0x0327, 0,
2559 1, 0x0163, 0x0074, 0x0327, 0,
2560 1, 0x0164, 0x0054, 0x030C, 0,
2561 1, 0x0165, 0x0074, 0x030C, 0,
2562 1, 0x0168, 0x0055, 0x0303, 0,
2563 1, 0x0169, 0x0075, 0x0303, 0,
2564 1, 0x016A, 0x0055, 0x0304, 0,
2565 1, 0x016B, 0x0075, 0x0304, 0,
2566 1, 0x016C, 0x0055, 0x0306, 0,
2567 1, 0x016D, 0x0075, 0x0306, 0,
2568 1, 0x016E, 0x0055, 0x030A, 0,
2569 1, 0x016F, 0x0075, 0x030A, 0,
2570 1, 0x0170, 0x0055, 0x030B, 0,
2571 1, 0x0171, 0x0075, 0x030B, 0,
2572 1, 0x0172, 0x0055, 0x0328, 0,
2573 1, 0x0173, 0x0075, 0x0328, 0,
2574 1, 0x0174, 0x0057, 0x0302, 0,
2575 1, 0x0175, 0x0077, 0x0302, 0,
2576 1, 0x0176, 0x0059, 0x0302, 0,
2577 1, 0x0177, 0x0079, 0x0302, 0,
2578 1, 0x0178, 0x0059, 0x0308, 0,
2579 1, 0x0179, 0x005A, 0x0301, 0,
2580 1, 0x017A, 0x007A, 0x0301, 0,
2581 1, 0x017B, 0x005A, 0x0307, 0,
2582 1, 0x017C, 0x007A, 0x0307, 0,
2583 1, 0x017D, 0x005A, 0x030C, 0,
2584 1, 0x017E, 0x007A, 0x030C, 0,
2585 16, 0x017F, 0x0073, 0,
2586 1, 0x01A0, 0x004F, 0x031B, 0,
2587 1, 0x01A1, 0x006F, 0x031B, 0,
2588 1, 0x01AF, 0x0055, 0x031B, 0,
2589 1, 0x01B0, 0x0075, 0x031B, 0,
2590 16, 0x01C4, 0x0044, 0x017D, 0,
2591 16, 0x01C5, 0x0044, 0x017E, 0,
2592 16, 0x01C6, 0x0064, 0x017E, 0,
2593 16, 0x01C7, 0x004C, 0x004A, 0,
2594 16, 0x01C8, 0x004C, 0x006A, 0,
2595 16, 0x01C9, 0x006C, 0x006A, 0,
2596 16, 0x01CA, 0x004E, 0x004A, 0,
2597 16, 0x01CB, 0x004E, 0x006A, 0,
2598 16, 0x01CC, 0x006E, 0x006A, 0,
2599 1, 0x01CD, 0x0041, 0x030C, 0,
2600 1, 0x01CE, 0x0061, 0x030C, 0,
2601 1, 0x01CF, 0x0049, 0x030C, 0,
2602 1, 0x01D0, 0x0069, 0x030C, 0,
2603 1, 0x01D1, 0x004F, 0x030C, 0,
2604 1, 0x01D2, 0x006F, 0x030C, 0,
2605 1, 0x01D3, 0x0055, 0x030C, 0,
2606 1, 0x01D4, 0x0075, 0x030C, 0,
2607 1, 0x01D5, 0x00DC, 0x0304, 0,
2608 1, 0x01D6, 0x00FC, 0x0304, 0,
2609 1, 0x01D7, 0x00DC, 0x0301, 0,
2610 1, 0x01D8, 0x00FC, 0x0301, 0,
2611 1, 0x01D9, 0x00DC, 0x030C, 0,
2612 1, 0x01DA, 0x00FC, 0x030C, 0,
2613 1, 0x01DB, 0x00DC, 0x0300, 0,
2614 1, 0x01DC, 0x00FC, 0x0300, 0,
2615 1, 0x01DE, 0x00C4, 0x0304, 0,
2616 1, 0x01DF, 0x00E4, 0x0304, 0,
2617 1, 0x01E0, 0x0226, 0x0304, 0,
2618 1, 0x01E1, 0x0227, 0x0304, 0,
2619 1, 0x01E2, 0x00C6, 0x0304, 0,
2620 1, 0x01E3, 0x00E6, 0x0304, 0,
2621 1, 0x01E6, 0x0047, 0x030C, 0,
2622 1, 0x01E7, 0x0067, 0x030C, 0,
2623 1, 0x01E8, 0x004B, 0x030C, 0,
2624 1, 0x01E9, 0x006B, 0x030C, 0,
2625 1, 0x01EA, 0x004F, 0x0328, 0,
2626 1, 0x01EB, 0x006F, 0x0328, 0,
2627 1, 0x01EC, 0x01EA, 0x0304, 0,
2628 1, 0x01ED, 0x01EB, 0x0304, 0,
2629 1, 0x01EE, 0x01B7, 0x030C, 0,
2630 1, 0x01EF, 0x0292, 0x030C, 0,
2631 1, 0x01F0, 0x006A, 0x030C, 0,
2632 16, 0x01F1, 0x0044, 0x005A, 0,
2633 16, 0x01F2, 0x0044, 0x007A, 0,
2634 16, 0x01F3, 0x0064, 0x007A, 0,
2635 1, 0x01F4, 0x0047, 0x0301, 0,
2636 1, 0x01F5, 0x0067, 0x0301, 0,
2637 1, 0x01F8, 0x004E, 0x0300, 0,
2638 1, 0x01F9, 0x006E, 0x0300, 0,
2639 1, 0x01FA, 0x00C5, 0x0301, 0,
2640 1, 0x01FB, 0x00E5, 0x0301, 0,
2641 1, 0x01FC, 0x00C6, 0x0301, 0,
2642 1, 0x01FD, 0x00E6, 0x0301, 0,
2643 1, 0x01FE, 0x00D8, 0x0301, 0,
2644 1, 0x01FF, 0x00F8, 0x0301, 0,
2645 1, 0x0200, 0x0041, 0x030F, 0,
2646 1, 0x0201, 0x0061, 0x030F, 0,
2647 1, 0x0202, 0x0041, 0x0311, 0,
2648 1, 0x0203, 0x0061, 0x0311, 0,
2649 1, 0x0204, 0x0045, 0x030F, 0,
2650 1, 0x0205, 0x0065, 0x030F, 0,
2651 1, 0x0206, 0x0045, 0x0311, 0,
2652 1, 0x0207, 0x0065, 0x0311, 0,
2653 1, 0x0208, 0x0049, 0x030F, 0,
2654 1, 0x0209, 0x0069, 0x030F, 0,
2655 1, 0x020A, 0x0049, 0x0311, 0,
2656 1, 0x020B, 0x0069, 0x0311, 0,
2657 1, 0x020C, 0x004F, 0x030F, 0,
2658 1, 0x020D, 0x006F, 0x030F, 0,
2659 1, 0x020E, 0x004F, 0x0311, 0,
2660 1, 0x020F, 0x006F, 0x0311, 0,
2661 1, 0x0210, 0x0052, 0x030F, 0,
2662 1, 0x0211, 0x0072, 0x030F, 0,
2663 1, 0x0212, 0x0052, 0x0311, 0,
2664 1, 0x0213, 0x0072, 0x0311, 0,
2665 1, 0x0214, 0x0055, 0x030F, 0,
2666 1, 0x0215, 0x0075, 0x030F, 0,
2667 1, 0x0216, 0x0055, 0x0311, 0,
2668 1, 0x0217, 0x0075, 0x0311, 0,
2669 1, 0x0218, 0x0053, 0x0326, 0,
2670 1, 0x0219, 0x0073, 0x0326, 0,
2671 1, 0x021A, 0x0054, 0x0326, 0,
2672 1, 0x021B, 0x0074, 0x0326, 0,
2673 1, 0x021E, 0x0048, 0x030C, 0,
2674 1, 0x021F, 0x0068, 0x030C, 0,
2675 1, 0x0226, 0x0041, 0x0307, 0,
2676 1, 0x0227, 0x0061, 0x0307, 0,
2677 1, 0x0228, 0x0045, 0x0327, 0,
2678 1, 0x0229, 0x0065, 0x0327, 0,
2679 1, 0x022A, 0x00D6, 0x0304, 0,
2680 1, 0x022B, 0x00F6, 0x0304, 0,
2681 1, 0x022C, 0x00D5, 0x0304, 0,
2682 1, 0x022D, 0x00F5, 0x0304, 0,
2683 1, 0x022E, 0x004F, 0x0307, 0,
2684 1, 0x022F, 0x006F, 0x0307, 0,
2685 1, 0x0230, 0x022E, 0x0304, 0,
2686 1, 0x0231, 0x022F, 0x0304, 0,
2687 1, 0x0232, 0x0059, 0x0304, 0,
2688 1, 0x0233, 0x0079, 0x0304, 0,
2689 9, 0x02B0, 0x0068, 0,
2690 9, 0x02B1, 0x0266, 0,
2691 9, 0x02B2, 0x006A, 0,
2692 9, 0x02B3, 0x0072, 0,
2693 9, 0x02B4, 0x0279, 0,
2694 9, 0x02B5, 0x027B, 0,
2695 9, 0x02B6, 0x0281, 0,
2696 9, 0x02B7, 0x0077, 0,
2697 9, 0x02B8, 0x0079, 0,
2698 16, 0x02D8, 0x0020, 0x0306, 0,
2699 16, 0x02D9, 0x0020, 0x0307, 0,
2700 16, 0x02DA, 0x0020, 0x030A, 0,
2701 16, 0x02DB, 0x0020, 0x0328, 0,
2702 16, 0x02DC, 0x0020, 0x0303, 0,
2703 16, 0x02DD, 0x0020, 0x030B, 0,
2704 9, 0x02E0, 0x0263, 0,
2705 9, 0x02E1, 0x006C, 0,
2706 9, 0x02E2, 0x0073, 0,
2707 9, 0x02E3, 0x0078, 0,
2708 9, 0x02E4, 0x0295, 0,
2709 1, 0x0340, 0x0300, 0,
2710 1, 0x0341, 0x0301, 0,
2711 1, 0x0343, 0x0313, 0,
2712 1, 0x0344, 0x0308, 0x0301, 0,
2713 1, 0x0374, 0x02B9, 0,
2714 16, 0x037A, 0x0020, 0x0345, 0,
2715 1, 0x037E, 0x003B, 0,
2716 16, 0x0384, 0x0020, 0x0301, 0,
2717 1, 0x0385, 0x00A8, 0x0301, 0,
2718 1, 0x0386, 0x0391, 0x0301, 0,
2719 1, 0x0387, 0x00B7, 0,
2720 1, 0x0388, 0x0395, 0x0301, 0,
2721 1, 0x0389, 0x0397, 0x0301, 0,
2722 1, 0x038A, 0x0399, 0x0301, 0,
2723 1, 0x038C, 0x039F, 0x0301, 0,
2724 1, 0x038E, 0x03A5, 0x0301, 0,
2725 1, 0x038F, 0x03A9, 0x0301, 0,
2726 1, 0x0390, 0x03CA, 0x0301, 0,
2727 1, 0x03AA, 0x0399, 0x0308, 0,
2728 1, 0x03AB, 0x03A5, 0x0308, 0,
2729 1, 0x03AC, 0x03B1, 0x0301, 0,
2730 1, 0x03AD, 0x03B5, 0x0301, 0,
2731 1, 0x03AE, 0x03B7, 0x0301, 0,
2732 1, 0x03AF, 0x03B9, 0x0301, 0,
2733 1, 0x03B0, 0x03CB, 0x0301, 0,
2734 1, 0x03CA, 0x03B9, 0x0308, 0,
2735 1, 0x03CB, 0x03C5, 0x0308, 0,
2736 1, 0x03CC, 0x03BF, 0x0301, 0,
2737 1, 0x03CD, 0x03C5, 0x0301, 0,
2738 1, 0x03CE, 0x03C9, 0x0301, 0,
2739 16, 0x03D0, 0x03B2, 0,
2740 16, 0x03D1, 0x03B8, 0,
2741 16, 0x03D2, 0x03A5, 0,
2742 1, 0x03D3, 0x03D2, 0x0301, 0,
2743 1, 0x03D4, 0x03D2, 0x0308, 0,
2744 16, 0x03D5, 0x03C6, 0,
2745 16, 0x03D6, 0x03C0, 0,
2746 16, 0x03F0, 0x03BA, 0,
2747 16, 0x03F1, 0x03C1, 0,
2748 16, 0x03F2, 0x03C2, 0,
2749 1, 0x0400, 0x0415, 0x0300, 0,
2750 1, 0x0401, 0x0415, 0x0308, 0,
2751 1, 0x0403, 0x0413, 0x0301, 0,
2752 1, 0x0407, 0x0406, 0x0308, 0,
2753 1, 0x040C, 0x041A, 0x0301, 0,
2754 1, 0x040D, 0x0418, 0x0300, 0,
2755 1, 0x040E, 0x0423, 0x0306, 0,
2756 1, 0x0419, 0x0418, 0x0306, 0,
2757 1, 0x0439, 0x0438, 0x0306, 0,
2758 1, 0x0450, 0x0435, 0x0300, 0,
2759 1, 0x0451, 0x0435, 0x0308, 0,
2760 1, 0x0453, 0x0433, 0x0301, 0,
2761 1, 0x0457, 0x0456, 0x0308, 0,
2762 1, 0x045C, 0x043A, 0x0301, 0,
2763 1, 0x045D, 0x0438, 0x0300, 0,
2764 1, 0x045E, 0x0443, 0x0306, 0,
2765 1, 0x0476, 0x0474, 0x030F, 0,
2766 1, 0x0477, 0x0475, 0x030F, 0,
2767 1, 0x04C1, 0x0416, 0x0306, 0,
2768 1, 0x04C2, 0x0436, 0x0306, 0,
2769 1, 0x04D0, 0x0410, 0x0306, 0,
2770 1, 0x04D1, 0x0430, 0x0306, 0,
2771 1, 0x04D2, 0x0410, 0x0308, 0,
2772 1, 0x04D3, 0x0430, 0x0308, 0,
2773 1, 0x04D6, 0x0415, 0x0306, 0,
2774 1, 0x04D7, 0x0435, 0x0306, 0,
2775 1, 0x04DA, 0x04D8, 0x0308, 0,
2776 1, 0x04DB, 0x04D9, 0x0308, 0,
2777 1, 0x04DC, 0x0416, 0x0308, 0,
2778 1, 0x04DD, 0x0436, 0x0308, 0,
2779 1, 0x04DE, 0x0417, 0x0308, 0,
2780 1, 0x04DF, 0x0437, 0x0308, 0,
2781 1, 0x04E2, 0x0418, 0x0304, 0,
2782 1, 0x04E3, 0x0438, 0x0304, 0,
2783 1, 0x04E4, 0x0418, 0x0308, 0,
2784 1, 0x04E5, 0x0438, 0x0308, 0,
2785 1, 0x04E6, 0x041E, 0x0308, 0,
2786 1, 0x04E7, 0x043E, 0x0308, 0,
2787 1, 0x04EA, 0x04E8, 0x0308, 0,
2788 1, 0x04EB, 0x04E9, 0x0308, 0,
2789 1, 0x04EC, 0x042D, 0x0308, 0,
2790 1, 0x04ED, 0x044D, 0x0308, 0,
2791 1, 0x04EE, 0x0423, 0x0304, 0,
2792 1, 0x04EF, 0x0443, 0x0304, 0,
2793 1, 0x04F0, 0x0423, 0x0308, 0,
2794 1, 0x04F1, 0x0443, 0x0308, 0,
2795 1, 0x04F2, 0x0423, 0x030B, 0,
2796 1, 0x04F3, 0x0443, 0x030B, 0,
2797 1, 0x04F4, 0x0427, 0x0308, 0,
2798 1, 0x04F5, 0x0447, 0x0308, 0,
2799 1, 0x04F8, 0x042B, 0x0308, 0,
2800 1, 0x04F9, 0x044B, 0x0308, 0,
2801 16, 0x0587, 0x0565, 0x0582, 0,
2802 1, 0x0622, 0x0627, 0x0653, 0,
2803 1, 0x0623, 0x0627, 0x0654, 0,
2804 1, 0x0624, 0x0648, 0x0654, 0,
2805 1, 0x0625, 0x0627, 0x0655, 0,
2806 1, 0x0626, 0x064A, 0x0654, 0,
2807 16, 0x0675, 0x0627, 0x0674, 0,
2808 16, 0x0676, 0x0648, 0x0674, 0,
2809 16, 0x0677, 0x06C7, 0x0674, 0,
2810 16, 0x0678, 0x064A, 0x0674, 0,
2811 1, 0x06C0, 0x06D5, 0x0654, 0,
2812 1, 0x06C2, 0x06C1, 0x0654, 0,
2813 1, 0x06D3, 0x06D2, 0x0654, 0,
2814 1, 0x0929, 0x0928, 0x093C, 0,
2815 1, 0x0931, 0x0930, 0x093C, 0,
2816 1, 0x0934, 0x0933, 0x093C, 0,
2817 1, 0x0958, 0x0915, 0x093C, 0,
2818 1, 0x0959, 0x0916, 0x093C, 0,
2819 1, 0x095A, 0x0917, 0x093C, 0,
2820 1, 0x095B, 0x091C, 0x093C, 0,
2821 1, 0x095C, 0x0921, 0x093C, 0,
2822 1, 0x095D, 0x0922, 0x093C, 0,
2823 1, 0x095E, 0x092B, 0x093C, 0,
2824 1, 0x095F, 0x092F, 0x093C, 0,
2825 1, 0x09CB, 0x09C7, 0x09BE, 0,
2826 1, 0x09CC, 0x09C7, 0x09D7, 0,
2827 1, 0x09DC, 0x09A1, 0x09BC, 0,
2828 1, 0x09DD, 0x09A2, 0x09BC, 0,
2829 1, 0x09DF, 0x09AF, 0x09BC, 0,
2830 1, 0x0A33, 0x0A32, 0x0A3C, 0,
2831 1, 0x0A36, 0x0A38, 0x0A3C, 0,
2832 1, 0x0A59, 0x0A16, 0x0A3C, 0,
2833 1, 0x0A5A, 0x0A17, 0x0A3C, 0,
2834 1, 0x0A5B, 0x0A1C, 0x0A3C, 0,
2835 1, 0x0A5E, 0x0A2B, 0x0A3C, 0,
2836 1, 0x0B48, 0x0B47, 0x0B56, 0,
2837 1, 0x0B4B, 0x0B47, 0x0B3E, 0,
2838 1, 0x0B4C, 0x0B47, 0x0B57, 0,
2839 1, 0x0B5C, 0x0B21, 0x0B3C, 0,
2840 1, 0x0B5D, 0x0B22, 0x0B3C, 0,
2841 1, 0x0B94, 0x0B92, 0x0BD7, 0,
2842 1, 0x0BCA, 0x0BC6, 0x0BBE, 0,
2843 1, 0x0BCB, 0x0BC7, 0x0BBE, 0,
2844 1, 0x0BCC, 0x0BC6, 0x0BD7, 0,
2845 1, 0x0C48, 0x0C46, 0x0C56, 0,
2846 1, 0x0CC0, 0x0CBF, 0x0CD5, 0,
2847 1, 0x0CC7, 0x0CC6, 0x0CD5, 0,
2848 1, 0x0CC8, 0x0CC6, 0x0CD6, 0,
2849 1, 0x0CCA, 0x0CC6, 0x0CC2, 0,
2850 1, 0x0CCB, 0x0CCA, 0x0CD5, 0,
2851 1, 0x0D4A, 0x0D46, 0x0D3E, 0,
2852 1, 0x0D4B, 0x0D47, 0x0D3E, 0,
2853 1, 0x0D4C, 0x0D46, 0x0D57, 0,
2854 1, 0x0DDA, 0x0DD9, 0x0DCA, 0,
2855 1, 0x0DDC, 0x0DD9, 0x0DCF, 0,
2856 1, 0x0DDD, 0x0DDC, 0x0DCA, 0,
2857 1, 0x0DDE, 0x0DD9, 0x0DDF, 0,
2858 16, 0x0E33, 0x0E4D, 0x0E32, 0,
2859 16, 0x0EB3, 0x0ECD, 0x0EB2, 0,
2860 16, 0x0EDC, 0x0EAB, 0x0E99, 0,
2861 16, 0x0EDD, 0x0EAB, 0x0EA1, 0,
2862 3, 0x0F0C, 0x0F0B, 0,
2863 1, 0x0F43, 0x0F42, 0x0FB7, 0,
2864 1, 0x0F4D, 0x0F4C, 0x0FB7, 0,
2865 1, 0x0F52, 0x0F51, 0x0FB7, 0,
2866 1, 0x0F57, 0x0F56, 0x0FB7, 0,
2867 1, 0x0F5C, 0x0F5B, 0x0FB7, 0,
2868 1, 0x0F69, 0x0F40, 0x0FB5, 0,
2869 1, 0x0F73, 0x0F71, 0x0F72, 0,
2870 1, 0x0F75, 0x0F71, 0x0F74, 0,
2871 1, 0x0F76, 0x0FB2, 0x0F80, 0,
2872 16, 0x0F77, 0x0FB2, 0x0F81, 0,
2873 1, 0x0F78, 0x0FB3, 0x0F80, 0,
2874 16, 0x0F79, 0x0FB3, 0x0F81, 0,
2875 1, 0x0F81, 0x0F71, 0x0F80, 0,
2876 1, 0x0F93, 0x0F92, 0x0FB7, 0,
2877 1, 0x0F9D, 0x0F9C, 0x0FB7, 0,
2878 1, 0x0FA2, 0x0FA1, 0x0FB7, 0,
2879 1, 0x0FA7, 0x0FA6, 0x0FB7, 0,
2880 1, 0x0FAC, 0x0FAB, 0x0FB7, 0,
2881 1, 0x0FB9, 0x0F90, 0x0FB5, 0,
2882 1, 0x1026, 0x1025, 0x102E, 0,
2883 1, 0x1E00, 0x0041, 0x0325, 0,
2884 1, 0x1E01, 0x0061, 0x0325, 0,
2885 1, 0x1E02, 0x0042, 0x0307, 0,
2886 1, 0x1E03, 0x0062, 0x0307, 0,
2887 1, 0x1E04, 0x0042, 0x0323, 0,
2888 1, 0x1E05, 0x0062, 0x0323, 0,
2889 1, 0x1E06, 0x0042, 0x0331, 0,
2890 1, 0x1E07, 0x0062, 0x0331, 0,
2891 1, 0x1E08, 0x00C7, 0x0301, 0,
2892 1, 0x1E09, 0x00E7, 0x0301, 0,
2893 1, 0x1E0A, 0x0044, 0x0307, 0,
2894 1, 0x1E0B, 0x0064, 0x0307, 0,
2895 1, 0x1E0C, 0x0044, 0x0323, 0,
2896 1, 0x1E0D, 0x0064, 0x0323, 0,
2897 1, 0x1E0E, 0x0044, 0x0331, 0,
2898 1, 0x1E0F, 0x0064, 0x0331, 0,
2899 1, 0x1E10, 0x0044, 0x0327, 0,
2900 1, 0x1E11, 0x0064, 0x0327, 0,
2901 1, 0x1E12, 0x0044, 0x032D, 0,
2902 1, 0x1E13, 0x0064, 0x032D, 0,
2903 1, 0x1E14, 0x0112, 0x0300, 0,
2904 1, 0x1E15, 0x0113, 0x0300, 0,
2905 1, 0x1E16, 0x0112, 0x0301, 0,
2906 1, 0x1E17, 0x0113, 0x0301, 0,
2907 1, 0x1E18, 0x0045, 0x032D, 0,
2908 1, 0x1E19, 0x0065, 0x032D, 0,
2909 1, 0x1E1A, 0x0045, 0x0330, 0,
2910 1, 0x1E1B, 0x0065, 0x0330, 0,
2911 1, 0x1E1C, 0x0228, 0x0306, 0,
2912 1, 0x1E1D, 0x0229, 0x0306, 0,
2913 1, 0x1E1E, 0x0046, 0x0307, 0,
2914 1, 0x1E1F, 0x0066, 0x0307, 0,
2915 1, 0x1E20, 0x0047, 0x0304, 0,
2916 1, 0x1E21, 0x0067, 0x0304, 0,
2917 1, 0x1E22, 0x0048, 0x0307, 0,
2918 1, 0x1E23, 0x0068, 0x0307, 0,
2919 1, 0x1E24, 0x0048, 0x0323, 0,
2920 1, 0x1E25, 0x0068, 0x0323, 0,
2921 1, 0x1E26, 0x0048, 0x0308, 0,
2922 1, 0x1E27, 0x0068, 0x0308, 0,
2923 1, 0x1E28, 0x0048, 0x0327, 0,
2924 1, 0x1E29, 0x0068, 0x0327, 0,
2925 1, 0x1E2A, 0x0048, 0x032E, 0,
2926 1, 0x1E2B, 0x0068, 0x032E, 0,
2927 1, 0x1E2C, 0x0049, 0x0330, 0,
2928 1, 0x1E2D, 0x0069, 0x0330, 0,
2929 1, 0x1E2E, 0x00CF, 0x0301, 0,
2930 1, 0x1E2F, 0x00EF, 0x0301, 0,
2931 1, 0x1E30, 0x004B, 0x0301, 0,
2932 1, 0x1E31, 0x006B, 0x0301, 0,
2933 1, 0x1E32, 0x004B, 0x0323, 0,
2934 1, 0x1E33, 0x006B, 0x0323, 0,
2935 1, 0x1E34, 0x004B, 0x0331, 0,
2936 1, 0x1E35, 0x006B, 0x0331, 0,
2937 1, 0x1E36, 0x004C, 0x0323, 0,
2938 1, 0x1E37, 0x006C, 0x0323, 0,
2939 1, 0x1E38, 0x1E36, 0x0304, 0,
2940 1, 0x1E39, 0x1E37, 0x0304, 0,
2941 1, 0x1E3A, 0x004C, 0x0331, 0,
2942 1, 0x1E3B, 0x006C, 0x0331, 0,
2943 1, 0x1E3C, 0x004C, 0x032D, 0,
2944 1, 0x1E3D, 0x006C, 0x032D, 0,
2945 1, 0x1E3E, 0x004D, 0x0301, 0,
2946 1, 0x1E3F, 0x006D, 0x0301, 0,
2947 1, 0x1E40, 0x004D, 0x0307, 0,
2948 1, 0x1E41, 0x006D, 0x0307, 0,
2949 1, 0x1E42, 0x004D, 0x0323, 0,
2950 1, 0x1E43, 0x006D, 0x0323, 0,
2951 1, 0x1E44, 0x004E, 0x0307, 0,
2952 1, 0x1E45, 0x006E, 0x0307, 0,
2953 1, 0x1E46, 0x004E, 0x0323, 0,
2954 1, 0x1E47, 0x006E, 0x0323, 0,
2955 1, 0x1E48, 0x004E, 0x0331, 0,
2956 1, 0x1E49, 0x006E, 0x0331, 0,
2957 1, 0x1E4A, 0x004E, 0x032D, 0,
2958 1, 0x1E4B, 0x006E, 0x032D, 0,
2959 1, 0x1E4C, 0x00D5, 0x0301, 0,
2960 1, 0x1E4D, 0x00F5, 0x0301, 0,
2961 1, 0x1E4E, 0x00D5, 0x0308, 0,
2962 1, 0x1E4F, 0x00F5, 0x0308, 0,
2963 1, 0x1E50, 0x014C, 0x0300, 0,
2964 1, 0x1E51, 0x014D, 0x0300, 0,
2965 1, 0x1E52, 0x014C, 0x0301, 0,
2966 1, 0x1E53, 0x014D, 0x0301, 0,
2967 1, 0x1E54, 0x0050, 0x0301, 0,
2968 1, 0x1E55, 0x0070, 0x0301, 0,
2969 1, 0x1E56, 0x0050, 0x0307, 0,
2970 1, 0x1E57, 0x0070, 0x0307, 0,
2971 1, 0x1E58, 0x0052, 0x0307, 0,
2972 1, 0x1E59, 0x0072, 0x0307, 0,
2973 1, 0x1E5A, 0x0052, 0x0323, 0,
2974 1, 0x1E5B, 0x0072, 0x0323, 0,
2975 1, 0x1E5C, 0x1E5A, 0x0304, 0,
2976 1, 0x1E5D, 0x1E5B, 0x0304, 0,
2977 1, 0x1E5E, 0x0052, 0x0331, 0,
2978 1, 0x1E5F, 0x0072, 0x0331, 0,
2979 1, 0x1E60, 0x0053, 0x0307, 0,
2980 1, 0x1E61, 0x0073, 0x0307, 0,
2981 1, 0x1E62, 0x0053, 0x0323, 0,
2982 1, 0x1E63, 0x0073, 0x0323, 0,
2983 1, 0x1E64, 0x015A, 0x0307, 0,
2984 1, 0x1E65, 0x015B, 0x0307, 0,
2985 1, 0x1E66, 0x0160, 0x0307, 0,
2986 1, 0x1E67, 0x0161, 0x0307, 0,
2987 1, 0x1E68, 0x1E62, 0x0307, 0,
2988 1, 0x1E69, 0x1E63, 0x0307, 0,
2989 1, 0x1E6A, 0x0054, 0x0307, 0,
2990 1, 0x1E6B, 0x0074, 0x0307, 0,
2991 1, 0x1E6C, 0x0054, 0x0323, 0,
2992 1, 0x1E6D, 0x0074, 0x0323, 0,
2993 1, 0x1E6E, 0x0054, 0x0331, 0,
2994 1, 0x1E6F, 0x0074, 0x0331, 0,
2995 1, 0x1E70, 0x0054, 0x032D, 0,
2996 1, 0x1E71, 0x0074, 0x032D, 0,
2997 1, 0x1E72, 0x0055, 0x0324, 0,
2998 1, 0x1E73, 0x0075, 0x0324, 0,
2999 1, 0x1E74, 0x0055, 0x0330, 0,
3000 1, 0x1E75, 0x0075, 0x0330, 0,
3001 1, 0x1E76, 0x0055, 0x032D, 0,
3002 1, 0x1E77, 0x0075, 0x032D, 0,
3003 1, 0x1E78, 0x0168, 0x0301, 0,
3004 1, 0x1E79, 0x0169, 0x0301, 0,
3005 1, 0x1E7A, 0x016A, 0x0308, 0,
3006 1, 0x1E7B, 0x016B, 0x0308, 0,
3007 1, 0x1E7C, 0x0056, 0x0303, 0,
3008 1, 0x1E7D, 0x0076, 0x0303, 0,
3009 1, 0x1E7E, 0x0056, 0x0323, 0,
3010 1, 0x1E7F, 0x0076, 0x0323, 0,
3011 1, 0x1E80, 0x0057, 0x0300, 0,
3012 1, 0x1E81, 0x0077, 0x0300, 0,
3013 1, 0x1E82, 0x0057, 0x0301, 0,
3014 1, 0x1E83, 0x0077, 0x0301, 0,
3015 1, 0x1E84, 0x0057, 0x0308, 0,
3016 1, 0x1E85, 0x0077, 0x0308, 0,
3017 1, 0x1E86, 0x0057, 0x0307, 0,
3018 1, 0x1E87, 0x0077, 0x0307, 0,
3019 1, 0x1E88, 0x0057, 0x0323, 0,
3020 1, 0x1E89, 0x0077, 0x0323, 0,
3021 1, 0x1E8A, 0x0058, 0x0307, 0,
3022 1, 0x1E8B, 0x0078, 0x0307, 0,
3023 1, 0x1E8C, 0x0058, 0x0308, 0,
3024 1, 0x1E8D, 0x0078, 0x0308, 0,
3025 1, 0x1E8E, 0x0059, 0x0307, 0,
3026 1, 0x1E8F, 0x0079, 0x0307, 0,
3027 1, 0x1E90, 0x005A, 0x0302, 0,
3028 1, 0x1E91, 0x007A, 0x0302, 0,
3029 1, 0x1E92, 0x005A, 0x0323, 0,
3030 1, 0x1E93, 0x007A, 0x0323, 0,
3031 1, 0x1E94, 0x005A, 0x0331, 0,
3032 1, 0x1E95, 0x007A, 0x0331, 0,
3033 1, 0x1E96, 0x0068, 0x0331, 0,
3034 1, 0x1E97, 0x0074, 0x0308, 0,
3035 1, 0x1E98, 0x0077, 0x030A, 0,
3036 1, 0x1E99, 0x0079, 0x030A, 0,
3037 16, 0x1E9A, 0x0061, 0x02BE, 0,
3038 1, 0x1E9B, 0x017F, 0x0307, 0,
3039 1, 0x1EA0, 0x0041, 0x0323, 0,
3040 1, 0x1EA1, 0x0061, 0x0323, 0,
3041 1, 0x1EA2, 0x0041, 0x0309, 0,
3042 1, 0x1EA3, 0x0061, 0x0309, 0,
3043 1, 0x1EA4, 0x00C2, 0x0301, 0,
3044 1, 0x1EA5, 0x00E2, 0x0301, 0,
3045 1, 0x1EA6, 0x00C2, 0x0300, 0,
3046 1, 0x1EA7, 0x00E2, 0x0300, 0,
3047 1, 0x1EA8, 0x00C2, 0x0309, 0,
3048 1, 0x1EA9, 0x00E2, 0x0309, 0,
3049 1, 0x1EAA, 0x00C2, 0x0303, 0,
3050 1, 0x1EAB, 0x00E2, 0x0303, 0,
3051 1, 0x1EAC, 0x1EA0, 0x0302, 0,
3052 1, 0x1EAD, 0x1EA1, 0x0302, 0,
3053 1, 0x1EAE, 0x0102, 0x0301, 0,
3054 1, 0x1EAF, 0x0103, 0x0301, 0,
3055 1, 0x1EB0, 0x0102, 0x0300, 0,
3056 1, 0x1EB1, 0x0103, 0x0300, 0,
3057 1, 0x1EB2, 0x0102, 0x0309, 0,
3058 1, 0x1EB3, 0x0103, 0x0309, 0,
3059 1, 0x1EB4, 0x0102, 0x0303, 0,
3060 1, 0x1EB5, 0x0103, 0x0303, 0,
3061 1, 0x1EB6, 0x1EA0, 0x0306, 0,
3062 1, 0x1EB7, 0x1EA1, 0x0306, 0,
3063 1, 0x1EB8, 0x0045, 0x0323, 0,
3064 1, 0x1EB9, 0x0065, 0x0323, 0,
3065 1, 0x1EBA, 0x0045, 0x0309, 0,
3066 1, 0x1EBB, 0x0065, 0x0309, 0,
3067 1, 0x1EBC, 0x0045, 0x0303, 0,
3068 1, 0x1EBD, 0x0065, 0x0303, 0,
3069 1, 0x1EBE, 0x00CA, 0x0301, 0,
3070 1, 0x1EBF, 0x00EA, 0x0301, 0,
3071 1, 0x1EC0, 0x00CA, 0x0300, 0,
3072 1, 0x1EC1, 0x00EA, 0x0300, 0,
3073 1, 0x1EC2, 0x00CA, 0x0309, 0,
3074 1, 0x1EC3, 0x00EA, 0x0309, 0,
3075 1, 0x1EC4, 0x00CA, 0x0303, 0,
3076 1, 0x1EC5, 0x00EA, 0x0303, 0,
3077 1, 0x1EC6, 0x1EB8, 0x0302, 0,
3078 1, 0x1EC7, 0x1EB9, 0x0302, 0,
3079 1, 0x1EC8, 0x0049, 0x0309, 0,
3080 1, 0x1EC9, 0x0069, 0x0309, 0,
3081 1, 0x1ECA, 0x0049, 0x0323, 0,
3082 1, 0x1ECB, 0x0069, 0x0323, 0,
3083 1, 0x1ECC, 0x004F, 0x0323, 0,
3084 1, 0x1ECD, 0x006F, 0x0323, 0,
3085 1, 0x1ECE, 0x004F, 0x0309, 0,
3086 1, 0x1ECF, 0x006F, 0x0309, 0,
3087 1, 0x1ED0, 0x00D4, 0x0301, 0,
3088 1, 0x1ED1, 0x00F4, 0x0301, 0,
3089 1, 0x1ED2, 0x00D4, 0x0300, 0,
3090 1, 0x1ED3, 0x00F4, 0x0300, 0,
3091 1, 0x1ED4, 0x00D4, 0x0309, 0,
3092 1, 0x1ED5, 0x00F4, 0x0309, 0,
3093 1, 0x1ED6, 0x00D4, 0x0303, 0,
3094 1, 0x1ED7, 0x00F4, 0x0303, 0,
3095 1, 0x1ED8, 0x1ECC, 0x0302, 0,
3096 1, 0x1ED9, 0x1ECD, 0x0302, 0,
3097 1, 0x1EDA, 0x01A0, 0x0301, 0,
3098 1, 0x1EDB, 0x01A1, 0x0301, 0,
3099 1, 0x1EDC, 0x01A0, 0x0300, 0,
3100 1, 0x1EDD, 0x01A1, 0x0300, 0,
3101 1, 0x1EDE, 0x01A0, 0x0309, 0,
3102 1, 0x1EDF, 0x01A1, 0x0309, 0,
3103 1, 0x1EE0, 0x01A0, 0x0303, 0,
3104 1, 0x1EE1, 0x01A1, 0x0303, 0,
3105 1, 0x1EE2, 0x01A0, 0x0323, 0,
3106 1, 0x1EE3, 0x01A1, 0x0323, 0,
3107 1, 0x1EE4, 0x0055, 0x0323, 0,
3108 1, 0x1EE5, 0x0075, 0x0323, 0,
3109 1, 0x1EE6, 0x0055, 0x0309, 0,
3110 1, 0x1EE7, 0x0075, 0x0309, 0,
3111 1, 0x1EE8, 0x01AF, 0x0301, 0,
3112 1, 0x1EE9, 0x01B0, 0x0301, 0,
3113 1, 0x1EEA, 0x01AF, 0x0300, 0,
3114 1, 0x1EEB, 0x01B0, 0x0300, 0,
3115 1, 0x1EEC, 0x01AF, 0x0309, 0,
3116 1, 0x1EED, 0x01B0, 0x0309, 0,
3117 1, 0x1EEE, 0x01AF, 0x0303, 0,
3118 1, 0x1EEF, 0x01B0, 0x0303, 0,
3119 1, 0x1EF0, 0x01AF, 0x0323, 0,
3120 1, 0x1EF1, 0x01B0, 0x0323, 0,
3121 1, 0x1EF2, 0x0059, 0x0300, 0,
3122 1, 0x1EF3, 0x0079, 0x0300, 0,
3123 1, 0x1EF4, 0x0059, 0x0323, 0,
3124 1, 0x1EF5, 0x0079, 0x0323, 0,
3125 1, 0x1EF6, 0x0059, 0x0309, 0,
3126 1, 0x1EF7, 0x0079, 0x0309, 0,
3127 1, 0x1EF8, 0x0059, 0x0303, 0,
3128 1, 0x1EF9, 0x0079, 0x0303, 0,
3129 1, 0x1F00, 0x03B1, 0x0313, 0,
3130 1, 0x1F01, 0x03B1, 0x0314, 0,
3131 1, 0x1F02, 0x1F00, 0x0300, 0,
3132 1, 0x1F03, 0x1F01, 0x0300, 0,
3133 1, 0x1F04, 0x1F00, 0x0301, 0,
3134 1, 0x1F05, 0x1F01, 0x0301, 0,
3135 1, 0x1F06, 0x1F00, 0x0342, 0,
3136 1, 0x1F07, 0x1F01, 0x0342, 0,
3137 1, 0x1F08, 0x0391, 0x0313, 0,
3138 1, 0x1F09, 0x0391, 0x0314, 0,
3139 1, 0x1F0A, 0x1F08, 0x0300, 0,
3140 1, 0x1F0B, 0x1F09, 0x0300, 0,
3141 1, 0x1F0C, 0x1F08, 0x0301, 0,
3142 1, 0x1F0D, 0x1F09, 0x0301, 0,
3143 1, 0x1F0E, 0x1F08, 0x0342, 0,
3144 1, 0x1F0F, 0x1F09, 0x0342, 0,
3145 1, 0x1F10, 0x03B5, 0x0313, 0,
3146 1, 0x1F11, 0x03B5, 0x0314, 0,
3147 1, 0x1F12, 0x1F10, 0x0300, 0,
3148 1, 0x1F13, 0x1F11, 0x0300, 0,
3149 1, 0x1F14, 0x1F10, 0x0301, 0,
3150 1, 0x1F15, 0x1F11, 0x0301, 0,
3151 1, 0x1F18, 0x0395, 0x0313, 0,
3152 1, 0x1F19, 0x0395, 0x0314, 0,
3153 1, 0x1F1A, 0x1F18, 0x0300, 0,
3154 1, 0x1F1B, 0x1F19, 0x0300, 0,
3155 1, 0x1F1C, 0x1F18, 0x0301, 0,
3156 1, 0x1F1D, 0x1F19, 0x0301, 0,
3157 1, 0x1F20, 0x03B7, 0x0313, 0,
3158 1, 0x1F21, 0x03B7, 0x0314, 0,
3159 1, 0x1F22, 0x1F20, 0x0300, 0,
3160 1, 0x1F23, 0x1F21, 0x0300, 0,
3161 1, 0x1F24, 0x1F20, 0x0301, 0,
3162 1, 0x1F25, 0x1F21, 0x0301, 0,
3163 1, 0x1F26, 0x1F20, 0x0342, 0,
3164 1, 0x1F27, 0x1F21, 0x0342, 0,
3165 1, 0x1F28, 0x0397, 0x0313, 0,
3166 1, 0x1F29, 0x0397, 0x0314, 0,
3167 1, 0x1F2A, 0x1F28, 0x0300, 0,
3168 1, 0x1F2B, 0x1F29, 0x0300, 0,
3169 1, 0x1F2C, 0x1F28, 0x0301, 0,
3170 1, 0x1F2D, 0x1F29, 0x0301, 0,
3171 1, 0x1F2E, 0x1F28, 0x0342, 0,
3172 1, 0x1F2F, 0x1F29, 0x0342, 0,
3173 1, 0x1F30, 0x03B9, 0x0313, 0,
3174 1, 0x1F31, 0x03B9, 0x0314, 0,
3175 1, 0x1F32, 0x1F30, 0x0300, 0,
3176 1, 0x1F33, 0x1F31, 0x0300, 0,
3177 1, 0x1F34, 0x1F30, 0x0301, 0,
3178 1, 0x1F35, 0x1F31, 0x0301, 0,
3179 1, 0x1F36, 0x1F30, 0x0342, 0,
3180 1, 0x1F37, 0x1F31, 0x0342, 0,
3181 1, 0x1F38, 0x0399, 0x0313, 0,
3182 1, 0x1F39, 0x0399, 0x0314, 0,
3183 1, 0x1F3A, 0x1F38, 0x0300, 0,
3184 1, 0x1F3B, 0x1F39, 0x0300, 0,
3185 1, 0x1F3C, 0x1F38, 0x0301, 0,
3186 1, 0x1F3D, 0x1F39, 0x0301, 0,
3187 1, 0x1F3E, 0x1F38, 0x0342, 0,
3188 1, 0x1F3F, 0x1F39, 0x0342, 0,
3189 1, 0x1F40, 0x03BF, 0x0313, 0,
3190 1, 0x1F41, 0x03BF, 0x0314, 0,
3191 1, 0x1F42, 0x1F40, 0x0300, 0,
3192 1, 0x1F43, 0x1F41, 0x0300, 0,
3193 1, 0x1F44, 0x1F40, 0x0301, 0,
3194 1, 0x1F45, 0x1F41, 0x0301, 0,
3195 1, 0x1F48, 0x039F, 0x0313, 0,
3196 1, 0x1F49, 0x039F, 0x0314, 0,
3197 1, 0x1F4A, 0x1F48, 0x0300, 0,
3198 1, 0x1F4B, 0x1F49, 0x0300, 0,
3199 1, 0x1F4C, 0x1F48, 0x0301, 0,
3200 1, 0x1F4D, 0x1F49, 0x0301, 0,
3201 1, 0x1F50, 0x03C5, 0x0313, 0,
3202 1, 0x1F51, 0x03C5, 0x0314, 0,
3203 1, 0x1F52, 0x1F50, 0x0300, 0,
3204 1, 0x1F53, 0x1F51, 0x0300, 0,
3205 1, 0x1F54, 0x1F50, 0x0301, 0,
3206 1, 0x1F55, 0x1F51, 0x0301, 0,
3207 1, 0x1F56, 0x1F50, 0x0342, 0,
3208 1, 0x1F57, 0x1F51, 0x0342, 0,
3209 1, 0x1F59, 0x03A5, 0x0314, 0,
3210 1, 0x1F5B, 0x1F59, 0x0300, 0,
3211 1, 0x1F5D, 0x1F59, 0x0301, 0,
3212 1, 0x1F5F, 0x1F59, 0x0342, 0,
3213 1, 0x1F60, 0x03C9, 0x0313, 0,
3214 1, 0x1F61, 0x03C9, 0x0314, 0,
3215 1, 0x1F62, 0x1F60, 0x0300, 0,
3216 1, 0x1F63, 0x1F61, 0x0300, 0,
3217 1, 0x1F64, 0x1F60, 0x0301, 0,
3218 1, 0x1F65, 0x1F61, 0x0301, 0,
3219 1, 0x1F66, 0x1F60, 0x0342, 0,
3220 1, 0x1F67, 0x1F61, 0x0342, 0,
3221 1, 0x1F68, 0x03A9, 0x0313, 0,
3222 1, 0x1F69, 0x03A9, 0x0314, 0,
3223 1, 0x1F6A, 0x1F68, 0x0300, 0,
3224 1, 0x1F6B, 0x1F69, 0x0300, 0,
3225 1, 0x1F6C, 0x1F68, 0x0301, 0,
3226 1, 0x1F6D, 0x1F69, 0x0301, 0,
3227 1, 0x1F6E, 0x1F68, 0x0342, 0,
3228 1, 0x1F6F, 0x1F69, 0x0342, 0,
3229 1, 0x1F70, 0x03B1, 0x0300, 0,
3230 1, 0x1F71, 0x03AC, 0,
3231 1, 0x1F72, 0x03B5, 0x0300, 0,
3232 1, 0x1F73, 0x03AD, 0,
3233 1, 0x1F74, 0x03B7, 0x0300, 0,
3234 1, 0x1F75, 0x03AE, 0,
3235 1, 0x1F76, 0x03B9, 0x0300, 0,
3236 1, 0x1F77, 0x03AF, 0,
3237 1, 0x1F78, 0x03BF, 0x0300, 0,
3238 1, 0x1F79, 0x03CC, 0,
3239 1, 0x1F7A, 0x03C5, 0x0300, 0,
3240 1, 0x1F7B, 0x03CD, 0,
3241 1, 0x1F7C, 0x03C9, 0x0300, 0,
3242 1, 0x1F7D, 0x03CE, 0,
3243 1, 0x1F80, 0x1F00, 0x0345, 0,
3244 1, 0x1F81, 0x1F01, 0x0345, 0,
3245 1, 0x1F82, 0x1F02, 0x0345, 0,
3246 1, 0x1F83, 0x1F03, 0x0345, 0,
3247 1, 0x1F84, 0x1F04, 0x0345, 0,
3248 1, 0x1F85, 0x1F05, 0x0345, 0,
3249 1, 0x1F86, 0x1F06, 0x0345, 0,
3250 1, 0x1F87, 0x1F07, 0x0345, 0,
3251 1, 0x1F88, 0x1F08, 0x0345, 0,
3252 1, 0x1F89, 0x1F09, 0x0345, 0,
3253 1, 0x1F8A, 0x1F0A, 0x0345, 0,
3254 1, 0x1F8B, 0x1F0B, 0x0345, 0,
3255 1, 0x1F8C, 0x1F0C, 0x0345, 0,
3256 1, 0x1F8D, 0x1F0D, 0x0345, 0,
3257 1, 0x1F8E, 0x1F0E, 0x0345, 0,
3258 1, 0x1F8F, 0x1F0F, 0x0345, 0,
3259 1, 0x1F90, 0x1F20, 0x0345, 0,
3260 1, 0x1F91, 0x1F21, 0x0345, 0,
3261 1, 0x1F92, 0x1F22, 0x0345, 0,
3262 1, 0x1F93, 0x1F23, 0x0345, 0,
3263 1, 0x1F94, 0x1F24, 0x0345, 0,
3264 1, 0x1F95, 0x1F25, 0x0345, 0,
3265 1, 0x1F96, 0x1F26, 0x0345, 0,
3266 1, 0x1F97, 0x1F27, 0x0345, 0,
3267 1, 0x1F98, 0x1F28, 0x0345, 0,
3268 1, 0x1F99, 0x1F29, 0x0345, 0,
3269 1, 0x1F9A, 0x1F2A, 0x0345, 0,
3270 1, 0x1F9B, 0x1F2B, 0x0345, 0,
3271 1, 0x1F9C, 0x1F2C, 0x0345, 0,
3272 1, 0x1F9D, 0x1F2D, 0x0345, 0,
3273 1, 0x1F9E, 0x1F2E, 0x0345, 0,
3274 1, 0x1F9F, 0x1F2F, 0x0345, 0,
3275 1, 0x1FA0, 0x1F60, 0x0345, 0,
3276 1, 0x1FA1, 0x1F61, 0x0345, 0,
3277 1, 0x1FA2, 0x1F62, 0x0345, 0,
3278 1, 0x1FA3, 0x1F63, 0x0345, 0,
3279 1, 0x1FA4, 0x1F64, 0x0345, 0,
3280 1, 0x1FA5, 0x1F65, 0x0345, 0,
3281 1, 0x1FA6, 0x1F66, 0x0345, 0,
3282 1, 0x1FA7, 0x1F67, 0x0345, 0,
3283 1, 0x1FA8, 0x1F68, 0x0345, 0,
3284 1, 0x1FA9, 0x1F69, 0x0345, 0,
3285 1, 0x1FAA, 0x1F6A, 0x0345, 0,
3286 1, 0x1FAB, 0x1F6B, 0x0345, 0,
3287 1, 0x1FAC, 0x1F6C, 0x0345, 0,
3288 1, 0x1FAD, 0x1F6D, 0x0345, 0,
3289 1, 0x1FAE, 0x1F6E, 0x0345, 0,
3290 1, 0x1FAF, 0x1F6F, 0x0345, 0,
3291 1, 0x1FB0, 0x03B1, 0x0306, 0,
3292 1, 0x1FB1, 0x03B1, 0x0304, 0,
3293 1, 0x1FB2, 0x1F70, 0x0345, 0,
3294 1, 0x1FB3, 0x03B1, 0x0345, 0,
3295 1, 0x1FB4, 0x03AC, 0x0345, 0,
3296 1, 0x1FB6, 0x03B1, 0x0342, 0,
3297 1, 0x1FB7, 0x1FB6, 0x0345, 0,
3298 1, 0x1FB8, 0x0391, 0x0306, 0,
3299 1, 0x1FB9, 0x0391, 0x0304, 0,
3300 1, 0x1FBA, 0x0391, 0x0300, 0,
3301 1, 0x1FBB, 0x0386, 0,
3302 1, 0x1FBC, 0x0391, 0x0345, 0,
3303 16, 0x1FBD, 0x0020, 0x0313, 0,
3304 1, 0x1FBE, 0x03B9, 0,
3305 16, 0x1FBF, 0x0020, 0x0313, 0,
3306 16, 0x1FC0, 0x0020, 0x0342, 0,
3307 1, 0x1FC1, 0x00A8, 0x0342, 0,
3308 1, 0x1FC2, 0x1F74, 0x0345, 0,
3309 1, 0x1FC3, 0x03B7, 0x0345, 0,
3310 1, 0x1FC4, 0x03AE, 0x0345, 0,
3311 1, 0x1FC6, 0x03B7, 0x0342, 0,
3312 1, 0x1FC7, 0x1FC6, 0x0345, 0,
3313 1, 0x1FC8, 0x0395, 0x0300, 0,
3314 1, 0x1FC9, 0x0388, 0,
3315 1, 0x1FCA, 0x0397, 0x0300, 0,
3316 1, 0x1FCB, 0x0389, 0,
3317 1, 0x1FCC, 0x0397, 0x0345, 0,
3318 1, 0x1FCD, 0x1FBF, 0x0300, 0,
3319 1, 0x1FCE, 0x1FBF, 0x0301, 0,
3320 1, 0x1FCF, 0x1FBF, 0x0342, 0,
3321 1, 0x1FD0, 0x03B9, 0x0306, 0,
3322 1, 0x1FD1, 0x03B9, 0x0304, 0,
3323 1, 0x1FD2, 0x03CA, 0x0300, 0,
3324 1, 0x1FD3, 0x0390, 0,
3325 1, 0x1FD6, 0x03B9, 0x0342, 0,
3326 1, 0x1FD7, 0x03CA, 0x0342, 0,
3327 1, 0x1FD8, 0x0399, 0x0306, 0,
3328 1, 0x1FD9, 0x0399, 0x0304, 0,
3329 1, 0x1FDA, 0x0399, 0x0300, 0,
3330 1, 0x1FDB, 0x038A, 0,
3331 1, 0x1FDD, 0x1FFE, 0x0300, 0,
3332 1, 0x1FDE, 0x1FFE, 0x0301, 0,
3333 1, 0x1FDF, 0x1FFE, 0x0342, 0,
3334 1, 0x1FE0, 0x03C5, 0x0306, 0,
3335 1, 0x1FE1, 0x03C5, 0x0304, 0,
3336 1, 0x1FE2, 0x03CB, 0x0300, 0,
3337 1, 0x1FE3, 0x03B0, 0,
3338 1, 0x1FE4, 0x03C1, 0x0313, 0,
3339 1, 0x1FE5, 0x03C1, 0x0314, 0,
3340 1, 0x1FE6, 0x03C5, 0x0342, 0,
3341 1, 0x1FE7, 0x03CB, 0x0342, 0,
3342 1, 0x1FE8, 0x03A5, 0x0306, 0,
3343 1, 0x1FE9, 0x03A5, 0x0304, 0,
3344 1, 0x1FEA, 0x03A5, 0x0300, 0,
3345 1, 0x1FEB, 0x038E, 0,
3346 1, 0x1FEC, 0x03A1, 0x0314, 0,
3347 1, 0x1FED, 0x00A8, 0x0300, 0,
3348 1, 0x1FEE, 0x0385, 0,
3349 1, 0x1FEF, 0x0060, 0,
3350 1, 0x1FF2, 0x1F7C, 0x0345, 0,
3351 1, 0x1FF3, 0x03C9, 0x0345, 0,
3352 1, 0x1FF4, 0x03CE, 0x0345, 0,
3353 1, 0x1FF6, 0x03C9, 0x0342, 0,
3354 1, 0x1FF7, 0x1FF6, 0x0345, 0,
3355 1, 0x1FF8, 0x039F, 0x0300, 0,
3356 1, 0x1FF9, 0x038C, 0,
3357 1, 0x1FFA, 0x03A9, 0x0300, 0,
3358 1, 0x1FFB, 0x038F, 0,
3359 1, 0x1FFC, 0x03A9, 0x0345, 0,
3360 1, 0x1FFD, 0x00B4, 0,
3361 16, 0x1FFE, 0x0020, 0x0314, 0,
3362 1, 0x2000, 0x2002, 0,
3363 1, 0x2001, 0x2003, 0,
3364 16, 0x2002, 0x0020, 0,
3365 16, 0x2003, 0x0020, 0,
3366 16, 0x2004, 0x0020, 0,
3367 16, 0x2005, 0x0020, 0,
3368 16, 0x2006, 0x0020, 0,
3369 3, 0x2007, 0x0020, 0,
3370 16, 0x2008, 0x0020, 0,
3371 16, 0x2009, 0x0020, 0,
3372 16, 0x200A, 0x0020, 0,
3373 3, 0x2011, 0x2010, 0,
3374 16, 0x2017, 0x0020, 0x0333, 0,
3375 16, 0x2024, 0x002E, 0,
3376 16, 0x2025, 0x002E, 0x002E, 0,
3377 16, 0x2026, 0x002E, 0x002E, 0x002E, 0,
3378 3, 0x202F, 0x0020, 0,
3379 16, 0x2033, 0x2032, 0x2032, 0,
3380 16, 0x2034, 0x2032, 0x2032, 0x2032, 0,
3381 16, 0x2036, 0x2035, 0x2035, 0,
3382 16, 0x2037, 0x2035, 0x2035, 0x2035, 0,
3383 16, 0x203C, 0x0021, 0x0021, 0,
3384 16, 0x203E, 0x0020, 0x0305, 0,
3385 16, 0x2048, 0x003F, 0x0021, 0,
3386 16, 0x2049, 0x0021, 0x003F, 0,
3387 9, 0x2070, 0x0030, 0,
3388 9, 0x2074, 0x0034, 0,
3389 9, 0x2075, 0x0035, 0,
3390 9, 0x2076, 0x0036, 0,
3391 9, 0x2077, 0x0037, 0,
3392 9, 0x2078, 0x0038, 0,
3393 9, 0x2079, 0x0039, 0,
3394 9, 0x207A, 0x002B, 0,
3395 9, 0x207B, 0x2212, 0,
3396 9, 0x207C, 0x003D, 0,
3397 9, 0x207D, 0x0028, 0,
3398 9, 0x207E, 0x0029, 0,
3399 9, 0x207F, 0x006E, 0,
3400 10, 0x2080, 0x0030, 0,
3401 10, 0x2081, 0x0031, 0,
3402 10, 0x2082, 0x0032, 0,
3403 10, 0x2083, 0x0033, 0,
3404 10, 0x2084, 0x0034, 0,
3405 10, 0x2085, 0x0035, 0,
3406 10, 0x2086, 0x0036, 0,
3407 10, 0x2087, 0x0037, 0,
3408 10, 0x2088, 0x0038, 0,
3409 10, 0x2089, 0x0039, 0,
3410 10, 0x208A, 0x002B, 0,
3411 10, 0x208B, 0x2212, 0,
3412 10, 0x208C, 0x003D, 0,
3413 10, 0x208D, 0x0028, 0,
3414 10, 0x208E, 0x0029, 0,
3415 16, 0x20A8, 0x0052, 0x0073, 0,
3416 16, 0x2100, 0x0061, 0x002F, 0x0063, 0,
3417 16, 0x2101, 0x0061, 0x002F, 0x0073, 0,
3418 2, 0x2102, 0x0043, 0,
3419 16, 0x2103, 0x00B0, 0x0043, 0,
3420 16, 0x2105, 0x0063, 0x002F, 0x006F, 0,
3421 16, 0x2106, 0x0063, 0x002F, 0x0075, 0,
3422 16, 0x2107, 0x0190, 0,
3423 16, 0x2109, 0x00B0, 0x0046, 0,
3424 2, 0x210A, 0x0067, 0,
3425 2, 0x210B, 0x0048, 0,
3426 2, 0x210C, 0x0048, 0,
3427 2, 0x210D, 0x0048, 0,
3428 2, 0x210E, 0x0068, 0,
3429 2, 0x210F, 0x0127, 0,
3430 2, 0x2110, 0x0049, 0,
3431 2, 0x2111, 0x0049, 0,
3432 2, 0x2112, 0x004C, 0,
3433 2, 0x2113, 0x006C, 0,
3434 2, 0x2115, 0x004E, 0,
3435 16, 0x2116, 0x004E, 0x006F, 0,
3436 2, 0x2119, 0x0050, 0,
3437 2, 0x211A, 0x0051, 0,
3438 2, 0x211B, 0x0052, 0,
3439 2, 0x211C, 0x0052, 0,
3440 2, 0x211D, 0x0052, 0,
3441 9, 0x2120, 0x0053, 0x004D, 0,
3442 16, 0x2121, 0x0054, 0x0045, 0x004C, 0,
3443 9, 0x2122, 0x0054, 0x004D, 0,
3444 2, 0x2124, 0x005A, 0,
3445 1, 0x2126, 0x03A9, 0,
3446 2, 0x2128, 0x005A, 0,
3447 1, 0x212A, 0x004B, 0,
3448 1, 0x212B, 0x00C5, 0,
3449 2, 0x212C, 0x0042, 0,
3450 2, 0x212D, 0x0043, 0,
3451 2, 0x212F, 0x0065, 0,
3452 2, 0x2130, 0x0045, 0,
3453 2, 0x2131, 0x0046, 0,
3454 2, 0x2133, 0x004D, 0,
3455 2, 0x2134, 0x006F, 0,
3456 16, 0x2135, 0x05D0, 0,
3457 16, 0x2136, 0x05D1, 0,
3458 16, 0x2137, 0x05D2, 0,
3459 16, 0x2138, 0x05D3, 0,
3460 2, 0x2139, 0x0069, 0,
3461 17, 0x2153, 0x0031, 0x2044, 0x0033, 0,
3462 17, 0x2154, 0x0032, 0x2044, 0x0033, 0,
3463 17, 0x2155, 0x0031, 0x2044, 0x0035, 0,
3464 17, 0x2156, 0x0032, 0x2044, 0x0035, 0,
3465 17, 0x2157, 0x0033, 0x2044, 0x0035, 0,
3466 17, 0x2158, 0x0034, 0x2044, 0x0035, 0,
3467 17, 0x2159, 0x0031, 0x2044, 0x0036, 0,
3468 17, 0x215A, 0x0035, 0x2044, 0x0036, 0,
3469 17, 0x215B, 0x0031, 0x2044, 0x0038, 0,
3470 17, 0x215C, 0x0033, 0x2044, 0x0038, 0,
3471 17, 0x215D, 0x0035, 0x2044, 0x0038, 0,
3472 17, 0x215E, 0x0037, 0x2044, 0x0038, 0,
3473 17, 0x215F, 0x0031, 0x2044, 0,
3474 16, 0x2160, 0x0049, 0,
3475 16, 0x2161, 0x0049, 0x0049, 0,
3476 16, 0x2162, 0x0049, 0x0049, 0x0049, 0,
3477 16, 0x2163, 0x0049, 0x0056, 0,
3478 16, 0x2164, 0x0056, 0,
3479 16, 0x2165, 0x0056, 0x0049, 0,
3480 16, 0x2166, 0x0056, 0x0049, 0x0049, 0,
3481 16, 0x2167, 0x0056, 0x0049, 0x0049, 0x0049, 0,
3482 16, 0x2168, 0x0049, 0x0058, 0,
3483 16, 0x2169, 0x0058, 0,
3484 16, 0x216A, 0x0058, 0x0049, 0,
3485 16, 0x216B, 0x0058, 0x0049, 0x0049, 0,
3486 16, 0x216C, 0x004C, 0,
3487 16, 0x216D, 0x0043, 0,
3488 16, 0x216E, 0x0044, 0,
3489 16, 0x216F, 0x004D, 0,
3490 16, 0x2170, 0x0069, 0,
3491 16, 0x2171, 0x0069, 0x0069, 0,
3492 16, 0x2172, 0x0069, 0x0069, 0x0069, 0,
3493 16, 0x2173, 0x0069, 0x0076, 0,
3494 16, 0x2174, 0x0076, 0,
3495 16, 0x2175, 0x0076, 0x0069, 0,
3496 16, 0x2176, 0x0076, 0x0069, 0x0069, 0,
3497 16, 0x2177, 0x0076, 0x0069, 0x0069, 0x0069, 0,
3498 16, 0x2178, 0x0069, 0x0078, 0,
3499 16, 0x2179, 0x0078, 0,
3500 16, 0x217A, 0x0078, 0x0069, 0,
3501 16, 0x217B, 0x0078, 0x0069, 0x0069, 0,
3502 16, 0x217C, 0x006C, 0,
3503 16, 0x217D, 0x0063, 0,
3504 16, 0x217E, 0x0064, 0,
3505 16, 0x217F, 0x006D, 0,
3506 1, 0x219A, 0x2190, 0x0338, 0,
3507 1, 0x219B, 0x2192, 0x0338, 0,
3508 1, 0x21AE, 0x2194, 0x0338, 0,
3509 1, 0x21CD, 0x21D0, 0x0338, 0,
3510 1, 0x21CE, 0x21D4, 0x0338, 0,
3511 1, 0x21CF, 0x21D2, 0x0338, 0,
3512 1, 0x2204, 0x2203, 0x0338, 0,
3513 1, 0x2209, 0x2208, 0x0338, 0,
3514 1, 0x220C, 0x220B, 0x0338, 0,
3515 1, 0x2224, 0x2223, 0x0338, 0,
3516 1, 0x2226, 0x2225, 0x0338, 0,
3517 16, 0x222C, 0x222B, 0x222B, 0,
3518 16, 0x222D, 0x222B, 0x222B, 0x222B, 0,
3519 16, 0x222F, 0x222E, 0x222E, 0,
3520 16, 0x2230, 0x222E, 0x222E, 0x222E, 0,
3521 1, 0x2241, 0x223C, 0x0338, 0,
3522 1, 0x2244, 0x2243, 0x0338, 0,
3523 1, 0x2247, 0x2245, 0x0338, 0,
3524 1, 0x2249, 0x2248, 0x0338, 0,
3525 1, 0x2260, 0x003D, 0x0338, 0,
3526 1, 0x2262, 0x2261, 0x0338, 0,
3527 1, 0x226D, 0x224D, 0x0338, 0,
3528 1, 0x226E, 0x003C, 0x0338, 0,
3529 1, 0x226F, 0x003E, 0x0338, 0,
3530 1, 0x2270, 0x2264, 0x0338, 0,
3531 1, 0x2271, 0x2265, 0x0338, 0,
3532 1, 0x2274, 0x2272, 0x0338, 0,
3533 1, 0x2275, 0x2273, 0x0338, 0,
3534 1, 0x2278, 0x2276, 0x0338, 0,
3535 1, 0x2279, 0x2277, 0x0338, 0,
3536 1, 0x2280, 0x227A, 0x0338, 0,
3537 1, 0x2281, 0x227B, 0x0338, 0,
3538 1, 0x2284, 0x2282, 0x0338, 0,
3539 1, 0x2285, 0x2283, 0x0338, 0,
3540 1, 0x2288, 0x2286, 0x0338, 0,
3541 1, 0x2289, 0x2287, 0x0338, 0,
3542 1, 0x22AC, 0x22A2, 0x0338, 0,
3543 1, 0x22AD, 0x22A8, 0x0338, 0,
3544 1, 0x22AE, 0x22A9, 0x0338, 0,
3545 1, 0x22AF, 0x22AB, 0x0338, 0,
3546 1, 0x22E0, 0x227C, 0x0338, 0,
3547 1, 0x22E1, 0x227D, 0x0338, 0,
3548 1, 0x22E2, 0x2291, 0x0338, 0,
3549 1, 0x22E3, 0x2292, 0x0338, 0,
3550 1, 0x22EA, 0x22B2, 0x0338, 0,
3551 1, 0x22EB, 0x22B3, 0x0338, 0,
3552 1, 0x22EC, 0x22B4, 0x0338, 0,
3553 1, 0x22ED, 0x22B5, 0x0338, 0,
3554 1, 0x2329, 0x3008, 0,
3555 1, 0x232A, 0x3009, 0,
3556 8, 0x2460, 0x0031, 0,
3557 8, 0x2461, 0x0032, 0,
3558 8, 0x2462, 0x0033, 0,
3559 8, 0x2463, 0x0034, 0,
3560 8, 0x2464, 0x0035, 0,
3561 8, 0x2465, 0x0036, 0,
3562 8, 0x2466, 0x0037, 0,
3563 8, 0x2467, 0x0038, 0,
3564 8, 0x2468, 0x0039, 0,
3565 8, 0x2469, 0x0031, 0x0030, 0,
3566 8, 0x246A, 0x0031, 0x0031, 0,
3567 8, 0x246B, 0x0031, 0x0032, 0,
3568 8, 0x246C, 0x0031, 0x0033, 0,
3569 8, 0x246D, 0x0031, 0x0034, 0,
3570 8, 0x246E, 0x0031, 0x0035, 0,
3571 8, 0x246F, 0x0031, 0x0036, 0,
3572 8, 0x2470, 0x0031, 0x0037, 0,
3573 8, 0x2471, 0x0031, 0x0038, 0,
3574 8, 0x2472, 0x0031, 0x0039, 0,
3575 8, 0x2473, 0x0032, 0x0030, 0,
3576 16, 0x2474, 0x0028, 0x0031, 0x0029, 0,
3577 16, 0x2475, 0x0028, 0x0032, 0x0029, 0,
3578 16, 0x2476, 0x0028, 0x0033, 0x0029, 0,
3579 16, 0x2477, 0x0028, 0x0034, 0x0029, 0,
3580 16, 0x2478, 0x0028, 0x0035, 0x0029, 0,
3581 16, 0x2479, 0x0028, 0x0036, 0x0029, 0,
3582 16, 0x247A, 0x0028, 0x0037, 0x0029, 0,
3583 16, 0x247B, 0x0028, 0x0038, 0x0029, 0,
3584 16, 0x247C, 0x0028, 0x0039, 0x0029, 0,
3585 16, 0x247D, 0x0028, 0x0031, 0x0030, 0x0029, 0,
3586 16, 0x247E, 0x0028, 0x0031, 0x0031, 0x0029, 0,
3587 16, 0x247F, 0x0028, 0x0031, 0x0032, 0x0029, 0,
3588 16, 0x2480, 0x0028, 0x0031, 0x0033, 0x0029, 0,
3589 16, 0x2481, 0x0028, 0x0031, 0x0034, 0x0029, 0,
3590 16, 0x2482, 0x0028, 0x0031, 0x0035, 0x0029, 0,
3591 16, 0x2483, 0x0028, 0x0031, 0x0036, 0x0029, 0,
3592 16, 0x2484, 0x0028, 0x0031, 0x0037, 0x0029, 0,
3593 16, 0x2485, 0x0028, 0x0031, 0x0038, 0x0029, 0,
3594 16, 0x2486, 0x0028, 0x0031, 0x0039, 0x0029, 0,
3595 16, 0x2487, 0x0028, 0x0032, 0x0030, 0x0029, 0,
3596 16, 0x2488, 0x0031, 0x002E, 0,
3597 16, 0x2489, 0x0032, 0x002E, 0,
3598 16, 0x248A, 0x0033, 0x002E, 0,
3599 16, 0x248B, 0x0034, 0x002E, 0,
3600 16, 0x248C, 0x0035, 0x002E, 0,
3601 16, 0x248D, 0x0036, 0x002E, 0,
3602 16, 0x248E, 0x0037, 0x002E, 0,
3603 16, 0x248F, 0x0038, 0x002E, 0,
3604 16, 0x2490, 0x0039, 0x002E, 0,
3605 16, 0x2491, 0x0031, 0x0030, 0x002E, 0,
3606 16, 0x2492, 0x0031, 0x0031, 0x002E, 0,
3607 16, 0x2493, 0x0031, 0x0032, 0x002E, 0,
3608 16, 0x2494, 0x0031, 0x0033, 0x002E, 0,
3609 16, 0x2495, 0x0031, 0x0034, 0x002E, 0,
3610 16, 0x2496, 0x0031, 0x0035, 0x002E, 0,
3611 16, 0x2497, 0x0031, 0x0036, 0x002E, 0,
3612 16, 0x2498, 0x0031, 0x0037, 0x002E, 0,
3613 16, 0x2499, 0x0031, 0x0038, 0x002E, 0,
3614 16, 0x249A, 0x0031, 0x0039, 0x002E, 0,
3615 16, 0x249B, 0x0032, 0x0030, 0x002E, 0,
3616 16, 0x249C, 0x0028, 0x0061, 0x0029, 0,
3617 16, 0x249D, 0x0028, 0x0062, 0x0029, 0,
3618 16, 0x249E, 0x0028, 0x0063, 0x0029, 0,
3619 16, 0x249F, 0x0028, 0x0064, 0x0029, 0,
3620 16, 0x24A0, 0x0028, 0x0065, 0x0029, 0,
3621 16, 0x24A1, 0x0028, 0x0066, 0x0029, 0,
3622 16, 0x24A2, 0x0028, 0x0067, 0x0029, 0,
3623 16, 0x24A3, 0x0028, 0x0068, 0x0029, 0,
3624 16, 0x24A4, 0x0028, 0x0069, 0x0029, 0,
3625 16, 0x24A5, 0x0028, 0x006A, 0x0029, 0,
3626 16, 0x24A6, 0x0028, 0x006B, 0x0029, 0,
3627 16, 0x24A7, 0x0028, 0x006C, 0x0029, 0,
3628 16, 0x24A8, 0x0028, 0x006D, 0x0029, 0,
3629 16, 0x24A9, 0x0028, 0x006E, 0x0029, 0,
3630 16, 0x24AA, 0x0028, 0x006F, 0x0029, 0,
3631 16, 0x24AB, 0x0028, 0x0070, 0x0029, 0,
3632 16, 0x24AC, 0x0028, 0x0071, 0x0029, 0,
3633 16, 0x24AD, 0x0028, 0x0072, 0x0029, 0,
3634 16, 0x24AE, 0x0028, 0x0073, 0x0029, 0,
3635 16, 0x24AF, 0x0028, 0x0074, 0x0029, 0,
3636 16, 0x24B0, 0x0028, 0x0075, 0x0029, 0,
3637 16, 0x24B1, 0x0028, 0x0076, 0x0029, 0,
3638 16, 0x24B2, 0x0028, 0x0077, 0x0029, 0,
3639 16, 0x24B3, 0x0028, 0x0078, 0x0029, 0,
3640 16, 0x24B4, 0x0028, 0x0079, 0x0029, 0,
3641 16, 0x24B5, 0x0028, 0x007A, 0x0029, 0,
3642 8, 0x24B6, 0x0041, 0,
3643 8, 0x24B7, 0x0042, 0,
3644 8, 0x24B8, 0x0043, 0,
3645 8, 0x24B9, 0x0044, 0,
3646 8, 0x24BA, 0x0045, 0,
3647 8, 0x24BB, 0x0046, 0,
3648 8, 0x24BC, 0x0047, 0,
3649 8, 0x24BD, 0x0048, 0,
3650 8, 0x24BE, 0x0049, 0,
3651 8, 0x24BF, 0x004A, 0,
3652 8, 0x24C0, 0x004B, 0,
3653 8, 0x24C1, 0x004C, 0,
3654 8, 0x24C2, 0x004D, 0,
3655 8, 0x24C3, 0x004E, 0,
3656 8, 0x24C4, 0x004F, 0,
3657 8, 0x24C5, 0x0050, 0,
3658 8, 0x24C6, 0x0051, 0,
3659 8, 0x24C7, 0x0052, 0,
3660 8, 0x24C8, 0x0053, 0,
3661 8, 0x24C9, 0x0054, 0,
3662 8, 0x24CA, 0x0055, 0,
3663 8, 0x24CB, 0x0056, 0,
3664 8, 0x24CC, 0x0057, 0,
3665 8, 0x24CD, 0x0058, 0,
3666 8, 0x24CE, 0x0059, 0,
3667 8, 0x24CF, 0x005A, 0,
3668 8, 0x24D0, 0x0061, 0,
3669 8, 0x24D1, 0x0062, 0,
3670 8, 0x24D2, 0x0063, 0,
3671 8, 0x24D3, 0x0064, 0,
3672 8, 0x24D4, 0x0065, 0,
3673 8, 0x24D5, 0x0066, 0,
3674 8, 0x24D6, 0x0067, 0,
3675 8, 0x24D7, 0x0068, 0,
3676 8, 0x24D8, 0x0069, 0,
3677 8, 0x24D9, 0x006A, 0,
3678 8, 0x24DA, 0x006B, 0,
3679 8, 0x24DB, 0x006C, 0,
3680 8, 0x24DC, 0x006D, 0,
3681 8, 0x24DD, 0x006E, 0,
3682 8, 0x24DE, 0x006F, 0,
3683 8, 0x24DF, 0x0070, 0,
3684 8, 0x24E0, 0x0071, 0,
3685 8, 0x24E1, 0x0072, 0,
3686 8, 0x24E2, 0x0073, 0,
3687 8, 0x24E3, 0x0074, 0,
3688 8, 0x24E4, 0x0075, 0,
3689 8, 0x24E5, 0x0076, 0,
3690 8, 0x24E6, 0x0077, 0,
3691 8, 0x24E7, 0x0078, 0,
3692 8, 0x24E8, 0x0079, 0,
3693 8, 0x24E9, 0x007A, 0,
3694 8, 0x24EA, 0x0030, 0,
3695 16, 0x2E9F, 0x6BCD, 0,
3696 16, 0x2EF3, 0x9F9F, 0,
3697 16, 0x2F00, 0x4E00, 0,
3698 16, 0x2F01, 0x4E28, 0,
3699 16, 0x2F02, 0x4E36, 0,
3700 16, 0x2F03, 0x4E3F, 0,
3701 16, 0x2F04, 0x4E59, 0,
3702 16, 0x2F05, 0x4E85, 0,
3703 16, 0x2F06, 0x4E8C, 0,
3704 16, 0x2F07, 0x4EA0, 0,
3705 16, 0x2F08, 0x4EBA, 0,
3706 16, 0x2F09, 0x513F, 0,
3707 16, 0x2F0A, 0x5165, 0,
3708 16, 0x2F0B, 0x516B, 0,
3709 16, 0x2F0C, 0x5182, 0,
3710 16, 0x2F0D, 0x5196, 0,
3711 16, 0x2F0E, 0x51AB, 0,
3712 16, 0x2F0F, 0x51E0, 0,
3713 16, 0x2F10, 0x51F5, 0,
3714 16, 0x2F11, 0x5200, 0,
3715 16, 0x2F12, 0x529B, 0,
3716 16, 0x2F13, 0x52F9, 0,
3717 16, 0x2F14, 0x5315, 0,
3718 16, 0x2F15, 0x531A, 0,
3719 16, 0x2F16, 0x5338, 0,
3720 16, 0x2F17, 0x5341, 0,
3721 16, 0x2F18, 0x535C, 0,
3722 16, 0x2F19, 0x5369, 0,
3723 16, 0x2F1A, 0x5382, 0,
3724 16, 0x2F1B, 0x53B6, 0,
3725 16, 0x2F1C, 0x53C8, 0,
3726 16, 0x2F1D, 0x53E3, 0,
3727 16, 0x2F1E, 0x56D7, 0,
3728 16, 0x2F1F, 0x571F, 0,
3729 16, 0x2F20, 0x58EB, 0,
3730 16, 0x2F21, 0x5902, 0,
3731 16, 0x2F22, 0x590A, 0,
3732 16, 0x2F23, 0x5915, 0,
3733 16, 0x2F24, 0x5927, 0,
3734 16, 0x2F25, 0x5973, 0,
3735 16, 0x2F26, 0x5B50, 0,
3736 16, 0x2F27, 0x5B80, 0,
3737 16, 0x2F28, 0x5BF8, 0,
3738 16, 0x2F29, 0x5C0F, 0,
3739 16, 0x2F2A, 0x5C22, 0,
3740 16, 0x2F2B, 0x5C38, 0,
3741 16, 0x2F2C, 0x5C6E, 0,
3742 16, 0x2F2D, 0x5C71, 0,
3743 16, 0x2F2E, 0x5DDB, 0,
3744 16, 0x2F2F, 0x5DE5, 0,
3745 16, 0x2F30, 0x5DF1, 0,
3746 16, 0x2F31, 0x5DFE, 0,
3747 16, 0x2F32, 0x5E72, 0,
3748 16, 0x2F33, 0x5E7A, 0,
3749 16, 0x2F34, 0x5E7F, 0,
3750 16, 0x2F35, 0x5EF4, 0,
3751 16, 0x2F36, 0x5EFE, 0,
3752 16, 0x2F37, 0x5F0B, 0,
3753 16, 0x2F38, 0x5F13, 0,
3754 16, 0x2F39, 0x5F50, 0,
3755 16, 0x2F3A, 0x5F61, 0,
3756 16, 0x2F3B, 0x5F73, 0,
3757 16, 0x2F3C, 0x5FC3, 0,
3758 16, 0x2F3D, 0x6208, 0,
3759 16, 0x2F3E, 0x6236, 0,
3760 16, 0x2F3F, 0x624B, 0,
3761 16, 0x2F40, 0x652F, 0,
3762 16, 0x2F41, 0x6534, 0,
3763 16, 0x2F42, 0x6587, 0,
3764 16, 0x2F43, 0x6597, 0,
3765 16, 0x2F44, 0x65A4, 0,
3766 16, 0x2F45, 0x65B9, 0,
3767 16, 0x2F46, 0x65E0, 0,
3768 16, 0x2F47, 0x65E5, 0,
3769 16, 0x2F48, 0x66F0, 0,
3770 16, 0x2F49, 0x6708, 0,
3771 16, 0x2F4A, 0x6728, 0,
3772 16, 0x2F4B, 0x6B20, 0,
3773 16, 0x2F4C, 0x6B62, 0,
3774 16, 0x2F4D, 0x6B79, 0,
3775 16, 0x2F4E, 0x6BB3, 0,
3776 16, 0x2F4F, 0x6BCB, 0,
3777 16, 0x2F50, 0x6BD4, 0,
3778 16, 0x2F51, 0x6BDB, 0,
3779 16, 0x2F52, 0x6C0F, 0,
3780 16, 0x2F53, 0x6C14, 0,
3781 16, 0x2F54, 0x6C34, 0,
3782 16, 0x2F55, 0x706B, 0,
3783 16, 0x2F56, 0x722A, 0,
3784 16, 0x2F57, 0x7236, 0,
3785 16, 0x2F58, 0x723B, 0,
3786 16, 0x2F59, 0x723F, 0,
3787 16, 0x2F5A, 0x7247, 0,
3788 16, 0x2F5B, 0x7259, 0,
3789 16, 0x2F5C, 0x725B, 0,
3790 16, 0x2F5D, 0x72AC, 0,
3791 16, 0x2F5E, 0x7384, 0,
3792 16, 0x2F5F, 0x7389, 0,
3793 16, 0x2F60, 0x74DC, 0,
3794 16, 0x2F61, 0x74E6, 0,
3795 16, 0x2F62, 0x7518, 0,
3796 16, 0x2F63, 0x751F, 0,
3797 16, 0x2F64, 0x7528, 0,
3798 16, 0x2F65, 0x7530, 0,
3799 16, 0x2F66, 0x758B, 0,
3800 16, 0x2F67, 0x7592, 0,
3801 16, 0x2F68, 0x7676, 0,
3802 16, 0x2F69, 0x767D, 0,
3803 16, 0x2F6A, 0x76AE, 0,
3804 16, 0x2F6B, 0x76BF, 0,
3805 16, 0x2F6C, 0x76EE, 0,
3806 16, 0x2F6D, 0x77DB, 0,
3807 16, 0x2F6E, 0x77E2, 0,
3808 16, 0x2F6F, 0x77F3, 0,
3809 16, 0x2F70, 0x793A, 0,
3810 16, 0x2F71, 0x79B8, 0,
3811 16, 0x2F72, 0x79BE, 0,
3812 16, 0x2F73, 0x7A74, 0,
3813 16, 0x2F74, 0x7ACB, 0,
3814 16, 0x2F75, 0x7AF9, 0,
3815 16, 0x2F76, 0x7C73, 0,
3816 16, 0x2F77, 0x7CF8, 0,
3817 16, 0x2F78, 0x7F36, 0,
3818 16, 0x2F79, 0x7F51, 0,
3819 16, 0x2F7A, 0x7F8A, 0,
3820 16, 0x2F7B, 0x7FBD, 0,
3821 16, 0x2F7C, 0x8001, 0,
3822 16, 0x2F7D, 0x800C, 0,
3823 16, 0x2F7E, 0x8012, 0,
3824 16, 0x2F7F, 0x8033, 0,
3825 16, 0x2F80, 0x807F, 0,
3826 16, 0x2F81, 0x8089, 0,
3827 16, 0x2F82, 0x81E3, 0,
3828 16, 0x2F83, 0x81EA, 0,
3829 16, 0x2F84, 0x81F3, 0,
3830 16, 0x2F85, 0x81FC, 0,
3831 16, 0x2F86, 0x820C, 0,
3832 16, 0x2F87, 0x821B, 0,
3833 16, 0x2F88, 0x821F, 0,
3834 16, 0x2F89, 0x826E, 0,
3835 16, 0x2F8A, 0x8272, 0,
3836 16, 0x2F8B, 0x8278, 0,
3837 16, 0x2F8C, 0x864D, 0,
3838 16, 0x2F8D, 0x866B, 0,
3839 16, 0x2F8E, 0x8840, 0,
3840 16, 0x2F8F, 0x884C, 0,
3841 16, 0x2F90, 0x8863, 0,
3842 16, 0x2F91, 0x897E, 0,
3843 16, 0x2F92, 0x898B, 0,
3844 16, 0x2F93, 0x89D2, 0,
3845 16, 0x2F94, 0x8A00, 0,
3846 16, 0x2F95, 0x8C37, 0,
3847 16, 0x2F96, 0x8C46, 0,
3848 16, 0x2F97, 0x8C55, 0,
3849 16, 0x2F98, 0x8C78, 0,
3850 16, 0x2F99, 0x8C9D, 0,
3851 16, 0x2F9A, 0x8D64, 0,
3852 16, 0x2F9B, 0x8D70, 0,
3853 16, 0x2F9C, 0x8DB3, 0,
3854 16, 0x2F9D, 0x8EAB, 0,
3855 16, 0x2F9E, 0x8ECA, 0,
3856 16, 0x2F9F, 0x8F9B, 0,
3857 16, 0x2FA0, 0x8FB0, 0,
3858 16, 0x2FA1, 0x8FB5, 0,
3859 16, 0x2FA2, 0x9091, 0,
3860 16, 0x2FA3, 0x9149, 0,
3861 16, 0x2FA4, 0x91C6, 0,
3862 16, 0x2FA5, 0x91CC, 0,
3863 16, 0x2FA6, 0x91D1, 0,
3864 16, 0x2FA7, 0x9577, 0,
3865 16, 0x2FA8, 0x9580, 0,
3866 16, 0x2FA9, 0x961C, 0,
3867 16, 0x2FAA, 0x96B6, 0,
3868 16, 0x2FAB, 0x96B9, 0,
3869 16, 0x2FAC, 0x96E8, 0,
3870 16, 0x2FAD, 0x9751, 0,
3871 16, 0x2FAE, 0x975E, 0,
3872 16, 0x2FAF, 0x9762, 0,
3873 16, 0x2FB0, 0x9769, 0,
3874 16, 0x2FB1, 0x97CB, 0,
3875 16, 0x2FB2, 0x97ED, 0,
3876 16, 0x2FB3, 0x97F3, 0,
3877 16, 0x2FB4, 0x9801, 0,
3878 16, 0x2FB5, 0x98A8, 0,
3879 16, 0x2FB6, 0x98DB, 0,
3880 16, 0x2FB7, 0x98DF, 0,
3881 16, 0x2FB8, 0x9996, 0,
3882 16, 0x2FB9, 0x9999, 0,
3883 16, 0x2FBA, 0x99AC, 0,
3884 16, 0x2FBB, 0x9AA8, 0,
3885 16, 0x2FBC, 0x9AD8, 0,
3886 16, 0x2FBD, 0x9ADF, 0,
3887 16, 0x2FBE, 0x9B25, 0,
3888 16, 0x2FBF, 0x9B2F, 0,
3889 16, 0x2FC0, 0x9B32, 0,
3890 16, 0x2FC1, 0x9B3C, 0,
3891 16, 0x2FC2, 0x9B5A, 0,
3892 16, 0x2FC3, 0x9CE5, 0,
3893 16, 0x2FC4, 0x9E75, 0,
3894 16, 0x2FC5, 0x9E7F, 0,
3895 16, 0x2FC6, 0x9EA5, 0,
3896 16, 0x2FC7, 0x9EBB, 0,
3897 16, 0x2FC8, 0x9EC3, 0,
3898 16, 0x2FC9, 0x9ECD, 0,
3899 16, 0x2FCA, 0x9ED1, 0,
3900 16, 0x2FCB, 0x9EF9, 0,
3901 16, 0x2FCC, 0x9EFD, 0,
3902 16, 0x2FCD, 0x9F0E, 0,
3903 16, 0x2FCE, 0x9F13, 0,
3904 16, 0x2FCF, 0x9F20, 0,
3905 16, 0x2FD0, 0x9F3B, 0,
3906 16, 0x2FD1, 0x9F4A, 0,
3907 16, 0x2FD2, 0x9F52, 0,
3908 16, 0x2FD3, 0x9F8D, 0,
3909 16, 0x2FD4, 0x9F9C, 0,
3910 16, 0x2FD5, 0x9FA0, 0,
3911 12, 0x3000, 0x0020, 0,
3912 16, 0x3036, 0x3012, 0,
3913 16, 0x3038, 0x5341, 0,
3914 16, 0x3039, 0x5344, 0,
3915 16, 0x303A, 0x5345, 0,
3916 1, 0x304C, 0x304B, 0x3099, 0,
3917 1, 0x304E, 0x304D, 0x3099, 0,
3918 1, 0x3050, 0x304F, 0x3099, 0,
3919 1, 0x3052, 0x3051, 0x3099, 0,
3920 1, 0x3054, 0x3053, 0x3099, 0,
3921 1, 0x3056, 0x3055, 0x3099, 0,
3922 1, 0x3058, 0x3057, 0x3099, 0,
3923 1, 0x305A, 0x3059, 0x3099, 0,
3924 1, 0x305C, 0x305B, 0x3099, 0,
3925 1, 0x305E, 0x305D, 0x3099, 0,
3926 1, 0x3060, 0x305F, 0x3099, 0,
3927 1, 0x3062, 0x3061, 0x3099, 0,
3928 1, 0x3065, 0x3064, 0x3099, 0,
3929 1, 0x3067, 0x3066, 0x3099, 0,
3930 1, 0x3069, 0x3068, 0x3099, 0,
3931 1, 0x3070, 0x306F, 0x3099, 0,
3932 1, 0x3071, 0x306F, 0x309A, 0,
3933 1, 0x3073, 0x3072, 0x3099, 0,
3934 1, 0x3074, 0x3072, 0x309A, 0,
3935 1, 0x3076, 0x3075, 0x3099, 0,
3936 1, 0x3077, 0x3075, 0x309A, 0,
3937 1, 0x3079, 0x3078, 0x3099, 0,
3938 1, 0x307A, 0x3078, 0x309A, 0,
3939 1, 0x307C, 0x307B, 0x3099, 0,
3940 1, 0x307D, 0x307B, 0x309A, 0,
3941 1, 0x3094, 0x3046, 0x3099, 0,
3942 16, 0x309B, 0x0020, 0x3099, 0,
3943 16, 0x309C, 0x0020, 0x309A, 0,
3944 1, 0x309E, 0x309D, 0x3099, 0,
3945 1, 0x30AC, 0x30AB, 0x3099, 0,
3946 1, 0x30AE, 0x30AD, 0x3099, 0,
3947 1, 0x30B0, 0x30AF, 0x3099, 0,
3948 1, 0x30B2, 0x30B1, 0x3099, 0,
3949 1, 0x30B4, 0x30B3, 0x3099, 0,
3950 1, 0x30B6, 0x30B5, 0x3099, 0,
3951 1, 0x30B8, 0x30B7, 0x3099, 0,
3952 1, 0x30BA, 0x30B9, 0x3099, 0,
3953 1, 0x30BC, 0x30BB, 0x3099, 0,
3954 1, 0x30BE, 0x30BD, 0x3099, 0,
3955 1, 0x30C0, 0x30BF, 0x3099, 0,
3956 1, 0x30C2, 0x30C1, 0x3099, 0,
3957 1, 0x30C5, 0x30C4, 0x3099, 0,
3958 1, 0x30C7, 0x30C6, 0x3099, 0,
3959 1, 0x30C9, 0x30C8, 0x3099, 0,
3960 1, 0x30D0, 0x30CF, 0x3099, 0,
3961 1, 0x30D1, 0x30CF, 0x309A, 0,
3962 1, 0x30D3, 0x30D2, 0x3099, 0,
3963 1, 0x30D4, 0x30D2, 0x309A, 0,
3964 1, 0x30D6, 0x30D5, 0x3099, 0,
3965 1, 0x30D7, 0x30D5, 0x309A, 0,
3966 1, 0x30D9, 0x30D8, 0x3099, 0,
3967 1, 0x30DA, 0x30D8, 0x309A, 0,
3968 1, 0x30DC, 0x30DB, 0x3099, 0,
3969 1, 0x30DD, 0x30DB, 0x309A, 0,
3970 1, 0x30F4, 0x30A6, 0x3099, 0,
3971 1, 0x30F7, 0x30EF, 0x3099, 0,
3972 1, 0x30F8, 0x30F0, 0x3099, 0,
3973 1, 0x30F9, 0x30F1, 0x3099, 0,
3974 1, 0x30FA, 0x30F2, 0x3099, 0,
3975 1, 0x30FE, 0x30FD, 0x3099, 0,
3976 16, 0x3131, 0x1100, 0,
3977 16, 0x3132, 0x1101, 0,
3978 16, 0x3133, 0x11AA, 0,
3979 16, 0x3134, 0x1102, 0,
3980 16, 0x3135, 0x11AC, 0,
3981 16, 0x3136, 0x11AD, 0,
3982 16, 0x3137, 0x1103, 0,
3983 16, 0x3138, 0x1104, 0,
3984 16, 0x3139, 0x1105, 0,
3985 16, 0x313A, 0x11B0, 0,
3986 16, 0x313B, 0x11B1, 0,
3987 16, 0x313C, 0x11B2, 0,
3988 16, 0x313D, 0x11B3, 0,
3989 16, 0x313E, 0x11B4, 0,
3990 16, 0x313F, 0x11B5, 0,
3991 16, 0x3140, 0x111A, 0,
3992 16, 0x3141, 0x1106, 0,
3993 16, 0x3142, 0x1107, 0,
3994 16, 0x3143, 0x1108, 0,
3995 16, 0x3144, 0x1121, 0,
3996 16, 0x3145, 0x1109, 0,
3997 16, 0x3146, 0x110A, 0,
3998 16, 0x3147, 0x110B, 0,
3999 16, 0x3148, 0x110C, 0,
4000 16, 0x3149, 0x110D, 0,
4001 16, 0x314A, 0x110E, 0,
4002 16, 0x314B, 0x110F, 0,
4003 16, 0x314C, 0x1110, 0,
4004 16, 0x314D, 0x1111, 0,
4005 16, 0x314E, 0x1112, 0,
4006 16, 0x314F, 0x1161, 0,
4007 16, 0x3150, 0x1162, 0,
4008 16, 0x3151, 0x1163, 0,
4009 16, 0x3152, 0x1164, 0,
4010 16, 0x3153, 0x1165, 0,
4011 16, 0x3154, 0x1166, 0,
4012 16, 0x3155, 0x1167, 0,
4013 16, 0x3156, 0x1168, 0,
4014 16, 0x3157, 0x1169, 0,
4015 16, 0x3158, 0x116A, 0,
4016 16, 0x3159, 0x116B, 0,
4017 16, 0x315A, 0x116C, 0,
4018 16, 0x315B, 0x116D, 0,
4019 16, 0x315C, 0x116E, 0,
4020 16, 0x315D, 0x116F, 0,
4021 16, 0x315E, 0x1170, 0,
4022 16, 0x315F, 0x1171, 0,
4023 16, 0x3160, 0x1172, 0,
4024 16, 0x3161, 0x1173, 0,
4025 16, 0x3162, 0x1174, 0,
4026 16, 0x3163, 0x1175, 0,
4027 16, 0x3164, 0x1160, 0,
4028 16, 0x3165, 0x1114, 0,
4029 16, 0x3166, 0x1115, 0,
4030 16, 0x3167, 0x11C7, 0,
4031 16, 0x3168, 0x11C8, 0,
4032 16, 0x3169, 0x11CC, 0,
4033 16, 0x316A, 0x11CE, 0,
4034 16, 0x316B, 0x11D3, 0,
4035 16, 0x316C, 0x11D7, 0,
4036 16, 0x316D, 0x11D9, 0,
4037 16, 0x316E, 0x111C, 0,
4038 16, 0x316F, 0x11DD, 0,
4039 16, 0x3170, 0x11DF, 0,
4040 16, 0x3171, 0x111D, 0,
4041 16, 0x3172, 0x111E, 0,
4042 16, 0x3173, 0x1120, 0,
4043 16, 0x3174, 0x1122, 0,
4044 16, 0x3175, 0x1123, 0,
4045 16, 0x3176, 0x1127, 0,
4046 16, 0x3177, 0x1129, 0,
4047 16, 0x3178, 0x112B, 0,
4048 16, 0x3179, 0x112C, 0,
4049 16, 0x317A, 0x112D, 0,
4050 16, 0x317B, 0x112E, 0,
4051 16, 0x317C, 0x112F, 0,
4052 16, 0x317D, 0x1132, 0,
4053 16, 0x317E, 0x1136, 0,
4054 16, 0x317F, 0x1140, 0,
4055 16, 0x3180, 0x1147, 0,
4056 16, 0x3181, 0x114C, 0,
4057 16, 0x3182, 0x11F1, 0,
4058 16, 0x3183, 0x11F2, 0,
4059 16, 0x3184, 0x1157, 0,
4060 16, 0x3185, 0x1158, 0,
4061 16, 0x3186, 0x1159, 0,
4062 16, 0x3187, 0x1184, 0,
4063 16, 0x3188, 0x1185, 0,
4064 16, 0x3189, 0x1188, 0,
4065 16, 0x318A, 0x1191, 0,
4066 16, 0x318B, 0x1192, 0,
4067 16, 0x318C, 0x1194, 0,
4068 16, 0x318D, 0x119E, 0,
4069 16, 0x318E, 0x11A1, 0,
4070 9, 0x3192, 0x4E00, 0,
4071 9, 0x3193, 0x4E8C, 0,
4072 9, 0x3194, 0x4E09, 0,
4073 9, 0x3195, 0x56DB, 0,
4074 9, 0x3196, 0x4E0A, 0,
4075 9, 0x3197, 0x4E2D, 0,
4076 9, 0x3198, 0x4E0B, 0,
4077 9, 0x3199, 0x7532, 0,
4078 9, 0x319A, 0x4E59, 0,
4079 9, 0x319B, 0x4E19, 0,
4080 9, 0x319C, 0x4E01, 0,
4081 9, 0x319D, 0x5929, 0,
4082 9, 0x319E, 0x5730, 0,
4083 9, 0x319F, 0x4EBA, 0,
4084 16, 0x3200, 0x0028, 0x1100, 0x0029, 0,
4085 16, 0x3201, 0x0028, 0x1102, 0x0029, 0,
4086 16, 0x3202, 0x0028, 0x1103, 0x0029, 0,
4087 16, 0x3203, 0x0028, 0x1105, 0x0029, 0,
4088 16, 0x3204, 0x0028, 0x1106, 0x0029, 0,
4089 16, 0x3205, 0x0028, 0x1107, 0x0029, 0,
4090 16, 0x3206, 0x0028, 0x1109, 0x0029, 0,
4091 16, 0x3207, 0x0028, 0x110B, 0x0029, 0,
4092 16, 0x3208, 0x0028, 0x110C, 0x0029, 0,
4093 16, 0x3209, 0x0028, 0x110E, 0x0029, 0,
4094 16, 0x320A, 0x0028, 0x110F, 0x0029, 0,
4095 16, 0x320B, 0x0028, 0x1110, 0x0029, 0,
4096 16, 0x320C, 0x0028, 0x1111, 0x0029, 0,
4097 16, 0x320D, 0x0028, 0x1112, 0x0029, 0,
4098 16, 0x320E, 0x0028, 0x1100, 0x1161, 0x0029, 0,
4099 16, 0x320F, 0x0028, 0x1102, 0x1161, 0x0029, 0,
4100 16, 0x3210, 0x0028, 0x1103, 0x1161, 0x0029, 0,
4101 16, 0x3211, 0x0028, 0x1105, 0x1161, 0x0029, 0,
4102 16, 0x3212, 0x0028, 0x1106, 0x1161, 0x0029, 0,
4103 16, 0x3213, 0x0028, 0x1107, 0x1161, 0x0029, 0,
4104 16, 0x3214, 0x0028, 0x1109, 0x1161, 0x0029, 0,
4105 16, 0x3215, 0x0028, 0x110B, 0x1161, 0x0029, 0,
4106 16, 0x3216, 0x0028, 0x110C, 0x1161, 0x0029, 0,
4107 16, 0x3217, 0x0028, 0x110E, 0x1161, 0x0029, 0,
4108 16, 0x3218, 0x0028, 0x110F, 0x1161, 0x0029, 0,
4109 16, 0x3219, 0x0028, 0x1110, 0x1161, 0x0029, 0,
4110 16, 0x321A, 0x0028, 0x1111, 0x1161, 0x0029, 0,
4111 16, 0x321B, 0x0028, 0x1112, 0x1161, 0x0029, 0,
4112 16, 0x321C, 0x0028, 0x110C, 0x116E, 0x0029, 0,
4113 16, 0x3220, 0x0028, 0x4E00, 0x0029, 0,
4114 16, 0x3221, 0x0028, 0x4E8C, 0x0029, 0,
4115 16, 0x3222, 0x0028, 0x4E09, 0x0029, 0,
4116 16, 0x3223, 0x0028, 0x56DB, 0x0029, 0,
4117 16, 0x3224, 0x0028, 0x4E94, 0x0029, 0,
4118 16, 0x3225, 0x0028, 0x516D, 0x0029, 0,
4119 16, 0x3226, 0x0028, 0x4E03, 0x0029, 0,
4120 16, 0x3227, 0x0028, 0x516B, 0x0029, 0,
4121 16, 0x3228, 0x0028, 0x4E5D, 0x0029, 0,
4122 16, 0x3229, 0x0028, 0x5341, 0x0029, 0,
4123 16, 0x322A, 0x0028, 0x6708, 0x0029, 0,
4124 16, 0x322B, 0x0028, 0x706B, 0x0029, 0,
4125 16, 0x322C, 0x0028, 0x6C34, 0x0029, 0,
4126 16, 0x322D, 0x0028, 0x6728, 0x0029, 0,
4127 16, 0x322E, 0x0028, 0x91D1, 0x0029, 0,
4128 16, 0x322F, 0x0028, 0x571F, 0x0029, 0,
4129 16, 0x3230, 0x0028, 0x65E5, 0x0029, 0,
4130 16, 0x3231, 0x0028, 0x682A, 0x0029, 0,
4131 16, 0x3232, 0x0028, 0x6709, 0x0029, 0,
4132 16, 0x3233, 0x0028, 0x793E, 0x0029, 0,
4133 16, 0x3234, 0x0028, 0x540D, 0x0029, 0,
4134 16, 0x3235, 0x0028, 0x7279, 0x0029, 0,
4135 16, 0x3236, 0x0028, 0x8CA1, 0x0029, 0,
4136 16, 0x3237, 0x0028, 0x795D, 0x0029, 0,
4137 16, 0x3238, 0x0028, 0x52B4, 0x0029, 0,
4138 16, 0x3239, 0x0028, 0x4EE3, 0x0029, 0,
4139 16, 0x323A, 0x0028, 0x547C, 0x0029, 0,
4140 16, 0x323B, 0x0028, 0x5B66, 0x0029, 0,
4141 16, 0x323C, 0x0028, 0x76E3, 0x0029, 0,
4142 16, 0x323D, 0x0028, 0x4F01, 0x0029, 0,
4143 16, 0x323E, 0x0028, 0x8CC7, 0x0029, 0,
4144 16, 0x323F, 0x0028, 0x5354, 0x0029, 0,
4145 16, 0x3240, 0x0028, 0x796D, 0x0029, 0,
4146 16, 0x3241, 0x0028, 0x4F11, 0x0029, 0,
4147 16, 0x3242, 0x0028, 0x81EA, 0x0029, 0,
4148 16, 0x3243, 0x0028, 0x81F3, 0x0029, 0,
4149 8, 0x3260, 0x1100, 0,
4150 8, 0x3261, 0x1102, 0,
4151 8, 0x3262, 0x1103, 0,
4152 8, 0x3263, 0x1105, 0,
4153 8, 0x3264, 0x1106, 0,
4154 8, 0x3265, 0x1107, 0,
4155 8, 0x3266, 0x1109, 0,
4156 8, 0x3267, 0x110B, 0,
4157 8, 0x3268, 0x110C, 0,
4158 8, 0x3269, 0x110E, 0,
4159 8, 0x326A, 0x110F, 0,
4160 8, 0x326B, 0x1110, 0,
4161 8, 0x326C, 0x1111, 0,
4162 8, 0x326D, 0x1112, 0,
4163 8, 0x326E, 0x1100, 0x1161, 0,
4164 8, 0x326F, 0x1102, 0x1161, 0,
4165 8, 0x3270, 0x1103, 0x1161, 0,
4166 8, 0x3271, 0x1105, 0x1161, 0,
4167 8, 0x3272, 0x1106, 0x1161, 0,
4168 8, 0x3273, 0x1107, 0x1161, 0,
4169 8, 0x3274, 0x1109, 0x1161, 0,
4170 8, 0x3275, 0x110B, 0x1161, 0,
4171 8, 0x3276, 0x110C, 0x1161, 0,
4172 8, 0x3277, 0x110E, 0x1161, 0,
4173 8, 0x3278, 0x110F, 0x1161, 0,
4174 8, 0x3279, 0x1110, 0x1161, 0,
4175 8, 0x327A, 0x1111, 0x1161, 0,
4176 8, 0x327B, 0x1112, 0x1161, 0,
4177 8, 0x3280, 0x4E00, 0,
4178 8, 0x3281, 0x4E8C, 0,
4179 8, 0x3282, 0x4E09, 0,
4180 8, 0x3283, 0x56DB, 0,
4181 8, 0x3284, 0x4E94, 0,
4182 8, 0x3285, 0x516D, 0,
4183 8, 0x3286, 0x4E03, 0,
4184 8, 0x3287, 0x516B, 0,
4185 8, 0x3288, 0x4E5D, 0,
4186 8, 0x3289, 0x5341, 0,
4187 8, 0x328A, 0x6708, 0,
4188 8, 0x328B, 0x706B, 0,
4189 8, 0x328C, 0x6C34, 0,
4190 8, 0x328D, 0x6728, 0,
4191 8, 0x328E, 0x91D1, 0,
4192 8, 0x328F, 0x571F, 0,
4193 8, 0x3290, 0x65E5, 0,
4194 8, 0x3291, 0x682A, 0,
4195 8, 0x3292, 0x6709, 0,
4196 8, 0x3293, 0x793E, 0,
4197 8, 0x3294, 0x540D, 0,
4198 8, 0x3295, 0x7279, 0,
4199 8, 0x3296, 0x8CA1, 0,
4200 8, 0x3297, 0x795D, 0,
4201 8, 0x3298, 0x52B4, 0,
4202 8, 0x3299, 0x79D8, 0,
4203 8, 0x329A, 0x7537, 0,
4204 8, 0x329B, 0x5973, 0,
4205 8, 0x329C, 0x9069, 0,
4206 8, 0x329D, 0x512A, 0,
4207 8, 0x329E, 0x5370, 0,
4208 8, 0x329F, 0x6CE8, 0,
4209 8, 0x32A0, 0x9805, 0,
4210 8, 0x32A1, 0x4F11, 0,
4211 8, 0x32A2, 0x5199, 0,
4212 8, 0x32A3, 0x6B63, 0,
4213 8, 0x32A4, 0x4E0A, 0,
4214 8, 0x32A5, 0x4E2D, 0,
4215 8, 0x32A6, 0x4E0B, 0,
4216 8, 0x32A7, 0x5DE6, 0,
4217 8, 0x32A8, 0x53F3, 0,
4218 8, 0x32A9, 0x533B, 0,
4219 8, 0x32AA, 0x5B97, 0,
4220 8, 0x32AB, 0x5B66, 0,
4221 8, 0x32AC, 0x76E3, 0,
4222 8, 0x32AD, 0x4F01, 0,
4223 8, 0x32AE, 0x8CC7, 0,
4224 8, 0x32AF, 0x5354, 0,
4225 8, 0x32B0, 0x591C, 0,
4226 16, 0x32C0, 0x0031, 0x6708, 0,
4227 16, 0x32C1, 0x0032, 0x6708, 0,
4228 16, 0x32C2, 0x0033, 0x6708, 0,
4229 16, 0x32C3, 0x0034, 0x6708, 0,
4230 16, 0x32C4, 0x0035, 0x6708, 0,
4231 16, 0x32C5, 0x0036, 0x6708, 0,
4232 16, 0x32C6, 0x0037, 0x6708, 0,
4233 16, 0x32C7, 0x0038, 0x6708, 0,
4234 16, 0x32C8, 0x0039, 0x6708, 0,
4235 16, 0x32C9, 0x0031, 0x0030, 0x6708, 0,
4236 16, 0x32CA, 0x0031, 0x0031, 0x6708, 0,
4237 16, 0x32CB, 0x0031, 0x0032, 0x6708, 0,
4238 8, 0x32D0, 0x30A2, 0,
4239 8, 0x32D1, 0x30A4, 0,
4240 8, 0x32D2, 0x30A6, 0,
4241 8, 0x32D3, 0x30A8, 0,
4242 8, 0x32D4, 0x30AA, 0,
4243 8, 0x32D5, 0x30AB, 0,
4244 8, 0x32D6, 0x30AD, 0,
4245 8, 0x32D7, 0x30AF, 0,
4246 8, 0x32D8, 0x30B1, 0,
4247 8, 0x32D9, 0x30B3, 0,
4248 8, 0x32DA, 0x30B5, 0,
4249 8, 0x32DB, 0x30B7, 0,
4250 8, 0x32DC, 0x30B9, 0,
4251 8, 0x32DD, 0x30BB, 0,
4252 8, 0x32DE, 0x30BD, 0,
4253 8, 0x32DF, 0x30BF, 0,
4254 8, 0x32E0, 0x30C1, 0,
4255 8, 0x32E1, 0x30C4, 0,
4256 8, 0x32E2, 0x30C6, 0,
4257 8, 0x32E3, 0x30C8, 0,
4258 8, 0x32E4, 0x30CA, 0,
4259 8, 0x32E5, 0x30CB, 0,
4260 8, 0x32E6, 0x30CC, 0,
4261 8, 0x32E7, 0x30CD, 0,
4262 8, 0x32E8, 0x30CE, 0,
4263 8, 0x32E9, 0x30CF, 0,
4264 8, 0x32EA, 0x30D2, 0,
4265 8, 0x32EB, 0x30D5, 0,
4266 8, 0x32EC, 0x30D8, 0,
4267 8, 0x32ED, 0x30DB, 0,
4268 8, 0x32EE, 0x30DE, 0,
4269 8, 0x32EF, 0x30DF, 0,
4270 8, 0x32F0, 0x30E0, 0,
4271 8, 0x32F1, 0x30E1, 0,
4272 8, 0x32F2, 0x30E2, 0,
4273 8, 0x32F3, 0x30E4, 0,
4274 8, 0x32F4, 0x30E6, 0,
4275 8, 0x32F5, 0x30E8, 0,
4276 8, 0x32F6, 0x30E9, 0,
4277 8, 0x32F7, 0x30EA, 0,
4278 8, 0x32F8, 0x30EB, 0,
4279 8, 0x32F9, 0x30EC, 0,
4280 8, 0x32FA, 0x30ED, 0,
4281 8, 0x32FB, 0x30EF, 0,
4282 8, 0x32FC, 0x30F0, 0,
4283 8, 0x32FD, 0x30F1, 0,
4284 8, 0x32FE, 0x30F2, 0,
4285 15, 0x3300, 0x30A2, 0x30D1, 0x30FC, 0x30C8, 0,
4286 15, 0x3301, 0x30A2, 0x30EB, 0x30D5, 0x30A1, 0,
4287 15, 0x3302, 0x30A2, 0x30F3, 0x30DA, 0x30A2, 0,
4288 15, 0x3303, 0x30A2, 0x30FC, 0x30EB, 0,
4289 15, 0x3304, 0x30A4, 0x30CB, 0x30F3, 0x30B0, 0,
4290 15, 0x3305, 0x30A4, 0x30F3, 0x30C1, 0,
4291 15, 0x3306, 0x30A6, 0x30A9, 0x30F3, 0,
4292 15, 0x3307, 0x30A8, 0x30B9, 0x30AF, 0x30FC, 0x30C9, 0,
4293 15, 0x3308, 0x30A8, 0x30FC, 0x30AB, 0x30FC, 0,
4294 15, 0x3309, 0x30AA, 0x30F3, 0x30B9, 0,
4295 15, 0x330A, 0x30AA, 0x30FC, 0x30E0, 0,
4296 15, 0x330B, 0x30AB, 0x30A4, 0x30EA, 0,
4297 15, 0x330C, 0x30AB, 0x30E9, 0x30C3, 0x30C8, 0,
4298 15, 0x330D, 0x30AB, 0x30ED, 0x30EA, 0x30FC, 0,
4299 15, 0x330E, 0x30AC, 0x30ED, 0x30F3, 0,
4300 15, 0x330F, 0x30AC, 0x30F3, 0x30DE, 0,
4301 15, 0x3310, 0x30AE, 0x30AC, 0,
4302 15, 0x3311, 0x30AE, 0x30CB, 0x30FC, 0,
4303 15, 0x3312, 0x30AD, 0x30E5, 0x30EA, 0x30FC, 0,
4304 15, 0x3313, 0x30AE, 0x30EB, 0x30C0, 0x30FC, 0,
4305 15, 0x3314, 0x30AD, 0x30ED, 0,
4306 15, 0x3315, 0x30AD, 0x30ED, 0x30B0, 0x30E9, 0x30E0, 0,
4307 15, 0x3316, 0x30AD, 0x30ED, 0x30E1, 0x30FC, 0x30C8, 0x30EB, 0,
4308 15, 0x3317, 0x30AD, 0x30ED, 0x30EF, 0x30C3, 0x30C8, 0,
4309 15, 0x3318, 0x30B0, 0x30E9, 0x30E0, 0,
4310 15, 0x3319, 0x30B0, 0x30E9, 0x30E0, 0x30C8, 0x30F3, 0,
4311 15, 0x331A, 0x30AF, 0x30EB, 0x30BC, 0x30A4, 0x30ED, 0,
4312 15, 0x331B, 0x30AF, 0x30ED, 0x30FC, 0x30CD, 0,
4313 15, 0x331C, 0x30B1, 0x30FC, 0x30B9, 0,
4314 15, 0x331D, 0x30B3, 0x30EB, 0x30CA, 0,
4315 15, 0x331E, 0x30B3, 0x30FC, 0x30DD, 0,
4316 15, 0x331F, 0x30B5, 0x30A4, 0x30AF, 0x30EB, 0,
4317 15, 0x3320, 0x30B5, 0x30F3, 0x30C1, 0x30FC, 0x30E0, 0,
4318 15, 0x3321, 0x30B7, 0x30EA, 0x30F3, 0x30B0, 0,
4319 15, 0x3322, 0x30BB, 0x30F3, 0x30C1, 0,
4320 15, 0x3323, 0x30BB, 0x30F3, 0x30C8, 0,
4321 15, 0x3324, 0x30C0, 0x30FC, 0x30B9, 0,
4322 15, 0x3325, 0x30C7, 0x30B7, 0,
4323 15, 0x3326, 0x30C9, 0x30EB, 0,
4324 15, 0x3327, 0x30C8, 0x30F3, 0,
4325 15, 0x3328, 0x30CA, 0x30CE, 0,
4326 15, 0x3329, 0x30CE, 0x30C3, 0x30C8, 0,
4327 15, 0x332A, 0x30CF, 0x30A4, 0x30C4, 0,
4328 15, 0x332B, 0x30D1, 0x30FC, 0x30BB, 0x30F3, 0x30C8, 0,
4329 15, 0x332C, 0x30D1, 0x30FC, 0x30C4, 0,
4330 15, 0x332D, 0x30D0, 0x30FC, 0x30EC, 0x30EB, 0,
4331 15, 0x332E, 0x30D4, 0x30A2, 0x30B9, 0x30C8, 0x30EB, 0,
4332 15, 0x332F, 0x30D4, 0x30AF, 0x30EB, 0,
4333 15, 0x3330, 0x30D4, 0x30B3, 0,
4334 15, 0x3331, 0x30D3, 0x30EB, 0,
4335 15, 0x3332, 0x30D5, 0x30A1, 0x30E9, 0x30C3, 0x30C9, 0,
4336 15, 0x3333, 0x30D5, 0x30A3, 0x30FC, 0x30C8, 0,
4337 15, 0x3334, 0x30D6, 0x30C3, 0x30B7, 0x30A7, 0x30EB, 0,
4338 15, 0x3335, 0x30D5, 0x30E9, 0x30F3, 0,
4339 15, 0x3336, 0x30D8, 0x30AF, 0x30BF, 0x30FC, 0x30EB, 0,
4340 15, 0x3337, 0x30DA, 0x30BD, 0,
4341 15, 0x3338, 0x30DA, 0x30CB, 0x30D2, 0,
4342 15, 0x3339, 0x30D8, 0x30EB, 0x30C4, 0,
4343 15, 0x333A, 0x30DA, 0x30F3, 0x30B9, 0,
4344 15, 0x333B, 0x30DA, 0x30FC, 0x30B8, 0,
4345 15, 0x333C, 0x30D9, 0x30FC, 0x30BF, 0,
4346 15, 0x333D, 0x30DD, 0x30A4, 0x30F3, 0x30C8, 0,
4347 15, 0x333E, 0x30DC, 0x30EB, 0x30C8, 0,
4348 15, 0x333F, 0x30DB, 0x30F3, 0,
4349 15, 0x3340, 0x30DD, 0x30F3, 0x30C9, 0,
4350 15, 0x3341, 0x30DB, 0x30FC, 0x30EB, 0,
4351 15, 0x3342, 0x30DB, 0x30FC, 0x30F3, 0,
4352 15, 0x3343, 0x30DE, 0x30A4, 0x30AF, 0x30ED, 0,
4353 15, 0x3344, 0x30DE, 0x30A4, 0x30EB, 0,
4354 15, 0x3345, 0x30DE, 0x30C3, 0x30CF, 0,
4355 15, 0x3346, 0x30DE, 0x30EB, 0x30AF, 0,
4356 15, 0x3347, 0x30DE, 0x30F3, 0x30B7, 0x30E7, 0x30F3, 0,
4357 15, 0x3348, 0x30DF, 0x30AF, 0x30ED, 0x30F3, 0,
4358 15, 0x3349, 0x30DF, 0x30EA, 0,
4359 15, 0x334A, 0x30DF, 0x30EA, 0x30D0, 0x30FC, 0x30EB, 0,
4360 15, 0x334B, 0x30E1, 0x30AC, 0,
4361 15, 0x334C, 0x30E1, 0x30AC, 0x30C8, 0x30F3, 0,
4362 15, 0x334D, 0x30E1, 0x30FC, 0x30C8, 0x30EB, 0,
4363 15, 0x334E, 0x30E4, 0x30FC, 0x30C9, 0,
4364 15, 0x334F, 0x30E4, 0x30FC, 0x30EB, 0,
4365 15, 0x3350, 0x30E6, 0x30A2, 0x30F3, 0,
4366 15, 0x3351, 0x30EA, 0x30C3, 0x30C8, 0x30EB, 0,
4367 15, 0x3352, 0x30EA, 0x30E9, 0,
4368 15, 0x3353, 0x30EB, 0x30D4, 0x30FC, 0,
4369 15, 0x3354, 0x30EB, 0x30FC, 0x30D6, 0x30EB, 0,
4370 15, 0x3355, 0x30EC, 0x30E0, 0,
4371 15, 0x3356, 0x30EC, 0x30F3, 0x30C8, 0x30B2, 0x30F3, 0,
4372 15, 0x3357, 0x30EF, 0x30C3, 0x30C8, 0,
4373 16, 0x3358, 0x0030, 0x70B9, 0,
4374 16, 0x3359, 0x0031, 0x70B9, 0,
4375 16, 0x335A, 0x0032, 0x70B9, 0,
4376 16, 0x335B, 0x0033, 0x70B9, 0,
4377 16, 0x335C, 0x0034, 0x70B9, 0,
4378 16, 0x335D, 0x0035, 0x70B9, 0,
4379 16, 0x335E, 0x0036, 0x70B9, 0,
4380 16, 0x335F, 0x0037, 0x70B9, 0,
4381 16, 0x3360, 0x0038, 0x70B9, 0,
4382 16, 0x3361, 0x0039, 0x70B9, 0,
4383 16, 0x3362, 0x0031, 0x0030, 0x70B9, 0,
4384 16, 0x3363, 0x0031, 0x0031, 0x70B9, 0,
4385 16, 0x3364, 0x0031, 0x0032, 0x70B9, 0,
4386 16, 0x3365, 0x0031, 0x0033, 0x70B9, 0,
4387 16, 0x3366, 0x0031, 0x0034, 0x70B9, 0,
4388 16, 0x3367, 0x0031, 0x0035, 0x70B9, 0,
4389 16, 0x3368, 0x0031, 0x0036, 0x70B9, 0,
4390 16, 0x3369, 0x0031, 0x0037, 0x70B9, 0,
4391 16, 0x336A, 0x0031, 0x0038, 0x70B9, 0,
4392 16, 0x336B, 0x0031, 0x0039, 0x70B9, 0,
4393 16, 0x336C, 0x0032, 0x0030, 0x70B9, 0,
4394 16, 0x336D, 0x0032, 0x0031, 0x70B9, 0,
4395 16, 0x336E, 0x0032, 0x0032, 0x70B9, 0,
4396 16, 0x336F, 0x0032, 0x0033, 0x70B9, 0,
4397 16, 0x3370, 0x0032, 0x0034, 0x70B9, 0,
4398 15, 0x3371, 0x0068, 0x0050, 0x0061, 0,
4399 15, 0x3372, 0x0064, 0x0061, 0,
4400 15, 0x3373, 0x0041, 0x0055, 0,
4401 15, 0x3374, 0x0062, 0x0061, 0x0072, 0,
4402 15, 0x3375, 0x006F, 0x0056, 0,
4403 15, 0x3376, 0x0070, 0x0063, 0,
4404 15, 0x337B, 0x5E73, 0x6210, 0,
4405 15, 0x337C, 0x662D, 0x548C, 0,
4406 15, 0x337D, 0x5927, 0x6B63, 0,
4407 15, 0x337E, 0x660E, 0x6CBB, 0,
4408 15, 0x337F, 0x682A, 0x5F0F, 0x4F1A, 0x793E, 0,
4409 15, 0x3380, 0x0070, 0x0041, 0,
4410 15, 0x3381, 0x006E, 0x0041, 0,
4411 15, 0x3382, 0x03BC, 0x0041, 0,
4412 15, 0x3383, 0x006D, 0x0041, 0,
4413 15, 0x3384, 0x006B, 0x0041, 0,
4414 15, 0x3385, 0x004B, 0x0042, 0,
4415 15, 0x3386, 0x004D, 0x0042, 0,
4416 15, 0x3387, 0x0047, 0x0042, 0,
4417 15, 0x3388, 0x0063, 0x0061, 0x006C, 0,
4418 15, 0x3389, 0x006B, 0x0063, 0x0061, 0x006C, 0,
4419 15, 0x338A, 0x0070, 0x0046, 0,
4420 15, 0x338B, 0x006E, 0x0046, 0,
4421 15, 0x338C, 0x03BC, 0x0046, 0,
4422 15, 0x338D, 0x03BC, 0x0067, 0,
4423 15, 0x338E, 0x006D, 0x0067, 0,
4424 15, 0x338F, 0x006B, 0x0067, 0,
4425 15, 0x3390, 0x0048, 0x007A, 0,
4426 15, 0x3391, 0x006B, 0x0048, 0x007A, 0,
4427 15, 0x3392, 0x004D, 0x0048, 0x007A, 0,
4428 15, 0x3393, 0x0047, 0x0048, 0x007A, 0,
4429 15, 0x3394, 0x0054, 0x0048, 0x007A, 0,
4430 15, 0x3395, 0x03BC, 0x2113, 0,
4431 15, 0x3396, 0x006D, 0x2113, 0,
4432 15, 0x3397, 0x0064, 0x2113, 0,
4433 15, 0x3398, 0x006B, 0x2113, 0,
4434 15, 0x3399, 0x0066, 0x006D, 0,
4435 15, 0x339A, 0x006E, 0x006D, 0,
4436 15, 0x339B, 0x03BC, 0x006D, 0,
4437 15, 0x339C, 0x006D, 0x006D, 0,
4438 15, 0x339D, 0x0063, 0x006D, 0,
4439 15, 0x339E, 0x006B, 0x006D, 0,
4440 15, 0x339F, 0x006D, 0x006D, 0x00B2, 0,
4441 15, 0x33A0, 0x0063, 0x006D, 0x00B2, 0,
4442 15, 0x33A1, 0x006D, 0x00B2, 0,
4443 15, 0x33A2, 0x006B, 0x006D, 0x00B2, 0,
4444 15, 0x33A3, 0x006D, 0x006D, 0x00B3, 0,
4445 15, 0x33A4, 0x0063, 0x006D, 0x00B3, 0,
4446 15, 0x33A5, 0x006D, 0x00B3, 0,
4447 15, 0x33A6, 0x006B, 0x006D, 0x00B3, 0,
4448 15, 0x33A7, 0x006D, 0x2215, 0x0073, 0,
4449 15, 0x33A8, 0x006D, 0x2215, 0x0073, 0x00B2, 0,
4450 15, 0x33A9, 0x0050, 0x0061, 0,
4451 15, 0x33AA, 0x006B, 0x0050, 0x0061, 0,
4452 15, 0x33AB, 0x004D, 0x0050, 0x0061, 0,
4453 15, 0x33AC, 0x0047, 0x0050, 0x0061, 0,
4454 15, 0x33AD, 0x0072, 0x0061, 0x0064, 0,
4455 15, 0x33AE, 0x0072, 0x0061, 0x0064, 0x2215, 0x0073, 0,
4456 15, 0x33AF, 0x0072, 0x0061, 0x0064, 0x2215, 0x0073, 0x00B2, 0,
4457 15, 0x33B0, 0x0070, 0x0073, 0,
4458 15, 0x33B1, 0x006E, 0x0073, 0,
4459 15, 0x33B2, 0x03BC, 0x0073, 0,
4460 15, 0x33B3, 0x006D, 0x0073, 0,
4461 15, 0x33B4, 0x0070, 0x0056, 0,
4462 15, 0x33B5, 0x006E, 0x0056, 0,
4463 15, 0x33B6, 0x03BC, 0x0056, 0,
4464 15, 0x33B7, 0x006D, 0x0056, 0,
4465 15, 0x33B8, 0x006B, 0x0056, 0,
4466 15, 0x33B9, 0x004D, 0x0056, 0,
4467 15, 0x33BA, 0x0070, 0x0057, 0,
4468 15, 0x33BB, 0x006E, 0x0057, 0,
4469 15, 0x33BC, 0x03BC, 0x0057, 0,
4470 15, 0x33BD, 0x006D, 0x0057, 0,
4471 15, 0x33BE, 0x006B, 0x0057, 0,
4472 15, 0x33BF, 0x004D, 0x0057, 0,
4473 15, 0x33C0, 0x006B, 0x03A9, 0,
4474 15, 0x33C1, 0x004D, 0x03A9, 0,
4475 15, 0x33C2, 0x0061, 0x002E, 0x006D, 0x002E, 0,
4476 15, 0x33C3, 0x0042, 0x0071, 0,
4477 15, 0x33C4, 0x0063, 0x0063, 0,
4478 15, 0x33C5, 0x0063, 0x0064, 0,
4479 15, 0x33C6, 0x0043, 0x2215, 0x006B, 0x0067, 0,
4480 15, 0x33C7, 0x0043, 0x006F, 0x002E, 0,
4481 15, 0x33C8, 0x0064, 0x0042, 0,
4482 15, 0x33C9, 0x0047, 0x0079, 0,
4483 15, 0x33CA, 0x0068, 0x0061, 0,
4484 15, 0x33CB, 0x0048, 0x0050, 0,
4485 15, 0x33CC, 0x0069, 0x006E, 0,
4486 15, 0x33CD, 0x004B, 0x004B, 0,
4487 15, 0x33CE, 0x004B, 0x004D, 0,
4488 15, 0x33CF, 0x006B, 0x0074, 0,
4489 15, 0x33D0, 0x006C, 0x006D, 0,
4490 15, 0x33D1, 0x006C, 0x006E, 0,
4491 15, 0x33D2, 0x006C, 0x006F, 0x0067, 0,
4492 15, 0x33D3, 0x006C, 0x0078, 0,
4493 15, 0x33D4, 0x006D, 0x0062, 0,
4494 15, 0x33D5, 0x006D, 0x0069, 0x006C, 0,
4495 15, 0x33D6, 0x006D, 0x006F, 0x006C, 0,
4496 15, 0x33D7, 0x0050, 0x0048, 0,
4497 15, 0x33D8, 0x0070, 0x002E, 0x006D, 0x002E, 0,
4498 15, 0x33D9, 0x0050, 0x0050, 0x004D, 0,
4499 15, 0x33DA, 0x0050, 0x0052, 0,
4500 15, 0x33DB, 0x0073, 0x0072, 0,
4501 15, 0x33DC, 0x0053, 0x0076, 0,
4502 15, 0x33DD, 0x0057, 0x0062, 0,
4503 16, 0x33E0, 0x0031, 0x65E5, 0,
4504 16, 0x33E1, 0x0032, 0x65E5, 0,
4505 16, 0x33E2, 0x0033, 0x65E5, 0,
4506 16, 0x33E3, 0x0034, 0x65E5, 0,
4507 16, 0x33E4, 0x0035, 0x65E5, 0,
4508 16, 0x33E5, 0x0036, 0x65E5, 0,
4509 16, 0x33E6, 0x0037, 0x65E5, 0,
4510 16, 0x33E7, 0x0038, 0x65E5, 0,
4511 16, 0x33E8, 0x0039, 0x65E5, 0,
4512 16, 0x33E9, 0x0031, 0x0030, 0x65E5, 0,
4513 16, 0x33EA, 0x0031, 0x0031, 0x65E5, 0,
4514 16, 0x33EB, 0x0031, 0x0032, 0x65E5, 0,
4515 16, 0x33EC, 0x0031, 0x0033, 0x65E5, 0,
4516 16, 0x33ED, 0x0031, 0x0034, 0x65E5, 0,
4517 16, 0x33EE, 0x0031, 0x0035, 0x65E5, 0,
4518 16, 0x33EF, 0x0031, 0x0036, 0x65E5, 0,
4519 16, 0x33F0, 0x0031, 0x0037, 0x65E5, 0,
4520 16, 0x33F1, 0x0031, 0x0038, 0x65E5, 0,
4521 16, 0x33F2, 0x0031, 0x0039, 0x65E5, 0,
4522 16, 0x33F3, 0x0032, 0x0030, 0x65E5, 0,
4523 16, 0x33F4, 0x0032, 0x0031, 0x65E5, 0,
4524 16, 0x33F5, 0x0032, 0x0032, 0x65E5, 0,
4525 16, 0x33F6, 0x0032, 0x0033, 0x65E5, 0,
4526 16, 0x33F7, 0x0032, 0x0034, 0x65E5, 0,
4527 16, 0x33F8, 0x0032, 0x0035, 0x65E5, 0,
4528 16, 0x33F9, 0x0032, 0x0036, 0x65E5, 0,
4529 16, 0x33FA, 0x0032, 0x0037, 0x65E5, 0,
4530 16, 0x33FB, 0x0032, 0x0038, 0x65E5, 0,
4531 16, 0x33FC, 0x0032, 0x0039, 0x65E5, 0,
4532 16, 0x33FD, 0x0033, 0x0030, 0x65E5, 0,
4533 16, 0x33FE, 0x0033, 0x0031, 0x65E5, 0,
4534 1, 0xF900, 0x8C48, 0,
4535 1, 0xF901, 0x66F4, 0,
4536 1, 0xF902, 0x8ECA, 0,
4537 1, 0xF903, 0x8CC8, 0,
4538 1, 0xF904, 0x6ED1, 0,
4539 1, 0xF905, 0x4E32, 0,
4540 1, 0xF906, 0x53E5, 0,
4541 1, 0xF907, 0x9F9C, 0,
4542 1, 0xF908, 0x9F9C, 0,
4543 1, 0xF909, 0x5951, 0,
4544 1, 0xF90A, 0x91D1, 0,
4545 1, 0xF90B, 0x5587, 0,
4546 1, 0xF90C, 0x5948, 0,
4547 1, 0xF90D, 0x61F6, 0,
4548 1, 0xF90E, 0x7669, 0,
4549 1, 0xF90F, 0x7F85, 0,
4550 1, 0xF910, 0x863F, 0,
4551 1, 0xF911, 0x87BA, 0,
4552 1, 0xF912, 0x88F8, 0,
4553 1, 0xF913, 0x908F, 0,
4554 1, 0xF914, 0x6A02, 0,
4555 1, 0xF915, 0x6D1B, 0,
4556 1, 0xF916, 0x70D9, 0,
4557 1, 0xF917, 0x73DE, 0,
4558 1, 0xF918, 0x843D, 0,
4559 1, 0xF919, 0x916A, 0,
4560 1, 0xF91A, 0x99F1, 0,
4561 1, 0xF91B, 0x4E82, 0,
4562 1, 0xF91C, 0x5375, 0,
4563 1, 0xF91D, 0x6B04, 0,
4564 1, 0xF91E, 0x721B, 0,
4565 1, 0xF91F, 0x862D, 0,
4566 1, 0xF920, 0x9E1E, 0,
4567 1, 0xF921, 0x5D50, 0,
4568 1, 0xF922, 0x6FEB, 0,
4569 1, 0xF923, 0x85CD, 0,
4570 1, 0xF924, 0x8964, 0,
4571 1, 0xF925, 0x62C9, 0,
4572 1, 0xF926, 0x81D8, 0,
4573 1, 0xF927, 0x881F, 0,
4574 1, 0xF928, 0x5ECA, 0,
4575 1, 0xF929, 0x6717, 0,
4576 1, 0xF92A, 0x6D6A, 0,
4577 1, 0xF92B, 0x72FC, 0,
4578 1, 0xF92C, 0x90CE, 0,
4579 1, 0xF92D, 0x4F86, 0,
4580 1, 0xF92E, 0x51B7, 0,
4581 1, 0xF92F, 0x52DE, 0,
4582 1, 0xF930, 0x64C4, 0,
4583 1, 0xF931, 0x6AD3, 0,
4584 1, 0xF932, 0x7210, 0,
4585 1, 0xF933, 0x76E7, 0,
4586 1, 0xF934, 0x8001, 0,
4587 1, 0xF935, 0x8606, 0,
4588 1, 0xF936, 0x865C, 0,
4589 1, 0xF937, 0x8DEF, 0,
4590 1, 0xF938, 0x9732, 0,
4591 1, 0xF939, 0x9B6F, 0,
4592 1, 0xF93A, 0x9DFA, 0,
4593 1, 0xF93B, 0x788C, 0,
4594 1, 0xF93C, 0x797F, 0,
4595 1, 0xF93D, 0x7DA0, 0,
4596 1, 0xF93E, 0x83C9, 0,
4597 1, 0xF93F, 0x9304, 0,
4598 1, 0xF940, 0x9E7F, 0,
4599 1, 0xF941, 0x8AD6, 0,
4600 1, 0xF942, 0x58DF, 0,
4601 1, 0xF943, 0x5F04, 0,
4602 1, 0xF944, 0x7C60, 0,
4603 1, 0xF945, 0x807E, 0,
4604 1, 0xF946, 0x7262, 0,
4605 1, 0xF947, 0x78CA, 0,
4606 1, 0xF948, 0x8CC2, 0,
4607 1, 0xF949, 0x96F7, 0,
4608 1, 0xF94A, 0x58D8, 0,
4609 1, 0xF94B, 0x5C62, 0,
4610 1, 0xF94C, 0x6A13, 0,
4611 1, 0xF94D, 0x6DDA, 0,
4612 1, 0xF94E, 0x6F0F, 0,
4613 1, 0xF94F, 0x7D2F, 0,
4614 1, 0xF950, 0x7E37, 0,
4615 1, 0xF951, 0x96FB, 0,
4616 1, 0xF952, 0x52D2, 0,
4617 1, 0xF953, 0x808B, 0,
4618 1, 0xF954, 0x51DC, 0,
4619 1, 0xF955, 0x51CC, 0,
4620 1, 0xF956, 0x7A1C, 0,
4621 1, 0xF957, 0x7DBE, 0,
4622 1, 0xF958, 0x83F1, 0,
4623 1, 0xF959, 0x9675, 0,
4624 1, 0xF95A, 0x8B80, 0,
4625 1, 0xF95B, 0x62CF, 0,
4626 1, 0xF95C, 0x6A02, 0,
4627 1, 0xF95D, 0x8AFE, 0,
4628 1, 0xF95E, 0x4E39, 0,
4629 1, 0xF95F, 0x5BE7, 0,
4630 1, 0xF960, 0x6012, 0,
4631 1, 0xF961, 0x7387, 0,
4632 1, 0xF962, 0x7570, 0,
4633 1, 0xF963, 0x5317, 0,
4634 1, 0xF964, 0x78FB, 0,
4635 1, 0xF965, 0x4FBF, 0,
4636 1, 0xF966, 0x5FA9, 0,
4637 1, 0xF967, 0x4E0D, 0,
4638 1, 0xF968, 0x6CCC, 0,
4639 1, 0xF969, 0x6578, 0,
4640 1, 0xF96A, 0x7D22, 0,
4641 1, 0xF96B, 0x53C3, 0,
4642 1, 0xF96C, 0x585E, 0,
4643 1, 0xF96D, 0x7701, 0,
4644 1, 0xF96E, 0x8449, 0,
4645 1, 0xF96F, 0x8AAA, 0,
4646 1, 0xF970, 0x6BBA, 0,
4647 1, 0xF971, 0x8FB0, 0,
4648 1, 0xF972, 0x6C88, 0,
4649 1, 0xF973, 0x62FE, 0,
4650 1, 0xF974, 0x82E5, 0,
4651 1, 0xF975, 0x63A0, 0,
4652 1, 0xF976, 0x7565, 0,
4653 1, 0xF977, 0x4EAE, 0,
4654 1, 0xF978, 0x5169, 0,
4655 1, 0xF979, 0x51C9, 0,
4656 1, 0xF97A, 0x6881, 0,
4657 1, 0xF97B, 0x7CE7, 0,
4658 1, 0xF97C, 0x826F, 0,
4659 1, 0xF97D, 0x8AD2, 0,
4660 1, 0xF97E, 0x91CF, 0,
4661 1, 0xF97F, 0x52F5, 0,
4662 1, 0xF980, 0x5442, 0,
4663 1, 0xF981, 0x5973, 0,
4664 1, 0xF982, 0x5EEC, 0,
4665 1, 0xF983, 0x65C5, 0,
4666 1, 0xF984, 0x6FFE, 0,
4667 1, 0xF985, 0x792A, 0,
4668 1, 0xF986, 0x95AD, 0,
4669 1, 0xF987, 0x9A6A, 0,
4670 1, 0xF988, 0x9E97, 0,
4671 1, 0xF989, 0x9ECE, 0,
4672 1, 0xF98A, 0x529B, 0,
4673 1, 0xF98B, 0x66C6, 0,
4674 1, 0xF98C, 0x6B77, 0,
4675 1, 0xF98D, 0x8F62, 0,
4676 1, 0xF98E, 0x5E74, 0,
4677 1, 0xF98F, 0x6190, 0,
4678 1, 0xF990, 0x6200, 0,
4679 1, 0xF991, 0x649A, 0,
4680 1, 0xF992, 0x6F23, 0,
4681 1, 0xF993, 0x7149, 0,
4682 1, 0xF994, 0x7489, 0,
4683 1, 0xF995, 0x79CA, 0,
4684 1, 0xF996, 0x7DF4, 0,
4685 1, 0xF997, 0x806F, 0,
4686 1, 0xF998, 0x8F26, 0,
4687 1, 0xF999, 0x84EE, 0,
4688 1, 0xF99A, 0x9023, 0,
4689 1, 0xF99B, 0x934A, 0,
4690 1, 0xF99C, 0x5217, 0,
4691 1, 0xF99D, 0x52A3, 0,
4692 1, 0xF99E, 0x54BD, 0,
4693 1, 0xF99F, 0x70C8, 0,
4694 1, 0xF9A0, 0x88C2, 0,
4695 1, 0xF9A1, 0x8AAA, 0,
4696 1, 0xF9A2, 0x5EC9, 0,
4697 1, 0xF9A3, 0x5FF5, 0,
4698 1, 0xF9A4, 0x637B, 0,
4699 1, 0xF9A5, 0x6BAE, 0,
4700 1, 0xF9A6, 0x7C3E, 0,
4701 1, 0xF9A7, 0x7375, 0,
4702 1, 0xF9A8, 0x4EE4, 0,
4703 1, 0xF9A9, 0x56F9, 0,
4704 1, 0xF9AA, 0x5BE7, 0,
4705 1, 0xF9AB, 0x5DBA, 0,
4706 1, 0xF9AC, 0x601C, 0,
4707 1, 0xF9AD, 0x73B2, 0,
4708 1, 0xF9AE, 0x7469, 0,
4709 1, 0xF9AF, 0x7F9A, 0,
4710 1, 0xF9B0, 0x8046, 0,
4711 1, 0xF9B1, 0x9234, 0,
4712 1, 0xF9B2, 0x96F6, 0,
4713 1, 0xF9B3, 0x9748, 0,
4714 1, 0xF9B4, 0x9818, 0,
4715 1, 0xF9B5, 0x4F8B, 0,
4716 1, 0xF9B6, 0x79AE, 0,
4717 1, 0xF9B7, 0x91B4, 0,
4718 1, 0xF9B8, 0x96B8, 0,
4719 1, 0xF9B9, 0x60E1, 0,
4720 1, 0xF9BA, 0x4E86, 0,
4721 1, 0xF9BB, 0x50DA, 0,
4722 1, 0xF9BC, 0x5BEE, 0,
4723 1, 0xF9BD, 0x5C3F, 0,
4724 1, 0xF9BE, 0x6599, 0,
4725 1, 0xF9BF, 0x6A02, 0,
4726 1, 0xF9C0, 0x71CE, 0,
4727 1, 0xF9C1, 0x7642, 0,
4728 1, 0xF9C2, 0x84FC, 0,
4729 1, 0xF9C3, 0x907C, 0,
4730 1, 0xF9C4, 0x9F8D, 0,
4731 1, 0xF9C5, 0x6688, 0,
4732 1, 0xF9C6, 0x962E, 0,
4733 1, 0xF9C7, 0x5289, 0,
4734 1, 0xF9C8, 0x677B, 0,
4735 1, 0xF9C9, 0x67F3, 0,
4736 1, 0xF9CA, 0x6D41, 0,
4737 1, 0xF9CB, 0x6E9C, 0,
4738 1, 0xF9CC, 0x7409, 0,
4739 1, 0xF9CD, 0x7559, 0,
4740 1, 0xF9CE, 0x786B, 0,
4741 1, 0xF9CF, 0x7D10, 0,
4742 1, 0xF9D0, 0x985E, 0,
4743 1, 0xF9D1, 0x516D, 0,
4744 1, 0xF9D2, 0x622E, 0,
4745 1, 0xF9D3, 0x9678, 0,
4746 1, 0xF9D4, 0x502B, 0,
4747 1, 0xF9D5, 0x5D19, 0,
4748 1, 0xF9D6, 0x6DEA, 0,
4749 1, 0xF9D7, 0x8F2A, 0,
4750 1, 0xF9D8, 0x5F8B, 0,
4751 1, 0xF9D9, 0x6144, 0,
4752 1, 0xF9DA, 0x6817, 0,
4753 1, 0xF9DB, 0x7387, 0,
4754 1, 0xF9DC, 0x9686, 0,
4755 1, 0xF9DD, 0x5229, 0,
4756 1, 0xF9DE, 0x540F, 0,
4757 1, 0xF9DF, 0x5C65, 0,
4758 1, 0xF9E0, 0x6613, 0,
4759 1, 0xF9E1, 0x674E, 0,
4760 1, 0xF9E2, 0x68A8, 0,
4761 1, 0xF9E3, 0x6CE5, 0,
4762 1, 0xF9E4, 0x7406, 0,
4763 1, 0xF9E5, 0x75E2, 0,
4764 1, 0xF9E6, 0x7F79, 0,
4765 1, 0xF9E7, 0x88CF, 0,
4766 1, 0xF9E8, 0x88E1, 0,
4767 1, 0xF9E9, 0x91CC, 0,
4768 1, 0xF9EA, 0x96E2, 0,
4769 1, 0xF9EB, 0x533F, 0,
4770 1, 0xF9EC, 0x6EBA, 0,
4771 1, 0xF9ED, 0x541D, 0,
4772 1, 0xF9EE, 0x71D0, 0,
4773 1, 0xF9EF, 0x7498, 0,
4774 1, 0xF9F0, 0x85FA, 0,
4775 1, 0xF9F1, 0x96A3, 0,
4776 1, 0xF9F2, 0x9C57, 0,
4777 1, 0xF9F3, 0x9E9F, 0,
4778 1, 0xF9F4, 0x6797, 0,
4779 1, 0xF9F5, 0x6DCB, 0,
4780 1, 0xF9F6, 0x81E8, 0,
4781 1, 0xF9F7, 0x7ACB, 0,
4782 1, 0xF9F8, 0x7B20, 0,
4783 1, 0xF9F9, 0x7C92, 0,
4784 1, 0xF9FA, 0x72C0, 0,
4785 1, 0xF9FB, 0x7099, 0,
4786 1, 0xF9FC, 0x8B58, 0,
4787 1, 0xF9FD, 0x4EC0, 0,
4788 1, 0xF9FE, 0x8336, 0,
4789 1, 0xF9FF, 0x523A, 0,
4790 1, 0xFA00, 0x5207, 0,
4791 1, 0xFA01, 0x5EA6, 0,
4792 1, 0xFA02, 0x62D3, 0,
4793 1, 0xFA03, 0x7CD6, 0,
4794 1, 0xFA04, 0x5B85, 0,
4795 1, 0xFA05, 0x6D1E, 0,
4796 1, 0xFA06, 0x66B4, 0,
4797 1, 0xFA07, 0x8F3B, 0,
4798 1, 0xFA08, 0x884C, 0,
4799 1, 0xFA09, 0x964D, 0,
4800 1, 0xFA0A, 0x898B, 0,
4801 1, 0xFA0B, 0x5ED3, 0,
4802 1, 0xFA0C, 0x5140, 0,
4803 1, 0xFA0D, 0x55C0, 0,
4804 1, 0xFA10, 0x585A, 0,
4805 1, 0xFA12, 0x6674, 0,
4806 1, 0xFA15, 0x51DE, 0,
4807 1, 0xFA16, 0x732A, 0,
4808 1, 0xFA17, 0x76CA, 0,
4809 1, 0xFA18, 0x793C, 0,
4810 1, 0xFA19, 0x795E, 0,
4811 1, 0xFA1A, 0x7965, 0,
4812 1, 0xFA1B, 0x798F, 0,
4813 1, 0xFA1C, 0x9756, 0,
4814 1, 0xFA1D, 0x7CBE, 0,
4815 1, 0xFA1E, 0x7FBD, 0,
4816 1, 0xFA20, 0x8612, 0,
4817 1, 0xFA22, 0x8AF8, 0,
4818 1, 0xFA25, 0x9038, 0,
4819 1, 0xFA26, 0x90FD, 0,
4820 1, 0xFA2A, 0x98EF, 0,
4821 1, 0xFA2B, 0x98FC, 0,
4822 1, 0xFA2C, 0x9928, 0,
4823 1, 0xFA2D, 0x9DB4, 0,
4824 16, 0xFB00, 0x0066, 0x0066, 0,
4825 16, 0xFB01, 0x0066, 0x0069, 0,
4826 16, 0xFB02, 0x0066, 0x006C, 0,
4827 16, 0xFB03, 0x0066, 0x0066, 0x0069, 0,
4828 16, 0xFB04, 0x0066, 0x0066, 0x006C, 0,
4829 16, 0xFB05, 0x017F, 0x0074, 0,
4830 16, 0xFB06, 0x0073, 0x0074, 0,
4831 16, 0xFB13, 0x0574, 0x0576, 0,
4832 16, 0xFB14, 0x0574, 0x0565, 0,
4833 16, 0xFB15, 0x0574, 0x056B, 0,
4834 16, 0xFB16, 0x057E, 0x0576, 0,
4835 16, 0xFB17, 0x0574, 0x056D, 0,
4836 1, 0xFB1D, 0x05D9, 0x05B4, 0,
4837 1, 0xFB1F, 0x05F2, 0x05B7, 0,
4838 2, 0xFB20, 0x05E2, 0,
4839 2, 0xFB21, 0x05D0, 0,
4840 2, 0xFB22, 0x05D3, 0,
4841 2, 0xFB23, 0x05D4, 0,
4842 2, 0xFB24, 0x05DB, 0,
4843 2, 0xFB25, 0x05DC, 0,
4844 2, 0xFB26, 0x05DD, 0,
4845 2, 0xFB27, 0x05E8, 0,
4846 2, 0xFB28, 0x05EA, 0,
4847 2, 0xFB29, 0x002B, 0,
4848 1, 0xFB2A, 0x05E9, 0x05C1, 0,
4849 1, 0xFB2B, 0x05E9, 0x05C2, 0,
4850 1, 0xFB2C, 0xFB49, 0x05C1, 0,
4851 1, 0xFB2D, 0xFB49, 0x05C2, 0,
4852 1, 0xFB2E, 0x05D0, 0x05B7, 0,
4853 1, 0xFB2F, 0x05D0, 0x05B8, 0,
4854 1, 0xFB30, 0x05D0, 0x05BC, 0,
4855 1, 0xFB31, 0x05D1, 0x05BC, 0,
4856 1, 0xFB32, 0x05D2, 0x05BC, 0,
4857 1, 0xFB33, 0x05D3, 0x05BC, 0,
4858 1, 0xFB34, 0x05D4, 0x05BC, 0,
4859 1, 0xFB35, 0x05D5, 0x05BC, 0,
4860 1, 0xFB36, 0x05D6, 0x05BC, 0,
4861 1, 0xFB38, 0x05D8, 0x05BC, 0,
4862 1, 0xFB39, 0x05D9, 0x05BC, 0,
4863 1, 0xFB3A, 0x05DA, 0x05BC, 0,
4864 1, 0xFB3B, 0x05DB, 0x05BC, 0,
4865 1, 0xFB3C, 0x05DC, 0x05BC, 0,
4866 1, 0xFB3E, 0x05DE, 0x05BC, 0,
4867 1, 0xFB40, 0x05E0, 0x05BC, 0,
4868 1, 0xFB41, 0x05E1, 0x05BC, 0,
4869 1, 0xFB43, 0x05E3, 0x05BC, 0,
4870 1, 0xFB44, 0x05E4, 0x05BC, 0,
4871 1, 0xFB46, 0x05E6, 0x05BC, 0,
4872 1, 0xFB47, 0x05E7, 0x05BC, 0,
4873 1, 0xFB48, 0x05E8, 0x05BC, 0,
4874 1, 0xFB49, 0x05E9, 0x05BC, 0,
4875 1, 0xFB4A, 0x05EA, 0x05BC, 0,
4876 1, 0xFB4B, 0x05D5, 0x05B9, 0,
4877 1, 0xFB4C, 0x05D1, 0x05BF, 0,
4878 1, 0xFB4D, 0x05DB, 0x05BF, 0,
4879 1, 0xFB4E, 0x05E4, 0x05BF, 0,
4880 16, 0xFB4F, 0x05D0, 0x05DC, 0,
4881 7, 0xFB50, 0x0671, 0,
4882 6, 0xFB51, 0x0671, 0,
4883 7, 0xFB52, 0x067B, 0,
4884 6, 0xFB53, 0x067B, 0,
4885 4, 0xFB54, 0x067B, 0,
4886 5, 0xFB55, 0x067B, 0,
4887 7, 0xFB56, 0x067E, 0,
4888 6, 0xFB57, 0x067E, 0,
4889 4, 0xFB58, 0x067E, 0,
4890 5, 0xFB59, 0x067E, 0,
4891 7, 0xFB5A, 0x0680, 0,
4892 6, 0xFB5B, 0x0680, 0,
4893 4, 0xFB5C, 0x0680, 0,
4894 5, 0xFB5D, 0x0680, 0,
4895 7, 0xFB5E, 0x067A, 0,
4896 6, 0xFB5F, 0x067A, 0,
4897 4, 0xFB60, 0x067A, 0,
4898 5, 0xFB61, 0x067A, 0,
4899 7, 0xFB62, 0x067F, 0,
4900 6, 0xFB63, 0x067F, 0,
4901 4, 0xFB64, 0x067F, 0,
4902 5, 0xFB65, 0x067F, 0,
4903 7, 0xFB66, 0x0679, 0,
4904 6, 0xFB67, 0x0679, 0,
4905 4, 0xFB68, 0x0679, 0,
4906 5, 0xFB69, 0x0679, 0,
4907 7, 0xFB6A, 0x06A4, 0,
4908 6, 0xFB6B, 0x06A4, 0,
4909 4, 0xFB6C, 0x06A4, 0,
4910 5, 0xFB6D, 0x06A4, 0,
4911 7, 0xFB6E, 0x06A6, 0,
4912 6, 0xFB6F, 0x06A6, 0,
4913 4, 0xFB70, 0x06A6, 0,
4914 5, 0xFB71, 0x06A6, 0,
4915 7, 0xFB72, 0x0684, 0,
4916 6, 0xFB73, 0x0684, 0,
4917 4, 0xFB74, 0x0684, 0,
4918 5, 0xFB75, 0x0684, 0,
4919 7, 0xFB76, 0x0683, 0,
4920 6, 0xFB77, 0x0683, 0,
4921 4, 0xFB78, 0x0683, 0,
4922 5, 0xFB79, 0x0683, 0,
4923 7, 0xFB7A, 0x0686, 0,
4924 6, 0xFB7B, 0x0686, 0,
4925 4, 0xFB7C, 0x0686, 0,
4926 5, 0xFB7D, 0x0686, 0,
4927 7, 0xFB7E, 0x0687, 0,
4928 6, 0xFB7F, 0x0687, 0,
4929 4, 0xFB80, 0x0687, 0,
4930 5, 0xFB81, 0x0687, 0,
4931 7, 0xFB82, 0x068D, 0,
4932 6, 0xFB83, 0x068D, 0,
4933 7, 0xFB84, 0x068C, 0,
4934 6, 0xFB85, 0x068C, 0,
4935 7, 0xFB86, 0x068E, 0,
4936 6, 0xFB87, 0x068E, 0,
4937 7, 0xFB88, 0x0688, 0,
4938 6, 0xFB89, 0x0688, 0,
4939 7, 0xFB8A, 0x0698, 0,
4940 6, 0xFB8B, 0x0698, 0,
4941 7, 0xFB8C, 0x0691, 0,
4942 6, 0xFB8D, 0x0691, 0,
4943 7, 0xFB8E, 0x06A9, 0,
4944 6, 0xFB8F, 0x06A9, 0,
4945 4, 0xFB90, 0x06A9, 0,
4946 5, 0xFB91, 0x06A9, 0,
4947 7, 0xFB92, 0x06AF, 0,
4948 6, 0xFB93, 0x06AF, 0,
4949 4, 0xFB94, 0x06AF, 0,
4950 5, 0xFB95, 0x06AF, 0,
4951 7, 0xFB96, 0x06B3, 0,
4952 6, 0xFB97, 0x06B3, 0,
4953 4, 0xFB98, 0x06B3, 0,
4954 5, 0xFB99, 0x06B3, 0,
4955 7, 0xFB9A, 0x06B1, 0,
4956 6, 0xFB9B, 0x06B1, 0,
4957 4, 0xFB9C, 0x06B1, 0,
4958 5, 0xFB9D, 0x06B1, 0,
4959 7, 0xFB9E, 0x06BA, 0,
4960 6, 0xFB9F, 0x06BA, 0,
4961 7, 0xFBA0, 0x06BB, 0,
4962 6, 0xFBA1, 0x06BB, 0,
4963 4, 0xFBA2, 0x06BB, 0,
4964 5, 0xFBA3, 0x06BB, 0,
4965 7, 0xFBA4, 0x06C0, 0,
4966 6, 0xFBA5, 0x06C0, 0,
4967 7, 0xFBA6, 0x06C1, 0,
4968 6, 0xFBA7, 0x06C1, 0,
4969 4, 0xFBA8, 0x06C1, 0,
4970 5, 0xFBA9, 0x06C1, 0,
4971 7, 0xFBAA, 0x06BE, 0,
4972 6, 0xFBAB, 0x06BE, 0,
4973 4, 0xFBAC, 0x06BE, 0,
4974 5, 0xFBAD, 0x06BE, 0,
4975 7, 0xFBAE, 0x06D2, 0,
4976 6, 0xFBAF, 0x06D2, 0,
4977 7, 0xFBB0, 0x06D3, 0,
4978 6, 0xFBB1, 0x06D3, 0,
4979 7, 0xFBD3, 0x06AD, 0,
4980 6, 0xFBD4, 0x06AD, 0,
4981 4, 0xFBD5, 0x06AD, 0,
4982 5, 0xFBD6, 0x06AD, 0,
4983 7, 0xFBD7, 0x06C7, 0,
4984 6, 0xFBD8, 0x06C7, 0,
4985 7, 0xFBD9, 0x06C6, 0,
4986 6, 0xFBDA, 0x06C6, 0,
4987 7, 0xFBDB, 0x06C8, 0,
4988 6, 0xFBDC, 0x06C8, 0,
4989 7, 0xFBDD, 0x0677, 0,
4990 7, 0xFBDE, 0x06CB, 0,
4991 6, 0xFBDF, 0x06CB, 0,
4992 7, 0xFBE0, 0x06C5, 0,
4993 6, 0xFBE1, 0x06C5, 0,
4994 7, 0xFBE2, 0x06C9, 0,
4995 6, 0xFBE3, 0x06C9, 0,
4996 7, 0xFBE4, 0x06D0, 0,
4997 6, 0xFBE5, 0x06D0, 0,
4998 4, 0xFBE6, 0x06D0, 0,
4999 5, 0xFBE7, 0x06D0, 0,
5000 4, 0xFBE8, 0x0649, 0,
5001 5, 0xFBE9, 0x0649, 0,
5002 7, 0xFBEA, 0x0626, 0x0627, 0,
5003 6, 0xFBEB, 0x0626, 0x0627, 0,
5004 7, 0xFBEC, 0x0626, 0x06D5, 0,
5005 6, 0xFBED, 0x0626, 0x06D5, 0,
5006 7, 0xFBEE, 0x0626, 0x0648, 0,
5007 6, 0xFBEF, 0x0626, 0x0648, 0,
5008 7, 0xFBF0, 0x0626, 0x06C7, 0,
5009 6, 0xFBF1, 0x0626, 0x06C7, 0,
5010 7, 0xFBF2, 0x0626, 0x06C6, 0,
5011 6, 0xFBF3, 0x0626, 0x06C6, 0,
5012 7, 0xFBF4, 0x0626, 0x06C8, 0,
5013 6, 0xFBF5, 0x0626, 0x06C8, 0,
5014 7, 0xFBF6, 0x0626, 0x06D0, 0,
5015 6, 0xFBF7, 0x0626, 0x06D0, 0,
5016 4, 0xFBF8, 0x0626, 0x06D0, 0,
5017 7, 0xFBF9, 0x0626, 0x0649, 0,
5018 6, 0xFBFA, 0x0626, 0x0649, 0,
5019 4, 0xFBFB, 0x0626, 0x0649, 0,
5020 7, 0xFBFC, 0x06CC, 0,
5021 6, 0xFBFD, 0x06CC, 0,
5022 4, 0xFBFE, 0x06CC, 0,
5023 5, 0xFBFF, 0x06CC, 0,
5024 7, 0xFC00, 0x0626, 0x062C, 0,
5025 7, 0xFC01, 0x0626, 0x062D, 0,
5026 7, 0xFC02, 0x0626, 0x0645, 0,
5027 7, 0xFC03, 0x0626, 0x0649, 0,
5028 7, 0xFC04, 0x0626, 0x064A, 0,
5029 7, 0xFC05, 0x0628, 0x062C, 0,
5030 7, 0xFC06, 0x0628, 0x062D, 0,
5031 7, 0xFC07, 0x0628, 0x062E, 0,
5032 7, 0xFC08, 0x0628, 0x0645, 0,
5033 7, 0xFC09, 0x0628, 0x0649, 0,
5034 7, 0xFC0A, 0x0628, 0x064A, 0,
5035 7, 0xFC0B, 0x062A, 0x062C, 0,
5036 7, 0xFC0C, 0x062A, 0x062D, 0,
5037 7, 0xFC0D, 0x062A, 0x062E, 0,
5038 7, 0xFC0E, 0x062A, 0x0645, 0,
5039 7, 0xFC0F, 0x062A, 0x0649, 0,
5040 7, 0xFC10, 0x062A, 0x064A, 0,
5041 7, 0xFC11, 0x062B, 0x062C, 0,
5042 7, 0xFC12, 0x062B, 0x0645, 0,
5043 7, 0xFC13, 0x062B, 0x0649, 0,
5044 7, 0xFC14, 0x062B, 0x064A, 0,
5045 7, 0xFC15, 0x062C, 0x062D, 0,
5046 7, 0xFC16, 0x062C, 0x0645, 0,
5047 7, 0xFC17, 0x062D, 0x062C, 0,
5048 7, 0xFC18, 0x062D, 0x0645, 0,
5049 7, 0xFC19, 0x062E, 0x062C, 0,
5050 7, 0xFC1A, 0x062E, 0x062D, 0,
5051 7, 0xFC1B, 0x062E, 0x0645, 0,
5052 7, 0xFC1C, 0x0633, 0x062C, 0,
5053 7, 0xFC1D, 0x0633, 0x062D, 0,
5054 7, 0xFC1E, 0x0633, 0x062E, 0,
5055 7, 0xFC1F, 0x0633, 0x0645, 0,
5056 7, 0xFC20, 0x0635, 0x062D, 0,
5057 7, 0xFC21, 0x0635, 0x0645, 0,
5058 7, 0xFC22, 0x0636, 0x062C, 0,
5059 7, 0xFC23, 0x0636, 0x062D, 0,
5060 7, 0xFC24, 0x0636, 0x062E, 0,
5061 7, 0xFC25, 0x0636, 0x0645, 0,
5062 7, 0xFC26, 0x0637, 0x062D, 0,
5063 7, 0xFC27, 0x0637, 0x0645, 0,
5064 7, 0xFC28, 0x0638, 0x0645, 0,
5065 7, 0xFC29, 0x0639, 0x062C, 0,
5066 7, 0xFC2A, 0x0639, 0x0645, 0,
5067 7, 0xFC2B, 0x063A, 0x062C, 0,
5068 7, 0xFC2C, 0x063A, 0x0645, 0,
5069 7, 0xFC2D, 0x0641, 0x062C, 0,
5070 7, 0xFC2E, 0x0641, 0x062D, 0,
5071 7, 0xFC2F, 0x0641, 0x062E, 0,
5072 7, 0xFC30, 0x0641, 0x0645, 0,
5073 7, 0xFC31, 0x0641, 0x0649, 0,
5074 7, 0xFC32, 0x0641, 0x064A, 0,
5075 7, 0xFC33, 0x0642, 0x062D, 0,
5076 7, 0xFC34, 0x0642, 0x0645, 0,
5077 7, 0xFC35, 0x0642, 0x0649, 0,
5078 7, 0xFC36, 0x0642, 0x064A, 0,
5079 7, 0xFC37, 0x0643, 0x0627, 0,
5080 7, 0xFC38, 0x0643, 0x062C, 0,
5081 7, 0xFC39, 0x0643, 0x062D, 0,
5082 7, 0xFC3A, 0x0643, 0x062E, 0,
5083 7, 0xFC3B, 0x0643, 0x0644, 0,
5084 7, 0xFC3C, 0x0643, 0x0645, 0,
5085 7, 0xFC3D, 0x0643, 0x0649, 0,
5086 7, 0xFC3E, 0x0643, 0x064A, 0,
5087 7, 0xFC3F, 0x0644, 0x062C, 0,
5088 7, 0xFC40, 0x0644, 0x062D, 0,
5089 7, 0xFC41, 0x0644, 0x062E, 0,
5090 7, 0xFC42, 0x0644, 0x0645, 0,
5091 7, 0xFC43, 0x0644, 0x0649, 0,
5092 7, 0xFC44, 0x0644, 0x064A, 0,
5093 7, 0xFC45, 0x0645, 0x062C, 0,
5094 7, 0xFC46, 0x0645, 0x062D, 0,
5095 7, 0xFC47, 0x0645, 0x062E, 0,
5096 7, 0xFC48, 0x0645, 0x0645, 0,
5097 7, 0xFC49, 0x0645, 0x0649, 0,
5098 7, 0xFC4A, 0x0645, 0x064A, 0,
5099 7, 0xFC4B, 0x0646, 0x062C, 0,
5100 7, 0xFC4C, 0x0646, 0x062D, 0,
5101 7, 0xFC4D, 0x0646, 0x062E, 0,
5102 7, 0xFC4E, 0x0646, 0x0645, 0,
5103 7, 0xFC4F, 0x0646, 0x0649, 0,
5104 7, 0xFC50, 0x0646, 0x064A, 0,
5105 7, 0xFC51, 0x0647, 0x062C, 0,
5106 7, 0xFC52, 0x0647, 0x0645, 0,
5107 7, 0xFC53, 0x0647, 0x0649, 0,
5108 7, 0xFC54, 0x0647, 0x064A, 0,
5109 7, 0xFC55, 0x064A, 0x062C, 0,
5110 7, 0xFC56, 0x064A, 0x062D, 0,
5111 7, 0xFC57, 0x064A, 0x062E, 0,
5112 7, 0xFC58, 0x064A, 0x0645, 0,
5113 7, 0xFC59, 0x064A, 0x0649, 0,
5114 7, 0xFC5A, 0x064A, 0x064A, 0,
5115 7, 0xFC5B, 0x0630, 0x0670, 0,
5116 7, 0xFC5C, 0x0631, 0x0670, 0,
5117 7, 0xFC5D, 0x0649, 0x0670, 0,
5118 7, 0xFC5E, 0x0020, 0x064C, 0x0651, 0,
5119 7, 0xFC5F, 0x0020, 0x064D, 0x0651, 0,
5120 7, 0xFC60, 0x0020, 0x064E, 0x0651, 0,
5121 7, 0xFC61, 0x0020, 0x064F, 0x0651, 0,
5122 7, 0xFC62, 0x0020, 0x0650, 0x0651, 0,
5123 7, 0xFC63, 0x0020, 0x0651, 0x0670, 0,
5124 6, 0xFC64, 0x0626, 0x0631, 0,
5125 6, 0xFC65, 0x0626, 0x0632, 0,
5126 6, 0xFC66, 0x0626, 0x0645, 0,
5127 6, 0xFC67, 0x0626, 0x0646, 0,
5128 6, 0xFC68, 0x0626, 0x0649, 0,
5129 6, 0xFC69, 0x0626, 0x064A, 0,
5130 6, 0xFC6A, 0x0628, 0x0631, 0,
5131 6, 0xFC6B, 0x0628, 0x0632, 0,
5132 6, 0xFC6C, 0x0628, 0x0645, 0,
5133 6, 0xFC6D, 0x0628, 0x0646, 0,
5134 6, 0xFC6E, 0x0628, 0x0649, 0,
5135 6, 0xFC6F, 0x0628, 0x064A, 0,
5136 6, 0xFC70, 0x062A, 0x0631, 0,
5137 6, 0xFC71, 0x062A, 0x0632, 0,
5138 6, 0xFC72, 0x062A, 0x0645, 0,
5139 6, 0xFC73, 0x062A, 0x0646, 0,
5140 6, 0xFC74, 0x062A, 0x0649, 0,
5141 6, 0xFC75, 0x062A, 0x064A, 0,
5142 6, 0xFC76, 0x062B, 0x0631, 0,
5143 6, 0xFC77, 0x062B, 0x0632, 0,
5144 6, 0xFC78, 0x062B, 0x0645, 0,
5145 6, 0xFC79, 0x062B, 0x0646, 0,
5146 6, 0xFC7A, 0x062B, 0x0649, 0,
5147 6, 0xFC7B, 0x062B, 0x064A, 0,
5148 6, 0xFC7C, 0x0641, 0x0649, 0,
5149 6, 0xFC7D, 0x0641, 0x064A, 0,
5150 6, 0xFC7E, 0x0642, 0x0649, 0,
5151 6, 0xFC7F, 0x0642, 0x064A, 0,
5152 6, 0xFC80, 0x0643, 0x0627, 0,
5153 6, 0xFC81, 0x0643, 0x0644, 0,
5154 6, 0xFC82, 0x0643, 0x0645, 0,
5155 6, 0xFC83, 0x0643, 0x0649, 0,
5156 6, 0xFC84, 0x0643, 0x064A, 0,
5157 6, 0xFC85, 0x0644, 0x0645, 0,
5158 6, 0xFC86, 0x0644, 0x0649, 0,
5159 6, 0xFC87, 0x0644, 0x064A, 0,
5160 6, 0xFC88, 0x0645, 0x0627, 0,
5161 6, 0xFC89, 0x0645, 0x0645, 0,
5162 6, 0xFC8A, 0x0646, 0x0631, 0,
5163 6, 0xFC8B, 0x0646, 0x0632, 0,
5164 6, 0xFC8C, 0x0646, 0x0645, 0,
5165 6, 0xFC8D, 0x0646, 0x0646, 0,
5166 6, 0xFC8E, 0x0646, 0x0649, 0,
5167 6, 0xFC8F, 0x0646, 0x064A, 0,
5168 6, 0xFC90, 0x0649, 0x0670, 0,
5169 6, 0xFC91, 0x064A, 0x0631, 0,
5170 6, 0xFC92, 0x064A, 0x0632, 0,
5171 6, 0xFC93, 0x064A, 0x0645, 0,
5172 6, 0xFC94, 0x064A, 0x0646, 0,
5173 6, 0xFC95, 0x064A, 0x0649, 0,
5174 6, 0xFC96, 0x064A, 0x064A, 0,
5175 4, 0xFC97, 0x0626, 0x062C, 0,
5176 4, 0xFC98, 0x0626, 0x062D, 0,
5177 4, 0xFC99, 0x0626, 0x062E, 0,
5178 4, 0xFC9A, 0x0626, 0x0645, 0,
5179 4, 0xFC9B, 0x0626, 0x0647, 0,
5180 4, 0xFC9C, 0x0628, 0x062C, 0,
5181 4, 0xFC9D, 0x0628, 0x062D, 0,
5182 4, 0xFC9E, 0x0628, 0x062E, 0,
5183 4, 0xFC9F, 0x0628, 0x0645, 0,
5184 4, 0xFCA0, 0x0628, 0x0647, 0,
5185 4, 0xFCA1, 0x062A, 0x062C, 0,
5186 4, 0xFCA2, 0x062A, 0x062D, 0,
5187 4, 0xFCA3, 0x062A, 0x062E, 0,
5188 4, 0xFCA4, 0x062A, 0x0645, 0,
5189 4, 0xFCA5, 0x062A, 0x0647, 0,
5190 4, 0xFCA6, 0x062B, 0x0645, 0,
5191 4, 0xFCA7, 0x062C, 0x062D, 0,
5192 4, 0xFCA8, 0x062C, 0x0645, 0,
5193 4, 0xFCA9, 0x062D, 0x062C, 0,
5194 4, 0xFCAA, 0x062D, 0x0645, 0,
5195 4, 0xFCAB, 0x062E, 0x062C, 0,
5196 4, 0xFCAC, 0x062E, 0x0645, 0,
5197 4, 0xFCAD, 0x0633, 0x062C, 0,
5198 4, 0xFCAE, 0x0633, 0x062D, 0,
5199 4, 0xFCAF, 0x0633, 0x062E, 0,
5200 4, 0xFCB0, 0x0633, 0x0645, 0,
5201 4, 0xFCB1, 0x0635, 0x062D, 0,
5202 4, 0xFCB2, 0x0635, 0x062E, 0,
5203 4, 0xFCB3, 0x0635, 0x0645, 0,
5204 4, 0xFCB4, 0x0636, 0x062C, 0,
5205 4, 0xFCB5, 0x0636, 0x062D, 0,
5206 4, 0xFCB6, 0x0636, 0x062E, 0,
5207 4, 0xFCB7, 0x0636, 0x0645, 0,
5208 4, 0xFCB8, 0x0637, 0x062D, 0,
5209 4, 0xFCB9, 0x0638, 0x0645, 0,
5210 4, 0xFCBA, 0x0639, 0x062C, 0,
5211 4, 0xFCBB, 0x0639, 0x0645, 0,
5212 4, 0xFCBC, 0x063A, 0x062C, 0,
5213 4, 0xFCBD, 0x063A, 0x0645, 0,
5214 4, 0xFCBE, 0x0641, 0x062C, 0,
5215 4, 0xFCBF, 0x0641, 0x062D, 0,
5216 4, 0xFCC0, 0x0641, 0x062E, 0,
5217 4, 0xFCC1, 0x0641, 0x0645, 0,
5218 4, 0xFCC2, 0x0642, 0x062D, 0,
5219 4, 0xFCC3, 0x0642, 0x0645, 0,
5220 4, 0xFCC4, 0x0643, 0x062C, 0,
5221 4, 0xFCC5, 0x0643, 0x062D, 0,
5222 4, 0xFCC6, 0x0643, 0x062E, 0,
5223 4, 0xFCC7, 0x0643, 0x0644, 0,
5224 4, 0xFCC8, 0x0643, 0x0645, 0,
5225 4, 0xFCC9, 0x0644, 0x062C, 0,
5226 4, 0xFCCA, 0x0644, 0x062D, 0,
5227 4, 0xFCCB, 0x0644, 0x062E, 0,
5228 4, 0xFCCC, 0x0644, 0x0645, 0,
5229 4, 0xFCCD, 0x0644, 0x0647, 0,
5230 4, 0xFCCE, 0x0645, 0x062C, 0,
5231 4, 0xFCCF, 0x0645, 0x062D, 0,
5232 4, 0xFCD0, 0x0645, 0x062E, 0,
5233 4, 0xFCD1, 0x0645, 0x0645, 0,
5234 4, 0xFCD2, 0x0646, 0x062C, 0,
5235 4, 0xFCD3, 0x0646, 0x062D, 0,
5236 4, 0xFCD4, 0x0646, 0x062E, 0,
5237 4, 0xFCD5, 0x0646, 0x0645, 0,
5238 4, 0xFCD6, 0x0646, 0x0647, 0,
5239 4, 0xFCD7, 0x0647, 0x062C, 0,
5240 4, 0xFCD8, 0x0647, 0x0645, 0,
5241 4, 0xFCD9, 0x0647, 0x0670, 0,
5242 4, 0xFCDA, 0x064A, 0x062C, 0,
5243 4, 0xFCDB, 0x064A, 0x062D, 0,
5244 4, 0xFCDC, 0x064A, 0x062E, 0,
5245 4, 0xFCDD, 0x064A, 0x0645, 0,
5246 4, 0xFCDE, 0x064A, 0x0647, 0,
5247 5, 0xFCDF, 0x0626, 0x0645, 0,
5248 5, 0xFCE0, 0x0626, 0x0647, 0,
5249 5, 0xFCE1, 0x0628, 0x0645, 0,
5250 5, 0xFCE2, 0x0628, 0x0647, 0,
5251 5, 0xFCE3, 0x062A, 0x0645, 0,
5252 5, 0xFCE4, 0x062A, 0x0647, 0,
5253 5, 0xFCE5, 0x062B, 0x0645, 0,
5254 5, 0xFCE6, 0x062B, 0x0647, 0,
5255 5, 0xFCE7, 0x0633, 0x0645, 0,
5256 5, 0xFCE8, 0x0633, 0x0647, 0,
5257 5, 0xFCE9, 0x0634, 0x0645, 0,
5258 5, 0xFCEA, 0x0634, 0x0647, 0,
5259 5, 0xFCEB, 0x0643, 0x0644, 0,
5260 5, 0xFCEC, 0x0643, 0x0645, 0,
5261 5, 0xFCED, 0x0644, 0x0645, 0,
5262 5, 0xFCEE, 0x0646, 0x0645, 0,
5263 5, 0xFCEF, 0x0646, 0x0647, 0,
5264 5, 0xFCF0, 0x064A, 0x0645, 0,
5265 5, 0xFCF1, 0x064A, 0x0647, 0,
5266 5, 0xFCF2, 0x0640, 0x064E, 0x0651, 0,
5267 5, 0xFCF3, 0x0640, 0x064F, 0x0651, 0,
5268 5, 0xFCF4, 0x0640, 0x0650, 0x0651, 0,
5269 7, 0xFCF5, 0x0637, 0x0649, 0,
5270 7, 0xFCF6, 0x0637, 0x064A, 0,
5271 7, 0xFCF7, 0x0639, 0x0649, 0,
5272 7, 0xFCF8, 0x0639, 0x064A, 0,
5273 7, 0xFCF9, 0x063A, 0x0649, 0,
5274 7, 0xFCFA, 0x063A, 0x064A, 0,
5275 7, 0xFCFB, 0x0633, 0x0649, 0,
5276 7, 0xFCFC, 0x0633, 0x064A, 0,
5277 7, 0xFCFD, 0x0634, 0x0649, 0,
5278 7, 0xFCFE, 0x0634, 0x064A, 0,
5279 7, 0xFCFF, 0x062D, 0x0649, 0,
5280 7, 0xFD00, 0x062D, 0x064A, 0,
5281 7, 0xFD01, 0x062C, 0x0649, 0,
5282 7, 0xFD02, 0x062C, 0x064A, 0,
5283 7, 0xFD03, 0x062E, 0x0649, 0,
5284 7, 0xFD04, 0x062E, 0x064A, 0,
5285 7, 0xFD05, 0x0635, 0x0649, 0,
5286 7, 0xFD06, 0x0635, 0x064A, 0,
5287 7, 0xFD07, 0x0636, 0x0649, 0,
5288 7, 0xFD08, 0x0636, 0x064A, 0,
5289 7, 0xFD09, 0x0634, 0x062C, 0,
5290 7, 0xFD0A, 0x0634, 0x062D, 0,
5291 7, 0xFD0B, 0x0634, 0x062E, 0,
5292 7, 0xFD0C, 0x0634, 0x0645, 0,
5293 7, 0xFD0D, 0x0634, 0x0631, 0,
5294 7, 0xFD0E, 0x0633, 0x0631, 0,
5295 7, 0xFD0F, 0x0635, 0x0631, 0,
5296 7, 0xFD10, 0x0636, 0x0631, 0,
5297 6, 0xFD11, 0x0637, 0x0649, 0,
5298 6, 0xFD12, 0x0637, 0x064A, 0,
5299 6, 0xFD13, 0x0639, 0x0649, 0,
5300 6, 0xFD14, 0x0639, 0x064A, 0,
5301 6, 0xFD15, 0x063A, 0x0649, 0,
5302 6, 0xFD16, 0x063A, 0x064A, 0,
5303 6, 0xFD17, 0x0633, 0x0649, 0,
5304 6, 0xFD18, 0x0633, 0x064A, 0,
5305 6, 0xFD19, 0x0634, 0x0649, 0,
5306 6, 0xFD1A, 0x0634, 0x064A, 0,
5307 6, 0xFD1B, 0x062D, 0x0649, 0,
5308 6, 0xFD1C, 0x062D, 0x064A, 0,
5309 6, 0xFD1D, 0x062C, 0x0649, 0,
5310 6, 0xFD1E, 0x062C, 0x064A, 0,
5311 6, 0xFD1F, 0x062E, 0x0649, 0,
5312 6, 0xFD20, 0x062E, 0x064A, 0,
5313 6, 0xFD21, 0x0635, 0x0649, 0,
5314 6, 0xFD22, 0x0635, 0x064A, 0,
5315 6, 0xFD23, 0x0636, 0x0649, 0,
5316 6, 0xFD24, 0x0636, 0x064A, 0,
5317 6, 0xFD25, 0x0634, 0x062C, 0,
5318 6, 0xFD26, 0x0634, 0x062D, 0,
5319 6, 0xFD27, 0x0634, 0x062E, 0,
5320 6, 0xFD28, 0x0634, 0x0645, 0,
5321 6, 0xFD29, 0x0634, 0x0631, 0,
5322 6, 0xFD2A, 0x0633, 0x0631, 0,
5323 6, 0xFD2B, 0x0635, 0x0631, 0,
5324 6, 0xFD2C, 0x0636, 0x0631, 0,
5325 4, 0xFD2D, 0x0634, 0x062C, 0,
5326 4, 0xFD2E, 0x0634, 0x062D, 0,
5327 4, 0xFD2F, 0x0634, 0x062E, 0,
5328 4, 0xFD30, 0x0634, 0x0645, 0,
5329 4, 0xFD31, 0x0633, 0x0647, 0,
5330 4, 0xFD32, 0x0634, 0x0647, 0,
5331 4, 0xFD33, 0x0637, 0x0645, 0,
5332 5, 0xFD34, 0x0633, 0x062C, 0,
5333 5, 0xFD35, 0x0633, 0x062D, 0,
5334 5, 0xFD36, 0x0633, 0x062E, 0,
5335 5, 0xFD37, 0x0634, 0x062C, 0,
5336 5, 0xFD38, 0x0634, 0x062D, 0,
5337 5, 0xFD39, 0x0634, 0x062E, 0,
5338 5, 0xFD3A, 0x0637, 0x0645, 0,
5339 5, 0xFD3B, 0x0638, 0x0645, 0,
5340 6, 0xFD3C, 0x0627, 0x064B, 0,
5341 7, 0xFD3D, 0x0627, 0x064B, 0,
5342 4, 0xFD50, 0x062A, 0x062C, 0x0645, 0,
5343 6, 0xFD51, 0x062A, 0x062D, 0x062C, 0,
5344 4, 0xFD52, 0x062A, 0x062D, 0x062C, 0,
5345 4, 0xFD53, 0x062A, 0x062D, 0x0645, 0,
5346 4, 0xFD54, 0x062A, 0x062E, 0x0645, 0,
5347 4, 0xFD55, 0x062A, 0x0645, 0x062C, 0,
5348 4, 0xFD56, 0x062A, 0x0645, 0x062D, 0,
5349 4, 0xFD57, 0x062A, 0x0645, 0x062E, 0,
5350 6, 0xFD58, 0x062C, 0x0645, 0x062D, 0,
5351 4, 0xFD59, 0x062C, 0x0645, 0x062D, 0,
5352 6, 0xFD5A, 0x062D, 0x0645, 0x064A, 0,
5353 6, 0xFD5B, 0x062D, 0x0645, 0x0649, 0,
5354 4, 0xFD5C, 0x0633, 0x062D, 0x062C, 0,
5355 4, 0xFD5D, 0x0633, 0x062C, 0x062D, 0,
5356 6, 0xFD5E, 0x0633, 0x062C, 0x0649, 0,
5357 6, 0xFD5F, 0x0633, 0x0645, 0x062D, 0,
5358 4, 0xFD60, 0x0633, 0x0645, 0x062D, 0,
5359 4, 0xFD61, 0x0633, 0x0645, 0x062C, 0,
5360 6, 0xFD62, 0x0633, 0x0645, 0x0645, 0,
5361 4, 0xFD63, 0x0633, 0x0645, 0x0645, 0,
5362 6, 0xFD64, 0x0635, 0x062D, 0x062D, 0,
5363 4, 0xFD65, 0x0635, 0x062D, 0x062D, 0,
5364 6, 0xFD66, 0x0635, 0x0645, 0x0645, 0,
5365 6, 0xFD67, 0x0634, 0x062D, 0x0645, 0,
5366 4, 0xFD68, 0x0634, 0x062D, 0x0645, 0,
5367 6, 0xFD69, 0x0634, 0x062C, 0x064A, 0,
5368 6, 0xFD6A, 0x0634, 0x0645, 0x062E, 0,
5369 4, 0xFD6B, 0x0634, 0x0645, 0x062E, 0,
5370 6, 0xFD6C, 0x0634, 0x0645, 0x0645, 0,
5371 4, 0xFD6D, 0x0634, 0x0645, 0x0645, 0,
5372 6, 0xFD6E, 0x0636, 0x062D, 0x0649, 0,
5373 6, 0xFD6F, 0x0636, 0x062E, 0x0645, 0,
5374 4, 0xFD70, 0x0636, 0x062E, 0x0645, 0,
5375 6, 0xFD71, 0x0637, 0x0645, 0x062D, 0,
5376 4, 0xFD72, 0x0637, 0x0645, 0x062D, 0,
5377 4, 0xFD73, 0x0637, 0x0645, 0x0645, 0,
5378 6, 0xFD74, 0x0637, 0x0645, 0x064A, 0,
5379 6, 0xFD75, 0x0639, 0x062C, 0x0645, 0,
5380 6, 0xFD76, 0x0639, 0x0645, 0x0645, 0,
5381 4, 0xFD77, 0x0639, 0x0645, 0x0645, 0,
5382 6, 0xFD78, 0x0639, 0x0645, 0x0649, 0,
5383 6, 0xFD79, 0x063A, 0x0645, 0x0645, 0,
5384 6, 0xFD7A, 0x063A, 0x0645, 0x064A, 0,
5385 6, 0xFD7B, 0x063A, 0x0645, 0x0649, 0,
5386 6, 0xFD7C, 0x0641, 0x062E, 0x0645, 0,
5387 4, 0xFD7D, 0x0641, 0x062E, 0x0645, 0,
5388 6, 0xFD7E, 0x0642, 0x0645, 0x062D, 0,
5389 6, 0xFD7F, 0x0642, 0x0645, 0x0645, 0,
5390 6, 0xFD80, 0x0644, 0x062D, 0x0645, 0,
5391 6, 0xFD81, 0x0644, 0x062D, 0x064A, 0,
5392 6, 0xFD82, 0x0644, 0x062D, 0x0649, 0,
5393 4, 0xFD83, 0x0644, 0x062C, 0x062C, 0,
5394 6, 0xFD84, 0x0644, 0x062C, 0x062C, 0,
5395 6, 0xFD85, 0x0644, 0x062E, 0x0645, 0,
5396 4, 0xFD86, 0x0644, 0x062E, 0x0645, 0,
5397 6, 0xFD87, 0x0644, 0x0645, 0x062D, 0,
5398 4, 0xFD88, 0x0644, 0x0645, 0x062D, 0,
5399 4, 0xFD89, 0x0645, 0x062D, 0x062C, 0,
5400 4, 0xFD8A, 0x0645, 0x062D, 0x0645, 0,
5401 6, 0xFD8B, 0x0645, 0x062D, 0x064A, 0,
5402 4, 0xFD8C, 0x0645, 0x062C, 0x062D, 0,
5403 4, 0xFD8D, 0x0645, 0x062C, 0x0645, 0,
5404 4, 0xFD8E, 0x0645, 0x062E, 0x062C, 0,
5405 4, 0xFD8F, 0x0645, 0x062E, 0x0645, 0,
5406 4, 0xFD92, 0x0645, 0x062C, 0x062E, 0,
5407 4, 0xFD93, 0x0647, 0x0645, 0x062C, 0,
5408 4, 0xFD94, 0x0647, 0x0645, 0x0645, 0,
5409 4, 0xFD95, 0x0646, 0x062D, 0x0645, 0,
5410 6, 0xFD96, 0x0646, 0x062D, 0x0649, 0,
5411 6, 0xFD97, 0x0646, 0x062C, 0x0645, 0,
5412 4, 0xFD98, 0x0646, 0x062C, 0x0645, 0,
5413 6, 0xFD99, 0x0646, 0x062C, 0x0649, 0,
5414 6, 0xFD9A, 0x0646, 0x0645, 0x064A, 0,
5415 6, 0xFD9B, 0x0646, 0x0645, 0x0649, 0,
5416 6, 0xFD9C, 0x064A, 0x0645, 0x0645, 0,
5417 4, 0xFD9D, 0x064A, 0x0645, 0x0645, 0,
5418 6, 0xFD9E, 0x0628, 0x062E, 0x064A, 0,
5419 6, 0xFD9F, 0x062A, 0x062C, 0x064A, 0,
5420 6, 0xFDA0, 0x062A, 0x062C, 0x0649, 0,
5421 6, 0xFDA1, 0x062A, 0x062E, 0x064A, 0,
5422 6, 0xFDA2, 0x062A, 0x062E, 0x0649, 0,
5423 6, 0xFDA3, 0x062A, 0x0645, 0x064A, 0,
5424 6, 0xFDA4, 0x062A, 0x0645, 0x0649, 0,
5425 6, 0xFDA5, 0x062C, 0x0645, 0x064A, 0,
5426 6, 0xFDA6, 0x062C, 0x062D, 0x0649, 0,
5427 6, 0xFDA7, 0x062C, 0x0645, 0x0649, 0,
5428 6, 0xFDA8, 0x0633, 0x062E, 0x0649, 0,
5429 6, 0xFDA9, 0x0635, 0x062D, 0x064A, 0,
5430 6, 0xFDAA, 0x0634, 0x062D, 0x064A, 0,
5431 6, 0xFDAB, 0x0636, 0x062D, 0x064A, 0,
5432 6, 0xFDAC, 0x0644, 0x062C, 0x064A, 0,
5433 6, 0xFDAD, 0x0644, 0x0645, 0x064A, 0,
5434 6, 0xFDAE, 0x064A, 0x062D, 0x064A, 0,
5435 6, 0xFDAF, 0x064A, 0x062C, 0x064A, 0,
5436 6, 0xFDB0, 0x064A, 0x0645, 0x064A, 0,
5437 6, 0xFDB1, 0x0645, 0x0645, 0x064A, 0,
5438 6, 0xFDB2, 0x0642, 0x0645, 0x064A, 0,
5439 6, 0xFDB3, 0x0646, 0x062D, 0x064A, 0,
5440 4, 0xFDB4, 0x0642, 0x0645, 0x062D, 0,
5441 4, 0xFDB5, 0x0644, 0x062D, 0x0645, 0,
5442 6, 0xFDB6, 0x0639, 0x0645, 0x064A, 0,
5443 6, 0xFDB7, 0x0643, 0x0645, 0x064A, 0,
5444 4, 0xFDB8, 0x0646, 0x062C, 0x062D, 0,
5445 6, 0xFDB9, 0x0645, 0x062E, 0x064A, 0,
5446 4, 0xFDBA, 0x0644, 0x062C, 0x0645, 0,
5447 6, 0xFDBB, 0x0643, 0x0645, 0x0645, 0,
5448 6, 0xFDBC, 0x0644, 0x062C, 0x0645, 0,
5449 6, 0xFDBD, 0x0646, 0x062C, 0x062D, 0,
5450 6, 0xFDBE, 0x062C, 0x062D, 0x064A, 0,
5451 6, 0xFDBF, 0x062D, 0x062C, 0x064A, 0,
5452 6, 0xFDC0, 0x0645, 0x062C, 0x064A, 0,
5453 6, 0xFDC1, 0x0641, 0x0645, 0x064A, 0,
5454 6, 0xFDC2, 0x0628, 0x062D, 0x064A, 0,
5455 4, 0xFDC3, 0x0643, 0x0645, 0x0645, 0,
5456 4, 0xFDC4, 0x0639, 0x062C, 0x0645, 0,
5457 4, 0xFDC5, 0x0635, 0x0645, 0x0645, 0,
5458 6, 0xFDC6, 0x0633, 0x062E, 0x064A, 0,
5459 6, 0xFDC7, 0x0646, 0x062C, 0x064A, 0,
5460 7, 0xFDF0, 0x0635, 0x0644, 0x06D2, 0,
5461 7, 0xFDF1, 0x0642, 0x0644, 0x06D2, 0,
5462 7, 0xFDF2, 0x0627, 0x0644, 0x0644, 0x0647, 0,
5463 7, 0xFDF3, 0x0627, 0x0643, 0x0628, 0x0631, 0,
5464 7, 0xFDF4, 0x0645, 0x062D, 0x0645, 0x062F, 0,
5465 7, 0xFDF5, 0x0635, 0x0644, 0x0639, 0x0645, 0,
5466 7, 0xFDF6, 0x0631, 0x0633, 0x0648, 0x0644, 0,
5467 7, 0xFDF7, 0x0639, 0x0644, 0x064A, 0x0647, 0,
5468 7, 0xFDF8, 0x0648, 0x0633, 0x0644, 0x0645, 0,
5469 7, 0xFDF9, 0x0635, 0x0644, 0x0649, 0,
5470 7, 0xFDFA, 0x0635, 0x0644, 0x0649, 0x0020, 0x0627, 0x0644, 0x0644, 0x0647, 0x0020, 0x0639, 0x0644, 0x064A, 0x0647, 0x0020, 0x0648, 0x0633, 0x0644, 0x0645, 0,
5471 7, 0xFDFB, 0x062C, 0x0644, 0x0020, 0x062C, 0x0644, 0x0627, 0x0644, 0x0647, 0,
5472 11, 0xFE30, 0x2025, 0,
5473 11, 0xFE31, 0x2014, 0,
5474 11, 0xFE32, 0x2013, 0,
5475 11, 0xFE33, 0x005F, 0,
5476 11, 0xFE34, 0x005F, 0,
5477 11, 0xFE35, 0x0028, 0,
5478 11, 0xFE36, 0x0029, 0,
5479 11, 0xFE37, 0x007B, 0,
5480 11, 0xFE38, 0x007D, 0,
5481 11, 0xFE39, 0x3014, 0,
5482 11, 0xFE3A, 0x3015, 0,
5483 11, 0xFE3B, 0x3010, 0,
5484 11, 0xFE3C, 0x3011, 0,
5485 11, 0xFE3D, 0x300A, 0,
5486 11, 0xFE3E, 0x300B, 0,
5487 11, 0xFE3F, 0x3008, 0,
5488 11, 0xFE40, 0x3009, 0,
5489 11, 0xFE41, 0x300C, 0,
5490 11, 0xFE42, 0x300D, 0,
5491 11, 0xFE43, 0x300E, 0,
5492 11, 0xFE44, 0x300F, 0,
5493 16, 0xFE49, 0x203E, 0,
5494 16, 0xFE4A, 0x203E, 0,
5495 16, 0xFE4B, 0x203E, 0,
5496 16, 0xFE4C, 0x203E, 0,
5497 16, 0xFE4D, 0x005F, 0,
5498 16, 0xFE4E, 0x005F, 0,
5499 16, 0xFE4F, 0x005F, 0,
5500 14, 0xFE50, 0x002C, 0,
5501 14, 0xFE51, 0x3001, 0,
5502 14, 0xFE52, 0x002E, 0,
5503 14, 0xFE54, 0x003B, 0,
5504 14, 0xFE55, 0x003A, 0,
5505 14, 0xFE56, 0x003F, 0,
5506 14, 0xFE57, 0x0021, 0,
5507 14, 0xFE58, 0x2014, 0,
5508 14, 0xFE59, 0x0028, 0,
5509 14, 0xFE5A, 0x0029, 0,
5510 14, 0xFE5B, 0x007B, 0,
5511 14, 0xFE5C, 0x007D, 0,
5512 14, 0xFE5D, 0x3014, 0,
5513 14, 0xFE5E, 0x3015, 0,
5514 14, 0xFE5F, 0x0023, 0,
5515 14, 0xFE60, 0x0026, 0,
5516 14, 0xFE61, 0x002A, 0,
5517 14, 0xFE62, 0x002B, 0,
5518 14, 0xFE63, 0x002D, 0,
5519 14, 0xFE64, 0x003C, 0,
5520 14, 0xFE65, 0x003E, 0,
5521 14, 0xFE66, 0x003D, 0,
5522 14, 0xFE68, 0x005C, 0,
5523 14, 0xFE69, 0x0024, 0,
5524 14, 0xFE6A, 0x0025, 0,
5525 14, 0xFE6B, 0x0040, 0,
5526 7, 0xFE70, 0x0020, 0x064B, 0,
5527 5, 0xFE71, 0x0640, 0x064B, 0,
5528 7, 0xFE72, 0x0020, 0x064C, 0,
5529 7, 0xFE74, 0x0020, 0x064D, 0,
5530 7, 0xFE76, 0x0020, 0x064E, 0,
5531 5, 0xFE77, 0x0640, 0x064E, 0,
5532 7, 0xFE78, 0x0020, 0x064F, 0,
5533 5, 0xFE79, 0x0640, 0x064F, 0,
5534 7, 0xFE7A, 0x0020, 0x0650, 0,
5535 5, 0xFE7B, 0x0640, 0x0650, 0,
5536 7, 0xFE7C, 0x0020, 0x0651, 0,
5537 5, 0xFE7D, 0x0640, 0x0651, 0,
5538 7, 0xFE7E, 0x0020, 0x0652, 0,
5539 5, 0xFE7F, 0x0640, 0x0652, 0,
5540 7, 0xFE80, 0x0621, 0,
5541 7, 0xFE81, 0x0622, 0,
5542 6, 0xFE82, 0x0622, 0,
5543 7, 0xFE83, 0x0623, 0,
5544 6, 0xFE84, 0x0623, 0,
5545 7, 0xFE85, 0x0624, 0,
5546 6, 0xFE86, 0x0624, 0,
5547 7, 0xFE87, 0x0625, 0,
5548 6, 0xFE88, 0x0625, 0,
5549 7, 0xFE89, 0x0626, 0,
5550 6, 0xFE8A, 0x0626, 0,
5551 4, 0xFE8B, 0x0626, 0,
5552 5, 0xFE8C, 0x0626, 0,
5553 7, 0xFE8D, 0x0627, 0,
5554 6, 0xFE8E, 0x0627, 0,
5555 7, 0xFE8F, 0x0628, 0,
5556 6, 0xFE90, 0x0628, 0,
5557 4, 0xFE91, 0x0628, 0,
5558 5, 0xFE92, 0x0628, 0,
5559 7, 0xFE93, 0x0629, 0,
5560 6, 0xFE94, 0x0629, 0,
5561 7, 0xFE95, 0x062A, 0,
5562 6, 0xFE96, 0x062A, 0,
5563 4, 0xFE97, 0x062A, 0,
5564 5, 0xFE98, 0x062A, 0,
5565 7, 0xFE99, 0x062B, 0,
5566 6, 0xFE9A, 0x062B, 0,
5567 4, 0xFE9B, 0x062B, 0,
5568 5, 0xFE9C, 0x062B, 0,
5569 7, 0xFE9D, 0x062C, 0,
5570 6, 0xFE9E, 0x062C, 0,
5571 4, 0xFE9F, 0x062C, 0,
5572 5, 0xFEA0, 0x062C, 0,
5573 7, 0xFEA1, 0x062D, 0,
5574 6, 0xFEA2, 0x062D, 0,
5575 4, 0xFEA3, 0x062D, 0,
5576 5, 0xFEA4, 0x062D, 0,
5577 7, 0xFEA5, 0x062E, 0,
5578 6, 0xFEA6, 0x062E, 0,
5579 4, 0xFEA7, 0x062E, 0,
5580 5, 0xFEA8, 0x062E, 0,
5581 7, 0xFEA9, 0x062F, 0,
5582 6, 0xFEAA, 0x062F, 0,
5583 7, 0xFEAB, 0x0630, 0,
5584 6, 0xFEAC, 0x0630, 0,
5585 7, 0xFEAD, 0x0631, 0,
5586 6, 0xFEAE, 0x0631, 0,
5587 7, 0xFEAF, 0x0632, 0,
5588 6, 0xFEB0, 0x0632, 0,
5589 7, 0xFEB1, 0x0633, 0,
5590 6, 0xFEB2, 0x0633, 0,
5591 4, 0xFEB3, 0x0633, 0,
5592 5, 0xFEB4, 0x0633, 0,
5593 7, 0xFEB5, 0x0634, 0,
5594 6, 0xFEB6, 0x0634, 0,
5595 4, 0xFEB7, 0x0634, 0,
5596 5, 0xFEB8, 0x0634, 0,
5597 7, 0xFEB9, 0x0635, 0,
5598 6, 0xFEBA, 0x0635, 0,
5599 4, 0xFEBB, 0x0635, 0,
5600 5, 0xFEBC, 0x0635, 0,
5601 7, 0xFEBD, 0x0636, 0,
5602 6, 0xFEBE, 0x0636, 0,
5603 4, 0xFEBF, 0x0636, 0,
5604 5, 0xFEC0, 0x0636, 0,
5605 7, 0xFEC1, 0x0637, 0,
5606 6, 0xFEC2, 0x0637, 0,
5607 4, 0xFEC3, 0x0637, 0,
5608 5, 0xFEC4, 0x0637, 0,
5609 7, 0xFEC5, 0x0638, 0,
5610 6, 0xFEC6, 0x0638, 0,
5611 4, 0xFEC7, 0x0638, 0,
5612 5, 0xFEC8, 0x0638, 0,
5613 7, 0xFEC9, 0x0639, 0,
5614 6, 0xFECA, 0x0639, 0,
5615 4, 0xFECB, 0x0639, 0,
5616 5, 0xFECC, 0x0639, 0,
5617 7, 0xFECD, 0x063A, 0,
5618 6, 0xFECE, 0x063A, 0,
5619 4, 0xFECF, 0x063A, 0,
5620 5, 0xFED0, 0x063A, 0,
5621 7, 0xFED1, 0x0641, 0,
5622 6, 0xFED2, 0x0641, 0,
5623 4, 0xFED3, 0x0641, 0,
5624 5, 0xFED4, 0x0641, 0,
5625 7, 0xFED5, 0x0642, 0,
5626 6, 0xFED6, 0x0642, 0,
5627 4, 0xFED7, 0x0642, 0,
5628 5, 0xFED8, 0x0642, 0,
5629 7, 0xFED9, 0x0643, 0,
5630 6, 0xFEDA, 0x0643, 0,
5631 4, 0xFEDB, 0x0643, 0,
5632 5, 0xFEDC, 0x0643, 0,
5633 7, 0xFEDD, 0x0644, 0,
5634 6, 0xFEDE, 0x0644, 0,
5635 4, 0xFEDF, 0x0644, 0,
5636 5, 0xFEE0, 0x0644, 0,
5637 7, 0xFEE1, 0x0645, 0,
5638 6, 0xFEE2, 0x0645, 0,
5639 4, 0xFEE3, 0x0645, 0,
5640 5, 0xFEE4, 0x0645, 0,
5641 7, 0xFEE5, 0x0646, 0,
5642 6, 0xFEE6, 0x0646, 0,
5643 4, 0xFEE7, 0x0646, 0,
5644 5, 0xFEE8, 0x0646, 0,
5645 7, 0xFEE9, 0x0647, 0,
5646 6, 0xFEEA, 0x0647, 0,
5647 4, 0xFEEB, 0x0647, 0,
5648 5, 0xFEEC, 0x0647, 0,
5649 7, 0xFEED, 0x0648, 0,
5650 6, 0xFEEE, 0x0648, 0,
5651 7, 0xFEEF, 0x0649, 0,
5652 6, 0xFEF0, 0x0649, 0,
5653 7, 0xFEF1, 0x064A, 0,
5654 6, 0xFEF2, 0x064A, 0,
5655 4, 0xFEF3, 0x064A, 0,
5656 5, 0xFEF4, 0x064A, 0,
5657 7, 0xFEF5, 0x0644, 0x0622, 0,
5658 6, 0xFEF6, 0x0644, 0x0622, 0,
5659 7, 0xFEF7, 0x0644, 0x0623, 0,
5660 6, 0xFEF8, 0x0644, 0x0623, 0,
5661 7, 0xFEF9, 0x0644, 0x0625, 0,
5662 6, 0xFEFA, 0x0644, 0x0625, 0,
5663 7, 0xFEFB, 0x0644, 0x0627, 0,
5664 6, 0xFEFC, 0x0644, 0x0627, 0,
5665 12, 0xFF01, 0x0021, 0,
5666 12, 0xFF02, 0x0022, 0,
5667 12, 0xFF03, 0x0023, 0,
5668 12, 0xFF04, 0x0024, 0,
5669 12, 0xFF05, 0x0025, 0,
5670 12, 0xFF06, 0x0026, 0,
5671 12, 0xFF07, 0x0027, 0,
5672 12, 0xFF08, 0x0028, 0,
5673 12, 0xFF09, 0x0029, 0,
5674 12, 0xFF0A, 0x002A, 0,
5675 12, 0xFF0B, 0x002B, 0,
5676 12, 0xFF0C, 0x002C, 0,
5677 12, 0xFF0D, 0x002D, 0,
5678 12, 0xFF0E, 0x002E, 0,
5679 12, 0xFF0F, 0x002F, 0,
5680 12, 0xFF10, 0x0030, 0,
5681 12, 0xFF11, 0x0031, 0,
5682 12, 0xFF12, 0x0032, 0,
5683 12, 0xFF13, 0x0033, 0,
5684 12, 0xFF14, 0x0034, 0,
5685 12, 0xFF15, 0x0035, 0,
5686 12, 0xFF16, 0x0036, 0,
5687 12, 0xFF17, 0x0037, 0,
5688 12, 0xFF18, 0x0038, 0,
5689 12, 0xFF19, 0x0039, 0,
5690 12, 0xFF1A, 0x003A, 0,
5691 12, 0xFF1B, 0x003B, 0,
5692 12, 0xFF1C, 0x003C, 0,
5693 12, 0xFF1D, 0x003D, 0,
5694 12, 0xFF1E, 0x003E, 0,
5695 12, 0xFF1F, 0x003F, 0,
5696 12, 0xFF20, 0x0040, 0,
5697 12, 0xFF21, 0x0041, 0,
5698 12, 0xFF22, 0x0042, 0,
5699 12, 0xFF23, 0x0043, 0,
5700 12, 0xFF24, 0x0044, 0,
5701 12, 0xFF25, 0x0045, 0,
5702 12, 0xFF26, 0x0046, 0,
5703 12, 0xFF27, 0x0047, 0,
5704 12, 0xFF28, 0x0048, 0,
5705 12, 0xFF29, 0x0049, 0,
5706 12, 0xFF2A, 0x004A, 0,
5707 12, 0xFF2B, 0x004B, 0,
5708 12, 0xFF2C, 0x004C, 0,
5709 12, 0xFF2D, 0x004D, 0,
5710 12, 0xFF2E, 0x004E, 0,
5711 12, 0xFF2F, 0x004F, 0,
5712 12, 0xFF30, 0x0050, 0,
5713 12, 0xFF31, 0x0051, 0,
5714 12, 0xFF32, 0x0052, 0,
5715 12, 0xFF33, 0x0053, 0,
5716 12, 0xFF34, 0x0054, 0,
5717 12, 0xFF35, 0x0055, 0,
5718 12, 0xFF36, 0x0056, 0,
5719 12, 0xFF37, 0x0057, 0,
5720 12, 0xFF38, 0x0058, 0,
5721 12, 0xFF39, 0x0059, 0,
5722 12, 0xFF3A, 0x005A, 0,
5723 12, 0xFF3B, 0x005B, 0,
5724 12, 0xFF3C, 0x005C, 0,
5725 12, 0xFF3D, 0x005D, 0,
5726 12, 0xFF3E, 0x005E, 0,
5727 12, 0xFF3F, 0x005F, 0,
5728 12, 0xFF40, 0x0060, 0,
5729 12, 0xFF41, 0x0061, 0,
5730 12, 0xFF42, 0x0062, 0,
5731 12, 0xFF43, 0x0063, 0,
5732 12, 0xFF44, 0x0064, 0,
5733 12, 0xFF45, 0x0065, 0,
5734 12, 0xFF46, 0x0066, 0,
5735 12, 0xFF47, 0x0067, 0,
5736 12, 0xFF48, 0x0068, 0,
5737 12, 0xFF49, 0x0069, 0,
5738 12, 0xFF4A, 0x006A, 0,
5739 12, 0xFF4B, 0x006B, 0,
5740 12, 0xFF4C, 0x006C, 0,
5741 12, 0xFF4D, 0x006D, 0,
5742 12, 0xFF4E, 0x006E, 0,
5743 12, 0xFF4F, 0x006F, 0,
5744 12, 0xFF50, 0x0070, 0,
5745 12, 0xFF51, 0x0071, 0,
5746 12, 0xFF52, 0x0072, 0,
5747 12, 0xFF53, 0x0073, 0,
5748 12, 0xFF54, 0x0074, 0,
5749 12, 0xFF55, 0x0075, 0,
5750 12, 0xFF56, 0x0076, 0,
5751 12, 0xFF57, 0x0077, 0,
5752 12, 0xFF58, 0x0078, 0,
5753 12, 0xFF59, 0x0079, 0,
5754 12, 0xFF5A, 0x007A, 0,
5755 12, 0xFF5B, 0x007B, 0,
5756 12, 0xFF5C, 0x007C, 0,
5757 12, 0xFF5D, 0x007D, 0,
5758 12, 0xFF5E, 0x007E, 0,
5759 13, 0xFF61, 0x3002, 0,
5760 13, 0xFF62, 0x300C, 0,
5761 13, 0xFF63, 0x300D, 0,
5762 13, 0xFF64, 0x3001, 0,
5763 13, 0xFF65, 0x30FB, 0,
5764 13, 0xFF66, 0x30F2, 0,
5765 13, 0xFF67, 0x30A1, 0,
5766 13, 0xFF68, 0x30A3, 0,
5767 13, 0xFF69, 0x30A5, 0,
5768 13, 0xFF6A, 0x30A7, 0,
5769 13, 0xFF6B, 0x30A9, 0,
5770 13, 0xFF6C, 0x30E3, 0,
5771 13, 0xFF6D, 0x30E5, 0,
5772 13, 0xFF6E, 0x30E7, 0,
5773 13, 0xFF6F, 0x30C3, 0,
5774 13, 0xFF70, 0x30FC, 0,
5775 13, 0xFF71, 0x30A2, 0,
5776 13, 0xFF72, 0x30A4, 0,
5777 13, 0xFF73, 0x30A6, 0,
5778 13, 0xFF74, 0x30A8, 0,
5779 13, 0xFF75, 0x30AA, 0,
5780 13, 0xFF76, 0x30AB, 0,
5781 13, 0xFF77, 0x30AD, 0,
5782 13, 0xFF78, 0x30AF, 0,
5783 13, 0xFF79, 0x30B1, 0,
5784 13, 0xFF7A, 0x30B3, 0,
5785 13, 0xFF7B, 0x30B5, 0,
5786 13, 0xFF7C, 0x30B7, 0,
5787 13, 0xFF7D, 0x30B9, 0,
5788 13, 0xFF7E, 0x30BB, 0,
5789 13, 0xFF7F, 0x30BD, 0,
5790 13, 0xFF80, 0x30BF, 0,
5791 13, 0xFF81, 0x30C1, 0,
5792 13, 0xFF82, 0x30C4, 0,
5793 13, 0xFF83, 0x30C6, 0,
5794 13, 0xFF84, 0x30C8, 0,
5795 13, 0xFF85, 0x30CA, 0,
5796 13, 0xFF86, 0x30CB, 0,
5797 13, 0xFF87, 0x30CC, 0,
5798 13, 0xFF88, 0x30CD, 0,
5799 13, 0xFF89, 0x30CE, 0,
5800 13, 0xFF8A, 0x30CF, 0,
5801 13, 0xFF8B, 0x30D2, 0,
5802 13, 0xFF8C, 0x30D5, 0,
5803 13, 0xFF8D, 0x30D8, 0,
5804 13, 0xFF8E, 0x30DB, 0,
5805 13, 0xFF8F, 0x30DE, 0,
5806 13, 0xFF90, 0x30DF, 0,
5807 13, 0xFF91, 0x30E0, 0,
5808 13, 0xFF92, 0x30E1, 0,
5809 13, 0xFF93, 0x30E2, 0,
5810 13, 0xFF94, 0x30E4, 0,
5811 13, 0xFF95, 0x30E6, 0,
5812 13, 0xFF96, 0x30E8, 0,
5813 13, 0xFF97, 0x30E9, 0,
5814 13, 0xFF98, 0x30EA, 0,
5815 13, 0xFF99, 0x30EB, 0,
5816 13, 0xFF9A, 0x30EC, 0,
5817 13, 0xFF9B, 0x30ED, 0,
5818 13, 0xFF9C, 0x30EF, 0,
5819 13, 0xFF9D, 0x30F3, 0,
5820 13, 0xFF9E, 0x3099, 0,
5821 13, 0xFF9F, 0x309A, 0,
5822 13, 0xFFA0, 0x3164, 0,
5823 13, 0xFFA1, 0x3131, 0,
5824 13, 0xFFA2, 0x3132, 0,
5825 13, 0xFFA3, 0x3133, 0,
5826 13, 0xFFA4, 0x3134, 0,
5827 13, 0xFFA5, 0x3135, 0,
5828 13, 0xFFA6, 0x3136, 0,
5829 13, 0xFFA7, 0x3137, 0,
5830 13, 0xFFA8, 0x3138, 0,
5831 13, 0xFFA9, 0x3139, 0,
5832 13, 0xFFAA, 0x313A, 0,
5833 13, 0xFFAB, 0x313B, 0,
5834 13, 0xFFAC, 0x313C, 0,
5835 13, 0xFFAD, 0x313D, 0,
5836 13, 0xFFAE, 0x313E, 0,
5837 13, 0xFFAF, 0x313F, 0,
5838 13, 0xFFB0, 0x3140, 0,
5839 13, 0xFFB1, 0x3141, 0,
5840 13, 0xFFB2, 0x3142, 0,
5841 13, 0xFFB3, 0x3143, 0,
5842 13, 0xFFB4, 0x3144, 0,
5843 13, 0xFFB5, 0x3145, 0,
5844 13, 0xFFB6, 0x3146, 0,
5845 13, 0xFFB7, 0x3147, 0,
5846 13, 0xFFB8, 0x3148, 0,
5847 13, 0xFFB9, 0x3149, 0,
5848 13, 0xFFBA, 0x314A, 0,
5849 13, 0xFFBB, 0x314B, 0,
5850 13, 0xFFBC, 0x314C, 0,
5851 13, 0xFFBD, 0x314D, 0,
5852 13, 0xFFBE, 0x314E, 0,
5853 13, 0xFFC2, 0x314F, 0,
5854 13, 0xFFC3, 0x3150, 0,
5855 13, 0xFFC4, 0x3151, 0,
5856 13, 0xFFC5, 0x3152, 0,
5857 13, 0xFFC6, 0x3153, 0,
5858 13, 0xFFC7, 0x3154, 0,
5859 13, 0xFFCA, 0x3155, 0,
5860 13, 0xFFCB, 0x3156, 0,
5861 13, 0xFFCC, 0x3157, 0,
5862 13, 0xFFCD, 0x3158, 0,
5863 13, 0xFFCE, 0x3159, 0,
5864 13, 0xFFCF, 0x315A, 0,
5865 13, 0xFFD2, 0x315B, 0,
5866 13, 0xFFD3, 0x315C, 0,
5867 13, 0xFFD4, 0x315D, 0,
5868 13, 0xFFD5, 0x315E, 0,
5869 13, 0xFFD6, 0x315F, 0,
5870 13, 0xFFD7, 0x3160, 0,
5871 13, 0xFFDA, 0x3161, 0,
5872 13, 0xFFDB, 0x3162, 0,
5873 13, 0xFFDC, 0x3163, 0,
5874 12, 0xFFE0, 0x00A2, 0,
5875 12, 0xFFE1, 0x00A3, 0,
5876 12, 0xFFE2, 0x00AC, 0,
5877 12, 0xFFE3, 0x00AF, 0,
5878 12, 0xFFE4, 0x00A6, 0,
5879 12, 0xFFE5, 0x00A5, 0,
5880 12, 0xFFE6, 0x20A9, 0,
5881 13, 0xFFE8, 0x2502, 0,
5882 13, 0xFFE9, 0x2190, 0,
5883 13, 0xFFEA, 0x2191, 0,
5884 13, 0xFFEB, 0x2192, 0,
5885 13, 0xFFEC, 0x2193, 0,
5886 13, 0xFFED, 0x25A0, 0,
5887 13, 0xFFEE, 0x25CB, 0,
5888
5889};
5890
5891static const Q_UINT16 di_00[] = {
5892 0, 0, 0, 0, 0, 0, 0, 0,
5893 0, 0, 0, 0, 0, 0, 0, 0,
5894 0, 0, 0, 0, 0, 0, 0, 0,
5895 0, 0, 0, 0, 0, 0, 0, 0,
5896 0, 0, 0, 0, 0, 0, 0, 0,
5897 0, 0, 0, 0, 0, 0, 0, 0,
5898 0, 0, 0, 0, 0, 0, 0, 0,
5899 0, 0, 0, 0, 0, 0, 0, 0,
5900 0, 0, 0, 0, 0, 0, 0, 0,
5901 0, 0, 0, 0, 0, 0, 0, 0,
5902 0, 0, 0, 0, 0, 0, 0, 0,
5903 0, 0, 0, 0, 0, 0, 0, 0,
5904 0, 0, 0, 0, 0, 0, 0, 0,
5905 0, 0, 0, 0, 0, 0, 0, 0,
5906 0, 0, 0, 0, 0, 0, 0, 0,
5907 0, 0, 0, 0, 0, 0, 0, 0,
5908 0, 0, 0, 0, 0, 0, 0, 0,
5909 0, 0, 0, 0, 0, 0, 0, 0,
5910 0, 0, 0, 0, 0, 0, 0, 0,
5911 0, 0, 0, 0, 0, 0, 0, 0,
5912 1, 0, 0, 0, 0, 0, 0, 0,
5913 5, 0, 10, 0, 0, 0, 0, 14,
5914 0, 0, 19, 23, 27, 32, 0, 0,
5915 36, 41, 45, 0, 49, 55, 61, 0,
5916 67, 72, 77, 82, 87, 92, 0, 97,
5917 102, 107, 112, 117, 122, 127, 132, 137,
5918 0, 142, 147, 152, 157, 162, 167, 0,
5919 0, 172, 177, 182, 187, 192, 0, 0,
5920 197, 202, 207, 212, 217, 222, 0, 227,
5921 232, 237, 242, 247, 252, 257, 262, 267,
5922 0, 272, 277, 282, 287, 292, 297, 0,
5923 0, 302, 307, 312, 317, 322, 0, 327,
5924};
5925
5926static const Q_UINT16 di_01[] = {
5927 332, 337, 342, 347, 352, 357, 362, 367,
5928 372, 377, 382, 387, 392, 397, 402, 407,
5929 0, 0, 412, 417, 422, 427, 432, 437,
5930 442, 447, 452, 457, 462, 467, 472, 477,
5931 482, 487, 492, 497, 502, 507, 0, 0,
5932 512, 517, 522, 527, 532, 537, 542, 547,
5933 552, 0, 557, 562, 567, 572, 577, 582,
5934 0, 587, 592, 597, 602, 607, 612, 617,
5935 622, 0, 0, 627, 632, 637, 642, 647,
5936 652, 657, 0, 0, 662, 667, 672, 677,
5937 682, 687, 0, 0, 692, 697, 702, 707,
5938 712, 717, 722, 727, 732, 737, 742, 747,
5939 752, 757, 762, 767, 772, 777, 0, 0,
5940 782, 787, 792, 797, 802, 807, 812, 817,
5941 822, 827, 832, 837, 842, 847, 852, 857,
5942 862, 867, 872, 877, 882, 887, 892, 897,
5943 0, 0, 0, 0, 0, 0, 0, 0,
5944 0, 0, 0, 0, 0, 0, 0, 0,
5945 0, 0, 0, 0, 0, 0, 0, 0,
5946 0, 0, 0, 0, 0, 0, 0, 0,
5947 901, 906, 0, 0, 0, 0, 0, 0,
5948 0, 0, 0, 0, 0, 0, 0, 911,
5949 916, 0, 0, 0, 0, 0, 0, 0,
5950 0, 0, 0, 0, 0, 0, 0, 0,
5951 0, 0, 0, 0, 921, 926, 931, 936,
5952 941, 946, 951, 956, 961, 966, 971, 976,
5953 981, 986, 991, 996, 1001, 1006, 1011, 1016,
5954 1021, 1026, 1031, 1036, 1041, 0, 1046, 1051,
5955 1056, 1061, 1066, 1071, 0, 0, 1076, 1081,
5956 1086, 1091, 1096, 1101, 1106, 1111, 1116, 1121,
5957 1126, 1131, 1136, 1141, 1146, 1151, 0, 0,
5958 1156, 1161, 1166, 1171, 1176, 1181, 1186, 1191,
5959};
5960
5961static const Q_UINT16 di_02[] = {
5962 1196, 1201, 1206, 1211, 1216, 1221, 1226, 1231,
5963 1236, 1241, 1246, 1251, 1256, 1261, 1266, 1271,
5964 1276, 1281, 1286, 1291, 1296, 1301, 1306, 1311,
5965 1316, 1321, 1326, 1331, 0, 0, 1336, 1341,
5966 0, 0, 0, 0, 0, 0, 1346, 1351,
5967 1356, 1361, 1366, 1371, 1376, 1381, 1386, 1391,
5968 1396, 1401, 1406, 1411, 0, 0, 0, 0,
5969 0, 0, 0, 0, 0, 0, 0, 0,
5970 0, 0, 0, 0, 0, 0, 0, 0,
5971 0, 0, 0, 0, 0, 0, 0, 0,
5972 0, 0, 0, 0, 0, 0, 0, 0,
5973 0, 0, 0, 0, 0, 0, 0, 0,
5974 0, 0, 0, 0, 0, 0, 0, 0,
5975 0, 0, 0, 0, 0, 0, 0, 0,
5976 0, 0, 0, 0, 0, 0, 0, 0,
5977 0, 0, 0, 0, 0, 0, 0, 0,
5978 0, 0, 0, 0, 0, 0, 0, 0,
5979 0, 0, 0, 0, 0, 0, 0, 0,
5980 0, 0, 0, 0, 0, 0, 0, 0,
5981 0, 0, 0, 0, 0, 0, 0, 0,
5982 0, 0, 0, 0, 0, 0, 0, 0,
5983 0, 0, 0, 0, 0, 0, 0, 0,
5984 1416, 1420, 1424, 1428, 1432, 1436, 1440, 1444,
5985 1448, 0, 0, 0, 0, 0, 0, 0,
5986 0, 0, 0, 0, 0, 0, 0, 0,
5987 0, 0, 0, 0, 0, 0, 0, 0,
5988 0, 0, 0, 0, 0, 0, 0, 0,
5989 1452, 1457, 1462, 1467, 1472, 1477, 0, 0,
5990 1482, 1486, 1490, 1494, 1498, 0, 0, 0,
5991 0, 0, 0, 0, 0, 0, 0, 0,
5992 0, 0, 0, 0, 0, 0, 0, 0,
5993 0, 0, 0, 0, 0, 0, 0, 0,
5994};
5995
5996static const Q_UINT16 di_03[] = {
5997 0, 0, 0, 0, 0, 0, 0, 0,
5998 0, 0, 0, 0, 0, 0, 0, 0,
5999 0, 0, 0, 0, 0, 0, 0, 0,
6000 0, 0, 0, 0, 0, 0, 0, 0,
6001 0, 0, 0, 0, 0, 0, 0, 0,
6002 0, 0, 0, 0, 0, 0, 0, 0,
6003 0, 0, 0, 0, 0, 0, 0, 0,
6004 0, 0, 0, 0, 0, 0, 0, 0,
6005 1502, 1506, 0, 1510, 1514, 0, 0, 0,
6006 0, 0, 0, 0, 0, 0, 0, 0,
6007 0, 0, 0, 0, 0, 0, 0, 0,
6008 0, 0, 0, 0, 0, 0, 0, 0,
6009 0, 0, 0, 0, 0, 0, 0, 0,
6010 0, 0, 0, 0, 0, 0, 0, 0,
6011 0, 0, 0, 0, 1519, 0, 0, 0,
6012 0, 0, 1523, 0, 0, 0, 1528, 0,
6013 0, 0, 0, 0, 1532, 1537, 1542, 1547,
6014 1551, 1556, 1561, 0, 1566, 0, 1571, 1576,
6015 1581, 0, 0, 0, 0, 0, 0, 0,
6016 0, 0, 0, 0, 0, 0, 0, 0,
6017 0, 0, 0, 0, 0, 0, 0, 0,
6018 0, 0, 1586, 1591, 1596, 1601, 1606, 1611,
6019 1616, 0, 0, 0, 0, 0, 0, 0,
6020 0, 0, 0, 0, 0, 0, 0, 0,
6021 0, 0, 0, 0, 0, 0, 0, 0,
6022 0, 0, 1621, 1626, 1631, 1636, 1641, 0,
6023 1646, 1650, 1654, 1658, 1663, 1668, 1672, 0,
6024 0, 0, 0, 0, 0, 0, 0, 0,
6025 0, 0, 0, 0, 0, 0, 0, 0,
6026 0, 0, 0, 0, 0, 0, 0, 0,
6027 1676, 1680, 1684, 0, 0, 0, 0, 0,
6028 0, 0, 0, 0, 0, 0, 0, 0,
6029};
6030
6031static const Q_UINT16 di_04[] = {
6032 1688, 1693, 0, 1698, 0, 0, 0, 1703,
6033 0, 0, 0, 0, 1708, 1713, 1718, 0,
6034 0, 0, 0, 0, 0, 0, 0, 0,
6035 0, 1723, 0, 0, 0, 0, 0, 0,
6036 0, 0, 0, 0, 0, 0, 0, 0,
6037 0, 0, 0, 0, 0, 0, 0, 0,
6038 0, 0, 0, 0, 0, 0, 0, 0,
6039 0, 1728, 0, 0, 0, 0, 0, 0,
6040 0, 0, 0, 0, 0, 0, 0, 0,
6041 0, 0, 0, 0, 0, 0, 0, 0,
6042 1733, 1738, 0, 1743, 0, 0, 0, 1748,
6043 0, 0, 0, 0, 1753, 1758, 1763, 0,
6044 0, 0, 0, 0, 0, 0, 0, 0,
6045 0, 0, 0, 0, 0, 0, 0, 0,
6046 0, 0, 0, 0, 0, 0, 1768, 1773,
6047 0, 0, 0, 0, 0, 0, 0, 0,
6048 0, 0, 0, 0, 0, 0, 0, 0,
6049 0, 0, 0, 0, 0, 0, 0, 0,
6050 0, 0, 0, 0, 0, 0, 0, 0,
6051 0, 0, 0, 0, 0, 0, 0, 0,
6052 0, 0, 0, 0, 0, 0, 0, 0,
6053 0, 0, 0, 0, 0, 0, 0, 0,
6054 0, 0, 0, 0, 0, 0, 0, 0,
6055 0, 0, 0, 0, 0, 0, 0, 0,
6056 0, 1778, 1783, 0, 0, 0, 0, 0,
6057 0, 0, 0, 0, 0, 0, 0, 0,
6058 1788, 1793, 1798, 1803, 0, 0, 1808, 1813,
6059 0, 0, 1818, 1823, 1828, 1833, 1838, 1843,
6060 0, 0, 1848, 1853, 1858, 1863, 1868, 1873,
6061 0, 0, 1878, 1883, 1888, 1893, 1898, 1903,
6062 1908, 1913, 1918, 1923, 1928, 1933, 0, 0,
6063 1938, 1943, 0, 0, 0, 0, 0, 0,
6064};
6065
6066static const Q_UINT16 di_05[] = {
6067 0, 0, 0, 0, 0, 0, 0, 0,
6068 0, 0, 0, 0, 0, 0, 0, 0,
6069 0, 0, 0, 0, 0, 0, 0, 0,
6070 0, 0, 0, 0, 0, 0, 0, 0,
6071 0, 0, 0, 0, 0, 0, 0, 0,
6072 0, 0, 0, 0, 0, 0, 0, 0,
6073 0, 0, 0, 0, 0, 0, 0, 0,
6074 0, 0, 0, 0, 0, 0, 0, 0,
6075 0, 0, 0, 0, 0, 0, 0, 0,
6076 0, 0, 0, 0, 0, 0, 0, 0,
6077 0, 0, 0, 0, 0, 0, 0, 0,
6078 0, 0, 0, 0, 0, 0, 0, 0,
6079 0, 0, 0, 0, 0, 0, 0, 0,
6080 0, 0, 0, 0, 0, 0, 0, 0,
6081 0, 0, 0, 0, 0, 0, 0, 0,
6082 0, 0, 0, 0, 0, 0, 0, 0,
6083 0, 0, 0, 0, 0, 0, 0, 1948,
6084 0, 0, 0, 0, 0, 0, 0, 0,
6085 0, 0, 0, 0, 0, 0, 0, 0,
6086 0, 0, 0, 0, 0, 0, 0, 0,
6087 0, 0, 0, 0, 0, 0, 0, 0,
6088 0, 0, 0, 0, 0, 0, 0, 0,
6089 0, 0, 0, 0, 0, 0, 0, 0,
6090 0, 0, 0, 0, 0, 0, 0, 0,
6091 0, 0, 0, 0, 0, 0, 0, 0,
6092 0, 0, 0, 0, 0, 0, 0, 0,
6093 0, 0, 0, 0, 0, 0, 0, 0,
6094 0, 0, 0, 0, 0, 0, 0, 0,
6095 0, 0, 0, 0, 0, 0, 0, 0,
6096 0, 0, 0, 0, 0, 0, 0, 0,
6097 0, 0, 0, 0, 0, 0, 0, 0,
6098 0, 0, 0, 0, 0, 0, 0, 0,
6099};
6100
6101static const Q_UINT16 di_06[] = {
6102 0, 0, 0, 0, 0, 0, 0, 0,
6103 0, 0, 0, 0, 0, 0, 0, 0,
6104 0, 0, 0, 0, 0, 0, 0, 0,
6105 0, 0, 0, 0, 0, 0, 0, 0,
6106 0, 0, 1953, 1958, 1963, 1968, 1973, 0,
6107 0, 0, 0, 0, 0, 0, 0, 0,
6108 0, 0, 0, 0, 0, 0, 0, 0,
6109 0, 0, 0, 0, 0, 0, 0, 0,
6110 0, 0, 0, 0, 0, 0, 0, 0,
6111 0, 0, 0, 0, 0, 0, 0, 0,
6112 0, 0, 0, 0, 0, 0, 0, 0,
6113 0, 0, 0, 0, 0, 0, 0, 0,
6114 0, 0, 0, 0, 0, 0, 0, 0,
6115 0, 0, 0, 0, 0, 0, 0, 0,
6116 0, 0, 0, 0, 0, 1978, 1983, 1988,
6117 1993, 0, 0, 0, 0, 0, 0, 0,
6118 0, 0, 0, 0, 0, 0, 0, 0,
6119 0, 0, 0, 0, 0, 0, 0, 0,
6120 0, 0, 0, 0, 0, 0, 0, 0,
6121 0, 0, 0, 0, 0, 0, 0, 0,
6122 0, 0, 0, 0, 0, 0, 0, 0,
6123 0, 0, 0, 0, 0, 0, 0, 0,
6124 0, 0, 0, 0, 0, 0, 0, 0,
6125 0, 0, 0, 0, 0, 0, 0, 0,
6126 1998, 0, 2003, 0, 0, 0, 0, 0,
6127 0, 0, 0, 0, 0, 0, 0, 0,
6128 0, 0, 0, 2008, 0, 0, 0, 0,
6129 0, 0, 0, 0, 0, 0, 0, 0,
6130 0, 0, 0, 0, 0, 0, 0, 0,
6131 0, 0, 0, 0, 0, 0, 0, 0,
6132 0, 0, 0, 0, 0, 0, 0, 0,
6133 0, 0, 0, 0, 0, 0, 0, 0,
6134};
6135
6136static const Q_UINT16 di_07[] = {
6137 0, 0, 0, 0, 0, 0, 0, 0,
6138 0, 0, 0, 0, 0, 0, 0, 0,
6139 0, 0, 0, 0, 0, 0, 0, 0,
6140 0, 0, 0, 0, 0, 0, 0, 0,
6141 0, 0, 0, 0, 0, 0, 0, 0,
6142 0, 0, 0, 0, 0, 0, 0, 0,
6143 0, 0, 0, 0, 0, 0, 0, 0,
6144 0, 0, 0, 0, 0, 0, 0, 0,
6145 0, 0, 0, 0, 0, 0, 0, 0,
6146 0, 0, 0, 0, 0, 0, 0, 0,
6147 0, 0, 0, 0, 0, 0, 0, 0,
6148 0, 0, 0, 0, 0, 0, 0, 0,
6149 0, 0, 0, 0, 0, 0, 0, 0,
6150 0, 0, 0, 0, 0, 0, 0, 0,
6151 0, 0, 0, 0, 0, 0, 0, 0,
6152 0, 0, 0, 0, 0, 0, 0, 0,
6153 0, 0, 0, 0, 0, 0, 0, 0,
6154 0, 0, 0, 0, 0, 0, 0, 0,
6155 0, 0, 0, 0, 0, 0, 0, 0,
6156 0, 0, 0, 0, 0, 0, 0, 0,
6157 0, 0, 0, 0, 0, 0, 0, 0,
6158 0, 0, 0, 0, 0, 0, 0, 0,
6159 0, 0, 0, 0, 0, 0, 0, 0,
6160 0, 0, 0, 0, 0, 0, 0, 0,
6161 0, 0, 0, 0, 0, 0, 0, 0,
6162 0, 0, 0, 0, 0, 0, 0, 0,
6163 0, 0, 0, 0, 0, 0, 0, 0,
6164 0, 0, 0, 0, 0, 0, 0, 0,
6165 0, 0, 0, 0, 0, 0, 0, 0,
6166 0, 0, 0, 0, 0, 0, 0, 0,
6167 0, 0, 0, 0, 0, 0, 0, 0,
6168 0, 0, 0, 0, 0, 0, 0, 0,
6169};
6170
6171static const Q_UINT16 di_09[] = {
6172 0, 0, 0, 0, 0, 0, 0, 0,
6173 0, 0, 0, 0, 0, 0, 0, 0,
6174 0, 0, 0, 0, 0, 0, 0, 0,
6175 0, 0, 0, 0, 0, 0, 0, 0,
6176 0, 0, 0, 0, 0, 0, 0, 0,
6177 0, 2013, 0, 0, 0, 0, 0, 0,
6178 0, 2018, 0, 0, 2023, 0, 0, 0,
6179 0, 0, 0, 0, 0, 0, 0, 0,
6180 0, 0, 0, 0, 0, 0, 0, 0,
6181 0, 0, 0, 0, 0, 0, 0, 0,
6182 0, 0, 0, 0, 0, 0, 0, 0,
6183 2028, 2033, 2038, 2043, 2048, 2053, 2058, 2063,
6184 0, 0, 0, 0, 0, 0, 0, 0,
6185 0, 0, 0, 0, 0, 0, 0, 0,
6186 0, 0, 0, 0, 0, 0, 0, 0,
6187 0, 0, 0, 0, 0, 0, 0, 0,
6188 0, 0, 0, 0, 0, 0, 0, 0,
6189 0, 0, 0, 0, 0, 0, 0, 0,
6190 0, 0, 0, 0, 0, 0, 0, 0,
6191 0, 0, 0, 0, 0, 0, 0, 0,
6192 0, 0, 0, 0, 0, 0, 0, 0,
6193 0, 0, 0, 0, 0, 0, 0, 0,
6194 0, 0, 0, 0, 0, 0, 0, 0,
6195 0, 0, 0, 0, 0, 0, 0, 0,
6196 0, 0, 0, 0, 0, 0, 0, 0,
6197 0, 0, 0, 2068, 2073, 0, 0, 0,
6198 0, 0, 0, 0, 0, 0, 0, 0,
6199 0, 0, 0, 0, 2078, 2083, 0, 2088,
6200 0, 0, 0, 0, 0, 0, 0, 0,
6201 0, 0, 0, 0, 0, 0, 0, 0,
6202 0, 0, 0, 0, 0, 0, 0, 0,
6203 0, 0, 0, 0, 0, 0, 0, 0,
6204};
6205
6206static const Q_UINT16 di_0A[] = {
6207 0, 0, 0, 0, 0, 0, 0, 0,
6208 0, 0, 0, 0, 0, 0, 0, 0,
6209 0, 0, 0, 0, 0, 0, 0, 0,
6210 0, 0, 0, 0, 0, 0, 0, 0,
6211 0, 0, 0, 0, 0, 0, 0, 0,
6212 0, 0, 0, 0, 0, 0, 0, 0,
6213 0, 0, 0, 2093, 0, 0, 2098, 0,
6214 0, 0, 0, 0, 0, 0, 0, 0,
6215 0, 0, 0, 0, 0, 0, 0, 0,
6216 0, 0, 0, 0, 0, 0, 0, 0,
6217 0, 0, 0, 0, 0, 0, 0, 0,
6218 0, 2103, 2108, 2113, 0, 0, 2118, 0,
6219 0, 0, 0, 0, 0, 0, 0, 0,
6220 0, 0, 0, 0, 0, 0, 0, 0,
6221 0, 0, 0, 0, 0, 0, 0, 0,
6222 0, 0, 0, 0, 0, 0, 0, 0,
6223 0, 0, 0, 0, 0, 0, 0, 0,
6224 0, 0, 0, 0, 0, 0, 0, 0,
6225 0, 0, 0, 0, 0, 0, 0, 0,
6226 0, 0, 0, 0, 0, 0, 0, 0,
6227 0, 0, 0, 0, 0, 0, 0, 0,
6228 0, 0, 0, 0, 0, 0, 0, 0,
6229 0, 0, 0, 0, 0, 0, 0, 0,
6230 0, 0, 0, 0, 0, 0, 0, 0,
6231 0, 0, 0, 0, 0, 0, 0, 0,
6232 0, 0, 0, 0, 0, 0, 0, 0,
6233 0, 0, 0, 0, 0, 0, 0, 0,
6234 0, 0, 0, 0, 0, 0, 0, 0,
6235 0, 0, 0, 0, 0, 0, 0, 0,
6236 0, 0, 0, 0, 0, 0, 0, 0,
6237 0, 0, 0, 0, 0, 0, 0, 0,
6238 0, 0, 0, 0, 0, 0, 0, 0,
6239};
6240
6241static const Q_UINT16 di_0B[] = {
6242 0, 0, 0, 0, 0, 0, 0, 0,
6243 0, 0, 0, 0, 0, 0, 0, 0,
6244 0, 0, 0, 0, 0, 0, 0, 0,
6245 0, 0, 0, 0, 0, 0, 0, 0,
6246 0, 0, 0, 0, 0, 0, 0, 0,
6247 0, 0, 0, 0, 0, 0, 0, 0,
6248 0, 0, 0, 0, 0, 0, 0, 0,
6249 0, 0, 0, 0, 0, 0, 0, 0,
6250 0, 0, 0, 0, 0, 0, 0, 0,
6251 2123, 0, 0, 2128, 2133, 0, 0, 0,
6252 0, 0, 0, 0, 0, 0, 0, 0,
6253 0, 0, 0, 0, 2138, 2143, 0, 0,
6254 0, 0, 0, 0, 0, 0, 0, 0,
6255 0, 0, 0, 0, 0, 0, 0, 0,
6256 0, 0, 0, 0, 0, 0, 0, 0,
6257 0, 0, 0, 0, 0, 0, 0, 0,
6258 0, 0, 0, 0, 0, 0, 0, 0,
6259 0, 0, 0, 0, 0, 0, 0, 0,
6260 0, 0, 0, 0, 2148, 0, 0, 0,
6261 0, 0, 0, 0, 0, 0, 0, 0,
6262 0, 0, 0, 0, 0, 0, 0, 0,
6263 0, 0, 0, 0, 0, 0, 0, 0,
6264 0, 0, 0, 0, 0, 0, 0, 0,
6265 0, 0, 0, 0, 0, 0, 0, 0,
6266 0, 0, 0, 0, 0, 0, 0, 0,
6267 0, 0, 2153, 2158, 2163, 0, 0, 0,
6268 0, 0, 0, 0, 0, 0, 0, 0,
6269 0, 0, 0, 0, 0, 0, 0, 0,
6270 0, 0, 0, 0, 0, 0, 0, 0,
6271 0, 0, 0, 0, 0, 0, 0, 0,
6272 0, 0, 0, 0, 0, 0, 0, 0,
6273 0, 0, 0, 0, 0, 0, 0, 0,
6274};
6275
6276static const Q_UINT16 di_0C[] = {
6277 0, 0, 0, 0, 0, 0, 0, 0,
6278 0, 0, 0, 0, 0, 0, 0, 0,
6279 0, 0, 0, 0, 0, 0, 0, 0,
6280 0, 0, 0, 0, 0, 0, 0, 0,
6281 0, 0, 0, 0, 0, 0, 0, 0,
6282 0, 0, 0, 0, 0, 0, 0, 0,
6283 0, 0, 0, 0, 0, 0, 0, 0,
6284 0, 0, 0, 0, 0, 0, 0, 0,
6285 0, 0, 0, 0, 0, 0, 0, 0,
6286 2168, 0, 0, 0, 0, 0, 0, 0,
6287 0, 0, 0, 0, 0, 0, 0, 0,
6288 0, 0, 0, 0, 0, 0, 0, 0,
6289 0, 0, 0, 0, 0, 0, 0, 0,
6290 0, 0, 0, 0, 0, 0, 0, 0,
6291 0, 0, 0, 0, 0, 0, 0, 0,
6292 0, 0, 0, 0, 0, 0, 0, 0,
6293 0, 0, 0, 0, 0, 0, 0, 0,
6294 0, 0, 0, 0, 0, 0, 0, 0,
6295 0, 0, 0, 0, 0, 0, 0, 0,
6296 0, 0, 0, 0, 0, 0, 0, 0,
6297 0, 0, 0, 0, 0, 0, 0, 0,
6298 0, 0, 0, 0, 0, 0, 0, 0,
6299 0, 0, 0, 0, 0, 0, 0, 0,
6300 0, 0, 0, 0, 0, 0, 0, 0,
6301 2173, 0, 0, 0, 0, 0, 0, 2178,
6302 2183, 0, 2188, 2193, 0, 0, 0, 0,
6303 0, 0, 0, 0, 0, 0, 0, 0,
6304 0, 0, 0, 0, 0, 0, 0, 0,
6305 0, 0, 0, 0, 0, 0, 0, 0,
6306 0, 0, 0, 0, 0, 0, 0, 0,
6307 0, 0, 0, 0, 0, 0, 0, 0,
6308 0, 0, 0, 0, 0, 0, 0, 0,
6309};
6310
6311static const Q_UINT16 di_0D[] = {
6312 0, 0, 0, 0, 0, 0, 0, 0,
6313 0, 0, 0, 0, 0, 0, 0, 0,
6314 0, 0, 0, 0, 0, 0, 0, 0,
6315 0, 0, 0, 0, 0, 0, 0, 0,
6316 0, 0, 0, 0, 0, 0, 0, 0,
6317 0, 0, 0, 0, 0, 0, 0, 0,
6318 0, 0, 0, 0, 0, 0, 0, 0,
6319 0, 0, 0, 0, 0, 0, 0, 0,
6320 0, 0, 0, 0, 0, 0, 0, 0,
6321 0, 0, 2198, 2203, 2208, 0, 0, 0,
6322 0, 0, 0, 0, 0, 0, 0, 0,
6323 0, 0, 0, 0, 0, 0, 0, 0,
6324 0, 0, 0, 0, 0, 0, 0, 0,
6325 0, 0, 0, 0, 0, 0, 0, 0,
6326 0, 0, 0, 0, 0, 0, 0, 0,
6327 0, 0, 0, 0, 0, 0, 0, 0,
6328 0, 0, 0, 0, 0, 0, 0, 0,
6329 0, 0, 0, 0, 0, 0, 0, 0,
6330 0, 0, 0, 0, 0, 0, 0, 0,
6331 0, 0, 0, 0, 0, 0, 0, 0,
6332 0, 0, 0, 0, 0, 0, 0, 0,
6333 0, 0, 0, 0, 0, 0, 0, 0,
6334 0, 0, 0, 0, 0, 0, 0, 0,
6335 0, 0, 0, 0, 0, 0, 0, 0,
6336 0, 0, 0, 0, 0, 0, 0, 0,
6337 0, 0, 0, 0, 0, 0, 0, 0,
6338 0, 0, 0, 0, 0, 0, 0, 0,
6339 0, 0, 2213, 0, 2218, 2223, 2228, 0,
6340 0, 0, 0, 0, 0, 0, 0, 0,
6341 0, 0, 0, 0, 0, 0, 0, 0,
6342 0, 0, 0, 0, 0, 0, 0, 0,
6343 0, 0, 0, 0, 0, 0, 0, 0,
6344};
6345
6346static const Q_UINT16 di_0E[] = {
6347 0, 0, 0, 0, 0, 0, 0, 0,
6348 0, 0, 0, 0, 0, 0, 0, 0,
6349 0, 0, 0, 0, 0, 0, 0, 0,
6350 0, 0, 0, 0, 0, 0, 0, 0,
6351 0, 0, 0, 0, 0, 0, 0, 0,
6352 0, 0, 0, 0, 0, 0, 0, 0,
6353 0, 0, 0, 2233, 0, 0, 0, 0,
6354 0, 0, 0, 0, 0, 0, 0, 0,
6355 0, 0, 0, 0, 0, 0, 0, 0,
6356 0, 0, 0, 0, 0, 0, 0, 0,
6357 0, 0, 0, 0, 0, 0, 0, 0,
6358 0, 0, 0, 0, 0, 0, 0, 0,
6359 0, 0, 0, 0, 0, 0, 0, 0,
6360 0, 0, 0, 0, 0, 0, 0, 0,
6361 0, 0, 0, 0, 0, 0, 0, 0,
6362 0, 0, 0, 0, 0, 0, 0, 0,
6363 0, 0, 0, 0, 0, 0, 0, 0,
6364 0, 0, 0, 0, 0, 0, 0, 0,
6365 0, 0, 0, 0, 0, 0, 0, 0,
6366 0, 0, 0, 0, 0, 0, 0, 0,
6367 0, 0, 0, 0, 0, 0, 0, 0,
6368 0, 0, 0, 0, 0, 0, 0, 0,
6369 0, 0, 0, 2238, 0, 0, 0, 0,
6370 0, 0, 0, 0, 0, 0, 0, 0,
6371 0, 0, 0, 0, 0, 0, 0, 0,
6372 0, 0, 0, 0, 0, 0, 0, 0,
6373 0, 0, 0, 0, 0, 0, 0, 0,
6374 0, 0, 0, 0, 2243, 2248, 0, 0,
6375 0, 0, 0, 0, 0, 0, 0, 0,
6376 0, 0, 0, 0, 0, 0, 0, 0,
6377 0, 0, 0, 0, 0, 0, 0, 0,
6378 0, 0, 0, 0, 0, 0, 0, 0,
6379};
6380
6381static const Q_UINT16 di_0F[] = {
6382 0, 0, 0, 0, 0, 0, 0, 0,
6383 0, 0, 0, 0, 2253, 0, 0, 0,
6384 0, 0, 0, 0, 0, 0, 0, 0,
6385 0, 0, 0, 0, 0, 0, 0, 0,
6386 0, 0, 0, 0, 0, 0, 0, 0,
6387 0, 0, 0, 0, 0, 0, 0, 0,
6388 0, 0, 0, 0, 0, 0, 0, 0,
6389 0, 0, 0, 0, 0, 0, 0, 0,
6390 0, 0, 0, 2257, 0, 0, 0, 0,
6391 0, 0, 0, 0, 0, 2262, 0, 0,
6392 0, 0, 2267, 0, 0, 0, 0, 2272,
6393 0, 0, 0, 0, 2277, 0, 0, 0,
6394 0, 0, 0, 0, 0, 0, 0, 0,
6395 0, 2282, 0, 0, 0, 0, 0, 0,
6396 0, 0, 0, 2287, 0, 2292, 2297, 2302,
6397 2307, 2312, 0, 0, 0, 0, 0, 0,
6398 0, 2317, 0, 0, 0, 0, 0, 0,
6399 0, 0, 0, 0, 0, 0, 0, 0,
6400 0, 0, 0, 2322, 0, 0, 0, 0,
6401 0, 0, 0, 0, 0, 2327, 0, 0,
6402 0, 0, 2332, 0, 0, 0, 0, 2337,
6403 0, 0, 0, 0, 2342, 0, 0, 0,
6404 0, 0, 0, 0, 0, 0, 0, 0,
6405 0, 2347, 0, 0, 0, 0, 0, 0,
6406 0, 0, 0, 0, 0, 0, 0, 0,
6407 0, 0, 0, 0, 0, 0, 0, 0,
6408 0, 0, 0, 0, 0, 0, 0, 0,
6409 0, 0, 0, 0, 0, 0, 0, 0,
6410 0, 0, 0, 0, 0, 0, 0, 0,
6411 0, 0, 0, 0, 0, 0, 0, 0,
6412 0, 0, 0, 0, 0, 0, 0, 0,
6413 0, 0, 0, 0, 0, 0, 0, 0,
6414};
6415
6416static const Q_UINT16 di_10[] = {
6417 0, 0, 0, 0, 0, 0, 0, 0,
6418 0, 0, 0, 0, 0, 0, 0, 0,
6419 0, 0, 0, 0, 0, 0, 0, 0,
6420 0, 0, 0, 0, 0, 0, 0, 0,
6421 0, 0, 0, 0, 0, 0, 2352, 0,
6422 0, 0, 0, 0, 0, 0, 0, 0,
6423 0, 0, 0, 0, 0, 0, 0, 0,
6424 0, 0, 0, 0, 0, 0, 0, 0,
6425 0, 0, 0, 0, 0, 0, 0, 0,
6426 0, 0, 0, 0, 0, 0, 0, 0,
6427 0, 0, 0, 0, 0, 0, 0, 0,
6428 0, 0, 0, 0, 0, 0, 0, 0,
6429 0, 0, 0, 0, 0, 0, 0, 0,
6430 0, 0, 0, 0, 0, 0, 0, 0,
6431 0, 0, 0, 0, 0, 0, 0, 0,
6432 0, 0, 0, 0, 0, 0, 0, 0,
6433 0, 0, 0, 0, 0, 0, 0, 0,
6434 0, 0, 0, 0, 0, 0, 0, 0,
6435 0, 0, 0, 0, 0, 0, 0, 0,
6436 0, 0, 0, 0, 0, 0, 0, 0,
6437 0, 0, 0, 0, 0, 0, 0, 0,
6438 0, 0, 0, 0, 0, 0, 0, 0,
6439 0, 0, 0, 0, 0, 0, 0, 0,
6440 0, 0, 0, 0, 0, 0, 0, 0,
6441 0, 0, 0, 0, 0, 0, 0, 0,
6442 0, 0, 0, 0, 0, 0, 0, 0,
6443 0, 0, 0, 0, 0, 0, 0, 0,
6444 0, 0, 0, 0, 0, 0, 0, 0,
6445 0, 0, 0, 0, 0, 0, 0, 0,
6446 0, 0, 0, 0, 0, 0, 0, 0,
6447 0, 0, 0, 0, 0, 0, 0, 0,
6448 0, 0, 0, 0, 0, 0, 0, 0,
6449};
6450
6451static const Q_UINT16 di_1E[] = {
6452 2357, 2362, 2367, 2372, 2377, 2382, 2387, 2392,
6453 2397, 2402, 2407, 2412, 2417, 2422, 2427, 2432,
6454 2437, 2442, 2447, 2452, 2457, 2462, 2467, 2472,
6455 2477, 2482, 2487, 2492, 2497, 2502, 2507, 2512,
6456 2517, 2522, 2527, 2532, 2537, 2542, 2547, 2552,
6457 2557, 2562, 2567, 2572, 2577, 2582, 2587, 2592,
6458 2597, 2602, 2607, 2612, 2617, 2622, 2627, 2632,
6459 2637, 2642, 2647, 2652, 2657, 2662, 2667, 2672,
6460 2677, 2682, 2687, 2692, 2697, 2702, 2707, 2712,
6461 2717, 2722, 2727, 2732, 2737, 2742, 2747, 2752,
6462 2757, 2762, 2767, 2772, 2777, 2782, 2787, 2792,
6463 2797, 2802, 2807, 2812, 2817, 2822, 2827, 2832,
6464 2837, 2842, 2847, 2852, 2857, 2862, 2867, 2872,
6465 2877, 2882, 2887, 2892, 2897, 2902, 2907, 2912,
6466 2917, 2922, 2927, 2932, 2937, 2942, 2947, 2952,
6467 2957, 2962, 2967, 2972, 2977, 2982, 2987, 2992,
6468 2997, 3002, 3007, 3012, 3017, 3022, 3027, 3032,
6469 3037, 3042, 3047, 3052, 3057, 3062, 3067, 3072,
6470 3077, 3082, 3087, 3092, 3097, 3102, 3107, 3112,
6471 3117, 3122, 3127, 3132, 0, 0, 0, 0,
6472 3137, 3142, 3147, 3152, 3157, 3162, 3167, 3172,
6473 3177, 3182, 3187, 3192, 3197, 3202, 3207, 3212,
6474 3217, 3222, 3227, 3232, 3237, 3242, 3247, 3252,
6475 3257, 3262, 3267, 3272, 3277, 3282, 3287, 3292,
6476 3297, 3302, 3307, 3312, 3317, 3322, 3327, 3332,
6477 3337, 3342, 3347, 3352, 3357, 3362, 3367, 3372,
6478 3377, 3382, 3387, 3392, 3397, 3402, 3407, 3412,
6479 3417, 3422, 3427, 3432, 3437, 3442, 3447, 3452,
6480 3457, 3462, 3467, 3472, 3477, 3482, 3487, 3492,
6481 3497, 3502, 3507, 3512, 3517, 3522, 3527, 3532,
6482 3537, 3542, 3547, 3552, 3557, 3562, 3567, 3572,
6483 3577, 3582, 0, 0, 0, 0, 0, 0,
6484};
6485
6486static const Q_UINT16 di_1F[] = {
6487 3587, 3592, 3597, 3602, 3607, 3612, 3617, 3622,
6488 3627, 3632, 3637, 3642, 3647, 3652, 3657, 3662,
6489 3667, 3672, 3677, 3682, 3687, 3692, 0, 0,
6490 3697, 3702, 3707, 3712, 3717, 3722, 0, 0,
6491 3727, 3732, 3737, 3742, 3747, 3752, 3757, 3762,
6492 3767, 3772, 3777, 3782, 3787, 3792, 3797, 3802,
6493 3807, 3812, 3817, 3822, 3827, 3832, 3837, 3842,
6494 3847, 3852, 3857, 3862, 3867, 3872, 3877, 3882,
6495 3887, 3892, 3897, 3902, 3907, 3912, 0, 0,
6496 3917, 3922, 3927, 3932, 3937, 3942, 0, 0,
6497 3947, 3952, 3957, 3962, 3967, 3972, 3977, 3982,
6498 0, 3987, 0, 3992, 0, 3997, 0, 4002,
6499 4007, 4012, 4017, 4022, 4027, 4032, 4037, 4042,
6500 4047, 4052, 4057, 4062, 4067, 4072, 4077, 4082,
6501 4087, 4092, 4096, 4101, 4105, 4110, 4114, 4119,
6502 4123, 4128, 4132, 4137, 4141, 4146, 0, 0,
6503 4150, 4155, 4160, 4165, 4170, 4175, 4180, 4185,
6504 4190, 4195, 4200, 4205, 4210, 4215, 4220, 4225,
6505 4230, 4235, 4240, 4245, 4250, 4255, 4260, 4265,
6506 4270, 4275, 4280, 4285, 4290, 4295, 4300, 4305,
6507 4310, 4315, 4320, 4325, 4330, 4335, 4340, 4345,
6508 4350, 4355, 4360, 4365, 4370, 4375, 4380, 4385,
6509 4390, 4395, 4400, 4405, 4410, 0, 4415, 4420,
6510 4425, 4430, 4435, 4440, 4444, 4449, 4454, 4458,
6511 4463, 4468, 4473, 4478, 4483, 0, 4488, 4493,
6512 4498, 4503, 4507, 4512, 4516, 4521, 4526, 4531,
6513 4536, 4541, 4546, 4551, 0, 0, 4555, 4560,
6514 4565, 4570, 4575, 4580, 0, 4584, 4589, 4594,
6515 4599, 4604, 4609, 4614, 4618, 4623, 4628, 4633,
6516 4638, 4643, 4648, 4653, 4657, 4662, 4667, 4671,
6517 0, 0, 4675, 4680, 4685, 0, 4690, 4695,
6518 4700, 4705, 4709, 4714, 4718, 4723, 4727, 0,
6519};
6520
6521static const Q_UINT16 di_20[] = {
6522 4732, 4736, 4740, 4744, 4748, 4752, 4756, 4760,
6523 4764, 4768, 4772, 0, 0, 0, 0, 0,
6524 0, 4776, 0, 0, 0, 0, 0, 4780,
6525 0, 0, 0, 0, 0, 0, 0, 0,
6526 0, 0, 0, 0, 4785, 4789, 4794, 0,
6527 0, 0, 0, 0, 0, 0, 0, 4800,
6528 0, 0, 0, 4804, 4809, 0, 4815, 4820,
6529 0, 0, 0, 0, 4826, 0, 4831, 0,
6530 0, 0, 0, 0, 0, 0, 0, 0,
6531 4836, 4841, 0, 0, 0, 0, 0, 0,
6532 0, 0, 0, 0, 0, 0, 0, 0,
6533 0, 0, 0, 0, 0, 0, 0, 0,
6534 0, 0, 0, 0, 0, 0, 0, 0,
6535 0, 0, 0, 0, 0, 0, 0, 0,
6536 4846, 0, 0, 0, 4850, 4854, 4858, 4862,
6537 4866, 4870, 4874, 4878, 4882, 4886, 4890, 4894,
6538 4898, 4902, 4906, 4910, 4914, 4918, 4922, 4926,
6539 4930, 4934, 4938, 4942, 4946, 4950, 4954, 0,
6540 0, 0, 0, 0, 0, 0, 0, 0,
6541 0, 0, 0, 0, 0, 0, 0, 0,
6542 0, 0, 0, 0, 0, 0, 0, 0,
6543 4958, 0, 0, 0, 0, 0, 0, 0,
6544 0, 0, 0, 0, 0, 0, 0, 0,
6545 0, 0, 0, 0, 0, 0, 0, 0,
6546 0, 0, 0, 0, 0, 0, 0, 0,
6547 0, 0, 0, 0, 0, 0, 0, 0,
6548 0, 0, 0, 0, 0, 0, 0, 0,
6549 0, 0, 0, 0, 0, 0, 0, 0,
6550 0, 0, 0, 0, 0, 0, 0, 0,
6551 0, 0, 0, 0, 0, 0, 0, 0,
6552 0, 0, 0, 0, 0, 0, 0, 0,
6553 0, 0, 0, 0, 0, 0, 0, 0,
6554};
6555
6556static const Q_UINT16 di_21[] = {
6557 4963, 4969, 4975, 4979, 0, 4984, 4990, 4996,
6558 0, 5000, 5005, 5009, 5013, 5017, 5021, 5025,
6559 5029, 5033, 5037, 5041, 0, 5045, 5049, 0,
6560 0, 5054, 5058, 5062, 5066, 5070, 0, 0,
6561 5074, 5079, 5085, 0, 5090, 0, 5094, 0,
6562 5098, 0, 5102, 5106, 5110, 5114, 0, 5118,
6563 5122, 5126, 0, 5130, 5134, 5138, 5142, 5146,
6564 5150, 5154, 0, 0, 0, 0, 0, 0,
6565 0, 0, 0, 0, 0, 0, 0, 0,
6566 0, 0, 0, 0, 0, 0, 0, 0,
6567 0, 0, 0, 5158, 5164, 5170, 5176, 5182,
6568 5188, 5194, 5200, 5206, 5212, 5218, 5224, 5230,
6569 5235, 5239, 5244, 5250, 5255, 5259, 5264, 5270,
6570 5277, 5282, 5286, 5291, 5297, 5301, 5305, 5309,
6571 5313, 5317, 5322, 5328, 5333, 5337, 5342, 5348,
6572 5355, 5360, 5364, 5369, 5375, 5379, 5383, 5387,
6573 0, 0, 0, 0, 0, 0, 0, 0,
6574 0, 0, 0, 0, 0, 0, 0, 0,
6575 0, 0, 0, 0, 0, 0, 0, 0,
6576 0, 0, 5391, 5396, 0, 0, 0, 0,
6577 0, 0, 0, 0, 0, 0, 0, 0,
6578 0, 0, 0, 0, 0, 0, 5401, 0,
6579 0, 0, 0, 0, 0, 0, 0, 0,
6580 0, 0, 0, 0, 0, 0, 0, 0,
6581 0, 0, 0, 0, 0, 0, 0, 0,
6582 0, 0, 0, 0, 0, 5406, 5411, 5416,
6583 0, 0, 0, 0, 0, 0, 0, 0,
6584 0, 0, 0, 0, 0, 0, 0, 0,
6585 0, 0, 0, 0, 0, 0, 0, 0,
6586 0, 0, 0, 0, 0, 0, 0, 0,
6587 0, 0, 0, 0, 0, 0, 0, 0,
6588 0, 0, 0, 0, 0, 0, 0, 0,
6589};
6590
6591static const Q_UINT16 di_22[] = {
6592 0, 0, 0, 0, 5421, 0, 0, 0,
6593 0, 5426, 0, 0, 5431, 0, 0, 0,
6594 0, 0, 0, 0, 0, 0, 0, 0,
6595 0, 0, 0, 0, 0, 0, 0, 0,
6596 0, 0, 0, 0, 5436, 0, 5441, 0,
6597 0, 0, 0, 0, 5446, 5451, 0, 5457,
6598 5462, 0, 0, 0, 0, 0, 0, 0,
6599 0, 0, 0, 0, 0, 0, 0, 0,
6600 0, 5468, 0, 0, 5473, 0, 0, 5478,
6601 0, 5483, 0, 0, 0, 0, 0, 0,
6602 0, 0, 0, 0, 0, 0, 0, 0,
6603 0, 0, 0, 0, 0, 0, 0, 0,
6604 5488, 0, 5493, 0, 0, 0, 0, 0,
6605 0, 0, 0, 0, 0, 5498, 5503, 5508,
6606 5513, 5518, 0, 0, 5523, 5528, 0, 0,
6607 5533, 5538, 0, 0, 0, 0, 0, 0,
6608 5543, 5548, 0, 0, 5553, 5558, 0, 0,
6609 5563, 5568, 0, 0, 0, 0, 0, 0,
6610 0, 0, 0, 0, 0, 0, 0, 0,
6611 0, 0, 0, 0, 0, 0, 0, 0,
6612 0, 0, 0, 0, 0, 0, 0, 0,
6613 0, 0, 0, 0, 5573, 5578, 5583, 5588,
6614 0, 0, 0, 0, 0, 0, 0, 0,
6615 0, 0, 0, 0, 0, 0, 0, 0,
6616 0, 0, 0, 0, 0, 0, 0, 0,
6617 0, 0, 0, 0, 0, 0, 0, 0,
6618 0, 0, 0, 0, 0, 0, 0, 0,
6619 0, 0, 0, 0, 0, 0, 0, 0,
6620 5593, 5598, 5603, 5608, 0, 0, 0, 0,
6621 0, 0, 5613, 5618, 5623, 5628, 0, 0,
6622 0, 0, 0, 0, 0, 0, 0, 0,
6623 0, 0, 0, 0, 0, 0, 0, 0,
6624};
6625
6626static const Q_UINT16 di_23[] = {
6627 0, 0, 0, 0, 0, 0, 0, 0,
6628 0, 0, 0, 0, 0, 0, 0, 0,
6629 0, 0, 0, 0, 0, 0, 0, 0,
6630 0, 0, 0, 0, 0, 0, 0, 0,
6631 0, 0, 0, 0, 0, 0, 0, 0,
6632 0, 5633, 5637, 0, 0, 0, 0, 0,
6633 0, 0, 0, 0, 0, 0, 0, 0,
6634 0, 0, 0, 0, 0, 0, 0, 0,
6635 0, 0, 0, 0, 0, 0, 0, 0,
6636 0, 0, 0, 0, 0, 0, 0, 0,
6637 0, 0, 0, 0, 0, 0, 0, 0,
6638 0, 0, 0, 0, 0, 0, 0, 0,
6639 0, 0, 0, 0, 0, 0, 0, 0,
6640 0, 0, 0, 0, 0, 0, 0, 0,
6641 0, 0, 0, 0, 0, 0, 0, 0,
6642 0, 0, 0, 0, 0, 0, 0, 0,
6643 0, 0, 0, 0, 0, 0, 0, 0,
6644 0, 0, 0, 0, 0, 0, 0, 0,
6645 0, 0, 0, 0, 0, 0, 0, 0,
6646 0, 0, 0, 0, 0, 0, 0, 0,
6647 0, 0, 0, 0, 0, 0, 0, 0,
6648 0, 0, 0, 0, 0, 0, 0, 0,
6649 0, 0, 0, 0, 0, 0, 0, 0,
6650 0, 0, 0, 0, 0, 0, 0, 0,
6651 0, 0, 0, 0, 0, 0, 0, 0,
6652 0, 0, 0, 0, 0, 0, 0, 0,
6653 0, 0, 0, 0, 0, 0, 0, 0,
6654 0, 0, 0, 0, 0, 0, 0, 0,
6655 0, 0, 0, 0, 0, 0, 0, 0,
6656 0, 0, 0, 0, 0, 0, 0, 0,
6657 0, 0, 0, 0, 0, 0, 0, 0,
6658 0, 0, 0, 0, 0, 0, 0, 0,
6659};
6660
6661static const Q_UINT16 di_24[] = {
6662 0, 0, 0, 0, 0, 0, 0, 0,
6663 0, 0, 0, 0, 0, 0, 0, 0,
6664 0, 0, 0, 0, 0, 0, 0, 0,
6665 0, 0, 0, 0, 0, 0, 0, 0,
6666 0, 0, 0, 0, 0, 0, 0, 0,
6667 0, 0, 0, 0, 0, 0, 0, 0,
6668 0, 0, 0, 0, 0, 0, 0, 0,
6669 0, 0, 0, 0, 0, 0, 0, 0,
6670 0, 0, 0, 0, 0, 0, 0, 0,
6671 0, 0, 0, 0, 0, 0, 0, 0,
6672 0, 0, 0, 0, 0, 0, 0, 0,
6673 0, 0, 0, 0, 0, 0, 0, 0,
6674 5641, 5645, 5649, 5653, 5657, 5661, 5665, 5669,
6675 5673, 5677, 5682, 5687, 5692, 5697, 5702, 5707,
6676 5712, 5717, 5722, 5727, 5732, 5738, 5744, 5750,
6677 5756, 5762, 5768, 5774, 5780, 5786, 5793, 5800,
6678 5807, 5814, 5821, 5828, 5835, 5842, 5849, 5856,
6679 5863, 5868, 5873, 5878, 5883, 5888, 5893, 5898,
6680 5903, 5908, 5914, 5920, 5926, 5932, 5938, 5944,
6681 5950, 5956, 5962, 5968, 5974, 5980, 5986, 5992,
6682 5998, 6004, 6010, 6016, 6022, 6028, 6034, 6040,
6683 6046, 6052, 6058, 6064, 6070, 6076, 6082, 6088,
6684 6094, 6100, 6106, 6112, 6118, 6124, 6130, 6134,
6685 6138, 6142, 6146, 6150, 6154, 6158, 6162, 6166,
6686 6170, 6174, 6178, 6182, 6186, 6190, 6194, 6198,
6687 6202, 6206, 6210, 6214, 6218, 6222, 6226, 6230,
6688 6234, 6238, 6242, 6246, 6250, 6254, 6258, 6262,
6689 6266, 6270, 6274, 6278, 6282, 6286, 6290, 6294,
6690 6298, 6302, 6306, 6310, 6314, 6318, 6322, 6326,
6691 6330, 6334, 6338, 0, 0, 0, 0, 0,
6692 0, 0, 0, 0, 0, 0, 0, 0,
6693 0, 0, 0, 0, 0, 0, 0, 0,
6694};
6695
6696static const Q_UINT16 di_2E[] = {
6697 0, 0, 0, 0, 0, 0, 0, 0,
6698 0, 0, 0, 0, 0, 0, 0, 0,
6699 0, 0, 0, 0, 0, 0, 0, 0,
6700 0, 0, 0, 0, 0, 0, 0, 0,
6701 0, 0, 0, 0, 0, 0, 0, 0,
6702 0, 0, 0, 0, 0, 0, 0, 0,
6703 0, 0, 0, 0, 0, 0, 0, 0,
6704 0, 0, 0, 0, 0, 0, 0, 0,
6705 0, 0, 0, 0, 0, 0, 0, 0,
6706 0, 0, 0, 0, 0, 0, 0, 0,
6707 0, 0, 0, 0, 0, 0, 0, 0,
6708 0, 0, 0, 0, 0, 0, 0, 0,
6709 0, 0, 0, 0, 0, 0, 0, 0,
6710 0, 0, 0, 0, 0, 0, 0, 0,
6711 0, 0, 0, 0, 0, 0, 0, 0,
6712 0, 0, 0, 0, 0, 0, 0, 0,
6713 0, 0, 0, 0, 0, 0, 0, 0,
6714 0, 0, 0, 0, 0, 0, 0, 0,
6715 0, 0, 0, 0, 0, 0, 0, 0,
6716 0, 0, 0, 0, 0, 0, 0, 6342,
6717 0, 0, 0, 0, 0, 0, 0, 0,
6718 0, 0, 0, 0, 0, 0, 0, 0,
6719 0, 0, 0, 0, 0, 0, 0, 0,
6720 0, 0, 0, 0, 0, 0, 0, 0,
6721 0, 0, 0, 0, 0, 0, 0, 0,
6722 0, 0, 0, 0, 0, 0, 0, 0,
6723 0, 0, 0, 0, 0, 0, 0, 0,
6724 0, 0, 0, 0, 0, 0, 0, 0,
6725 0, 0, 0, 0, 0, 0, 0, 0,
6726 0, 0, 0, 0, 0, 0, 0, 0,
6727 0, 0, 0, 6346, 0, 0, 0, 0,
6728 0, 0, 0, 0, 0, 0, 0, 0,
6729};
6730
6731static const Q_UINT16 di_2F[] = {
6732 6350, 6354, 6358, 6362, 6366, 6370, 6374, 6378,
6733 6382, 6386, 6390, 6394, 6398, 6402, 6406, 6410,
6734 6414, 6418, 6422, 6426, 6430, 6434, 6438, 6442,
6735 6446, 6450, 6454, 6458, 6462, 6466, 6470, 6474,
6736 6478, 6482, 6486, 6490, 6494, 6498, 6502, 6506,
6737 6510, 6514, 6518, 6522, 6526, 6530, 6534, 6538,
6738 6542, 6546, 6550, 6554, 6558, 6562, 6566, 6570,
6739 6574, 6578, 6582, 6586, 6590, 6594, 6598, 6602,
6740 6606, 6610, 6614, 6618, 6622, 6626, 6630, 6634,
6741 6638, 6642, 6646, 6650, 6654, 6658, 6662, 6666,
6742 6670, 6674, 6678, 6682, 6686, 6690, 6694, 6698,
6743 6702, 6706, 6710, 6714, 6718, 6722, 6726, 6730,
6744 6734, 6738, 6742, 6746, 6750, 6754, 6758, 6762,
6745 6766, 6770, 6774, 6778, 6782, 6786, 6790, 6794,
6746 6798, 6802, 6806, 6810, 6814, 6818, 6822, 6826,
6747 6830, 6834, 6838, 6842, 6846, 6850, 6854, 6858,
6748 6862, 6866, 6870, 6874, 6878, 6882, 6886, 6890,
6749 6894, 6898, 6902, 6906, 6910, 6914, 6918, 6922,
6750 6926, 6930, 6934, 6938, 6942, 6946, 6950, 6954,
6751 6958, 6962, 6966, 6970, 6974, 6978, 6982, 6986,
6752 6990, 6994, 6998, 7002, 7006, 7010, 7014, 7018,
6753 7022, 7026, 7030, 7034, 7038, 7042, 7046, 7050,
6754 7054, 7058, 7062, 7066, 7070, 7074, 7078, 7082,
6755 7086, 7090, 7094, 7098, 7102, 7106, 7110, 7114,
6756 7118, 7122, 7126, 7130, 7134, 7138, 7142, 7146,
6757 7150, 7154, 7158, 7162, 7166, 7170, 7174, 7178,
6758 7182, 7186, 7190, 7194, 7198, 7202, 0, 0,
6759 0, 0, 0, 0, 0, 0, 0, 0,
6760 0, 0, 0, 0, 0, 0, 0, 0,
6761 0, 0, 0, 0, 0, 0, 0, 0,
6762 0, 0, 0, 0, 0, 0, 0, 0,
6763 0, 0, 0, 0, 0, 0, 0, 0,
6764};
6765
6766static const Q_UINT16 di_30[] = {
6767 7206, 0, 0, 0, 0, 0, 0, 0,
6768 0, 0, 0, 0, 0, 0, 0, 0,
6769 0, 0, 0, 0, 0, 0, 0, 0,
6770 0, 0, 0, 0, 0, 0, 0, 0,
6771 0, 0, 0, 0, 0, 0, 0, 0,
6772 0, 0, 0, 0, 0, 0, 0, 0,
6773 0, 0, 0, 0, 0, 0, 7210, 0,
6774 7214, 7218, 7222, 0, 0, 0, 0, 0,
6775 0, 0, 0, 0, 0, 0, 0, 0,
6776 0, 0, 0, 0, 7226, 0, 7231, 0,
6777 7236, 0, 7241, 0, 7246, 0, 7251, 0,
6778 7256, 0, 7261, 0, 7266, 0, 7271, 0,
6779 7276, 0, 7281, 0, 0, 7286, 0, 7291,
6780 0, 7296, 0, 0, 0, 0, 0, 0,
6781 7301, 7306, 0, 7311, 7316, 0, 7321, 7326,
6782 0, 7331, 7336, 0, 7341, 7346, 0, 0,
6783 0, 0, 0, 0, 0, 0, 0, 0,
6784 0, 0, 0, 0, 0, 0, 0, 0,
6785 0, 0, 0, 0, 7351, 0, 0, 0,
6786 0, 0, 0, 7356, 7361, 0, 7366, 0,
6787 0, 0, 0, 0, 0, 0, 0, 0,
6788 0, 0, 0, 0, 7371, 0, 7376, 0,
6789 7381, 0, 7386, 0, 7391, 0, 7396, 0,
6790 7401, 0, 7406, 0, 7411, 0, 7416, 0,
6791 7421, 0, 7426, 0, 0, 7431, 0, 7436,
6792 0, 7441, 0, 0, 0, 0, 0, 0,
6793 7446, 7451, 0, 7456, 7461, 0, 7466, 7471,
6794 0, 7476, 7481, 0, 7486, 7491, 0, 0,
6795 0, 0, 0, 0, 0, 0, 0, 0,
6796 0, 0, 0, 0, 0, 0, 0, 0,
6797 0, 0, 0, 0, 7496, 0, 0, 7501,
6798 7506, 7511, 7516, 0, 0, 0, 7521, 0,
6799};
6800
6801static const Q_UINT16 di_31[] = {
6802 0, 0, 0, 0, 0, 0, 0, 0,
6803 0, 0, 0, 0, 0, 0, 0, 0,
6804 0, 0, 0, 0, 0, 0, 0, 0,
6805 0, 0, 0, 0, 0, 0, 0, 0,
6806 0, 0, 0, 0, 0, 0, 0, 0,
6807 0, 0, 0, 0, 0, 0, 0, 0,
6808 0, 7526, 7530, 7534, 7538, 7542, 7546, 7550,
6809 7554, 7558, 7562, 7566, 7570, 7574, 7578, 7582,
6810 7586, 7590, 7594, 7598, 7602, 7606, 7610, 7614,
6811 7618, 7622, 7626, 7630, 7634, 7638, 7642, 7646,
6812 7650, 7654, 7658, 7662, 7666, 7670, 7674, 7678,
6813 7682, 7686, 7690, 7694, 7698, 7702, 7706, 7710,
6814 7714, 7718, 7722, 7726, 7730, 7734, 7738, 7742,
6815 7746, 7750, 7754, 7758, 7762, 7766, 7770, 7774,
6816 7778, 7782, 7786, 7790, 7794, 7798, 7802, 7806,
6817 7810, 7814, 7818, 7822, 7826, 7830, 7834, 7838,
6818 7842, 7846, 7850, 7854, 7858, 7862, 7866, 7870,
6819 7874, 7878, 7882, 7886, 7890, 7894, 7898, 0,
6820 0, 0, 7902, 7906, 7910, 7914, 7918, 7922,
6821 7926, 7930, 7934, 7938, 7942, 7946, 7950, 7954,
6822 0, 0, 0, 0, 0, 0, 0, 0,
6823 0, 0, 0, 0, 0, 0, 0, 0,
6824 0, 0, 0, 0, 0, 0, 0, 0,
6825 0, 0, 0, 0, 0, 0, 0, 0,
6826 0, 0, 0, 0, 0, 0, 0, 0,
6827 0, 0, 0, 0, 0, 0, 0, 0,
6828 0, 0, 0, 0, 0, 0, 0, 0,
6829 0, 0, 0, 0, 0, 0, 0, 0,
6830 0, 0, 0, 0, 0, 0, 0, 0,
6831 0, 0, 0, 0, 0, 0, 0, 0,
6832 0, 0, 0, 0, 0, 0, 0, 0,
6833 0, 0, 0, 0, 0, 0, 0, 0,
6834};
6835
6836static const Q_UINT16 di_32[] = {
6837 7958, 7964, 7970, 7976, 7982, 7988, 7994, 8000,
6838 8006, 8012, 8018, 8024, 8030, 8036, 8042, 8049,
6839 8056, 8063, 8070, 8077, 8084, 8091, 8098, 8105,
6840 8112, 8119, 8126, 8133, 8140, 0, 0, 0,
6841 8147, 8153, 8159, 8165, 8171, 8177, 8183, 8189,
6842 8195, 8201, 8207, 8213, 8219, 8225, 8231, 8237,
6843 8243, 8249, 8255, 8261, 8267, 8273, 8279, 8285,
6844 8291, 8297, 8303, 8309, 8315, 8321, 8327, 8333,
6845 8339, 8345, 8351, 8357, 0, 0, 0, 0,
6846 0, 0, 0, 0, 0, 0, 0, 0,
6847 0, 0, 0, 0, 0, 0, 0, 0,
6848 0, 0, 0, 0, 0, 0, 0, 0,
6849 8363, 8367, 8371, 8375, 8379, 8383, 8387, 8391,
6850 8395, 8399, 8403, 8407, 8411, 8415, 8419, 8424,
6851 8429, 8434, 8439, 8444, 8449, 8454, 8459, 8464,
6852 8469, 8474, 8479, 8484, 0, 0, 0, 0,
6853 8489, 8493, 8497, 8501, 8505, 8509, 8513, 8517,
6854 8521, 8525, 8529, 8533, 8537, 8541, 8545, 8549,
6855 8553, 8557, 8561, 8565, 8569, 8573, 8577, 8581,
6856 8585, 8589, 8593, 8597, 8601, 8605, 8609, 8613,
6857 8617, 8621, 8625, 8629, 8633, 8637, 8641, 8645,
6858 8649, 8653, 8657, 8661, 8665, 8669, 8673, 8677,
6859 8681, 0, 0, 0, 0, 0, 0, 0,
6860 0, 0, 0, 0, 0, 0, 0, 0,
6861 8685, 8690, 8695, 8700, 8705, 8710, 8715, 8720,
6862 8725, 8730, 8736, 8742, 0, 0, 0, 0,
6863 8748, 8752, 8756, 8760, 8764, 8768, 8772, 8776,
6864 8780, 8784, 8788, 8792, 8796, 8800, 8804, 8808,
6865 8812, 8816, 8820, 8824, 8828, 8832, 8836, 8840,
6866 8844, 8848, 8852, 8856, 8860, 8864, 8868, 8872,
6867 8876, 8880, 8884, 8888, 8892, 8896, 8900, 8904,
6868 8908, 8912, 8916, 8920, 8924, 8928, 8932, 0,
6869};
6870
6871static const Q_UINT16 di_33[] = {
6872 8936, 8943, 8950, 8957, 8963, 8970, 8976, 8982,
6873 8990, 8997, 9003, 9009, 9015, 9022, 9029, 9035,
6874 9041, 9046, 9052, 9059, 9066, 9071, 9079, 9088,
6875 9096, 9102, 9110, 9118, 9125, 9131, 9137, 9143,
6876 9150, 9158, 9165, 9171, 9177, 9183, 9188, 9193,
6877 9198, 9203, 9209, 9215, 9223, 9229, 9236, 9244,
6878 9250, 9255, 9260, 9268, 9275, 9283, 9289, 9297,
6879 9302, 9308, 9314, 9320, 9326, 9332, 9339, 9345,
6880 9350, 9356, 9362, 9368, 9375, 9381, 9387, 9393,
6881 9401, 9408, 9413, 9421, 9426, 9433, 9440, 9446,
6882 9452, 9458, 9465, 9470, 9476, 9483, 9488, 9496,
6883 9502, 9507, 9512, 9517, 9522, 9527, 9532, 9537,
6884 9542, 9547, 9552, 9558, 9564, 9570, 9576, 9582,
6885 9588, 9594, 9600, 9606, 9612, 9618, 9624, 9630,
6886 9636, 9642, 9648, 9653, 9658, 9664, 9669, 0,
6887 0, 0, 0, 9674, 9679, 9684, 9689, 9694,
6888 9701, 9706, 9711, 9716, 9721, 9726, 9731, 9736,
6889 9741, 9747, 9754, 9759, 9764, 9769, 9774, 9779,
6890 9784, 9789, 9795, 9801, 9807, 9813, 9818, 9823,
6891 9828, 9833, 9838, 9843, 9848, 9853, 9858, 9863,
6892 9869, 9875, 9880, 9886, 9892, 9898, 9903, 9909,
6893 9915, 9922, 9927, 9933, 9939, 9945, 9951, 9959,
6894 9968, 9973, 9978, 9983, 9988, 9993, 9998, 10003,
6895 10008, 10013, 10018, 10023, 10028, 10033, 10038, 10043,
6896 10048, 10053, 10058, 10065, 10070, 10075, 10080, 10087,
6897 10093, 10098, 10103, 10108, 10113, 10118, 10123, 10128,
6898 10133, 10138, 10143, 10149, 10154, 10159, 10165, 10171,
6899 10176, 10183, 10189, 10194, 10199, 10204, 0, 0,
6900 10209, 10214, 10219, 10224, 10229, 10234, 10239, 10244,
6901 10249, 10254, 10260, 10266, 10272, 10278, 10284, 10290,
6902 10296, 10302, 10308, 10314, 10320, 10326, 10332, 10338,
6903 10344, 10350, 10356, 10362, 10368, 10374, 10380, 0,
6904};
6905
6906static const Q_UINT16 di_F9[] = {
6907 10386, 10390, 10394, 10398, 10402, 10406, 10410, 10414,
6908 10418, 10422, 10426, 10430, 10434, 10438, 10442, 10446,
6909 10450, 10454, 10458, 10462, 10466, 10470, 10474, 10478,
6910 10482, 10486, 10490, 10494, 10498, 10502, 10506, 10510,
6911 10514, 10518, 10522, 10526, 10530, 10534, 10538, 10542,
6912 10546, 10550, 10554, 10558, 10562, 10566, 10570, 10574,
6913 10578, 10582, 10586, 10590, 10594, 10598, 10602, 10606,
6914 10610, 10614, 10618, 10622, 10626, 10630, 10634, 10638,
6915 10642, 10646, 10650, 10654, 10658, 10662, 10666, 10670,
6916 10674, 10678, 10682, 10686, 10690, 10694, 10698, 10702,
6917 10706, 10710, 10714, 10718, 10722, 10726, 10730, 10734,
6918 10738, 10742, 10746, 10750, 10754, 10758, 10762, 10766,
6919 10770, 10774, 10778, 10782, 10786, 10790, 10794, 10798,
6920 10802, 10806, 10810, 10814, 10818, 10822, 10826, 10830,
6921 10834, 10838, 10842, 10846, 10850, 10854, 10858, 10862,
6922 10866, 10870, 10874, 10878, 10882, 10886, 10890, 10894,
6923 10898, 10902, 10906, 10910, 10914, 10918, 10922, 10926,
6924 10930, 10934, 10938, 10942, 10946, 10950, 10954, 10958,
6925 10962, 10966, 10970, 10974, 10978, 10982, 10986, 10990,
6926 10994, 10998, 11002, 11006, 11010, 11014, 11018, 11022,
6927 11026, 11030, 11034, 11038, 11042, 11046, 11050, 11054,
6928 11058, 11062, 11066, 11070, 11074, 11078, 11082, 11086,
6929 11090, 11094, 11098, 11102, 11106, 11110, 11114, 11118,
6930 11122, 11126, 11130, 11134, 11138, 11142, 11146, 11150,
6931 11154, 11158, 11162, 11166, 11170, 11174, 11178, 11182,
6932 11186, 11190, 11194, 11198, 11202, 11206, 11210, 11214,
6933 11218, 11222, 11226, 11230, 11234, 11238, 11242, 11246,
6934 11250, 11254, 11258, 11262, 11266, 11270, 11274, 11278,
6935 11282, 11286, 11290, 11294, 11298, 11302, 11306, 11310,
6936 11314, 11318, 11322, 11326, 11330, 11334, 11338, 11342,
6937 11346, 11350, 11354, 11358, 11362, 11366, 11370, 11374,
6938 11378, 11382, 11386, 11390, 11394, 11398, 11402, 11406,
6939};
6940
6941static const Q_UINT16 di_FA[] = {
6942 11410, 11414, 11418, 11422, 11426, 11430, 11434, 11438,
6943 11442, 11446, 11450, 11454, 11458, 11462, 0, 0,
6944 11466, 0, 11470, 0, 0, 11474, 11478, 11482,
6945 11486, 11490, 11494, 11498, 11502, 11506, 11510, 0,
6946 11514, 0, 11518, 0, 0, 11522, 11526, 0,
6947 0, 0, 11530, 11534, 11538, 11542, 0, 0,
6948 0, 0, 0, 0, 0, 0, 0, 0,
6949 0, 0, 0, 0, 0, 0, 0, 0,
6950 0, 0, 0, 0, 0, 0, 0, 0,
6951 0, 0, 0, 0, 0, 0, 0, 0,
6952 0, 0, 0, 0, 0, 0, 0, 0,
6953 0, 0, 0, 0, 0, 0, 0, 0,
6954 0, 0, 0, 0, 0, 0, 0, 0,
6955 0, 0, 0, 0, 0, 0, 0, 0,
6956 0, 0, 0, 0, 0, 0, 0, 0,
6957 0, 0, 0, 0, 0, 0, 0, 0,
6958 0, 0, 0, 0, 0, 0, 0, 0,
6959 0, 0, 0, 0, 0, 0, 0, 0,
6960 0, 0, 0, 0, 0, 0, 0, 0,
6961 0, 0, 0, 0, 0, 0, 0, 0,
6962 0, 0, 0, 0, 0, 0, 0, 0,
6963 0, 0, 0, 0, 0, 0, 0, 0,
6964 0, 0, 0, 0, 0, 0, 0, 0,
6965 0, 0, 0, 0, 0, 0, 0, 0,
6966 0, 0, 0, 0, 0, 0, 0, 0,
6967 0, 0, 0, 0, 0, 0, 0, 0,
6968 0, 0, 0, 0, 0, 0, 0, 0,
6969 0, 0, 0, 0, 0, 0, 0, 0,
6970 0, 0, 0, 0, 0, 0, 0, 0,
6971 0, 0, 0, 0, 0, 0, 0, 0,
6972 0, 0, 0, 0, 0, 0, 0, 0,
6973 0, 0, 0, 0, 0, 0, 0, 0,
6974};
6975
6976static const Q_UINT16 di_FB[] = {
6977 11546, 11551, 11556, 11561, 11567, 11573, 11578, 0,
6978 0, 0, 0, 0, 0, 0, 0, 0,
6979 0, 0, 0, 11583, 11588, 11593, 11598, 11603,
6980 0, 0, 0, 0, 0, 11608, 0, 11613,
6981 11618, 11622, 11626, 11630, 11634, 11638, 11642, 11646,
6982 11650, 11654, 11658, 11663, 11668, 11673, 11678, 11683,
6983 11688, 11693, 11698, 11703, 11708, 11713, 11718, 0,
6984 11723, 11728, 11733, 11738, 11743, 0, 11748, 0,
6985 11753, 11758, 0, 11763, 11768, 0, 11773, 11778,
6986 11783, 11788, 11793, 11798, 11803, 11808, 11813, 11818,
6987 11823, 11827, 11831, 11835, 11839, 11843, 11847, 11851,
6988 11855, 11859, 11863, 11867, 11871, 11875, 11879, 11883,
6989 11887, 11891, 11895, 11899, 11903, 11907, 11911, 11915,
6990 11919, 11923, 11927, 11931, 11935, 11939, 11943, 11947,
6991 11951, 11955, 11959, 11963, 11967, 11971, 11975, 11979,
6992 11983, 11987, 11991, 11995, 11999, 12003, 12007, 12011,
6993 12015, 12019, 12023, 12027, 12031, 12035, 12039, 12043,
6994 12047, 12051, 12055, 12059, 12063, 12067, 12071, 12075,
6995 12079, 12083, 12087, 12091, 12095, 12099, 12103, 12107,
6996 12111, 12115, 12119, 12123, 12127, 12131, 12135, 12139,
6997 12143, 12147, 12151, 12155, 12159, 12163, 12167, 12171,
6998 12175, 12179, 12183, 12187, 12191, 12195, 12199, 12203,
6999 12207, 12211, 0, 0, 0, 0, 0, 0,
7000 0, 0, 0, 0, 0, 0, 0, 0,
7001 0, 0, 0, 0, 0, 0, 0, 0,
7002 0, 0, 0, 0, 0, 0, 0, 0,
7003 0, 0, 0, 12215, 12219, 12223, 12227, 12231,
7004 12235, 12239, 12243, 12247, 12251, 12255, 12259, 12263,
7005 12267, 12271, 12275, 12279, 12283, 12287, 12291, 12295,
7006 12299, 12303, 12307, 12312, 12317, 12322, 12327, 12332,
7007 12337, 12342, 12347, 12352, 12357, 12362, 12367, 12372,
7008 12377, 12382, 12387, 12392, 12397, 12401, 12405, 12409,
7009};
7010
7011static const Q_UINT16 di_FC[] = {
7012 12413, 12418, 12423, 12428, 12433, 12438, 12443, 12448,
7013 12453, 12458, 12463, 12468, 12473, 12478, 12483, 12488,
7014 12493, 12498, 12503, 12508, 12513, 12518, 12523, 12528,
7015 12533, 12538, 12543, 12548, 12553, 12558, 12563, 12568,
7016 12573, 12578, 12583, 12588, 12593, 12598, 12603, 12608,
7017 12613, 12618, 12623, 12628, 12633, 12638, 12643, 12648,
7018 12653, 12658, 12663, 12668, 12673, 12678, 12683, 12688,
7019 12693, 12698, 12703, 12708, 12713, 12718, 12723, 12728,
7020 12733, 12738, 12743, 12748, 12753, 12758, 12763, 12768,
7021 12773, 12778, 12783, 12788, 12793, 12798, 12803, 12808,
7022 12813, 12818, 12823, 12828, 12833, 12838, 12843, 12848,
7023 12853, 12858, 12863, 12868, 12873, 12878, 12883, 12889,
7024 12895, 12901, 12907, 12913, 12919, 12924, 12929, 12934,
7025 12939, 12944, 12949, 12954, 12959, 12964, 12969, 12974,
7026 12979, 12984, 12989, 12994, 12999, 13004, 13009, 13014,
7027 13019, 13024, 13029, 13034, 13039, 13044, 13049, 13054,
7028 13059, 13064, 13069, 13074, 13079, 13084, 13089, 13094,
7029 13099, 13104, 13109, 13114, 13119, 13124, 13129, 13134,
7030 13139, 13144, 13149, 13154, 13159, 13164, 13169, 13174,
7031 13179, 13184, 13189, 13194, 13199, 13204, 13209, 13214,
7032 13219, 13224, 13229, 13234, 13239, 13244, 13249, 13254,
7033 13259, 13264, 13269, 13274, 13279, 13284, 13289, 13294,
7034 13299, 13304, 13309, 13314, 13319, 13324, 13329, 13334,
7035 13339, 13344, 13349, 13354, 13359, 13364, 13369, 13374,
7036 13379, 13384, 13389, 13394, 13399, 13404, 13409, 13414,
7037 13419, 13424, 13429, 13434, 13439, 13444, 13449, 13454,
7038 13459, 13464, 13469, 13474, 13479, 13484, 13489, 13494,
7039 13499, 13504, 13509, 13514, 13519, 13524, 13529, 13534,
7040 13539, 13544, 13549, 13554, 13559, 13564, 13569, 13574,
7041 13579, 13584, 13589, 13594, 13599, 13604, 13609, 13614,
7042 13619, 13624, 13629, 13635, 13641, 13647, 13652, 13657,
7043 13662, 13667, 13672, 13677, 13682, 13687, 13692, 13697,
7044};
7045
7046static const Q_UINT16 di_FD[] = {
7047 13702, 13707, 13712, 13717, 13722, 13727, 13732, 13737,
7048 13742, 13747, 13752, 13757, 13762, 13767, 13772, 13777,
7049 13782, 13787, 13792, 13797, 13802, 13807, 13812, 13817,
7050 13822, 13827, 13832, 13837, 13842, 13847, 13852, 13857,
7051 13862, 13867, 13872, 13877, 13882, 13887, 13892, 13897,
7052 13902, 13907, 13912, 13917, 13922, 13927, 13932, 13937,
7053 13942, 13947, 13952, 13957, 13962, 13967, 13972, 13977,
7054 13982, 13987, 13992, 13997, 14002, 14007, 0, 0,
7055 0, 0, 0, 0, 0, 0, 0, 0,
7056 0, 0, 0, 0, 0, 0, 0, 0,
7057 14012, 14018, 14024, 14030, 14036, 14042, 14048, 14054,
7058 14060, 14066, 14072, 14078, 14084, 14090, 14096, 14102,
7059 14108, 14114, 14120, 14126, 14132, 14138, 14144, 14150,
7060 14156, 14162, 14168, 14174, 14180, 14186, 14192, 14198,
7061 14204, 14210, 14216, 14222, 14228, 14234, 14240, 14246,
7062 14252, 14258, 14264, 14270, 14276, 14282, 14288, 14294,
7063 14300, 14306, 14312, 14318, 14324, 14330, 14336, 14342,
7064 14348, 14354, 14360, 14366, 14372, 14378, 14384, 14390,
7065 0, 0, 14396, 14402, 14408, 14414, 14420, 14426,
7066 14432, 14438, 14444, 14450, 14456, 14462, 14468, 14474,
7067 14480, 14486, 14492, 14498, 14504, 14510, 14516, 14522,
7068 14528, 14534, 14540, 14546, 14552, 14558, 14564, 14570,
7069 14576, 14582, 14588, 14594, 14600, 14606, 14612, 14618,
7070 14624, 14630, 14636, 14642, 14648, 14654, 14660, 14666,
7071 14672, 14678, 14684, 14690, 14696, 14702, 14708, 14714,
7072 0, 0, 0, 0, 0, 0, 0, 0,
7073 0, 0, 0, 0, 0, 0, 0, 0,
7074 0, 0, 0, 0, 0, 0, 0, 0,
7075 0, 0, 0, 0, 0, 0, 0, 0,
7076 0, 0, 0, 0, 0, 0, 0, 0,
7077 14720, 14726, 14732, 14739, 14746, 14753, 14760, 14767,
7078 14774, 14781, 14787, 14808, 0, 0, 0, 0,
7079};
7080
7081static const Q_UINT16 di_FE[] = {
7082 0, 0, 0, 0, 0, 0, 0, 0,
7083 0, 0, 0, 0, 0, 0, 0, 0,
7084 0, 0, 0, 0, 0, 0, 0, 0,
7085 0, 0, 0, 0, 0, 0, 0, 0,
7086 0, 0, 0, 0, 0, 0, 0, 0,
7087 0, 0, 0, 0, 0, 0, 0, 0,
7088 14819, 14823, 14827, 14831, 14835, 14839, 14843, 14847,
7089 14851, 14855, 14859, 14863, 14867, 14871, 14875, 14879,
7090 14883, 14887, 14891, 14895, 14899, 0, 0, 0,
7091 0, 14903, 14907, 14911, 14915, 14919, 14923, 14927,
7092 14931, 14935, 14939, 0, 14943, 14947, 14951, 14955,
7093 14959, 14963, 14967, 14971, 14975, 14979, 14983, 14987,
7094 14991, 14995, 14999, 15003, 15007, 15011, 15015, 0,
7095 15019, 15023, 15027, 15031, 0, 0, 0, 0,
7096 15035, 15040, 15045, 0, 15050, 0, 15055, 15060,
7097 15065, 15070, 15075, 15080, 15085, 15090, 15095, 15100,
7098 15105, 15109, 15113, 15117, 15121, 15125, 15129, 15133,
7099 15137, 15141, 15145, 15149, 15153, 15157, 15161, 15165,
7100 15169, 15173, 15177, 15181, 15185, 15189, 15193, 15197,
7101 15201, 15205, 15209, 15213, 15217, 15221, 15225, 15229,
7102 15233, 15237, 15241, 15245, 15249, 15253, 15257, 15261,
7103 15265, 15269, 15273, 15277, 15281, 15285, 15289, 15293,
7104 15297, 15301, 15305, 15309, 15313, 15317, 15321, 15325,
7105 15329, 15333, 15337, 15341, 15345, 15349, 15353, 15357,
7106 15361, 15365, 15369, 15373, 15377, 15381, 15385, 15389,
7107 15393, 15397, 15401, 15405, 15409, 15413, 15417, 15421,
7108 15425, 15429, 15433, 15437, 15441, 15445, 15449, 15453,
7109 15457, 15461, 15465, 15469, 15473, 15477, 15481, 15485,
7110 15489, 15493, 15497, 15501, 15505, 15509, 15513, 15517,
7111 15521, 15525, 15529, 15533, 15537, 15541, 15545, 15549,
7112 15553, 15557, 15561, 15565, 15569, 15573, 15578, 15583,
7113 15588, 15593, 15598, 15603, 15608, 0, 0, 0,
7114};
7115
7116static const Q_UINT16 di_FF[] = {
7117 0, 15613, 15617, 15621, 15625, 15629, 15633, 15637,
7118 15641, 15645, 15649, 15653, 15657, 15661, 15665, 15669,
7119 15673, 15677, 15681, 15685, 15689, 15693, 15697, 15701,
7120 15705, 15709, 15713, 15717, 15721, 15725, 15729, 15733,
7121 15737, 15741, 15745, 15749, 15753, 15757, 15761, 15765,
7122 15769, 15773, 15777, 15781, 15785, 15789, 15793, 15797,
7123 15801, 15805, 15809, 15813, 15817, 15821, 15825, 15829,
7124 15833, 15837, 15841, 15845, 15849, 15853, 15857, 15861,
7125 15865, 15869, 15873, 15877, 15881, 15885, 15889, 15893,
7126 15897, 15901, 15905, 15909, 15913, 15917, 15921, 15925,
7127 15929, 15933, 15937, 15941, 15945, 15949, 15953, 15957,
7128 15961, 15965, 15969, 15973, 15977, 15981, 15985, 0,
7129 0, 15989, 15993, 15997, 16001, 16005, 16009, 16013,
7130 16017, 16021, 16025, 16029, 16033, 16037, 16041, 16045,
7131 16049, 16053, 16057, 16061, 16065, 16069, 16073, 16077,
7132 16081, 16085, 16089, 16093, 16097, 16101, 16105, 16109,
7133 16113, 16117, 16121, 16125, 16129, 16133, 16137, 16141,
7134 16145, 16149, 16153, 16157, 16161, 16165, 16169, 16173,
7135 16177, 16181, 16185, 16189, 16193, 16197, 16201, 16205,
7136 16209, 16213, 16217, 16221, 16225, 16229, 16233, 16237,
7137 16241, 16245, 16249, 16253, 16257, 16261, 16265, 16269,
7138 16273, 16277, 16281, 16285, 16289, 16293, 16297, 16301,
7139 16305, 16309, 16313, 16317, 16321, 16325, 16329, 16333,
7140 16337, 16341, 16345, 16349, 16353, 16357, 16361, 0,
7141 0, 0, 16365, 16369, 16373, 16377, 16381, 16385,
7142 0, 0, 16389, 16393, 16397, 16401, 16405, 16409,
7143 0, 0, 16413, 16417, 16421, 16425, 16429, 16433,
7144 0, 0, 16437, 16441, 16445, 0, 0, 0,
7145 16449, 16453, 16457, 16461, 16465, 16469, 16473, 0,
7146 16477, 16481, 16485, 16489, 16493, 16497, 16501, 0,
7147 0, 0, 0, 0, 0, 0, 0, 0,
7148 0, 0, 0, 0, 0, 0, 0, 0,
7149};
7150
7151static const Q_UINT16 * const decomposition_info[256] = {
7152 di_00, di_01, di_02, di_03, di_04, di_05, di_06, di_07,
7153 di_07, di_09, di_0A, di_0B, di_0C, di_0D, di_0E, di_0F,
7154 di_10, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7155 di_07, di_07, di_07, di_07, di_07, di_07, di_1E, di_1F,
7156 di_20, di_21, di_22, di_23, di_24, di_07, di_07, di_07,
7157 di_07, di_07, di_07, di_07, di_07, di_07, di_2E, di_2F,
7158 di_30, di_31, di_32, di_33, di_07, di_07, di_07, di_07,
7159 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7160 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7161 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7162 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7163 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7164 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7165 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7166 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7167 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7168 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7169 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7170 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7171 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7172 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7173 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7174 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7175 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7176 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7177 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7178 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7179 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7180 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7181 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7182 di_07, di_07, di_07, di_07, di_07, di_07, di_07, di_07,
7183 di_07, di_F9, di_FA, di_FB, di_FC, di_FD, di_FE, di_FF,
7184};
7185// 68080 bytes
7186
7187static const Q_UINT16 ligature_map [] = {
7188 0,
7189 12883, 12889, 12895, 12901, 12907, 12913, 15035, 15045, 15050, 15055, 15065, 15075, 15085, 15095, 0,
7190 5503, 0,
7191 5488, 0,
7192 5508, 0,
7193 67, 72, 77, 82, 87, 92, 332, 342, 352, 966, 1196, 1206, 1346, 2357, 3137, 3147, 0,
7194 2367, 2377, 2387, 0,
7195 97, 362, 372, 382, 392, 0,
7196 402, 2407, 2417, 2427, 2437, 2447, 0,
7197 102, 107, 112, 117, 412, 422, 432, 442, 452, 1216, 1226, 1356, 2477, 2487, 3257, 3267, 3277, 0,
7198 2507, 0,
7199 462, 472, 482, 492, 1076, 1146, 2517, 0,
7200 502, 1336, 2527, 2537, 2547, 2557, 2567, 0,
7201 122, 127, 132, 137, 512, 522, 532, 542, 552, 976, 1236, 1246, 2577, 3337, 3347, 0,
7202 567, 0,
7203 577, 1086, 2597, 2607, 2617, 0,
7204 587, 597, 607, 2627, 2647, 2657, 0,
7205 2667, 2677, 2687, 0,
7206 142, 627, 637, 647, 1156, 2697, 2707, 2717, 2727, 0,
7207 147, 152, 157, 162, 167, 662, 672, 682, 901, 986, 1096, 1256, 1266, 1386, 3357, 3367, 0,
7208 2777, 2787, 0,
7209 692, 702, 712, 1276, 1286, 2797, 2807, 2827, 0,
7210 722, 732, 742, 752, 1316, 2837, 2847, 0,
7211 762, 772, 1326, 2887, 2897, 2907, 2917, 0,
7212 172, 177, 182, 187, 782, 792, 802, 812, 822, 832, 911, 996, 1296, 1306, 2927, 2937, 2947, 3477, 3487, 0,
7213 2977, 2987, 0,
7214 842, 2997, 3007, 3017, 3027, 3037, 0,
7215 3047, 3057, 0,
7216 192, 852, 862, 1406, 3067, 3547, 3557, 3567, 3577, 0,
7217 867, 877, 887, 3077, 3087, 3097, 0,
7218 197, 202, 207, 212, 217, 222, 337, 347, 357, 971, 1201, 1211, 1351, 2362, 3142, 3152, 0,
7219 2372, 2382, 2392, 0,
7220 227, 367, 377, 387, 397, 0,
7221 407, 2412, 2422, 2432, 2442, 2452, 0,
7222 232, 237, 242, 247, 417, 427, 437, 447, 457, 1221, 1231, 1361, 2482, 2492, 3262, 3272, 3282, 0,
7223 2512, 0,
7224 467, 477, 487, 497, 1081, 1151, 2522, 0,
7225 507, 1341, 2532, 2542, 2552, 2562, 2572, 3107, 0,
7226 252, 257, 262, 267, 517, 527, 537, 547, 981, 1241, 1251, 2582, 3342, 3352, 0,
7227 572, 1126, 0,
7228 582, 1091, 2602, 2612, 2622, 0,
7229 592, 602, 612, 2632, 2652, 2662, 0,
7230 2672, 2682, 2692, 0,
7231 272, 632, 642, 652, 1161, 2702, 2712, 2722, 2732, 0,
7232 277, 282, 287, 292, 297, 667, 677, 687, 906, 991, 1101, 1261, 1271, 1391, 3362, 3372, 0,
7233 2782, 2792, 0,
7234 697, 707, 717, 1281, 1291, 2802, 2812, 2832, 0,
7235 727, 737, 747, 757, 1321, 2842, 2852, 0,
7236 767, 777, 1331, 2892, 2902, 2912, 2922, 3112, 0,
7237 302, 307, 312, 317, 787, 797, 807, 817, 827, 837, 916, 1001, 1301, 1311, 2932, 2942, 2952, 3482, 3492, 0,
7238 2982, 2992, 0,
7239 847, 3002, 3012, 3022, 3032, 3042, 3117, 0,
7240 3052, 3062, 0,
7241 322, 327, 857, 1411, 3072, 3122, 3552, 3562, 3572, 3582, 0,
7242 872, 882, 892, 3082, 3092, 3102, 0,
7243 1537, 4468, 4662, 0,
7244 3157, 3167, 3177, 3187, 0,
7245 1046, 0,
7246 1166, 0,
7247 1066, 1176, 0,
7248 2397, 0,
7249 3287, 3297, 3307, 3317, 0,
7250 2587, 0,
7251 3377, 3387, 3397, 3407, 0,
7252 1376, 2737, 2747, 0,
7253 1366, 0,
7254 1186, 0,
7255 1006, 1016, 1026, 1036, 0,
7256 3162, 3172, 3182, 3192, 0,
7257 1051, 0,
7258 1171, 0,
7259 1071, 1181, 0,
7260 2402, 0,
7261 3292, 3302, 3312, 3322, 0,
7262 2592, 0,
7263 3382, 3392, 3402, 3412, 0,
7264 1381, 2742, 2752, 0,
7265 1371, 0,
7266 1191, 0,
7267 1011, 1021, 1031, 1041, 0,
7268 3207, 3217, 3227, 3237, 0,
7269 3212, 3222, 3232, 3242, 0,
7270 2457, 2467, 0,
7271 2462, 2472, 0,
7272 2757, 2767, 0,
7273 2762, 2772, 0,
7274 2857, 0,
7275 2862, 0,
7276 2867, 0,
7277 2872, 0,
7278 2957, 0,
7279 2962, 0,
7280 2967, 0,
7281 2972, 0,
7282 3132, 0,
7283 3427, 3437, 3447, 3457, 3467, 0,
7284 3432, 3442, 3452, 3462, 3472, 0,
7285 3497, 3507, 3517, 3527, 3537, 0,
7286 3502, 3512, 3522, 3532, 3542, 0,
7287 1116, 0,
7288 1106, 0,
7289 1111, 0,
7290 1056, 0,
7291 1061, 0,
7292 2497, 0,
7293 2502, 0,
7294 1396, 0,
7295 1401, 0,
7296 1121, 0,
7297 1514, 0,
7298 1542, 3627, 3632, 4425, 4430, 4435, 4444, 0,
7299 1551, 3697, 3702, 4498, 0,
7300 1556, 3767, 3772, 4507, 4516, 0,
7301 1561, 1586, 3847, 3852, 4565, 4570, 4575, 0,
7302 1566, 3917, 3922, 4700, 0,
7303 4657, 0,
7304 1571, 1591, 3987, 4638, 4643, 4648, 0,
7305 1576, 4047, 4052, 4709, 4718, 0,
7306 4410, 0,
7307 4483, 0,
7308 1596, 3587, 3592, 4087, 4390, 4395, 4405, 4415, 0,
7309 1601, 3667, 3672, 4096, 0,
7310 1606, 3727, 3732, 4105, 4478, 4488, 0,
7311 1611, 1621, 3807, 3812, 4114, 4536, 4541, 4555, 0,
7312 1631, 3887, 3892, 4123, 0,
7313 4618, 4623, 0,
7314 1626, 1636, 3947, 3952, 4132, 4599, 4604, 4628, 0,
7315 1641, 4007, 4012, 4141, 4680, 4690, 0,
7316 1581, 4546, 4560, 0,
7317 1616, 4609, 4633, 0,
7318 4685, 0,
7319 1658, 1663, 0,
7320 1703, 0,
7321 1788, 1798, 0,
7322 1698, 0,
7323 1688, 1693, 1808, 0,
7324 1778, 1828, 0,
7325 1838, 0,
7326 1713, 1723, 1848, 1858, 0,
7327 1708, 0,
7328 1868, 0,
7329 1718, 1898, 1908, 1918, 0,
7330 1928, 0,
7331 1938, 0,
7332 1888, 0,
7333 1793, 1803, 0,
7334 1743, 0,
7335 1733, 1738, 1813, 0,
7336 1783, 1833, 0,
7337 1843, 0,
7338 1728, 1758, 1853, 1863, 0,
7339 1753, 0,
7340 1873, 0,
7341 1763, 1903, 1913, 1923, 0,
7342 1933, 0,
7343 1943, 0,
7344 1893, 0,
7345 1748, 0,
7346 1768, 0,
7347 1773, 0,
7348 1818, 0,
7349 1823, 0,
7350 1878, 0,
7351 1883, 0,
7352 11678, 11683, 11688, 0,
7353 11693, 11803, 0,
7354 11698, 0,
7355 11703, 0,
7356 11708, 0,
7357 11713, 11798, 0,
7358 11718, 0,
7359 11723, 0,
7360 11608, 11728, 0,
7361 11733, 0,
7362 11738, 11808, 0,
7363 11743, 0,
7364 11748, 0,
7365 11753, 0,
7366 11758, 0,
7367 11763, 0,
7368 11768, 11813, 0,
7369 11773, 0,
7370 11778, 0,
7371 11783, 0,
7372 11658, 11663, 11788, 0,
7373 11793, 0,
7374 11613, 0,
7375 15105, 0,
7376 15109, 15113, 0,
7377 15117, 15121, 0,
7378 15125, 15129, 0,
7379 15133, 15137, 0,
7380 12307, 12312, 12317, 12322, 12327, 12332, 12337, 12342, 12347, 12352, 12357, 12362, 12367, 12372, 12377, 12382, 12387, 12392, 12413, 12418, 12423, 12428, 12433, 12919, 12924, 12929, 12934, 12939, 12944, 13174, 13179, 13184, 13189, 13194, 13534, 13539, 15141, 15145, 15149, 15153, 0,
7381 14732, 14739, 1958, 1968, 14007, 14002, 1953, 15157, 15161, 0,
7382 14468, 14684, 12448, 12453, 12458, 12463, 12949, 12954, 12959, 12964, 12969, 12974, 13199, 13204, 13209, 13214, 13219, 13544, 13549, 12438, 12443, 15165, 15169, 15173, 15177, 0,
7383 15181, 15185, 0,
7384 14012, 14018, 14024, 14030, 14036, 14042, 14048, 14054, 14474, 14480, 14486, 14492, 14498, 14504, 13229, 13234, 13239, 13244, 13559, 13554, 12468, 12473, 12478, 12483, 12488, 12493, 12979, 12984, 12989, 12994, 12999, 13004, 13224, 15189, 15193, 15197, 15201, 0,
7385 12498, 12503, 12508, 12513, 13009, 13014, 13019, 13024, 13029, 13034, 13249, 13564, 13569, 15205, 15209, 15213, 15217, 0,
7386 14808, 14660, 14060, 14066, 14510, 14516, 14522, 12518, 12523, 13254, 13259, 13707, 13712, 13847, 13852, 15221, 15225, 15229, 15233, 0,
7387 14072, 14078, 14666, 13264, 13269, 13697, 13702, 13842, 13837, 12528, 12533, 15237, 15241, 15245, 15249, 0,
7388 12538, 12543, 12548, 13274, 13279, 13717, 13722, 13857, 13862, 15253, 15257, 15261, 15265, 0,
7389 15269, 15273, 0,
7390 12868, 15277, 15281, 0,
7391 14760, 12873, 15285, 15289, 0,
7392 15293, 15297, 0,
7393 14084, 14090, 14096, 14102, 14108, 14114, 14120, 14126, 14528, 14708, 13677, 13682, 13772, 13817, 13822, 13912, 13947, 13962, 13967, 13972, 12553, 12558, 12563, 12568, 13284, 13289, 13294, 13299, 13574, 13579, 15301, 15305, 15309, 15313, 0,
7394 14150, 14156, 14162, 14168, 14174, 14180, 14186, 14540, 13767, 13827, 13832, 13887, 13892, 13897, 13902, 13907, 13927, 13932, 13937, 13942, 13952, 13977, 13982, 13987, 13584, 13589, 13687, 13692, 13747, 13752, 13757, 13762, 15317, 15321, 15325, 15329, 0,
7395 14787, 14753, 14781, 14138, 14132, 14144, 14534, 14702, 14720, 12573, 12578, 13304, 13309, 13314, 13727, 13732, 13777, 13872, 13917, 13867, 15333, 15337, 15341, 15345, 0,
7396 14192, 14198, 14204, 14546, 13319, 13324, 13329, 13334, 13737, 13742, 13782, 13877, 13882, 13922, 12583, 12588, 12593, 12598, 15349, 15353, 15357, 15361, 0,
7397 14210, 14216, 14222, 14228, 13647, 13652, 13787, 13792, 13992, 13957, 12603, 12608, 13339, 15365, 15369, 15373, 15377, 0,
7398 12613, 13344, 13997, 15381, 15385, 15389, 15393, 0,
7399 14767, 14696, 14234, 14240, 14246, 14252, 14612, 12618, 12623, 13349, 13354, 13657, 13662, 13797, 13802, 15397, 15401, 15405, 15409, 0,
7400 14258, 14264, 14270, 13359, 13364, 13667, 13672, 13812, 13807, 12628, 12633, 15413, 15417, 15421, 15425, 0,
7401 13629, 13635, 13641, 15040, 15060, 15070, 15080, 15090, 15100, 0,
7402 14276, 14282, 14678, 12653, 12658, 12663, 13039, 13044, 13369, 13374, 13379, 13384, 12638, 12643, 12648, 15429, 15433, 15437, 15441, 0,
7403 14600, 14726, 14294, 14288, 14588, 12668, 12673, 12678, 12683, 13049, 13054, 13389, 13394, 15445, 15449, 15453, 15457, 0,
7404 14618, 14642, 14690, 12703, 12708, 12713, 12718, 12723, 13059, 13064, 13069, 13074, 13079, 13399, 13404, 13409, 13414, 13419, 13594, 13599, 12688, 12693, 12698, 15461, 15465, 15469, 15473, 0,
7405 14648, 14300, 14306, 14312, 14318, 14324, 14330, 14336, 14342, 14348, 14552, 14558, 14606, 14636, 12728, 12733, 12738, 12743, 12748, 12753, 13084, 13089, 13094, 13424, 13429, 13434, 13439, 13444, 13604, 15573, 15578, 15583, 15588, 15593, 15598, 15603, 15608, 15477, 15481, 15485, 15489, 0,
7406 14746, 14354, 14360, 14366, 14372, 14378, 14384, 14390, 14396, 14582, 14630, 14672, 12758, 12763, 12768, 12773, 12778, 12783, 13099, 13104, 13449, 13454, 13459, 13464, 15493, 15497, 15501, 15505, 0,
7407 14414, 14420, 14426, 14432, 14438, 14444, 14450, 14594, 14624, 14654, 14714, 13134, 13469, 13474, 13479, 13484, 13489, 13609, 13614, 12788, 12793, 12798, 12803, 12808, 12813, 13109, 13114, 13119, 13124, 13129, 15509, 15513, 15517, 15521, 0,
7408 14402, 14408, 12823, 12828, 12833, 13494, 13504, 13499, 12818, 15525, 15529, 15533, 15537, 0,
7409 14774, 1963, 15541, 15545, 0,
7410 12878, 13139, 12299, 12303, 15549, 15553, 0,
7411 14456, 14462, 14564, 14570, 14576, 12858, 12863, 13144, 13149, 13154, 13159, 13164, 13169, 13509, 13514, 13519, 13524, 13529, 13619, 13624, 1973, 12838, 12843, 12848, 12853, 15557, 15561, 15565, 15569, 0,
7412 11823, 11827, 0,
7413 12255, 0,
7414 11911, 11915, 11919, 11923, 0,
7415 11879, 11883, 11887, 11891, 0,
7416 11831, 11835, 11839, 11843, 0,
7417 11847, 11851, 11855, 11859, 0,
7418 11895, 11899, 11903, 11907, 0,
7419 11863, 11867, 11871, 11875, 0,
7420 11975, 11979, 11983, 11987, 0,
7421 11959, 11963, 11967, 11971, 0,
7422 11991, 11995, 11999, 12003, 0,
7423 12007, 12011, 12015, 12019, 0,
7424 12047, 12051, 0,
7425 12031, 12035, 0,
7426 12023, 12027, 0,
7427 12039, 12043, 0,
7428 12063, 12067, 0,
7429 12055, 12059, 0,
7430 11927, 11931, 11935, 11939, 0,
7431 11943, 11947, 11951, 11955, 0,
7432 12071, 12075, 12079, 12083, 0,
7433 12215, 12219, 12223, 12227, 0,
7434 12087, 12091, 12095, 12099, 0,
7435 12119, 12123, 12127, 12131, 0,
7436 12103, 12107, 12111, 12115, 0,
7437 12135, 12139, 0,
7438 12143, 12147, 12151, 12155, 0,
7439 12183, 12187, 12191, 12195, 0,
7440 12159, 12163, 0,
7441 2003, 12167, 12171, 12175, 12179, 0,
7442 12267, 12271, 0,
7443 12239, 12243, 0,
7444 12231, 12235, 0,
7445 12247, 12251, 0,
7446 12275, 12279, 0,
7447 12259, 12263, 0,
7448 12397, 12401, 12405, 12409, 0,
7449 12283, 12287, 12291, 12295, 0,
7450 2008, 12199, 12203, 0,
7451 12207, 12211, 0,
7452 1998, 0,
7453 2028, 0,
7454 2033, 0,
7455 2038, 0,
7456 2043, 0,
7457 2048, 0,
7458 2053, 0,
7459 2013, 0,
7460 2058, 0,
7461 2063, 0,
7462 2018, 0,
7463 2023, 0,
7464 2078, 0,
7465 2083, 0,
7466 2088, 0,
7467 2068, 2073, 0,
7468 2103, 0,
7469 2108, 0,
7470 2113, 0,
7471 2118, 0,
7472 2093, 0,
7473 2098, 0,
7474 2138, 0,
7475 2143, 0,
7476 2123, 2128, 2133, 0,
7477 2148, 0,
7478 2153, 2163, 0,
7479 2158, 0,
7480 2168, 0,
7481 2173, 0,
7482 2178, 2183, 2188, 0,
7483 2193, 0,
7484 2198, 2208, 0,
7485 2203, 0,
7486 2213, 2218, 2228, 0,
7487 2223, 0,
7488 2282, 0,
7489 2257, 0,
7490 2262, 0,
7491 2267, 0,
7492 2272, 0,
7493 2277, 0,
7494 2287, 2292, 2317, 0,
7495 2347, 0,
7496 2322, 0,
7497 2327, 0,
7498 2332, 0,
7499 2337, 0,
7500 2342, 0,
7501 2297, 0,
7502 2307, 0,
7503 2352, 0,
7504 2637, 0,
7505 2642, 0,
7506 2817, 0,
7507 2822, 0,
7508 2877, 0,
7509 2882, 0,
7510 3197, 3247, 0,
7511 3202, 3252, 0,
7512 3327, 0,
7513 3332, 0,
7514 3417, 0,
7515 3422, 0,
7516 3597, 3607, 3617, 4150, 0,
7517 3602, 3612, 3622, 4155, 0,
7518 4160, 0,
7519 4165, 0,
7520 4170, 0,
7521 4175, 0,
7522 4180, 0,
7523 4185, 0,
7524 3637, 3647, 3657, 4190, 0,
7525 3642, 3652, 3662, 4195, 0,
7526 4200, 0,
7527 4205, 0,
7528 4210, 0,
7529 4215, 0,
7530 4220, 0,
7531 4225, 0,
7532 3677, 3687, 0,
7533 3682, 3692, 0,
7534 3707, 3717, 0,
7535 3712, 3722, 0,
7536 3737, 3747, 3757, 4230, 0,
7537 3742, 3752, 3762, 4235, 0,
7538 4240, 0,
7539 4245, 0,
7540 4250, 0,
7541 4255, 0,
7542 4260, 0,
7543 4265, 0,
7544 3777, 3787, 3797, 4270, 0,
7545 3782, 3792, 3802, 4275, 0,
7546 4280, 0,
7547 4285, 0,
7548 4290, 0,
7549 4295, 0,
7550 4300, 0,
7551 4305, 0,
7552 3817, 3827, 3837, 0,
7553 3822, 3832, 3842, 0,
7554 3857, 3867, 3877, 0,
7555 3862, 3872, 3882, 0,
7556 3897, 3907, 0,
7557 3902, 3912, 0,
7558 3927, 3937, 0,
7559 3932, 3942, 0,
7560 3957, 3967, 3977, 0,
7561 3962, 3972, 3982, 0,
7562 3992, 3997, 4002, 0,
7563 4017, 4027, 4037, 4310, 0,
7564 4022, 4032, 4042, 4315, 0,
7565 4320, 0,
7566 4325, 0,
7567 4330, 0,
7568 4335, 0,
7569 4340, 0,
7570 4345, 0,
7571 4057, 4067, 4077, 4350, 0,
7572 4062, 4072, 4082, 4355, 0,
7573 4360, 0,
7574 4365, 0,
7575 4370, 0,
7576 4375, 0,
7577 4380, 0,
7578 4385, 0,
7579 4400, 0,
7580 4473, 0,
7581 4675, 0,
7582 4420, 0,
7583 4521, 4526, 4531, 0,
7584 4493, 0,
7585 4695, 0,
7586 4584, 4589, 4594, 0,
7587 5391, 0,
7588 5396, 0,
7589 5401, 0,
7590 5406, 0,
7591 5416, 0,
7592 5411, 0,
7593 5421, 0,
7594 5426, 0,
7595 5431, 0,
7596 5436, 0,
7597 5441, 0,
7598 5468, 0,
7599 5473, 0,
7600 5478, 0,
7601 5483, 0,
7602 5498, 0,
7603 5493, 0,
7604 5513, 0,
7605 5518, 0,
7606 5523, 0,
7607 5528, 0,
7608 5533, 0,
7609 5538, 0,
7610 5543, 0,
7611 5548, 0,
7612 5593, 0,
7613 5598, 0,
7614 5553, 0,
7615 5558, 0,
7616 5563, 0,
7617 5568, 0,
7618 5603, 0,
7619 5608, 0,
7620 5573, 0,
7621 5578, 0,
7622 5583, 0,
7623 5588, 0,
7624 5613, 0,
7625 5618, 0,
7626 5623, 0,
7627 5628, 0,
7628 7351, 0,
7629 7226, 0,
7630 7231, 0,
7631 7236, 0,
7632 7241, 0,
7633 7246, 0,
7634 7251, 0,
7635 7256, 0,
7636 7261, 0,
7637 7266, 0,
7638 7271, 0,
7639 7276, 0,
7640 7281, 0,
7641 7286, 0,
7642 7291, 0,
7643 7296, 0,
7644 7301, 7306, 0,
7645 7311, 7316, 0,
7646 7321, 7326, 0,
7647 7331, 7336, 0,
7648 7341, 7346, 0,
7649 7366, 0,
7650 7496, 0,
7651 7371, 0,
7652 7376, 0,
7653 7381, 0,
7654 7386, 0,
7655 7391, 0,
7656 7396, 0,
7657 7401, 0,
7658 7406, 0,
7659 7411, 0,
7660 7416, 0,
7661 7421, 0,
7662 7426, 0,
7663 7431, 0,
7664 7436, 0,
7665 7441, 0,
7666 7446, 7451, 0,
7667 7456, 7461, 0,
7668 7466, 7471, 0,
7669 7476, 7481, 0,
7670 7486, 7491, 0,
7671 7501, 0,
7672 7506, 0,
7673 7511, 0,
7674 7516, 0,
7675 7521, 0,
7676 11668, 11673, 0,
7677
7678};
7679
7680static const Q_UINT16 li_00[] = {
7681 0, 0, 0, 0, 0, 0, 0, 0,
7682 0, 0, 0, 0, 0, 0, 0, 0,
7683 0, 0, 0, 0, 0, 0, 0, 0,
7684 0, 0, 0, 0, 0, 0, 0, 0,
7685 1, 0, 0, 0, 0, 0, 0, 0,
7686 0, 0, 0, 0, 0, 0, 0, 0,
7687 0, 0, 0, 0, 0, 0, 0, 0,
7688 0, 0, 0, 0, 16, 18, 20, 0,
7689 0, 22, 39, 43, 49, 56, 74, 76,
7690 84, 92, 108, 110, 116, 123, 127, 137,
7691 154, 0, 157, 166, 174, 182, 202, 205,
7692 212, 215, 225, 0, 0, 0, 0, 0,
7693 0, 232, 249, 253, 259, 266, 284, 286,
7694 294, 303, 318, 321, 327, 334, 338, 348,
7695 365, 0, 368, 377, 385, 394, 414, 417,
7696 425, 428, 439, 0, 0, 0, 0, 0,
7697 0, 0, 0, 0, 0, 0, 0, 0,
7698 0, 0, 0, 0, 0, 0, 0, 0,
7699 0, 0, 0, 0, 0, 0, 0, 0,
7700 0, 0, 0, 0, 0, 0, 0, 0,
7701 0, 0, 0, 0, 0, 0, 0, 0,
7702 446, 0, 0, 0, 0, 0, 0, 0,
7703 0, 0, 0, 0, 0, 0, 0, 0,
7704 0, 0, 0, 0, 0, 0, 0, 0,
7705 0, 0, 450, 0, 455, 457, 459, 462,
7706 0, 0, 464, 0, 0, 0, 0, 469,
7707 0, 0, 0, 0, 471, 476, 480, 0,
7708 482, 0, 0, 0, 484, 0, 0, 0,
7709 0, 0, 489, 0, 494, 496, 498, 501,
7710 0, 0, 503, 0, 0, 0, 0, 508,
7711 0, 0, 0, 0, 510, 515, 519, 0,
7712 521, 0, 0, 0, 523, 0, 0, 0,
7713};
7714
7715static const Q_UINT16 li_01[] = {
7716 0, 0, 528, 533, 0, 0, 0, 0,
7717 0, 0, 0, 0, 0, 0, 0, 0,
7718 0, 0, 538, 541, 0, 0, 0, 0,
7719 0, 0, 0, 0, 0, 0, 0, 0,
7720 0, 0, 0, 0, 0, 0, 0, 0,
7721 0, 0, 0, 0, 0, 0, 0, 0,
7722 0, 0, 0, 0, 0, 0, 0, 0,
7723 0, 0, 0, 0, 0, 0, 0, 0,
7724 0, 0, 0, 0, 0, 0, 0, 0,
7725 0, 0, 0, 0, 544, 547, 0, 0,
7726 0, 0, 0, 0, 0, 0, 0, 0,
7727 0, 0, 550, 552, 0, 0, 0, 0,
7728 554, 556, 0, 0, 0, 0, 0, 0,
7729 558, 560, 562, 564, 0, 0, 0, 0,
7730 0, 0, 0, 0, 0, 0, 0, 0,
7731 0, 0, 0, 0, 0, 0, 0, 566,
7732 0, 0, 0, 0, 0, 0, 0, 0,
7733 0, 0, 0, 0, 0, 0, 0, 0,
7734 0, 0, 0, 0, 0, 0, 0, 0,
7735 0, 0, 0, 0, 0, 0, 0, 0,
7736 568, 574, 0, 0, 0, 0, 0, 0,
7737 0, 0, 0, 0, 0, 0, 0, 580,
7738 586, 0, 0, 0, 0, 0, 0, 592,
7739 0, 0, 0, 0, 0, 0, 0, 0,
7740 0, 0, 0, 0, 0, 0, 0, 0,
7741 0, 0, 0, 0, 0, 0, 0, 0,
7742 0, 0, 0, 0, 0, 0, 0, 0,
7743 0, 0, 0, 0, 0, 0, 0, 0,
7744 0, 0, 0, 0, 0, 0, 0, 0,
7745 0, 0, 594, 596, 0, 0, 0, 0,
7746 0, 0, 0, 0, 0, 0, 0, 0,
7747 0, 0, 0, 0, 0, 0, 0, 0,
7748};
7749
7750static const Q_UINT16 li_02[] = {
7751 0, 0, 0, 0, 0, 0, 0, 0,
7752 0, 0, 0, 0, 0, 0, 0, 0,
7753 0, 0, 0, 0, 0, 0, 0, 0,
7754 0, 0, 0, 0, 0, 0, 0, 0,
7755 0, 0, 0, 0, 0, 0, 598, 600,
7756 602, 604, 0, 0, 0, 0, 606, 608,
7757 0, 0, 0, 0, 0, 0, 0, 0,
7758 0, 0, 0, 0, 0, 0, 0, 0,
7759 0, 0, 0, 0, 0, 0, 0, 0,
7760 0, 0, 0, 0, 0, 0, 0, 0,
7761 0, 0, 0, 0, 0, 0, 0, 0,
7762 0, 0, 0, 0, 0, 0, 0, 0,
7763 0, 0, 0, 0, 0, 0, 0, 0,
7764 0, 0, 0, 0, 0, 0, 0, 0,
7765 0, 0, 0, 0, 0, 0, 0, 0,
7766 0, 0, 0, 0, 0, 0, 0, 0,
7767 0, 0, 0, 0, 0, 0, 0, 0,
7768 0, 0, 0, 0, 0, 0, 0, 0,
7769 0, 0, 610, 0, 0, 0, 0, 0,
7770 0, 0, 0, 0, 0, 0, 0, 0,
7771 0, 0, 0, 0, 0, 0, 0, 0,
7772 0, 0, 0, 0, 0, 0, 0, 0,
7773 0, 0, 0, 0, 0, 0, 0, 0,
7774 0, 0, 0, 0, 0, 0, 0, 0,
7775 0, 0, 0, 0, 0, 0, 0, 0,
7776 0, 0, 0, 0, 0, 0, 0, 0,
7777 0, 0, 0, 0, 0, 0, 0, 0,
7778 0, 0, 0, 0, 0, 0, 0, 0,
7779 0, 0, 0, 0, 0, 0, 0, 0,
7780 0, 0, 0, 0, 0, 0, 0, 0,
7781 0, 0, 0, 0, 0, 0, 0, 0,
7782 0, 0, 0, 0, 0, 0, 0, 0,
7783};
7784
7785static const Q_UINT16 li_03[] = {
7786 0, 0, 0, 0, 0, 0, 0, 0,
7787 612, 0, 0, 0, 0, 0, 0, 0,
7788 0, 0, 0, 0, 0, 0, 0, 0,
7789 0, 0, 0, 0, 0, 0, 0, 0,
7790 0, 0, 0, 0, 0, 0, 0, 0,
7791 0, 0, 0, 0, 0, 0, 0, 0,
7792 0, 0, 0, 0, 0, 0, 0, 0,
7793 0, 0, 0, 0, 0, 0, 0, 0,
7794 0, 0, 0, 0, 0, 0, 0, 0,
7795 0, 0, 0, 0, 0, 0, 0, 0,
7796 0, 0, 0, 0, 0, 0, 0, 0,
7797 0, 0, 0, 0, 0, 0, 0, 0,
7798 0, 0, 0, 0, 0, 0, 0, 0,
7799 0, 0, 0, 0, 0, 0, 0, 0,
7800 0, 0, 0, 0, 0, 0, 0, 0,
7801 0, 0, 0, 0, 0, 0, 0, 0,
7802 0, 0, 0, 0, 0, 0, 0, 0,
7803 0, 0, 0, 0, 0, 0, 0, 0,
7804 0, 614, 0, 0, 0, 622, 0, 627,
7805 0, 633, 0, 0, 0, 0, 0, 641,
7806 0, 646, 0, 0, 0, 648, 0, 0,
7807 0, 655, 0, 0, 661, 0, 663, 0,
7808 0, 665, 0, 0, 0, 674, 0, 679,
7809 0, 686, 0, 0, 0, 0, 0, 695,
7810 0, 700, 0, 0, 0, 703, 0, 0,
7811 0, 712, 719, 723, 0, 0, 727, 0,
7812 0, 0, 729, 0, 0, 0, 0, 0,
7813 0, 0, 0, 0, 0, 0, 0, 0,
7814 0, 0, 0, 0, 0, 0, 0, 0,
7815 0, 0, 0, 0, 0, 0, 0, 0,
7816 0, 0, 0, 0, 0, 0, 0, 0,
7817 0, 0, 0, 0, 0, 0, 0, 0,
7818};
7819
7820static const Q_UINT16 li_04[] = {
7821 0, 0, 0, 0, 0, 0, 732, 0,
7822 0, 0, 0, 0, 0, 0, 0, 0,
7823 734, 0, 0, 737, 0, 739, 743, 746,
7824 748, 0, 753, 0, 0, 0, 755, 0,
7825 0, 0, 0, 757, 0, 0, 0, 762,
7826 0, 0, 0, 764, 0, 766, 0, 0,
7827 768, 0, 0, 771, 0, 773, 777, 780,
7828 782, 0, 787, 0, 0, 0, 789, 0,
7829 0, 0, 0, 791, 0, 0, 0, 796,
7830 0, 0, 0, 798, 0, 800, 0, 0,
7831 0, 0, 0, 0, 0, 0, 802, 0,
7832 0, 0, 0, 0, 0, 0, 0, 0,
7833 0, 0, 0, 0, 0, 0, 0, 0,
7834 0, 0, 0, 0, 0, 0, 0, 0,
7835 0, 0, 0, 0, 804, 806, 0, 0,
7836 0, 0, 0, 0, 0, 0, 0, 0,
7837 0, 0, 0, 0, 0, 0, 0, 0,
7838 0, 0, 0, 0, 0, 0, 0, 0,
7839 0, 0, 0, 0, 0, 0, 0, 0,
7840 0, 0, 0, 0, 0, 0, 0, 0,
7841 0, 0, 0, 0, 0, 0, 0, 0,
7842 0, 0, 0, 0, 0, 0, 0, 0,
7843 0, 0, 0, 0, 0, 0, 0, 0,
7844 0, 0, 0, 0, 0, 0, 0, 0,
7845 0, 0, 0, 0, 0, 0, 0, 0,
7846 0, 0, 0, 0, 0, 0, 0, 0,
7847 0, 0, 0, 0, 0, 0, 0, 0,
7848 808, 810, 0, 0, 0, 0, 0, 0,
7849 0, 0, 0, 0, 0, 0, 0, 0,
7850 812, 814, 0, 0, 0, 0, 0, 0,
7851 0, 0, 0, 0, 0, 0, 0, 0,
7852 0, 0, 0, 0, 0, 0, 0, 0,
7853};
7854
7855static const Q_UINT16 li_05[] = {
7856 0, 0, 0, 0, 0, 0, 0, 0,
7857 0, 0, 0, 0, 0, 0, 0, 0,
7858 0, 0, 0, 0, 0, 0, 0, 0,
7859 0, 0, 0, 0, 0, 0, 0, 0,
7860 0, 0, 0, 0, 0, 0, 0, 0,
7861 0, 0, 0, 0, 0, 0, 0, 0,
7862 0, 0, 0, 0, 0, 0, 0, 0,
7863 0, 0, 0, 0, 0, 0, 0, 0,
7864 0, 0, 0, 0, 0, 0, 0, 0,
7865 0, 0, 0, 0, 0, 0, 0, 0,
7866 0, 0, 0, 0, 0, 0, 0, 0,
7867 0, 0, 0, 0, 0, 0, 0, 0,
7868 0, 0, 0, 0, 0, 0, 0, 0,
7869 0, 0, 0, 0, 0, 0, 0, 0,
7870 0, 0, 0, 0, 0, 0, 0, 0,
7871 0, 0, 0, 0, 0, 0, 0, 0,
7872 0, 0, 0, 0, 0, 0, 0, 0,
7873 0, 0, 0, 0, 0, 0, 0, 0,
7874 0, 0, 0, 0, 0, 0, 0, 0,
7875 0, 0, 0, 0, 0, 0, 0, 0,
7876 0, 0, 0, 0, 0, 0, 0, 0,
7877 0, 0, 0, 0, 0, 0, 0, 0,
7878 0, 0, 0, 0, 0, 0, 0, 0,
7879 0, 0, 0, 0, 0, 0, 0, 0,
7880 0, 0, 0, 0, 0, 0, 0, 0,
7881 0, 0, 0, 0, 0, 0, 0, 0,
7882 816, 820, 823, 825, 827, 829, 832, 0,
7883 834, 836, 839, 841, 844, 0, 846, 0,
7884 848, 850, 0, 852, 854, 0, 857, 859,
7885 861, 863, 867, 0, 0, 0, 0, 0,
7886 0, 0, 869, 0, 0, 0, 0, 0,
7887 0, 0, 0, 0, 0, 0, 0, 0,
7888};
7889
7890static const Q_UINT16 li_06[] = {
7891 0, 0, 0, 0, 0, 0, 0, 0,
7892 0, 0, 0, 0, 0, 0, 0, 0,
7893 0, 0, 0, 0, 0, 0, 0, 0,
7894 0, 0, 0, 0, 0, 0, 0, 0,
7895 0, 871, 873, 876, 879, 882, 885, 926,
7896 936, 962, 965, 1003, 1021, 1041, 1057, 1071,
7897 1074, 1078, 1083, 1086, 1121, 1158, 1183, 1206,
7898 1224, 1232, 1252, 0, 0, 0, 0, 0,
7899 1268, 1278, 1298, 1316, 1344, 1386, 1415, 1450,
7900 1464, 1469, 1476, 0, 0, 0, 0, 0,
7901 0, 0, 0, 0, 0, 0, 0, 0,
7902 0, 0, 0, 0, 0, 0, 0, 0,
7903 0, 0, 0, 0, 0, 0, 0, 0,
7904 0, 0, 0, 0, 0, 0, 0, 0,
7905 0, 1506, 0, 0, 0, 0, 0, 1509,
7906 0, 1511, 1516, 1521, 0, 0, 1526, 1531,
7907 1536, 0, 0, 1541, 1546, 0, 1551, 1556,
7908 1561, 0, 0, 0, 1564, 1567, 1570, 0,
7909 0, 1573, 0, 0, 0, 0, 0, 0,
7910 1576, 0, 0, 0, 0, 0, 0, 0,
7911 0, 0, 0, 0, 1579, 0, 1584, 0,
7912 0, 1589, 0, 0, 0, 1594, 0, 1599,
7913 0, 1604, 0, 1609, 0, 0, 0, 0,
7914 0, 0, 1614, 1617, 0, 0, 1622, 0,
7915 1627, 1630, 0, 0, 0, 1636, 1639, 1642,
7916 1645, 1648, 0, 1651, 1654, 0, 0, 0,
7917 1659, 0, 1664, 1668, 0, 1671, 0, 0,
7918 0, 0, 0, 0, 0, 0, 0, 0,
7919 0, 0, 0, 0, 0, 0, 0, 0,
7920 0, 0, 0, 0, 0, 0, 0, 0,
7921 0, 0, 0, 0, 0, 0, 0, 0,
7922 0, 0, 0, 0, 0, 0, 0, 0,
7923};
7924
7925static const Q_UINT16 li_07[] = {
7926 0, 0, 0, 0, 0, 0, 0, 0,
7927 0, 0, 0, 0, 0, 0, 0, 0,
7928 0, 0, 0, 0, 0, 0, 0, 0,
7929 0, 0, 0, 0, 0, 0, 0, 0,
7930 0, 0, 0, 0, 0, 0, 0, 0,
7931 0, 0, 0, 0, 0, 0, 0, 0,
7932 0, 0, 0, 0, 0, 0, 0, 0,
7933 0, 0, 0, 0, 0, 0, 0, 0,
7934 0, 0, 0, 0, 0, 0, 0, 0,
7935 0, 0, 0, 0, 0, 0, 0, 0,
7936 0, 0, 0, 0, 0, 0, 0, 0,
7937 0, 0, 0, 0, 0, 0, 0, 0,
7938 0, 0, 0, 0, 0, 0, 0, 0,
7939 0, 0, 0, 0, 0, 0, 0, 0,
7940 0, 0, 0, 0, 0, 0, 0, 0,
7941 0, 0, 0, 0, 0, 0, 0, 0,
7942 0, 0, 0, 0, 0, 0, 0, 0,
7943 0, 0, 0, 0, 0, 0, 0, 0,
7944 0, 0, 0, 0, 0, 0, 0, 0,
7945 0, 0, 0, 0, 0, 0, 0, 0,
7946 0, 0, 0, 0, 0, 0, 0, 0,
7947 0, 0, 0, 0, 0, 0, 0, 0,
7948 0, 0, 0, 0, 0, 0, 0, 0,
7949 0, 0, 0, 0, 0, 0, 0, 0,
7950 0, 0, 0, 0, 0, 0, 0, 0,
7951 0, 0, 0, 0, 0, 0, 0, 0,
7952 0, 0, 0, 0, 0, 0, 0, 0,
7953 0, 0, 0, 0, 0, 0, 0, 0,
7954 0, 0, 0, 0, 0, 0, 0, 0,
7955 0, 0, 0, 0, 0, 0, 0, 0,
7956 0, 0, 0, 0, 0, 0, 0, 0,
7957 0, 0, 0, 0, 0, 0, 0, 0,
7958};
7959
7960static const Q_UINT16 li_09[] = {
7961 0, 0, 0, 0, 0, 0, 0, 0,
7962 0, 0, 0, 0, 0, 0, 0, 0,
7963 0, 0, 0, 0, 0, 1673, 1675, 1677,
7964 0, 0, 0, 0, 1679, 0, 0, 0,
7965 0, 1681, 1683, 0, 0, 0, 0, 0,
7966 1685, 0, 0, 1687, 0, 0, 0, 1689,
7967 1691, 0, 0, 1693, 0, 0, 0, 0,
7968 0, 0, 0, 0, 0, 0, 0, 0,
7969 0, 0, 0, 0, 0, 0, 0, 0,
7970 0, 0, 0, 0, 0, 0, 0, 0,
7971 0, 0, 0, 0, 0, 0, 0, 0,
7972 0, 0, 0, 0, 0, 0, 0, 0,
7973 0, 0, 0, 0, 0, 0, 0, 0,
7974 0, 0, 0, 0, 0, 0, 0, 0,
7975 0, 0, 0, 0, 0, 0, 0, 0,
7976 0, 0, 0, 0, 0, 0, 0, 0,
7977 0, 0, 0, 0, 0, 0, 0, 0,
7978 0, 0, 0, 0, 0, 0, 0, 0,
7979 0, 0, 0, 0, 0, 0, 0, 0,
7980 0, 0, 0, 0, 0, 0, 0, 0,
7981 0, 1695, 1697, 0, 0, 0, 0, 0,
7982 0, 0, 0, 0, 0, 0, 0, 1699,
7983 0, 0, 0, 0, 0, 0, 0, 0,
7984 0, 0, 0, 0, 0, 0, 0, 0,
7985 0, 0, 0, 0, 0, 0, 0, 1701,
7986 0, 0, 0, 0, 0, 0, 0, 0,
7987 0, 0, 0, 0, 0, 0, 0, 0,
7988 0, 0, 0, 0, 0, 0, 0, 0,
7989 0, 0, 0, 0, 0, 0, 0, 0,
7990 0, 0, 0, 0, 0, 0, 0, 0,
7991 0, 0, 0, 0, 0, 0, 0, 0,
7992 0, 0, 0, 0, 0, 0, 0, 0,
7993};
7994
7995static const Q_UINT16 li_0A[] = {
7996 0, 0, 0, 0, 0, 0, 0, 0,
7997 0, 0, 0, 0, 0, 0, 0, 0,
7998 0, 0, 0, 0, 0, 0, 1704, 1706,
7999 0, 0, 0, 0, 1708, 0, 0, 0,
8000 0, 0, 0, 0, 0, 0, 0, 0,
8001 0, 0, 0, 1710, 0, 0, 0, 0,
8002 0, 0, 1712, 0, 0, 0, 0, 0,
8003 1714, 0, 0, 0, 0, 0, 0, 0,
8004 0, 0, 0, 0, 0, 0, 0, 0,
8005 0, 0, 0, 0, 0, 0, 0, 0,
8006 0, 0, 0, 0, 0, 0, 0, 0,
8007 0, 0, 0, 0, 0, 0, 0, 0,
8008 0, 0, 0, 0, 0, 0, 0, 0,
8009 0, 0, 0, 0, 0, 0, 0, 0,
8010 0, 0, 0, 0, 0, 0, 0, 0,
8011 0, 0, 0, 0, 0, 0, 0, 0,
8012 0, 0, 0, 0, 0, 0, 0, 0,
8013 0, 0, 0, 0, 0, 0, 0, 0,
8014 0, 0, 0, 0, 0, 0, 0, 0,
8015 0, 0, 0, 0, 0, 0, 0, 0,
8016 0, 0, 0, 0, 0, 0, 0, 0,
8017 0, 0, 0, 0, 0, 0, 0, 0,
8018 0, 0, 0, 0, 0, 0, 0, 0,
8019 0, 0, 0, 0, 0, 0, 0, 0,
8020 0, 0, 0, 0, 0, 0, 0, 0,
8021 0, 0, 0, 0, 0, 0, 0, 0,
8022 0, 0, 0, 0, 0, 0, 0, 0,
8023 0, 0, 0, 0, 0, 0, 0, 0,
8024 0, 0, 0, 0, 0, 0, 0, 0,
8025 0, 0, 0, 0, 0, 0, 0, 0,
8026 0, 0, 0, 0, 0, 0, 0, 0,
8027 0, 0, 0, 0, 0, 0, 0, 0,
8028};
8029
8030static const Q_UINT16 li_0B[] = {
8031 0, 0, 0, 0, 0, 0, 0, 0,
8032 0, 0, 0, 0, 0, 0, 0, 0,
8033 0, 0, 0, 0, 0, 0, 0, 0,
8034 0, 0, 0, 0, 0, 0, 0, 0,
8035 0, 1716, 1718, 0, 0, 0, 0, 0,
8036 0, 0, 0, 0, 0, 0, 0, 0,
8037 0, 0, 0, 0, 0, 0, 0, 0,
8038 0, 0, 0, 0, 0, 0, 0, 0,
8039 0, 0, 0, 0, 0, 0, 0, 1720,
8040 0, 0, 0, 0, 0, 0, 0, 0,
8041 0, 0, 0, 0, 0, 0, 0, 0,
8042 0, 0, 0, 0, 0, 0, 0, 0,
8043 0, 0, 0, 0, 0, 0, 0, 0,
8044 0, 0, 0, 0, 0, 0, 0, 0,
8045 0, 0, 0, 0, 0, 0, 0, 0,
8046 0, 0, 0, 0, 0, 0, 0, 0,
8047 0, 0, 0, 0, 0, 0, 0, 0,
8048 0, 0, 0, 0, 0, 0, 0, 0,
8049 0, 0, 1724, 0, 0, 0, 0, 0,
8050 0, 0, 0, 0, 0, 0, 0, 0,
8051 0, 0, 0, 0, 0, 0, 0, 0,
8052 0, 0, 0, 0, 0, 0, 0, 0,
8053 0, 0, 0, 0, 0, 0, 0, 0,
8054 0, 0, 0, 0, 0, 0, 0, 0,
8055 0, 0, 0, 0, 0, 0, 1726, 1729,
8056 0, 0, 0, 0, 0, 0, 0, 0,
8057 0, 0, 0, 0, 0, 0, 0, 0,
8058 0, 0, 0, 0, 0, 0, 0, 0,
8059 0, 0, 0, 0, 0, 0, 0, 0,
8060 0, 0, 0, 0, 0, 0, 0, 0,
8061 0, 0, 0, 0, 0, 0, 0, 0,
8062 0, 0, 0, 0, 0, 0, 0, 0,
8063};
8064
8065static const Q_UINT16 li_0C[] = {
8066 0, 0, 0, 0, 0, 0, 0, 0,
8067 0, 0, 0, 0, 0, 0, 0, 0,
8068 0, 0, 0, 0, 0, 0, 0, 0,
8069 0, 0, 0, 0, 0, 0, 0, 0,
8070 0, 0, 0, 0, 0, 0, 0, 0,
8071 0, 0, 0, 0, 0, 0, 0, 0,
8072 0, 0, 0, 0, 0, 0, 0, 0,
8073 0, 0, 0, 0, 0, 0, 0, 0,
8074 0, 0, 0, 0, 0, 0, 1731, 0,
8075 0, 0, 0, 0, 0, 0, 0, 0,
8076 0, 0, 0, 0, 0, 0, 0, 0,
8077 0, 0, 0, 0, 0, 0, 0, 0,
8078 0, 0, 0, 0, 0, 0, 0, 0,
8079 0, 0, 0, 0, 0, 0, 0, 0,
8080 0, 0, 0, 0, 0, 0, 0, 0,
8081 0, 0, 0, 0, 0, 0, 0, 0,
8082 0, 0, 0, 0, 0, 0, 0, 0,
8083 0, 0, 0, 0, 0, 0, 0, 0,
8084 0, 0, 0, 0, 0, 0, 0, 0,
8085 0, 0, 0, 0, 0, 0, 0, 0,
8086 0, 0, 0, 0, 0, 0, 0, 0,
8087 0, 0, 0, 0, 0, 0, 0, 0,
8088 0, 0, 0, 0, 0, 0, 0, 0,
8089 0, 0, 0, 0, 0, 0, 0, 1733,
8090 0, 0, 0, 0, 0, 0, 1735, 0,
8091 0, 0, 1739, 0, 0, 0, 0, 0,
8092 0, 0, 0, 0, 0, 0, 0, 0,
8093 0, 0, 0, 0, 0, 0, 0, 0,
8094 0, 0, 0, 0, 0, 0, 0, 0,
8095 0, 0, 0, 0, 0, 0, 0, 0,
8096 0, 0, 0, 0, 0, 0, 0, 0,
8097 0, 0, 0, 0, 0, 0, 0, 0,
8098};
8099
8100static const Q_UINT16 li_0D[] = {
8101 0, 0, 0, 0, 0, 0, 0, 0,
8102 0, 0, 0, 0, 0, 0, 0, 0,
8103 0, 0, 0, 0, 0, 0, 0, 0,
8104 0, 0, 0, 0, 0, 0, 0, 0,
8105 0, 0, 0, 0, 0, 0, 0, 0,
8106 0, 0, 0, 0, 0, 0, 0, 0,
8107 0, 0, 0, 0, 0, 0, 0, 0,
8108 0, 0, 0, 0, 0, 0, 0, 0,
8109 0, 0, 0, 0, 0, 0, 1741, 1744,
8110 0, 0, 0, 0, 0, 0, 0, 0,
8111 0, 0, 0, 0, 0, 0, 0, 0,
8112 0, 0, 0, 0, 0, 0, 0, 0,
8113 0, 0, 0, 0, 0, 0, 0, 0,
8114 0, 0, 0, 0, 0, 0, 0, 0,
8115 0, 0, 0, 0, 0, 0, 0, 0,
8116 0, 0, 0, 0, 0, 0, 0, 0,
8117 0, 0, 0, 0, 0, 0, 0, 0,
8118 0, 0, 0, 0, 0, 0, 0, 0,
8119 0, 0, 0, 0, 0, 0, 0, 0,
8120 0, 0, 0, 0, 0, 0, 0, 0,
8121 0, 0, 0, 0, 0, 0, 0, 0,
8122 0, 0, 0, 0, 0, 0, 0, 0,
8123 0, 0, 0, 0, 0, 0, 0, 0,
8124 0, 0, 0, 0, 0, 0, 0, 0,
8125 0, 0, 0, 0, 0, 0, 0, 0,
8126 0, 0, 0, 0, 0, 0, 0, 0,
8127 0, 0, 0, 0, 0, 0, 0, 0,
8128 0, 1746, 0, 0, 1750, 0, 0, 0,
8129 0, 0, 0, 0, 0, 0, 0, 0,
8130 0, 0, 0, 0, 0, 0, 0, 0,
8131 0, 0, 0, 0, 0, 0, 0, 0,
8132 0, 0, 0, 0, 0, 0, 0, 0,
8133};
8134
8135static const Q_UINT16 li_0F[] = {
8136 0, 0, 0, 0, 0, 0, 0, 0,
8137 0, 0, 0, 0, 0, 0, 0, 0,
8138 0, 0, 0, 0, 0, 0, 0, 0,
8139 0, 0, 0, 0, 0, 0, 0, 0,
8140 0, 0, 0, 0, 0, 0, 0, 0,
8141 0, 0, 0, 0, 0, 0, 0, 0,
8142 0, 0, 0, 0, 0, 0, 0, 0,
8143 0, 0, 0, 0, 0, 0, 0, 0,
8144 1752, 0, 1754, 0, 0, 0, 0, 0,
8145 0, 0, 0, 0, 1756, 0, 0, 0,
8146 0, 1758, 0, 0, 0, 0, 1760, 0,
8147 0, 0, 0, 1762, 0, 0, 0, 0,
8148 0, 0, 0, 0, 0, 0, 0, 0,
8149 0, 0, 0, 0, 0, 0, 0, 0,
8150 0, 1764, 0, 0, 0, 0, 0, 0,
8151 0, 0, 0, 0, 0, 0, 0, 0,
8152 0, 0, 0, 0, 0, 0, 0, 0,
8153 0, 0, 0, 0, 0, 0, 0, 0,
8154 1768, 0, 1770, 0, 0, 0, 0, 0,
8155 0, 0, 0, 0, 1772, 0, 0, 0,
8156 0, 1774, 0, 0, 0, 0, 1776, 0,
8157 0, 0, 0, 1778, 0, 0, 0, 0,
8158 0, 0, 1780, 1782, 0, 0, 0, 0,
8159 0, 0, 0, 0, 0, 0, 0, 0,
8160 0, 0, 0, 0, 0, 0, 0, 0,
8161 0, 0, 0, 0, 0, 0, 0, 0,
8162 0, 0, 0, 0, 0, 0, 0, 0,
8163 0, 0, 0, 0, 0, 0, 0, 0,
8164 0, 0, 0, 0, 0, 0, 0, 0,
8165 0, 0, 0, 0, 0, 0, 0, 0,
8166 0, 0, 0, 0, 0, 0, 0, 0,
8167 0, 0, 0, 0, 0, 0, 0, 0,
8168};
8169
8170static const Q_UINT16 li_10[] = {
8171 0, 0, 0, 0, 0, 0, 0, 0,
8172 0, 0, 0, 0, 0, 0, 0, 0,
8173 0, 0, 0, 0, 0, 0, 0, 0,
8174 0, 0, 0, 0, 0, 0, 0, 0,
8175 0, 0, 0, 0, 0, 1784, 0, 0,
8176 0, 0, 0, 0, 0, 0, 0, 0,
8177 0, 0, 0, 0, 0, 0, 0, 0,
8178 0, 0, 0, 0, 0, 0, 0, 0,
8179 0, 0, 0, 0, 0, 0, 0, 0,
8180 0, 0, 0, 0, 0, 0, 0, 0,
8181 0, 0, 0, 0, 0, 0, 0, 0,
8182 0, 0, 0, 0, 0, 0, 0, 0,
8183 0, 0, 0, 0, 0, 0, 0, 0,
8184 0, 0, 0, 0, 0, 0, 0, 0,
8185 0, 0, 0, 0, 0, 0, 0, 0,
8186 0, 0, 0, 0, 0, 0, 0, 0,
8187 0, 0, 0, 0, 0, 0, 0, 0,
8188 0, 0, 0, 0, 0, 0, 0, 0,
8189 0, 0, 0, 0, 0, 0, 0, 0,
8190 0, 0, 0, 0, 0, 0, 0, 0,
8191 0, 0, 0, 0, 0, 0, 0, 0,
8192 0, 0, 0, 0, 0, 0, 0, 0,
8193 0, 0, 0, 0, 0, 0, 0, 0,
8194 0, 0, 0, 0, 0, 0, 0, 0,
8195 0, 0, 0, 0, 0, 0, 0, 0,
8196 0, 0, 0, 0, 0, 0, 0, 0,
8197 0, 0, 0, 0, 0, 0, 0, 0,
8198 0, 0, 0, 0, 0, 0, 0, 0,
8199 0, 0, 0, 0, 0, 0, 0, 0,
8200 0, 0, 0, 0, 0, 0, 0, 0,
8201 0, 0, 0, 0, 0, 0, 0, 0,
8202 0, 0, 0, 0, 0, 0, 0, 0,
8203};
8204
8205static const Q_UINT16 li_1E[] = {
8206 0, 0, 0, 0, 0, 0, 0, 0,
8207 0, 0, 0, 0, 0, 0, 0, 0,
8208 0, 0, 0, 0, 0, 0, 0, 0,
8209 0, 0, 0, 0, 0, 0, 0, 0,
8210 0, 0, 0, 0, 0, 0, 0, 0,
8211 0, 0, 0, 0, 0, 0, 0, 0,
8212 0, 0, 0, 0, 0, 0, 1786, 1788,
8213 0, 0, 0, 0, 0, 0, 0, 0,
8214 0, 0, 0, 0, 0, 0, 0, 0,
8215 0, 0, 0, 0, 0, 0, 0, 0,
8216 0, 0, 0, 0, 0, 0, 0, 0,
8217 0, 0, 1790, 1792, 0, 0, 0, 0,
8218 0, 0, 1794, 1796, 0, 0, 0, 0,
8219 0, 0, 0, 0, 0, 0, 0, 0,
8220 0, 0, 0, 0, 0, 0, 0, 0,
8221 0, 0, 0, 0, 0, 0, 0, 0,
8222 0, 0, 0, 0, 0, 0, 0, 0,
8223 0, 0, 0, 0, 0, 0, 0, 0,
8224 0, 0, 0, 0, 0, 0, 0, 0,
8225 0, 0, 0, 0, 0, 0, 0, 0,
8226 1798, 1801, 0, 0, 0, 0, 0, 0,
8227 0, 0, 0, 0, 0, 0, 0, 0,
8228 0, 0, 0, 0, 0, 0, 0, 0,
8229 1804, 1806, 0, 0, 0, 0, 0, 0,
8230 0, 0, 0, 0, 0, 0, 0, 0,
8231 0, 0, 0, 0, 1808, 1810, 0, 0,
8232 0, 0, 0, 0, 0, 0, 0, 0,
8233 0, 0, 0, 0, 0, 0, 0, 0,
8234 0, 0, 0, 0, 0, 0, 0, 0,
8235 0, 0, 0, 0, 0, 0, 0, 0,
8236 0, 0, 0, 0, 0, 0, 0, 0,
8237 0, 0, 0, 0, 0, 0, 0, 0,
8238};
8239
8240static const Q_UINT16 li_1F[] = {
8241 1812, 1817, 1822, 1824, 1826, 1828, 1830, 1832,
8242 1834, 1839, 1844, 1846, 1848, 1850, 1852, 1854,
8243 1856, 1859, 0, 0, 0, 0, 0, 0,
8244 1862, 1865, 0, 0, 0, 0, 0, 0,
8245 1868, 1873, 1878, 1880, 1882, 1884, 1886, 1888,
8246 1890, 1895, 1900, 1902, 1904, 1906, 1908, 1910,
8247 1912, 1916, 0, 0, 0, 0, 0, 0,
8248 1920, 1924, 0, 0, 0, 0, 0, 0,
8249 1928, 1931, 0, 0, 0, 0, 0, 0,
8250 1934, 1937, 0, 0, 0, 0, 0, 0,
8251 1940, 1944, 0, 0, 0, 0, 0, 0,
8252 0, 1948, 0, 0, 0, 0, 0, 0,
8253 1952, 1957, 1962, 1964, 1966, 1968, 1970, 1972,
8254 1974, 1979, 1984, 1986, 1988, 1990, 1992, 1994,
8255 1996, 0, 0, 0, 1998, 0, 0, 0,
8256 0, 0, 0, 0, 2000, 0, 0, 0,
8257 0, 0, 0, 0, 0, 0, 0, 0,
8258 0, 0, 0, 0, 0, 0, 0, 0,
8259 0, 0, 0, 0, 0, 0, 0, 0,
8260 0, 0, 0, 0, 0, 0, 0, 0,
8261 0, 0, 0, 0, 0, 0, 0, 0,
8262 0, 0, 0, 0, 0, 0, 0, 0,
8263 0, 0, 0, 0, 0, 0, 2002, 0,
8264 0, 0, 0, 0, 0, 0, 0, 2004,
8265 0, 0, 0, 0, 0, 0, 2008, 0,
8266 0, 0, 0, 0, 0, 0, 0, 0,
8267 0, 0, 0, 0, 0, 0, 0, 0,
8268 0, 0, 0, 0, 0, 0, 0, 0,
8269 0, 0, 0, 0, 0, 0, 0, 0,
8270 0, 0, 0, 0, 0, 0, 0, 0,
8271 0, 0, 0, 0, 0, 0, 2010, 0,
8272 0, 0, 0, 0, 0, 0, 2012, 0,
8273};
8274
8275static const Q_UINT16 li_21[] = {
8276 0, 0, 0, 0, 0, 0, 0, 0,
8277 0, 0, 0, 0, 0, 0, 0, 0,
8278 0, 0, 0, 0, 0, 0, 0, 0,
8279 0, 0, 0, 0, 0, 0, 0, 0,
8280 0, 0, 0, 0, 0, 0, 0, 0,
8281 0, 0, 0, 0, 0, 0, 0, 0,
8282 0, 0, 0, 0, 0, 0, 0, 0,
8283 0, 0, 0, 0, 0, 0, 0, 0,
8284 0, 0, 0, 0, 0, 0, 0, 0,
8285 0, 0, 0, 0, 0, 0, 0, 0,
8286 0, 0, 0, 0, 0, 0, 0, 0,
8287 0, 0, 0, 0, 0, 0, 0, 0,
8288 0, 0, 0, 0, 0, 0, 0, 0,
8289 0, 0, 0, 0, 0, 0, 0, 0,
8290 0, 0, 0, 0, 0, 0, 0, 0,
8291 0, 0, 0, 0, 0, 0, 0, 0,
8292 0, 0, 0, 0, 0, 0, 0, 0,
8293 0, 0, 0, 0, 0, 0, 0, 0,
8294 2016, 0, 2018, 0, 2020, 0, 0, 0,
8295 0, 0, 0, 0, 0, 0, 0, 0,
8296 0, 0, 0, 0, 0, 0, 0, 0,
8297 0, 0, 0, 0, 0, 0, 0, 0,
8298 0, 0, 0, 0, 0, 0, 0, 0,
8299 0, 0, 0, 0, 0, 0, 0, 0,
8300 0, 0, 0, 0, 0, 0, 0, 0,
8301 0, 0, 0, 0, 0, 0, 0, 0,
8302 2022, 0, 2024, 0, 2026, 0, 0, 0,
8303 0, 0, 0, 0, 0, 0, 0, 0,
8304 0, 0, 0, 0, 0, 0, 0, 0,
8305 0, 0, 0, 0, 0, 0, 0, 0,
8306 0, 0, 0, 0, 0, 0, 0, 0,
8307 0, 0, 0, 0, 0, 0, 0, 0,
8308};
8309
8310static const Q_UINT16 li_22[] = {
8311 0, 0, 0, 2028, 0, 0, 0, 0,
8312 2030, 0, 0, 2032, 0, 0, 0, 0,
8313 0, 0, 0, 0, 0, 0, 0, 0,
8314 0, 0, 0, 0, 0, 0, 0, 0,
8315 0, 0, 0, 2034, 0, 2036, 0, 0,
8316 0, 0, 0, 0, 0, 0, 0, 0,
8317 0, 0, 0, 0, 0, 0, 0, 0,
8318 0, 0, 0, 0, 2038, 0, 0, 0,
8319 0, 0, 0, 2040, 0, 2042, 0, 0,
8320 2044, 0, 0, 0, 0, 2046, 0, 0,
8321 0, 0, 0, 0, 0, 0, 0, 0,
8322 0, 0, 0, 0, 0, 0, 0, 0,
8323 0, 2048, 0, 0, 2050, 2052, 0, 0,
8324 0, 0, 0, 0, 0, 0, 0, 0,
8325 0, 0, 2054, 2056, 0, 0, 2058, 2060,
8326 0, 0, 2062, 2064, 2066, 2068, 0, 0,
8327 0, 0, 2070, 2072, 0, 0, 2074, 2076,
8328 0, 0, 0, 0, 0, 0, 0, 0,
8329 0, 2078, 2080, 0, 0, 0, 0, 0,
8330 0, 0, 0, 0, 0, 0, 0, 0,
8331 0, 0, 2082, 0, 0, 0, 0, 0,
8332 2084, 2086, 0, 2088, 0, 0, 0, 0,
8333 0, 0, 2090, 2092, 2094, 2096, 0, 0,
8334 0, 0, 0, 0, 0, 0, 0, 0,
8335 0, 0, 0, 0, 0, 0, 0, 0,
8336 0, 0, 0, 0, 0, 0, 0, 0,
8337 0, 0, 0, 0, 0, 0, 0, 0,
8338 0, 0, 0, 0, 0, 0, 0, 0,
8339 0, 0, 0, 0, 0, 0, 0, 0,
8340 0, 0, 0, 0, 0, 0, 0, 0,
8341 0, 0, 0, 0, 0, 0, 0, 0,
8342 0, 0, 0, 0, 0, 0, 0, 0,
8343};
8344
8345static const Q_UINT16 li_30[] = {
8346 0, 0, 0, 0, 0, 0, 0, 0,
8347 0, 0, 0, 0, 0, 0, 0, 0,
8348 0, 0, 0, 0, 0, 0, 0, 0,
8349 0, 0, 0, 0, 0, 0, 0, 0,
8350 0, 0, 0, 0, 0, 0, 0, 0,
8351 0, 0, 0, 0, 0, 0, 0, 0,
8352 0, 0, 0, 0, 0, 0, 0, 0,
8353 0, 0, 0, 0, 0, 0, 0, 0,
8354 0, 0, 0, 0, 0, 0, 2098, 0,
8355 0, 0, 0, 2100, 0, 2102, 0, 2104,
8356 0, 2106, 0, 2108, 0, 2110, 0, 2112,
8357 0, 2114, 0, 2116, 0, 2118, 0, 2120,
8358 0, 2122, 0, 0, 2124, 0, 2126, 0,
8359 2128, 0, 0, 0, 0, 0, 0, 2130,
8360 0, 0, 2133, 0, 0, 2136, 0, 0,
8361 2139, 0, 0, 2142, 0, 0, 0, 0,
8362 0, 0, 0, 0, 0, 0, 0, 0,
8363 0, 0, 0, 0, 0, 0, 0, 0,
8364 0, 0, 0, 0, 0, 0, 0, 0,
8365 0, 0, 0, 0, 0, 2145, 0, 0,
8366 0, 0, 0, 0, 0, 0, 2147, 0,
8367 0, 0, 0, 2149, 0, 2151, 0, 2153,
8368 0, 2155, 0, 2157, 0, 2159, 0, 2161,
8369 0, 2163, 0, 2165, 0, 2167, 0, 2169,
8370 0, 2171, 0, 0, 2173, 0, 2175, 0,
8371 2177, 0, 0, 0, 0, 0, 0, 2179,
8372 0, 0, 2182, 0, 0, 2185, 0, 0,
8373 2188, 0, 0, 2191, 0, 0, 0, 0,
8374 0, 0, 0, 0, 0, 0, 0, 0,
8375 0, 0, 0, 0, 0, 0, 0, 2194,
8376 2196, 2198, 2200, 0, 0, 0, 0, 0,
8377 0, 0, 0, 0, 0, 2202, 0, 0,
8378};
8379
8380static const Q_UINT16 li_FB[] = {
8381 0, 0, 0, 0, 0, 0, 0, 0,
8382 0, 0, 0, 0, 0, 0, 0, 0,
8383 0, 0, 0, 0, 0, 0, 0, 0,
8384 0, 0, 0, 0, 0, 0, 0, 0,
8385 0, 0, 0, 0, 0, 0, 0, 0,
8386 0, 0, 0, 0, 0, 0, 0, 0,
8387 0, 0, 0, 0, 0, 0, 0, 0,
8388 0, 0, 0, 0, 0, 0, 0, 0,
8389 0, 0, 0, 0, 0, 0, 0, 0,
8390 0, 2204, 0, 0, 0, 0, 0, 0,
8391 0, 0, 0, 0, 0, 0, 0, 0,
8392 0, 0, 0, 0, 0, 0, 0, 0,
8393 0, 0, 0, 0, 0, 0, 0, 0,
8394 0, 0, 0, 0, 0, 0, 0, 0,
8395 0, 0, 0, 0, 0, 0, 0, 0,
8396 0, 0, 0, 0, 0, 0, 0, 0,
8397 0, 0, 0, 0, 0, 0, 0, 0,
8398 0, 0, 0, 0, 0, 0, 0, 0,
8399 0, 0, 0, 0, 0, 0, 0, 0,
8400 0, 0, 0, 0, 0, 0, 0, 0,
8401 0, 0, 0, 0, 0, 0, 0, 0,
8402 0, 0, 0, 0, 0, 0, 0, 0,
8403 0, 0, 0, 0, 0, 0, 0, 0,
8404 0, 0, 0, 0, 0, 0, 0, 0,
8405 0, 0, 0, 0, 0, 0, 0, 0,
8406 0, 0, 0, 0, 0, 0, 0, 0,
8407 0, 0, 0, 0, 0, 0, 0, 0,
8408 0, 0, 0, 0, 0, 0, 0, 0,
8409 0, 0, 0, 0, 0, 0, 0, 0,
8410 0, 0, 0, 0, 0, 0, 0, 0,
8411 0, 0, 0, 0, 0, 0, 0, 0,
8412 0, 0, 0, 0, 0, 0, 0, 0,
8413};
8414
8415static const Q_UINT16 * const ligature_info[256] = {
8416 li_00, li_01, li_02, li_03, li_04, li_05, li_06, li_07,
8417 li_07, li_09, li_0A, li_0B, li_0C, li_0D, li_07, li_0F,
8418 li_10, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8419 li_07, li_07, li_07, li_07, li_07, li_07, li_1E, li_1F,
8420 li_07, li_21, li_22, li_07, li_07, li_07, li_07, li_07,
8421 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8422 li_30, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8423 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8424 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8425 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8426 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8427 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8428 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8429 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8430 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8431 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8432 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8433 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8434 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8435 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8436 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8437 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8438 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8439 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8440 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8441 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8442 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8443 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8444 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8445 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8446 li_07, li_07, li_07, li_07, li_07, li_07, li_07, li_07,
8447 li_07, li_07, li_07, li_FB, li_07, li_07, li_07, li_07,
8448};
8449// 16188 bytes
8450
8451static const Q_UINT8 dir_00[] = {
8452 18, 18, 18, 18, 18, 18, 18, 18,
8453 18, 8, 7, 8, 9, 7, 18, 18,
8454 18, 18, 18, 18, 18, 18, 18, 18,
8455 18, 18, 18, 18, 7, 7, 7, 8,
8456 9, 10, 10, 4, 4, 4, 10, 10,
8457 138, 138, 10, 4, 6, 4, 6, 3,
8458 2, 2, 2, 2, 2, 2, 2, 2,
8459 2, 2, 6, 10, 138, 10, 138, 10,
8460 10, 0, 0, 0, 0, 0, 0, 0,
8461 0, 0, 0, 0, 0, 0, 0, 0,
8462 0, 0, 0, 0, 0, 0, 0, 0,
8463 0, 0, 0, 138, 10, 138, 10, 10,
8464 10, 0, 0, 0, 0, 0, 0, 0,
8465 0, 0, 0, 0, 0, 0, 0, 0,
8466 0, 0, 0, 0, 0, 0, 0, 0,
8467 0, 0, 0, 138, 10, 138, 10, 18,
8468 18, 18, 18, 18, 18, 7, 18, 18,
8469 18, 18, 18, 18, 18, 18, 18, 18,
8470 18, 18, 18, 18, 18, 18, 18, 18,
8471 18, 18, 18, 18, 18, 18, 18, 18,
8472 6, 10, 4, 4, 4, 4, 10, 10,
8473 10, 10, 0, 138, 10, 10, 10, 10,
8474 4, 4, 2, 2, 10, 0, 10, 10,
8475 10, 2, 0, 138, 10, 10, 10, 10,
8476 0, 0, 0, 0, 0, 0, 0, 0,
8477 0, 0, 0, 0, 0, 0, 0, 0,
8478 0, 0, 0, 0, 0, 0, 0, 10,
8479 0, 0, 0, 0, 0, 0, 0, 0,
8480 0, 0, 0, 0, 0, 0, 0, 0,
8481 0, 0, 0, 0, 0, 0, 0, 0,
8482 0, 0, 0, 0, 0, 0, 0, 10,
8483 0, 0, 0, 0, 0, 0, 0, 0,
8484};
8485
8486static const Q_UINT8 dir_01[] = {
8487 0, 0, 0, 0, 0, 0, 0, 0,
8488 0, 0, 0, 0, 0, 0, 0, 0,
8489 0, 0, 0, 0, 0, 0, 0, 0,
8490 0, 0, 0, 0, 0, 0, 0, 0,
8491 0, 0, 0, 0, 0, 0, 0, 0,
8492 0, 0, 0, 0, 0, 0, 0, 0,
8493 0, 0, 0, 0, 0, 0, 0, 0,
8494 0, 0, 0, 0, 0, 0, 0, 0,
8495 0, 0, 0, 0, 0, 0, 0, 0,
8496 0, 0, 0, 0, 0, 0, 0, 0,
8497 0, 0, 0, 0, 0, 0, 0, 0,
8498 0, 0, 0, 0, 0, 0, 0, 0,
8499 0, 0, 0, 0, 0, 0, 0, 0,
8500 0, 0, 0, 0, 0, 0, 0, 0,
8501 0, 0, 0, 0, 0, 0, 0, 0,
8502 0, 0, 0, 0, 0, 0, 0, 0,
8503 0, 0, 0, 0, 0, 0, 0, 0,
8504 0, 0, 0, 0, 0, 0, 0, 0,
8505 0, 0, 0, 0, 0, 0, 0, 0,
8506 0, 0, 0, 0, 0, 0, 0, 0,
8507 0, 0, 0, 0, 0, 0, 0, 0,
8508 0, 0, 0, 0, 0, 0, 0, 0,
8509 0, 0, 0, 0, 0, 0, 0, 0,
8510 0, 0, 0, 0, 0, 0, 0, 0,
8511 0, 0, 0, 0, 0, 0, 0, 0,
8512 0, 0, 0, 0, 0, 0, 0, 0,
8513 0, 0, 0, 0, 0, 0, 0, 0,
8514 0, 0, 0, 0, 0, 0, 0, 0,
8515 0, 0, 0, 0, 0, 0, 0, 0,
8516 0, 0, 0, 0, 0, 0, 0, 0,
8517 0, 0, 0, 0, 0, 0, 0, 0,
8518 0, 0, 0, 0, 0, 0, 0, 0,
8519};
8520
8521static const Q_UINT8 dir_02[] = {
8522 0, 0, 0, 0, 0, 0, 0, 0,
8523 0, 0, 0, 0, 0, 0, 0, 0,
8524 0, 0, 0, 0, 0, 0, 0, 0,
8525 0, 0, 0, 0, 0, 0, 0, 0,
8526 0, 0, 0, 0, 0, 0, 0, 0,
8527 0, 0, 0, 0, 0, 0, 0, 0,
8528 0, 0, 0, 0, 0, 0, 0, 0,
8529 0, 0, 0, 0, 0, 0, 0, 0,
8530 0, 0, 0, 0, 0, 0, 0, 0,
8531 0, 0, 0, 0, 0, 0, 0, 0,
8532 0, 0, 0, 0, 0, 0, 0, 0,
8533 0, 0, 0, 0, 0, 0, 0, 0,
8534 0, 0, 0, 0, 0, 0, 0, 0,
8535 0, 0, 0, 0, 0, 0, 0, 0,
8536 0, 0, 0, 0, 0, 0, 0, 0,
8537 0, 0, 0, 0, 0, 0, 0, 0,
8538 0, 0, 0, 0, 0, 0, 0, 0,
8539 0, 0, 0, 0, 0, 0, 0, 0,
8540 0, 0, 0, 0, 0, 0, 0, 0,
8541 0, 0, 0, 0, 0, 0, 0, 0,
8542 0, 0, 0, 0, 0, 0, 0, 0,
8543 0, 0, 0, 0, 0, 0, 0, 0,
8544 0, 0, 0, 0, 0, 0, 0, 0,
8545 0, 10, 10, 0, 0, 0, 0, 0,
8546 0, 0, 10, 10, 10, 10, 10, 10,
8547 10, 10, 10, 10, 10, 10, 10, 10,
8548 0, 0, 10, 10, 10, 10, 10, 10,
8549 10, 10, 10, 10, 10, 10, 10, 10,
8550 0, 0, 0, 0, 0, 10, 10, 10,
8551 10, 10, 10, 10, 10, 10, 0, 0,
8552 0, 0, 0, 0, 0, 0, 0, 0,
8553 0, 0, 0, 0, 0, 0, 0, 0,
8554};
8555
8556static const Q_UINT8 dir_03[] = {
8557 17, 17, 17, 17, 17, 17, 17, 17,
8558 17, 17, 17, 17, 17, 17, 17, 17,
8559 17, 17, 17, 17, 17, 17, 17, 17,
8560 17, 17, 17, 17, 17, 17, 17, 17,
8561 17, 17, 17, 17, 17, 17, 17, 17,
8562 17, 17, 17, 17, 17, 17, 17, 17,
8563 17, 17, 17, 17, 17, 17, 17, 17,
8564 17, 17, 17, 17, 17, 17, 17, 17,
8565 17, 17, 17, 17, 17, 17, 17, 17,
8566 17, 17, 17, 17, 17, 17, 17, 0,
8567 0, 0, 0, 0, 0, 0, 0, 0,
8568 0, 0, 0, 0, 0, 0, 0, 0,
8569 17, 17, 17, 0, 0, 0, 0, 0,
8570 0, 0, 0, 0, 0, 0, 0, 0,
8571 0, 0, 0, 0, 10, 10, 0, 0,
8572 0, 0, 0, 0, 0, 0, 10, 0,
8573 0, 0, 0, 0, 10, 10, 0, 10,
8574 0, 0, 0, 0, 0, 0, 0, 0,
8575 0, 0, 0, 0, 0, 0, 0, 0,
8576 0, 0, 0, 0, 0, 0, 0, 0,
8577 0, 0, 0, 0, 0, 0, 0, 0,
8578 0, 0, 0, 0, 0, 0, 0, 0,
8579 0, 0, 0, 0, 0, 0, 0, 0,
8580 0, 0, 0, 0, 0, 0, 0, 0,
8581 0, 0, 0, 0, 0, 0, 0, 0,
8582 0, 0, 0, 0, 0, 0, 0, 0,
8583 0, 0, 0, 0, 0, 0, 0, 0,
8584 0, 0, 0, 0, 0, 0, 0, 0,
8585 0, 0, 0, 0, 0, 0, 0, 0,
8586 0, 0, 0, 0, 0, 0, 0, 0,
8587 0, 0, 0, 0, 0, 0, 0, 0,
8588 0, 0, 0, 0, 0, 0, 0, 0,
8589};
8590
8591static const Q_UINT8 dir_04[] = {
8592 0, 0, 0, 0, 0, 0, 0, 0,
8593 0, 0, 0, 0, 0, 0, 0, 0,
8594 0, 0, 0, 0, 0, 0, 0, 0,
8595 0, 0, 0, 0, 0, 0, 0, 0,
8596 0, 0, 0, 0, 0, 0, 0, 0,
8597 0, 0, 0, 0, 0, 0, 0, 0,
8598 0, 0, 0, 0, 0, 0, 0, 0,
8599 0, 0, 0, 0, 0, 0, 0, 0,
8600 0, 0, 0, 0, 0, 0, 0, 0,
8601 0, 0, 0, 0, 0, 0, 0, 0,
8602 0, 0, 0, 0, 0, 0, 0, 0,
8603 0, 0, 0, 0, 0, 0, 0, 0,
8604 0, 0, 0, 0, 0, 0, 0, 0,
8605 0, 0, 0, 0, 0, 0, 0, 0,
8606 0, 0, 0, 0, 0, 0, 0, 0,
8607 0, 0, 0, 0, 0, 0, 0, 0,
8608 0, 0, 0, 17, 17, 17, 17, 0,
8609 17, 17, 0, 0, 0, 0, 0, 0,
8610 0, 0, 0, 0, 0, 0, 0, 0,
8611 0, 0, 0, 0, 0, 0, 0, 0,
8612 0, 0, 0, 0, 0, 0, 0, 0,
8613 0, 0, 0, 0, 0, 0, 0, 0,
8614 0, 0, 0, 0, 0, 0, 0, 0,
8615 0, 0, 0, 0, 0, 0, 0, 0,
8616 0, 0, 0, 0, 0, 0, 0, 0,
8617 0, 0, 0, 0, 0, 0, 0, 0,
8618 0, 0, 0, 0, 0, 0, 0, 0,
8619 0, 0, 0, 0, 0, 0, 0, 0,
8620 0, 0, 0, 0, 0, 0, 0, 0,
8621 0, 0, 0, 0, 0, 0, 0, 0,
8622 0, 0, 0, 0, 0, 0, 0, 0,
8623 0, 0, 0, 0, 0, 0, 0, 0,
8624};
8625
8626static const Q_UINT8 dir_05[] = {
8627 0, 0, 0, 0, 0, 0, 0, 0,
8628 0, 0, 0, 0, 0, 0, 0, 0,
8629 0, 0, 0, 0, 0, 0, 0, 0,
8630 0, 0, 0, 0, 0, 0, 0, 0,
8631 0, 0, 0, 0, 0, 0, 0, 0,
8632 0, 0, 0, 0, 0, 0, 0, 0,
8633 0, 0, 0, 0, 0, 0, 0, 0,
8634 0, 0, 0, 0, 0, 0, 0, 0,
8635 0, 0, 0, 0, 0, 0, 0, 0,
8636 0, 0, 0, 0, 0, 0, 0, 0,
8637 0, 0, 0, 0, 0, 0, 0, 0,
8638 0, 0, 0, 0, 0, 0, 0, 0,
8639 0, 0, 0, 0, 0, 0, 0, 0,
8640 0, 0, 0, 0, 0, 0, 0, 0,
8641 0, 0, 0, 0, 0, 0, 0, 0,
8642 0, 0, 0, 0, 0, 0, 0, 0,
8643 0, 0, 0, 0, 0, 0, 0, 0,
8644 0, 0, 10, 0, 0, 0, 0, 0,
8645 0, 17, 17, 17, 17, 17, 17, 17,
8646 17, 17, 17, 17, 17, 17, 17, 17,
8647 17, 17, 0, 17, 17, 17, 17, 17,
8648 17, 17, 17, 17, 17, 17, 17, 17,
8649 17, 17, 17, 17, 17, 17, 17, 17,
8650 17, 17, 0, 17, 17, 17, 1, 17,
8651 1, 17, 17, 1, 17, 0, 0, 0,
8652 0, 0, 0, 0, 0, 0, 0, 0,
8653 1, 1, 1, 1, 1, 1, 1, 1,
8654 1, 1, 1, 1, 1, 1, 1, 1,
8655 1, 1, 1, 1, 1, 1, 1, 1,
8656 1, 1, 1, 0, 0, 0, 0, 0,
8657 1, 1, 1, 1, 1, 0, 0, 0,
8658 0, 0, 0, 0, 0, 0, 0, 0,
8659};
8660
8661static const Q_UINT8 dir_06[] = {
8662 0, 0, 0, 0, 0, 0, 0, 0,
8663 0, 0, 0, 0, 6, 0, 0, 0,
8664 0, 0, 0, 0, 0, 0, 0, 0,
8665 0, 0, 0, 13, 0, 0, 0, 13,
8666 0, 13, 77, 77, 77, 77, 45, 77,
8667 45, 77, 45, 45, 45, 45, 45, 77,
8668 77, 77, 77, 45, 45, 45, 45, 45,
8669 45, 45, 45, 0, 0, 0, 0, 0,
8670 109, 45, 45, 45, 45, 45, 45, 45,
8671 77, 77, 45, 17, 17, 17, 17, 17,
8672 17, 17, 17, 17, 17, 17, 0, 0,
8673 0, 0, 0, 0, 0, 0, 0, 0,
8674 5, 5, 5, 5, 5, 5, 5, 5,
8675 5, 5, 4, 5, 5, 13, 0, 0,
8676 17, 13, 77, 77, 13, 77, 77, 77,
8677 45, 45, 45, 45, 45, 45, 45, 45,
8678 45, 45, 45, 45, 45, 45, 45, 45,
8679 77, 77, 77, 77, 77, 77, 77, 77,
8680 77, 77, 77, 77, 77, 77, 77, 77,
8681 77, 77, 45, 45, 45, 45, 45, 45,
8682 45, 45, 45, 45, 45, 45, 45, 45,
8683 45, 45, 45, 45, 45, 45, 45, 45,
8684 45, 45, 45, 45, 45, 45, 45, 45,
8685 45, 45, 45, 45, 45, 45, 45, 45,
8686 77, 45, 77, 77, 77, 77, 77, 77,
8687 77, 77, 77, 77, 45, 77, 45, 77,
8688 45, 45, 77, 77, 13, 13, 17, 17,
8689 17, 17, 17, 17, 17, 17, 17, 17,
8690 17, 17, 17, 17, 17, 13, 13, 17,
8691 17, 10, 17, 17, 17, 17, 0, 0,
8692 2, 2, 2, 2, 2, 2, 2, 2,
8693 2, 2, 45, 45, 45, 13, 13, 0,
8694};
8695
8696static const Q_UINT8 dir_07[] = {
8697 13, 13, 13, 13, 13, 13, 13, 13,
8698 13, 13, 13, 13, 13, 13, 0, 18,
8699 77, 17, 45, 45, 45, 77, 77, 77,
8700 77, 77, 45, 45, 45, 45, 77, 45,
8701 45, 45, 45, 45, 45, 45, 45, 45,
8702 77, 45, 77, 45, 77, 0, 0, 0,
8703 17, 17, 17, 17, 17, 17, 17, 17,
8704 17, 17, 17, 17, 17, 17, 17, 17,
8705 17, 17, 17, 17, 17, 17, 17, 17,
8706 17, 17, 17, 0, 0, 0, 0, 0,
8707 0, 0, 0, 0, 0, 0, 0, 0,
8708 0, 0, 0, 0, 0, 0, 0, 0,
8709 0, 0, 0, 0, 0, 0, 0, 0,
8710 0, 0, 0, 0, 0, 0, 0, 0,
8711 0, 0, 0, 0, 0, 0, 0, 0,
8712 0, 0, 0, 0, 0, 0, 0, 0,
8713 13, 13, 13, 13, 13, 13, 13, 13,
8714 13, 13, 13, 13, 13, 13, 13, 13,
8715 13, 13, 13, 13, 13, 13, 13, 13,
8716 13, 13, 13, 13, 13, 13, 13, 13,
8717 13, 13, 13, 13, 13, 13, 17, 17,
8718 17, 17, 17, 17, 17, 17, 17, 17,
8719 17, 0, 0, 0, 0, 0, 0, 0,
8720 0, 0, 0, 0, 0, 0, 0, 0,
8721 0, 0, 0, 0, 0, 0, 0, 0,
8722 0, 0, 0, 0, 0, 0, 0, 0,
8723 0, 0, 0, 0, 0, 0, 0, 0,
8724 0, 0, 0, 0, 0, 0, 0, 0,
8725 0, 0, 0, 0, 0, 0, 0, 0,
8726 0, 0, 0, 0, 0, 0, 0, 0,
8727 0, 0, 0, 0, 0, 0, 0, 0,
8728 0, 0, 0, 0, 0, 0, 0, 0,
8729};
8730
8731static const Q_UINT8 dir_09[] = {
8732 0, 17, 17, 0, 0, 0, 0, 0,
8733 0, 0, 0, 0, 0, 0, 0, 0,
8734 0, 0, 0, 0, 0, 0, 0, 0,
8735 0, 0, 0, 0, 0, 0, 0, 0,
8736 0, 0, 0, 0, 0, 0, 0, 0,
8737 0, 0, 0, 0, 0, 0, 0, 0,
8738 0, 0, 0, 0, 0, 0, 0, 0,
8739 0, 0, 0, 0, 17, 0, 0, 0,
8740 0, 17, 17, 17, 17, 17, 17, 17,
8741 17, 0, 0, 0, 0, 17, 0, 0,
8742 0, 17, 17, 17, 17, 0, 0, 0,
8743 0, 0, 0, 0, 0, 0, 0, 0,
8744 0, 0, 17, 17, 0, 0, 0, 0,
8745 0, 0, 0, 0, 0, 0, 0, 0,
8746 0, 0, 0, 0, 0, 0, 0, 0,
8747 0, 0, 0, 0, 0, 0, 0, 0,
8748 0, 17, 0, 0, 0, 0, 0, 0,
8749 0, 0, 0, 0, 0, 0, 0, 0,
8750 0, 0, 0, 0, 0, 0, 0, 0,
8751 0, 0, 0, 0, 0, 0, 0, 0,
8752 0, 0, 0, 0, 0, 0, 0, 0,
8753 0, 0, 0, 0, 0, 0, 0, 0,
8754 0, 0, 0, 0, 0, 0, 0, 0,
8755 0, 0, 0, 0, 17, 0, 0, 0,
8756 0, 17, 17, 17, 17, 0, 0, 0,
8757 0, 0, 0, 0, 0, 17, 0, 0,
8758 0, 0, 0, 0, 0, 0, 0, 0,
8759 0, 0, 0, 0, 0, 0, 0, 0,
8760 0, 0, 17, 17, 0, 0, 0, 0,
8761 0, 0, 0, 0, 0, 0, 0, 0,
8762 0, 0, 4, 4, 0, 0, 0, 0,
8763 0, 0, 0, 0, 0, 0, 0, 0,
8764};
8765
8766static const Q_UINT8 dir_0A[] = {
8767 0, 0, 17, 0, 0, 0, 0, 0,
8768 0, 0, 0, 0, 0, 0, 0, 0,
8769 0, 0, 0, 0, 0, 0, 0, 0,
8770 0, 0, 0, 0, 0, 0, 0, 0,
8771 0, 0, 0, 0, 0, 0, 0, 0,
8772 0, 0, 0, 0, 0, 0, 0, 0,
8773 0, 0, 0, 0, 0, 0, 0, 0,
8774 0, 0, 0, 0, 17, 0, 0, 0,
8775 0, 17, 17, 0, 0, 0, 0, 17,
8776 17, 0, 0, 17, 17, 17, 0, 0,
8777 0, 0, 0, 0, 0, 0, 0, 0,
8778 0, 0, 0, 0, 0, 0, 0, 0,
8779 0, 0, 0, 0, 0, 0, 0, 0,
8780 0, 0, 0, 0, 0, 0, 0, 0,
8781 17, 17, 0, 0, 0, 0, 0, 0,
8782 0, 0, 0, 0, 0, 0, 0, 0,
8783 0, 17, 17, 0, 0, 0, 0, 0,
8784 0, 0, 0, 0, 0, 0, 0, 0,
8785 0, 0, 0, 0, 0, 0, 0, 0,
8786 0, 0, 0, 0, 0, 0, 0, 0,
8787 0, 0, 0, 0, 0, 0, 0, 0,
8788 0, 0, 0, 0, 0, 0, 0, 0,
8789 0, 0, 0, 0, 0, 0, 0, 0,
8790 0, 0, 0, 0, 17, 0, 0, 0,
8791 0, 17, 17, 17, 17, 17, 0, 17,
8792 17, 0, 0, 0, 0, 17, 0, 0,
8793 0, 0, 0, 0, 0, 0, 0, 0,
8794 0, 0, 0, 0, 0, 0, 0, 0,
8795 0, 0, 0, 0, 0, 0, 0, 0,
8796 0, 0, 0, 0, 0, 0, 0, 0,
8797 0, 0, 0, 0, 0, 0, 0, 0,
8798 0, 0, 0, 0, 0, 0, 0, 0,
8799};
8800
8801static const Q_UINT8 dir_0B[] = {
8802 0, 17, 0, 0, 0, 0, 0, 0,
8803 0, 0, 0, 0, 0, 0, 0, 0,
8804 0, 0, 0, 0, 0, 0, 0, 0,
8805 0, 0, 0, 0, 0, 0, 0, 0,
8806 0, 0, 0, 0, 0, 0, 0, 0,
8807 0, 0, 0, 0, 0, 0, 0, 0,
8808 0, 0, 0, 0, 0, 0, 0, 0,
8809 0, 0, 0, 0, 17, 0, 0, 17,
8810 0, 17, 17, 17, 0, 0, 0, 0,
8811 0, 0, 0, 0, 0, 17, 0, 0,
8812 0, 0, 0, 0, 0, 0, 17, 0,
8813 0, 0, 0, 0, 0, 0, 0, 0,
8814 0, 0, 0, 0, 0, 0, 0, 0,
8815 0, 0, 0, 0, 0, 0, 0, 0,
8816 0, 0, 0, 0, 0, 0, 0, 0,
8817 0, 0, 0, 0, 0, 0, 0, 0,
8818 0, 0, 17, 0, 0, 0, 0, 0,
8819 0, 0, 0, 0, 0, 0, 0, 0,
8820 0, 0, 0, 0, 0, 0, 0, 0,
8821 0, 0, 0, 0, 0, 0, 0, 0,
8822 0, 0, 0, 0, 0, 0, 0, 0,
8823 0, 0, 0, 0, 0, 0, 0, 0,
8824 0, 0, 0, 0, 0, 0, 0, 0,
8825 0, 0, 0, 0, 0, 0, 0, 0,
8826 17, 0, 0, 0, 0, 0, 0, 0,
8827 0, 0, 0, 0, 0, 17, 0, 0,
8828 0, 0, 0, 0, 0, 0, 0, 0,
8829 0, 0, 0, 0, 0, 0, 0, 0,
8830 0, 0, 0, 0, 0, 0, 0, 0,
8831 0, 0, 0, 0, 0, 0, 0, 0,
8832 0, 0, 0, 0, 0, 0, 0, 0,
8833 0, 0, 0, 0, 0, 0, 0, 0,
8834};
8835
8836static const Q_UINT8 dir_0C[] = {
8837 0, 0, 0, 0, 0, 0, 0, 0,
8838 0, 0, 0, 0, 0, 0, 0, 0,
8839 0, 0, 0, 0, 0, 0, 0, 0,
8840 0, 0, 0, 0, 0, 0, 0, 0,
8841 0, 0, 0, 0, 0, 0, 0, 0,
8842 0, 0, 0, 0, 0, 0, 0, 0,
8843 0, 0, 0, 0, 0, 0, 0, 0,
8844 0, 0, 0, 0, 0, 0, 17, 17,
8845 17, 0, 0, 0, 0, 0, 17, 17,
8846 17, 0, 17, 17, 17, 17, 0, 0,
8847 0, 0, 0, 0, 0, 17, 17, 0,
8848 0, 0, 0, 0, 0, 0, 0, 0,
8849 0, 0, 0, 0, 0, 0, 0, 0,
8850 0, 0, 0, 0, 0, 0, 0, 0,
8851 0, 0, 0, 0, 0, 0, 0, 0,
8852 0, 0, 0, 0, 0, 0, 0, 0,
8853 0, 0, 0, 0, 0, 0, 0, 0,
8854 0, 0, 0, 0, 0, 0, 0, 0,
8855 0, 0, 0, 0, 0, 0, 0, 0,
8856 0, 0, 0, 0, 0, 0, 0, 0,
8857 0, 0, 0, 0, 0, 0, 0, 0,
8858 0, 0, 0, 0, 0, 0, 0, 0,
8859 0, 0, 0, 0, 0, 0, 0, 0,
8860 0, 0, 0, 0, 0, 0, 0, 17,
8861 0, 0, 0, 0, 0, 0, 17, 0,
8862 0, 0, 0, 0, 17, 17, 0, 0,
8863 0, 0, 0, 0, 0, 0, 0, 0,
8864 0, 0, 0, 0, 0, 0, 0, 0,
8865 0, 0, 0, 0, 0, 0, 0, 0,
8866 0, 0, 0, 0, 0, 0, 0, 0,
8867 0, 0, 0, 0, 0, 0, 0, 0,
8868 0, 0, 0, 0, 0, 0, 0, 0,
8869};
8870
8871static const Q_UINT8 dir_0D[] = {
8872 0, 0, 0, 0, 0, 0, 0, 0,
8873 0, 0, 0, 0, 0, 0, 0, 0,
8874 0, 0, 0, 0, 0, 0, 0, 0,
8875 0, 0, 0, 0, 0, 0, 0, 0,
8876 0, 0, 0, 0, 0, 0, 0, 0,
8877 0, 0, 0, 0, 0, 0, 0, 0,
8878 0, 0, 0, 0, 0, 0, 0, 0,
8879 0, 0, 0, 0, 0, 0, 0, 0,
8880 0, 17, 17, 17, 0, 0, 0, 0,
8881 0, 0, 0, 0, 0, 17, 0, 0,
8882 0, 0, 0, 0, 0, 0, 0, 0,
8883 0, 0, 0, 0, 0, 0, 0, 0,
8884 0, 0, 0, 0, 0, 0, 0, 0,
8885 0, 0, 0, 0, 0, 0, 0, 0,
8886 0, 0, 0, 0, 0, 0, 0, 0,
8887 0, 0, 0, 0, 0, 0, 0, 0,
8888 0, 0, 0, 0, 0, 0, 0, 0,
8889 0, 0, 0, 0, 0, 0, 0, 0,
8890 0, 0, 0, 0, 0, 0, 0, 0,
8891 0, 0, 0, 0, 0, 0, 0, 0,
8892 0, 0, 0, 0, 0, 0, 0, 0,
8893 0, 0, 0, 0, 0, 0, 0, 0,
8894 0, 0, 0, 0, 0, 0, 0, 0,
8895 0, 0, 0, 0, 0, 0, 0, 0,
8896 0, 0, 0, 0, 0, 0, 0, 0,
8897 0, 0, 17, 0, 0, 0, 0, 0,
8898 0, 0, 17, 17, 17, 0, 17, 0,
8899 0, 0, 0, 0, 0, 0, 0, 0,
8900 0, 0, 0, 0, 0, 0, 0, 0,
8901 0, 0, 0, 0, 0, 0, 0, 0,
8902 0, 0, 0, 0, 0, 0, 0, 0,
8903 0, 0, 0, 0, 0, 0, 0, 0,
8904};
8905
8906static const Q_UINT8 dir_0E[] = {
8907 0, 0, 0, 0, 0, 0, 0, 0,
8908 0, 0, 0, 0, 0, 0, 0, 0,
8909 0, 0, 0, 0, 0, 0, 0, 0,
8910 0, 0, 0, 0, 0, 0, 0, 0,
8911 0, 0, 0, 0, 0, 0, 0, 0,
8912 0, 0, 0, 0, 0, 0, 0, 0,
8913 0, 17, 0, 0, 17, 17, 17, 17,
8914 17, 17, 17, 0, 0, 0, 0, 4,
8915 0, 0, 0, 0, 0, 0, 0, 17,
8916 17, 17, 17, 17, 17, 17, 17, 0,
8917 0, 0, 0, 0, 0, 0, 0, 0,
8918 0, 0, 0, 0, 0, 0, 0, 0,
8919 0, 0, 0, 0, 0, 0, 0, 0,
8920 0, 0, 0, 0, 0, 0, 0, 0,
8921 0, 0, 0, 0, 0, 0, 0, 0,
8922 0, 0, 0, 0, 0, 0, 0, 0,
8923 0, 0, 0, 0, 0, 0, 0, 0,
8924 0, 0, 0, 0, 0, 0, 0, 0,
8925 0, 0, 0, 0, 0, 0, 0, 0,
8926 0, 0, 0, 0, 0, 0, 0, 0,
8927 0, 0, 0, 0, 0, 0, 0, 0,
8928 0, 0, 0, 0, 0, 0, 0, 0,
8929 0, 17, 0, 0, 17, 17, 17, 17,
8930 17, 17, 0, 17, 17, 0, 0, 0,
8931 0, 0, 0, 0, 0, 0, 0, 0,
8932 17, 17, 17, 17, 17, 17, 0, 0,
8933 0, 0, 0, 0, 0, 0, 0, 0,
8934 0, 0, 0, 0, 0, 0, 0, 0,
8935 0, 0, 0, 0, 0, 0, 0, 0,
8936 0, 0, 0, 0, 0, 0, 0, 0,
8937 0, 0, 0, 0, 0, 0, 0, 0,
8938 0, 0, 0, 0, 0, 0, 0, 0,
8939};
8940
8941static const Q_UINT8 dir_0F[] = {
8942 0, 0, 0, 0, 0, 0, 0, 0,
8943 0, 0, 0, 0, 0, 0, 0, 0,
8944 0, 0, 0, 0, 0, 0, 0, 0,
8945 17, 17, 0, 0, 0, 0, 0, 0,
8946 0, 0, 0, 0, 0, 0, 0, 0,
8947 0, 0, 0, 0, 0, 0, 0, 0,
8948 0, 0, 0, 0, 0, 17, 0, 17,
8949 0, 17, 10, 10, 10, 10, 0, 0,
8950 0, 0, 0, 0, 0, 0, 0, 0,
8951 0, 0, 0, 0, 0, 0, 0, 0,
8952 0, 0, 0, 0, 0, 0, 0, 0,
8953 0, 0, 0, 0, 0, 0, 0, 0,
8954 0, 0, 0, 0, 0, 0, 0, 0,
8955 0, 0, 0, 0, 0, 0, 0, 0,
8956 0, 17, 17, 17, 17, 17, 17, 17,
8957 17, 17, 17, 17, 17, 17, 17, 0,
8958 17, 17, 17, 17, 17, 0, 17, 17,
8959 0, 0, 0, 0, 0, 0, 0, 0,
8960 17, 17, 17, 17, 17, 17, 17, 17,
8961 0, 17, 17, 17, 17, 17, 17, 17,
8962 17, 17, 17, 17, 17, 17, 17, 17,
8963 17, 17, 17, 17, 17, 17, 17, 17,
8964 17, 17, 17, 17, 17, 17, 17, 17,
8965 17, 17, 17, 17, 17, 0, 0, 0,
8966 0, 0, 0, 0, 0, 0, 17, 0,
8967 0, 0, 0, 0, 0, 0, 0, 0,
8968 0, 0, 0, 0, 0, 0, 0, 0,
8969 0, 0, 0, 0, 0, 0, 0, 0,
8970 0, 0, 0, 0, 0, 0, 0, 0,
8971 0, 0, 0, 0, 0, 0, 0, 0,
8972 0, 0, 0, 0, 0, 0, 0, 0,
8973 0, 0, 0, 0, 0, 0, 0, 0,
8974};
8975
8976static const Q_UINT8 dir_10[] = {
8977 0, 0, 0, 0, 0, 0, 0, 0,
8978 0, 0, 0, 0, 0, 0, 0, 0,
8979 0, 0, 0, 0, 0, 0, 0, 0,
8980 0, 0, 0, 0, 0, 0, 0, 0,
8981 0, 0, 0, 0, 0, 0, 0, 0,
8982 0, 0, 0, 0, 0, 17, 17, 17,
8983 17, 0, 17, 0, 0, 0, 17, 17,
8984 0, 17, 0, 0, 0, 0, 0, 0,
8985 0, 0, 0, 0, 0, 0, 0, 0,
8986 0, 0, 0, 0, 0, 0, 0, 0,
8987 0, 0, 0, 0, 0, 0, 0, 0,
8988 17, 17, 0, 0, 0, 0, 0, 0,
8989 0, 0, 0, 0, 0, 0, 0, 0,
8990 0, 0, 0, 0, 0, 0, 0, 0,
8991 0, 0, 0, 0, 0, 0, 0, 0,
8992 0, 0, 0, 0, 0, 0, 0, 0,
8993 0, 0, 0, 0, 0, 0, 0, 0,
8994 0, 0, 0, 0, 0, 0, 0, 0,
8995 0, 0, 0, 0, 0, 0, 0, 0,
8996 0, 0, 0, 0, 0, 0, 0, 0,
8997 0, 0, 0, 0, 0, 0, 0, 0,
8998 0, 0, 0, 0, 0, 0, 0, 0,
8999 0, 0, 0, 0, 0, 0, 0, 0,
9000 0, 0, 0, 0, 0, 0, 0, 0,
9001 0, 0, 0, 0, 0, 0, 0, 0,
9002 0, 0, 0, 0, 0, 0, 0, 0,
9003 0, 0, 0, 0, 0, 0, 0, 0,
9004 0, 0, 0, 0, 0, 0, 0, 0,
9005 0, 0, 0, 0, 0, 0, 0, 0,
9006 0, 0, 0, 0, 0, 0, 0, 0,
9007 0, 0, 0, 0, 0, 0, 0, 0,
9008 0, 0, 0, 0, 0, 0, 0, 0,
9009};
9010
9011static const Q_UINT8 dir_16[] = {
9012 0, 0, 0, 0, 0, 0, 0, 0,
9013 0, 0, 0, 0, 0, 0, 0, 0,
9014 0, 0, 0, 0, 0, 0, 0, 0,
9015 0, 0, 0, 0, 0, 0, 0, 0,
9016 0, 0, 0, 0, 0, 0, 0, 0,
9017 0, 0, 0, 0, 0, 0, 0, 0,
9018 0, 0, 0, 0, 0, 0, 0, 0,
9019 0, 0, 0, 0, 0, 0, 0, 0,
9020 0, 0, 0, 0, 0, 0, 0, 0,
9021 0, 0, 0, 0, 0, 0, 0, 0,
9022 0, 0, 0, 0, 0, 0, 0, 0,
9023 0, 0, 0, 0, 0, 0, 0, 0,
9024 0, 0, 0, 0, 0, 0, 0, 0,
9025 0, 0, 0, 0, 0, 0, 0, 0,
9026 0, 0, 0, 0, 0, 0, 0, 0,
9027 0, 0, 0, 0, 0, 0, 0, 0,
9028 9, 0, 0, 0, 0, 0, 0, 0,
9029 0, 0, 0, 0, 0, 0, 0, 0,
9030 0, 0, 0, 0, 0, 0, 0, 0,
9031 0, 0, 0, 10, 10, 0, 0, 0,
9032 0, 0, 0, 0, 0, 0, 0, 0,
9033 0, 0, 0, 0, 0, 0, 0, 0,
9034 0, 0, 0, 0, 0, 0, 0, 0,
9035 0, 0, 0, 0, 0, 0, 0, 0,
9036 0, 0, 0, 0, 0, 0, 0, 0,
9037 0, 0, 0, 0, 0, 0, 0, 0,
9038 0, 0, 0, 0, 0, 0, 0, 0,
9039 0, 0, 0, 0, 0, 0, 0, 0,
9040 0, 0, 0, 0, 0, 0, 0, 0,
9041 0, 0, 0, 0, 0, 0, 0, 0,
9042 0, 0, 0, 0, 0, 0, 0, 0,
9043 0, 0, 0, 0, 0, 0, 0, 0,
9044};
9045
9046static const Q_UINT8 dir_17[] = {
9047 0, 0, 0, 0, 0, 0, 0, 0,
9048 0, 0, 0, 0, 0, 0, 0, 0,
9049 0, 0, 0, 0, 0, 0, 0, 0,
9050 0, 0, 0, 0, 0, 0, 0, 0,
9051 0, 0, 0, 0, 0, 0, 0, 0,
9052 0, 0, 0, 0, 0, 0, 0, 0,
9053 0, 0, 0, 0, 0, 0, 0, 0,
9054 0, 0, 0, 0, 0, 0, 0, 0,
9055 0, 0, 0, 0, 0, 0, 0, 0,
9056 0, 0, 0, 0, 0, 0, 0, 0,
9057 0, 0, 0, 0, 0, 0, 0, 0,
9058 0, 0, 0, 0, 0, 0, 0, 0,
9059 0, 0, 0, 0, 0, 0, 0, 0,
9060 0, 0, 0, 0, 0, 0, 0, 0,
9061 0, 0, 0, 0, 0, 0, 0, 0,
9062 0, 0, 0, 0, 0, 0, 0, 0,
9063 0, 0, 0, 0, 0, 0, 0, 0,
9064 0, 0, 0, 0, 0, 0, 0, 0,
9065 0, 0, 0, 0, 0, 0, 0, 0,
9066 0, 0, 0, 0, 0, 0, 0, 0,
9067 0, 0, 0, 0, 0, 0, 0, 0,
9068 0, 0, 0, 0, 0, 0, 0, 0,
9069 0, 0, 0, 0, 0, 0, 0, 17,
9070 17, 17, 17, 17, 17, 17, 0, 0,
9071 0, 0, 0, 0, 0, 0, 17, 0,
9072 0, 17, 17, 17, 17, 17, 17, 17,
9073 17, 17, 17, 17, 0, 0, 0, 0,
9074 0, 0, 0, 4, 0, 0, 0, 0,
9075 0, 0, 0, 0, 0, 0, 0, 0,
9076 0, 0, 0, 0, 0, 0, 0, 0,
9077 0, 0, 0, 0, 0, 0, 0, 0,
9078 0, 0, 0, 0, 0, 0, 0, 0,
9079};
9080
9081static const Q_UINT8 dir_18[] = {
9082 10, 10, 10, 10, 10, 10, 10, 10,
9083 10, 10, 10, 18, 18, 18, 18, 0,
9084 0, 0, 0, 0, 0, 0, 0, 0,
9085 0, 0, 0, 0, 0, 0, 0, 0,
9086 0, 0, 0, 0, 0, 0, 0, 0,
9087 0, 0, 0, 0, 0, 0, 0, 0,
9088 0, 0, 0, 0, 0, 0, 0, 0,
9089 0, 0, 0, 0, 0, 0, 0, 0,
9090 0, 0, 0, 0, 0, 0, 0, 0,
9091 0, 0, 0, 0, 0, 0, 0, 0,
9092 0, 0, 0, 0, 0, 0, 0, 0,
9093 0, 0, 0, 0, 0, 0, 0, 0,
9094 0, 0, 0, 0, 0, 0, 0, 0,
9095 0, 0, 0, 0, 0, 0, 0, 0,
9096 0, 0, 0, 0, 0, 0, 0, 0,
9097 0, 0, 0, 0, 0, 0, 0, 0,
9098 0, 0, 0, 0, 0, 0, 0, 0,
9099 0, 0, 0, 0, 0, 0, 0, 0,
9100 0, 0, 0, 0, 0, 0, 0, 0,
9101 0, 0, 0, 0, 0, 0, 0, 0,
9102 0, 0, 0, 0, 0, 0, 0, 0,
9103 0, 17, 0, 0, 0, 0, 0, 0,
9104 0, 0, 0, 0, 0, 0, 0, 0,
9105 0, 0, 0, 0, 0, 0, 0, 0,
9106 0, 0, 0, 0, 0, 0, 0, 0,
9107 0, 0, 0, 0, 0, 0, 0, 0,
9108 0, 0, 0, 0, 0, 0, 0, 0,
9109 0, 0, 0, 0, 0, 0, 0, 0,
9110 0, 0, 0, 0, 0, 0, 0, 0,
9111 0, 0, 0, 0, 0, 0, 0, 0,
9112 0, 0, 0, 0, 0, 0, 0, 0,
9113 0, 0, 0, 0, 0, 0, 0, 0,
9114};
9115
9116static const Q_UINT8 dir_1F[] = {
9117 0, 0, 0, 0, 0, 0, 0, 0,
9118 0, 0, 0, 0, 0, 0, 0, 0,
9119 0, 0, 0, 0, 0, 0, 0, 0,
9120 0, 0, 0, 0, 0, 0, 0, 0,
9121 0, 0, 0, 0, 0, 0, 0, 0,
9122 0, 0, 0, 0, 0, 0, 0, 0,
9123 0, 0, 0, 0, 0, 0, 0, 0,
9124 0, 0, 0, 0, 0, 0, 0, 0,
9125 0, 0, 0, 0, 0, 0, 0, 0,
9126 0, 0, 0, 0, 0, 0, 0, 0,
9127 0, 0, 0, 0, 0, 0, 0, 0,
9128 0, 0, 0, 0, 0, 0, 0, 0,
9129 0, 0, 0, 0, 0, 0, 0, 0,
9130 0, 0, 0, 0, 0, 0, 0, 0,
9131 0, 0, 0, 0, 0, 0, 0, 0,
9132 0, 0, 0, 0, 0, 0, 0, 0,
9133 0, 0, 0, 0, 0, 0, 0, 0,
9134 0, 0, 0, 0, 0, 0, 0, 0,
9135 0, 0, 0, 0, 0, 0, 0, 0,
9136 0, 0, 0, 0, 0, 0, 0, 0,
9137 0, 0, 0, 0, 0, 0, 0, 0,
9138 0, 0, 0, 0, 0, 0, 0, 0,
9139 0, 0, 0, 0, 0, 0, 0, 0,
9140 0, 0, 0, 0, 0, 10, 0, 10,
9141 10, 10, 0, 0, 0, 0, 0, 0,
9142 0, 0, 0, 0, 0, 10, 10, 10,
9143 0, 0, 0, 0, 0, 0, 0, 0,
9144 0, 0, 0, 0, 0, 10, 10, 10,
9145 0, 0, 0, 0, 0, 0, 0, 0,
9146 0, 0, 0, 0, 0, 10, 10, 10,
9147 0, 0, 0, 0, 0, 0, 0, 0,
9148 0, 0, 0, 0, 0, 10, 10, 0,
9149};
9150
9151static const Q_UINT8 dir_20[] = {
9152 9, 9, 9, 9, 9, 9, 9, 9,
9153 9, 9, 9, 18, 18, 18, 0, 1,
9154 10, 10, 10, 10, 10, 10, 10, 10,
9155 10, 10, 10, 10, 10, 10, 10, 10,
9156 10, 10, 10, 10, 10, 10, 10, 10,
9157 9, 7, 11, 14, 16, 12, 15, 9,
9158 4, 4, 4, 4, 4, 10, 10, 10,
9159 10, 138, 138, 10, 10, 10, 10, 10,
9160 10, 10, 10, 10, 10, 138, 138, 0,
9161 10, 10, 10, 10, 10, 10, 0, 0,
9162 0, 0, 0, 0, 0, 0, 0, 0,
9163 0, 0, 0, 0, 0, 0, 0, 0,
9164 0, 0, 0, 0, 0, 0, 0, 0,
9165 0, 0, 18, 18, 18, 18, 18, 18,
9166 2, 0, 0, 0, 2, 2, 2, 2,
9167 2, 2, 4, 4, 10, 138, 138, 0,
9168 2, 2, 2, 2, 2, 2, 2, 2,
9169 2, 2, 4, 4, 10, 138, 138, 0,
9170 0, 0, 0, 0, 0, 0, 0, 0,
9171 0, 0, 0, 0, 0, 0, 0, 0,
9172 4, 4, 4, 4, 4, 4, 4, 4,
9173 4, 4, 4, 4, 4, 4, 4, 4,
9174 0, 0, 0, 0, 0, 0, 0, 0,
9175 0, 0, 0, 0, 0, 0, 0, 0,
9176 0, 0, 0, 0, 0, 0, 0, 0,
9177 0, 0, 0, 0, 0, 0, 0, 0,
9178 17, 17, 17, 17, 17, 17, 17, 17,
9179 17, 17, 17, 17, 17, 17, 17, 17,
9180 17, 17, 17, 17, 0, 0, 0, 0,
9181 0, 0, 0, 0, 0, 0, 0, 0,
9182 0, 0, 0, 0, 0, 0, 0, 0,
9183 0, 0, 0, 0, 0, 0, 0, 0,
9184};
9185
9186static const Q_UINT8 dir_21[] = {
9187 10, 10, 0, 10, 10, 10, 10, 0,
9188 10, 10, 0, 0, 0, 0, 0, 0,
9189 0, 0, 0, 0, 10, 0, 10, 10,
9190 10, 0, 0, 0, 0, 0, 10, 10,
9191 10, 10, 10, 10, 0, 10, 0, 10,
9192 0, 10, 0, 0, 0, 0, 4, 0,
9193 0, 0, 10, 0, 0, 0, 0, 0,
9194 0, 0, 10, 0, 0, 0, 0, 0,
9195 0, 0, 0, 0, 0, 0, 0, 0,
9196 0, 0, 0, 0, 0, 0, 0, 0,
9197 0, 0, 0, 10, 10, 10, 10, 10,
9198 10, 10, 10, 10, 10, 10, 10, 10,
9199 0, 0, 0, 0, 0, 0, 0, 0,
9200 0, 0, 0, 0, 0, 0, 0, 0,
9201 0, 0, 0, 0, 0, 0, 0, 0,
9202 0, 0, 0, 0, 0, 0, 0, 0,
9203 0, 0, 0, 0, 0, 0, 0, 0,
9204 0, 0, 0, 0, 0, 0, 0, 0,
9205 10, 10, 10, 10, 10, 10, 10, 10,
9206 10, 10, 10, 10, 10, 10, 10, 10,
9207 10, 10, 10, 10, 10, 10, 10, 10,
9208 10, 10, 10, 10, 10, 10, 10, 10,
9209 10, 10, 10, 10, 10, 10, 10, 10,
9210 10, 10, 10, 10, 10, 10, 10, 10,
9211 10, 10, 10, 10, 10, 10, 10, 10,
9212 10, 10, 10, 10, 10, 10, 10, 10,
9213 10, 10, 10, 10, 10, 10, 10, 10,
9214 10, 10, 10, 10, 10, 10, 10, 10,
9215 10, 10, 10, 10, 10, 10, 10, 10,
9216 10, 10, 10, 10, 10, 10, 10, 10,
9217 10, 10, 10, 10, 0, 0, 0, 0,
9218 0, 0, 0, 0, 0, 0, 0, 0,
9219};
9220
9221static const Q_UINT8 dir_22[] = {
9222 10, 138, 138, 138, 138, 10, 10, 10,
9223 138, 138, 138, 138, 138, 138, 10, 10,
9224 10, 138, 4, 4, 10, 138, 138, 10,
9225 10, 10, 138, 138, 138, 138, 10, 138,
9226 138, 138, 138, 10, 138, 10, 138, 10,
9227 10, 10, 10, 138, 138, 138, 138, 138,
9228 138, 138, 138, 138, 10, 10, 10, 10,
9229 10, 138, 10, 138, 138, 138, 138, 138,
9230 138, 138, 138, 138, 138, 138, 138, 138,
9231 138, 138, 138, 138, 138, 10, 10, 10,
9232 10, 10, 138, 138, 138, 138, 10, 10,
9233 10, 10, 10, 10, 10, 10, 10, 138,
9234 138, 10, 138, 10, 138, 138, 138, 138,
9235 138, 138, 138, 138, 10, 10, 138, 138,
9236 138, 138, 138, 138, 138, 138, 138, 138,
9237 138, 138, 138, 138, 138, 138, 138, 138,
9238 138, 138, 138, 138, 138, 138, 138, 138,
9239 138, 138, 138, 138, 138, 10, 10, 138,
9240 138, 138, 138, 10, 10, 10, 10, 10,
9241 138, 10, 10, 10, 10, 10, 10, 10,
9242 10, 10, 138, 138, 10, 10, 138, 138,
9243 138, 138, 138, 138, 138, 138, 138, 138,
9244 138, 138, 138, 138, 138, 138, 138, 138,
9245 138, 10, 10, 10, 10, 10, 138, 138,
9246 10, 10, 10, 10, 10, 10, 10, 10,
9247 10, 138, 138, 138, 138, 138, 10, 10,
9248 138, 138, 10, 10, 10, 10, 138, 138,
9249 138, 138, 138, 138, 138, 138, 138, 138,
9250 138, 138, 138, 138, 138, 138, 138, 138,
9251 138, 138, 138, 138, 138, 138, 10, 10,
9252 138, 138, 0, 0, 0, 0, 0, 0,
9253 0, 0, 0, 0, 0, 0, 0, 0,
9254};
9255
9256static const Q_UINT8 dir_23[] = {
9257 10, 10, 10, 10, 10, 10, 10, 10,
9258 138, 138, 138, 138, 10, 10, 10, 10,
9259 10, 10, 10, 10, 10, 10, 10, 10,
9260 10, 10, 10, 10, 10, 10, 10, 10,
9261 138, 138, 10, 10, 10, 10, 10, 10,
9262 10, 138, 138, 10, 10, 10, 10, 10,
9263 10, 10, 10, 10, 10, 10, 0, 0,
9264 0, 0, 0, 0, 0, 0, 0, 0,
9265 0, 0, 0, 0, 0, 0, 0, 0,
9266 0, 0, 0, 0, 0, 0, 0, 0,
9267 0, 0, 0, 0, 0, 0, 0, 0,
9268 0, 0, 0, 0, 0, 0, 0, 0,
9269 0, 0, 0, 0, 0, 0, 0, 0,
9270 0, 0, 0, 0, 0, 0, 0, 0,
9271 0, 0, 0, 0, 0, 0, 0, 0,
9272 0, 0, 0, 10, 0, 10, 10, 10,
9273 10, 10, 10, 10, 10, 10, 10, 10,
9274 10, 10, 10, 10, 10, 10, 10, 10,
9275 10, 10, 10, 10, 10, 0, 10, 10,
9276 10, 10, 10, 0, 0, 0, 0, 0,
9277 0, 0, 0, 0, 0, 0, 0, 0,
9278 0, 0, 0, 0, 0, 0, 0, 0,
9279 0, 0, 0, 0, 0, 0, 0, 0,
9280 0, 0, 0, 0, 0, 0, 0, 0,
9281 0, 0, 0, 0, 0, 0, 0, 0,
9282 0, 0, 0, 0, 0, 0, 0, 0,
9283 0, 0, 0, 0, 0, 0, 0, 0,
9284 0, 0, 0, 0, 0, 0, 0, 0,
9285 0, 0, 0, 0, 0, 0, 0, 0,
9286 0, 0, 0, 0, 0, 0, 0, 0,
9287 0, 0, 0, 0, 0, 0, 0, 0,
9288 0, 0, 0, 0, 0, 0, 0, 0,
9289};
9290
9291static const Q_UINT8 dir_24[] = {
9292 10, 10, 10, 10, 10, 10, 10, 10,
9293 10, 10, 10, 10, 10, 10, 10, 10,
9294 10, 10, 10, 10, 10, 10, 10, 10,
9295 10, 10, 10, 10, 10, 10, 10, 10,
9296 10, 10, 10, 10, 10, 10, 10, 0,
9297 0, 0, 0, 0, 0, 0, 0, 0,
9298 0, 0, 0, 0, 0, 0, 0, 0,
9299 0, 0, 0, 0, 0, 0, 0, 0,
9300 10, 10, 10, 10, 10, 10, 10, 10,
9301 10, 10, 10, 0, 0, 0, 0, 0,
9302 0, 0, 0, 0, 0, 0, 0, 0,
9303 0, 0, 0, 0, 0, 0, 0, 0,
9304 2, 2, 2, 2, 2, 2, 2, 2,
9305 2, 2, 2, 2, 2, 2, 2, 2,
9306 2, 2, 2, 2, 2, 2, 2, 2,
9307 2, 2, 2, 2, 2, 2, 2, 2,
9308 2, 2, 2, 2, 2, 2, 2, 2,
9309 2, 2, 2, 2, 2, 2, 2, 2,
9310 2, 2, 2, 2, 2, 2, 2, 2,
9311 2, 2, 2, 2, 0, 0, 0, 0,
9312 0, 0, 0, 0, 0, 0, 0, 0,
9313 0, 0, 0, 0, 0, 0, 0, 0,
9314 0, 0, 0, 0, 0, 0, 0, 0,
9315 0, 0, 0, 0, 0, 0, 0, 0,
9316 0, 0, 0, 0, 0, 0, 0, 0,
9317 0, 0, 0, 0, 0, 0, 0, 0,
9318 0, 0, 0, 0, 0, 0, 0, 0,
9319 0, 0, 0, 0, 0, 0, 0, 0,
9320 0, 0, 0, 0, 0, 0, 0, 0,
9321 0, 0, 2, 0, 0, 0, 0, 0,
9322 0, 0, 0, 0, 0, 0, 0, 0,
9323 0, 0, 0, 0, 0, 0, 0, 0,
9324};
9325
9326static const Q_UINT8 dir_25[] = {
9327 10, 10, 10, 10, 10, 10, 10, 10,
9328 10, 10, 10, 10, 10, 10, 10, 10,
9329 10, 10, 10, 10, 10, 10, 10, 10,
9330 10, 10, 10, 10, 10, 10, 10, 10,
9331 10, 10, 10, 10, 10, 10, 10, 10,
9332 10, 10, 10, 10, 10, 10, 10, 10,
9333 10, 10, 10, 10, 10, 10, 10, 10,
9334 10, 10, 10, 10, 10, 10, 10, 10,
9335 10, 10, 10, 10, 10, 10, 10, 10,
9336 10, 10, 10, 10, 10, 10, 10, 10,
9337 10, 10, 10, 10, 10, 10, 10, 10,
9338 10, 10, 10, 10, 10, 10, 10, 10,
9339 10, 10, 10, 10, 10, 10, 10, 10,
9340 10, 10, 10, 10, 10, 10, 10, 10,
9341 10, 10, 10, 10, 10, 10, 10, 10,
9342 10, 10, 10, 10, 10, 10, 10, 10,
9343 10, 10, 10, 10, 10, 10, 10, 10,
9344 10, 10, 10, 10, 10, 10, 10, 10,
9345 10, 10, 10, 10, 10, 10, 0, 0,
9346 0, 0, 0, 0, 0, 0, 0, 0,
9347 10, 10, 10, 10, 10, 10, 10, 10,
9348 10, 10, 10, 10, 10, 10, 10, 10,
9349 10, 10, 10, 10, 10, 10, 10, 10,
9350 10, 10, 10, 10, 10, 10, 10, 10,
9351 10, 10, 10, 10, 10, 10, 10, 10,
9352 10, 10, 10, 10, 10, 10, 10, 10,
9353 10, 10, 10, 10, 10, 10, 10, 10,
9354 10, 10, 10, 10, 10, 10, 10, 10,
9355 10, 10, 10, 10, 10, 10, 10, 10,
9356 10, 10, 10, 10, 10, 10, 10, 10,
9357 10, 10, 10, 10, 10, 10, 10, 10,
9358 0, 0, 0, 0, 0, 0, 0, 0,
9359};
9360
9361static const Q_UINT8 dir_26[] = {
9362 10, 10, 10, 10, 10, 10, 10, 10,
9363 10, 10, 10, 10, 10, 10, 10, 10,
9364 10, 10, 10, 10, 0, 0, 0, 0,
9365 0, 10, 10, 10, 10, 10, 10, 10,
9366 10, 10, 10, 10, 10, 10, 10, 10,
9367 10, 10, 10, 10, 10, 10, 10, 10,
9368 10, 10, 10, 10, 10, 10, 10, 10,
9369 10, 10, 10, 10, 10, 10, 10, 10,
9370 10, 10, 10, 10, 10, 10, 10, 10,
9371 10, 10, 10, 10, 10, 10, 10, 10,
9372 10, 10, 10, 10, 10, 10, 10, 10,
9373 10, 10, 10, 10, 10, 10, 10, 10,
9374 10, 10, 10, 10, 10, 10, 10, 10,
9375 10, 10, 10, 10, 10, 10, 10, 10,
9376 10, 10, 0, 0, 0, 0, 0, 0,
9377 0, 0, 0, 0, 0, 0, 0, 0,
9378 0, 0, 0, 0, 0, 0, 0, 0,
9379 0, 0, 0, 0, 0, 0, 0, 0,
9380 0, 0, 0, 0, 0, 0, 0, 0,
9381 0, 0, 0, 0, 0, 0, 0, 0,
9382 0, 0, 0, 0, 0, 0, 0, 0,
9383 0, 0, 0, 0, 0, 0, 0, 0,
9384 0, 0, 0, 0, 0, 0, 0, 0,
9385 0, 0, 0, 0, 0, 0, 0, 0,
9386 0, 0, 0, 0, 0, 0, 0, 0,
9387 0, 0, 0, 0, 0, 0, 0, 0,
9388 0, 0, 0, 0, 0, 0, 0, 0,
9389 0, 0, 0, 0, 0, 0, 0, 0,
9390 0, 0, 0, 0, 0, 0, 0, 0,
9391 0, 0, 0, 0, 0, 0, 0, 0,
9392 0, 0, 0, 0, 0, 0, 0, 0,
9393 0, 0, 0, 0, 0, 0, 0, 0,
9394};
9395
9396static const Q_UINT8 dir_27[] = {
9397 0, 10, 10, 10, 10, 0, 10, 10,
9398 10, 10, 0, 0, 10, 10, 10, 10,
9399 10, 10, 10, 10, 10, 10, 10, 10,
9400 10, 10, 10, 10, 10, 10, 10, 10,
9401 10, 10, 10, 10, 10, 10, 10, 10,
9402 0, 10, 10, 10, 10, 10, 10, 10,
9403 10, 10, 10, 10, 10, 10, 10, 10,
9404 10, 10, 10, 10, 10, 10, 10, 10,
9405 10, 10, 10, 10, 10, 10, 10, 10,
9406 10, 10, 10, 10, 0, 10, 0, 10,
9407 10, 10, 10, 0, 0, 0, 10, 0,
9408 10, 10, 10, 10, 10, 10, 10, 0,
9409 0, 10, 10, 10, 10, 10, 10, 10,
9410 0, 0, 0, 0, 0, 0, 0, 0,
9411 0, 0, 0, 0, 0, 0, 10, 10,
9412 10, 10, 10, 10, 10, 10, 10, 10,
9413 10, 10, 10, 10, 10, 10, 10, 10,
9414 10, 10, 10, 10, 10, 10, 10, 10,
9415 10, 10, 10, 10, 10, 0, 0, 0,
9416 10, 10, 10, 10, 10, 10, 10, 10,
9417 10, 10, 10, 10, 10, 10, 10, 10,
9418 10, 10, 10, 10, 10, 10, 10, 10,
9419 0, 10, 10, 10, 10, 10, 10, 10,
9420 10, 10, 10, 10, 10, 10, 10, 0,
9421 0, 0, 0, 0, 0, 0, 0, 0,
9422 0, 0, 0, 0, 0, 0, 0, 0,
9423 0, 0, 0, 0, 0, 0, 0, 0,
9424 0, 0, 0, 0, 0, 0, 0, 0,
9425 0, 0, 0, 0, 0, 0, 0, 0,
9426 0, 0, 0, 0, 0, 0, 0, 0,
9427 0, 0, 0, 0, 0, 0, 0, 0,
9428 0, 0, 0, 0, 0, 0, 0, 0,
9429};
9430
9431static const Q_UINT8 dir_28[] = {
9432 10, 10, 10, 10, 10, 10, 10, 10,
9433 10, 10, 10, 10, 10, 10, 10, 10,
9434 10, 10, 10, 10, 10, 10, 10, 10,
9435 10, 10, 10, 10, 10, 10, 10, 10,
9436 10, 10, 10, 10, 10, 10, 10, 10,
9437 10, 10, 10, 10, 10, 10, 10, 10,
9438 10, 10, 10, 10, 10, 10, 10, 10,
9439 10, 10, 10, 10, 10, 10, 10, 10,
9440 10, 10, 10, 10, 10, 10, 10, 10,
9441 10, 10, 10, 10, 10, 10, 10, 10,
9442 10, 10, 10, 10, 10, 10, 10, 10,
9443 10, 10, 10, 10, 10, 10, 10, 10,
9444 10, 10, 10, 10, 10, 10, 10, 10,
9445 10, 10, 10, 10, 10, 10, 10, 10,
9446 10, 10, 10, 10, 10, 10, 10, 10,
9447 10, 10, 10, 10, 10, 10, 10, 10,
9448 10, 10, 10, 10, 10, 10, 10, 10,
9449 10, 10, 10, 10, 10, 10, 10, 10,
9450 10, 10, 10, 10, 10, 10, 10, 10,
9451 10, 10, 10, 10, 10, 10, 10, 10,
9452 10, 10, 10, 10, 10, 10, 10, 10,
9453 10, 10, 10, 10, 10, 10, 10, 10,
9454 10, 10, 10, 10, 10, 10, 10, 10,
9455 10, 10, 10, 10, 10, 10, 10, 10,
9456 10, 10, 10, 10, 10, 10, 10, 10,
9457 10, 10, 10, 10, 10, 10, 10, 10,
9458 10, 10, 10, 10, 10, 10, 10, 10,
9459 10, 10, 10, 10, 10, 10, 10, 10,
9460 10, 10, 10, 10, 10, 10, 10, 10,
9461 10, 10, 10, 10, 10, 10, 10, 10,
9462 10, 10, 10, 10, 10, 10, 10, 10,
9463 10, 10, 10, 10, 10, 10, 10, 10,
9464};
9465
9466static const Q_UINT8 dir_2E[] = {
9467 0, 0, 0, 0, 0, 0, 0, 0,
9468 0, 0, 0, 0, 0, 0, 0, 0,
9469 0, 0, 0, 0, 0, 0, 0, 0,
9470 0, 0, 0, 0, 0, 0, 0, 0,
9471 0, 0, 0, 0, 0, 0, 0, 0,
9472 0, 0, 0, 0, 0, 0, 0, 0,
9473 0, 0, 0, 0, 0, 0, 0, 0,
9474 0, 0, 0, 0, 0, 0, 0, 0,
9475 0, 0, 0, 0, 0, 0, 0, 0,
9476 0, 0, 0, 0, 0, 0, 0, 0,
9477 0, 0, 0, 0, 0, 0, 0, 0,
9478 0, 0, 0, 0, 0, 0, 0, 0,
9479 0, 0, 0, 0, 0, 0, 0, 0,
9480 0, 0, 0, 0, 0, 0, 0, 0,
9481 0, 0, 0, 0, 0, 0, 0, 0,
9482 0, 0, 0, 0, 0, 0, 0, 0,
9483 10, 10, 10, 10, 10, 10, 10, 10,
9484 10, 10, 10, 10, 10, 10, 10, 10,
9485 10, 10, 10, 10, 10, 10, 10, 10,
9486 10, 10, 0, 10, 10, 10, 10, 10,
9487 10, 10, 10, 10, 10, 10, 10, 10,
9488 10, 10, 10, 10, 10, 10, 10, 10,
9489 10, 10, 10, 10, 10, 10, 10, 10,
9490 10, 10, 10, 10, 10, 10, 10, 10,
9491 10, 10, 10, 10, 10, 10, 10, 10,
9492 10, 10, 10, 10, 10, 10, 10, 10,
9493 10, 10, 10, 10, 10, 10, 10, 10,
9494 10, 10, 10, 10, 10, 10, 10, 10,
9495 10, 10, 10, 10, 10, 10, 10, 10,
9496 10, 10, 10, 10, 10, 10, 10, 10,
9497 10, 10, 10, 10, 0, 0, 0, 0,
9498 0, 0, 0, 0, 0, 0, 0, 0,
9499};
9500
9501static const Q_UINT8 dir_2F[] = {
9502 10, 10, 10, 10, 10, 10, 10, 10,
9503 10, 10, 10, 10, 10, 10, 10, 10,
9504 10, 10, 10, 10, 10, 10, 10, 10,
9505 10, 10, 10, 10, 10, 10, 10, 10,
9506 10, 10, 10, 10, 10, 10, 10, 10,
9507 10, 10, 10, 10, 10, 10, 10, 10,
9508 10, 10, 10, 10, 10, 10, 10, 10,
9509 10, 10, 10, 10, 10, 10, 10, 10,
9510 10, 10, 10, 10, 10, 10, 10, 10,
9511 10, 10, 10, 10, 10, 10, 10, 10,
9512 10, 10, 10, 10, 10, 10, 10, 10,
9513 10, 10, 10, 10, 10, 10, 10, 10,
9514 10, 10, 10, 10, 10, 10, 10, 10,
9515 10, 10, 10, 10, 10, 10, 10, 10,
9516 10, 10, 10, 10, 10, 10, 10, 10,
9517 10, 10, 10, 10, 10, 10, 10, 10,
9518 10, 10, 10, 10, 10, 10, 10, 10,
9519 10, 10, 10, 10, 10, 10, 10, 10,
9520 10, 10, 10, 10, 10, 10, 10, 10,
9521 10, 10, 10, 10, 10, 10, 10, 10,
9522 10, 10, 10, 10, 10, 10, 10, 10,
9523 10, 10, 10, 10, 10, 10, 10, 10,
9524 10, 10, 10, 10, 10, 10, 10, 10,
9525 10, 10, 10, 10, 10, 10, 10, 10,
9526 10, 10, 10, 10, 10, 10, 10, 10,
9527 10, 10, 10, 10, 10, 10, 10, 10,
9528 10, 10, 10, 10, 10, 10, 0, 0,
9529 0, 0, 0, 0, 0, 0, 0, 0,
9530 0, 0, 0, 0, 0, 0, 0, 0,
9531 0, 0, 0, 0, 0, 0, 0, 0,
9532 10, 10, 10, 10, 10, 10, 10, 10,
9533 10, 10, 10, 10, 0, 0, 0, 0,
9534};
9535
9536static const Q_UINT8 dir_30[] = {
9537 9, 10, 10, 10, 10, 0, 0, 0,
9538 138, 138, 138, 138, 138, 138, 138, 138,
9539 138, 138, 10, 10, 138, 138, 138, 138,
9540 138, 138, 138, 138, 10, 10, 10, 10,
9541 10, 0, 0, 0, 0, 0, 0, 0,
9542 0, 0, 17, 17, 17, 17, 17, 17,
9543 10, 0, 0, 0, 0, 0, 10, 10,
9544 0, 0, 0, 0, 0, 0, 10, 10,
9545 0, 0, 0, 0, 0, 0, 0, 0,
9546 0, 0, 0, 0, 0, 0, 0, 0,
9547 0, 0, 0, 0, 0, 0, 0, 0,
9548 0, 0, 0, 0, 0, 0, 0, 0,
9549 0, 0, 0, 0, 0, 0, 0, 0,
9550 0, 0, 0, 0, 0, 0, 0, 0,
9551 0, 0, 0, 0, 0, 0, 0, 0,
9552 0, 0, 0, 0, 0, 0, 0, 0,
9553 0, 0, 0, 0, 0, 0, 0, 0,
9554 0, 0, 0, 0, 0, 0, 0, 0,
9555 0, 0, 0, 0, 0, 0, 0, 0,
9556 0, 17, 17, 10, 10, 0, 0, 0,
9557 0, 0, 0, 0, 0, 0, 0, 0,
9558 0, 0, 0, 0, 0, 0, 0, 0,
9559 0, 0, 0, 0, 0, 0, 0, 0,
9560 0, 0, 0, 0, 0, 0, 0, 0,
9561 0, 0, 0, 0, 0, 0, 0, 0,
9562 0, 0, 0, 0, 0, 0, 0, 0,
9563 0, 0, 0, 0, 0, 0, 0, 0,
9564 0, 0, 0, 0, 0, 0, 0, 0,
9565 0, 0, 0, 0, 0, 0, 0, 0,
9566 0, 0, 0, 0, 0, 0, 0, 0,
9567 0, 0, 0, 0, 0, 0, 0, 0,
9568 0, 0, 0, 10, 0, 0, 0, 0,
9569};
9570
9571static const Q_UINT8 dir_A4[] = {
9572 0, 0, 0, 0, 0, 0, 0, 0,
9573 0, 0, 0, 0, 0, 0, 0, 0,
9574 0, 0, 0, 0, 0, 0, 0, 0,
9575 0, 0, 0, 0, 0, 0, 0, 0,
9576 0, 0, 0, 0, 0, 0, 0, 0,
9577 0, 0, 0, 0, 0, 0, 0, 0,
9578 0, 0, 0, 0, 0, 0, 0, 0,
9579 0, 0, 0, 0, 0, 0, 0, 0,
9580 0, 0, 0, 0, 0, 0, 0, 0,
9581 0, 0, 0, 0, 0, 0, 0, 0,
9582 0, 0, 0, 0, 0, 0, 0, 0,
9583 0, 0, 0, 0, 0, 0, 0, 0,
9584 0, 0, 0, 0, 0, 0, 0, 0,
9585 0, 0, 0, 0, 0, 0, 0, 0,
9586 0, 0, 0, 0, 0, 0, 0, 0,
9587 0, 0, 0, 0, 0, 0, 0, 0,
9588 0, 0, 0, 0, 0, 0, 0, 0,
9589 0, 0, 0, 0, 0, 0, 0, 0,
9590 10, 10, 10, 10, 10, 10, 10, 10,
9591 10, 10, 10, 10, 10, 10, 10, 10,
9592 10, 10, 0, 0, 10, 10, 10, 10,
9593 10, 10, 10, 10, 10, 10, 10, 10,
9594 10, 10, 10, 10, 0, 10, 10, 10,
9595 10, 10, 10, 10, 10, 10, 10, 10,
9596 10, 0, 10, 10, 10, 0, 10, 0,
9597 0, 0, 0, 0, 0, 0, 0, 0,
9598 0, 0, 0, 0, 0, 0, 0, 0,
9599 0, 0, 0, 0, 0, 0, 0, 0,
9600 0, 0, 0, 0, 0, 0, 0, 0,
9601 0, 0, 0, 0, 0, 0, 0, 0,
9602 0, 0, 0, 0, 0, 0, 0, 0,
9603 0, 0, 0, 0, 0, 0, 0, 0,
9604};
9605
9606static const Q_UINT8 dir_FB[] = {
9607 0, 0, 0, 0, 0, 0, 0, 0,
9608 0, 0, 0, 0, 0, 0, 0, 0,
9609 0, 0, 0, 0, 0, 0, 0, 0,
9610 0, 0, 0, 0, 0, 1, 17, 1,
9611 1, 1, 1, 1, 1, 1, 1, 1,
9612 1, 4, 1, 1, 1, 1, 1, 1,
9613 1, 1, 1, 1, 1, 1, 1, 0,
9614 1, 1, 1, 1, 1, 0, 1, 0,
9615 1, 1, 0, 1, 1, 0, 1, 1,
9616 1, 1, 1, 1, 1, 1, 1, 1,
9617 13, 13, 13, 13, 13, 13, 13, 13,
9618 13, 13, 13, 13, 13, 13, 13, 13,
9619 13, 13, 13, 13, 13, 13, 13, 13,
9620 13, 13, 13, 13, 13, 13, 13, 13,
9621 13, 13, 13, 13, 13, 13, 13, 13,
9622 13, 13, 13, 13, 13, 13, 13, 13,
9623 13, 13, 13, 13, 13, 13, 13, 13,
9624 13, 13, 13, 13, 13, 13, 13, 13,
9625 13, 13, 13, 13, 13, 13, 13, 13,
9626 13, 13, 13, 13, 13, 13, 13, 13,
9627 13, 13, 13, 13, 13, 13, 13, 13,
9628 13, 13, 13, 13, 13, 13, 13, 13,
9629 13, 13, 0, 0, 0, 0, 0, 0,
9630 0, 0, 0, 0, 0, 0, 0, 0,
9631 0, 0, 0, 0, 0, 0, 0, 0,
9632 0, 0, 0, 0, 0, 0, 0, 0,
9633 0, 0, 0, 13, 13, 13, 13, 13,
9634 13, 13, 13, 13, 13, 13, 13, 13,
9635 13, 13, 13, 13, 13, 13, 13, 13,
9636 13, 13, 13, 13, 13, 13, 13, 13,
9637 13, 13, 13, 13, 13, 13, 13, 13,
9638 13, 13, 13, 13, 13, 13, 13, 13,
9639};
9640
9641static const Q_UINT8 dir_FC[] = {
9642 13, 13, 13, 13, 13, 13, 13, 13,
9643 13, 13, 13, 13, 13, 13, 13, 13,
9644 13, 13, 13, 13, 13, 13, 13, 13,
9645 13, 13, 13, 13, 13, 13, 13, 13,
9646 13, 13, 13, 13, 13, 13, 13, 13,
9647 13, 13, 13, 13, 13, 13, 13, 13,
9648 13, 13, 13, 13, 13, 13, 13, 13,
9649 13, 13, 13, 13, 13, 13, 13, 13,
9650 13, 13, 13, 13, 13, 13, 13, 13,
9651 13, 13, 13, 13, 13, 13, 13, 13,
9652 13, 13, 13, 13, 13, 13, 13, 13,
9653 13, 13, 13, 13, 13, 13, 13, 13,
9654 13, 13, 13, 13, 13, 13, 13, 13,
9655 13, 13, 13, 13, 13, 13, 13, 13,
9656 13, 13, 13, 13, 13, 13, 13, 13,
9657 13, 13, 13, 13, 13, 13, 13, 13,
9658 13, 13, 13, 13, 13, 13, 13, 13,
9659 13, 13, 13, 13, 13, 13, 13, 13,
9660 13, 13, 13, 13, 13, 13, 13, 13,
9661 13, 13, 13, 13, 13, 13, 13, 13,
9662 13, 13, 13, 13, 13, 13, 13, 13,
9663 13, 13, 13, 13, 13, 13, 13, 13,
9664 13, 13, 13, 13, 13, 13, 13, 13,
9665 13, 13, 13, 13, 13, 13, 13, 13,
9666 13, 13, 13, 13, 13, 13, 13, 13,
9667 13, 13, 13, 13, 13, 13, 13, 13,
9668 13, 13, 13, 13, 13, 13, 13, 13,
9669 13, 13, 13, 13, 13, 13, 13, 13,
9670 13, 13, 13, 13, 13, 13, 13, 13,
9671 13, 13, 13, 13, 13, 13, 13, 13,
9672 13, 13, 13, 13, 13, 13, 13, 13,
9673 13, 13, 13, 13, 13, 13, 13, 13,
9674};
9675
9676static const Q_UINT8 dir_FD[] = {
9677 13, 13, 13, 13, 13, 13, 13, 13,
9678 13, 13, 13, 13, 13, 13, 13, 13,
9679 13, 13, 13, 13, 13, 13, 13, 13,
9680 13, 13, 13, 13, 13, 13, 13, 13,
9681 13, 13, 13, 13, 13, 13, 13, 13,
9682 13, 13, 13, 13, 13, 13, 13, 13,
9683 13, 13, 13, 13, 13, 13, 13, 13,
9684 13, 13, 13, 13, 13, 13, 10, 10,
9685 0, 0, 0, 0, 0, 0, 0, 0,
9686 0, 0, 0, 0, 0, 0, 0, 0,
9687 13, 13, 13, 13, 13, 13, 13, 13,
9688 13, 13, 13, 13, 13, 13, 13, 13,
9689 13, 13, 13, 13, 13, 13, 13, 13,
9690 13, 13, 13, 13, 13, 13, 13, 13,
9691 13, 13, 13, 13, 13, 13, 13, 13,
9692 13, 13, 13, 13, 13, 13, 13, 13,
9693 13, 13, 13, 13, 13, 13, 13, 13,
9694 13, 13, 13, 13, 13, 13, 13, 13,
9695 0, 0, 13, 13, 13, 13, 13, 13,
9696 13, 13, 13, 13, 13, 13, 13, 13,
9697 13, 13, 13, 13, 13, 13, 13, 13,
9698 13, 13, 13, 13, 13, 13, 13, 13,
9699 13, 13, 13, 13, 13, 13, 13, 13,
9700 13, 13, 13, 13, 13, 13, 13, 13,
9701 13, 13, 13, 13, 13, 13, 13, 13,
9702 0, 0, 0, 0, 0, 0, 0, 0,
9703 0, 0, 0, 0, 0, 0, 0, 0,
9704 0, 0, 0, 0, 0, 0, 0, 0,
9705 0, 0, 0, 0, 0, 0, 0, 0,
9706 0, 0, 0, 0, 0, 0, 0, 0,
9707 13, 13, 13, 13, 13, 13, 13, 13,
9708 13, 13, 13, 13, 0, 0, 0, 0,
9709};
9710
9711static const Q_UINT8 dir_FE[] = {
9712 0, 0, 0, 0, 0, 0, 0, 0,
9713 0, 0, 0, 0, 0, 0, 0, 0,
9714 0, 0, 0, 0, 0, 0, 0, 0,
9715 0, 0, 0, 0, 0, 0, 0, 0,
9716 17, 17, 17, 17, 0, 0, 0, 0,
9717 0, 0, 0, 0, 0, 0, 0, 0,
9718 10, 10, 10, 10, 10, 10, 10, 10,
9719 10, 10, 10, 10, 10, 10, 10, 10,
9720 10, 10, 10, 10, 10, 0, 0, 0,
9721 0, 10, 10, 10, 10, 10, 10, 10,
9722 6, 10, 6, 0, 10, 6, 10, 10,
9723 10, 10, 10, 10, 10, 10, 10, 4,
9724 10, 10, 4, 4, 10, 10, 10, 0,
9725 10, 4, 4, 10, 0, 0, 0, 0,
9726 13, 13, 13, 0, 13, 0, 13, 13,
9727 13, 13, 13, 13, 13, 13, 13, 13,
9728 13, 13, 13, 13, 13, 13, 13, 13,
9729 13, 13, 13, 13, 13, 13, 13, 13,
9730 13, 13, 13, 13, 13, 13, 13, 13,
9731 13, 13, 13, 13, 13, 13, 13, 13,
9732 13, 13, 13, 13, 13, 13, 13, 13,
9733 13, 13, 13, 13, 13, 13, 13, 13,
9734 13, 13, 13, 13, 13, 13, 13, 13,
9735 13, 13, 13, 13, 13, 13, 13, 13,
9736 13, 13, 13, 13, 13, 13, 13, 13,
9737 13, 13, 13, 13, 13, 13, 13, 13,
9738 13, 13, 13, 13, 13, 13, 13, 13,
9739 13, 13, 13, 13, 13, 13, 13, 13,
9740 13, 13, 13, 13, 13, 13, 13, 13,
9741 13, 13, 13, 13, 13, 13, 13, 13,
9742 13, 13, 13, 13, 13, 13, 13, 13,
9743 13, 13, 13, 13, 13, 0, 0, 18,
9744};
9745
9746static const Q_UINT8 dir_FF[] = {
9747 0, 10, 10, 4, 4, 4, 10, 10,
9748 10, 10, 10, 4, 6, 4, 6, 3,
9749 2, 2, 2, 2, 2, 2, 2, 2,
9750 2, 2, 6, 10, 10, 10, 10, 10,
9751 10, 0, 0, 0, 0, 0, 0, 0,
9752 0, 0, 0, 0, 0, 0, 0, 0,
9753 0, 0, 0, 0, 0, 0, 0, 0,
9754 0, 0, 0, 10, 10, 10, 10, 10,
9755 10, 0, 0, 0, 0, 0, 0, 0,
9756 0, 0, 0, 0, 0, 0, 0, 0,
9757 0, 0, 0, 0, 0, 0, 0, 0,
9758 0, 0, 0, 10, 10, 10, 10, 0,
9759 0, 10, 10, 10, 10, 10, 0, 0,
9760 0, 0, 0, 0, 0, 0, 0, 0,
9761 0, 0, 0, 0, 0, 0, 0, 0,
9762 0, 0, 0, 0, 0, 0, 0, 0,
9763 0, 0, 0, 0, 0, 0, 0, 0,
9764 0, 0, 0, 0, 0, 0, 0, 0,
9765 0, 0, 0, 0, 0, 0, 0, 0,
9766 0, 0, 0, 0, 0, 0, 0, 0,
9767 0, 0, 0, 0, 0, 0, 0, 0,
9768 0, 0, 0, 0, 0, 0, 0, 0,
9769 0, 0, 0, 0, 0, 0, 0, 0,
9770 0, 0, 0, 0, 0, 0, 0, 0,
9771 0, 0, 0, 0, 0, 0, 0, 0,
9772 0, 0, 0, 0, 0, 0, 0, 0,
9773 0, 0, 0, 0, 0, 0, 0, 0,
9774 0, 0, 0, 0, 0, 0, 0, 0,
9775 4, 4, 10, 10, 10, 4, 4, 0,
9776 10, 10, 10, 10, 10, 10, 10, 0,
9777 0, 0, 0, 0, 0, 0, 0, 0,
9778 0, 18, 18, 18, 10, 10, 0, 0,
9779};
9780
9781static const Q_UINT8 * const direction_info[256] = {
9782 dir_00, dir_01, dir_02, dir_03, dir_04, dir_05, dir_06, dir_07,
9783 dir_01, dir_09, dir_0A, dir_0B, dir_0C, dir_0D, dir_0E, dir_0F,
9784 dir_10, dir_01, dir_01, dir_01, dir_01, dir_01, dir_16, dir_17,
9785 dir_18, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_1F,
9786 dir_20, dir_21, dir_22, dir_23, dir_24, dir_25, dir_26, dir_27,
9787 dir_28, dir_01, dir_01, dir_01, dir_01, dir_01, dir_2E, dir_2F,
9788 dir_30, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9789 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9790 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9791 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9792 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9793 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9794 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9795 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9796 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9797 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9798 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9799 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9800 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9801 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9802 dir_01, dir_01, dir_01, dir_01, dir_A4, dir_01, dir_01, dir_01,
9803 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9804 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9805 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9806 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9807 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9808 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9809 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9810 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9811 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9812 dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01, dir_01,
9813 dir_01, dir_01, dir_01, dir_FB, dir_FC, dir_FD, dir_FE, dir_FF,
9814};
9815// 26940 bytes
9816
9817#endif
9818
9819// END OF GENERATED DATA
9820
9821// This is generated too. Script?
9822
9823#ifndef QT_NO_UNICODETABLES
9824
9825static const Q_UINT16 case_0 [] = {
9826 0, 0, 0, 0, 0, 0, 0, 0,
9827 0, 0, 0, 0, 0, 0, 0, 0,
9828 0, 0, 0, 0, 0, 0, 0, 0,
9829 0, 0, 0, 0, 0, 0, 0, 0,
9830 0, 0, 0, 0, 0, 0, 0, 0,
9831 0, 0, 0, 0, 0, 0, 0, 0,
9832 0, 0, 0, 0, 0, 0, 0, 0,
9833 0, 0, 0, 0, 0, 0, 0, 0,
9834 0, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66, 0x67,
9835 0x68, 0x69, 0x6a, 0x6b, 0x6c, 0x6d, 0x6e, 0x6f,
9836 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76, 0x77,
9837 0x78, 0x79, 0x7a, 0, 0, 0, 0, 0,
9838 0, 0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47,
9839 0x48, 0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f,
9840 0x50, 0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57,
9841 0x58, 0x59, 0x5a, 0, 0, 0, 0, 0,
9842 0, 0, 0, 0, 0, 0, 0, 0,
9843 0, 0, 0, 0, 0, 0, 0, 0,
9844 0, 0, 0, 0, 0, 0, 0, 0,
9845 0, 0, 0, 0, 0, 0, 0, 0,
9846 0, 0, 0, 0, 0, 0, 0, 0,
9847 0, 0, 0x0, 0, 0, 0, 0, 0,
9848 0, 0, 0, 0, 0, 0x0, 0, 0,
9849 0, 0, 0x0, 0, 0, 0, 0, 0,
9850 0xe0, 0xe1, 0xe2, 0xe3, 0xe4, 0xe5, 0xe6, 0xe7,
9851 0xe8, 0xe9, 0xea, 0xeb, 0xec, 0xed, 0xee, 0xef,
9852 0xf0, 0xf1, 0xf2, 0xf3, 0xf4, 0xf5, 0xf6, 0,
9853 0xf8, 0xf9, 0xfa, 0xfb, 0xfc, 0xfd, 0xfe, 0x0,
9854 0xc0, 0xc1, 0xc2, 0xc3, 0xc4, 0xc5, 0xc6, 0xc7,
9855 0xc8, 0xc9, 0xca, 0xcb, 0xcc, 0xcd, 0xce, 0xcf,
9856 0xd0, 0xd1, 0xd2, 0xd3, 0xd4, 0xd5, 0xd6, 0,
9857 0xd8, 0xd9, 0xda, 0xdb, 0xdc, 0xdd, 0xde, 0x178,
9858};
9859
9860static const Q_UINT16 case_1 [] = {
9861 0x101, 0x100, 0x103, 0x102, 0x105, 0x104, 0x107, 0x106,
9862 0x109, 0x108, 0x10b, 0x10a, 0x10d, 0x10c, 0x10f, 0x10e,
9863 0x111, 0x110, 0x113, 0x112, 0x115, 0x114, 0x117, 0x116,
9864 0x119, 0x118, 0x11b, 0x11a, 0x11d, 0x11c, 0x11f, 0x11e,
9865 0x121, 0x120, 0x123, 0x122, 0x125, 0x124, 0x127, 0x126,
9866 0x129, 0x128, 0x12b, 0x12a, 0x12d, 0x12c, 0x12f, 0x12e,
9867 0x69, 0x49, 0x133, 0x132, 0x135, 0x134, 0x137, 0x136,
9868 0x0, 0x13a, 0x139, 0x13c, 0x13b, 0x13e, 0x13d, 0x140,
9869 0x13f, 0x142, 0x141, 0x144, 0x143, 0x146, 0x145, 0x148,
9870 0x147, 0x0, 0x14b, 0x14a, 0x14d, 0x14c, 0x14f, 0x14e,
9871 0x151, 0x150, 0x153, 0x152, 0x155, 0x154, 0x157, 0x156,
9872 0x159, 0x158, 0x15b, 0x15a, 0x15d, 0x15c, 0x15f, 0x15e,
9873 0x161, 0x160, 0x163, 0x162, 0x165, 0x164, 0x167, 0x166,
9874 0x169, 0x168, 0x16b, 0x16a, 0x16d, 0x16c, 0x16f, 0x16e,
9875 0x171, 0x170, 0x173, 0x172, 0x175, 0x174, 0x177, 0x176,
9876 0xff, 0x17a, 0x179, 0x17c, 0x17b, 0x17e, 0x17d, 0x53,
9877 0x0, 0x253, 0x183, 0x182, 0x185, 0x184, 0x254, 0x188,
9878 0x187, 0x256, 0x257, 0x18c, 0x18b, 0x0, 0x1dd, 0x259,
9879 0x25b, 0x192, 0x191, 0x260, 0x263, 0x3d9, 0x269, 0x268,
9880 0x199, 0x198, 0x51, 0x0, 0x26f, 0x272, 0x0, 0x275,
9881 0x1a1, 0x1a0, 0x1a3, 0x1a2, 0x1a5, 0x1a4, 0x280, 0x1a8,
9882 0x1a7, 0x283, 0, 0x0, 0x1ad, 0x1ac, 0x288, 0x1b0,
9883 0x1af, 0x28a, 0x28b, 0x1b4, 0x1b3, 0x1b6, 0x1b5, 0x292,
9884 0x1b9, 0x1b8, 0x0, 0, 0x1bd, 0x1bc, 0, 0,
9885 0, 0, 0, 0, 0x1c6, 0, 0x1c4, 0x1c9,
9886 0, 0x1c7, 0x1cc, 0, 0x1ca, 0x1ce, 0x1cd, 0x1d0,
9887 0x1cf, 0x1d2, 0x1d1, 0x1d4, 0x1d3, 0x1d6, 0x1d5, 0x1d8,
9888 0x1d7, 0x1da, 0x1d9, 0x1dc, 0x1db, 0x18e, 0x1df, 0x1de,
9889 0x1e1, 0x1e0, 0x1e3, 0x1e2, 0x1e5, 0x1e4, 0x1e7, 0x1e6,
9890 0x1e9, 0x1e8, 0x1eb, 0x1ea, 0x1ed, 0x1ec, 0x1ef, 0x1ee,
9891 0x0, 0x1f3, 0, 0x1f1, 0x1f5, 0x1f4, 0, 0,
9892 0, 0, 0x1fb, 0x1fa, 0x1fd, 0x1fc, 0x1ff, 0x1fe,
9893};
9894
9895static const Q_UINT16 case_2 [] = {
9896 0x201, 0x200, 0x203, 0x202, 0x205, 0x204, 0x207, 0x206,
9897 0x209, 0x208, 0x20b, 0x20a, 0x20d, 0x20c, 0x20f, 0x20e,
9898 0x211, 0x210, 0x213, 0x212, 0x215, 0x214, 0x217, 0x216,
9899 0, 0, 0, 0, 0, 0, 0, 0,
9900 0, 0, 0, 0, 0, 0, 0, 0,
9901 0, 0, 0, 0, 0, 0, 0, 0,
9902 0, 0, 0, 0, 0, 0, 0, 0,
9903 0, 0, 0, 0, 0, 0, 0, 0,
9904 0, 0, 0, 0, 0, 0, 0, 0,
9905 0, 0, 0, 0, 0, 0, 0, 0,
9906 0x0, 0x0, 0x0, 0x181, 0x186, 0x0, 0x189, 0x18a,
9907 0x0, 0x18f, 0x0, 0x190, 0x0, 0x0, 0x0, 0x0,
9908 0x193, 0x0, 0x0, 0x194, 0x0, 0x0, 0x631, 0x579,
9909 0x197, 0x196, 0x0, 0x0, 0x0, 0x0, 0x0, 0x19c,
9910 0x0, 0x0, 0x19d, 0x0, 0x0, 0x19f, 0x0, 0x0,
9911 0x0, 0x0, 0x7e1, 0x0, 0x0, 0x0, 0x0, 0x0,
9912 0x1a6, 0x0, 0x0, 0x1a9, 0x0, 0x0, 0x0, 0x0,
9913 0x1ae, 0x0, 0x1b1, 0x1b2, 0x0, 0xa21, 0x971, 0x0,
9914 0x0, 0x0, 0x1b7, 0x0, 0x0, 0x0, 0x0, 0x0,
9915 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
9916 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
9917 0x0, 0, 0, 0, 0, 0, 0, 0,
9918 0, 0, 0, 0, 0, 0, 0, 0,
9919 0, 0, 0, 0, 0, 0, 0, 0,
9920 0, 0, 0, 0, 0, 0, 0, 0,
9921 0, 0, 0, 0, 0, 0, 0, 0,
9922 0, 0, 0, 0, 0, 0, 0, 0,
9923 0, 0, 0, 0, 0, 0, 0, 0,
9924 0, 0, 0, 0, 0, 0, 0, 0,
9925 0, 0, 0, 0, 0, 0, 0, 0,
9926 0, 0, 0, 0, 0, 0, 0, 0,
9927 0, 0, 0, 0, 0, 0, 0, 0,
9928};
9929
9930static const Q_UINT16 case_3 [] = {
9931 0, 0, 0, 0, 0, 0, 0, 0,
9932 0, 0, 0, 0, 0, 0, 0, 0,
9933 0, 0, 0, 0, 0, 0, 0, 0,
9934 0, 0, 0, 0, 0, 0, 0, 0,
9935 0, 0, 0, 0, 0, 0, 0, 0,
9936 0, 0, 0, 0, 0, 0, 0, 0,
9937 0, 0, 0, 0, 0, 0, 0, 0,
9938 0, 0, 0, 0, 0, 0, 0, 0,
9939 0, 0, 0, 0, 0, 0, 0, 0,
9940 0, 0, 0, 0, 0, 0, 0, 0,
9941 0, 0, 0, 0, 0, 0, 0, 0,
9942 0, 0, 0, 0, 0, 0, 0, 0,
9943 0, 0, 0, 0, 0, 0, 0, 0,
9944 0, 0, 0, 0, 0, 0, 0, 0,
9945 0, 0, 0, 0, 0, 0, 0, 0,
9946 0, 0, 0, 0, 0, 0, 0, 0,
9947 0, 0, 0, 0, 0, 0, 0x3ac, 0,
9948 0x3ad, 0x3ae, 0x3af, 0, 0x3cc, 0, 0x3cd, 0x3ce,
9949 0x0, 0x3b1, 0x3b2, 0x3b3, 0x3b4, 0x3b5, 0x3b6, 0x3b7,
9950 0x3b8, 0x3b9, 0x3ba, 0x3bb, 0x3bc, 0x3bd, 0x3be, 0x3bf,
9951 0x3c0, 0x3c1, 0, 0x3c3, 0x3c4, 0x3c5, 0x3c6, 0x3c7,
9952 0x3c8, 0x3c9, 0x3ca, 0x3cb, 0x386, 0x388, 0x389, 0x38a,
9953 0x0, 0x391, 0x392, 0x393, 0x394, 0x395, 0x396, 0x397,
9954 0x398, 0x399, 0x39a, 0x39b, 0x39c, 0x39d, 0x39e, 0x39f,
9955 0x3a0, 0x3a1, 0x3a3, 0x3a3, 0x3a4, 0x3a5, 0x3a6, 0x3a7,
9956 0x3a8, 0x3a9, 0x3aa, 0x3ab, 0x38c, 0x38e, 0x38f, 0,
9957 0x392, 0x398, 0x0, 0x0, 0x0, 0x3a6, 0x3a0, 0,
9958 0, 0, 0x0, 0, 0x0, 0, 0x0, 0,
9959 0x0, 0, 0x3e3, 0x3e2, 0x3e5, 0x3e4, 0x3e7, 0x3e6,
9960 0x3e9, 0x3e8, 0x3eb, 0x3ea, 0x3ed, 0x3ec, 0x3ef, 0x3ee,
9961 0x39a, 0x3a1, 0x3a3, 0, 0, 0, 0, 0,
9962 0, 0, 0, 0, 0, 0, 0, 0,
9963};
9964
9965static const Q_UINT16 case_4 [] = {
9966 0, 0x451, 0x452, 0x453, 0x454, 0x455, 0x456, 0x457,
9967 0x458, 0x459, 0x45a, 0x45b, 0x45c, 0, 0x45e, 0x45f,
9968 0x430, 0x431, 0x432, 0x433, 0x434, 0x435, 0x436, 0x437,
9969 0x438, 0x439, 0x43a, 0x43b, 0x43c, 0x43d, 0x43e, 0x43f,
9970 0x440, 0x441, 0x442, 0x443, 0x444, 0x445, 0x446, 0x447,
9971 0x448, 0x449, 0x44a, 0x44b, 0x44c, 0x44d, 0x44e, 0x44f,
9972 0x410, 0x411, 0x412, 0x413, 0x414, 0x415, 0x416, 0x417,
9973 0x418, 0x419, 0x41a, 0x41b, 0x41c, 0x41d, 0x41e, 0x41f,
9974 0x420, 0x421, 0x422, 0x423, 0x424, 0x425, 0x426, 0x427,
9975 0x428, 0x429, 0x42a, 0x42b, 0x42c, 0x42d, 0x42e, 0x42f,
9976 0, 0x401, 0x402, 0x403, 0x404, 0x405, 0x406, 0x407,
9977 0x408, 0x409, 0x40a, 0x40b, 0x40c, 0, 0x40e, 0x40f,
9978 0x461, 0x460, 0x463, 0x462, 0x465, 0x464, 0x467, 0x466,
9979 0x469, 0x468, 0x46b, 0x46a, 0x46d, 0x46c, 0x46f, 0x46e,
9980 0x471, 0x470, 0x473, 0x472, 0x475, 0x474, 0x477, 0x476,
9981 0x479, 0x478, 0x47b, 0x47a, 0x47d, 0x47c, 0x47f, 0x47e,
9982 0x481, 0x480, 0, 0, 0, 0, 0, 0,
9983 0, 0, 0, 0, 0, 0, 0, 0,
9984 0x491, 0x490, 0x493, 0x492, 0x495, 0x494, 0x497, 0x496,
9985 0x499, 0x498, 0x49b, 0x49a, 0x49d, 0x49c, 0x49f, 0x49e,
9986 0x4a1, 0x4a0, 0x4a3, 0x4a2, 0x4a5, 0x4a4, 0x4a7, 0x4a6,
9987 0x4a9, 0x4a8, 0x4ab, 0x4aa, 0x4ad, 0x4ac, 0x4af, 0x4ae,
9988 0x4b1, 0x4b0, 0x4b3, 0x4b2, 0x4b5, 0x4b4, 0x4b7, 0x4b6,
9989 0x4b9, 0x4b8, 0x4bb, 0x4ba, 0x4bd, 0x4bc, 0x4bf, 0x4be,
9990 0, 0x4c2, 0x4c1, 0x4c4, 0x4c3, 0, 0, 0x4c8,
9991 0x4c7, 0, 0, 0x4cc, 0x4cb, 0, 0, 0,
9992 0x4d1, 0x4d0, 0x4d3, 0x4d2, 0x4d5, 0x4d4, 0x4d7, 0x4d6,
9993 0x4d9, 0x4d8, 0x4db, 0x4da, 0x4dd, 0x4dc, 0x4df, 0x4de,
9994 0x4e1, 0x4e0, 0x4e3, 0x4e2, 0x4e5, 0x4e4, 0x4e7, 0x4e6,
9995 0x4e9, 0x4e8, 0x4eb, 0x4ea, 0, 0, 0x4ef, 0x4ee,
9996 0x4f1, 0x4f0, 0x4f3, 0x4f2, 0x4f5, 0x4f4, 0, 0,
9997 0x4f9, 0x4f8, 0, 0, 0, 0, 0, 0,
9998};
9999
10000static const Q_UINT16 case_5 [] = {
10001 0, 0, 0, 0, 0, 0, 0, 0,
10002 0, 0, 0, 0, 0, 0, 0, 0,
10003 0, 0, 0, 0, 0, 0, 0, 0,
10004 0, 0, 0, 0, 0, 0, 0, 0,
10005 0, 0, 0, 0, 0, 0, 0, 0,
10006 0, 0, 0, 0, 0, 0, 0, 0,
10007 0, 0x561, 0x562, 0x563, 0x564, 0x565, 0x566, 0x567,
10008 0x568, 0x569, 0x56a, 0x56b, 0x56c, 0x56d, 0x56e, 0x56f,
10009 0x570, 0x571, 0x572, 0x573, 0x574, 0x575, 0x576, 0x577,
10010 0x578, 0x579, 0x57a, 0x57b, 0x57c, 0x57d, 0x57e, 0x57f,
10011 0x580, 0x581, 0x582, 0x583, 0x584, 0x585, 0x586, 0,
10012 0, 0, 0, 0, 0, 0, 0, 0,
10013 0, 0x531, 0x532, 0x533, 0x534, 0x535, 0x536, 0x537,
10014 0x538, 0x539, 0x53a, 0x53b, 0x53c, 0x53d, 0x53e, 0x53f,
10015 0x540, 0x541, 0x542, 0x543, 0x544, 0x545, 0x546, 0x547,
10016 0x548, 0x549, 0x54a, 0x54b, 0x54c, 0x54d, 0x54e, 0x54f,
10017 0x550, 0x551, 0x552, 0x553, 0x554, 0x555, 0x556, 0x0,
10018 0, 0, 0, 0, 0, 0, 0, 0,
10019 0, 0, 0, 0, 0, 0, 0, 0,
10020 0, 0, 0, 0, 0, 0, 0, 0,
10021 0, 0, 0, 0, 0, 0, 0, 0,
10022 0, 0, 0, 0, 0, 0, 0, 0,
10023 0, 0, 0, 0, 0, 0, 0, 0,
10024 0, 0, 0, 0, 0, 0, 0, 0,
10025 0, 0, 0, 0, 0, 0, 0, 0,
10026 0, 0, 0, 0, 0, 0, 0, 0,
10027 0, 0, 0, 0, 0, 0, 0, 0,
10028 0, 0, 0, 0, 0, 0, 0, 0,
10029 0, 0, 0, 0, 0, 0, 0, 0,
10030 0, 0, 0, 0, 0, 0, 0, 0,
10031 0, 0, 0, 0, 0, 0, 0, 0,
10032 0, 0, 0, 0, 0, 0, 0, 0,
10033};
10034
10035static const Q_UINT16 case_10 [] = {
10036 0, 0, 0, 0, 0, 0, 0, 0,
10037 0, 0, 0, 0, 0, 0, 0, 0,
10038 0, 0, 0, 0, 0, 0, 0, 0,
10039 0, 0, 0, 0, 0, 0, 0, 0,
10040 0, 0, 0, 0, 0, 0, 0, 0,
10041 0, 0, 0, 0, 0, 0, 0, 0,
10042 0, 0, 0, 0, 0, 0, 0, 0,
10043 0, 0, 0, 0, 0, 0, 0, 0,
10044 0, 0, 0, 0, 0, 0, 0, 0,
10045 0, 0, 0, 0, 0, 0, 0, 0,
10046 0, 0, 0, 0, 0, 0, 0, 0,
10047 0, 0, 0, 0, 0, 0, 0, 0,
10048 0, 0, 0, 0, 0, 0, 0, 0,
10049 0, 0, 0, 0, 0, 0, 0, 0,
10050 0, 0, 0, 0, 0, 0, 0, 0,
10051 0, 0, 0, 0, 0, 0, 0, 0,
10052 0, 0, 0, 0, 0, 0, 0, 0,
10053 0, 0, 0, 0, 0, 0, 0, 0,
10054 0, 0, 0, 0, 0, 0, 0, 0,
10055 0, 0, 0, 0, 0, 0, 0, 0,
10056 0x10d0, 0x10d1, 0x10d2, 0x10d3, 0x10d4, 0x10d5, 0x10d6, 0x10d7,
10057 0x10d8, 0x10d9, 0x10da, 0x10db, 0x10dc, 0x10dd, 0x10de, 0x10df,
10058 0x10e0, 0x10e1, 0x10e2, 0x10e3, 0x10e4, 0x10e5, 0x10e6, 0x10e7,
10059 0x10e8, 0x10e9, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x10ee, 0x10ef,
10060 0x10f0, 0x10f1, 0x10f2, 0x10f3, 0x10f4, 0x10f5, 0, 0,
10061 0, 0, 0, 0, 0, 0, 0, 0,
10062 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
10063 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
10064 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
10065 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
10066 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0,
10067 0, 0, 0, 0, 0, 0, 0, 0,
10068};
10069
10070static const Q_UINT16 case_1e [] = {
10071 0x1e01, 0x1e00, 0x1e03, 0x1e02, 0x1e05, 0x1e04, 0x1e07, 0x1e06,
10072 0x1e09, 0x1e08, 0x1e0b, 0x1e0a, 0x1e0d, 0x1e0c, 0x1e0f, 0x1e0e,
10073 0x1e11, 0x1e10, 0x1e13, 0x1e12, 0x1e15, 0x1e14, 0x1e17, 0x1e16,
10074 0x1e19, 0x1e18, 0x1e1b, 0x1e1a, 0x1e1d, 0x1e1c, 0x1e1f, 0x1e1e,
10075 0x1e21, 0x1e20, 0x1e23, 0x1e22, 0x1e25, 0x1e24, 0x1e27, 0x1e26,
10076 0x1e29, 0x1e28, 0x1e2b, 0x1e2a, 0x1e2d, 0x1e2c, 0x1e2f, 0x1e2e,
10077 0x1e31, 0x1e30, 0x1e33, 0x1e32, 0x1e35, 0x1e34, 0x1e37, 0x1e36,
10078 0x1e39, 0x1e38, 0x1e3b, 0x1e3a, 0x1e3d, 0x1e3c, 0x1e3f, 0x1e3e,
10079 0x1e41, 0x1e40, 0x1e43, 0x1e42, 0x1e45, 0x1e44, 0x1e47, 0x1e46,
10080 0x1e49, 0x1e48, 0x1e4b, 0x1e4a, 0x1e4d, 0x1e4c, 0x1e4f, 0x1e4e,
10081 0x1e51, 0x1e50, 0x1e53, 0x1e52, 0x1e55, 0x1e54, 0x1e57, 0x1e56,
10082 0x1e59, 0x1e58, 0x1e5b, 0x1e5a, 0x1e5d, 0x1e5c, 0x1e5f, 0x1e5e,
10083 0x1e61, 0x1e60, 0x1e63, 0x1e62, 0x1e65, 0x1e64, 0x1e67, 0x1e66,
10084 0x1e69, 0x1e68, 0x1e6b, 0x1e6a, 0x1e6d, 0x1e6c, 0x1e6f, 0x1e6e,
10085 0x1e71, 0x1e70, 0x1e73, 0x1e72, 0x1e75, 0x1e74, 0x1e77, 0x1e76,
10086 0x1e79, 0x1e78, 0x1e7b, 0x1e7a, 0x1e7d, 0x1e7c, 0x1e7f, 0x1e7e,
10087 0x1e81, 0x1e80, 0x1e83, 0x1e82, 0x1e85, 0x1e84, 0x1e87, 0x1e86,
10088 0x1e89, 0x1e88, 0x1e8b, 0x1e8a, 0x1e8d, 0x1e8c, 0x1e8f, 0x1e8e,
10089 0x1e91, 0x1e90, 0x1e93, 0x1e92, 0x1e95, 0x1e94, 0x0, 0x0,
10090 0x0, 0x0, 0x0, 0x1e60, 0, 0, 0, 0,
10091 0x1ea1, 0x1ea0, 0x1ea3, 0x1ea2, 0x1ea5, 0x1ea4, 0x1ea7, 0x1ea6,
10092 0x1ea9, 0x1ea8, 0x1eab, 0x1eaa, 0x1ead, 0x1eac, 0x1eaf, 0x1eae,
10093 0x1eb1, 0x1eb0, 0x1eb3, 0x1eb2, 0x1eb5, 0x1eb4, 0x1eb7, 0x1eb6,
10094 0x1eb9, 0x1eb8, 0x1ebb, 0x1eba, 0x1ebd, 0x1ebc, 0x1ebf, 0x1ebe,
10095 0x1ec1, 0x1ec0, 0x1ec3, 0x1ec2, 0x1ec5, 0x1ec4, 0x1ec7, 0x1ec6,
10096 0x1ec9, 0x1ec8, 0x1ecb, 0x1eca, 0x1ecd, 0x1ecc, 0x1ecf, 0x1ece,
10097 0x1ed1, 0x1ed0, 0x1ed3, 0x1ed2, 0x1ed5, 0x1ed4, 0x1ed7, 0x1ed6,
10098 0x1ed9, 0x1ed8, 0x1edb, 0x1eda, 0x1edd, 0x1edc, 0x1edf, 0x1ede,
10099 0x1ee1, 0x1ee0, 0x1ee3, 0x1ee2, 0x1ee5, 0x1ee4, 0x1ee7, 0x1ee6,
10100 0x1ee9, 0x1ee8, 0x1eeb, 0x1eea, 0x1eed, 0x1eec, 0x1eef, 0x1eee,
10101 0x1ef1, 0x1ef0, 0x1ef3, 0x1ef2, 0x1ef5, 0x1ef4, 0x1ef7, 0x1ef6,
10102 0x1ef9, 0x1ef8, 0, 0, 0, 0, 0, 0,
10103};
10104
10105static const Q_UINT16 case_1f [] = {
10106 0x1f08, 0x1f09, 0x1f0a, 0x1f0b, 0x1f0c, 0x1f0d, 0x1f0e, 0x1f0f,
10107 0x1f00, 0x1f01, 0x1f02, 0x1f03, 0x1f04, 0x1f05, 0x1f06, 0x1f07,
10108 0x1f18, 0x1f19, 0x1f1a, 0x1f1b, 0x1f1c, 0x1f1d, 0, 0,
10109 0x1f10, 0x1f11, 0x1f12, 0x1f13, 0x1f14, 0x1f15, 0, 0,
10110 0x1f28, 0x1f29, 0x1f2a, 0x1f2b, 0x1f2c, 0x1f2d, 0x1f2e, 0x1f2f,
10111 0x1f20, 0x1f21, 0x1f22, 0x1f23, 0x1f24, 0x1f25, 0x1f26, 0x1f27,
10112 0x1f38, 0x1f39, 0x1f3a, 0x1f3b, 0x1f3c, 0x1f3d, 0x1f3e, 0x1f3f,
10113 0x1f30, 0x1f31, 0x1f32, 0x1f33, 0x1f34, 0x1f35, 0x1f36, 0x1f37,
10114 0x1f48, 0x1f49, 0x1f4a, 0x1f4b, 0x1f4c, 0x1f4d, 0, 0,
10115 0x1f40, 0x1f41, 0x1f42, 0x1f43, 0x1f44, 0x1f45, 0, 0,
10116 0x0, 0x1f59, 0x0, 0x1f5b, 0x0, 0x1f5d, 0x0, 0x1f5f,
10117 0, 0x1f51, 0, 0x1f53, 0, 0x1f55, 0, 0x1f57,
10118 0x1f68, 0x1f69, 0x1f6a, 0x1f6b, 0x1f6c, 0x1f6d, 0x1f6e, 0x1f6f,
10119 0x1f60, 0x1f61, 0x1f62, 0x1f63, 0x1f64, 0x1f65, 0x1f66, 0x1f67,
10120 0x1fba, 0x1fbb, 0x1fc8, 0x1fc9, 0x1fca, 0x1fcb, 0x1fda, 0x1fdb,
10121 0x1ff8, 0x1ff9, 0x1fea, 0x1feb, 0x1ffa, 0x1ffb, 0, 0,
10122 0x1f88, 0x1f89, 0x1f8a, 0x1f8b, 0x1f8c, 0x1f8d, 0x1f8e, 0x1f8f,
10123 0x1f80, 0x1f81, 0x1f82, 0x1f83, 0x1f84, 0x1f85, 0x1f86, 0x1f87,
10124 0x1f98, 0x1f99, 0x1f9a, 0x1f9b, 0x1f9c, 0x1f9d, 0x1f9e, 0x1f9f,
10125 0x1f90, 0x1f91, 0x1f92, 0x1f93, 0x1f94, 0x1f95, 0x1f96, 0x1f97,
10126 0x1fa8, 0x1fa9, 0x1faa, 0x1fab, 0x1fac, 0x1fad, 0x1fae, 0x1faf,
10127 0x1fa0, 0x1fa1, 0x1fa2, 0x1fa3, 0x1fa4, 0x1fa5, 0x1fa6, 0x1fa7,
10128 0x1fb8, 0x1fb9, 0x0, 0x1fbc, 0x0, 0, 0x0, 0x0,
10129 0x1fb0, 0x1fb1, 0x1f70, 0x1f71, 0x1fb3, 0, 0x399, 0,
10130 0, 0, 0x0, 0x1fcc, 0x0, 0, 0x0, 0x0,
10131 0x1f72, 0x1f73, 0x1f74, 0x1f75, 0x1fc3, 0, 0, 0,
10132 0x1fd8, 0x1fd9, 0x0, 0x0, 0, 0, 0x0, 0x0,
10133 0x1fd0, 0x1fd1, 0x1f76, 0x1f77, 0, 0, 0, 0,
10134 0x1fe8, 0x1fe9, 0x0, 0x0, 0x0, 0x1fec, 0x0, 0x0,
10135 0x1fe0, 0x1fe1, 0x1f7a, 0x1f7b, 0x1fe5, 0, 0, 0,
10136 0, 0, 0x0, 0x1ffc, 0x0, 0, 0x0, 0x0,
10137 0x1f78, 0x1f79, 0x1f7c, 0x1f7d, 0x1ff3, 0, 0, 0,
10138};
10139
10140static const Q_UINT16 case_20 [] = {
10141 0, 0, 0, 0, 0, 0, 0, 0,
10142 0, 0, 0, 0, 0, 0, 0, 0,
10143 0, 0, 0, 0, 0, 0, 0, 0,
10144 0, 0, 0, 0, 0, 0, 0, 0,
10145 0, 0, 0, 0, 0, 0, 0, 0,
10146 0, 0, 0, 0, 0, 0, 0, 0,
10147 0, 0, 0, 0, 0, 0, 0, 0,
10148 0, 0, 0, 0, 0, 0, 0, 0,
10149 0, 0, 0, 0, 0, 0, 0, 0,
10150 0, 0, 0, 0, 0, 0, 0, 0,
10151 0, 0, 0, 0, 0, 0, 0, 0,
10152 0, 0, 0, 0, 0, 0, 0, 0,
10153 0, 0, 0, 0, 0, 0, 0, 0,
10154 0, 0, 0, 0, 0, 0, 0, 0,
10155 0, 0, 0, 0, 0, 0, 0, 0,
10156 0, 0, 0, 0, 0, 0, 0, 0x0,
10157 0, 0, 0, 0, 0, 0, 0, 0,
10158 0, 0, 0, 0, 0, 0, 0, 0,
10159 0, 0, 0, 0, 0, 0, 0, 0,
10160 0, 0, 0, 0, 0, 0, 0, 0,
10161 0, 0, 0, 0, 0, 0, 0, 0,
10162 0, 0, 0, 0, 0, 0, 0, 0,
10163 0, 0, 0, 0, 0, 0, 0, 0,
10164 0, 0, 0, 0, 0, 0, 0, 0,
10165 0, 0, 0, 0, 0, 0, 0, 0,
10166 0, 0, 0, 0, 0, 0, 0, 0,
10167 0, 0, 0, 0, 0, 0, 0, 0,
10168 0, 0, 0, 0, 0, 0, 0, 0,
10169 0, 0, 0, 0, 0, 0, 0, 0,
10170 0, 0, 0, 0, 0, 0, 0, 0,
10171 0, 0, 0, 0, 0, 0, 0, 0,
10172 0, 0, 0, 0, 0, 0, 0, 0,
10173};
10174
10175static const Q_UINT16 case_21 [] = {
10176 0, 0, 0x0, 0, 0, 0, 0, 0x0,
10177 0, 0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
10178 0x0, 0x0, 0x0, 0x0, 0, 0x0, 0, 0,
10179 0x761, 0x0, 0x0, 0x0, 0x0, 0x0, 0, 0,
10180 0, 0, 0, 0, 0x0, 0, 0x0, 0,
10181 0x0, 0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0,
10182 0x0, 0x0, 0, 0x0, 0x0, 0, 0, 0,
10183 0, 0, 0, 0, 0, 0, 0, 0,
10184 0, 0, 0, 0, 0, 0, 0, 0,
10185 0, 0, 0, 0, 0, 0, 0, 0,
10186 0, 0, 0, 0, 0, 0, 0, 0,
10187 0, 0, 0, 0, 0, 0, 0, 0,
10188 0, 0, 0, 0, 0, 0, 0, 0,
10189 0, 0, 0, 0, 0, 0, 0, 0,
10190 0, 0, 0, 0, 0, 0, 0, 0,
10191 0, 0, 0, 0, 0, 0, 0, 0,
10192 0, 0, 0, 0, 0, 0, 0, 0,
10193 0, 0, 0, 0, 0, 0, 0, 0,
10194 0, 0, 0, 0, 0, 0, 0, 0,
10195 0, 0, 0, 0, 0, 0, 0, 0,
10196 0, 0, 0, 0, 0, 0, 0, 0,
10197 0, 0, 0, 0, 0, 0, 0, 0,
10198 0, 0, 0, 0, 0, 0, 0, 0,
10199 0, 0, 0, 0, 0, 0, 0, 0,
10200 0, 0, 0, 0, 0, 0, 0, 0,
10201 0, 0, 0, 0, 0, 0, 0, 0,
10202 0, 0, 0, 0, 0, 0, 0, 0,
10203 0, 0, 0, 0, 0, 0, 0, 0,
10204 0, 0, 0, 0, 0, 0, 0, 0,
10205 0, 0, 0, 0, 0, 0, 0, 0,
10206 0, 0, 0, 0, 0, 0, 0, 0,
10207 0, 0, 0, 0, 0, 0, 0, 0,
10208};
10209
10210static const Q_UINT16 case_fb [] = {
10211 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0x0, 0,
10212 0, 0, 0, 0, 0, 0, 0, 0,
10213 0, 0, 0, 0x0, 0x0, 0x0, 0x0, 0x0,
10214 0, 0, 0, 0, 0, 0, 0, 0,
10215 0, 0, 0, 0, 0, 0, 0, 0,
10216 0, 0, 0, 0, 0, 0, 0, 0,
10217 0, 0, 0, 0, 0, 0, 0, 0,
10218 0, 0, 0, 0, 0, 0, 0, 0,
10219 0, 0, 0, 0, 0, 0, 0, 0,
10220 0, 0, 0, 0, 0, 0, 0, 0,
10221 0, 0, 0, 0, 0, 0, 0, 0,
10222 0, 0, 0, 0, 0, 0, 0, 0,
10223 0, 0, 0, 0, 0, 0, 0, 0,
10224 0, 0, 0, 0, 0, 0, 0, 0,
10225 0, 0, 0, 0, 0, 0, 0, 0,
10226 0, 0, 0, 0, 0, 0, 0, 0,
10227 0, 0, 0, 0, 0, 0, 0, 0,
10228 0, 0, 0, 0, 0, 0, 0, 0,
10229 0, 0, 0, 0, 0, 0, 0, 0,
10230 0, 0, 0, 0, 0, 0, 0, 0,
10231 0, 0, 0, 0, 0, 0, 0, 0,
10232 0, 0, 0, 0, 0, 0, 0, 0,
10233 0, 0, 0, 0, 0, 0, 0, 0,
10234 0, 0, 0, 0, 0, 0, 0, 0,
10235 0, 0, 0, 0, 0, 0, 0, 0,
10236 0, 0, 0, 0, 0, 0, 0, 0,
10237 0, 0, 0, 0, 0, 0, 0, 0,
10238 0, 0, 0, 0, 0, 0, 0, 0,
10239 0, 0, 0, 0, 0, 0, 0, 0,
10240 0, 0, 0, 0, 0, 0, 0, 0,
10241 0, 0, 0, 0, 0, 0, 0, 0,
10242 0, 0, 0, 0, 0, 0, 0, 0,
10243};
10244
10245static const Q_UINT16 case_ff [] = {
10246 0, 0, 0, 0, 0, 0, 0, 0,
10247 0, 0, 0, 0, 0, 0, 0, 0,
10248 0, 0, 0, 0, 0, 0, 0, 0,
10249 0, 0, 0, 0, 0, 0, 0, 0,
10250 0, 0xff41, 0xff42, 0xff43, 0xff44, 0xff45, 0xff46, 0xff47,
10251 0xff48, 0xff49, 0xff4a, 0xff4b, 0xff4c, 0xff4d, 0xff4e, 0xff4f,
10252 0xff50, 0xff51, 0xff52, 0xff53, 0xff54, 0xff55, 0xff56, 0xff57,
10253 0xff58, 0xff59, 0xff5a, 0, 0, 0, 0, 0,
10254 0, 0xff21, 0xff22, 0xff23, 0xff24, 0xff25, 0xff26, 0xff27,
10255 0xff28, 0xff29, 0xff2a, 0xff2b, 0xff2c, 0xff2d, 0xff2e, 0xff2f,
10256 0xff30, 0xff31, 0xff32, 0xff33, 0xff34, 0xff35, 0xff36, 0xff37,
10257 0xff38, 0xff39, 0xff3a, 0, 0, 0, 0, 0,
10258 0, 0, 0, 0, 0, 0, 0, 0,
10259 0, 0, 0, 0, 0, 0, 0, 0,
10260 0, 0, 0, 0, 0, 0, 0, 0,
10261 0, 0, 0, 0, 0, 0, 0, 0,
10262 0, 0, 0, 0, 0, 0, 0, 0,
10263 0, 0, 0, 0, 0, 0, 0, 0,
10264 0, 0, 0, 0, 0, 0, 0, 0,
10265 0, 0, 0, 0, 0, 0, 0, 0,
10266 0, 0, 0, 0, 0, 0, 0, 0,
10267 0, 0, 0, 0, 0, 0, 0, 0,
10268 0, 0, 0, 0, 0, 0, 0, 0,
10269 0, 0, 0, 0, 0, 0, 0, 0,
10270 0, 0, 0, 0, 0, 0, 0, 0,
10271 0, 0, 0, 0, 0, 0, 0, 0,
10272 0, 0, 0, 0, 0, 0, 0, 0,
10273 0, 0, 0, 0, 0, 0, 0, 0,
10274 0, 0, 0, 0, 0, 0, 0, 0,
10275 0, 0, 0, 0, 0, 0, 0, 0,
10276 0, 0, 0, 0, 0, 0, 0, 0,
10277 0, 0, 0, 0, 0, 0, 0, 0,
10278};
10279
10280static const Q_UINT16 * const case_info[256] = {
10281
10282 case_0, case_1, case_2, case_3, case_4, case_5, 0, 0,
10283 0, 0, 0, 0, 0, 0, 0, 0,
10284 case_10, 0, 0, 0, 0, 0, 0, 0,
10285 0, 0, 0, 0, 0, 0, case_1e, case_1f,
10286 case_20, case_21, 0, 0, 0, 0, 0, 0,
10287 0, 0, 0, 0, 0, 0, 0, 0,
10288 0, 0, 0, 0, 0, 0, 0, 0,
10289 0, 0, 0, 0, 0, 0, 0, 0,
10290 0, 0, 0, 0, 0, 0, 0, 0,
10291 0, 0, 0, 0, 0, 0, 0, 0,
10292 0, 0, 0, 0, 0, 0, 0, 0,
10293 0, 0, 0, 0, 0, 0, 0, 0,
10294 0, 0, 0, 0, 0, 0, 0, 0,
10295 0, 0, 0, 0, 0, 0, 0, 0,
10296 0, 0, 0, 0, 0, 0, 0, 0,
10297 0, 0, 0, 0, 0, 0, 0, 0,
10298 0, 0, 0, 0, 0, 0, 0, 0,
10299 0, 0, 0, 0, 0, 0, 0, 0,
10300 0, 0, 0, 0, 0, 0, 0, 0,
10301 0, 0, 0, 0, 0, 0, 0, 0,
10302 0, 0, 0, 0, 0, 0, 0, 0,
10303 0, 0, 0, 0, 0, 0, 0, 0,
10304 0, 0, 0, 0, 0, 0, 0, 0,
10305 0, 0, 0, 0, 0, 0, 0, 0,
10306 0, 0, 0, 0, 0, 0, 0, 0,
10307 0, 0, 0, 0, 0, 0, 0, 0,
10308 0, 0, 0, 0, 0, 0, 0, 0,
10309 0, 0, 0, 0, 0, 0, 0, 0,
10310 0, 0, 0, 0, 0, 0, 0, 0,
10311 0, 0, 0, 0, 0, 0, 0, 0,
10312 0, 0, 0, 0, 0, 0, 0, 0,
10313 0, 0, 0, case_fb, 0, 0, 0, case_ff,
10314};
10315
10316static const Q_INT8 num_0 [] = {
10317 -1, -1, -1, -1, -1, -1, -1, -1,
10318 -1, -1, -1, -1, -1, -1, -1, -1,
10319 -1, -1, -1, -1, -1, -1, -1, -1,
10320 -1, -1, -1, -1, -1, -1, -1, -1,
10321 -1, -1, -1, -1, -1, -1, -1, -1,
10322 -1, -1, -1, -1, -1, -1, -1, -1,
10323 0, 1, 2, 3, 4, 5, 6, 7,
10324 8, 9, -1, -1, -1, -1, -1, -1,
10325 -1, -1, -1, -1, -1, -1, -1, -1,
10326 -1, -1, -1, -1, -1, -1, -1, -1,
10327 -1, -1, -1, -1, -1, -1, -1, -1,
10328 -1, -1, -1, -1, -1, -1, -1, -1,
10329 -1, -1, -1, -1, -1, -1, -1, -1,
10330 -1, -1, -1, -1, -1, -1, -1, -1,
10331 -1, -1, -1, -1, -1, -1, -1, -1,
10332 -1, -1, -1, -1, -1, -1, -1, -1,
10333 -1, -1, -1, -1, -1, -1, -1, -1,
10334 -1, -1, -1, -1, -1, -1, -1, -1,
10335 -1, -1, -1, -1, -1, -1, -1, -1,
10336 -1, -1, -1, -1, -1, -1, -1, -1,
10337 -1, -1, -1, -1, -1, -1, -1, -1,
10338 -1, -1, -1, -1, -1, -1, -1, -1,
10339 -1, -1, 2, 3, -1, -1, -1, -1,
10340 -1, 1, -1, -1, -1, -1, -1, -1,
10341 -1, -1, -1, -1, -1, -1, -1, -1,
10342 -1, -1, -1, -1, -1, -1, -1, -1,
10343 -1, -1, -1, -1, -1, -1, -1, -1,
10344 -1, -1, -1, -1, -1, -1, -1, -1,
10345 -1, -1, -1, -1, -1, -1, -1, -1,
10346 -1, -1, -1, -1, -1, -1, -1, -1,
10347 -1, -1, -1, -1, -1, -1, -1, -1,
10348 -1, -1, -1, -1, -1, -1, -1, -1,
10349};
10350
10351static const Q_INT8 num_6 [] = {
10352 -1, -1, -1, -1, -1, -1, -1, -1,
10353 -1, -1, -1, -1, -1, -1, -1, -1,
10354 -1, -1, -1, -1, -1, -1, -1, -1,
10355 -1, -1, -1, -1, -1, -1, -1, -1,
10356 -1, -1, -1, -1, -1, -1, -1, -1,
10357 -1, -1, -1, -1, -1, -1, -1, -1,
10358 -1, -1, -1, -1, -1, -1, -1, -1,
10359 -1, -1, -1, -1, -1, -1, -1, -1,
10360 -1, -1, -1, -1, -1, -1, -1, -1,
10361 -1, -1, -1, -1, -1, -1, -1, -1,
10362 -1, -1, -1, -1, -1, -1, -1, -1,
10363 -1, -1, -1, -1, -1, -1, -1, -1,
10364 0, 1, 2, 3, 4, 5, 6, 7,
10365 8, 9, -1, -1, -1, -1, -1, -1,
10366 -1, -1, -1, -1, -1, -1, -1, -1,
10367 -1, -1, -1, -1, -1, -1, -1, -1,
10368 -1, -1, -1, -1, -1, -1, -1, -1,
10369 -1, -1, -1, -1, -1, -1, -1, -1,
10370 -1, -1, -1, -1, -1, -1, -1, -1,
10371 -1, -1, -1, -1, -1, -1, -1, -1,
10372 -1, -1, -1, -1, -1, -1, -1, -1,
10373 -1, -1, -1, -1, -1, -1, -1, -1,
10374 -1, -1, -1, -1, -1, -1, -1, -1,
10375 -1, -1, -1, -1, -1, -1, -1, -1,
10376 -1, -1, -1, -1, -1, -1, -1, -1,
10377 -1, -1, -1, -1, -1, -1, -1, -1,
10378 -1, -1, -1, -1, -1, -1, -1, -1,
10379 -1, -1, -1, -1, -1, -1, -1, -1,
10380 -1, -1, -1, -1, -1, -1, -1, -1,
10381 -1, -1, -1, -1, -1, -1, -1, -1,
10382 0, 1, 2, 3, 4, 5, 6, 7,
10383 8, 9, -1, -1, -1, -1, -1, -1,
10384};
10385
10386static const Q_INT8 num_9 [] = {
10387 -1, -1, -1, -1, -1, -1, -1, -1,
10388 -1, -1, -1, -1, -1, -1, -1, -1,
10389 -1, -1, -1, -1, -1, -1, -1, -1,
10390 -1, -1, -1, -1, -1, -1, -1, -1,
10391 -1, -1, -1, -1, -1, -1, -1, -1,
10392 -1, -1, -1, -1, -1, -1, -1, -1,
10393 -1, -1, -1, -1, -1, -1, -1, -1,
10394 -1, -1, -1, -1, -1, -1, -1, -1,
10395 -1, -1, -1, -1, -1, -1, -1, -1,
10396 -1, -1, -1, -1, -1, -1, -1, -1,
10397 -1, -1, -1, -1, -1, -1, -1, -1,
10398 -1, -1, -1, -1, -1, -1, -1, -1,
10399 -1, -1, -1, -1, -1, -1, 0, 1,
10400 2, 3, 4, 5, 6, 7, 8, 9,
10401 -1, -1, -1, -1, -1, -1, -1, -1,
10402 -1, -1, -1, -1, -1, -1, -1, -1,
10403 -1, -1, -1, -1, -1, -1, -1, -1,
10404 -1, -1, -1, -1, -1, -1, -1, -1,
10405 -1, -1, -1, -1, -1, -1, -1, -1,
10406 -1, -1, -1, -1, -1, -1, -1, -1,
10407 -1, -1, -1, -1, -1, -1, -1, -1,
10408 -1, -1, -1, -1, -1, -1, -1, -1,
10409 -1, -1, -1, -1, -1, -1, -1, -1,
10410 -1, -1, -1, -1, -1, -1, -1, -1,
10411 -1, -1, -1, -1, -1, -1, -1, -1,
10412 -1, -1, -1, -1, -1, -1, -1, -1,
10413 -1, -1, -1, -1, -1, -1, -1, -1,
10414 -1, -1, -1, -1, -1, -1, -1, -1,
10415 -1, -1, -1, -1, -1, -1, 0, 1,
10416 2, 3, 4, 5, 6, 7, 8, 9,
10417 -1, -1, -1, -1, -1, -1, -1, -1,
10418 -1, -1, -1, -1, -1, -1, -1, -1,
10419};
10420
10421static const Q_INT8 num_b [] = {
10422 -1, -1, -1, -1, -1, -1, -1, -1,
10423 -1, -1, -1, -1, -1, -1, -1, -1,
10424 -1, -1, -1, -1, -1, -1, -1, -1,
10425 -1, -1, -1, -1, -1, -1, -1, -1,
10426 -1, -1, -1, -1, -1, -1, -1, -1,
10427 -1, -1, -1, -1, -1, -1, -1, -1,
10428 -1, -1, -1, -1, -1, -1, -1, -1,
10429 -1, -1, -1, -1, -1, -1, -1, -1,
10430 -1, -1, -1, -1, -1, -1, -1, -1,
10431 -1, -1, -1, -1, -1, -1, -1, -1,
10432 -1, -1, -1, -1, -1, -1, -1, -1,
10433 -1, -1, -1, -1, -1, -1, -1, -1,
10434 -1, -1, -1, -1, -1, -1, 0, 1,
10435 2, 3, 4, 5, 6, 7, 8, 9,
10436 -1, -1, -1, -1, -1, -1, -1, -1,
10437 -1, -1, -1, -1, -1, -1, -1, -1,
10438 -1, -1, -1, -1, -1, -1, -1, -1,
10439 -1, -1, -1, -1, -1, -1, -1, -1,
10440 -1, -1, -1, -1, -1, -1, -1, -1,
10441 -1, -1, -1, -1, -1, -1, -1, -1,
10442 -1, -1, -1, -1, -1, -1, -1, -1,
10443 -1, -1, -1, -1, -1, -1, -1, -1,
10444 -1, -1, -1, -1, -1, -1, -1, -1,
10445 -1, -1, -1, -1, -1, -1, -1, -1,
10446 -1, -1, -1, -1, -1, -1, -1, -1,
10447 -1, -1, -1, -1, -1, -1, -1, -1,
10448 -1, -1, -1, -1, -1, -1, -1, -1,
10449 -1, -1, -1, -1, -1, -1, -1, -1,
10450 -1, -1, -1, -1, -1, -1, -1, 1,
10451 2, 3, 4, 5, 6, 7, 8, 9,
10452 -1, -1, -1, -1, -1, -1, -1, -1,
10453 -1, -1, -1, -1, -1, -1, -1, -1,
10454};
10455
10456static const Q_INT8 num_d [] = {
10457 -1, -1, -1, -1, -1, -1, -1, -1,
10458 -1, -1, -1, -1, -1, -1, -1, -1,
10459 -1, -1, -1, -1, -1, -1, -1, -1,
10460 -1, -1, -1, -1, -1, -1, -1, -1,
10461 -1, -1, -1, -1, -1, -1, -1, -1,
10462 -1, -1, -1, -1, -1, -1, -1, -1,
10463 -1, -1, -1, -1, -1, -1, -1, -1,
10464 -1, -1, -1, -1, -1, -1, -1, -1,
10465 -1, -1, -1, -1, -1, -1, -1, -1,
10466 -1, -1, -1, -1, -1, -1, -1, -1,
10467 -1, -1, -1, -1, -1, -1, -1, -1,
10468 -1, -1, -1, -1, -1, -1, -1, -1,
10469 -1, -1, -1, -1, -1, -1, 0, 1,
10470 2, 3, 4, 5, 6, 7, 8, 9,
10471 -1, -1, -1, -1, -1, -1, -1, -1,
10472 -1, -1, -1, -1, -1, -1, -1, -1,
10473 -1, -1, -1, -1, -1, -1, -1, -1,
10474 -1, -1, -1, -1, -1, -1, -1, -1,
10475 -1, -1, -1, -1, -1, -1, -1, -1,
10476 -1, -1, -1, -1, -1, -1, -1, -1,
10477 -1, -1, -1, -1, -1, -1, -1, -1,
10478 -1, -1, -1, -1, -1, -1, -1, -1,
10479 -1, -1, -1, -1, -1, -1, -1, -1,
10480 -1, -1, -1, -1, -1, -1, -1, -1,
10481 -1, -1, -1, -1, -1, -1, -1, -1,
10482 -1, -1, -1, -1, -1, -1, -1, -1,
10483 -1, -1, -1, -1, -1, -1, -1, -1,
10484 -1, -1, -1, -1, -1, -1, -1, -1,
10485 -1, -1, -1, -1, -1, -1, -1, -1,
10486 -1, -1, -1, -1, -1, -1, -1, -1,
10487 -1, -1, -1, -1, -1, -1, -1, -1,
10488 -1, -1, -1, -1, -1, -1, -1, -1,
10489};
10490
10491static const Q_INT8 num_e [] = {
10492 -1, -1, -1, -1, -1, -1, -1, -1,
10493 -1, -1, -1, -1, -1, -1, -1, -1,
10494 -1, -1, -1, -1, -1, -1, -1, -1,
10495 -1, -1, -1, -1, -1, -1, -1, -1,
10496 -1, -1, -1, -1, -1, -1, -1, -1,
10497 -1, -1, -1, -1, -1, -1, -1, -1,
10498 -1, -1, -1, -1, -1, -1, -1, -1,
10499 -1, -1, -1, -1, -1, -1, -1, -1,
10500 -1, -1, -1, -1, -1, -1, -1, -1,
10501 -1, -1, -1, -1, -1, -1, -1, -1,
10502 0, 1, 2, 3, 4, 5, 6, 7,
10503 8, 9, -1, -1, -1, -1, -1, -1,
10504 -1, -1, -1, -1, -1, -1, -1, -1,
10505 -1, -1, -1, -1, -1, -1, -1, -1,
10506 -1, -1, -1, -1, -1, -1, -1, -1,
10507 -1, -1, -1, -1, -1, -1, -1, -1,
10508 -1, -1, -1, -1, -1, -1, -1, -1,
10509 -1, -1, -1, -1, -1, -1, -1, -1,
10510 -1, -1, -1, -1, -1, -1, -1, -1,
10511 -1, -1, -1, -1, -1, -1, -1, -1,
10512 -1, -1, -1, -1, -1, -1, -1, -1,
10513 -1, -1, -1, -1, -1, -1, -1, -1,
10514 -1, -1, -1, -1, -1, -1, -1, -1,
10515 -1, -1, -1, -1, -1, -1, -1, -1,
10516 -1, -1, -1, -1, -1, -1, -1, -1,
10517 -1, -1, -1, -1, -1, -1, -1, -1,
10518 0, 1, 2, 3, 4, 5, 6, 7,
10519 8, 9, -1, -1, -1, -1, -1, -1,
10520 -1, -1, -1, -1, -1, -1, -1, -1,
10521 -1, -1, -1, -1, -1, -1, -1, -1,
10522 -1, -1, -1, -1, -1, -1, -1, -1,
10523 -1, -1, -1, -1, -1, -1, -1, -1,
10524};
10525
10526static const Q_INT8 num_f [] = {
10527 -1, -1, -1, -1, -1, -1, -1, -1,
10528 -1, -1, -1, -1, -1, -1, -1, -1,
10529 -1, -1, -1, -1, -1, -1, -1, -1,
10530 -1, -1, -1, -1, -1, -1, -1, -1,
10531 0, 1, 2, 3, 4, 5, 6, 7,
10532 8, 9, -1, -1, -1, -1, -1, -1,
10533 -1, -1, -1, -1, -1, -1, -1, -1,
10534 -1, -1, -1, -1, -1, -1, -1, -1,
10535 -1, -1, -1, -1, -1, -1, -1, -1,
10536 -1, -1, -1, -1, -1, -1, -1, -1,
10537 -1, -1, -1, -1, -1, -1, -1, -1,
10538 -1, -1, -1, -1, -1, -1, -1, -1,
10539 -1, -1, -1, -1, -1, -1, -1, -1,
10540 -1, -1, -1, -1, -1, -1, -1, -1,
10541 -1, -1, -1, -1, -1, -1, -1, -1,
10542 -1, -1, -1, -1, -1, -1, -1, -1,
10543 -1, -1, -1, -1, -1, -1, -1, -1,
10544 -1, -1, -1, -1, -1, -1, -1, -1,
10545 -1, -1, -1, -1, -1, -1, -1, -1,
10546 -1, -1, -1, -1, -1, -1, -1, -1,
10547 -1, -1, -1, -1, -1, -1, -1, -1,
10548 -1, -1, -1, -1, -1, -1, -1, -1,
10549 -1, -1, -1, -1, -1, -1, -1, -1,
10550 -1, -1, -1, -1, -1, -1, -1, -1,
10551 -1, -1, -1, -1, -1, -1, -1, -1,
10552 -1, -1, -1, -1, -1, -1, -1, -1,
10553 -1, -1, -1, -1, -1, -1, -1, -1,
10554 -1, -1, -1, -1, -1, -1, -1, -1,
10555 -1, -1, -1, -1, -1, -1, -1, -1,
10556 -1, -1, -1, -1, -1, -1, -1, -1,
10557 -1, -1, -1, -1, -1, -1, -1, -1,
10558 -1, -1, -1, -1, -1, -1, -1, -1,
10559};
10560
10561static const Q_INT8 num_20 [] = {
10562 -1, -1, -1, -1, -1, -1, -1, -1,
10563 -1, -1, -1, -1, -1, -1, -1, -1,
10564 -1, -1, -1, -1, -1, -1, -1, -1,
10565 -1, -1, -1, -1, -1, -1, -1, -1,
10566 -1, -1, -1, -1, -1, -1, -1, -1,
10567 -1, -1, -1, -1, -1, -1, -1, -1,
10568 -1, -1, -1, -1, -1, -1, -1, -1,
10569 -1, -1, -1, -1, -1, -1, -1, -1,
10570 -1, -1, -1, -1, -1, -1, -1, -1,
10571 -1, -1, -1, -1, -1, -1, -1, -1,
10572 -1, -1, -1, -1, -1, -1, -1, -1,
10573 -1, -1, -1, -1, -1, -1, -1, -1,
10574 -1, -1, -1, -1, -1, -1, -1, -1,
10575 -1, -1, -1, -1, -1, -1, -1, -1,
10576 0, -1, -1, -1, 4, 5, 6, 7,
10577 8, 9, -1, -1, -1, -1, -1, -1,
10578 0, 1, 2, 3, 4, 5, 6, 7,
10579 8, 9, -1, -1, -1, -1, -1, -1,
10580 -1, -1, -1, -1, -1, -1, -1, -1,
10581 -1, -1, -1, -1, -1, -1, -1, -1,
10582 -1, -1, -1, -1, -1, -1, -1, -1,
10583 -1, -1, -1, -1, -1, -1, -1, -1,
10584 -1, -1, -1, -1, -1, -1, -1, -1,
10585 -1, -1, -1, -1, -1, -1, -1, -1,
10586 -1, -1, -1, -1, -1, -1, -1, -1,
10587 -1, -1, -1, -1, -1, -1, -1, -1,
10588 -1, -1, -1, -1, -1, -1, -1, -1,
10589 -1, -1, -1, -1, -1, -1, -1, -1,
10590 -1, -1, -1, -1, -1, -1, -1, -1,
10591 -1, -1, -1, -1, -1, -1, -1, -1,
10592 -1, -1, -1, -1, -1, -1, -1, -1,
10593 -1, -1, -1, -1, -1, -1, -1, -1,
10594};
10595
10596static const Q_INT8 num_ff [] = {
10597 -1, -1, -1, -1, -1, -1, -1, -1,
10598 -1, -1, -1, -1, -1, -1, -1, -1,
10599 0, 1, 2, 3, 4, 5, 6, 7,
10600 8, 9, -1, -1, -1, -1, -1, -1,
10601 -1, -1, -1, -1, -1, -1, -1, -1,
10602 -1, -1, -1, -1, -1, -1, -1, -1,
10603 -1, -1, -1, -1, -1, -1, -1, -1,
10604 -1, -1, -1, -1, -1, -1, -1, -1,
10605 -1, -1, -1, -1, -1, -1, -1, -1,
10606 -1, -1, -1, -1, -1, -1, -1, -1,
10607 -1, -1, -1, -1, -1, -1, -1, -1,
10608 -1, -1, -1, -1, -1, -1, -1, -1,
10609 -1, -1, -1, -1, -1, -1, -1, -1,
10610 -1, -1, -1, -1, -1, -1, -1, -1,
10611 -1, -1, -1, -1, -1, -1, -1, -1,
10612 -1, -1, -1, -1, -1, -1, -1, -1,
10613 -1, -1, -1, -1, -1, -1, -1, -1,
10614 -1, -1, -1, -1, -1, -1, -1, -1,
10615 -1, -1, -1, -1, -1, -1, -1, -1,
10616 -1, -1, -1, -1, -1, -1, -1, -1,
10617 -1, -1, -1, -1, -1, -1, -1, -1,
10618 -1, -1, -1, -1, -1, -1, -1, -1,
10619 -1, -1, -1, -1, -1, -1, -1, -1,
10620 -1, -1, -1, -1, -1, -1, -1, -1,
10621 -1, -1, -1, -1, -1, -1, -1, -1,
10622 -1, -1, -1, -1, -1, -1, -1, -1,
10623 -1, -1, -1, -1, -1, -1, -1, -1,
10624 -1, -1, -1, -1, -1, -1, -1, -1,
10625 -1, -1, -1, -1, -1, -1, -1, -1,
10626 -1, -1, -1, -1, -1, -1, -1, -1,
10627 -1, -1, -1, -1, -1, -1, -1, -1,
10628 -1, -1, -1, -1, -1, -1, -1, -1,
10629};
10630
10631static const Q_INT8 * const decimal_info[256] = {
10632 num_0, 0, 0, 0, 0, 0, num_6, 0,
10633 0, num_9, num_9, num_b, num_9, num_d, num_e, num_f,
10634 0, 0, 0, 0, 0, 0, 0, 0,
10635 0, 0, 0, 0, 0, 0, 0, 0,
10636 num_20, 0, 0, 0, 0, 0, 0, 0,
10637 0, 0, 0, 0, 0, 0, 0, 0,
10638 0, 0, 0, 0, 0, 0, 0, 0,
10639 0, 0, 0, 0, 0, 0, 0, 0,
10640 0, 0, 0, 0, 0, 0, 0, 0,
10641 0, 0, 0, 0, 0, 0, 0, 0,
10642 0, 0, 0, 0, 0, 0, 0, 0,
10643 0, 0, 0, 0, 0, 0, 0, 0,
10644 0, 0, 0, 0, 0, 0, 0, 0,
10645 0, 0, 0, 0, 0, 0, 0, 0,
10646 0, 0, 0, 0, 0, 0, 0, 0,
10647 0, 0, 0, 0, 0, 0, 0, 0,
10648 0, 0, 0, 0, 0, 0, 0, 0,
10649 0, 0, 0, 0, 0, 0, 0, 0,
10650 0, 0, 0, 0, 0, 0, 0, 0,
10651 0, 0, 0, 0, 0, 0, 0, 0,
10652 0, 0, 0, 0, 0, 0, 0, 0,
10653 0, 0, 0, 0, 0, 0, 0, 0,
10654 0, 0, 0, 0, 0, 0, 0, 0,
10655 0, 0, 0, 0, 0, 0, 0, 0,
10656 0, 0, 0, 0, 0, 0, 0, 0,
10657 0, 0, 0, 0, 0, 0, 0, 0,
10658 0, 0, 0, 0, 0, 0, 0, 0,
10659 0, 0, 0, 0, 0, 0, 0, 0,
10660 0, 0, 0, 0, 0, 0, 0, 0,
10661 0, 0, 0, 0, 0, 0, 0, 0,
10662 0, 0, 0, 0, 0, 0, 0, 0,
10663 0, 0, 0, 0, 0, 0, 0, num_ff,
10664};
10665
10666static const Q_UINT16 symmetricPairs[] = {
10667 0x0028, 0x0029, 0x0029, 0x0028, 0x003C, 0x003E, 0x003E, 0x003C,
10668 0x005B, 0x005D, 0x005D, 0x005B, 0x007B, 0x007D, 0x007D, 0x007B,
10669 0x2045, 0x2046, 0x2046, 0x2045, 0x207D, 0x207E, 0x207E, 0x207D,
10670 0x208D, 0x208E, 0x208E, 0x208D, 0x3008, 0x3009, 0x3009, 0x3008,
10671 0x300A, 0x300B, 0x300B, 0x300A, 0x300C, 0x300D, 0x300D, 0x300C,
10672 0x300E, 0x300F, 0x300F, 0x300E, 0x3010, 0x3011, 0x3011, 0x3010,
10673 0x3014, 0x3015, 0x3015, 0x3014, 0x3016, 0x3017, 0x3017, 0x3016,
10674 0x3018, 0x3019, 0x3019, 0x3018, 0x301A, 0x301B, 0x301B, 0x301A,
10675 0xFD3E, 0xFD3F, 0xFD3F, 0xFD3E, 0xFE59, 0xFE5A, 0xFE5A, 0xFE59,
10676 0xFE5B, 0xFE5C, 0xFE5C, 0xFE5B, 0xFE5D, 0xFE5E, 0xFE5E, 0xFE5D,
10677 0xFF08, 0xFF09, 0xFF09, 0xFF08, 0xFF3B, 0xFF3D, 0xFF3D, 0xFF3B,
10678 0xFF5B, 0xFF5D, 0xFF5D, 0xFF5B, 0xFF62, 0xFF63, 0xFF63, 0xFF62,
10679};
10680
10681static int symmetricPairsSize =
10682 sizeof(symmetricPairs)/sizeof(symmetricPairs[0]);
10683
10684/*
10685 * ----------------------------------------------------------------------
10686 * End of unicode tables
10687 * ----------------------------------------------------------------------
10688 */
10689
10690#endif
10691
10692
10693static int ucstrcmp( const QString &as, const QString &bs )
10694{
10695 const QChar *a = as.unicode();
10696 const QChar *b = bs.unicode();
10697 if ( a == b )
10698return 0;
10699 if ( a == 0 )
10700return 1;
10701 if ( b == 0 )
10702return -1;
10703 int l=QMIN(as.length(),bs.length());
10704 while ( l-- && *a == *b )
10705a++,b++;
10706 if ( l==-1 )
10707return ( as.length()-bs.length() );
10708 return a->unicode() - b->unicode();
10709}
10710
10711static int ucstrncmp( const QChar *a, const QChar *b, int l )
10712{
10713 while ( l-- && *a == *b )
10714a++,b++;
10715 if ( l==-1 )
10716return 0;
10717 return a->unicode() - b->unicode();
10718}
10719
10720static int ucstrnicmp( const QChar *a, const QChar *b, int l )
10721{
10722 while ( l-- && a->lower() == b->lower() )
10723a++,b++;
10724 if ( l==-1 )
10725return 0;
10726 QChar al = a->lower();
10727 QChar bl = b->lower();
10728 return al.unicode() - bl.unicode();
10729}
10730
10731// NOT REVISED
10732/*! \class QCharRef qstring.h
10733 \brief The QCharRef class is a helper class for QString.
10734
10735 It provides the ability to work on characters in a QString in a natural
10736 fashion.
10737
10738 When you get an object of type QCharRef, you can assign to it, which
10739 will operate on the string from which you got it. That is its whole
10740 purpose in life. It becomes invalid once further modifications are
10741 made to the string: If you want to keep it, copy it into a QChar.
10742
10743 Most of the QChar member functions also exist in QCharRef. However,
10744 they are not explicitly documented here.
10745
10746 \sa QString::operator[]() QString::at() QChar
10747*/
10748
10749/*! \class QChar qstring.h
10750
10751\brief The QChar class provides a light-weight Unicode character.
10752
10753Unicode characters are (so far) 16-bit entities without any markup or
10754structure. This class represents such an entity. It is rather
10755light-weight, so it can be used everywhere. Most compilers treat it
10756approximately like "short int". (In a few years, it may be necessary
10757to make QChar 32-bit, once more than 65536 Unicode code points have
10758been defined and come into use.)
10759
10760QChar provides a full complement of testing/classification functions,
10761conversion to and from other formats, from composed to decomposed
10762unicode, and will try to compare and case-convert if you ask it to.
10763
10764The classification functions include functions like those in ctype.h,
10765but operating on the full range of unicode characters. They all
10766return TRUE if the character is a certain type of character, and FALSE
10767otherwise.
10768
10769These functions are: isNull() (returns TRUE if the character is
10770U+0000), isPrint() (TRUE if the character is any sort of printable
10771character, including whitespace), isPunct() (any sort of punctation),
10772isMark() (Unicode Marks), isLetter (letters), isNumber() (any sort of
10773numeric characters), isLetterOrNumber(), and isDigit() (decimal digits).
10774All of these are wrappers around category(), which returns the
10775unicode-defined category of each character.
10776
10777QChar further provides direction(), which indicates the "natural"
10778writing direction of this character, joining(), which indicates how
10779this character joins with its neighbors (needed mostly for Arabic)
10780and finally mirrored(), which indicates whether this character needs
10781to be mirrored when it is printed in its unnatural writing
10782direction.
10783
10784Composed Unicode characters (like &aring;) can be converted to
10785decomposed Unicode ("a" followed by "ring above") using
10786decomposition().
10787
10788In Unicode, comparison is not necessarily possible, and case
10789conversion is at best very hard. Unicode, covering the "entire"
10790globe, also includes a globe-sized collection of case and sorting
10791problems. Qt tries, but not very hard: operator== and friends will do
10792comparison based purely on the numeric Unicode value (code point) of
10793the characters, and upper() and lower() will do case changes when the
10794character has a well-defined upper/lower-case equivalent. There is no
10795provision for locale-dependent case folding rules or comparison: These
10796functions are meant to be fast, so they can be used unambiguously in
10797data structures.
10798
10799The conversion functions include unicode() (to a scalar), latin1() (to
10800scalar, but converts all non-Latin1 characters to 0), row() (gives the
10801Unicode row), cell() (gives the unicode cell), digitValue() (gives the
10802integer value of any of the numerous digit characters), and a host of
10803constructors.
10804
10805\sa QString QCharRef \link unicode.html About Unicode \endlink
10806*/
10807
10808/*! \enum QChar::Category
10809
10810This enum maps the Unicode character categories. The currently known
10811categories are: <ul>
10812
10813<li> \c NoCategory - used when Qt is dazed and confused and cannot
10814make sense of anything.
10815
10816<li> \c Mark_NonSpacing - (Mn) -
10817
10818<li> \c Mark_SpacingCombining - (Mc) -
10819
10820<li> \c Mark_Enclosing - (Me) -
10821
10822<li> \c Number_DecimalDigit - (Nd) -
10823
10824<li> \c Number_Letter - (Nl) -
10825
10826<li> \c Number_Other - (No) -
10827
10828<li> \c Separator_Space - (Zs) -
10829
10830<li> \c Separator_Line - (Zl) -
10831
10832<li> \c Separator_Paragraph - (Zp) -
10833
10834<li> \c Other_Control - (Cc) -
10835
10836<li> \c Other_Format - (Cf) -
10837
10838<li> \c Other_Surrogate - (Cs) -
10839
10840<li> \c Other_PrivateUse - (Co) -
10841
10842<li> \c Other_NotAssigned - (Cn) -
10843
10844<li> \c Letter_Uppercase - (Lu) -
10845
10846<li> \c Letter_Lowercase - (Ll) -
10847
10848<li> \c Letter_Titlecase - (Lt) -
10849
10850<li> \c Letter_Modifier - (Lm) -
10851
10852<li> \c Letter_Other - (Lo) -
10853
10854<li> \c Punctuation_Connector - (Pc) -
10855
10856<li> \c Punctuation_Dask - (Pd) -
10857
10858<li> \c Punctuation_Open - (Ps) -
10859
10860<li> \c Punctuation_Close - (Pe) -
10861
10862<li> \c Punctuation_InitialQuote - (Pi) -
10863
10864<li> \c Punctuation_FinalQuote - (Pf) -
10865
10866<li> \c Punctuation_Other - (Po) -
10867
10868<li> \c Symbol_Math - (Sm) -
10869
10870<li> \c Symbol_Currency - (Sc) -
10871
10872<li> \c Symbol_Modifier - (Sk) -
10873
10874<li> \c Symbol_Other - (So) -
10875
10876</ul>
10877*/
10878
10879/*! \enum QChar::Direction
10880
10881 This enum type defines the Unicode direction attributes.
10882 See <a href="http://www.unicode.org">the Unicode Standard</a>
10883 for a description of the values.
10884
10885 In order to conform to C/C++ naming conventions "Dir" is
10886 prepended to the codes used in The Unicode Standard.
10887*/
10888
10889/*! \enum QChar::Decomposition
10890
10891 This enum type defines the Unicode decomposition attributes.
10892 See <a href="http://www.unicode.org">the Unicode Standard</a>
10893 for a description of the values.
10894*/
10895
10896/*! \enum QChar::Joining
10897
10898 This enum type defines the Unicode decomposition attributes.
10899 See <a href="http://www.unicode.org">the Unicode Standard</a>
10900 for a description of the values.
10901*/
10902
10903
10904
10905/*! \fn QChar::QChar()
10906
10907Constructs a null QChar (one that isNull()).
10908*/
10909
10910
10911/*! \fn QChar::QChar( char c )
10912
10913Constructs a QChar corresponding to ASCII/Latin1 character \a c.
10914*/
10915
10916
10917/*! \fn QChar::QChar( uchar c )
10918
10919Constructs a QChar corresponding to ASCII/Latin1 character \a c.
10920*/
10921
10922
10923/*! \fn QChar::QChar( uchar c, uchar r )
10924
10925Constructs a QChar for Unicode cell \a c in row \a r.
10926*/
10927
10928
10929/*! \fn QChar::QChar( const QChar& c )
10930
10931Constructs a copy of \a c. This is a deep copy, if such a
10932light-weight object can be said to have deep copies.
10933*/
10934
10935
10936/*! \fn QChar::QChar( ushort rc )
10937
10938Constructs a QChar for the character with Unicode code point \a rc.
10939*/
10940
10941
10942/*! \fn QChar::QChar( short rc )
10943
10944Constructs a QChar for the character with Unicode code point \a rc.
10945*/
10946
10947
10948/*! \fn QChar::QChar( uint rc )
10949
10950Constructs a QChar for the character with Unicode code point \a rc.
10951*/
10952
10953
10954/*! \fn QChar::QChar( int rc )
10955
10956Constructs a QChar for the character with Unicode code point \a rc.
10957*/
10958
10959
10960/*! \fn bool QChar::networkOrdered ()
10961
10962 Returns TRUE if this character is in network byte order (MSB first),
10963 and FALSE if it is not. This is a platform-dependent property, so
10964 we strongly advise against using this function in portable code.
10965*/
10966
10967
10968/*!
10969 \fn bool QChar::isNull() const
10970 Returns TRUE if the characters is the unicode character 0x0000,
10971 ie. ASCII NUL.
10972*/
10973
10974/*!
10975 \fn uchar QChar::cell () const
10976 Returns the cell (least significant byte) of the Unicode character.
10977*/
10978/*!
10979 \fn uchar QChar::row () const
10980 Returns the row (most significant byte) of the Unicode character.
10981*/
10982/*!
10983 \fn uchar& QChar::cell ()
10984 Returns a reference to the cell (least significant byte) of the Unicode character.
10985*/
10986/*!
10987 \fn uchar& QChar::row ()
10988 Returns a reference to the row (most significant byte) of the Unicode character.
10989*/
10990
10991/*!
10992 Returns whether the character is a printable character. This is
10993 any character not of category Cc or Cn. Note that this gives no indication
10994 of whether the character is available in some font.
10995*/
10996bool QChar::isPrint() const
10997{
10998 Category c = category();
10999 return !(c == Other_Control || c == Other_NotAssigned);
11000}
11001
11002/*!
11003 Returns whether the character is a separator
11004 character (Separator_* categories).
11005*/
11006bool QChar::isSpace() const
11007{
11008 if( !row() )
11009if( cell() >= 9 && cell() <=13 ) return TRUE;
11010 Category c = category();
11011 return c >= Separator_Space && c <= Separator_Paragraph;
11012}
11013
11014/*!
11015 Returns whether the character is a mark (Mark_* categories).
11016*/
11017bool QChar::isMark() const
11018{
11019 Category c = category();
11020 return c >= Mark_NonSpacing && c <= Mark_Enclosing;
11021}
11022
11023/*!
11024 Returns whether the character is punctuation (Punctuation_* categories).
11025*/
11026bool QChar::isPunct() const
11027{
11028 Category c = category();
11029 return (c >= Punctuation_Connector && c <= Punctuation_Other);
11030}
11031
11032/*!
11033 Returns whether the character is a letter (Letter_* categories).
11034*/
11035bool QChar::isLetter() const
11036{
11037 Category c = category();
11038 return (c >= Letter_Uppercase && c <= Letter_Other);
11039}
11040
11041/*!
11042 Returns whether the character is a number (of any sort - Number_* categories).
11043
11044 \sa isDigit()
11045*/
11046bool QChar::isNumber() const
11047{
11048 Category c = category();
11049 return c >= Number_DecimalDigit && c <= Number_Other;
11050}
11051
11052/*!
11053 Returns whether the character is a letter or number (Letter_* or Number_* categories).
11054*/
11055bool QChar::isLetterOrNumber() const
11056{
11057 Category c = category();
11058 return (c >= Letter_Uppercase && c <= Letter_Other)
11059|| (c >= Number_DecimalDigit && c <= Number_Other);
11060}
11061
11062
11063/*!
11064 Returns whether the character is a decimal digit (Number_DecimalDigit).
11065 */
11066bool QChar::isDigit() const
11067{
11068 return (category() == Number_DecimalDigit);
11069}
11070
11071/*!
11072 Returns the numeric value of the digit, or -1 if the character is not
11073 a digit.
11074*/
11075int QChar::digitValue() const
11076{
11077#ifndef QT_NO_UNICODETABLES
11078 const Q_INT8 *dec_row = decimal_info[row()];
11079 if( !dec_row )
11080return -1;
11081 return decimal_info[row()][cell()];
11082#else
11083 // ##### just latin1
11084 if ( rw != 0 || cl < '0' || cl > '9' )
11085return -1;
11086 else
11087return cl - '0';
11088#endif
11089}
11090
11091/*!
11092 Returns the character category.
11093
11094 \sa Category
11095*/
11096QChar::Category QChar::category() const
11097{
11098#ifndef QT_NO_UNICODETABLES
11099 return (Category)(unicode_info[row()][cell()]);
11100#else
11101// ### just ASCII
11102 if ( rw == 0 ) {
11103return (Category)(ui_00[cell()]);
11104 }
11105 return Letter_Uppercase; //#######
11106#endif
11107}
11108
11109/*!
11110 Returns the characters directionality.
11111
11112 \sa Direction
11113*/
11114QChar::Direction QChar::direction() const
11115{
11116#ifndef QT_NO_UNICODETABLES
11117 const Q_UINT8 *rowp = direction_info[row()];
11118 if(!rowp) return QChar::DirL;
11119 return (Direction) ( *(rowp+cell()) &0x1f );
11120#else
11121 return DirL;
11122#endif
11123}
11124
11125/*!
11126 This function is not supported (it may change to use Unicode
11127 character classes).
11128
11129 Returns information about the joining properties of the
11130 character (needed for arabic).
11131*/
11132QChar::Joining QChar::joining() const
11133{
11134#ifndef QT_NO_UNICODETABLES
11135 const Q_UINT8 *rowp = direction_info[row()];
11136 if ( !rowp )
11137return QChar::OtherJoining;
11138 return (Joining) ((*(rowp+cell()) >> 5) &0x3);
11139#else
11140 return OtherJoining;
11141#endif
11142}
11143
11144
11145/*!
11146 Returns whether the character is a mirrored character (one that
11147 should be reversed if the text direction is reversed).
11148*/
11149bool QChar::mirrored() const
11150{
11151#ifndef QT_NO_UNICODETABLES
11152 const Q_UINT8 *rowp = direction_info[row()];
11153 if ( !rowp )
11154return FALSE;
11155 return *(rowp+cell())>128;
11156#else
11157 return FALSE;
11158#endif
11159}
11160
11161/*!
11162 Returns the mirrored char if this character is a mirrored char, the char
11163 itself otherwise
11164*/
11165QChar QChar::mirroredChar() const
11166{
11167#ifndef QT_NO_UNICODETABLES
11168 if(!mirrored()) return *this;
11169
11170 int i;
11171 int c = unicode();
11172 for (i = 0; i < symmetricPairsSize; i += 2) {
11173 if (symmetricPairs[i] == c)
11174 return symmetricPairs[i+1];
11175 }
11176 return 0;
11177#else
11178 return *this;
11179#endif
11180}
11181
11182/*!
11183 Decomposes a character into its parts. Returns QString::null if
11184 no decomposition exists.
11185*/
11186QString QChar::decomposition() const
11187{
11188#ifndef QT_NO_UNICODETABLES
11189 const Q_UINT16 *r = decomposition_info[row()];
11190 if(!r) return QString::null;
11191
11192 Q_UINT16 pos = r[cell()];
11193 if(!pos) return QString::null;
11194 pos+=2;
11195
11196 QString s;
11197 Q_UINT16 c;
11198 while((c = decomposition_map[pos++]) != 0) s += QChar(c);
11199
11200 return s;
11201#else
11202 return null;
11203#endif
11204}
11205
11206/*!
11207 Returns the tag defining the composition of the character.
11208 Returns QChar::Single if no decomposition exists.
11209*/
11210QChar::Decomposition QChar::decompositionTag() const
11211{
11212#ifndef QT_NO_UNICODETABLES
11213 const Q_UINT16 *r = decomposition_info[row()];
11214 if(!r) return QChar::Single;
11215
11216 Q_UINT16 pos = r[cell()];
11217 if(!pos) return QChar::Single;
11218
11219 return (QChar::Decomposition) decomposition_map[pos];
11220#else
11221 return Single; // ########### FIX eg. just latin1
11222#endif
11223}
11224
11225/*!
11226 Returns the lowercase equivalent if the character is uppercase,
11227 or the character itself otherwise.
11228*/
11229QChar QChar::lower() const
11230{
11231#ifndef QT_NO_UNICODETABLES
11232 if(category() != Letter_Uppercase) return *this;
11233 Q_UINT16 lower = *(case_info[row()]+cell());
11234 if(lower == 0) return *this;
11235 return lower;
11236#else
11237 if (row())
11238return *this;
11239 else
11240return QChar(tolower(latin1()));
11241#endif
11242}
11243
11244/*!
11245 Returns the uppercase equivalent if the character is lowercase,
11246 or the character itself otherwise.
11247*/
11248QChar QChar::upper() const
11249{
11250#ifndef QT_NO_UNICODETABLES
11251 if(category() != Letter_Lowercase) return *this;
11252 Q_UINT16 upper = *(case_info[row()]+cell());
11253 if(upper == 0) return *this;
11254 return upper;
11255#else
11256 if (row())
11257return *this;
11258 else
11259return QChar(toupper(latin1()));
11260#endif
11261}
11262
11263/*!
11264 \fn QChar::operator char() const
11265
11266 Returns the Latin1 character equivalent to the QChar,
11267 or 0. This is mainly useful for non-internationalized software.
11268
11269 \sa unicode()
11270*/
11271
11272/*!
11273 \fn ushort QChar::unicode() const
11274
11275 Returns the numeric Unicode value equal to the QChar. Normally, you
11276 should use QChar objects as they are equivalent, but for some low-level
11277 tasks (eg. indexing into an array of Unicode information), this function
11278 is useful.
11279*/
11280
11281/*****************************************************************************
11282 Documentation of QChar related functions
11283 *****************************************************************************/
11284
11285/*!
11286 \fn int operator==( QChar c1, QChar c2 )
11287 \relates QChar
11288
11289 Returns TRUE if \a c1 and \a c2 are the same Unicode character.
11290*/
11291
11292/*!
11293 \fn int operator==( char ch, QChar c )
11294 \relates QChar
11295
11296 Returns TRUE if \a c is the ASCII/Latin1 character \a ch.
11297*/
11298
11299/*!
11300 \fn int operator==( QChar c, char ch )
11301 \relates QChar
11302
11303 Returns TRUE if \a c is the ASCII/Latin1 character \a ch.
11304*/
11305
11306/*!
11307 \fn int operator!=( QChar c1, QChar c2 )
11308 \relates QChar
11309
11310 Returns TRUE if \a c1 and \a c2 are not the same Unicode character.
11311*/
11312
11313/*!
11314 \fn int operator!=( char ch, QChar c )
11315 \relates QChar
11316
11317 Returns TRUE if \a c is not the ASCII/Latin1 character \a ch.
11318*/
11319
11320/*!
11321 \fn int operator!=( QChar c, char ch )
11322 \relates QChar
11323
11324 Returns TRUE if \a c is not the ASCII/Latin1 character \a ch.
11325*/
11326
11327/*!
11328 \fn int operator<=( QChar c1, QChar c2 )
11329 \relates QChar
11330
11331 Returns TRUE if the numeric Unicode value of \a c1 is less than that
11332 of \a c2, or they are the same Unicode character.
11333*/
11334
11335/*!
11336 \fn int operator<=( QChar c, char ch )
11337 \relates QChar
11338
11339 Returns TRUE if the numeric Unicode value of \a c is less than or
11340 equal to that of the ASCII/Latin1 character \a ch.
11341*/
11342
11343/*!
11344 \fn int operator<=( char ch, QChar c )
11345 \relates QChar
11346
11347 Returns TRUE if the numeric Unicode value of the ASCII/Latin1
11348 character \a ch is less than or equal to that of \a c.
11349*/
11350
11351/*!
11352 \fn int operator>=( QChar c1, QChar c2 )
11353 \relates QChar
11354
11355 Returns TRUE if the numeric Unicode value of \a c1 is greater than that
11356 of \a c2, or they are the same Unicode character.
11357*/
11358
11359/*!
11360 \fn int operator>=( QChar c, char ch )
11361 \relates QChar
11362
11363 Returns TRUE if the numeric Unicode value of \a c is greater than or
11364 equal to that of the ASCII/Latin1 character \a ch.
11365*/
11366
11367/*!
11368 \fn int operator>=( char ch, QChar c )
11369 \relates QChar
11370
11371 Returns TRUE if the numeric Unicode value of the ASCII/Latin1
11372 character \a ch is greater than or equal to that of \a c.
11373*/
11374
11375/*!
11376 \fn int operator<( QChar c1, QChar c2 )
11377 \relates QChar
11378
11379 Returns TRUE if the numeric Unicode value of \a c1 is less than that
11380 of \a c2.
11381*/
11382
11383/*!
11384 \fn int operator<( QChar c, char ch )
11385 \relates QChar
11386
11387 Returns TRUE if the numeric Unicode value of \a c is less than that
11388 of the ASCII/Latin1 character \a ch.
11389*/
11390
11391/*!
11392 \fn int operator<( char ch, QChar c )
11393 \relates QChar
11394
11395 Returns TRUE if the numeric Unicode value of the ASCII/Latin1
11396 character \a ch is less than that of \a c.
11397*/
11398
11399/*!
11400 \fn int operator>( QChar c1, QChar c2 )
11401 \relates QChar
11402
11403 Returns TRUE if the numeric Unicode value of \a c1 is greater than
11404 that of \a c2.
11405*/
11406
11407/*!
11408 \fn int operator>( QChar c, char ch )
11409 \relates QChar
11410
11411 Returns TRUE if the numeric Unicode value of \a c is greater than
11412 that of the ASCII/Latin1 character \a ch.
11413*/
11414
11415/*!
11416 \fn int operator>( char ch, QChar c )
11417 \relates QChar
11418
11419 Returns TRUE if the numeric Unicode value of the ASCII/Latin1
11420 character \a ch is greater than that of \a c.
11421*/
11422
11423#ifndef QT_NO_UNICODETABLES
11424
11425// small class used internally in QString::Compose()
11426class QLigature
11427{
11428public:
11429 QLigature( QChar c );
11430
11431 Q_UINT16 first() { cur = ligatures; return cur ? *cur : 0; }
11432 Q_UINT16 next() { return cur && *cur ? *(cur++) : 0; }
11433 Q_UINT16 current() { return cur ? *cur : 0; }
11434
11435 int match(QString & str, unsigned int index);
11436 QChar head();
11437 QChar::Decomposition tag();
11438
11439private:
11440 Q_UINT16 *ligatures;
11441 Q_UINT16 *cur;
11442};
11443
11444QLigature::QLigature( QChar c )
11445{
11446 const Q_UINT16 *r = ligature_info[c.row()];
11447 if( !r )
11448ligatures = 0;
11449 else
11450 {
11451const Q_UINT16 pos = r[c.cell()];
11452ligatures = (Q_UINT16 *)&(ligature_map[pos]);
11453 }
11454 cur = ligatures;
11455}
11456
11457QChar QLigature::head()
11458{
11459 if(current())
11460return QChar(decomposition_map[current()+1]);
11461
11462 return QChar::null;
11463}
11464
11465QChar::Decomposition QLigature::tag()
11466{
11467 if(current())
11468return (QChar::Decomposition) decomposition_map[current()];
11469
11470 return QChar::Canonical;
11471}
11472
11473int QLigature::match(QString & str, unsigned int index)
11474{
11475 unsigned int i=index;
11476
11477 if(!current()) return 0;
11478
11479 Q_UINT16 lig = current() + 2;
11480 Q_UINT16 ch;
11481
11482 while ((i < str.length()) && (ch = decomposition_map[lig])) {
11483if (str[(int)i] != QChar(ch))
11484 return 0;
11485i++; lig++;
11486 }
11487
11488 if (!decomposition_map[lig])
11489 {
11490return i-index;
11491 }
11492 return 0;
11493}
11494
11495#endif
11496
11497// this function is just used in QString::compose()
11498static inline bool format(QChar::Decomposition tag, QString & str,
11499 int index, int len)
11500{
11501 unsigned int l = index + len;
11502 unsigned int r = index;
11503
11504 bool left = FALSE, right = FALSE;
11505
11506 left = ((l < str.length()) &&
11507 ((str[(int)l].joining() == QChar::Dual) ||
11508 (str[(int)l].joining() == QChar::Right)));
11509 if (r > 0) {
11510r--;
11511//printf("joining(right) = %d\n", str[(int)r].joining());
11512right = (str[(int)r].joining() == QChar::Dual);
11513 }
11514
11515
11516 switch (tag) {
11517 case QChar::Medial:
11518return (left & right);
11519 case QChar::Initial:
11520return (left && !right);
11521 case QChar::Final:
11522return (right);// && !left);
11523 case QChar::Isolated:
11524 default:
11525return (!right && !left);
11526 }
11527} // format()
11528
11529/*
11530 QString::compose() and visual() were developed by Gordon Tisher
11531 <tisher@uniserve.ca>, with input from Lars Knoll <knoll@mpi-hd.mpg.de>,
11532 who developed the unicode data tables.
11533*/
11534/*!
11535 Note that this function is not supported in Qt 2.0, and is merely
11536 for experimental and illustrative purposes. It is mainly of interest
11537 to those experimenting with Arabic and other composition-rich texts.
11538
11539 Applies possible ligatures to a QString, useful when composition-rich
11540 text requires rendering with glyph-poor fonts, but also
11541 makes compositions such as QChar(0x0041) ('A') and QChar(0x0308)
11542 (Unicode accent diaresis) giving QChar(0x00c4) (German A Umlaut).
11543*/
11544void QString::compose()
11545{
11546#ifndef QT_NO_UNICODETABLES
11547 unsigned int index=0, len;
11548 unsigned int cindex = 0;
11549
11550 QChar code, head;
11551
11552 QArray<QChar> dia;
11553
11554 QString composed = *this;
11555
11556 while (index < length()) {
11557code = at(index);
11558//printf("\n\nligature for 0x%x:\n", code.unicode());
11559QLigature ligature(code);
11560ligature.first();
11561while(ligature.current()) {
11562 if ((len = ligature.match(*this, index)) != 0) {
11563head = ligature.head();
11564unsigned short code = head.unicode();
11565// we exclude Arabic presentation forms A and a few
11566// other ligatures, which are undefined in most fonts
11567if(!(code > 0xfb50 && code < 0xfe80) &&
11568 !(code > 0xfb00 && code < 0xfb2a)) {
11569// joining info is only needed for arabic
11570 if (format(ligature.tag(), *this, index, len)) {
11571//printf("using ligature 0x%x, len=%d\n",code,len);
11572// replace letter
11573composed.replace(cindex, len, QChar(head));
11574index += len-1;
11575// we continue searching in case we have a final
11576// form because medial ones are preferred.
11577if ( len != 1 || ligature.tag() !=QChar::Final )
11578 break;
11579 }
11580}
11581 }
11582 ligature.next();
11583}
11584cindex++;
11585index++;
11586 }
11587 *this = composed;
11588#endif
11589}
11590
11591static QChar LRM ((ushort)0x200e);
11592static QChar RLM ((ushort)0x200f);
11593static QChar LRE ((ushort)0x202a);
11594static QChar RLE ((ushort)0x202b);
11595static QChar RLO ((ushort)0x202e);
11596static QChar LRO ((ushort)0x202d);
11597static QChar PDF ((ushort)0x202c);
11598
11599#if 0
11600static inline bool is_arabic(unsigned short x) {
11601 return (((x >= 0x0600) && (x <= 0x07bf)) ||
11602 ((x >= 0xfb50) && (x <= 0xfdff)) ||
11603 ((x >= 0xfe70) && (x <= 0xfeff)));
11604}
11605#endif
11606
11607static inline bool is_neutral(unsigned short dir) {
11608 return ((dir == QChar::DirB) ||
11609 (dir == QChar::DirS) ||
11610 (dir == QChar::DirWS) ||
11611 (dir == QChar::DirON) ||
11612 (dir == QChar::DirNSM));
11613}
11614
11615/*!
11616 This function returns the basic directionality of the string (QChar::DirR for
11617 right to left and QChar::DirL for left to right). Useful to find the right
11618 alignment.
11619 */
11620QChar::Direction QString::basicDirection()
11621{
11622#ifndef QT_NO_UNICODETABLES
11623 // find base direction
11624 unsigned int pos = 0;
11625 while ((pos < length()) &&
11626 (at(pos) != RLE) &&
11627 (at(pos) != LRE) &&
11628 (at(pos) != RLO) &&
11629 (at(pos) != LRO) &&
11630 (at(pos).direction() > 1) &&
11631 (at(pos).direction() != QChar::DirAL)) // not R and not L
11632pos++;
11633
11634 if ((at(pos).direction() == QChar::DirR) ||
11635(at(pos).direction() == QChar::DirAL) ||
11636(at(pos) == RLE) ||
11637(at(pos) == RLO))
11638return QChar::DirR;
11639#endif
11640
11641 return QChar::DirL;
11642}
11643
11644#ifndef QT_NO_UNICODETABLES
11645// reverses part of the QChar array to get visual ordering
11646// called from QString::visual()
11647//
11648static unsigned int reverse( QString &chars, unsigned char *level,
11649 unsigned int a, unsigned int b)
11650{
11651 unsigned int c = a;
11652 unsigned char lev = level[c];
11653
11654 while ((c < b) && (level[c] >= lev)) {
11655if (level[c] > lev)
11656 c = reverse(chars, level, c, b);
11657c++;
11658 }
11659
11660 if (lev > 0) {
11661QChar temp;
11662unsigned int d = a, e = c-1;
11663while (d < e) {
11664 temp = chars[(int)d];
11665 chars[(int)d] = chars[(int)e];
11666 chars[(int)e] = temp;
11667
11668 d++; e--;
11669}
11670 }
11671
11672 return c;
11673}
11674
11675// small class used for the ordering algorithm in QString::visual()
11676class QBidiState {
11677public:
11678 unsigned char level;
11679 signed char override;
11680
11681 QBidiState(unsigned char l, signed char o) : level(l), override(o) {};
11682};
11683
11684// matrix for resolving neutral types
11685
11686#define NEG1 (QChar::Direction)(-1)
11687
11688static QChar::Direction resolv[5][5] =
11689{
11690{ NEG1, QChar::DirR, QChar::DirL, QChar::DirEN, QChar::DirAN },
11691{ QChar::DirR, QChar::DirR, NEG1, QChar::DirR, QChar::DirR },
11692{ QChar::DirL, NEG1, QChar::DirL, QChar::DirL, NEG1 },
11693{ QChar::DirEN, QChar::DirR, QChar::DirL, QChar::DirEN, QChar::DirR },
11694{ QChar::DirAN, QChar::DirR, NEG1, NEG1, QChar::DirAN }
11695};
11696
11697#endif
11698
11699/*!
11700 This function returns the QString ordered visually. Useful for
11701 painting the string or when transforming to a visually ordered
11702 encoding.
11703*/
11704QString QString::visual(int index, int len)
11705{
11706#ifndef QT_NO_UNICODETABLES
11707 // #### This needs much more optimizing - it is called for
11708 // #### every text operation.
11709
11710 unsigned char *level;
11711 QChar::Direction *dir;
11712 unsigned char base = 0;
11713
11714 unsigned int l = length();
11715
11716 // check bounds
11717 if (len == -1)
11718len = length()-index;
11719 if ((uint)index > l)
11720return QString::null;
11721
11722 // find base direction
11723 unsigned int pos = 0;
11724 while ((pos < length()) &&
11725 (at(pos) != RLE) &&
11726 (at(pos) != LRE) &&
11727 (at(pos) != RLO) &&
11728 (at(pos) != LRO) &&
11729 (at(pos).direction() > 1) &&
11730 (at(pos).direction() != QChar::DirAL)
11731 ) // not R and not L
11732pos++;
11733
11734 if ((pos < length()) &&
11735 ((at(pos).direction() == QChar::DirR) ||
11736 (at(pos).direction() == QChar::DirAL) ||
11737 (at(pos) == RLE) ||
11738 (at(pos) == RLO)))
11739base = 1;
11740
11741 // is there any BiDi char at all?
11742 if ( base == 0 && pos == l ) {
11743return mid(index, len);
11744 }
11745
11746
11747 level = new uchar[l];
11748 dir = new QChar::Direction[l];
11749
11750 // explicit override pass
11751 //unsigned int code_count = 0;
11752
11753 QStack<QBidiState> stack;
11754 stack.setAutoDelete(TRUE);
11755
11756 unsigned char clevel = base;
11757 signed char override = -1;
11758
11759 for (pos = 0; pos < l; pos++) {
11760
11761if (at(pos) == RLE) {
11762 //code_count++;
11763 stack.push(new QBidiState(clevel, override));
11764 if (clevel < 254)
11765clevel += 1 + clevel % 2;
11766 override = -1;
11767}
11768else if (at(pos) == LRE) {
11769 //code_count++;
11770 stack.push(new QBidiState(clevel, override));
11771 if (clevel < 254)
11772clevel += 2 - clevel % 2;
11773 override = -1;
11774}
11775else if (at(pos) == RLO) {
11776 //code_count++;
11777 stack.push(new QBidiState(clevel, override));
11778 if (clevel < 254)
11779clevel += 1 + clevel % 2;
11780 override = QChar::DirR;
11781}
11782else if (at(pos) == LRO) {
11783 //code_count++;
11784 stack.push(new QBidiState(clevel, override));
11785 if (clevel < 254)
11786clevel += 2 - clevel % 2;
11787 override = QChar::DirL;
11788}
11789else if (at(pos) == PDF) {
11790 //code_count++;
11791 if (!stack.isEmpty()) {
11792override = stack.top()->override;
11793clevel = stack.top()->level;
11794stack.remove();
11795 }
11796}
11797
11798// TODO: catch block separators (newlines, paras, etc.)
11799
11800level[pos] = clevel;
11801if (override != -1)
11802 dir[pos] = (QChar::Direction) override;
11803else
11804 dir[pos] = at(pos).direction();
11805 }
11806
11807 // weak type pass
11808 for (pos = 0; pos < l; pos++) {
11809
11810int i;
11811
11812switch (at(pos).direction()) {
11813case QChar::DirEN:
11814 i = pos-1;
11815 while ((i >= 0) &&
11816 !(at(i).direction() == QChar::DirAN) &&
11817 !(at(i).direction() == QChar::DirAL) &&
11818 !(at(i).direction() == QChar::DirB))
11819i--;
11820
11821 if ((i >= 0) &&
11822((at(i).direction() == QChar::DirAN) ||
11823 (at(i).direction() == QChar::DirAL)))
11824dir[pos] = QChar::DirAN;
11825
11826 break;
11827case QChar::DirES:
11828case QChar::DirCS:
11829 if ((pos > 0) && (pos < l-1) &&
11830(dir[pos-1] == dir[pos+1]))
11831dir[pos] = dir[pos-1];
11832 else
11833dir[pos] = QChar::DirON;
11834
11835 break;
11836case QChar::DirET:
11837 if (((pos > 0) && (dir[pos-1] == QChar::DirEN)) ||
11838((pos < l-1) && (dir[pos+1] == QChar::DirEN)))
11839dir[pos] = QChar::DirEN;
11840 else
11841dir[pos] = QChar::DirON;
11842
11843 break;
11844case QChar::DirAL:
11845 dir[pos] = QChar::DirR;
11846 break;
11847default:
11848 break;
11849}
11850 }
11851
11852 // neutral type pass
11853 for (pos = 0; pos < l; pos++) {
11854 QChar::Direction left,right; // declaring l here shadowed previous l
11855
11856if (is_neutral(dir[pos])) {
11857 if (pos > 0)
11858left = dir[pos-1];
11859 else
11860left = (base == 0 ? QChar::DirL : QChar::DirR);
11861
11862 int i = pos;
11863
11864 while ((i < (int)l-1) && is_neutral(dir[i+1]))
11865i++;
11866
11867 if (i < (int)l-1)
11868right = dir[i+1];
11869 else
11870right = (base == 0 ? QChar::DirL : QChar::DirR);
11871
11872 for (int j=pos; j <= i; j++) {
11873 int a = 1, b = 1;
11874 while ((a < 5) && (left != resolv[0][a]))
11875a++;
11876 while ((b < 5) && (right != resolv[0][b]))
11877b++;
11878 if ((a == 5) || (b == 5))
11879dir[j] = (base == 0 ? QChar::DirL : QChar::DirR);
11880 else
11881dir[j] = resolv[a][b];
11882
11883 if (dir[j] == (QChar::Direction)(-1))
11884dir[j] = (base == 0 ? QChar::DirL : QChar::DirR);
11885 }
11886}
11887 }
11888
11889 // implicit level pass
11890 QChar::Direction prec = (base == 0 ? QChar::DirL : QChar::DirR);
11891
11892 for (pos = 0; pos < l; pos++) {
11893if (level[pos] % 2) {
11894 switch (dir[pos]) {
11895 case QChar::DirL:
11896 case QChar::DirAN:
11897 case QChar::DirEN:
11898level[pos] += 1;
11899break;
11900 default:
11901break;
11902 }
11903} else {
11904 switch (dir[pos]) {
11905 case QChar::DirL:
11906// do nothing
11907break;
11908 case QChar::DirR:
11909level[pos] += 1;
11910break;
11911 case QChar::DirEN:
11912if (prec == QChar::DirL)
11913 continue;
11914// fall through
11915 case QChar::DirAN:
11916level[pos] += 2;
11917break;
11918 default:
11919break;
11920 }
11921}
11922
11923prec = dir[pos];
11924 }
11925
11926// now do the work!
11927QString ret(*this);
11928 reverse(ret, level, index, index+len);
11929
11930 delete [] level;
11931 delete [] dir;
11932
11933 return ret;
11934#else
11935 return mid(index,len);
11936#endif
11937}
11938
11939
11940
11941// These macros are used for efficient allocation of QChar strings.
11942// IMPORTANT! If you change these, make sure you also change the
11943// "delete unicode" statement in ~QStringData() in qstring.h correspondingly!
11944
11945#define QT_ALLOC_QCHAR_VEC( N ) (QChar*) new char[ sizeof(QChar)*( N ) ]
11946#define QT_DELETE_QCHAR_VEC( P ) delete[] ((char*)( P ))
11947
11948
11949/*!
11950 This utility function converts the 8-bit string
11951 \a ba to Unicode, returning the result.
11952
11953 The caller is responsible for deleting the return value with delete[].
11954*/
11955
11956QChar* QString::asciiToUnicode( const QByteArray& ba, uint* len )
11957{
11958 if ( ba.isNull() ) {
11959*len = 0;
11960return 0;
11961 }
11962 int l = 0;
11963 while ( l < (int)ba.size() && ba[l] )
11964l++;
11965 char* str = ba.data();
11966 QChar *uc = new QChar[ l ]; // Can't use macro, since function is public
11967 QChar *result = uc;
11968 if ( len )
11969*len = l;
11970 while (l--)
11971*uc++ = *str++;
11972 return result;
11973}
11974
11975static QChar* internalAsciiToUnicode( const QByteArray& ba, uint* len )
11976{
11977 if ( ba.isNull() ) {
11978*len = 0;
11979return 0;
11980 }
11981 int l = 0;
11982 while ( l < (int)ba.size() && ba[l] )
11983l++;
11984 char* str = ba.data();
11985 QChar *uc = QT_ALLOC_QCHAR_VEC( l );
11986 QChar *result = uc;
11987 if ( len )
11988*len = l;
11989 while (l--)
11990*uc++ = *str++;
11991 return result;
11992}
11993
11994/*!
11995 This utility function converts the NUL-terminated 8-bit string
11996 \a str to Unicode, returning the result and setting \a len to
11997 the length of the Unicode string.
11998
11999 The caller is responsible for deleting the return value with delete[].
12000*/
12001
12002QChar* QString::asciiToUnicode( const char *str, uint* len, uint maxlen )
12003{
12004 QChar* result = 0;
12005 uint l = 0;
12006 if ( str ) {
12007if ( maxlen != (uint)-1 ) {
12008 while ( l < maxlen && str[l] )
12009l++;
12010} else {
12011 // Faster?
12012 l = qstrlen(str);
12013}
12014QChar *uc = new QChar[ l ]; // Can't use macro since function is public
12015result = uc;
12016uint i = l;
12017while ( i-- )
12018 *uc++ = *str++;
12019 }
12020 if ( len )
12021*len = l;
12022 return result;
12023}
12024
12025static QChar* internalAsciiToUnicode( const char *str, uint* len,
12026 uint maxlen = (uint)-1 )
12027{
12028 QChar* result = 0;
12029 uint l = 0;
12030 if ( str ) {
12031if ( maxlen != (uint)-1 ) {
12032 while ( l < maxlen && str[l] )
12033l++;
12034} else {
12035 // Faster?
12036 l = qstrlen(str);
12037}
12038QChar *uc = QT_ALLOC_QCHAR_VEC( l );
12039result = uc;
12040uint i = l;
12041while ( i-- )
12042 *uc++ = *str++;
12043 }
12044 if ( len )
12045*len = l;
12046 return result;
12047}
12048
12049/*!
12050 This utility function converts \a l 16-bit characters from
12051 \a uc to ASCII, returning a NUL-terminated string.
12052
12053 The caller is responsible for deleting the string with delete[].
12054*/
12055char* QString::unicodeToAscii(const QChar *uc, uint l)
12056{
12057 if (!uc) {
12058return 0;
12059 }
12060 char *a = new char[l+1];
12061 char *result = a;
12062 while (l--)
12063*a++ = *uc++;
12064 *a = '\0';
12065 return result;
12066}
12067
12068static uint computeNewMax( uint len )
12069{
12070 if (len >= 0x80000000)
12071 return len;
12072
12073 uint newMax = 4;
12074 while ( newMax < len )
12075 newMax *= 2;
12076 // try to save some memory
12077 if ( newMax >= 1024 * 1024 && len <= newMax - (newMax >> 2) )
12078 newMax -= newMax >> 2;
12079 return newMax;
12080}
12081
12082/*!
12083 Returns the QString as a zero terminated array of unsigned shorts
12084 if the string is not null; otherwise returns zero.
12085
12086 The result remains valid so long as one unmodified
12087 copy of the source string exists.
12088 */
12089const unsigned short *QString::ucs2() const
12090{
12091 if ( ! d->unicode )
12092 return 0;
12093 unsigned int len = d->len;
12094 if ( d->maxl < len + 1 ) {
12095 // detach, grow or shrink
12096 uint newMax = computeNewMax( len + 1 );
12097 QChar* nd = QT_ALLOC_QCHAR_VEC( newMax );
12098 if ( nd ) {
12099 if ( d->unicode )
12100 memcpy( nd, d->unicode, sizeof(QChar)*len );
12101 ((QString *)this)->deref();
12102 ((QString *)this)->d = new QStringData( nd, len, newMax );
12103 }
12104 }
12105 d->unicode[len] = 0;
12106 return (unsigned short *) d->unicode;
12107}
12108
12109/*!
12110 Constructs a string that is a deep copy of \a str, interpreted as a
12111 UCS2 encoded, zero terminated, Unicode string.
12112
12113 If \a str is 0, then a null string is created.
12114 \sa isNull()
12115 */
12116QString QString::fromUcs2( const unsigned short *str )
12117{
12118 if ( !str ) {
12119 return QString::null;
12120 } else {
12121 int length = 0;
12122 while ( str[length] != 0 )
12123 length++;
12124 QChar* uc = QT_ALLOC_QCHAR_VEC( length );
12125 memcpy( uc, str, length*sizeof(QChar) );
12126 return QString( new QStringData( uc, length, length ), TRUE );
12127 }
12128}
12129
12130
12131/*****************************************************************************
12132 QString member functions
12133 *****************************************************************************/
12134
12135/*!
12136 \class QString qstring.h
12137
12138 \brief The QString class provides an abstraction of Unicode text and
12139 the classic C null-terminated char array (<var>char*</var>).
12140
12141 \ingroup tools
12142 \ingroup shared
12143
12144 QString uses \link shclass.html implicit sharing\endlink, and so it
12145 is very efficient and easy to use.
12146
12147 In all QString methods that take <var>const char*</var> parameters,
12148 the <var>const char*</var> is interpreted as a classic C-style
12149 0-terminated ASCII string. It is legal for the <var>const
12150 char*</var> parameter to be 0. The results are undefined if the
12151 <var>const char*</var> string is not 0-terminated. Functions that
12152 copy classic C strings into a QString will not copy the terminating
12153 0-character. The QChar array of the QString (as returned by
12154 unicode()) is not terminated by a null.
12155
12156 A QString that has not been assigned to anything is \a null, i.e. both
12157 the length and data pointer is 0. A QString that references the empty
12158 string ("", a single '\0' char) is \a empty.Both null and empty
12159 QStrings are legal parameters to the methods. Assigning <var>const char
12160 * 0</var> to QString gives a null QString.
12161
12162 Note that if you find that you are mixing usage of QCString, QString,
12163 and QByteArray, this causes lots of unnecessary copying and might
12164 indicate that the true nature of the data you are dealing with is
12165 uncertain. If the data is NUL-terminated 8-bit data, use QCString;
12166 if it is unterminated (ie. contains NULs) 8-bit data, use QByteArray;
12167 if it is text, use QString.
12168
12169 \sa QChar \link shclass.html Shared classes\endlink
12170*/
12171
12172Q_EXPORT QStringData *QString::shared_null = 0;
12173//QT_STATIC_CONST_IMPL QString QString::null;
12174QT_STATIC_CONST_IMPL QChar QChar::null;
12175QT_STATIC_CONST_IMPL QChar QChar::replacement((ushort)0xfffd);
12176QT_STATIC_CONST_IMPL QChar QChar::byteOrderMark((ushort)0xfeff);
12177QT_STATIC_CONST_IMPL QChar QChar::byteOrderSwapped((ushort)0xfffe);
12178QT_STATIC_CONST_IMPL QChar QChar::nbsp((ushort)0x00a0);
12179
12180#if defined(_CC_MSVC_) && _MSC_VER <= 1300
12181const QString::Null QString::null;
12182#else
12183const QString::Null QString::null = { };
12184#endif
12185
12186
12187QStringData* QString::makeSharedNull()
12188{
12189 return shared_null=new QStringData;
12190}
12191
12192// Uncomment this to get some useful statistics.
12193// #define Q2HELPER(x) x
12194
12195#ifdef Q2HELPER
12196static int stat_construct_charstar=0;
12197static int stat_construct_charstar_size=0;
12198static int stat_construct_null=0;
12199static int stat_construct_int=0;
12200static int stat_construct_int_size=0;
12201static int stat_construct_ba=0;
12202static int stat_get_ascii=0;
12203static int stat_get_ascii_size=0;
12204static int stat_copy_on_write=0;
12205static int stat_copy_on_write_size=0;
12206static int stat_fast_copy=0;
12207Q_EXPORT void qt_qstring_stats()
12208{
12209qDebug("construct_charstar = %d (%d chars)", stat_construct_charstar, stat_construct_charstar_size);
12210qDebug("construct_null = %d", stat_construct_null);
12211qDebug("construct_int = %d (%d chars)", stat_construct_int, stat_construct_int_size);
12212qDebug("construct_ba = %d", stat_construct_ba);
12213qDebug("get_ascii = %d (%d chars)", stat_get_ascii, stat_get_ascii_size);
12214qDebug("copy_on_write = %d (%d chars)", stat_copy_on_write, stat_copy_on_write_size);
12215qDebug("fast_copy = %d", stat_fast_copy);
12216}
12217#else
12218#define Q2HELPER(x)
12219#endif
12220
12221/*!
12222 \fn QString::QString()
12223
12224 Constructs a null string.
12225 \sa isNull()
12226*/
12227
12228/*!
12229 Constructs a string containing the one character \a ch.
12230*/
12231QString::QString( QChar ch )
12232{
12233 d = new QStringData( QT_ALLOC_QCHAR_VEC( 1 ), 1, 1 );
12234 d->unicode[0] = ch;
12235}
12236
12237/*!
12238 Constructs an implicitly-shared copy of \a s.
12239*/
12240QString::QString( const QString &s ) :
12241 d(s.d)
12242{
12243 Q2HELPER(stat_fast_copy++)
12244 d->ref();
12245}
12246
12247/*!
12248 Private function.
12249
12250 Constructs a string with preallocated space for \a size characters.
12251
12252 The string is empty.
12253
12254 \sa isNull()
12255*/
12256
12257QString::QString( int size, bool /*dummy*/ )
12258{
12259 if ( size ) {
12260Q2HELPER(stat_construct_int++)
12261int l = size;
12262Q2HELPER(stat_construct_int_size+=l)
12263QChar* uc = QT_ALLOC_QCHAR_VEC( l );
12264d = new QStringData( uc, 0, l );
12265 } else {
12266Q2HELPER(stat_construct_null++)
12267d = shared_null ? shared_null : (shared_null=new QStringData);
12268d->ref();
12269 }
12270}
12271
12272/*!
12273 Constructs a string that is a deep copy of \a ba interpreted as
12274 a classic C string.
12275*/
12276
12277QString::QString( const QByteArray& ba )
12278{
12279 Q2HELPER(stat_construct_ba++)
12280 uint l;
12281 QChar *uc = internalAsciiToUnicode(ba,&l);
12282 d = new QStringData(uc,l,l);
12283}
12284
12285QString::QString( const QCString& ba )
12286{
12287 //Q2HELPER(stat_construct_ba++)
12288 //uint l;
12289 //QChar *uc = internalAsciiToUnicode(ba,&l);
12290 //d = new QStringData(uc,l,l);
12291 Q2HELPER(stat_fast_copy++)
12292 QString s = QString::fromUtf8(ba.data(),ba.length());
12293 d = s.d;
12294 d->ref();
12295}
12296
12297/*!
12298 Constructs a string that is a deep copy of the
12299 first \a length QChar in the array \a unicode.
12300
12301 If \a unicode and \a length are 0, a null string is created.
12302
12303 If only \a unicode is 0, the string is empty, but has
12304 \a length characters of space preallocated - QString expands
12305 automatically anyway, but this may speed some cases up a little.
12306
12307 \sa isNull()
12308*/
12309
12310QString::QString( const QChar* unicode, uint length )
12311{
12312 if ( !unicode && !length ) {
12313d = shared_null ? shared_null : makeSharedNull();
12314d->ref();
12315 } else {
12316QChar* uc = QT_ALLOC_QCHAR_VEC( length );
12317if ( unicode )
12318 memcpy(uc, unicode, length*sizeof(QChar));
12319d = new QStringData(uc,unicode ? length : 0,length);
12320 }
12321}
12322
12323/*!
12324 Constructs a string that is a deep copy of \a str, interpreted as a
12325 classic C string.
12326
12327 If \a str is 0 a null string is created.
12328
12329 This is a cast constructor, but it is perfectly safe: converting a Latin1
12330 const char* to QString preserves all the information.
12331 You can disable this constructor by
12332 defining QT_NO_CAST_ASCII when you compile your applications.
12333 You can also make QString objects by using setLatin1()/fromLatin1(), or
12334 fromLocal8Bit(), fromUtf8(), or whatever encoding is appropriate for
12335 the 8-bit data you have.
12336
12337 \sa isNull()
12338*/
12339
12340QString::QString( const char *str )
12341{
12342 //Q2HELPER(stat_construct_charstar++)
12343 //uint l;
12344 //QChar *uc = internalAsciiToUnicode(str,&l);
12345 //Q2HELPER(stat_construct_charstar_size+=l)
12346 //d = new QStringData(uc,l,l);
12347 Q2HELPER(stat_fast_copy++)
12348 QString s = QString::fromUtf8(str);
12349 d = s.d;
12350 d->ref();
12351}
12352
12353
12354/*! \fn QString::~QString()
12355
12356Destroys the string and frees the "real" string, if this was the last
12357copy of that string.
12358*/
12359
12360
12361/*!
12362 Deallocates any space reserved solely by this QString.
12363*/
12364
12365void QString::real_detach()
12366{
12367 setLength( length() );
12368}
12369
12370void QString::deref()
12371{
12372 if ( d->deref() ) {
12373if ( d == shared_null )
12374 shared_null = 0;
12375delete d;
12376d = 0; // helps debugging
12377 }
12378}
12379
12380void QStringData::deleteSelf()
12381{
12382 delete this;
12383}
12384
12385/*!
12386 \fn QString& QString::operator=( QChar c )
12387 Sets the string to contain just the single character \a c.
12388*/
12389
12390/*!
12391 \fn QString& QString::operator=( char c )
12392 Sets the string to contain just the single character \a c.
12393*/
12394
12395/*!
12396 Assigns a shallow copy of \a s to this string and returns a
12397 reference to this string.
12398*/
12399QString &QString::operator=( const QString &s )
12400{
12401 Q2HELPER(stat_fast_copy++)
12402 s.d->ref();
12403 deref();
12404 d = s.d;
12405 return *this;
12406}
12407
12408/*!
12409 Assigns a deep copy of \a cs, interpreted as a classic C string, to
12410 this string and returns a reference to this string.
12411*/
12412QString &QString::operator=( const QCString& cs )
12413{
12414 return setLatin1(cs);
12415}
12416
12417
12418/*!
12419 Assigns a deep copy of \a str, interpreted as a classic C string,
12420 to this string and returns a reference to this string.
12421
12422 If \a str is 0 a null string is created.
12423
12424 \sa isNull()
12425*/
12426QString &QString::operator=( const char *str )
12427{
12428 return setLatin1(str);
12429}
12430
12431
12432/*!
12433 \fn bool QString::isNull() const
12434
12435 Returns TRUE if the string is null.
12436 A null string is also an empty string.
12437
12438 Example:
12439 \code
12440 QString a;// a.unicode() == 0, a.length() == 0
12441 QString b = "";// b.unicode() == "", b.length() == 0
12442 a.isNull();// TRUE, because a.unicode() == 0
12443 a.isEmpty();// TRUE, because a.length() == 0
12444 b.isNull();// FALSE, because b.unicode() != 0
12445 b.isEmpty();// TRUE, because b.length() == 0
12446 \endcode
12447
12448 \sa isEmpty(), length()
12449*/
12450
12451/*!
12452 \fn bool QString::isEmpty() const
12453
12454 Returns TRUE if the string is empty, i.e. if length() == 0.
12455 An empty string is not always a null string.
12456
12457 See example in isNull().
12458
12459 \sa isNull(), length()
12460*/
12461
12462/*!
12463 \fn uint QString::length() const
12464
12465 Returns the length of the string.
12466
12467 Null strings and empty strings have zero length.
12468
12469 \sa isNull(), isEmpty()
12470*/
12471
12472/*!
12473 Truncates the string at position \a newLen if newLen is less than the
12474 current length . Otherwise, nothing happens.
12475
12476 Example:
12477 \code
12478 QString s = "truncate this string";
12479 s.truncate( 5 );// s == "trunc"
12480 \endcode
12481
12482 In Qt 1.x, it was possible to "truncate" a string to a longer
12483 length. This is no longer possible.
12484
12485*/
12486
12487void QString::truncate( uint newLen )
12488{
12489 if ( newLen < d->len )
12490setLength( newLen );
12491}
12492
12493/*### Make this public in 3.0
12494 Ensures that at least \a newLen characters are allocated, and
12495 sets the length to \a newLen. This function always detaches the
12496 string from other references to the same data. Any new space
12497 allocated is \e not defined.
12498
12499 If \a newLen is 0, this string becomes empty, unless this string is
12500 null, in which case it remains null.
12501
12502 \sa truncate(), isNull(), isEmpty()
12503*/
12504
12505void QString::setLength( uint newLen )
12506{
12507 if ( d->count != 1 || newLen > d->maxl || // detach, grow, or
12508 ( newLen*4 < d->maxl && d->maxl > 4 ) ) {// shrink
12509Q2HELPER(stat_copy_on_write++)
12510Q2HELPER(stat_copy_on_write_size+=d->len)
12511uint newMax = 4;
12512while ( newMax < newLen )
12513 newMax *= 2;
12514QChar* nd = QT_ALLOC_QCHAR_VEC( newMax );
12515uint len = QMIN( d->len, newLen );
12516if ( d->unicode )
12517 memcpy( nd, d->unicode, sizeof(QChar)*len );
12518deref();
12519d = new QStringData( nd, newLen, newMax );
12520 } else {
12521d->len = newLen;
12522d->dirtyascii = 1;
12523 }
12524}
12525
12526/*! Returns a string equal to this one, but with the lowest-numbered
12527 occurrence of \c %i (for a positive integer i) replaced by \a a.
12528
12529 \code
12530 label.setText( tr("Rename %1 to %2?").arg(oldName).arg(newName) );
12531 \endcode
12532
12533 \a fieldwidth is the minimum amount of space \a a is padded to. A
12534 positive value produces right-aligned text, while a negative value
12535 produces left aligned text.
12536
12537 \warning Using arg() for constructing "real" sentences
12538 programmatically is likely to lead to translation problems.
12539 Inserting objects like numbers or file names is fairly safe.
12540
12541 \warning Relying on spaces to create alignment is prone to lead to
12542 translation problems.
12543
12544 If there is no \c %i pattern, a warning message (qWarning()) is
12545 printed and the text as appended at the end of the string. This is
12546 error recovery and should not occur in correct code.
12547
12548 \sa QObject::tr()
12549*/
12550QString QString::arg(const QString& a, int fieldwidth) const
12551{
12552 int pos, len;
12553 QString r = *this;
12554
12555 if ( !findArg( pos, len ) ) {
12556qWarning( "QString::arg(): Argument missing: %s, %s",
12557 (const char *)this, (const char *)a );
12558// Make sure the text at least appears SOMEWHERE
12559r += ' ';
12560pos = r.length();
12561len = 0;
12562 }
12563
12564 r.replace( pos, len, a );
12565 if ( fieldwidth < 0 ) {
12566QString s;
12567while ( (uint)-fieldwidth > a.length() ) {
12568 s += ' ';
12569 fieldwidth++;
12570}
12571r.insert( pos + a.length(), s );
12572 } else if ( fieldwidth ) {
12573QString s;
12574while ( (uint)fieldwidth > a.length() ) {
12575 s += ' ';
12576 fieldwidth--;
12577}
12578r.insert( pos, s );
12579 }
12580
12581 return r;
12582}
12583
12584
12585/*! \overload
12586
12587 \a a is expressed in to \a base notation, which is decimal by
12588 default and must be in the range 2-36 inclusive.
12589*/
12590QString QString::arg(long a, int fieldwidth, int base) const
12591{
12592 return arg( QString::number( a, base ), fieldwidth );
12593}
12594
12595/*! \overload
12596
12597 \a a is expressed in to \a base notation, which is decimal by
12598 default and must be in the range 2-36 inclusive.
12599*/
12600QString QString::arg(ulong a, int fieldwidth, int base) const
12601{
12602 return arg( QString::number( a, base ), fieldwidth );
12603}
12604
12605/*!
12606 \overload QString QString::arg(int a, int fieldwidth, int base) const
12607
12608 \a a is expressed in to \a base notation, which is decimal by
12609 default and must be in the range 2-36 inclusive.
12610
12611*/
12612
12613/*!
12614 \overload QString QString::arg(uint a, int fieldwidth, int base) const
12615
12616 \a a is expressed in to \a base notation, which is decimal by
12617 default and must be in the range 2-36 inclusive.
12618*/
12619
12620/*!
12621 \overload QString QString::arg(short a, int fieldwidth, int base) const
12622
12623 \a a is expressed in to \a base notation, which is decimal by
12624 default and must be in the range 2-36 inclusive.
12625*/
12626
12627/*!
12628 \overload QString QString::arg(ushort a, int fieldwidth, int base) const
12629
12630 \a a is expressed in to \a base notation, which is decimal by
12631 default and must be in the range 2-36 inclusive.
12632*/
12633
12634
12635/*! \overload
12636
12637 \a a is assumed to be in the Latin1 character set.
12638*/
12639QString QString::arg(char a, int fieldwidth) const
12640{
12641 QString c;
12642 c += a;
12643 return arg( c, fieldwidth );
12644}
12645
12646/*! \overload
12647*/
12648QString QString::arg(QChar a, int fieldwidth) const
12649{
12650 QString c;
12651 c += a;
12652 return arg( c, fieldwidth );
12653}
12654
12655/*! \overload
12656
12657 \a is formatted according to the \a fmt format specified, which is
12658 'g' by default and can be any of 'f', 'F', 'e', 'E', 'g' or 'G', all
12659 of which have the same meaning as for sprintf(). \a prec determines
12660 the precision, just as for number() and sprintf().
12661*/
12662QString QString::arg(double a, int fieldwidth, char fmt, int prec) const
12663{
12664 return arg( QString::number( a, fmt, prec ), fieldwidth );
12665}
12666
12667
12668/*!
12669 Just 1-digit arguments.
12670*/
12671bool QString::findArg(int& pos, int& len) const
12672{
12673 char lowest=0;
12674 for (uint i=0; i<length(); i++) {
12675if ( at(i) == '%' && i+1<length() ) {
12676 char dig = at(i+1);
12677 if ( dig >= '0' && dig <= '9' ) {
12678if ( !lowest || dig < lowest ) {
12679 lowest = dig;
12680 pos = i;
12681 len = 2;
12682}
12683 }
12684}
12685 }
12686 return lowest != 0;
12687}
12688
12689/*!
12690 Safely builds a formatted string from a format string and an
12691 arbitrary list of arguments. The format string supports all
12692 the escape sequences of printf() in the standard C library.
12693
12694 The %s escape sequence expects a utf8() encoded string.
12695 The format string \e cformat is expected to be in latin1. If you need a unicode
12696 format string, use QString::arg() instead. For typesafe
12697 string building, with full Unicode support, you can use QTextOStream
12698 like this:
12699
12700 \code
12701 QString str;
12702 QString s = ...;
12703 int x = ...;
12704 QTextOStream(&str) << s << " : " << x;
12705 \endcode
12706
12707 For \link QObject::tr() translations,\endlink especially if the
12708 strings contains more than one escape sequence, you should consider
12709 using the arg() function instead. This allows the order of the
12710 replacements to be controlled by the translator, and has Unicode
12711 support.
12712
12713 \sa arg()
12714*/
12715
12716QString &QString::sprintf( const char* cformat, ... )
12717{
12718 va_list ap;
12719 va_start( ap, cformat );
12720
12721 if ( !cformat || !*cformat ) {
12722// Qt 1.x compat
12723*this = QString::fromLatin1( "" );
12724return *this;
12725 }
12726 QString format = QString::fromLatin1( cformat );
12727
12728 static QRegExp *escape = 0;
12729 if (!escape)
12730escape = new QRegExp( "%#?0?-? ?\\+?'?[0-9*]*\\.?[0-9*]*h?l?L?q?Z?" );
12731
12732 QString result;
12733 uint last = 0;
12734
12735 int len = 0;
12736 int pos;
12737 while ( 1 ) {
12738pos = escape->match( cformat, last, &len );
12739// Non-escaped text
12740if ( pos > (int)last )
12741 result += format.mid(last,pos-last);
12742if ( pos < 0 ) {
12743 // The rest
12744 if ( last < format.length() )
12745result += format.mid(last);
12746 break;
12747}
12748last = pos + len + 1;
12749
12750// Escape
12751QString f = format.mid( pos, len );
12752uint width, decimals;
12753int params = 0;
12754int wpos = f.find('*');
12755if ( wpos >= 0 ) {
12756 params++;
12757 width = va_arg( ap, int );
12758 if ( f.find('*', wpos + 1) >= 0 ) {
12759decimals = va_arg( ap, int );
12760params++;
12761 } else {
12762decimals = 0;
12763 }
12764} else {
12765 decimals = width = 0;
12766}
12767QString replacement;
12768if ( format[pos+len] == 's' ||
12769 format[pos+len] == 'S' ||
12770 format[pos+len] == 'c' )
12771{
12772 bool rightjust = ( f.find('-') < 0 );
12773 // Yes, %-5s really means left adjust in sprintf
12774
12775 if ( wpos < 0 ) {
12776QRegExp num( "[0-9]+" );
12777QRegExp dot( "\\." );
12778int nlen;
12779int p = num.match( f.data(), 0, &nlen );
12780int q = dot.match( f.data(), 0 );
12781if ( q < 0 || (p < q && p >= 0) )
12782 width = f.mid( p, nlen ).toInt();
12783if ( q >= 0 ) {
12784 p = num.match( f.data(), q );
12785 // "decimals" is used to specify string truncation
12786 if ( p >= 0 )
12787decimals = f.mid( p, nlen ).toInt();
12788}
12789 }
12790
12791 if ( format[pos+len] == 's' ) {
12792#ifndef QT_NO_TEXTCODEC
12793QString s = QString::fromUtf8(va_arg(ap, char*));
12794#else
12795QString s = QString::fromLatin1(va_arg(ap, char*));
12796#endif
12797if ( decimals <= 0 )
12798 replacement = s;
12799else
12800 replacement = s.left(decimals);
12801 } else {
12802int ch = va_arg(ap, int);
12803replacement = QChar((ushort)ch);
12804 }
12805 if ( replacement.length() < width ) {
12806replacement = rightjust
12807 ? replacement.rightJustify(width)
12808 : replacement.leftJustify(width);
12809 }
12810} else if ( format[pos+len] == '%' ) {
12811 replacement = '%';
12812} else if ( format[pos+len] == 'n' ) {
12813 int* n = va_arg(ap, int*);
12814 *n = result.length();
12815} else {
12816 char in[64], out[330] = "";
12817 strncpy(in,f.latin1(),63);
12818 char fch = format[pos+len].latin1();
12819 in[f.length()] = fch;
12820 switch ( fch ) {
12821 case 'd': case 'i': case 'o': case 'u': case 'x': case 'X': {
12822int value = va_arg(ap, int);
12823switch (params) {
12824 case 0: ::sprintf( out, in, value ); break;
12825 case 1: ::sprintf( out, in, width, value ); break;
12826 case 2: ::sprintf( out, in, width, decimals, value ); break;
12827}
12828 } break;
12829 case 'e': case 'E': case 'f': case 'g': case 'G': {
12830double value = va_arg(ap, double);
12831switch (params) {
12832 case 0: ::sprintf( out, in, value ); break;
12833 case 1: ::sprintf( out, in, width, value ); break;
12834 case 2: ::sprintf( out, in, width, decimals, value ); break;
12835}
12836 } break;
12837 case 'p': {
12838void* value = va_arg(ap, void*);
12839switch (params) {
12840 case 0: ::sprintf( out, in, value ); break;
12841 case 1: ::sprintf( out, in, width, value ); break;
12842 case 2: ::sprintf( out, in, width, decimals, value ); break;
12843}
12844 } break;
12845 }
12846 replacement = QString::fromLatin1(out);
12847}
12848result += replacement;
12849 }
12850 *this = result;
12851
12852 va_end( ap );
12853 return *this;
12854}
12855
12856/*!
12857 Fills the string with \a len characters of value \a c.
12858
12859 If \a len is negative, the current string length is used.
12860*/
12861
12862void QString::fill( QChar c, int len )
12863{
12864 if ( len < 0 )
12865len = length();
12866 if ( len == 0 ) {
12867*this = "";
12868 } else {
12869deref();
12870QChar * nd = QT_ALLOC_QCHAR_VEC( len );
12871d = new QStringData(nd,len,len);
12872while (len--) *nd++ = c;
12873 }
12874}
12875
12876
12877/*!
12878 \fn QString QString::copy() const
12879
12880 \obsolete
12881
12882 Returns a deep copy of this string.
12883
12884 Doing this is redundant in Qt 2.x, since QString is implicitly
12885 shared, and so will automatically be deeply copied as necessary.
12886*/
12887
12888/*!
12889 Finds the first occurrence of the character \a c, starting at
12890 position \a index. If \a index is -1, the search starts at the
12891 last character; if -2, at the next to last character; etc.
12892
12893 The search is case sensitive if \a cs is TRUE, or case insensitive
12894 if \a cs is FALSE.
12895
12896 Returns the position of \a c, or -1 if \a c could not be found.
12897*/
12898
12899int QString::find( QChar c, int index, bool cs ) const
12900{
12901 if ( index < 0 )
12902index += length();
12903 if ( (uint)index >= length() )// index outside string
12904return -1;
12905 register const QChar *uc;
12906 uc = unicode()+index;
12907 int n = length()-index;
12908 if ( cs ) {
12909while ( n-- && *uc != c )
12910 uc++;
12911 } else {
12912c = c.lower();
12913while ( n-- && uc->lower() != c )
12914 uc++;
12915 }
12916 if ( uint(uc - unicode()) >= length() )
12917return -1;
12918 return (int)(uc - unicode());
12919}
12920
12921/*!
12922 Finds the first occurrence of the string \a str, starting at position
12923 \a index. If \a index is -1, the search starts at the last character;
12924 if -2, at the next to last character; etc.
12925
12926 The search is case sensitive if \a cs is TRUE, or case insensitive if
12927 \a cs is FALSE.
12928
12929 Returns the position of \a str, or -1 if \a str could not be found.
12930*/
12931
12932int QString::find( const QString& str, int index, bool cs ) const
12933{
12934 /*
12935 We use some weird hashing for efficiency's sake. Instead of
12936 comparing strings, we compare the hash value of str with that of
12937 a part of this QString. Only if that matches, we call ucstrncmp
12938 or ucstrnicmp.
12939
12940 The hash value of a string is the sum of the cells of its
12941 QChars.
12942 */
12943 if ( index < 0 )
12944index += length();
12945 int lstr = str.length();
12946 int lthis = length() - index;
12947 if ( (uint)lthis > length() )
12948return -1;
12949 int delta = lthis - lstr;
12950 if ( delta < 0 )
12951return -1;
12952
12953 const QChar *uthis = unicode() + index;
12954 const QChar *ustr = str.unicode();
12955 uint hthis = 0;
12956 uint hstr = 0;
12957 int i;
12958 if ( cs ) {
12959for ( i = 0; i < lstr; i++ ) {
12960 hthis += uthis[i].cell();
12961 hstr += ustr[i].cell();
12962}
12963i = 0;
12964while ( TRUE ) {
12965 if ( hthis == hstr && ucstrncmp(uthis + i, ustr, lstr) == 0 )
12966return index + i;
12967 if ( i == delta )
12968return -1;
12969 hthis += uthis[i + lstr].cell();
12970 hthis -= uthis[i].cell();
12971 i++;
12972}
12973 } else {
12974for ( i = 0; i < lstr; i++ ) {
12975 hthis += uthis[i].lower().cell();
12976 hstr += ustr[i].lower().cell();
12977}
12978i = 0;
12979while ( TRUE ) {
12980 if ( hthis == hstr && ucstrnicmp(uthis + i, ustr, lstr) == 0 )
12981return index + i;
12982 if ( i == delta )
12983return -1;
12984 hthis += uthis[i + lstr].lower().cell();
12985 hthis -= uthis[i].lower().cell();
12986 i++;
12987}
12988 }
12989#if defined(Q_SPURIOUS_NON_VOID_WARNING)
12990 return -1;
12991#endif
12992}
12993
12994/*!
12995 \fn int QString::findRev( const char* str, int index ) const
12996
12997 Equivalent to findRev(QString(str), index).
12998*/
12999
13000/*!
13001 \fn int QString::find( const char* str, int index ) const
13002
13003 Equivalent to find(QString(str), index).
13004*/
13005
13006/*!
13007 Finds the first occurrence of the character \a c, starting at
13008 position \a index and searching backwards. If \a index is -1,
13009 the search starts at the last character; if -2, at the next to
13010 last character; etc.
13011
13012 The search is case sensitive if \a cs is TRUE, or case insensitive if \a
13013 cs is FALSE.
13014
13015 Returns the position of \a c, or -1 if \a c could not be found.
13016*/
13017
13018int QString::findRev( QChar c, int index, bool cs ) const
13019{
13020 QString t( c );
13021 return findRev( t, index, cs );
13022}
13023
13024/*!
13025 Finds the first occurrence of the string \a str, starting at
13026 position \a index and searching backwards. If \a index is -1,
13027 the search starts at the last character; -2, at the next to last
13028 character; etc.
13029
13030 The search is case sensitive if \a cs is TRUE, or case insensitive if \e
13031 cs is FALSE.
13032
13033 Returns the position of \a str, or -1 if \a str could not be found.
13034*/
13035
13036int QString::findRev( const QString& str, int index, bool cs ) const
13037{
13038 /*
13039 See QString::find() for explanations.
13040 */
13041 int lthis = length();
13042 if ( index < 0 )
13043index += lthis;
13044
13045 int lstr = str.length();
13046 int delta = lthis - lstr;
13047 if ( index < 0 || index > lthis || delta < 0 )
13048return -1;
13049 if ( index > delta )
13050index = delta;
13051
13052 const QChar *uthis = unicode();
13053 const QChar *ustr = str.unicode();
13054 uint hthis = 0;
13055 uint hstr = 0;
13056 int i;
13057 if ( cs ) {
13058for ( i = 0; i < lstr; i++ ) {
13059 hthis += uthis[index + i].cell();
13060 hstr += ustr[i].cell();
13061}
13062i = index;
13063while ( TRUE ) {
13064 if ( hthis == hstr && ucstrncmp(uthis + i, ustr, lstr) == 0 )
13065return i;
13066 if ( i == 0 )
13067return -1;
13068 i--;
13069 hthis -= uthis[i + lstr].cell();
13070 hthis += uthis[i].cell();
13071}
13072 } else {
13073for ( i = 0; i < lstr; i++ ) {
13074 hthis += uthis[index + i].lower().cell();
13075 hstr += ustr[i].lower().cell();
13076}
13077i = index;
13078while ( TRUE ) {
13079 if ( hthis == hstr && ucstrnicmp(uthis + i, ustr, lstr) == 0 )
13080return i;
13081 if ( i == 0 )
13082return -1;
13083 i--;
13084 hthis -= uthis[i + lstr].lower().cell();
13085 hthis += uthis[i].lower().cell();
13086}
13087 }
13088#if defined(Q_SPURIOUS_NON_VOID_WARNING)
13089 return -1;
13090#endif
13091}
13092
13093
13094/*!
13095 Returns the number of times the character \a c occurs in the string.
13096
13097 The match is case sensitive if \a cs is TRUE, or case insensitive if \a cs
13098 is FALSE.
13099*/
13100
13101int QString::contains( QChar c, bool cs ) const
13102{
13103 int count = 0;
13104 const QChar *uc = unicode();
13105 if ( !uc )
13106return 0;
13107 int n = length();
13108 if ( cs ) {// case sensitive
13109while ( n-- )
13110 if ( *uc++ == c )
13111count++;
13112 } else {// case insensitive
13113c = c.lower();
13114while ( n-- ) {
13115 if ( uc->lower() == c )
13116count++;
13117 uc++;
13118}
13119 }
13120 return count;
13121}
13122
13123/*!
13124 \overload
13125*/
13126int QString::contains( const char* str, bool cs ) const
13127{
13128 return contains(QString(str),cs);
13129}
13130
13131/*!
13132 \overload int QString::contains (char c, bool cs) const
13133*/
13134
13135/*!
13136 \overload int QString::find (char c, int index, bool cs) const
13137
13138*/
13139
13140/*!
13141 \overload int QString::findRev (char c, int index, bool cs) const
13142
13143*/
13144
13145/*!
13146 Returns the number of times \a str occurs in the string.
13147
13148 The match is case sensitive if \a cs is TRUE, or case insensitive if \e
13149 cs is FALSE.
13150
13151 This function counts overlapping substrings, for example, "banana"
13152 contains two occurrences of "ana".
13153
13154 \sa findRev()
13155*/
13156
13157int QString::contains( const QString &str, bool cs ) const
13158{
13159 int count = 0;
13160 const QChar *uc = unicode();
13161 if ( !uc )
13162return 0;
13163 int len = str.length();
13164 int n = length();
13165 while ( n-- ) {// counts overlapping strings
13166// ### Doesn't account for length of this - searches over "end"
13167if ( cs ) {
13168 if ( ucstrncmp( uc, str.unicode(), len ) == 0 )
13169count++;
13170} else {
13171 if ( ucstrnicmp(uc, str.unicode(), len) == 0 )
13172count++;
13173}
13174uc++;
13175 }
13176 return count;
13177}
13178
13179/*!
13180 Returns a substring that contains the \a len leftmost characters
13181 of the string.
13182
13183 The whole string is returned if \a len exceeds the length of the
13184 string.
13185
13186
13187 Example:
13188 \code
13189 QString s = "Pineapple";
13190 QString t = s.left( 4 );// t == "Pine"
13191 \endcode
13192
13193 \sa right(), mid(), isEmpty()
13194*/
13195
13196QString QString::left( uint len ) const
13197{
13198 if ( isEmpty() ) {
13199return QString();
13200 } else if ( len == 0 ) {// ## just for 1.x compat:
13201return QString::fromLatin1("");
13202 } else if ( len > length() ) {
13203return *this;
13204 } else {
13205QString s( len, TRUE );
13206memcpy( s.d->unicode, d->unicode, len*sizeof(QChar) );
13207s.d->len = len;
13208return s;
13209 }
13210}
13211
13212/*!
13213 Returns a substring that contains the \a len rightmost characters
13214 of the string.
13215
13216 The whole string is returned if \a len exceeds the length of the
13217 string.
13218
13219 Example:
13220 \code
13221 QString s = "Pineapple";
13222 QString t = s.right( 5 );// t == "apple"
13223 \endcode
13224
13225 \sa left(), mid(), isEmpty()
13226*/
13227
13228QString QString::right( uint len ) const
13229{
13230 if ( isEmpty() ) {
13231return QString();
13232 } else if ( len == 0 ) {// ## just for 1.x compat:
13233return QString::fromLatin1("");
13234 } else {
13235uint l = length();
13236if ( len > l )
13237 len = l;
13238QString s( len, TRUE );
13239memcpy( s.d->unicode, d->unicode+(l-len), len*sizeof(QChar) );
13240s.d->len = len;
13241return s;
13242 }
13243}
13244
13245/*!
13246 Returns a substring that contains the \a len characters of this
13247 string, starting at position \a index.
13248
13249 Returns a null string if the string is empty or \a index is out
13250 of range. Returns the whole string from \a index if \a index+len exceeds
13251 the length of the string.
13252
13253 Example:
13254 \code
13255 QString s = "Five pineapples";
13256 QString t = s.mid( 5, 4 );// t == "pine"
13257 \endcode
13258
13259 \sa left(), right()
13260*/
13261
13262QString QString::mid( uint index, uint len ) const
13263{
13264 uint slen = length();
13265 if ( isEmpty() || index >= slen ) {
13266return QString();
13267 } else if ( len == 0 ) {// ## just for 1.x compat:
13268return QString::fromLatin1("");
13269 } else {
13270if ( len > slen-index )
13271 len = slen - index;
13272if ( index == 0 && len == length() )
13273 return *this;
13274register const QChar *p = unicode()+index;
13275QString s( len, TRUE );
13276memcpy( s.d->unicode, p, len*sizeof(QChar) );
13277s.d->len = len;
13278return s;
13279 }
13280}
13281
13282/*!
13283 Returns a string of length \a width that contains this
13284 string and padded by the \a fill character.
13285
13286 If the length of the string exceeds \a width and \a truncate is FALSE,
13287 then the returned string is a copy of the string.
13288 If the length of the string exceeds \a width and \a truncate is TRUE,
13289 then the returned string is a left(\a width).
13290
13291 Example:
13292 \code
13293 QString s("apple");
13294 QString t = s.leftJustify(8, '.');// t == "apple..."
13295 \endcode
13296
13297 \sa rightJustify()
13298*/
13299
13300QString QString::leftJustify( uint width, QChar fill, bool truncate ) const
13301{
13302 QString result;
13303 int len = length();
13304 int padlen = width - len;
13305 if ( padlen > 0 ) {
13306result.setLength(len+padlen);
13307if ( len )
13308 memcpy( result.d->unicode, unicode(), sizeof(QChar)*len );
13309QChar* uc = result.d->unicode + len;
13310while (padlen--)
13311 *uc++ = fill;
13312 } else {
13313if ( truncate )
13314 result = left( width );
13315else
13316 result = *this;
13317 }
13318 return result;
13319}
13320
13321/*!
13322 Returns a string of length \a width that contains pad
13323 characters followed by the string.
13324
13325 If the length of the string exceeds \a width and \a truncate is FALSE,
13326 then the returned string is a copy of the string.
13327 If the length of the string exceeds \a width and \a truncate is TRUE,
13328 then the returned string is a left(\a width).
13329
13330 Example:
13331 \code
13332 QString s("pie");
13333 QString t = s.rightJustify(8, '.');// t == ".....pie"
13334 \endcode
13335
13336 \sa leftJustify()
13337*/
13338
13339QString QString::rightJustify( uint width, QChar fill, bool truncate ) const
13340{
13341 QString result;
13342 int len = length();
13343 int padlen = width - len;
13344 if ( padlen > 0 ) {
13345result.setLength( len+padlen );
13346QChar* uc = result.d->unicode;
13347while (padlen--)
13348 *uc++ = fill;
13349if ( len )
13350 memcpy( uc, unicode(), sizeof(QChar)*len );
13351 } else {
13352if ( truncate )
13353 result = left( width );
13354else
13355 result = *this;
13356 }
13357 return result;
13358}
13359
13360/*!
13361 Returns a new string that is the string converted to lower case.
13362
13363 Example:
13364 \code
13365 QString s("TeX");
13366 QString t = s.lower();// t == "tex"
13367 \endcode
13368
13369 \sa upper()
13370*/
13371
13372QString QString::lower() const
13373{
13374 QString s(*this);
13375 int l=length();
13376 if ( l ) {
13377s.real_detach(); // could do this only when we find a change
13378register QChar *p=s.d->unicode;
13379if ( p ) {
13380 while ( l-- ) {
13381*p = p->lower();
13382p++;
13383 }
13384}
13385 }
13386 return s;
13387}
13388
13389/*!
13390 Returns a new string that is the string converted to upper case.
13391
13392 Example:
13393 \code
13394 QString s("TeX");
13395 QString t = s.upper();// t == "TEX"
13396 \endcode
13397
13398 \sa lower()
13399*/
13400
13401QString QString::upper() const
13402{
13403 QString s(*this);
13404 int l=length();
13405 if ( l ) {
13406s.real_detach(); // could do this only when we find a change
13407register QChar *p=s.d->unicode;
13408if ( p ) {
13409 while ( l-- ) {
13410*p = p->upper();
13411p++;
13412 }
13413}
13414 }
13415 return s;
13416}
13417
13418
13419/*!
13420 Returns a new string that has white space removed from the start and the end.
13421
13422 White space means any character for which QChar::isSpace() returns
13423 TRUE. This includes ASCII characters 9 (TAB), 10 (LF), 11 (VT), 12
13424 (FF), 13 (CR), and 32 (Space).
13425
13426 Example:
13427 \code
13428 QString s = " space ";
13429 QString t = s.stripWhiteSpace();// t == "space"
13430 \endcode
13431
13432 \sa simplifyWhiteSpace()
13433*/
13434
13435QString QString::stripWhiteSpace() const
13436{
13437 if ( isEmpty() )// nothing to do
13438return *this;
13439 if ( !at(0).isSpace() && !at(length()-1).isSpace() )
13440return *this;
13441
13442 register const QChar *s = unicode();
13443 QString result = fromLatin1("");
13444
13445 int start = 0;
13446 int end = length() - 1;
13447 while ( start<=end && s[start].isSpace() )// skip white space from start
13448start++;
13449 if ( start > end ) {// only white space
13450return result;
13451 }
13452 while ( end && s[end].isSpace() )// skip white space from end
13453end--;
13454 int l = end - start + 1;
13455 result.setLength( l );
13456 if ( l )
13457memcpy( result.d->unicode, &s[start], sizeof(QChar)*l );
13458 return result;
13459}
13460
13461
13462/*!
13463 Returns a new string that has white space removed from the start and the end,
13464 plus any sequence of internal white space replaced with a single space
13465 (ASCII 32).
13466
13467 White space means any character for which QChar::isSpace() returns
13468 TRUE. This includes ASCII characters 9 (TAB), 10 (LF), 11 (VT), 12
13469 (FF), 13 (CR), and 32 (Space).
13470
13471 \code
13472 QString s = " lots\t of\nwhite space ";
13473 QString t = s.simplifyWhiteSpace();// t == "lots of white space"
13474 \endcode
13475
13476 \sa stripWhiteSpace()
13477*/
13478
13479QString QString::simplifyWhiteSpace() const
13480{
13481 if ( isEmpty() )// nothing to do
13482return *this;
13483 QString result;
13484 result.setLength( length() );
13485 const QChar *from = unicode();
13486 const QChar *fromend = from+length();
13487 int outc=0;
13488 QChar *to= result.d->unicode;
13489 while ( TRUE ) {
13490while ( from!=fromend && from->isSpace() )
13491 from++;
13492while ( from!=fromend && !from->isSpace() )
13493 to[outc++] = *from++;
13494if ( from!=fromend )
13495 to[outc++] = ' ';
13496else
13497 break;
13498 }
13499 if ( outc > 0 && to[outc-1] == ' ' )
13500outc--;
13501 result.truncate( outc );
13502 return result;
13503}
13504
13505
13506/*!
13507 Insert \a s into the string before position \a index.
13508
13509 If \a index is beyond the end of the string, the string is extended with
13510 spaces (ASCII 32) to length \a index and \a s is then appended.
13511
13512 \code
13513 QString s = "I like fish";
13514 s.insert( 2, "don't ");// s == "I don't like fish"
13515 s = "x";
13516 s.insert( 3, "yz" );// s == "x yz"
13517 \endcode
13518*/
13519
13520QString &QString::insert( uint index, const QString &s )
13521{
13522 // the sub function takes care of &s == this case.
13523 return insert( index, s.unicode(), s.length() );
13524}
13525
13526/*!
13527 Insert \a len units of QChar data from \a s into the string before
13528 position \a index.
13529*/
13530
13531QString &QString::insert( uint index, const QChar* s, uint len )
13532{
13533 if ( len == 0 )
13534return *this;
13535 uint olen = length();
13536 int nlen = olen + len;
13537
13538 int df = s - d->unicode; // ### pointer subtraction, cast down to int
13539 if ( df >= 0 && (uint)df < d->maxl ) {
13540// Part of me - take a copy.
13541QChar *tmp = QT_ALLOC_QCHAR_VEC( len );
13542memcpy(tmp,s,len*sizeof(QChar));
13543insert(index,tmp,len);
13544QT_DELETE_QCHAR_VEC( tmp );
13545return *this;
13546 }
13547
13548 if ( index >= olen ) {// insert after end of string
13549setLength( len+index );
13550int n = index-olen;
13551QChar* uc = d->unicode+olen;
13552while (n--)
13553 *uc++ = ' ';
13554memcpy( d->unicode+index, s, sizeof(QChar)*len );
13555 } else {// normal insert
13556setLength( nlen );
13557memmove( d->unicode+index+len, unicode()+index,
13558 sizeof(QChar)*(olen-index) );
13559memcpy( d->unicode+index, s, sizeof(QChar)*len );
13560 }
13561 return *this;
13562}
13563
13564/*!
13565 Insert \a c into the string at (before) position \a index and returns
13566 a reference to the string.
13567
13568 If \a index is beyond the end of the string, the string is extended with
13569 spaces (ASCII 32) to length \a index and \a c is then appended.
13570
13571 Example:
13572 \code
13573 QString s = "Ys";
13574 s.insert( 1, 'e' );// s == "Yes"
13575 s.insert( 3, '!');// s == "Yes!"
13576 \endcode
13577
13578 \sa remove(), replace()
13579*/
13580
13581QString &QString::insert( uint index, QChar c )// insert char
13582{
13583 QString s( c );
13584 return insert( index, s );
13585}
13586
13587/*!
13588 \overload QString& QString::insert( uint index, char c )
13589*/
13590
13591/*!
13592 \fn QString &QString::prepend( const QString &s )
13593
13594 Prepend \a s to the string. Equivalent to insert(0,s).
13595
13596 \sa insert()
13597*/
13598
13599/*!
13600 \fn QString& QString::prepend( char ch )
13601 Prepends \a ch to the string and returns a reference to the result.
13602
13603 \sa insert()
13604 */
13605
13606/*!
13607 \fn QString& QString::prepend( QChar ch )
13608 Prepends \a ch to the string and returns a reference to the result.
13609
13610 \sa insert()
13611 */
13612
13613
13614/*!
13615 Removes \a len characters starting at position \a index from the
13616 string and returns a reference to the string.
13617
13618 If \a index is too big, nothing happens. If \a index is valid, but
13619 \a len is too large, the rest of the string is removed.
13620
13621 \code
13622 QString s = "Montreal";
13623 s.remove( 1, 4 );
13624 // s == "Meal"
13625 \endcode
13626
13627 \sa insert(), replace()
13628*/
13629
13630QString &QString::remove( uint index, uint len )
13631{
13632 uint olen = length();
13633 if ( index + len >= olen ) {// range problems
13634if ( index < olen ) {// index ok
13635 setLength( index );
13636}
13637 } else if ( len != 0 ) {
13638real_detach();
13639memmove( d->unicode+index, d->unicode+index+len,
13640 sizeof(QChar)*(olen-index-len) );
13641setLength( olen-len );
13642 }
13643 return *this;
13644}
13645
13646/*!
13647 Replaces \a len characters starting at position \a index from the
13648 string with \a s, and returns a reference to the string.
13649
13650 If \a index is too big, nothing is deleted and \a s is inserted at the
13651 end of the string. If \a index is valid, but \a len is too large, \e
13652 str replaces the rest of the string.
13653
13654 \code
13655 QString s = "Say yes!";
13656 s.replace( 4, 3, "NO" );// s == "Say NO!"
13657 \endcode
13658
13659 \sa insert(), remove()
13660*/
13661
13662QString &QString::replace( uint index, uint len, const QString &s )
13663{
13664 return replace( index, len, s.unicode(), s.length() );
13665}
13666
13667
13668/*!
13669 Replaces \a len characters starting at position \a index by
13670 \a slen units ot QChar data from \a s, and returns a reference to the string.
13671
13672 \sa insert(), remove()
13673*/
13674
13675QString &QString::replace( uint index, uint len, const QChar* s, uint slen )
13676{
13677 if ( len == slen && index + len <= length() ) {
13678// Optimized common case: replace without size change
13679real_detach();
13680memcpy( d->unicode+index, s, len*sizeof(QChar) );
13681 } else {
13682int df = s - d->unicode; // ### pointer subtraction, cast down to int
13683if ( df >= 0 && (uint)df < d->maxl ) {
13684 // Part of me - take a copy.
13685 QChar *tmp = QT_ALLOC_QCHAR_VEC( slen );
13686 memcpy(tmp,s,slen*sizeof(QChar));
13687 replace(index,len,tmp,slen);
13688 QT_DELETE_QCHAR_VEC( tmp );
13689 return *this;
13690}
13691
13692remove( index, len );
13693insert( index, s, slen );
13694 }
13695 return *this;
13696}
13697
13698
13699
13700/*!
13701 Finds the first occurrence of the regular expression \a rx, starting at
13702 position \a index. If \a index is -1, the search starts at the last
13703 character; if -2, at the next to last character; etc.
13704
13705 Returns the position of the next match, or -1 if \a rx was not found.
13706
13707 \sa findRev() replace() contains()
13708*/
13709
13710int QString::find( const QRegExp &rx, int index ) const
13711{
13712 if ( index < 0 )
13713index += length();
13714 return rx.match( data(), index );
13715}
13716
13717/*!
13718 Finds the first occurrence of the regular expression \a rx, starting at
13719 position \a index and searching backwards. If \a index is -1, the
13720 search starts at the last character; if -2, at the next to last
13721 character; etc.
13722
13723 Returns the position of the next match (backwards), or -1 if \a rx was not
13724 found.
13725
13726 \sa find()
13727*/
13728
13729int QString::findRev( const QRegExp &rx, int index ) const
13730{
13731 if ( index < 0 )// neg index ==> start from end
13732index += length();
13733 if ( (uint)index > length() )// bad index
13734return -1;
13735 while( index >= 0 ) {
13736if ( rx.match( data(), index ) == index )
13737 return index;
13738index--;
13739 }
13740 return -1;
13741}
13742
13743/*!
13744 Counts the number of overlapping occurrences of \a rx in the string.
13745
13746 Example:
13747 \code
13748 QString s = "banana and panama";
13749 QRegExp r = QRegExp("a[nm]a", TRUE, FALSE);
13750 s.contains( r );// 4 matches
13751 \endcode
13752
13753 \sa find() findRev()
13754*/
13755
13756int QString::contains( const QRegExp &rx ) const
13757{
13758 if ( isEmpty() )
13759return rx.match( data() ) < 0 ? 0 : 1;
13760 int count = 0;
13761 int index = -1;
13762 int len = length();
13763 while ( index < len-1 ) {// count overlapping matches
13764index = rx.match( data(), index+1 );
13765if ( index < 0 )
13766 break;
13767count++;
13768 }
13769 return count;
13770}
13771
13772
13773/*!
13774 Replaces every occurrence of \a rx in the string with \a str.
13775 Returns a reference to the string.
13776
13777 Examples:
13778 \code
13779 QString s = "banana";
13780 s.replace( QRegExp("a.*a"), "" );// becomes "b"
13781
13782 QString s = "banana";
13783 s.replace( QRegExp("^[bn]a"), " " );// becomes " nana"
13784
13785 QString s = "banana";
13786 s.replace( QRegExp("^[bn]a"), "" );// NOTE! becomes ""
13787 \endcode
13788
13789 \sa find() findRev()
13790*/
13791
13792QString &QString::replace( const QRegExp &rx, const QString &str )
13793{
13794 if ( isEmpty() )
13795return *this;
13796 int index = 0;
13797 int slen = str.length();
13798 int len;
13799 while ( index < (int)length() ) {
13800index = rx.match( data(), index, &len, FALSE );
13801if ( index >= 0 ) {
13802 replace( index, len, str );
13803 index += slen;
13804 if ( !len )
13805break;// Avoid infinite loop on 0-length matches, e.g. [a-z]*
13806}
13807else
13808 break;
13809 }
13810 return *this;
13811}
13812
13813static bool
13814ok_in_base( QChar c, int base )
13815{
13816 if ( base <= 10 )
13817return c.isDigit() && c.digitValue() < base;
13818 else
13819return c.isDigit() || (c >= 'a' && c < char('a'+base-10))
13820 || (c >= 'A' && c < char('A'+base-10));
13821}
13822
13823/*!
13824 Returns the string converted to a <code>long</code> value.
13825
13826 If \a ok is non-null, \a *ok is set to TRUE if there are no
13827 conceivable errors, and FALSE if the string is not a number at all, or if
13828 it has trailing garbage.
13829*/
13830
13831long QString::toLong( bool *ok, int base ) const
13832{
13833 const QChar *p = unicode();
13834 long val=0;
13835 int l = length();
13836 const long max_mult = INT_MAX / base;
13837 bool is_ok = FALSE;
13838 int neg = 0;
13839 if ( !p )
13840goto bye;
13841 while ( l && p->isSpace() )// skip leading space
13842l--,p++;
13843 if ( l && *p == '-' ) {
13844l--;
13845p++;
13846neg = 1;
13847 } else if ( *p == '+' ) {
13848l--;
13849p++;
13850 }
13851
13852 // NOTE: toULong() code is similar
13853 if ( !l || !ok_in_base(*p,base) )
13854goto bye;
13855 while ( l && ok_in_base(*p,base) ) {
13856l--;
13857int dv;
13858if ( p->isDigit() ) {
13859 dv = p->digitValue();
13860} else {
13861 if ( *p >= 'a' && *p <= 'z' )
13862dv = *p - 'a' + 10;
13863 else
13864dv = *p - 'A' + 10;
13865}
13866if ( val > max_mult || (val == max_mult && dv > (INT_MAX%base)+neg) )
13867 goto bye;
13868val = base*val + dv;
13869p++;
13870 }
13871 if ( neg )
13872val = -val;
13873 while ( l && p->isSpace() )// skip trailing space
13874l--,p++;
13875 if ( !l )
13876is_ok = TRUE;
13877bye:
13878 if ( ok )
13879*ok = is_ok;
13880 return is_ok ? val : 0;
13881}
13882
13883/*!
13884 Returns the string converted to an <code>unsigned long</code>
13885 value.
13886
13887 If \a ok is non-null, \a *ok is set to TRUE if there are no
13888 conceivable errors, and FALSE if the string is not a number at all,
13889 or if it has trailing garbage.
13890*/
13891
13892ulong QString::toULong( bool *ok, int base ) const
13893{
13894 const QChar *p = unicode();
13895 ulong val=0;
13896 int l = length();
13897 const ulong max_mult = 429496729;// UINT_MAX/10, rounded down
13898 bool is_ok = FALSE;
13899 if ( !p )
13900goto bye;
13901 while ( l && p->isSpace() )// skip leading space
13902l--,p++;
13903 if ( *p == '+' )
13904l--,p++;
13905
13906 // NOTE: toLong() code is similar
13907 if ( !l || !ok_in_base(*p,base) )
13908goto bye;
13909 while ( l && ok_in_base(*p,base) ) {
13910l--;
13911uint dv;
13912if ( p->isDigit() ) {
13913 dv = p->digitValue();
13914} else {
13915 if ( *p >= 'a' && *p <= 'z' )
13916dv = *p - 'a' + 10;
13917 else
13918dv = *p - 'A' + 10;
13919}
13920if ( val > max_mult || (val == max_mult && dv > (UINT_MAX%base)) )
13921 goto bye;
13922val = base*val + dv;
13923p++;
13924 }
13925
13926 while ( l && p->isSpace() )// skip trailing space
13927l--,p++;
13928 if ( !l )
13929is_ok = TRUE;
13930bye:
13931 if ( ok )
13932*ok = is_ok;
13933 return is_ok ? val : 0;
13934}
13935
13936/*!
13937 Returns the string converted to a <code>short</code> value.
13938
13939 If \a ok is non-null, \a *ok is set to TRUE if there are no
13940 conceivable errors, and FALSE if the string is not a number at all, or if
13941 it has trailing garbage.
13942*/
13943
13944short QString::toShort( bool *ok, int base ) const
13945{
13946 long v = toLong( ok, base );
13947 if ( ok && *ok && (v < -32768 || v > 32767) ) {
13948*ok = FALSE;
13949v = 0;
13950 }
13951 return (short)v;
13952}
13953
13954/*!
13955 Returns the string converted to an <code>unsigned short</code> value.
13956
13957 If \a ok is non-null, \a *ok is set to TRUE if there are no
13958 conceivable errors, and FALSE if the string is not a number at all, or if
13959 it has trailing garbage.
13960*/
13961
13962ushort QString::toUShort( bool *ok, int base ) const
13963{
13964 ulong v = toULong( ok, base );
13965 if ( ok && *ok && (v > 65535) ) {
13966*ok = FALSE;
13967v = 0;
13968 }
13969 return (ushort)v;
13970}
13971
13972
13973/*!
13974 Returns the string converted to a <code>int</code> value.
13975
13976 \code
13977 QString str("FF");
13978 bool ok;
13979 int hex = str.toInt( &ok, 16 ); // will return 255, and ok set to TRUE
13980 int dec = str.toInt( &ok, 10 ); // will return 0, and ok set to FALSE
13981 \endcode
13982
13983 If \a ok is non-null, \a *ok is set to TRUE if there are no
13984 conceivable errors, and FALSE if the string is not a number at all,
13985 or if it has trailing garbage.
13986*/
13987
13988int QString::toInt( bool *ok, int base ) const
13989{
13990 return (int)toLong( ok, base );
13991}
13992
13993/*!
13994 Returns the string converted to an <code>unsigned int</code> value.
13995
13996 If \a ok is non-null, \a *ok is set to TRUE if there are no
13997 conceivable errors, and FALSE if the string is not a number at all,
13998 or if it has trailing garbage.
13999*/
14000
14001uint QString::toUInt( bool *ok, int base ) const
14002{
14003 return (uint)toULong( ok, base );
14004}
14005
14006/*!
14007 Returns the string converted to a <code>double</code> value.
14008
14009 If \a ok is non-null, \a *ok is set to TRUE if there are no conceivable
14010 errors, and FALSE if the string is not a number at all, or if it has
14011 trailing garbage.
14012*/
14013
14014double QString::toDouble( bool *ok ) const
14015{
14016 char *end;
14017
14018 QCString a = latin1();
14019 // Just latin1() is not sufficient, since U0131 would look like '1'.
14020 for (uint i=0; i<d->len; i++)
14021if ( d->unicode[i].row() )
14022 a[(int)i]='z';
14023
14024 double val = strtod( a.data() ? a.data() : "", &end );
14025 if ( ok )
14026*ok = ( a && *a && ( end == 0 || *end == '\0' ) );
14027 return val;
14028}
14029
14030/*!
14031 Returns the string converted to a <code>float</code> value.
14032
14033 If \a ok is non-null, \a *ok is set to TRUE if there are no
14034 conceivable errors, and FALSE if the string is not a number at all,
14035 or if it has trailing garbage.
14036*/
14037
14038float QString::toFloat( bool *ok ) const
14039{
14040 return (float)toDouble( ok );
14041}
14042
14043
14044/*!
14045 Sets the string to the printed value of \a n and returns a
14046 reference to the string.
14047
14048 The value is converted to \a base notation (default is decimal).
14049 The base must be a value from 2 to 36.
14050*/
14051
14052QString &QString::setNum( long n, int base )
14053{
14054#if defined(CHECK_RANGE)
14055 if ( base < 2 || base > 36 ) {
14056qWarning( "QString::setNum: Invalid base %d", base );
14057base = 10;
14058 }
14059#endif
14060 char charbuf[65*sizeof(QChar)];
14061 QChar *buf = (QChar*)charbuf;
14062 QChar *p = &buf[64];
14063 int len = 0;
14064 bool neg;
14065 if ( n < 0 ) {
14066neg = TRUE;
14067if ( n == INT_MIN ) {
14068 // Cannot always negate this special case
14069 QString s1, s2;
14070 s1.setNum(n/base);
14071 s2.setNum((-(n+base))%base);
14072 *this = s1 + s2;
14073 return *this;
14074}
14075n = -n;
14076 } else {
14077neg = FALSE;
14078 }
14079 do {
14080*--p = "0123456789abcdefghijklmnopqrstuvwxyz"[((int)(n%base))];
14081n /= base;
14082len++;
14083 } while ( n );
14084 if ( neg ) {
14085*--p = '-';
14086len++;
14087 }
14088 return setUnicode( p, len );
14089}
14090
14091/*!
14092 Sets the string to the printed unsigned value of \a n and
14093 returns a reference to the string.
14094
14095 The value is converted to \a base notation (default is decimal).
14096 The base must be a value from 2 to 36.
14097*/
14098
14099QString &QString::setNum( ulong n, int base )
14100{
14101#if defined(CHECK_RANGE)
14102 if ( base < 2 || base > 36 ) {
14103qWarning( "QString::setNum: Invalid base %d", base );
14104base = 10;
14105 }
14106#endif
14107 char charbuf[65*sizeof(QChar)];
14108 QChar *buf = (QChar*)charbuf;
14109 QChar *p = &buf[64];
14110 int len = 0;
14111 do {
14112*--p = "0123456789abcdefghijklmnopqrstuvwxyz"[((int)(n%base))];
14113n /= base;
14114len++;
14115 } while ( n );
14116 return setUnicode(p,len);
14117}
14118
14119/*!
14120 \fn QString &QString::setNum( int n, int base )
14121 Sets the string to the printed value of \a n and returns a reference
14122 to the string.
14123*/
14124
14125/*!
14126 \fn QString &QString::setNum( uint n, int base )
14127 Sets the string to the printed unsigned value of \a n and returns a
14128 reference to the string.
14129*/
14130
14131/*!
14132 \fn QString &QString::setNum( short n, int base )
14133 Sets the string to the printed value of \a n and returns a reference
14134 to the string.
14135*/
14136
14137/*!
14138 \fn QString &QString::setNum( ushort n, int base )
14139 Sets the string to the printed unsigned value of \a n and returns a
14140 reference to the string.
14141*/
14142
14143/*! Sets the string to the printed value of \a n, formatted in the \a f
14144 format with \a prec precision, and returns a reference to the
14145 string.
14146
14147 \a f can be 'f', 'F', 'e', 'E', 'g' or 'G', all of which have the
14148 same meaning as for sprintf().
14149*/
14150
14151QString &QString::setNum( double n, char f, int prec )
14152{
14153#if defined(CHECK_RANGE)
14154 if ( !(f=='f' || f=='F' || f=='e' || f=='E' || f=='g' || f=='G') ) {
14155qWarning( "QString::setNum: Invalid format char '%c'", f );
14156f = 'f';
14157 }
14158#endif
14159 char format[20];
14160 char buf[120];// enough for 99 precision?
14161 char *fs = format;// generate format string
14162 *fs++ = '%';// "%.<prec>l<f>"
14163 if ( prec >= 0 ) {
14164if ( prec > 99 )// buf big enough for precision?
14165 prec = 99;
14166*fs++ = '.';
14167if ( prec >= 10 ) {
14168 *fs++ = prec / 10 + '0';
14169 *fs++ = prec % 10 + '0';
14170} else {
14171 *fs++ = prec + '0';
14172}
14173 }
14174 *fs++ = 'l';
14175 *fs++ = f;
14176 *fs = '\0';
14177 ::sprintf( buf, format, n );
14178 return setLatin1(buf);
14179}
14180
14181/*!
14182 \overload QString &QString::setNum( float n, char f, int prec )
14183*/
14184
14185
14186/*!
14187 A convenience factory function that returns a string representation
14188 of the number \a n.
14189
14190 \sa setNum()
14191 */
14192QString QString::number( long n, int base )
14193{
14194 QString s;
14195 s.setNum( n, base );
14196 return s;
14197}
14198
14199/*!
14200 A convenience factory function that returns a string representation
14201 of the number \a n.
14202
14203 \sa setNum()
14204 */
14205QString QString::number( ulong n, int base )
14206{
14207 QString s;
14208 s.setNum( n, base );
14209 return s;
14210}
14211
14212/*!
14213 A convenience factory function that returns a string representation
14214 of the number \a n.
14215
14216 \sa setNum()
14217 */
14218QString QString::number( int n, int base )
14219{
14220 QString s;
14221 s.setNum( n, base );
14222 return s;
14223}
14224
14225/*!
14226 A convenience factory function that returns a string representation
14227 of the number \a n.
14228
14229 \sa setNum()
14230 */
14231QString QString::number( uint n, int base )
14232{
14233 QString s;
14234 s.setNum( n, base );
14235 return s;
14236}
14237
14238/*!
14239 This static function returns the printed value of \a n, formatted in the
14240 \a f format with \a prec precision.
14241
14242 \a f can be 'f', 'F', 'e', 'E', 'g' or 'G', all of which have the
14243 same meaning as for sprintf().
14244
14245 \sa setNum()
14246 */
14247QString QString::number( double n, char f, int prec )
14248{
14249 QString s;
14250 s.setNum( n, f, prec );
14251 return s;
14252}
14253
14254
14255/*! \obsolete
14256
14257 Sets the character at position \a index to \a c and expands the
14258 string if necessary, filling with spaces.
14259
14260 This method is redundant in Qt 2.x, because operator[] will expand
14261 the string as necessary.
14262*/
14263
14264void QString::setExpand( uint index, QChar c )
14265{
14266 int spaces = index - d->len;
14267 at(index) = c;
14268 while (spaces-->0)
14269d->unicode[--index]=' ';
14270}
14271
14272
14273/*!
14274 \fn const char* QString::data() const
14275
14276 \obsolete
14277
14278 Returns a pointer to a 0-terminated classic C string.
14279
14280 In Qt 1.x, this returned a char* allowing direct manipulation of the
14281 string as a sequence of bytes. In Qt 2.x where QString is a Unicode
14282 string, char* conversion constructs a temporary string, and hence
14283 direct character operations are meaningless.
14284*/
14285
14286/*!
14287 \fn bool QString::operator!() const
14288 Returns TRUE if it is a null string, otherwise FALSE. Thus
14289 you can write:
14290
14291\code
14292 QString name = getName();
14293 if ( !name )
14294 name = "Rodney";
14295\endcode
14296
14297 Note that if you say:
14298
14299\code
14300 QString name = getName();
14301 if ( name )
14302 doSomethingWith(name);
14303\endcode
14304
14305 Then this will call <tt>operator const char*()</tt>, which will do what
14306 you want, but rather inefficiently - you may wish to define the macro
14307 QT_NO_ASCII_CAST when writing code which you wish to strictly remain
14308 Unicode-clean.
14309
14310 When you want the above semantics, use <tt>!isNull()</tt>
14311 or even <tt>!!</tt>:
14312
14313\code
14314 QString name = getName();
14315 if ( !!name )
14316 doSomethingWith(name);
14317\endcode
14318*/
14319
14320
14321/*!
14322 \fn QString& QString::append( const QString& str )
14323 Appends \a str to the string and returns a reference to the result.
14324 Equivalent to operator+=().
14325 */
14326
14327/*!
14328 \fn QString& QString::append( char ch )
14329 Appends \a ch to the string and returns a reference to the result.
14330 Equivalent to operator+=().
14331 */
14332
14333/*!
14334 \fn QString& QString::append( QChar ch )
14335 Appends \a ch to the string and returns a reference to the result.
14336 Equivalent to operator+=().
14337 */
14338
14339/*!
14340 Appends \a str to the string and returns a reference to the string.
14341*/
14342QString& QString::operator+=( const QString &str )
14343{
14344 uint len1 = length();
14345 uint len2 = str.length();
14346 if ( len2 ) {
14347setLength(len1+len2);
14348memcpy( d->unicode+len1, str.unicode(), sizeof(QChar)*len2 );
14349 } else if ( isNull() && !str.isNull() ) {// ## just for 1.x compat:
14350*this = fromLatin1("");
14351 }
14352 return *this;
14353}
14354
14355/*!
14356 Appends \a c to the string and returns a reference to the string.
14357*/
14358
14359QString &QString::operator+=( QChar c )
14360{
14361 setLength(length()+1);
14362 d->unicode[length()-1] = c;
14363 return *this;
14364}
14365
14366/*!
14367 Appends \a c to the string and returns a reference to the string.
14368*/
14369
14370QString &QString::operator+=( char c )
14371{
14372 setLength(length()+1);
14373 d->unicode[length()-1] = c;
14374 return *this;
14375}
14376
14377
14378
14379/*! \fn char QChar::latin1() const
14380
14381 Returns a latin-1 copy of this character, if this character is in
14382 the latin-1 character set. If not, this function returns 0.
14383*/
14384
14385
14386/*!
14387 Returns a Latin-1 representation of the string. Note that the returned
14388 value is undefined if the string contains non-Latin-1 characters. If you
14389 want to convert strings into formats other than Unicode, see the
14390 QTextCodec classes.
14391
14392 This function is mainly useful for boot-strapping legacy code to
14393 use Unicode.
14394
14395 The result remains valid so long as one unmodified
14396 copy of the source string exists.
14397
14398 \sa utf8(), local8Bit()
14399*/
14400const char* QString::latin1() const
14401{
14402 if ( d->ascii ) {
14403if ( d->dirtyascii )
14404 delete [] d->ascii;
14405else
14406 return d->ascii;
14407 }
14408 Q2HELPER(stat_get_ascii++)
14409 Q2HELPER(stat_get_ascii_size+=d->len)
14410 static QTextCodec* codec = QTextCodec::codecForMib(106);
14411 if (codec) // we use utf8 coding also for latin1 if possible
14412 {
14413 QCString utf8str(codec->fromUnicode(*this));
14414 d->ascii = new char[utf8str.length()+1];
14415 if (utf8str.isEmpty())
14416 {
14417 d->ascii[0]='\0'; // make empty string
14418 }
14419 else // copy string
14420 {
14421 qstrcpy(d->ascii,utf8str.data());
14422 }
14423 }
14424 else // fall back to latin1
14425 {
14426 d->ascii = unicodeToAscii( d->unicode, d->len );
14427 }
14428 QCString utf8str(utf8());
14429 d->dirtyascii = 0;
14430 return d->ascii;
14431}
14432
14433/*! \obsolete
14434
14435 This functions simply calls latin1() and returns the result.
14436*/
14437const char* QString::ascii() const
14438{
14439 return latin1();
14440}
14441
14442#ifndef QT_NO_TEXTCODEC
14443/*!
14444 Returns the string encoded in UTF8 format.
14445
14446 See QTextCodec for more diverse coding/decoding of Unicode strings.
14447
14448 \sa QString::fromUtf8(), local8Bit(), latin1()
14449*/
14450QCString QString::utf8() const
14451{
14452 static QTextCodec* codec = QTextCodec::codecForMib(106);
14453 return codec
14454 ? codec->fromUnicode(*this)
14455 : QCString(latin1());
14456}
14457
14458/*!
14459 Returns the unicode string decoded from the
14460 first \a len bytes of \a utf8. If \a len is -1 (the default), the
14461 length of \a utf8 is used. If trailing partial characters are in
14462 \a utf8, they are ignored.
14463
14464 See QTextCodec for more diverse coding/decoding of Unicode strings.
14465*/
14466QString QString::fromUtf8(const char* utf8, int len)
14467{
14468 static QTextCodec* codec = QTextCodec::codecForMib(106);
14469 if ( len < 0 ) len = qstrlen(utf8);
14470 return codec
14471 ? codec->toUnicode(utf8, len)
14472 : QString::fromLatin1(utf8, len);
14473}
14474#endif // QT_NO_TEXTCODEC
14475/*!
14476 Creates a QString from Latin1 text. This is the same as the
14477 QString(const char*) constructor, but you can make that constructor
14478 invisible if you compile with the define QT_NO_CAST_ASCII, in which
14479 case you can explicitly create a QString from Latin-1 text using
14480 this function.
14481*/
14482QString QString::fromLatin1(const char* chars, int len)
14483{
14484 uint l;
14485 QChar *uc;
14486 if ( len < 0 ) {
14487uc = internalAsciiToUnicode(chars,&l);
14488 } else {
14489uc = internalAsciiToUnicode(chars,&l,len);
14490 }
14491 return QString(new QStringData(uc,l,l), TRUE);
14492}
14493
14494/*!
14495 \fn const QChar* QString::unicode() const
14496
14497 Returns the Unicode representation of the string. The result
14498 remains valid until the string is modified.
14499*/
14500
14501/*!
14502 Returns the string encoded in a locale-specific format. On X11, this
14503 is the QTextCodec::codecForLocale(). On Windows, it is a system-defined
14504 encoding.
14505
14506 See QTextCodec for more diverse coding/decoding of Unicode strings.
14507
14508 \sa QString::fromLocal8Bit(), latin1(), utf8()
14509*/
14510
14511
14512QCString QString::local8Bit() const
14513{
14514#ifdef QT_NO_TEXTCODEC
14515 return latin1();
14516#else
14517#ifdef _WS_X11_
14518 static QTextCodec* codec = QTextCodec::codecForLocale();
14519 return codec
14520 ? codec->fromUnicode(*this)
14521 : QCString(latin1());
14522#endif
14523#ifdef _WS_MAC_
14524 static QTextCodec* codec = QTextCodec::codecForLocale();
14525 return codec
14526 ? codec->fromUnicode(*this)
14527 : QCString(latin1());
14528#endif
14529#ifdef _WS_WIN_
14530 return qt_winQString2MB( *this );
14531#endif
14532#ifdef _WS_QWS_
14533 return utf8(); // ##### if there is ANY 8 bit format supported?
14534#endif
14535#endif
14536}
14537
14538/*!
14539 Returns the unicode string decoded from the
14540 first \a len bytes of \a local8Bit. If \a len is -1 (the default), the
14541 length of \a local8Bit is used. If trailing partial characters are in
14542 \a local8Bit, they are ignored.
14543
14544 \a local8Bit is assumed to be encoded in a locale-specific format.
14545
14546 See QTextCodec for more diverse coding/decoding of Unicode strings.
14547*/
14548QString QString::fromLocal8Bit(const char* local8Bit, int len)
14549{
14550#ifdef QT_NO_TEXTCODEC
14551 return fromLatin1( local8Bit, len );
14552#else
14553
14554 if ( !local8Bit )
14555return QString::null;
14556#ifdef _WS_X11_
14557 static QTextCodec* codec = QTextCodec::codecForLocale();
14558 if ( len < 0 ) len = qstrlen(local8Bit);
14559 return codec
14560 ? codec->toUnicode(local8Bit, len)
14561 : QString::fromLatin1(local8Bit,len);
14562#endif
14563#ifdef _WS_MAC_
14564 static QTextCodec* codec = QTextCodec::codecForLocale();
14565 if ( len < 0 ) len = qstrlen(local8Bit);
14566 return codec
14567 ? codec->toUnicode(local8Bit, len)
14568 : QString::fromLatin1(local8Bit,len);
14569#endif
14570// Should this be OS_WIN32?
14571#ifdef _WS_WIN_
14572 if ( len >= 0 ) {
14573QCString s(local8Bit,len+1);
14574return qt_winMB2QString(s);
14575 }
14576 return qt_winMB2QString( local8Bit );
14577#endif
14578#ifdef _WS_QWS_
14579 return fromUtf8(local8Bit,len);
14580#endif
14581#endif // QT_NO_TEXTCODEC
14582}
14583
14584/*!
14585 \fn QString::operator const char *() const
14586
14587 Returns latin1(). Be sure to see the warnings documented there.
14588 Note that for new code which you wish to be strictly Unicode-clean,
14589 you can define the macro QT_NO_ASCII_CAST when compiling your code
14590 to hide this function so that automatic casts are not done. This
14591 has the added advantage that you catch the programming error
14592 described under operator!().
14593*/
14594
14595/*!
14596 \fn QChar QString::at( uint ) const
14597
14598 Returns the character at \a i, or 0 if \a i is beyond the length
14599 of the string.
14600
14601 Note: If this QString is not const or const&, the non-const at()
14602 will be used instead, which will expand the string if \a i is beyond
14603 the length of the string.
14604*/
14605
14606/*!
14607 \fn QChar QString::constref(uint i) const
14608 Equivalent to at(i), this returns the QChar at \a i by value.
14609
14610 \sa ref()
14611*/
14612
14613/*!
14614 \fn QChar& QString::ref(uint i)
14615 Returns the QChar at \a i by reference.
14616
14617 \sa constref()
14618*/
14619
14620/*!
14621 \fn QChar QString::operator[](int) const
14622
14623 Returns the character at \a i, or QChar::null if \a i is beyond the
14624 length of the string.
14625
14626 Note: If this QString is not const or const&, the non-const operator[]
14627 will be used instead, which will expand the string if \a i is beyond
14628 the length of the string.
14629*/
14630
14631/*!
14632 \fn QCharRef QString::operator[](int)
14633
14634 Returns an object that references the character at \a i.
14635 This reference
14636 can then be assigned to, or otherwise used immediately, but
14637 becomes invalid once further modifications are made to the string.
14638 The QCharRef internal class can be used much like a constant QChar, but
14639 if you assign to it, you change the original string (which enlarges
14640 and detaches itself). You will get compilation errors if you try to
14641 use the result as anything but a QChar.
14642*/
14643
14644/*!
14645 \fn QCharRef QString::at( uint i )
14646 Returns a reference to the character at \a i, expanding
14647 the string with QChar::null if necessary. The resulting reference
14648 can then be assigned to, or otherwise used immediately, but
14649 becomes invalid once further modifications are made to the string.
14650*/
14651
14652/*!
14653 Internal chunk of code to handle the
14654 uncommon cases of at() above.
14655*/
14656void QString::subat( uint i )
14657{
14658 uint olen = d->len;
14659 if ( i >= olen ) {
14660setLength( i+1 );// i is index; i+1 is needed length
14661for ( uint j=olen; j<=i; j++ )
14662 d->unicode[j] = QChar::null;
14663 } else {
14664// Just be sure to detach
14665real_detach();
14666 }
14667}
14668
14669
14670/*!
14671 Resizes the string to \a len unicode characters and copies \a unicode
14672 into the string. If \a unicode is null, nothing is copied, but the
14673 string is resized to \a len anyway. If \a len is zero, the string
14674 becomes a \link isNull() null\endlink string.
14675
14676 \sa setLatin1(), isNull()
14677*/
14678
14679QString& QString::setUnicode( const QChar *unicode, uint len )
14680{
14681 if ( len == 0 ) {// set to null string
14682if ( d != shared_null ) {// beware of nullstring being set to nullstring
14683 deref();
14684 d = shared_null ? shared_null : makeSharedNull();
14685 d->ref();
14686}
14687 } else if ( d->count != 1 || len > d->maxl ||
14688 ( len*4 < d->maxl && d->maxl > 4 ) ) {// detach, grown or shrink
14689Q2HELPER(stat_copy_on_write++)
14690Q2HELPER(stat_copy_on_write_size+=d->len)
14691uint newMax = 4;
14692while ( newMax < len )
14693 newMax *= 2;
14694QChar* nd = QT_ALLOC_QCHAR_VEC( newMax );
14695if ( unicode )
14696 memcpy( nd, unicode, sizeof(QChar)*len );
14697deref();
14698d = new QStringData( nd, len, newMax );
14699 } else {
14700d->len = len;
14701d->dirtyascii = 1;
14702if ( unicode )
14703 memcpy( d->unicode, unicode, sizeof(QChar)*len );
14704 }
14705 return *this;
14706}
14707
14708/*!
14709 Resizes the string to \a len unicode characters and copies
14710 \a unicode_as_ushorts into the string (on some X11 client
14711 platforms this will involve a byte-swapping pass).
14712
14713 If \a unicode is null, nothing is copied, but the
14714 string is resized to \a len anyway. If \a len is zero, the string
14715 becomes a \link isNull() null\endlink string.
14716
14717 \sa setLatin1(), isNull()
14718*/
14719QString& QString::setUnicodeCodes( const ushort* unicode_as_ushorts, uint len )
14720{
14721 setUnicode((const QChar*)unicode_as_ushorts, len);
14722 QChar t(0x1234);
14723 if ( unicode_as_ushorts && *((ushort*)&t) == 0x3412 ) {
14724// Need to byteswap
14725char* b = (char*)d->unicode;
14726while ( len-- ) {
14727 char c = b[0];
14728 b[0] = b[1];
14729 b[1] = c;
14730 b += sizeof(QChar);
14731}
14732 }
14733 return *this;
14734}
14735
14736
14737/*!
14738 Sets this string to \a str, interpreted as a classic Latin 1 C string.
14739 If the \a len argument is negative (default), it is set to strlen(str).
14740
14741 If \a str is 0 a null string is created. If \a str is "" an empty
14742 string is created.
14743
14744 \sa isNull(), isEmpty()
14745*/
14746
14747QString &QString::setLatin1( const char *str, int len )
14748{
14749 if ( str == 0 )
14750return setUnicode(0,0);
14751 if ( len < 0 )
14752len = qstrlen(str);
14753 if ( len == 0 ) {// won't make a null string
14754deref();
14755uint l;
14756QChar *uc = internalAsciiToUnicode(str,&l);
14757d = new QStringData(uc,l,l);
14758 } else {
14759setUnicode( 0, len );// resize but not copy
14760QChar *p = d->unicode;
14761while ( len-- )
14762 *p++ = *str++;
14763 }
14764 return *this;
14765}
14766
14767
14768/*!
14769 \fn int QString::compare (const QString & s1, const QString & s2)
14770
14771 Compare \a s1 to \a s2 returning an integer less than, equal to, or
14772 greater than zero if s1 is, respectively, lexically less than, equal to,
14773 or greater than s2.
14774*/
14775
14776/*!
14777 Compares this string to \a s, returning an integer less than, equal to, or
14778 greater than zero if it is, respectively, lexically less than, equal to,
14779 or greater than \a s.
14780*/
14781int QString::compare( const QString& s ) const
14782{
14783 return ucstrcmp(*this,s);
14784}
14785
14786bool operator==( const QString &s1, const QString &s2 )
14787{
14788 return (s1.length() == s2.length()) && s1.isNull() == s2.isNull() &&
14789 (memcmp((char*)s1.unicode(),(char*)s2.unicode(),
14790 s1.length()*sizeof(QChar)) ==0);
14791}
14792
14793bool operator!=( const QString &s1, const QString &s2 )
14794{ return !(s1==s2); }
14795
14796bool operator<( const QString &s1, const QString &s2 )
14797{ return ucstrcmp(s1,s2) < 0; }
14798
14799bool operator<=( const QString &s1, const QString &s2 )
14800{ return ucstrcmp(s1,s2) <= 0; }
14801
14802bool operator>( const QString &s1, const QString &s2 )
14803{ return ucstrcmp(s1,s2) > 0; }
14804
14805bool operator>=( const QString &s1, const QString &s2 )
14806{ return ucstrcmp(s1,s2) >= 0; }
14807
14808
14809bool operator==( const QString &s1, const char *s2 )
14810{ return s1==QString(s2); }
14811
14812bool operator==( const char *s1, const QString &s2 )
14813{ return QString(s1)==s2; }
14814
14815bool operator!=( const QString &s1, const char *s2 )
14816{ return !(s1==s2); }
14817
14818bool operator!=( const char *s1, const QString &s2 )
14819{ return !(s1==s2); }
14820
14821bool operator<( const QString &s1, const char *s2 )
14822{ return ucstrcmp(s1,s2) < 0; }
14823
14824bool operator<( const char *s1, const QString &s2 )
14825{ return ucstrcmp(s1,s2) < 0; }
14826
14827bool operator<=( const QString &s1, const char *s2 )
14828{ return ucstrcmp(s1,s2) <= 0; }
14829
14830bool operator<=( const char *s1, const QString &s2 )
14831{ return ucstrcmp(s1,s2) <= 0; }
14832
14833bool operator>( const QString &s1, const char *s2 )
14834{ return ucstrcmp(s1,s2) > 0; }
14835
14836bool operator>( const char *s1, const QString &s2 )
14837{ return ucstrcmp(s1,s2) > 0; }
14838
14839bool operator>=( const QString &s1, const char *s2 )
14840{ return ucstrcmp(s1,s2) >= 0; }
14841
14842bool operator>=( const char *s1, const QString &s2 )
14843{ return ucstrcmp(s1,s2) >= 0; }
14844
14845
14846/*****************************************************************************
14847 Documentation for QString related functions
14848 *****************************************************************************/
14849
14850/*!
14851 \fn bool operator==( const QString &s1, const QString &s2 )
14852 \relates QString
14853 Returns TRUE if the two strings are equal, or FALSE if they are different.
14854 A null string is different from an empty, non-null string.
14855
14856 Equivalent to <code>qstrcmp(s1,s2) == 0</code>.
14857*/
14858
14859/*!
14860 \fn bool operator==( const QString &s1, const char *s2 )
14861 \relates QString
14862 Returns TRUE if the two strings are equal, or FALSE if they are different.
14863
14864 Equivalent to <code>qstrcmp(s1,s2) == 0</code>.
14865*/
14866
14867/*!
14868 \fn bool operator==( const char *s1, const QString &s2 )
14869 \relates QString
14870 Returns TRUE if the two strings are equal, or FALSE if they are different.
14871
14872 Equivalent to <code>qstrcmp(s1,s2) == 0</code>.
14873*/
14874
14875/*!
14876 \fn bool operator!=( const QString &s1, const QString &s2 )
14877 \relates QString
14878 Returns TRUE if the two strings are different, or FALSE if they are equal.
14879
14880 Equivalent to <code>qstrcmp(s1,s2) != 0</code>.
14881*/
14882
14883/*!
14884 \fn bool operator!=( const QString &s1, const char *s2 )
14885 \relates QString
14886 Returns TRUE if the two strings are different, or FALSE if they are equal.
14887
14888 Equivalent to <code>qstrcmp(s1,s2) != 0</code>.
14889*/
14890
14891/*!
14892 \fn bool operator!=( const char *s1, const QString &s2 )
14893 \relates QString
14894 Returns TRUE if the two strings are different, or FALSE if they are equal.
14895
14896 Equivalent to <code>qstrcmp(s1,s2) != 0</code>.
14897*/
14898
14899/*!
14900 \fn bool operator<( const QString &s1, const char *s2 )
14901 \relates QString
14902 Returns TRUE if \a s1 is alphabetically less than \a s2, otherwise FALSE.
14903
14904 Equivalent to <code>qstrcmp(s1,s2) \< 0</code>.
14905*/
14906
14907/*!
14908 \fn bool operator<( const char *s1, const QString &s2 )
14909 \relates QString
14910 Returns TRUE if \a s1 is alphabetically less than \a s2, otherwise FALSE.
14911
14912 Equivalent to <code>qstrcmp(s1,s2) \< 0</code>.
14913*/
14914
14915/*!
14916 \fn bool operator<=( const QString &s1, const char *s2 )
14917 \relates QString
14918 Returns TRUE if \a s1 is alphabetically less than or equal to \a s2,
14919 otherwise FALSE.
14920
14921 Equivalent to <code>qstrcmp(s1,s2) \<= 0</code>.
14922*/
14923
14924/*!
14925 \fn bool operator<=( const char *s1, const QString &s2 )
14926 \relates QString
14927 Returns TRUE if \a s1 is alphabetically less than or equal to \a s2,
14928 otherwise FALSE.
14929
14930 Equivalent to <code>qstrcmp(s1,s2) \<= 0</code>.
14931*/
14932
14933/*!
14934 \fn bool operator>( const QString &s1, const char *s2 )
14935 \relates QString
14936 Returns TRUE if \a s1 is alphabetically greater than \a s2, otherwise FALSE.
14937
14938 Equivalent to <code>qstrcmp(s1,s2) \> 0</code>.
14939*/
14940
14941/*!
14942 \fn bool operator>( const char *s1, const QString &s2 )
14943 \relates QString
14944 Returns TRUE if \a s1 is alphabetically greater than \a s2, otherwise FALSE.
14945
14946 Equivalent to <code>qstrcmp(s1,s2) \> 0</code>.
14947*/
14948
14949/*!
14950 \fn bool operator>=( const QString &s1, const char *s2 )
14951 \relates QString
14952 Returns TRUE if \a s1 is alphabetically greater than or equal to \a s2,
14953 otherwise FALSE.
14954
14955 Equivalent to <code>qstrcmp(s1,s2) \>= 0</code>.
14956*/
14957
14958/*!
14959 \fn bool operator>=( const char *s1, const QString &s2 )
14960 \relates QString
14961 Returns TRUE if \a s1 is alphabetically greater than or equal to \a s2,
14962 otherwise FALSE.
14963
14964 Equivalent to <code>qstrcmp(s1,s2) \>= 0</code>.
14965*/
14966
14967/*!
14968 \fn QString operator+( const QString &s1, const QString &s2 )
14969 \relates QString
14970 Returns the concatenated string of s1 and s2.
14971*/
14972
14973/*!
14974 \fn QString operator+( const QString &s1, const char *s2 )
14975 \relates QString
14976 Returns the concatenated string of s1 and s2.
14977*/
14978
14979/*!
14980 \fn QString operator+( const char *s1, const QString &s2 )
14981 \relates QString
14982 Returns the concatenated string of s1 and s2.
14983*/
14984
14985/*!
14986 \fn QString operator+( const QString &s, char c )
14987 \relates QString
14988 Returns the concatenated string of s and c.
14989*/
14990
14991/*!
14992 \fn QString operator+( char c, const QString &s )
14993 \relates QString
14994 Returns the concatenated string of c and s.
14995*/
14996
14997
14998/*****************************************************************************
14999 QString stream functions
15000 *****************************************************************************/
15001#ifndef QT_NO_DATASTREAM
15002/*!
15003 \relates QString
15004 Writes a string to the stream.
15005
15006 \sa \link datastreamformat.html Format of the QDataStream operators \endlink
15007*/
15008
15009QDataStream &operator<<( QDataStream &s, const QString &str )
15010{
15011 if ( s.version() == 1 ) {
15012QCString l( str.latin1() );
15013s << l;
15014 }
15015 else {
15016const char* ub = (const char*)str.unicode();
15017if ( ub || s.version() < 3 ) {
15018 if ( QChar::networkOrdered() ==
15019 (s.byteOrder()==QDataStream::BigEndian) ) {
15020s.writeBytes( ub, sizeof(QChar)*str.length() );
15021 } else {
15022static const uint auto_size = 1024;
15023char t[auto_size];
15024char *b;
15025if ( str.length()*sizeof(QChar) > auto_size ) {
15026 b = new char[str.length()*sizeof(QChar)];
15027} else {
15028 b = t;
15029}
15030int l = str.length();
15031char *c=b;
15032while ( l-- ) {
15033 *c++ = ub[1];
15034 *c++ = ub[0];
15035 ub+=sizeof(QChar);
15036}
15037s.writeBytes( b, sizeof(QChar)*str.length() );
15038if ( str.length()*sizeof(QChar) > auto_size )
15039 delete [] b;
15040 }
15041} else {
15042 // write null marker
15043 s << (Q_UINT32)0xffffffff;
15044}
15045 }
15046 return s;
15047}
15048
15049/*!
15050 \relates QString
15051 Reads a string from the stream.
15052
15053 \sa \link datastreamformat.html Format of the QDataStream operators \endlink
15054*/
15055
15056QDataStream &operator>>( QDataStream &s, QString &str )
15057{
15058#ifdef QT_QSTRING_UCS_4
15059#if defined(_CC_GNU_)
15060#warning "operator>> not working properly"
15061#endif
15062#endif
15063 if ( s.version() == 1 ) {
15064QCString l;
15065s >> l;
15066str = QString( l );
15067 }
15068 else {
15069Q_UINT32 bytes;
15070s >> bytes;// read size of string
15071if ( bytes == 0xffffffff ) {// null string
15072 str = QString::null;
15073} else if ( bytes > 0 ) {// not empty
15074 str.setLength( bytes/2 );
15075 char* b = (char*)str.d->unicode;
15076 s.readRawBytes( b, bytes );
15077 if ( QChar::networkOrdered() !=
15078 (s.byteOrder()==QDataStream::BigEndian) ) {
15079bytes /= 2;
15080while ( bytes-- ) {
15081 char c = b[0];
15082 b[0] = b[1];
15083 b[1] = c;
15084 b += 2;
15085}
15086 }
15087} else {
15088 str = "";
15089}
15090 }
15091 return s;
15092}
15093#endif // QT_NO_DATASTREAM
15094
15095/*****************************************************************************
15096 QConstString member functions
15097 *****************************************************************************/
15098
15099/*!
15100 \class QConstString qstring.h
15101 \brief A QString which uses constant Unicode data.
15102
15103 In order to minimize copying, highly optimized applications can use
15104 QConstString to provide a QString-compatible object from existing
15105 Unicode data. It is then the user's responsibility to make sure
15106 that the Unicode data must exist for the entire lifetime of the
15107 QConstString object.
15108*/
15109
15110/*!
15111 Constructs a QConstString that uses the first \a length Unicode
15112 characters in the array \a unicode. Any attempt to modify
15113 copies of the string will cause it to create a copy of the
15114 data, thus it remains forever unmodified.
15115
15116 Note that \a unicode is \e not \e copied. The caller \e must be
15117 able to guarantee that \a unicode will not be deleted or
15118 modified. Since that is generally not the case with \c const strings
15119 (they are references), this constructor demands a non-const pointer
15120 even though it never modifies \a unicode.
15121*/
15122QConstString::QConstString( QChar* unicode, uint length ) :
15123 QString(new QStringData(unicode, length, length),TRUE)
15124{
15125}
15126
15127/*!
15128 Destroys the QConstString, creating a copy of the data if
15129 other strings are still using it.
15130*/
15131QConstString::~QConstString()
15132{
15133 if ( d->count > 1 ) {
15134QChar* cp = QT_ALLOC_QCHAR_VEC( d->len );
15135memcpy( cp, d->unicode, d->len*sizeof(QChar) );
15136d->unicode = cp;
15137 } else {
15138d->unicode = 0;
15139 }
15140
15141 // The original d->unicode is now unlinked.
15142}
15143
15144/*!
15145 \fn const QString& QConstString::string() const
15146
15147 Returns a constant string referencing the data passed during
15148 construction.
15149*/
15150
15151/*!
15152 Returns whether the strings starts with \a s, or not.
15153 */
15154bool QString::startsWith( const QString& s ) const
15155{
15156 for ( int i =0; i < (int) s.length(); i++ ) {
15157if ( i >= (int) length() || d->unicode[i] != s[i] )
15158 return FALSE;
15159 }
15160 return TRUE;
15161}
15162
15163
15164
15165#if defined(_OS_WIN32_)
15166
15167#include <windows.h>
15168
15169/*!
15170 Returns a static Windows TCHAR* from a QString, possibly adding NUL.
15171
15172 The lifetime of the return value is until the next call to this function.
15173*/
15174const void* qt_winTchar(const QString& str_in, bool addnul)
15175{
15176 // So that the return value lives long enough.
15177 static QString str;
15178 str = str_in;
15179
15180#ifdef UNICODE
15181 static uint buflen = 256;
15182 static TCHAR *buf = new TCHAR[buflen];
15183
15184 const QChar* uc = str.unicode();
15185
15186#define EXTEND if (str.length() > buflen) { delete buf; buf = new TCHAR[buflen=str.length()+1]; }
15187
15188#if defined(_WS_X11_) || defined(_OS_WIN32_BYTESWAP_)
15189 EXTEND
15190 for ( int i=str.length(); i--; )
15191buf[i] = uc[i].row() << 8 | uc[i].cell();
15192 if ( addnul )
15193buf[str.length()] = 0;
15194#else
15195 // Same endianness of TCHAR
15196 if ( addnul ) {
15197EXTEND
15198memcpy(buf,uc,sizeof(TCHAR)*str.length());
15199buf[str.length()] = 0;
15200 } else {
15201return uc;
15202 }
15203#endif
15204 return buf;
15205#undef EXTEND
15206
15207#else
15208 return str.latin1();
15209#endif
15210}
15211
15212/*!
15213 Makes a new null terminated Windows TCHAR* from a QString.
15214*/
15215void* qt_winTchar_new(const QString& str)
15216{
15217 TCHAR* result = new TCHAR[str.length()+1];
15218 memcpy(result, qt_winTchar(str,FALSE), sizeof(TCHAR)*str.length());
15219 result[str.length()] = 0;
15220 return result;
15221}
15222
15223/*!
15224 Makes a QString from a Windows TCHAR*.
15225*/
15226QString qt_winQString(void* tc)
15227{
15228#ifdef UNICODE
15229
15230 int len=0;
15231 while ( ((TCHAR*)tc)[len] )
15232len++;
15233#if defined(_WS_X11_) || defined(_OS_WIN32_BYTESWAP_)
15234 QString r;
15235 for ( int i=0; i<len; i++ )
15236r += QChar(((TCHAR*)tc)[i]&0xff,((TCHAR*)tc)[i]>>8);
15237 return r;
15238#else
15239 // Same endianness of TCHAR
15240 return QString((QChar*)tc,len);
15241#endif
15242#undef EXTEND
15243#else
15244 return (TCHAR*)tc;
15245#endif
15246}
15247
15248QCString qt_winQString2MB( const QString& s, int uclen )
15249{
15250 if ( uclen < 0 )
15251uclen = s.length();
15252 if ( uclen == 0 )
15253return QCString();
15254 BOOL used_def;
15255 int bufSize=4096;
15256 QCString mb(bufSize);
15257 int len;
15258 while ( !(len=WideCharToMultiByte(CP_ACP, 0, (const WCHAR*)s.unicode(), uclen,
15259mb.data(), bufSize-1, 0, &used_def)) )
15260 {
15261int r = GetLastError();
15262if ( r == ERROR_INSUFFICIENT_BUFFER ) {
15263 bufSize=1+WideCharToMultiByte( CP_ACP, 0,
15264(const WCHAR*)s.unicode(), uclen,
152650, 0, 0, &used_def);
15266 mb.resize(bufSize);
15267// and try again...
15268} else {
15269 // Fail.
15270 qWarning("WideCharToMultiByte cannot convert multibyte text (error %d): %s (UTF8)",
15271r, s.utf8().data());
15272 break;
15273}
15274 }
15275 mb[len]='\0';
15276 return mb;
15277}
15278
15279// WATCH OUT: mblen must include the NUL (or just use -1)
15280QString qt_winMB2QString( const char* mb, int mblen )
15281{
15282 if ( !mb || !mblen )
15283return QString::null;
15284 const int wclen_auto = 4096;
15285 WCHAR wc_auto[wclen_auto];
15286 int wclen = wclen_auto;
15287 WCHAR *wc = wc_auto;
15288 int len;
15289 while ( !(len=MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED,
15290mb, mblen, wc, wclen )) )
15291 {
15292int r = GetLastError();
15293if ( r == ERROR_INSUFFICIENT_BUFFER ) {
15294 if ( wc != wc_auto ) {
15295qWarning("Size changed in MultiByteToWideChar");
15296break;
15297 } else {
15298wclen = MultiByteToWideChar( CP_ACP, MB_PRECOMPOSED,
15299 mb, mblen, 0, 0 );
15300wc = new WCHAR[wclen];
15301// and try again...
15302 }
15303} else {
15304 // Fail.
15305 qWarning("MultiByteToWideChar cannot convert multibyte text");
15306 break;
15307}
15308 }
15309 if ( len <= 0 )
15310return QString::null;
15311 QString s( (QChar*)wc, len-1 ); // len-1: we don't want terminator
15312 if ( wc != wc_auto )
15313delete [] wc;
15314 return s;
15315}
15316
15317
15318#endif // _OS_WIN32_
15319

Archive Download this file

Revision: 1322